﻿
if(!_farsisaz_){
   var _farsisaz_=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 FKeyPress() {
    var oEvent=null;
     if(!window.event){oEvent = arguments[0];} else{oEvent=window.event;}
       var key = oEvent.keyCode;//alert(key);
       if(!document.attachEvent)
       {//if (oEvent.isChar) 
           key = oEvent.charCode; 
       }
       if (key < 0x0020 || key >= 0x00FF) 
          return;
       if (language=='f') {
          var ValChar=String.fromCharCode(key);
          var validate="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[];,'`\\"
          var el = (oEvent.srcElement)?oEvent.srcElement:oEvent.target; 

          if (validate.indexOf(ValChar) != -1 ){ // Detect persian letter
//              if (el.value.charCodeAt(el.value.length-1) == 0x06cc)  // Replace persian ye if needed
//              {
//                 el.value = el.value.slice(0, -1);
//                 el.value += String.fromCharCode(0x064a); // Use arabic ye
//              }
              if (key == 0x0020 && oEvent.shiftKey)
                 oEvent.keyCode = 0x200C;
              else if(document.attachEvent)
                  {try{ oEvent.keyCode = farsikey[key - 0x0020];}catch(e){el.value+=String.fromCharCode( farsikey[key - 0x0020] );return false;}  }
              else {
                       el.value+=String.fromCharCode( farsikey[key - 0x0020] ); 
                       return false;
                  }
          }
    	 
       }
      return true;
    }

//    function altshift(){//change language in Alt+Shift
//      
//        var oEvent=null;
//        if(!window.event){oEvent = arguments[0];} else{oEvent=window.event;}
//        if (oEvent.shiftKey && oEvent.altKey){Changelangbtn(); alert('alt shift');}
//    }        
//    //only one time
//    EventHandlerAdder(document, "keydown", altshift);
//    //only one time

    function Changelangbtn() {       //,what
          var farsib=document.getElementsByName('farsib');     
            
                if(language == 'f') {
                    language='e';
                    for(i=0;i<farsib.length;i++){
                     var CurFarsiB=farsib[i];
                        CurFarsiB.title='english';
                        CurFarsiB.value='EN';
                    }//end for 
                }
                else {
                    language='f';
                     for(i=0;i<farsib.length;i++){
                     var CurFarsiB=farsib[i];
                        CurFarsiB.title='farsi';
                        CurFarsiB.value='FA'; 
                     }//end for              
                }           
          
    }        
    var language='f';


    //this use for div not for textbox
    function FKeyPressDiv() {
       var key = window.event.keyCode;
       if (key < 0x0020 || key >= 0x00FF) 
          return ;
       if (language=='f') {
          var ValChar=String.fromCharCode(key);
          var validate="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[];,'`\\"

          if (validate.indexOf(ValChar) != -1 ) // Detect persian letter
            /*  if (srcElement.innerText.charCodeAt(srcElement.innerText.length-1) == 0x06cc)  // Replace persian ye if needed
              {
                 srcElement.innerText = srcElement.innerText.slice(0, -1);
                 srcElement.innerText += String.fromCharCode(0x064a); // Use arabic ye
              }*/
              if (key == 0x0020 && window.event.shiftKey)
                // window.event.keyCode = 0x200C;
                key=key;
              else 
	         window.event.keyCode = farsikey[key - 0x0020];
    	 
       } 

      return true;
    }
}//end if _farsisaz_
//testmode
else{
    alert('the farsisaz.js file duplicated');
}
//end testmode

