//استفاده از اين Script در موارد غير تجاري مجاز ميباشد و در موارد تجاري بايد حتما با اطلاع شرکت مهندسی ارتباطات پيام مشرق باشد (info@payam-net.net)
//اين فايل شامل توابع لازم برای عمليات دو زبانه( فارسی  - انگليسی ) است.     
//در اين مثال عمليات ما شامل ورود اطلاعات چند زبانه به يک جعبه متن است.     
//برای سه رخداد اين جعبه متن سه تابع تعريف می کنيم.
//اين سه رخداد عبارتند از:
//onkeypress, هنگامی که فوکوس روی جعبه متن است اگر کليدی فشار داده شود رخ می دهد 
//onkeyup, هنگامی که فوکوس روی جعبه متن است اگر کليد فشار داده شده رها شود
//onblur, هنگامی که فوکوس از روی جعبه متن به جای ديگری منتقل شود
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//متغير زير برای گذر بين زبانها است.وقتی صفراست زبان مورد استفاده فارسی و وقتی يک است انگليسی خواهد بود.// 
var languageInUse = 0; 
//اکثر بروزرها " ی " فارسی را در موقعيت غير آخر درست نمايش نمی دهند. 
//در اين مثال هنگام رخداد "ی" در موقعيت غير آخر "ی"عربی استفاده می شود.  
// در اين مثال هنگام رخداد "ی" در موقعيت  آخر "ی" فارسی استفاده می شود.  
//به اين منظور  متغير زير تعريف می شود: 
var Was_Ye = false;//اگر آخرين نويسه "ی" باشد اين متغير درست و گرنه نادرست است.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//اين تابع کنترلهای روي صفحه را که خصوصيت langx آنها EF(English/farsi) و يا FE(Farsi/English) باشد را دو زبانه ميکند
//اگر کنترلي داراي خصوصيت EF باشد به صورت پيش فرض انگليسي است و با F2 فارسی ميشود 
//اگر کنترلي داراي خصوصيت FE باشد به صورت پيش فرض فارسي است و با F2 انگليسي ميشود 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  در صورت true  بودن اين متغير علامت فارسی و يا انگلِسی شی فعال گذاشته می شود و درغير اينصورت جايگذاری نميگردد
var LanguageIdentifierFlag = true;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// آيا نسبت به sql data type هر فيلد حساس باشد يا نه ؟
var DataTypeSensitive = false;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var ManualEvent = false;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var hCallSetControlsLanguageWithTimeout = null;

function SetControlsLanguage()
{
	var Item;
	var arrEditors = document.all.tags("input");
	var iCount = arrEditors.length;
	var arrTextAreas = document.all.tags("textarea");
	for(var iIndex=0 ; iIndex<arrTextAreas.length ; iIndex++)
		arrEditors[iCount + iIndex] = arrTextAreas[iIndex];

	for(var i=0; i<iCount + iIndex; i++)
	{
		Item = arrEditors[i];
		var strDataType = (Item.getAttribute("datatype")==null) ? "" : Item.getAttribute("datatype").toLowerCase();
		if(!DataTypeSensitive || (DataTypeSensitive && (strDataType=="nchar" || strDataType=="nvarchar" || strDataType=="ntext")))
		{
			if((Item.langx=="EF" || Item.langx=="FE") && Item.LangxID==null)
			{
				Item.attachEvent("onkeydown", CLangSwitch_OnKeyDown);
				Item.attachEvent("onkeypress", CLangSwitch_OnKeyPress);
				Item.attachEvent("onkeyup", OnKeyUp);
				Item.attachEvent("onblur", onBlur);
				Item.attachEvent("onfocus", onFocus);
				//Item.onblur=onBlur
				if(Item.langx=="EF")
					Item.LangxID = 1;
				if(Item.langx=="FE")
					Item.LangxID = 0;
				
				if(LanguageIdentifierFlag && (Item.style.visibility!='hidden'))
					SetLangSign(Item , Item.LangxID);
				
			}
		}
	}
	
	window.attachEvent("onresize" , CallSetControlsLanguageWithTimeout);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تابع زير در پاسخ به رخداد اجرا می شود. 
//اگر زبان مورد استفاده فارسی باشد بر اساس  کد کليد فشارداده شده کد نويسه معادل //برگردانده می شود.   
//اين کار با استفاده از آرايه ای از کدهای نويسه های فارسی در استاندارد يونيکد
//انجام می شود.
//اگر آخرين نويسه وارد شده  قبلی نويسه فاصله باشد و نويسه بلافاصله قبلی ان "ی"  
//باشد تابع احضار می شود که به جای آخرين " ی " وارد شده "ی" فارسی   
//می گذارد.
function CLangSwitch_OnKeyDown()
{
	key = window.event.keyCode;
	//alert(key);
	//Check for Ctrl+H. if pressed we must Call Thesaurus
	//if(key == 8)
	if(window.event.ctrlKey == true && (key == 104 || key == 72))
	{
		//alert();
		window.event.returnValue = false;
		var Control = window.event.srcElement;
    var Result = null; 	
		if(Control.getAttribute("langxID")==1) 
		{
			var URL = "/DL/LCSH/default.aspx";
			Result = window.showModalDialog(URL,null,"dialogWidth:650px;status:no");
		}
		else
		{
			var URL = "/DL/Refrences/default.aspx";
			Result = window.showModalDialog(URL,null,"dialogWidth:930px;dialogHeight:600px;status:no");
		}	
		

		if( Result == null)
			return;
		try
		{
			Control.value = Result;
		}
		catch(e){}
		return;
	}

	if(window.event.ctrlKey == true && (key == 105 || key == 73))
	{
		window.event.returnValue = false;
		var Control = window.event.srcElement;
    var Result = null; 	

		var URL = "/DL/Refrences/AuthorsCode.aspx";
		Result = window.showModalDialog(URL,null,"dialogWidth:450px;dialogHeight:360px;status:no");
		

		if( Result == null)
			return;
		try
		{
			Control.value = Result;
		}
		catch(e){}
		return;
   }


	//Check for Ctrl+d. if pressed we must get Client Shamsi Date
	//if(key == 4)
	if(window.event.ctrlKey == true && (key == 100 || key == 68))
	{
		window.event.returnValue = false;
		var URL = "/DL/Classes/CLangSwitch/GetCurrentDate.htm";
		showModelessDialog( URL, window.event.srcElement, "dialogHide:yes;dialogHeight:0px;dialogWidth:0px;status:no;resizable:no;help:no;dialogLeft:0;dialogTop:0");
		return;
	}
	
	//Check for Ctrl+w. if pressed we must show WordDictionary
	//if(key == 23)
	if(window.event.ctrlKey == true && (key == 87 || key == 119))
	{
		window.event.returnValue = false;
		var URL = "/DL/Data Entry/WordDictionary/WordDictionary_Total.aspx";
		showModelessDialog( URL, window.event.srcElement, "dialogHeight:380px;dialogWidth:260px;status:no;resizable:yes");
		return;
	}
	
	//Check for Ctrl+k. if pressed we must show keyborad layout
	//if(key == 11)
	if(window.event.ctrlKey == true && (key == 75 || key == 107))
	{
		window.event.returnValue = false;
		var URL = "/DL/Classes/CLangSwitch/Symbols KeyBoard.htm";
		showModelessDialog( URL, window.event.srcElement, "dialogHeight:260px;dialogWidth:451px;status:no;resizable:yes");
		return;
	}
	
	//Check for Ctrl+T. if pressed & the input is repeatable then we must show subfields table
	//if(key == 20)
	if(window.event.ctrlKey == true && (key == 84 || key == 116))
	{
		window.event.returnValue = false;
		var OnclickHandler = null;
		var ElementName = window.event.srcElement.name;
		IMGElement = window.document.all.item(ElementName + "_SubFields_XML_Image");
		if(IMGElement==null)
			return;
		IMGElement.fireEvent("onclick")
		return;
	}

}
function CLangSwitch_OnKeyPress()
{
	//if(window.event.ctrlKey == true)
	//	alert('pree ctrl');

	var key;
	var Char;
	var LanguageID = -1;
	key = window.event.keyCode;
//alert(key);	
//alert('ddd');	
	Char = String.fromCharCode(key);
	Char = Char.toLowerCase();
	key = Char.charCodeAt(0);

	
	if(window.event.srcElement.LangxID!="undefined")
		LanguageID = window.event.srcElement.LangxID;
	else	
		LanguageID = languageInUse;

	// Keyborad Language is english & type langauge is farsi
	if(32<=key && key<32+farsi.length && LanguageID==0)
	{
		//alert("Keyborad Language is english & type langauge is farsi");
		if( key != 100 && key != 32 )
			Was_Ye = false;

		if( key == 100 )
			Was_Ye = true;

		if( window.event.shiftKey == true  )
		{
		   
		   window.event.keyCode = farsiWhenShiftHold[ key ];
		
		}
		else
			window.event.keyCode = farsi[ key - 32 ];
		
		if(  key == 32   )
		{
			//تابع زير به جای آخرين " ی " وارد شده "ی" فارسی می گذارد. 
			ifWasYe(); 
		}
		// Ctrl + Space  ---> 	Half Space (Ctrl + Space  To nimSpace) 
		if(	key == 32 && window.event.ctrlKey == true )//&& window.event.shiftKey == true)
			window.event.keyCode = 8302;
	}
	
	// Keyborad Language is farsi & type langauge is english
	var iIs =  ExistInFarsiWhenShiftHeldArray(key);
	if( LanguageID == 1 && ( window.event.shiftKey == true ) &&  iIs != -1 )
	{
	   if( key > 32 && key < 44 )
	   {
	       window.event.keyCode = key;
	       return;
	   }
	   if( (key - 32) > 64 && (key - 32) < 91 )
	   {
	     
	     window.event.keyCode = key - 32;
	     return;
	   }
	   if( key == 63  ||  key == 62 || key == 60  ||  key  == 126  || key == 64 || key == 94 || key == 95)
	   {
	      window.event.keyCode = key;
	      return;
	   }
	   if( key == 1604 )// means that user while shift key held, pressed R, so the four part code of 'ريال ' now will come to key
	   {
	      window.event.keyCode = 114 -32;
	      
	      
	      return;
	   } 
	   if( key == 1575 || key == 1610 || key == 1585 )
	   {
	      window.event.keyCode = null;
	      return;
	   }    
	   window.event.keyCode =  ExistInFarsiWhenShiftHeldArray(key);
	   return;
	}
	var iExistInFarsiArray = ExistInFarsiArray(key)
	
	if(iExistInFarsiArray!=-1 && LanguageID==1)
	{
		if( key == 1688 )
		{
		   window.event.keyCode = 92;
		   return;
		}
		if( key == 93 )
		{
	//	   window.event.keyCode = 91;
		   return;
		}
		if( key == 91 )
		{
	//	   window.event.keyCode = 93;
		   return;
		}
		
		window.event.keyCode = iExistInFarsiArray + 32;
		
	}

	//تبديل ی و ک غلط به ی و ک درست در هنگاميکه کیبورد ویندوز فارسی است
	if(LanguageID==0 && window.event.keyCode==1740) // ی
		window.event.keyCode = 1610;
	if(LanguageID==0 && window.event.keyCode==1705) // ک
		window.event.keyCode = 1603;
//alert(window.event.keyCode);
	if(LanguageID==1 && window.event.keyCode==68) // d
		window.event.keyCode = 100;

	
	// ' ->   י      (change single Qot To Hebrew Letter Yod)
	if(window.event.keyCode == 39)
		window.event.keyCode = 1497;
	
//alert(	window.event.keyCode );

	return;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ExistInFarsiArray(Key)
{
	if(Key == 1610)
		return 68;
	if(Key == 1574)
		return 77;

	Key = (Key==1740) ? 1610 : Key;
	Key = (Key==1705) ? 1603 : Key;
	
	for(var iIndex=0 ; iIndex<farsi.length ; iIndex++)
		if(farsi[iIndex]==Key)
			break;

	return (iIndex==farsi.length) ? -1 : iIndex;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ExistInFarsiWhenShiftHeldArray(Key)
{
	
	iIndex = -1;
	for(var iIndex=0 ; iIndex < farsiWhenShiftHold.length ; iIndex++)
		if(farsiWhenShiftHold[iIndex]==Key)
		{
			if( iIndex > 63 )
			   iIndex = iIndex - 32;
			break;
		}

	return iIndex;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تابع زير در پاسخ به رخداد فراخوانی می شود.
//اگر کاربر کليد را فشار دهد متغير نشان دهنده زبان مورد استفاده مکمل می شود.  // حال اگر از زبان فارسی به انگليسی سويچ کنيم در صورتی که آخرين نويسه وارد شده //"ی" باشد می بايست آنرا به "ی" فارسی تبديل کنيم.اينکار با فراخوانی        انجام // می شود. 
function OnKeyUp()
{
	var LanguageID = -1;
	var Element = window.event.srcElement;
	
	if( window.event.keyCode == 113 || ManualEvent)
	{
		ManualEvent = false;
		if(Element.LangxID!="undefined")
		{
			Element.LangxID = 1 - Element.LangxID;
			LanguageID = Element.LangxID;
		}
		else
		{
			languageInUse = 1 - languageInUse;
			LanguageID = languageInUse;
		}
		
		if(LanguageIdentifierFlag)
			SetLangSign(Element , LanguageID);
		
		ifWasYe();
		try{ChangeLanguageView(Element.id+"_LangView", LanguageID)};
		catch(Ex){}
	}       
	else if( window.event.keyCode == 112 )
	{
		Help();
		return;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//هنگام رخداد تابع زير اجرا می شود. 
//هنگام وارد کردن داده اگر فوکوس از کنترل مورد استفاده به جای ديگری منتقل شود 
//در صورتی که آخرين نويسه وارد شده"ی" باشد می بايست آنرا به "ی" فارسی تبديل 
//کنيم.اينکار با فراخوانی انجام می شود.
function onBlur()
{ 
   ifWasYe();  
   HideDiv();
}
///////////////////////////////////////////////////////////
function onFocus()
{
	ViewDiv();
}
///////////////////////////////////////////////////////////
function HideDiv()
{
	var Element = window.event.srcElement;
	var strDivID = (Element.id=="" || Element.id==null || Element.id=="undefined") ? Element.name + "LanguageDiv" : Element.id + "LanguageDiv";
	var oExistDiv = document.all.item(strDivID);
	if(oExistDiv != null)
		oExistDiv.style.visibility = "hidden";
	
}
///////////////////////////////////////////////////////////
function ViewDiv()
{
	
	//var iElementTopPos = 0 ;
	//var iElementLeftPos = 0 ;
	var Element = window.event.srcElement;
	//alert(Element.offsetTop);
	//iElementTopPos = iElementTopPos + parseInt(Element.offsetTop);
	//iElementLeftPos = iElementLeftPos + parseInt(Element.offsetLeft);
	var strDivID = (Element.id=="" || Element.id==null || Element.id=="undefined") ? Element.name + "LanguageDiv" : Element.id + "LanguageDiv";
	var oExistDiv = document.all.item(strDivID);
	if(oExistDiv != null)
	{
		oExistDiv.style.visibility = "visible";
		//oExistDiv.style.top = iElementTopPos;
		//oExistDiv.style.left = iElementLeftPos;
	}
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//تابع زير در صورتی که آخرين نويسه قبلی "ی" باشد به جای آن "ی" فارسی می گذارد.
function ifWasYe()
{
	return;
   if( Was_Ye )
   {
        var str = window.event.srcElement.value;                   
        var substr = str.substr( 0, ( str.length - 1 ) );
        // در استاندارد يونيکد کد "ی" فارسی برابر 1740 است.
        window.event.srcElement.value = substr + String.fromCharCode( 1740 );
        Was_Ye = false;
   }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//اين آرايه شامل کد نويسه های فارسی در يونيکد است.
var farsi = new Array( 32, 33, 1563, 35, 36, 1642
                       ,38, 1711, 40, 41, 42, 43, 1608, 45,  46
                       , 47, 1776, 1777, 1778, 1779, 1780, 1781
                       , 1782, 1783, 1784, 1785, 58, 1603/*instead of 1705"kaf farsi"*/, 1572, 61
                       , 1571, 1567, 64, 1572, 1644, 1688, 1610/*1740*/
                       , 1613, 1573, 1571, 1570, 1617, 1577, 187
                       , 171, 1569, 1569, 93, 91, 1618, 1608
                       , 1574, 1615, 1614, 1614, 1612, 1612
                       , 1616, 1603, 1580, 1688, 1670, 94, 95, 1662
                       , 1588, 1584, 1586, 1610/*instead of 1740'ye farsi'*/, 1579, 1576, 1604
                       , 1575, 1607, 1578, 1606, 1605, 1574/*1569*/, 1583
                       , 1582, 1581, 1590, 1602, 1587, 1601
                       , 1593, 1585, 1589, 1591, 1594, 1592, 125
                       , 124, 123, 123);
                       
 //if the language of web page is farsi but the language of user`s system is english, when the user hold the SHIFT key, the array below will use 
 // to decode the keyCode.
 var farsiWhenShiftHold = new Array();
 
 farsiWhenShiftHold[113] = 0X64B;// Q  -> ً
 farsiWhenShiftHold[121] = 0X61B;// Y   -> ؛
 farsiWhenShiftHold[116] = 0X60C;// T  -> ،
 farsiWhenShiftHold[101] = 0X64D;// E  -> ٍٍ
 farsiWhenShiftHold[119] = 0X64C;// W  ->ٌ ٌ
 farsiWhenShiftHold[104] = 0X622;// H  -> آ
 farsiWhenShiftHold[103] = 0X652;// G  -> ْ
 farsiWhenShiftHold[102] = 0X651;// F  ->  ّ
 farsiWhenShiftHold[115] = 0X64F;// S  -> ُ 
 farsiWhenShiftHold[97] = 0X64E;// A  -> َ
 farsiWhenShiftHold[109]= 0X621;// M  -> ء
 farsiWhenShiftHold[110] = 0X623;// N  -> أ
 farsiWhenShiftHold[98] = 0X625;// B  -> إ
 farsiWhenShiftHold[34] = 0X0022;// '  -> "
 farsiWhenShiftHold[58] = 0X003A;// ;  ->  :
 farsiWhenShiftHold[63] = 0X61F;// /  -> ؟
 farsiWhenShiftHold[60] = 1572;// ,  -> ؤ
 
 farsiWhenShiftHold[106] = 0X640;// J  -> ـ
 farsiWhenShiftHold[107] = 0X00BB;// K  -> »
 farsiWhenShiftHold[108] = 0X00AB;// L  -> «
 farsiWhenShiftHold[117] = 92;// U  -> «
 farsiWhenShiftHold[105] = 1577;// I  -> «
 farsiWhenShiftHold[111] = 215;// O  -> «
 farsiWhenShiftHold[112] = 247;// P  -> «
 farsiWhenShiftHold[111] = 215;// O  -> «
 farsiWhenShiftHold[100] = 1616;// D  -> «
 farsiWhenShiftHold[118] = 1740;// V  -> «
 farsiWhenShiftHold[99] = 8205;// C  -> «
 farsiWhenShiftHold[120] = 91;// X  -> «
 farsiWhenShiftHold[122] = 93;// Z  -> «
 farsiWhenShiftHold[155] = 123;// {  -> «
 farsiWhenShiftHold[157] = 125;// }  -> «
 farsiWhenShiftHold[62] = 1728;// .  -> ۀ
 farsiWhenShiftHold[64] = 64;// .  -> ۀ
 farsiWhenShiftHold[124 + 32] = 124;// |  -> ۀ
 farsiWhenShiftHold[126 + 32] = 1609;// ~  -> ۀ
 //
 farsiWhenShiftHold[38] = 38;// &  -> &
 farsiWhenShiftHold[33] = 33;// !  -> !
 farsiWhenShiftHold[35] = 35;// #  -> #
 farsiWhenShiftHold[64] = 64;// @  -> @
 farsiWhenShiftHold[36] = 36;// $  -> $
 farsiWhenShiftHold[37] = 37;// %  -> %
 farsiWhenShiftHold[94] = 94;// ^  -> ^
 farsiWhenShiftHold[42] = 42;// *  -> *
 farsiWhenShiftHold[40] = 64830;// (  -> (
 farsiWhenShiftHold[41] = 64831;// )  -> )
 farsiWhenShiftHold[95] = 95;// _  -> _
 farsiWhenShiftHold[43] = 43;// +  -> +
  
// when Keyborad Language is farsi & type langauge is english and user held shift key, then we use array below to decode what he/she expected to type.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//مراجع
//در ايران برای تبادل و شيوه نمايش اطلاعات فارسی بر اساس يونيکد يک استاندارد ملی 
//منتشر شده است که از طريق آدرس زِير در دسترس است:
//http://switch.dl.sourceforge.net/sourceforge/farsitools/finalversion.pdf
//اطلاعات بيشتر درباره اين استاندارد در آدرس زير موجود است:
//www.farsiweb.info
//جامع ترين اطلاعات درباره يونيکد در سايت يونيکد به آدرس زير موجود است:
//www.unicode.org
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function Help()
{
	var Element = null
	try{Element = window.event.srcElement.parentElement.RelatedElement;}catch(e){};

	URL = "/DL/Classes/CLangSwitch/Help.htm";
	window.showModalDialog(URL, window, "dialogHeight:200px;dialogWidth:400px;status:no;resizable:yes");

	try{Element.focus();}catch(e){}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function Mouse_SwitchLanguage()
{
	try
	{
		var Element = null
		try{Element = window.event.srcElement.parentElement.RelatedElement;}catch(e){};
		ManualEvent = true;
		Element.fireEvent("onkeyup");
		return;
	}catch(e){}
}

function SetLangSign(Element , Language)
{
	//alert(Element.tagName + " , " + Language)
	if(Element.tagName.toLowerCase()!="input" && Element.tagName.toLowerCase()!="textarea")
		return;
	var Alarm = "/F2";
	var strDivText = (Language==1) ? "EN"+Alarm : "FA"+Alarm;
	var iLangSignTopPos , iLangSignLeftPos;
	

	var iElementTopPos = 0 , iElementLeftPos = 0;
	var oObj = Element;
	var Continute = true;
	while(Continute)
	{
		var TagName = oObj.tagName.toLowerCase();
		var ParentTagName = oObj.parentElement.tagName.toLowerCase();
		if(oObj.style.position || (ParentTagName!="form" && ParentTagName!="tbody" && ParentTagName!="center"))
			iElementTopPos = iElementTopPos + parseInt(oObj.offsetTop);
		if(oObj.style.position || (TagName!="form" && TagName!="tbody" && ParentTagName!="center"))
			iElementLeftPos = iElementLeftPos + parseInt(oObj.offsetLeft);
		if(oObj.style.position=="absolute" || ParentTagName=="body")
			Continute = false;
		else
			oObj = oObj.parentElement;
	}
	
	var iElementWidth = parseInt(Element.clientWidth);
	var iElementHieght = parseInt(Element.clientHieght);
	if(document.dir.toLowerCase()=="rtl")
	{
		iLangSignTopPos = iElementTopPos - 13;
		iLangSignLeftPos = iElementLeftPos;
		if(iLangSignTopPos<0)
		{
			iLangSignTopPos = 0;
			//iLangSignLeftPos = iElementLeftPos - 17;
			iLangSignLeftPos = (iLangSignLeftPos < 0) ? iElementLeftPos + iElementWidth + 2 : iLangSignLeftPos ;
		}
	}
	else
	{
		iLangSignTopPos = iElementTopPos - 13;
		iLangSignLeftPos = iElementLeftPos ;//+ iElementWidth - 14;
		//alert(iLangSignTopPos+"=       ="+iLangSignLeftPos)
		if(iLangSignTopPos<0 || iLangSignLeftPos<0)
		{
			iLangSignTopPos = 0;
			//iLangSignLeftPos = iElementLeftPos + iElementWidth + 2;
		}
	}
	var strDivID = (Element.id=="" || Element.id==null || Element.id=="undefined") ? Element.name + "LanguageDiv" : Element.id + "LanguageDiv";
	var oExistDiv = document.all.item(strDivID);
	if(oExistDiv==null)
	{
		var oDiv = document.createElement("DIV");
		oDiv.id = strDivID;
		oDiv.style.zIndex = "200";
		oDiv.style.position = "absolute";
		//oDiv.style.width = "15px";
		oDiv.style.width = "30px";
		oDiv.style.height = "12px";
		oDiv.style.top = iLangSignTopPos;
		oDiv.style.left = iLangSignLeftPos;
		oDiv.style.backgroundColor = "black";
		oDiv.style.color = "White";
		oDiv.style.fontFamily = "arial";
		oDiv.style.fontSize = "10px";
		oDiv.style.visibility = "hidden";
		oDiv.innerHTML = "<font onclick='Mouse_SwitchLanguage()' title='کليد F2 تغيير زبان'>" + strDivText;
		oDiv.RelatedElement = Element;
		Element.parentElement.appendChild(oDiv);
	}
	else
	{
		oExistDiv.style.top = iLangSignTopPos;
		oExistDiv.style.left = iLangSignLeftPos;
		oExistDiv.innerHTML = "<font onclick='Mouse_SwitchLanguage()' title='کليد F2 تغيير زبان'>" + strDivText;//<font color=white>?</font>-
		oExistDiv.RelatedElement = Element;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function CallSetControlsLanguageWithTimeout()
{
	hCallSetControlsLanguageWithTimeout = window.setTimeout(SetControlsLanguage , 1000);
	window.detachEvent("onresize", CallSetControlsLanguageWithTimeout);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
