// JavaScript Document
function storeCaret(textEl) { 
   if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); 

} 
var lang = 1;   // 1: Farsi, 0: English 

// Farsi keyboard map based on ISIRI-2901 
var farsikey = [ 
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF, 
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F, 
   0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 
   0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F, 
   0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623, 
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D, 
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C, 
   0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640, 
   0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644, 
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E, 
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635, 
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ]; 


function changeLang() { 
    if (lang == 0) { 
    lang = 1; 
    return true; 
  } 
  else { 
    lang = 0; 
    return true; 
  } 
} 

function FKeyDown (txtFrm){ 
 var key = window.event.keyCode; 
 if (key == 145){ 
    if (lang == 0) { 
      lang = 1; 
      return true; 
    } 
    else { 
      lang = 0; 
      return true; 
    } 

} 

} 
function FKeyPress(txtFrm) { 
   var key = window.event.keyCode; 

  if (key == 13) { window.event.keyCode = 13; return true; } 

   if (lang == 1) { // If Farsi 
     if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ 
       window.event.keyCode = 0x200C; 
     else 
       window.event.keyCode = farsikey[key - 0x0020]; 
     if (farsikey[key - 0x0020] == 92) { 
        window.event.keyCode = 0x0698; 
     } 
     if (farsikey[key - 0x0020] == 8205) { 
        window.event.keyCode = 0x067E; 
     } 
   } 
   return true; 
} 

function change(obj){ 
if (lang==0) 
lang=1 
else 
lang=0; 
obj.focus(); 
} 

var lang = 1;   // 1: Farsi, 0: English 

var keys = new Array(1711,0,0,0,0,1608,0,0,0,0,0,0,0,0,0,0 
,0,0,0,0, 
1603,1572,0,1548,1567,0,1616, 
1571,8250,0,1615,0,0,1570, 
1577,0,0,0,1569,1573,0,0,1614,1612,1613,0,0,8249,1611, 
171,0,187,1580,1688,1670,0,1600, 
1662,1588,1584,1586,1610,1579,1576, 
1604,1575,1607,1578,1606,1605,1574, 
1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,1591,1594,1592); 



function keyConv(){ 
  
      if (lang == 1) 
      { 
   if((event.keyCode > 38) && (event.keyCode < 123)){ 
      event.keyCode = (keys[event.keyCode - 39])? (keys[event.keyCode - 39]): event.keyCode; 
   } 
      } 
} 


function strvalidate_fa(str){ 
   var i, chr; 
   for(i = 0 ; i < str.length ; i++){ 
      chr = str.charCodeAt(i); 
      if(!((chr == 32) || (chr >= 1569 && chr <= 1594) || (chr >= 1601 && chr <= 1610) || (chr == 1662) || (chr == 1670) || (chr == 1688) || (chr == 1711))) return false; 
   } 
   return true; 
}



