//written by sarbandi
// JavaScript Document



//labtop
function toEng (mychar_arr)
{
var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688,1603,1711,1580,1670,1608,47,44)
var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1615,1548,92,1740,1612,91,1563,93,124,1609,58,34,125,123,1572,1567,1728,1705,1605)



var Eng_array_S=new Array(97,98,99,88,101,102,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,67,59,39,91,93,44,47,85)
var Eng_array_C=new Array(65,66,67,68,69,70,71,72,90,74,76,75,77,78,79,80,81,83,84,80,100,87,79,89,73,92,96,58,34,123,125,86,63,71,59,108)

//sarbandi

var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1604,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688,1603,1711,1580,1670,1608)
var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1604,1615,1548,92,1740,1612,91,1563,93,124,1609,58,34,125,123,1572)



var Eng_array_S=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,96,59,39,91,93,44)
var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,96,58,34,123,125,60)

//v4
var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1604,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688,1603,1711,1580,1670,1608,1605)
var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1604,1615,1548,92,1740,1612,91,1563,93,124,1609,58,34,125,123,1572)



var Eng_array_S=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,96,59,39,91,93,44,108)
//var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,96,58,34,123,125,60)
//var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,103,83,84,85,86,87,88,89,90,92,96,58,34,123,125,60)
var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,103,83,84,85,86,87,88,89,90,92,96,58,34,123,125,60)


//v4.1
var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1604,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688,1603,1711,1580,1670,1608,1605)

var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1604,1615,1548,1740,1612,91,1563,93,1609,58,34,125,123,1572)



var Eng_array_S=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,96,59,39,91,93,44,108)

var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,103,83,84,86,87,100,89,90,96,58,34,123,125,60)

//v5

var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1604,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688,1603,1711,1580,1670,1608,1605)
var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1604,1615,1548,1740,1612,91,1563,93,1609,58,34,125,123,1572)

var Eng_array_S=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,92,59,39,91,93,44,108)
var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,103,83,84,86,87,100,89,90,96,58,34,123,125,60)



//***********************************************************
//***********************************************************
		
var x = mychar_arr;          	
			for(var i=0;i<60;i++)
			{

				 if (mychar_arr==Per_array_S[i])
				  //{ z_U=Per_array_S[i];}
				  x = Eng_array_S[i];

				if (mychar_arr==Per_array_C[i])
				  //{ z_U=Per_array_S[i];}
				  x = Eng_array_C[i];
			}//end of for	

//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************
//alert(mychar_arr);
return(x)
	


}//end of function
function toEng2 (mychar_arr)
{
alert(mychar_arr);
var Per_array_S=new Array(1588,1584,1586,1610,1579,1576,1604,1575,1607,1578,1606,1604,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592,1662,1688)
var Per_array_C=new Array(1614,1573,8205,1616,1613,1617,1618,1570,1577,1600,187,171,1569,1571,215,247,1611,1604,1615,1548,92,1740,1612,91,1563,93,124,1609)



var Eng_array_S=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,92,96)
var Eng_array_C=new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,96)


//***********************************************************
//***********************************************************

			for(var i=0;i<32;i++)
			{
				 if (mychar_arr==Per_array_S[i])
				  //{ z_U=Per_array_S[i];}
				  return(Eng_array_S[i])
			}//end of for	

//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************

			for(var i=0;i<32;i++)
			{
				 if (mychar_arr==Per_array_C[i])
				  //{ z_U=Per_array_S[i];}
				  return(Eng_array_C[i])
			}//end of for	

//***********************************************************
//***********************************************************

//***********************************************************
//***********************************************************

			for(var i=0;i<32;i++)
			{
				 if (mychar_arr==Eng_array_C[i])
				  //{ z_U=Per_array_S[i];}
				  return(Eng_array_C[i])
			}//end of for	

//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************

			for(var i=0;i<32;i++)
			{
				 if (mychar_arr==Eng_array_S[i])
				  //{ z_U=Per_array_S[i];}
				  return(Eng_array_S[i])
			}//end of for	

//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************
return(mychar_arr)
	


}//end of function

function toEng1 (mychar_arr)
{
window.status=mychar_arr;
var eng_str;
var eng_str2;
eng_str="";
eng_str2="";

var Per_array_L=new Array('ش','ذ','ز','ي','ث','ب','ل','ا','ه','ت','ن','م','ئ','د','خ','ح','ض','ق','س','ف','ع','ر','ص','ط','غ','ظ');
var Per_array_XP=new Array('ش','ذ','ز','ی','ث','ب','ل','ا','ه','ت','ن','م','ئ','د','خ','ح','ض','ق','س','ف','ع','ر','ص','ط','غ','ظ');

var Per_array_U=new Array('َ','إ','ژ','ِ','ٍ','ّ','ْ','آ','[','ـ','«','»','ء','أ',']','pi_S','ًً','ريال','ُُ','،',',','ؤ','ٌ','ي','؛','ة');
var Eng_array_L=new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
var Eng_array_U=new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
var Other_array=new Array('0','1','2','3','4','5','6','7','8','9','/','*','-','+','!','@','&','(',')',',','.');

var Per_array_S=new Array('ج','چ','ک','گ','و','پ');
var Per_array_S_XP=new Array('ج','چ','ك','گ','و','پ');

var Eng_array_S=new Array('[',']',';','"',',','~');

var Eng_array_S=new Array('[',']',';','"',',','~');
//***********************************************************
//***********************************************************
//***********************************************************

//mychar_arr =document.To_Eng_Form.Input.value;
mychar_arr=mychar_arr+"#";
var mychar;

var j;
j=0;
mychar=mychar_arr.charAt(0);
while(mychar!="#")		

{
 mychar=mychar_arr.charAt(j);
 j++;
	var z_L;	z_L=-1;
		for(var i=0;i<26;++i)
			{
				 if (mychar==Per_array_L[i])
			 		{z_L=i; 	eng_str=""+eng_str+""+Eng_array_L[z_L];}
			}//end of for	
		
//***********************************************************
//***********************************************************
		var z_U;	z_U=-1;
		if (z_L==-1 )
		{
			for(var i=0;i<26;++i)
			{
				 if (mychar==Per_array_U[i])
				  { z_U=i;  eng_str=""+eng_str+""+Eng_array_U[z_U];}
			}//end of for	
	}//end of if
//***********************************************************
//***********************************************************
		var z_S;	z_S=-1;
		if (z_L==-1 && z_U==-1)
		 {	
			for(var i=0;i<26;++i)
			{
				 if (mychar==Per_array_S[i])
				 {z_S=i;	eng_str=""+eng_str+""+Eng_array_S[z_S];}
			}//end of for	
		}//end of if
//***********************************************************
//***********************************************************
//***********************************************************
		var z_XP;	z_XP=-1;
			if (z_S==-1 && z_L==-1 && z_U==-1)
			{
				for(var i=0;i<26;++i)
				{
				 if (mychar==Per_array_XP[i])
				 {z_XP=i;	eng_str=""+eng_str+""+Eng_array_L[z_XP];}
			}//end of for	
	}//end of if
//***********************************************************
//***********************************************************
//***********************************************************
//***********************************************************

		var z_S_XP;	z_S_XP=-1;
			if (z_XP==-1 && z_S==-1 && z_L==-1 && z_U==-1)
			{
				for(var i=0;i<26;++i)
				{
				  if (mychar==Per_array_S_XP[i])
				   {z_S_XP=i;	eng_str=""+eng_str+""+Eng_array_S[z_S_XP];}
			    }//end of for	

		   }//end of if


		var E;	E=-1;
			if (z_XP==-1 && z_S==-1 && z_L==-1 && z_U==-1 && z_S_XP==-1)
			{
				for(var i=0;i<26;++i)
				{
				  if (mychar==Eng_array_L[i])
				   {z_S_XP=i;	eng_str=""+eng_str+""+Eng_array_L[z_S_XP];}
			    }//end of for	
		   }//end of if
		
		   var E_U;	E_U=-1;
			if (z_XP==-1 && z_S==-1 && z_L==-1 && z_U==-1 && z_S_XP==-1 && E==-1)
			{
				for(var i=0;i<26;++i)
				{
				  if (mychar==Eng_array_U[i])
				   {z_S_XP=i;	eng_str=""+eng_str+""+Eng_array_U[z_S_XP];}
			    }//end of for	
		   }//end of if
		
			if (z_XP==-1 && z_S==-1 && z_L==-1 && z_U==-1 && z_S_XP==-1 && E==-1 && E_U==-1)
				{
				for(var i=0;i<26;++i)
				{
				  if (mychar==Other_array[i])
				   {z_S_XP=i;	eng_str=""+eng_str+""+Other_array[z_S_XP];}
			    }//end of for	
		   }//end of if

//***********************************************************
//***********************************************************
//for space between words!
			if (mychar==" ") eng_str=""+eng_str+" ";
//***********************************************************

}//end of while
eng_str2=""+eng_str;

return(eng_str2);
}//end of function




/*******************************************************************/
      
// Original idea is from:      
// http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/farsitools/#dirlist and      
// http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/farsitools/php/date/scripts/
// CODES HAVE BEEN EXPANDED BY PersianBlog.com
var farsikey = [
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
   0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
   0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x06CC, 0x064D, 0x0625, 0x0623,
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
   0x0058, 0x0650, 0x0643, 0x062C, 0x0698, 0x0686, 0x00D7, 0x0640,
   0x067E, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x0626, 0x062F, 0x062E,
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
];

//var langFarsi = true;
var farsikey = [	// Farsi keyboard map based on Iran Popular Keyboard Layout      
	0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,      
	0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,      
	0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,      
	0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,      
	0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 0x064D, 0x0625, 0x0623,
	0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,      
	0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,            
	0x0058, 0x0650, 0x0643, 0x062C, 0x0698, 0x0686, 0x00D7, 0x0640,            
	0x067E, 0x0634, 0x0630, 0x0632, 0x06CC, 0x062B, 0x0628, 0x0644,            
	0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x0626, 0x062F, 0x062E,            
	0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,            
	0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E            
];            
            
function FKeyDown(event) {
	if (event.shiftKey && event.altKey) {
//		langFarsi=!langFarsi;
		return false;
	}
	return true;
}

function FKeyPress(event) {
   var key = toEng(event.keyCode);
   var key1 = event.keyCode;
   window.status=key1+'+>'+key;
   if (key < 0x0020 || key >= 0x00FF)
   {
      return;
   }
   if (key1 < 0x0020)
   {
      return;
   }
   if (langFarsi) {
   if (key1 < 0x0020 || key1 >= 0x00FF)
   {
      return;
   }
      var el = event.srcElement;
      var objRegExp = new RegExp("[A-Za-z\x27\x2C\x3B\x5B\x5C\x5D\x7C]");
      var validate_key = objRegExp.test(String.fromCharCode(key));
      if ((validate_key || (key==92)) && (key != 0x200C) && (el.value.lastIndexOf(String.fromCharCode(1740)) == el.value.length - 1) && el.value.length > 0) {
         el.value = el.value.slice(0, -1);
         el.value += String.fromCharCode(1610);
//         el.value += String.fromCharCode(1740);
      }









      if (key == 0x0020 && window.event.shiftKey)
         window.event.keyCode = 0x200C;
      else
         window.event.keyCode = farsikey[key - 0x0020];
   }
   else
   {
       window.event.keyCode = key;
   }
   return true;
}

function keyp(e)
{
 return FKeyPress(e);
}
function keyd(e)
{
 return FKeyDown(e);
}

img_fa=new Image(16,16)
img_fa.src="fa.gif"

img_en=new Image(16,16)
img_en.src="en.gif"

function changeLanguage() {
	langFarsi=!langFarsi;
	langFarsi?document.form_img.languageImage.src=img_fa.src:document.form_img.languageImage.src=img_en.src;
}
