var inputStack = [];
function getIEVersionNumber() {
    var ua = navigator.userAgent;
    var MSIEOffset = ua.indexOf("MSIE ");
    if (MSIEOffset == -1) {
        return 0;
    } else {
        return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
    }
}
function isSafari() {
	var ua = navigator.userAgent;
	 var safari = ua.toLowerCase().indexOf("safari");
	 if (safari == -1) {
        return 0;
    } else {
		return 1;
	}
}
function getFlashObject(id) {
	if (window.document[id]) {
		return window.document[id];
	}
	if (navigator.appName.indexOf("Microsoft Internet") == -1) {
		if (document.embeds && document.embeds[id])
			return document.embeds[id]; 
	} else {
		return document.getElementById(id);
	}
}
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
function setArabic(flashID, input) {
	var flashobject = getFlashObject(flashID);
	if (input.value.length>0) {
		flashobject.setArabicInputValue(input.value, input.id);
	} else {
		flashobject.setArabicInputValue('', input.id);
	}
}
function removeAllArabicInputs() {
	if (inputStack.length>0) {
		for (i=0; i<inputStack.length; i++) {
			$(inputStack[i]).remove();
		}
		inputStack = [];
	}
}
function revealAllArabicInputs() {
	if (inputStack.length>0) {
		for (i=0; i<inputStack.length; i++) {
			$(inputStack[i]).css({display: 'block'});
		}
	}
}
function setArabicInputFocus(inputID) {
	$('#'+inputID).focus();
}
function createArabicInput(flashID, inputID, inputValue, x, y, w, h, c, b, type) {
	var flashobject = getFlashObject(flashID);
	var flashdiv = flashobject.parentNode;
	var inputdiv = document.createElement('div');
	inputStack.push(inputdiv);
	inputdiv.id = 'arabicdiv_'+inputID;
	inputdiv.style.position = 'absolute';
	inputdiv.style.display = 'none';
	var msie = getIEVersionNumber();
	var safari = isSafari();
	if (msie>0) {
		inputdiv.style.left = (findPos(flashobject)[0]+x+1)+'px';
	} else {
		inputdiv.style.left = (findPos(flashobject)[0]+x)+'px';
	}
	inputdiv.style.top = (findPos(flashobject)[1]+y)+'px';
	if (inputValue == 'null') {
		inputValue = '';
	}
	if (type != "multiline") {
		if (safari>0) {
			inputdiv.innerHTML = '<input id="'+inputID+'" name="'+inputID+'" lang="ar" type="text" onkeyup="setArabic(\''+flashID+'\', this)" value="'+inputValue+'" size="'+(Math.floor(w/6)+2)+'" style="direction:rtl; border-style:none; background:'+b+'; color:'+c+';" />';
		} else {
			inputdiv.innerHTML = '<input id="'+inputID+'" name="'+inputID+'" lang="ar" type="text" onkeyup="setArabic(\''+flashID+'\', this)" value="'+inputValue+'" size="'+(Math.floor(w/7)-1)+'" style="direction:rtl; border-style:none; background:'+b+'; color:'+c+';" />';
		}
	} else {
		if (msie>0) {
			inputdiv.style.left = (findPos(flashobject)[0]+x+2)+'px';
			inputdiv.innerHTML = '<textarea id="'+inputID+'" name="'+inputID+'" lang="ar" onkeyup="setArabic(\''+flashID+'\', this)" cols="'+Math.floor(w/9)+'" rows="'+(Math.floor(h/15)-1)+'" style="direction:rtl; border-style:none; background:'+b+'; background:none; color:'+c+';">'+inputValue+'</textarea>';
		} else {
			if (safari>0) {
				inputdiv.innerHTML = '<textarea id="'+inputID+'" name="'+inputID+'" lang="ar" onkeyup="setArabic(\''+flashID+'\', this)" cols="'+(Math.floor(w/7)-2)+'" rows="'+(Math.floor(h/15)-1)+'" style="direction:rtl; border-style:none; background:'+b+'; background:none; color:'+c+';">'+inputValue+'</textarea>';
			} else {
				inputdiv.innerHTML = '<textarea id="'+inputID+'" name="'+inputID+'" lang="ar" onkeyup="setArabic(\''+flashID+'\', this)" cols="'+Math.floor(w/7)+'" rows="'+(Math.floor(h/15)-1)+'" style="direction:rtl; border-style:none; background:'+b+'; background:none; color:'+c+';">'+inputValue+'</textarea>';
			}
		}
	}
	flashdiv.appendChild(inputdiv);
	return 'arabicinput_'+inputID;
}
function removeArabicInput(flashID, inputID) {
	var flashobject = getFlashObject(flashID);
	var flashdiv = flashobject.parentNode;
	var inputdiv = document.getElementById(inputID);
	flashdiv.removeChild(inputdiv);
}


