
   var mode=1
 
   function LangFar(){
       document.f1.body.style.textAlign = "right";
       document.f1.body.style.direction = "rtl";
       mode=1;
   }

   function LangEng(){
       document.f1.body.style.textAlign = "left";
       document.f1.body.style.direction = "ltr";
       mode=0;
   }

   // Keyboard Switching
   function FKeyDown(){
      if (window.event.shiftKey && window.event.altKey){
         if (mode==0){
            mode=1;
            window.defaultStatus="Farsi Mode";
         }else{
            mode=0;
            window.defaultStatus="Normal Mode (English)";
         }
         window.event.returnValue=false;
         return;
      }
      window.event.returnValue=true;
   }
 
   // Keyboard Mapping to Unicode

   function FKeyPress(){
      var key;
      key=window.event.keyCode;

      // Avoid processing in Arabic Windows

      if (key>127){ 
         window.event.returnValue=false;
         return;
      }
      if (mode==1){
         switch (key){
            case 32: if (window.event.shiftKey)
                        window.event.keyCode=8204; // ZWNJ = 0x200C
//                   else
//                      window.event.keyCode=  32; // SPACE = 0x20
//             break;case 33: window.event.keyCode=  33; // ! = 0x21
            break;case 34: window.event.keyCode=1563; // F SEMICOLON = 0x061B
            break;case 35: window.event.keyCode=1643; // MOMAYYEZ = 0x066B
            break;case 36: window.event.keyCode= 164; // RIAL = 0x00A4?
            break;case 37: window.event.keyCode=1642; // F PERCENT = 0x066A
            break;case 38: window.event.keyCode=1548; // F COMMA = 0x060C
            break;case 39: window.event.keyCode=1711; // GAF = 0x06AF
            break;case 40: window.event.keyCode=  41; // PAREN BASTE= 0x0029
            break;case 41: window.event.keyCode=  40; // PAREN BAAZ = 0x0028
//             break;case 42: window.event.keyCode=  42; // * = 0x002A
//             break;case 43: window.event.keyCode=  43; // + = 0x002B
            break;case 44: window.event.keyCode=1608; // VAV = 0x0648
//             break;case 45: window.event.keyCode=  45; // - = 0x002D
//             break;case 46: window.event.keyCode=  46; // . = 0x002E
//             break;case 47: window.event.keyCode=  47; // / = 0x002F
            break;case 48: window.event.keyCode=1776; // F 0 = 0x06F0
            break;case 49: window.event.keyCode=1777; // F 1 = 0x06F1
            break;case 50: window.event.keyCode=1778; // F 2 = 0x06F2
            break;case 51: window.event.keyCode=1779; // F 3 = 0x06F3
            break;case 52: window.event.keyCode=1780; // F 4 = 0x06F4
            break;case 53: window.event.keyCode=1781; // F 5 = 0x06F5
            break;case 54: window.event.keyCode=1782; // F 6 = 0x06F6
            break;case 55: window.event.keyCode=1783; // F 7 = 0x06F7
            break;case 56: window.event.keyCode=1784; // F 8 = 0x06F8
            break;case 57: window.event.keyCode=1785; // F 9 = 0x06F9
//             break;case 58: window.event.keyCode=  58; // : = 0x00BA
            break;case 59: window.event.keyCode=1705; // KAF = 0x06A9
            break;case 60: window.event.keyCode=  62; // > = 0x003E
//             break;case 61: window.event.keyCode=  61; // = = 0x003D
            break;case 62: window.event.keyCode=  60; // < = 0x003C
            break;case 63: window.event.keyCode=1567; // F ? = 0x061F
            break;case 64: window.event.keyCode=1644; // F //  = 0x066C
            break;case 65: window.event.keyCode=1572; // VAV+HAMZE = 0x0624
            break;case 66: window.event.keyCode=8204; // ZWNJ = 0x200C
            break;case 67: window.event.keyCode=1688; // ZHE = 0x0698
            break;case 68: window.event.keyCode=1610; // ARABIC YE = 0x064A
            break;case 69: window.event.keyCode=1613; // TANWIN KASRE= 0x064D
            break;case 70: window.event.keyCode=1573; // ALEF+HAMZE ZIR= 0x0625
            break;case 71: window.event.keyCode=1571; // ALEF+HAMZE = 0x0623
            break;case 72: window.event.keyCode=1570; // AA = 0x0622
            break;case 73: window.event.keyCode=1617; // TASHDID = 0x0651
            break;case 74: window.event.keyCode=1577; // TE GERD = 0x0629
            break;case 75: window.event.keyCode= 187; // GIUME BASTE = 0x00BB
            break;case 76: window.event.keyCode= 171; // GIUME BAAZ = 0x00AB
            break;case 77: window.event.keyCode=1569; // HAMZE = 0x0621
            //   break;case 78: "N" is currently free
            break;case 79: window.event.keyCode=  93; // KROOSHE BASTE = 0x005D
            break;case 80: window.event.keyCode=  91; // KROOSHE BASTE = 0x005B
            break;case 81: window.event.keyCode=1618 // SAKEN = 0x0652
            break;case 82: window.event.keyCode=1611; // KASRE FATHE = 0x064B
            break;case 83: window.event.keyCode=1574; // YE+HAMZE = 0x0626
            break;case 84: window.event.keyCode=1615; // ZAMME = 0x064F
            break;case 85: window.event.keyCode=1614; // FATHE = 0x064E
            //   break;case 86: "V" is currently free
            break;case 87: window.event.keyCode=1612; // TANWIN ZAMME = 0x064C
            //   break;case 88: "X" is currently free
            break;case 89: window.event.keyCode=1616; // KASRE = 0x0650
            //break;case 90: window.event.keyCode=1603; // KAF ARABI = 0x0643
			break;case 90: window.event.keyCode=1705; // KAF Farsi = 0x06A9
            break;case 91: window.event.keyCode=1580; // JIM = 0x062C
            break;case 92: window.event.keyCode=1688; // 
            break;case 93: window.event.keyCode=1670; // CHE = 0x0686
            break;case 94: window.event.keyCode= 215; // ZARB = 0x00D7
            break;case 95: window.event.keyCode=1600; // KESHIDE = 0x0640
            break;case 96: window.event.keyCode=1662; // 
            break;case 97: window.event.keyCode=1588; // SHIN = 0x0634
            break;case 98: window.event.keyCode=1584; // ZAL = 0x0630
            break;case 99: window.event.keyCode=1586; // ZE = 0x0632
            break;case 100: window.event.keyCode=1610; // YE = 0x06CC
//             break;case 100: window.event.keyCode=1740; // YE = 0x06CC
            break;case 101: window.event.keyCode=1579; // THE = 0x062B
            break;case 102: window.event.keyCode=1576; // BE = 0x0628
            break;case 103: window.event.keyCode=1604; // LAM = 0x0644
            break;case 104: window.event.keyCode=1575; // ALEF = 0x0627
            break;case 105: window.event.keyCode=1607; // HE = 0x0647
            break;case 106: window.event.keyCode=1578; // TE = 0x062A
            break;case 107: window.event.keyCode=1606; // NOON = 0x0646
            break;case 108: window.event.keyCode=1605; // MIM = 0x0645
            break;case 109: window.event.keyCode=1574; // 
            break;case 110: window.event.keyCode=1583; // DAL = 0x062F
            break;case 111: window.event.keyCode=1582; // KHE = 0x062E
            break;case 112: window.event.keyCode=1581; // HE JIMI = 0x062D
            break;case 113: window.event.keyCode=1590; // ZAD = 0x0636
            break;case 114: window.event.keyCode=1602; // GHAF = 0x0642
            break;case 115: window.event.keyCode=1587; // SIN = 0x0633
            break;case 116: window.event.keyCode=1601; // FE = 0x0641
            break;case 117: window.event.keyCode=1593; // EYN = 0x0639
            break;case 118: window.event.keyCode=1585; // RE = 0x0631
            break;case 119: window.event.keyCode=1589; // SAD = 0x0635
            break;case 120: window.event.keyCode=1591; // TAA = 0x0637
            break;case 121: window.event.keyCode=1594; // GHEYN = 0x063A
            break;case 122: window.event.keyCode=1592; // ZAA = 0x0638
            break;case 123: window.event.keyCode= 125; // AKOLAAD BASTE = 0x007D
//             break;case 124: window.event.keyCode= 124; // | = 0x007C
            break;case 125: window.event.keyCode= 123; // AKOLAAD BAAZ = 0x007B
            //   break;case 126: "~" is currently free
         }
      }
      window.event.returnValue=true;
   }
