﻿


var megaTeluguHashTable = '{"\'":"\'", "a" : "అ", "అa" : "ఆ", "A" : "ఆ", "అ\'" :"ఆ", \
                            "i" : "ఇ", "ఇi" :"ఈ", "ఇa": "ఈ", "ఎi" : "ఈ", "ఇ\'":"ఈ", "I":"ఈ", \
                            "u":"ఉ", "ఉu":"ఊ", "ఒo":"ఊ", "U":"ఊ", "ఉa":"ఊ", "ఉ\'":"ఊ", \
                            "R":"ఋ", "ఋu":"ౠ", "ఋU":"ౠ", "e":"ఎ", "ఎa":"ఏ", "అe":"ఏ", "E":"ఏ", "ఎ\'":"ఏ", \
                            "అi":"ఐ", "o":"ఒ", "ఒe":"ఓ", "O":"ఓ", "ఒa":"ఓ", "ఒ\'":"ఓ", \
                            "అu":"ఔ", "ఒu":"ఔ", \
                            "k":"క్","క్a":"క","క్A":"కా","కa":"కా", "క\'":"కా","క్i":"కి", "క్I":"కీ", "కిi":"కీ",\
                            "కెe":"కీ", "కిa":"కీ", "క్u":"కు","క్U":"కూ","కుu":"కూ","కొo":"కూ","కుa":"కూ", "కు\'":"కూ", \
                            "క్R":"కృ", "కృu":"కౄ", "కృU":"కౄ","క్e":"కె", "కెe":"కే", "కెa":"కే", "క్E":"కే", "కె\'":"కే",\
                            "కi":"కై", "క్o":"కొ", "కొa":"కో","కొe":"కో", "క్O":"కో", "కొ\'":"కో", "కu":"కౌ", "కొu":"కౌ", \
                            "కM":"కం", "క్M":"కం", "క@":"కః", "కఃh":"కః", "కఃH":"కః","క్@":"కః",\
                            "క్h":"ఖ్","క్H":"ఖ్","K":"ఖ్","ఖ్h":"ఖ్","ఖ్H":"ఖ్",\
                            "ఖ్a":"ఖ","ఖ్A":"ఖా","ఖa":"ఖా", "ఖ\'":"ఖా","ఖ్i":"ఖి", "ఖ్I":"ఖీ", "ఖిi":"ఖీ",\
                            "ఖెe":"ఖీ", "ఖిa":"ఖీ", "ఖ్u":"ఖు","ఖ్U":"ఖూ","ఖుu":"ఖూ","ఖొo":"ఖూ","ఖుa":"ఖూ", "ఖు\'":"ఖూ", \
                            "ఖ్R":"ఖృ", "ఖృu":"ఖౄ", "ఖృU":"ఖౄ","ఖ్e":"ఖె", "ఖెe":"ఖే", "ఖెa":"ఖే", "ఖ్E":"ఖే", "ఖె\'":"ఖే",\
                            "ఖi":"ఖై", "ఖ్o":"ఖొ", "ఖొa":"ఖో","ఖొe":"ఖో", "ఖ్O":"ఖో", "ఖొ\'":"ఖో", "ఖu":"ఖౌ", "ఖొu":"ఖౌ", \
                            "ఖM":"ఖం", "ఖ్M":"ఖం", "ఖ@":"ఖః", "ఖఃh":"ఖః", "ఖఃH":"ఖః","ఖ్@":"ఖః",\
                            "g":"గ్","గ్a":"గ","గ్A":"గా","గa":"గా", "గ\'":"గా","గ్i":"గి", "గ్I":"గీ", "గిi":"గీ",\
                            "గెe":"గీ", "గిa":"గీ", "గ్u":"గు","గ్U":"గూ","గుu":"గూ","గొo":"గూ","గుa":"గూ", "గు\'":"గూ", \
                            "గ్R":"గృ", "గృu":"గౄ", "గృU":"గౄ","గ్e":"గె", "గెe":"గే", "గెa":"గే", "గ్E":"గే", "గె\'":"గే",\
                            "గi":"గై", "గ్o":"గొ", "గొa":"గో","గొe":"గో", "గ్O":"గో", "గొ\'":"గో", "గu":"గౌ", "గొu":"గౌ", \
                            "గM":"గం", "గ్M":"గం", "గ@":"గః", "గఃh":"గః", "గఃH":"గః","గ్@":"గః",\
                            "గ్h":"ఘ్","గ్H":"ఘ్", "G":"ఘ్", "ఘ్h":"ఘ్", "ఘ్H":"ఘ్", \
                            "ఘ్a":"ఘ","ఘ్A":"ఘా","ఘa":"ఘా",  "ఘ\'":"ఘా","ఘ్i":"ఘి", "ఘ్I":"ఘీ", "ఘిi":"ఘీ",\
                            "ఘెe":"ఘీ", "ఘిa":"ఘీ", "ఘ్u":"ఘు","ఘ్U":"ఘూ","ఘుu":"ఘూ","ఘొo":"ఘూ","ఘుa":"ఘూ", "ఘు\'":"ఘూ", \
                            "ఘ్R":"ఘృ", "ఘృu":"ఘౄ", "ఘృU":"ఘౄ","ఘ్e":"ఘె", "ఘెe":"ఘే", "ఘెa":"ఘే", "ఘ్E":"ఘే", "ఘె\'":"ఘే",\
                            "ఘi":"ఘై", "ఘ్o":"ఘొ", "ఘొa":"ఘో","ఘొe":"ఘో", "ఘ్O":"ఘో", "ఘొ\'":"ఘో", "ఘu":"ఘౌ", "ఘొu":"ఘౌ", \
                            "ఘM":"ఘం", "ఘ్M":"ఘం", "ఘ@":"ఘః", "ఘఃh":"ఘః", "ఘఃH":"ఘః","ఘ్@":"ఘః",\
                            "~":"~", "~m":"ఙ్", "~j":"ఙ్",\
                            "ఙ్a":"ఙ","ఙ్A":"ఙా","ఙa":"ఙా", "ఙ\'":"ఙా","ఙ్i":"ఙి", "ఙ్I":"ఙీ", "ఙిi":"ఙీ",\
                            "ఙెe":"ఙీ", "ఙిa":"ఙీ", "ఙ్u":"ఙు","ఙ్U":"ఙూ","ఙుu":"ఙూ","ఙొo":"ఙూ","ఙుa":"ఙూ", "ఙు\'":"ఙూ", \
                            "ఙ్R":"ఙృ", "ఙృu":"ఙౄ", "ఙృU":"ఙౄ","ఙ్e":"ఙె", "ఙెe":"ఙే", "ఙెa":"ఙే", "ఙ్E":"ఙే", "ఙె\'":"ఙే",\
                            "ఙi":"ఙై", "ఙ్o":"ఙొ", "ఙొa":"ఙో","ఙొe":"ఙో", "ఙ్O":"ఙో", "ఙొ\'":"ఙో", "ఙu":"ఙౌ", "ఙొu":"ఙౌ", \
                            "ఙM":"ఙం", "ఙ్M":"ఙం", "ఙ@":"ఙః", "ఙఃh":"ఙః", "ఙఃH":"ఙః","ఙ్@":"ఙః",\
                            "c":"చ్", "చ్h":"చ్", "చ్H":"చ్", \
                            "చ్a":"చ","చ్A":"చా","చa":"చా", "చ\'":"చా","చ్i":"చి", "చ్I":"చీ", "చిi":"చీ",\
                            "చెe":"చీ", "చిa":"చీ", "చ్u":"చు","చ్U":"చూ","చుu":"చూ","చొo":"చూ","చుa":"చూ", "చు\'":"చూ", \
                            "చ్R":"చృ", "చృu":"చౄ", "చృU":"చౄ","చ్e":"చె", "చెe":"చే", "చెa":"చే", "చ్E":"చే", "చె\'":"చే",\
                            "చi":"చై", "చ్o":"చొ", "చొa":"చో","చొe":"చో", "చ్O":"చో", "చొ\'":"చో", "చu":"చౌ", "చొu":"చౌ", \
                            "చM":"చం", "చ్M":"చం", "చ@":"చః", "చఃh":"చః", "చఃH":"చః","చ్@":"చః",\
                            "C":"ఛ్", "ఛ్h":"ఛ్", "ఛ్H":"ఛ్", \
                            "ఛ్a":"ఛ","ఛ్A":"ఛా","ఛa":"ఛా", "ఛ\'":"ఛా","ఛ్i":"ఛి", "ఛ్I":"ఛీ", "ఛిi":"ఛీ",\
                            "ఛెe":"ఛీ", "ఛిa":"ఛీ", "ఛ్u":"ఛు","ఛ్U":"ఛూ","ఛుu":"ఛూ","ఛొo":"ఛూ","ఛుa":"ఛూ", "ఛు\'":"ఛూ", \
                            "ఛ్R":"ఛృ", "ఛృu":"ఛౄ", "ఛృU":"ఛౄ","ఛ్e":"ఛె", "ఛెe":"ఛే", "ఛెa":"ఛే", "ఛ్E":"ఛే", "ఛె\'":"ఛే",\
                            "ఛi":"ఛై", "ఛ్o":"ఛొ", "ఛొa":"ఛో","ఛొe":"ఛో", "ఛ్O":"ఛో", "ఛొ\'":"ఛో", "ఛu":"ఛౌ", "ఛొu":"ఛౌ", \
                            "ఛM":"ఛం", "ఛ్M":"ఛం", "ఛ@":"ఛః", "ఛఃh":"ఛః", "ఛఃH":"ఛః","ఛ్@":"ఛః",\
                            "j":"జ్",  \
                            "జ్a":"జ","జ్A":"జా","జa":"జా", "జ\'":"జా","జ్i":"జి", "జ్I":"జీ", "జిi":"జీ",\
                            "జెe":"జీ", "జిa":"జీ", "జ్u":"జు","జ్U":"జూ","జుu":"జూ","జొo":"జూ","జుa":"జూ", "జు\'":"జూ", \
                            "జ్R":"జృ", "జృu":"జౄ", "జృU":"జౄ","జ్e":"జె", "జెe":"జే", "జెa":"జే", "జ్E":"జే", "జె\'":"జే",\
                            "జi":"జై", "జ్o":"జొ", "జొa":"జో","జొe":"జో", "జ్O":"జో", "జొ\'":"జో", "జu":"జౌ", "జొu":"జౌ", \
                            "జM":"జం", "జ్M":"జం", "జ@":"జః", "జఃh":"జః", "జఃH":"జః","జ్@":"జః",\
                            "జ్h":"ఝ్", "జ్H":"ఝ్", "J":"ఝ్", "ఝ్h":"ఝ్", "ఝ్H":"ఝ్",\
                            "ఝ్a":"ఝ","ఝ్A":"ఝా","ఝa":"ఝా",  "ఝ\'":"ఝా","ఝ్i":"ఝి", "ఝ్I":"ఝీ", "ఝిi":"ఝీ",\
                            "ఝెe":"ఝీ", "ఝిa":"ఝీ", "ఝ్u":"ఝు","ఝ్U":"ఝూ","ఝుu":"ఝూ","ఝొo":"ఝూ","ఝుa":"ఝూ", "ఝు\'":"ఝూ", \
                            "ఝ్R":"ఝృ", "ఝృu":"ఝౄ", "ఝృU":"ఝౄ","ఝ్e":"ఝె", "ఝెe":"ఝే", "ఝెa":"ఝే", "ఝ్E":"ఝే", "ఝె\'":"ఝే",\
                            "ఝi":"ఝై", "ఝ్o":"ఝొ", "ఝొa":"ఝో","ఝొe":"ఝో", "ఝ్O":"ఝో", "ఝొ\'":"ఝో", "ఝu":"ఝౌ", "ఝొu":"ఝౌ", \
                            "ఝM":"ఝం", "ఝ్M":"ఝం", "ఝ@":"ఝః", "ఝఃh":"ఝః", "ఝఃH":"ఝః","ఝ్@":"ఝః",\
                            "~n":"ఞ్", \
                            "ఞ్a":"ఞ","ఞ్A":"ఞా","ఞa":"ఞా", "ఞ\'":"ఞా","ఞ్i":"ఞి", "ఞ్I":"ఞీ", "ఞిi":"ఞీ",\
                            "ఞెe":"ఞీ", "ఞిa":"ఞీ", "ఞ్u":"ఞు","ఞ్U":"ఞూ","ఞుu":"ఞూ","ఞొo":"ఞూ","ఞుa":"ఞూ", "ఞు\'":"ఞూ", \
                            "ఞ్R":"ఞృ", "ఞృu":"ఞౄ", "ఞృU":"ఞౄ","ఞ్e":"ఞె", "ఞెe":"ఞే", "ఞెa":"ఞే", "ఞ్E":"ఞే", "ఞె\'":"ఞే",\
                            "ఞi":"ఞై", "ఞ్o":"ఞొ", "ఞొa":"ఞో","ఞొe":"ఞో", "ఞ్O":"ఞో", "ఞొ\'":"ఞో", "ఞu":"ఞౌ", "ఞొu":"ఞౌ", \
                            "ఞM":"ఞం", "ఞ్M":"ఞం", "ఞ@":"ఞః", "ఞఃh":"ఞః", "ఞఃH":"ఞః","ఞ్@":"ఞః",\
                            "T":"ట్", "త్\'":"ట్", \
                            "ట్a":"ట","ట్A":"టా","టa":"టా", "ట\'":"టా","ట్i":"టి", "ట్I":"టీ", "టిi":"టీ",\
                            "టెe":"టీ", "టిa":"టీ", "ట్u":"టు","ట్U":"టూ","టుu":"టూ","టొo":"టూ","టుa":"టూ", "టు\'":"టూ", \
                            "ట్R":"టృ", "టృu":"టౄ", "టృU":"టౄ","ట్e":"టె", "టెe":"టే", "టెa":"టే", "ట్E":"టే", "టె\'":"టే",\
                            "టi":"టై", "ట్o":"టొ", "టొa":"టో","టొe":"టో", "ట్O":"టో", "టొ\'":"టో", "టu":"టౌ", "టొu":"టౌ", \
                            "టM":"టం", "ట్M":"టం", "ట@":"టః", "టఃh":"టః", "టఃH":"టః","ట్@":"టః",\
                            "ట్h":"ఠ్", "ట్H":"ఠ్", "థ్\'":"ఠ్",\
                            "ఠ్a":"ఠ","ఠ్A":"ఠా","ఠa":"ఠా", "ఠ\'":"ఠా","ఠ్i":"ఠి", "ఠ్I":"ఠీ", "ఠిi":"ఠీ",\
                            "ఠెe":"ఠీ", "ఠిa":"ఠీ", "ఠ్u":"ఠు","ఠ్U":"ఠూ","ఠుu":"ఠూ","ఠొo":"ఠూ","ఠుa":"ఠూ", "ఠు\'":"ఠూ", \
                            "ఠ్R":"ఠృ", "ఠృu":"ఠౄ", "ఠృU":"ఠౄ","ఠ్e":"ఠె", "ఠెe":"ఠే", "ఠెa":"ఠే", "ఠ్E":"ఠే", "ఠె\'":"ఠే",\
                            "ఠi":"ఠై", "ఠ్o":"ఠొ", "ఠొa":"ఠో","ఠొe":"ఠో", "ఠ్O":"ఠో", "ఠొ\'":"ఠో", "ఠu":"ఠౌ", "ఠొu":"ఠౌ", \
                            "ఠM":"ఠం", "ఠ్M":"ఠం", "ఠ@":"ఠః", "ఠఃh":"ఠః", "ఠఃH":"ఠః","ఠ్@":"ఠః",\
                            "D":"డ్", "ద్\'":"డ్", \
                            "డ్a":"డ","డ్A":"డా","డa":"డా", "డ\'":"డా","డ్i":"డి", "డ్I":"డీ", "డిi":"డీ",\
                            "డెe":"డీ", "డిa":"డీ", "డ్u":"డు","డ్U":"డూ","డుu":"డూ","డొo":"డూ","డుa":"డూ", "డు\'":"డూ", \
                            "డ్R":"డృ", "డృu":"డౄ", "డృU":"డౄ","డ్e":"డె", "డెe":"డే", "డెa":"డే", "డ్E":"డే", "డె\'":"డే",\
                            "డi":"డై", "డ్o":"డొ", "డొa":"డో","డొe":"డో", "డ్O":"డో", "డొ\'":"డో", "డu":"డౌ", "డొu":"డౌ", \
                            "డM":"డం", "డ్M":"డం", "డ@":"డః", "డఃh":"డః", "డఃH":"డః","డ్@":"డః",\
                            "డ్h":"ఢ్", "డ్H":"ఢ్","ధ్\'":"ఢ్", \
                            "ఢ్a":"ఢ","ఢ్A":"ఢా","ఢa":"ఢా", "ఢ\'":"ఢా","ఢ్i":"ఢి", "ఢ్I":"ఢీ", "ఢిi":"ఢీ",\
                            "ఢెe":"ఢీ", "ఢిa":"ఢీ", "ఢ్u":"ఢు","ఢ్U":"ఢూ","ఢుu":"ఢూ","ఢొo":"ఢూ","ఢుa":"ఢూ", "ఢు\'":"ఢూ", \
                            "ఢ్R":"ఢృ", "ఢృu":"ఢౄ", "ఢృU":"ఢౄ","ఢ్e":"ఢె", "ఢెe":"ఢే", "ఢెa":"ఢే", "ఢ్E":"ఢే", "ఢె\'":"ఢే",\
                            "ఢi":"ఢై", "ఢ్o":"ఢొ", "ఢొa":"ఢో","ఢొe":"ఢో", "ఢ్O":"ఢో", "ఢొ\'":"ఢో", "ఢu":"ఢౌ", "ఢొu":"ఢౌ", \
                            "ఢM":"ఢం", "ఢ్M":"ఢం", "ఢ@":"ఢః", "ఢఃh":"ఢః", "ఢఃH":"ఢః","ఢ్@":"ఢః",\
                            "N":"ణ్", "న్h":"ణ్", "న్H":"ణ్", \
                            "ణ్a":"ణ","ణ్A":"ణా","ణa":"ణా", "ణ\'":"ణా","ణ్i":"ణి", "ణ్I":"ణీ", "ణిi":"ణీ",\
                            "ణెe":"ణీ", "ణిa":"ణీ", "ణ్u":"ణు","ణ్U":"ణూ","ణుu":"ణూ","ణొo":"ణూ","ణుa":"ణూ", "ణు\'":"ణూ", \
                            "ణ్R":"ణృ", "ణృu":"ణౄ", "ణృU":"ణౄ","ణ్e":"ణె", "ణెe":"ణే", "ణెa":"ణే", "ణ్E":"ణే", "ణె\'":"ణే",\
                            "ణi":"ణై", "ణ్o":"ణొ", "ణొa":"ణో","ణొe":"ణో", "ణ్O":"ణో", "ణొ\'":"ణో", "ణu":"ణౌ", "ణొu":"ణౌ", \
                            "ణM":"ణం", "ణ్M":"ణం", "ణ@":"ణః", "ణఃh":"ణః", "ణఃH":"ణః","ణ్@":"ణః",\
                            "t":"త్", \
                            "త్a":"త","త్A":"తా","తa":"తా", "త\'":"తా","త్i":"తి", "త్I":"తీ", "తిi":"తీ",\
                            "తెe":"తీ", "తిa":"తీ", "త్u":"తు","త్U":"తూ","తుu":"తూ","తొo":"తూ","తుa":"తూ", "తు\'":"తూ", \
                            "త్R":"తృ", "తృu":"తౄ", "తృU":"తౄ","త్e":"తె", "తెe":"తే", "తెa":"తే", "త్E":"తే", "తె\'":"తే",\
                            "తi":"తై", "త్o":"తొ", "తొa":"తో","తొe":"తో", "త్O":"తో", "తొ\'":"తో", "తu":"తౌ", "తొu":"తౌ", \
                            "తM":"తం", "త్M":"తం", "త@":"తః", "తఃh":"తః", "తఃH":"తః","త్@":"తః",\
                            "త్h":"థ్","త్H":"థ్", \
                            "థ్a":"థ","థ్A":"థా","థa":"థా", "థ\'":"థా","థ్i":"థి", "థ్I":"థీ", "థిi":"థీ",\
                            "థెe":"థీ", "థిa":"థీ", "థ్u":"థు","థ్U":"థూ","థుu":"థూ","థొo":"థూ","థుa":"థూ", "థు\'":"థూ", \
                            "థ్R":"థృ", "థృu":"థౄ", "థృU":"థౄ","థ్e":"థె", "థెe":"థే", "థెa":"థే", "థ్E":"థే", "థె\'":"థే",\
                            "థi":"థై", "థ్o":"థొ", "థొa":"థో","థొe":"థో", "థ్O":"థో", "థొ\'":"థో", "థu":"థౌ", "థొu":"థౌ", \
                            "థM":"థం", "థ్M":"థం", "థ@":"థః", "థఃh":"థః", "థఃH":"థః","థ్@":"థః",\
                            "d":"ద్", \
                            "ద్a":"ద","ద్A":"దా","దa":"దా", "ద\'":"దా","ద్i":"ది", "ద్I":"దీ", "దిi":"దీ",\
                            "దెe":"దీ", "దిa":"దీ", "ద్u":"దు","ద్U":"దూ","దుu":"దూ","దొo":"దూ","దుa":"దూ", "దు\'":"దూ", \
                            "ద్R":"దృ", "దృu":"దౄ", "దృU":"దౄ","ద్e":"దె", "దెe":"దే", "దెa":"దే", "ద్E":"దే", "దె\'":"దే",\
                            "దi":"దై", "ద్o":"దొ", "దొa":"దో","దొe":"దో", "ద్O":"దో", "దొ\'":"దో", "దu":"దౌ", "దొu":"దౌ", \
                            "దM":"దం", "ద్M":"దం", "ద@":"దః", "దఃh":"దః", "దఃH":"దః","ద్@":"దః",\
                            "ద్h":"ధ్", "ద్H":"ధ్", \
                            "ధ్a":"ధ","ధ్A":"ధా","ధa":"ధా", "ధ\'":"ధా","ధ్i":"ధి", "ధ్I":"ధీ", "ధిi":"ధీ",\
                            "ధెe":"ధీ", "ధిa":"ధీ", "ధ్u":"ధు","ధ్U":"ధూ","ధుu":"ధూ","ధొo":"ధూ","ధుa":"ధూ", "ధు\'":"ధూ", \
                            "ధ్R":"ధృ", "ధృu":"ధౄ", "ధృU":"ధౄ","ధ్e":"ధె", "ధెe":"ధే", "ధెa":"ధే", "ధ్E":"ధే", "ధె\'":"ధే",\
                            "ధi":"ధై", "ధ్o":"ధొ", "ధొa":"ధో","ధొe":"ధో", "ధ్O":"ధో", "ధొ\'":"ధో", "ధu":"ధౌ", "ధొu":"ధౌ", \
                            "ధM":"ధం", "ధ్M":"ధం", "ధ@":"ధః", "ధఃh":"ధః", "ధఃH":"ధః","ధ్@":"ధః",\
                            "n":"న్", \
                            "న్a":"న","న్A":"నా","నa":"నా", "న\'":"నా","న్i":"ని", "న్I":"నీ", "నిi":"నీ",\
                            "నెe":"నీ", "నిa":"నీ", "న్u":"ను","న్U":"నూ","నుu":"నూ","నొo":"నూ","నుa":"నూ", "ను\'":"నూ", \
                            "న్R":"నృ", "నృu":"నౄ", "నృU":"నౄ","న్e":"నె", "నెe":"నే", "నెa":"నే", "న్E":"నే", "నె\'":"నే",\
                            "నi":"నై", "న్o":"నొ", "నొa":"నో","నొe":"నో", "న్O":"నో", "నొ\'":"నో", "నu":"నౌ", "నొu":"నౌ", \
                            "నM":"నం", "న్M":"నం", "న@":"నః", "నఃh":"నః", "నఃH":"నః","న్@":"నః",\
                            "p":"ప్", \
                            "ప్a":"ప","ప్A":"పా","పa":"పా", "ప\'":"పా","ప్i":"పి", "ప్I":"పీ", "పిi":"పీ",\
                            "పెe":"పీ", "పిa":"పీ", "ప్u":"పు","ప్U":"పూ","పుu":"పూ","పొo":"పూ","పుa":"పూ", "పు\'":"పూ", \
                            "ప్R":"పృ", "పృu":"పౄ", "పృU":"పౄ","ప్e":"పె", "పెe":"పే", "పెa":"పే", "ప్E":"పే", "పె\'":"పే",\
                            "పi":"పై", "ప్o":"పొ", "పొa":"పో","పొe":"పో", "ప్O":"పో", "పొ\'":"పో", "పu":"పౌ", "పొu":"పౌ", \
                            "పM":"పం", "ప్M":"పం", "ప@":"పః", "పఃh":"పః", "పఃH":"పః","ప్@":"పః",\
                            "f":"ఫ్", "P":"ఫ్", "ఫ్h":"ఫ్", "ఫ్H":"ఫ్", "ప్h":"ఫ్", "ప్H":"ఫ్", \
                            "ఫ్a":"ఫ","ఫ్A":"ఫా","ఫa":"ఫా", "ఫ\'":"ఫా","ఫ్i":"ఫి", "ఫ్I":"ఫీ", "ఫిi":"ఫీ",\
                            "ఫెe":"ఫీ", "ఫిa":"ఫీ", "ఫ్u":"ఫు","ఫ్U":"ఫూ","ఫుu":"ఫూ","ఫొo":"ఫూ","ఫుa":"ఫూ", "ఫు\'":"ఫూ", \
                            "ఫ్R":"ఫృ", "ఫృu":"ఫౄ", "ఫృU":"ఫౄ","ఫ్e":"ఫె", "ఫెe":"ఫే", "ఫెa":"ఫే", "ఫ్E":"ఫే", "ఫె\'":"ఫే",\
                            "ఫi":"ఫై", "ఫ్o":"ఫొ", "ఫొa":"ఫో","ఫొe":"ఫో", "ఫ్O":"ఫో", "ఫొ\'":"ఫో", "ఫu":"ఫౌ", "ఫొu":"ఫౌ", \
                            "ఫM":"ఫం", "ఫ్M":"ఫం", "ఫ@":"ఫః", "ఫఃh":"ఫః", "ఫఃH":"ఫః","ఫ్@":"ఫః",\
                            "b":"బ్", \
                            "బ్a":"బ","బ్A":"బా","బa":"బా", "బ\'":"బా","బ్i":"బి", "బ్I":"బీ", "బిi":"బీ",\
                            "బెe":"బీ", "బిa":"బీ", "బ్u":"బు","బ్U":"బూ","బుu":"బూ","బొo":"బూ","బుa":"బూ", "బు\'":"బూ", \
                            "బ్R":"బృ", "బృu":"బౄ", "బృU":"బౄ","బ్e":"బె", "బెe":"బే", "బెa":"బే", "బ్E":"బే", "బె\'":"బే",\
                            "బi":"బై", "బ్o":"బొ", "బొa":"బో","బొe":"బో", "బ్O":"బో", "బొ\'":"బో", "బu":"బౌ", "బొu":"బౌ", \
                            "బM":"బం", "బ్M":"బం", "బ@":"బః", "బఃh":"బః", "బఃH":"బః","బ్@":"బః",\
                            "B":"భ్", "బ్h":"భ్", "బ్H":"భ్", "భ్h":"భ్", "భ్H":"భ్",  \
                            "భ్a":"భ","భ్A":"భా","భa":"భా", "భ\'":"భా","భ్i":"భి", "భ్I":"భీ", "భిi":"భీ",\
                            "భెe":"భీ", "భిa":"భీ", "భ్u":"భు","భ్U":"భూ","భుu":"భూ","భొo":"భూ","భుa":"భూ", "భు\'":"భూ", \
                            "భ్R":"భృ", "భృu":"భౄ", "భృU":"భౄ","భ్e":"భె", "భెe":"భే", "భెa":"భే", "భ్E":"భే", "భె\'":"భే",\
                            "భi":"భై", "భ్o":"భొ", "భొa":"భో","భొe":"భో", "భ్O":"భో", "భొ\'":"భో", "భu":"భౌ", "భొu":"భౌ", \
                            "భM":"భం", "భ్M":"భం", "భ@":"భః", "భఃh":"భః", "భఃH":"భః","భ్@":"భః",\
                            "m":"మ్", \
                            "మ్a":"మ","మ్A":"మా","మa":"మా",  "మ\'":"మా","మ్i":"మి", "మ్I":"మీ", "మిi":"మీ",\
                            "మెe":"మీ", "మిa":"మీ", "మ్u":"ము","మ్U":"మూ","ముu":"మూ","మొo":"మూ","ముa":"మూ", "ము\'":"మూ", \
                            "మ్R":"మృ", "మృu":"మౄ", "మృU":"మౄ","మ్e":"మె", "మెe":"మే", "మెa":"మే", "మ్E":"మే", "మె\'":"మే",\
                            "మi":"మై", "మ్o":"మొ", "మొa":"మో","మొe":"మో", "మ్O":"మో", "మొ\'":"మో", "మu":"మౌ", "మొu":"మౌ", \
                            "మM":"మం", "మ్M":"మం", "మ@":"మః", "మఃh":"మః", "మఃH":"మః","మ్@":"మః",\
                            "y":"య్", \
                            "య్a":"య","య్A":"యా","యa":"యా", "య\'":"యా","య్i":"యి", "య్I":"యీ", "యిi":"యీ",\
                            "యెe":"యీ", "యిa":"యీ", "య్u":"యు","య్U":"యూ","యుu":"యూ","యొo":"యూ","యుa":"యూ", "యు\'":"యూ", \
                            "య్R":"యృ", "యృu":"యౄ", "యృU":"యౄ","య్e":"యె", "యెe":"యే", "యెa":"యే", "య్E":"యే", "యె\'":"యే",\
                            "యi":"యై", "య్o":"యొ", "యొa":"యో","యొe":"యో", "య్O":"యో", "యొ\'":"యో", "యu":"యౌ", "యొu":"యౌ", \
                            "యM":"యం", "య్M":"యం", "య@":"యః", "యఃh":"యః", "యఃH":"యః","య్@":"యః",\
                            "r":"ర్" , \
                            "ర్a":"ర","ర్A":"రా","రa":"రా", "ర\'":"రా","ర్i":"రి", "ర్I":"రీ", "రిi":"రీ",\
                            "రెe":"రీ", "రిa":"రీ", "ర్u":"రు","ర్U":"రూ","రుu":"రూ","రొo":"రూ","రుa":"రూ", "రు\'":"రూ", \
                            "ర్R":"రృ", "రృu":"రౄ", "రృU":"రౄ","ర్e":"రె", "రెe":"రే", "రెa":"రే", "ర్E":"రే", "రె\'":"రే",\
                            "రi":"రై", "ర్o":"రొ", "రొa":"రో","రొe":"రో", "ర్O":"రో", "రొ\'":"రో", "రu":"రౌ", "రొu":"రౌ", \
                            "రM":"రం", "ర్M":"రం", "ర@":"రః", "రఃh":"రః", "రఃH":"రః","ర్@":"రః",\
                            "l":"ల్", \
                            "ల్a":"ల","ల్A":"లా","లa":"లా", "ల\'":"లా","ల్i":"లి", "ల్I":"లీ", "లిi":"లీ",\
                            "లెe":"లీ", "లిa":"లీ", "ల్u":"లు","ల్U":"లూ","లుu":"లూ","లొo":"లూ","లుa":"లూ", "లు\'":"లూ", \
                            "ల్R":"లృ", "లృu":"లౄ", "లృU":"లౄ","ల్e":"లె", "లెe":"లే", "లెa":"లే", "ల్E":"లే", "లె\'":"లే",\
                            "లi":"లై", "ల్o":"లొ", "లొa":"లో","లొe":"లో", "ల్O":"లో", "లొ\'":"లో", "లu":"లౌ", "లొu":"లౌ", \
                            "లM":"లం", "ల్M":"లం", "ల@":"లః", "లఃh":"లః", "లఃH":"లః","ల్@":"లః",\
                            "v":"వ్", "w":"వ్", \
                            "వ్a":"వ","వ్A":"వా","వa":"వా", "వ\'":"వా","వ్i":"వి", "వ్I":"వీ", "విi":"వీ",\
                            "వెe":"వీ", "విa":"వీ", "వ్u":"వు","వ్U":"వూ","వుu":"వూ","వొo":"వూ","వుa":"వూ", "వు\'":"వూ", \
                            "వ్R":"వృ", "వృu":"వౄ", "వృU":"వౄ","వ్e":"వె", "వెe":"వే", "వెa":"వే", "వ్E":"వే", "వె\'":"వే",\
                            "వi":"వై", "వ్o":"వొ", "వొa":"వో","వొe":"వో", "వ్O":"వో", "వొ\'":"వో", "వu":"వౌ", "వొu":"వౌ", \
                            "వM":"వం", "వ్M":"వం", "వ@":"వః", "వఃh":"వః", "వఃH":"వః","వ్@":"వః",\
                            "S":"శ్", \
                            "శ్a":"శ","శ్A":"శా","శa":"శా", "శ\'":"శా","శ్i":"శి", "శ్I":"శీ", "శిi":"శీ",\
                            "శెe":"శీ", "శిa":"శీ", "శ్u":"శు","శ్U":"శూ","శుu":"శూ","శొo":"శూ","శుa":"శూ", "శు\'":"శూ", \
                            "శ్R":"శృ", "శృu":"శౄ", "శృU":"శౄ","శ్e":"శె", "శెe":"శే", "శెa":"శే", "శ్E":"శే", "శె\'":"శే",\
                            "శi":"శై", "శ్o":"శొ", "శొa":"శో","శొe":"శో", "శ్O":"శో", "శొ\'":"శో", "శu":"శౌ", "శొu":"శౌ", \
                            "శM":"శం", "శ్M":"శం", "శ@":"శః", "శఃh":"శః", "శఃH":"శః","శ్@":"శః",\
                            "స్h":"ష్", "స్H":"ష్", \
                            "ష్a":"ష","ష్A":"షా","షa":"షా", "ష\'":"షా","ష్i":"షి", "ష్I":"షీ", "షిi":"షీ",\
                            "షెe":"షీ", "షిa":"షీ", "ష్u":"షు","ష్U":"షూ","షుu":"షూ","షొo":"షూ","షుa":"షూ", "షు\'":"షూ", \
                            "ష్R":"షృ", "షృu":"షౄ", "షృU":"షౄ","ష్e":"షె", "షెe":"షే", "షెa":"షే", "ష్E":"షే", "షె\'":"షే",\
                            "షi":"షై", "ష్o":"షొ", "షొa":"షో","షొe":"షో", "ష్O":"షో", "షొ\'":"షో", "షu":"షౌ", "షొu":"షౌ", \
                            "షM":"షం", "ష్M":"షం", "ష@":"షః", "షఃh":"షః", "షఃH":"షః","ష్@":"షః",\
                            "s":"స్", \
                            "స్a":"స","స్A":"సా","సa":"సా", "స\'":"సా","స్i":"సి", "స్I":"సీ", "సిi":"సీ",\
                            "సెe":"సీ", "సిa":"సీ", "స్u":"సు","స్U":"సూ","సుu":"సూ","సొo":"సూ","సుa":"సూ", "సు\'":"సూ", \
                            "స్R":"సృ", "సృu":"సౄ", "సృU":"సౄ","స్e":"సె", "సెe":"సే", "సెa":"సే", "స్E":"సే", "సె\'":"సే",\
                            "సi":"సై", "స్o":"సొ", "సొa":"సో","సొe":"సో", "స్O":"సో", "సొ\'":"సో", "సu":"సౌ", "సొu":"సౌ", \
                            "సM":"సం", "స్M":"సం", "స@":"సః", "సఃh":"సః", "సఃH":"సః","స్@":"సః",\
                            "h":"హ్", "H":"హ్",\
                            "హ్a":"హ","హ్A":"హా","హa":"హా", "హ\'":"హా","హ్i":"హి", "హ్I":"హీ", "హిi":"హీ",\
                            "హెe":"హీ", "హిa":"హీ", "హ్u":"హు","హ్U":"హూ","హుu":"హూ","హొo":"హూ","హుa":"హూ", "హు\'":"హూ", \
                            "హ్R":"హృ", "హృu":"హౄ", "హృU":"హౄ","హ్e":"హె", "హెe":"హే", "హెa":"హే", "హ్E":"హే", "హె\'":"హే",\
                            "హi":"హై", "హ్o":"హొ", "హొa":"హో","హొe":"హో", "హ్O":"హో", "హొ\'":"హో", "హu":"హౌ", "హొu":"హౌ", \
                            "హM":"హం", "హ్M":"హం", "హ@":"హః", "హఃh":"హః", "హఃH":"హః","హ్@":"హః",\
                            "L":"ళ్", "ల్h":"ళ్","ల్H":"ళ్", "ళ్h":"ళ్", "ళ్H":"ళ్",\
                            "ళ్a":"ళ","ళ్A":"ళా","ళa":"ళా", "ళ\'":"ళా","ళ్i":"ళి", "ళ్I":"ళీ", "ళిi":"ళీ",\
                            "ళెe":"ళీ", "ళిa":"ళీ", "ళ్u":"ళు","ళ్U":"ళూ","ళుu":"ళూ","ళొo":"ళూ","ళుa":"ళూ", "ళు\'":"ళూ", \
                            "ళ్R":"ళృ", "ళృu":"ళౄ", "ళృU":"ళౄ","ళ్e":"ళె", "ళెe":"ళే", "ళెa":"ళే", "ళ్E":"ళే", "ళె\'":"ళే",\
                            "ళi":"ళై", "ళ్o":"ళొ", "ళొa":"ళో","ళొe":"ళో", "ళ్O":"ళో", "ళొ\'":"ళో", "ళu":"ళౌ", "ళొu":"ళౌ", \
                            "ళM":"ళం", "ళ్M":"ళం", "ళ@":"ళః", "ళఃh":"ళః", "ళఃH":"ళః","ళ్@":"ళః", \
                            "x":"క్ష్", "క్స్h":"క్ష్", "క్స్H":"క్ష్",  \
                            "క్ష్a":"క్ష","క్ష్A":"క్షా","క్షa":"క్షా", "క్ష\'":"క్షా","క్ష్i":"క్షి", "క్ష్I":"క్షీ", "క్షిi":"క్షీ",\
                            "క్షెe":"క్షీ", "క్షిa":"క్షీ", "క్ష్u":"క్షు","క్ష్U":"క్షూ","క్షుu":"క్షూ","క్షొo":"క్షూ","క్షుa":"క్షూ", "క్షు\'":"క్షూ", \
                            "క్ష్R":"క్షృ", "క్షృu":"క్షౄ", "క్షృU":"క్షౄ","క్ష్e":"క్షె", "క్షెe":"క్షే", "క్షెa":"క్షే", "క్ష్E":"క్షే", "క్షె\'":"క్షే",\
                            "క్షi":"క్షై", "క్ష్o":"క్షొ", "క్షొa":"క్షో","క్షొe":"క్షో", "క్ష్O":"క్షో", "క్షొ\'":"క్షో", "క్షu":"క్షౌ", "క్షొu":"క్షౌ", \
                            "క్షM":"క్షం", "క్ష్M":"క్షం", "క్ష@":"క్షః", "క్షఃh":"క్షః", "క్షఃH":"క్షః","క్ష్@":"క్షః", \
                            "~r":"ఱ్", \
                            "ఱ్a":"ఱ","ఱ్A":"ఱా","ఱa":"ఱా", "ఱ\'":"ఱా","ఱ్i":"ఱి", "ఱ్I":"ఱీ", "ఱిi":"ఱీ",\
                            "ఱెe":"ఱీ", "ఱిa":"ఱీ", "ఱ్u":"ఱు","ఱ్U":"ఱూ","ఱుu":"ఱూ","ఱొo":"ఱూ","ఱుa":"ఱూ", "ఱు\'":"ఱూ", \
                            "ఱ్R":"ఱృ", "ఱృu":"ఱౄ", "ఱృU":"ఱౄ","ఱ్e":"ఱె", "ఱెe":"ఱే", "ఱెa":"ఱే", "ఱ్E":"ఱే", "ఱె\'":"ఱే",\
                            "ఱi":"ఱై", "ఱ్o":"ఱొ", "ఱొa":"ఱో","ఱొe":"ఱో", "ఱ్O":"ఱో", "ఱొ\'":"ఱో", "ఱu":"ఱౌ", "ఱొu":"ఱౌ", \
                            "ఱM":"ఱం", "ఱ్M":"ఱం", "ఱ@":"ఱః", "ఱఃh":"ఱః", "ఱఃH":"ఱః","ఱ్@":"ఱః", \
                            "@n":"్", "_":"", \
                            "M":"ం"}'; 

/**************************************************************************************************
 * Global Variables
 * ************************************************************************************************/

var evaluatedTeluguHashTable = eval("("+megaTeluguHashTable+")"); 
var isTelugu = true; 
var tobeCommittedLength = 0; 
if (preLetter == undefined)
    var preLetter = ""; //new string(); 
var isOutputReady = false; 
var printLetter = true; 
var previousCharIsHash = false;
/**************************************************************************************************
 * Global Variables Region Ends here 
 * ************************************************************************************************/


/**************************************************************************************************
 * This functions converts given input RTS to Telugu 
 * This is heart of whole exercise 
 * This has capability to convert any number of characters/words/sentenses of RTS 
 * to telugu unicode, but we rarely give it three to four chars
 * ************************************************************************************************/

function ConvertToTelugu(input)
{

    var cur_pos = 0;  //current postion
    var output = "";  
    
    do
    {
        curLetter = input.substr(cur_pos, 1); 


        var intermediate = evaluatedTeluguHashTable[preLetter+curLetter]; 

        if (intermediate == undefined)
        {
            if (preLetter == "") // something like %
            {
                output += curLetter;
		isOutputReady = true; 
                cur_pos ++; 
	        printLetter = false; 
            }
            else
            {
                output += preLetter; 
		isOutputReady = true; 
                preLetter = ""; 
            }
	}
        
        else
        {
            preLetter = intermediate; 
            cur_pos ++; 

        }

    } while(cur_pos < input.length); 
    
    //output = output + preLetter; 
    
    return output; 
}
function HandleOnKeyDown(parentObject, event)
{
	var returnbool = true; 
	if (event.ctrlKey == false)
	{
		var key; 
		if (window.event)
		{
			key = event.keyCode;
		}
		else if (event.which)
		{
			key = event.which; 
		}
		CheckForF12(key);
		if (key == 8) //backspace 
		{
			HandleBackSpace(parentObject);
			returnbool = false; 
		}
		if ((key == 37) || (key == 38) || (key == 39) || (key == 40) )
		{
			HandleArrowKeys(parentObject);
		}
		// TODO: handle delete, arrow keys 
	}
	return returnbool;
}
function HandleArrowKeys(parentObject)
{
	//just print preletter
	var teKey = preLetter;
	InsertAtCursor(parentObject, teKey);
	preLetter = "";
	tobeCommittedLength = 0;
}
function HandleBackSpace(parentObject)
{
	DeleteSnippetKeepingOne(parentObject);
	tobeCommittedLength = 0;
	preLetter = "";
	/*
	tobeCommittedLength --; 
	if (preLetter != "")
	{
		preLetter = RemoveLastCharacter(preLetter);
	}
	*/
}
function RemoveLastCharacter(someString)
{
	if (someString.length != 0)
	{
		someString = someString.substring(0, someString.length-1); // TODO: check is this 7 working always? 
	}
	return someString; 
}
function HandleHash(parentObject)
{
	// We got hash input #
	isTelugu = !isTelugu; 
	SelectProperRadioButton();
	// TODO: switch the radio buttons 
	HandleArrowKeys(parentObject);
	if (previousCharIsHash == false)
	{
		printLetter = false;
		previousCharIsHash = true;
	}
}
function HandleNonAlphabeticKeys(key, parentObject)
{

	if (key == 35) // #
	{
		HandleHash(parentObject);
		return false;
	}

	else if ( (key == 39) || ( key == 64 ) || (( key >= 65) && (key <= 90)) || (key == 94) || ((key >= 97) && (key <= 122)) || (key == 126))
	{
		previousCharIsHash = false;
		return true;
	}	
	else
	{
		previousCharIsHash = false;
		HandleArrowKeys(parentObject);
		return false; 
	}
}
function ToTeFun(parentObject, event)
{
	printLetter = true; 
	if (event.ctrlKey == false)
	{
		printLetter = true; 
		var key ;//= event.keyCode	;
		if (window.event)  // IE 
		{
			key = event.keyCode;
		}
		else if (event.which) // firefox
		{
			key = event.which; 
		}
		var isAlpha = HandleNonAlphabeticKeys(key, parentObject)
		if ( (isTelugu == false) && (preLetter != "") )
		{
			HandleArrowKeys(parentObject);
		}
		if ( (isAlpha == true) && (isTelugu == true) ) // is alphabetic char
		{
			var strKey = String.fromCharCode(key);
			var teKey = ConvertToTelugu(strKey);
			printLetter = false;
			if (isOutputReady == true)
			{

				// Insert the output
				InsertAtCursor(parentObject, teKey);
				isOutputReady = false; 
				tobeCommittedLength = 0;
			}
			if (preLetter != "")
			{
				InsertAtCursor(parentObject, preLetter);
				tobeCommittedLength = preLetter.length;
			}
		}
	}
	else
	{
		HandleArrowKeys(parentObject);
	}
       // if ((printLetter == true) && (isAlpha == true) &&(isTelugu == true) )
	// 	tobeCommittedLength ++; 
	return printLetter; //type letter

}
function CheckForF12(k)
{
	if (k == 123) // F12 - toggle
	{
		isTelugu = !isTelugu; 
		SelectProperRadioButton();
	}
}
function DeleteSnippetKeepingOne(parentObject)
{
	// IE 
	if (document.selection)
	{
		parentObject.focus();
		var selected = document.selection.createRange();
		tobeCommittedLength--;
		selected.moveStart("character", -1 *tobeCommittedLength); // move back to uncommited chars
		tobeCommittedLength = 0; 
		selected.text="";

	}
	else if (parentObject.selectionStart || parentObject.selectionStart == '0')
	{
		//firefox
		var startPos = parentObject.selectionStart; 

		//startPos -= tobeCommittedLength;  // move back to uncommitted chars
		//tobeCommittedLength = 0; 

		var endPos = parentObject.selectionEnd; 
		var cursorPos = endPos; 
		var scrollTop = parentObject.scrollTop; 
		var withOutSnippet = parentObject.value.substring(0, startPos);
		// Now remove the snippet 
		tobeCommittedLength--;
		withOutSnippet = withOutSnippet.substring(0, (withOutSnippet.length - tobeCommittedLength));

		parentObject.value = withOutSnippet + parentObject.value.substring(endPos, parentObject.value.length);
		cursorPos = startPos - tobeCommittedLength; 

		parentObject.focus();
		parentObject.selectionStart = cursorPos; 
		parentObject.selectionEnd = cursorPos;
		parentObject.scrollTop = scrollTop; 
		tobeCommittedLength = 0; 
	}
	else
	{
		//TODO: remove last characters 
	}
}

// This will insert given letter by removing tobeCommittedLength 
// number of characters at the cursor in backwards direction
function InsertAtCursor(parentObject, teKey)
{
	// IE 
	if (document.selection)
	{
		parentObject.focus();
		var selected = document.selection.createRange();

		selected.moveStart("character", -1 *tobeCommittedLength); // move back to uncommited chars
	//	tobeCommittedLength = 0; 
		selected.text = teKey; 
	}
	else if (parentObject.selectionStart || parentObject.selectionStart == '0')
	{
		//firefox
		var startPos = parentObject.selectionStart; 

		//startPos -= tobeCommittedLength;  // move back to uncommitted chars
		//tobeCommittedLength = 0; 

		var endPos = parentObject.selectionEnd; 
		var cursorPos = endPos; 
		var scrollTop = parentObject.scrollTop; 
		var withOutSnippet = parentObject.value.substring(0, startPos);
		// Now remove the snippet 
		withOutSnippet = withOutSnippet.substring(0, (withOutSnippet.length - tobeCommittedLength));

		parentObject.value = withOutSnippet+teKey+parentObject.value.substring(endPos, parentObject.value.length);
		cursorPos = startPos + teKey.length - tobeCommittedLength; 

		parentObject.focus();
		parentObject.selectionStart = cursorPos; 
		parentObject.selectionEnd = cursorPos;
		parentObject.scrollTop = scrollTop; 
	//	tobeCommittedLength = 0; 
	}
	else
	{
		parentObject.value += teKey;  // TODO: remove tobeCommittedLength chars
	}
}
function OnTeluguRadioButtonClick()
{
	isTelugu = true; 
	focusTextBox();
}
function OnEnglishRadioButtonClick()
{
	isTelugu = false;
	focusTextBox();
}
function focusTextBox()
{
	document.getElementById("pATyaM").focus();

}
function SelectProperRadioButton()
{
	//
	if (isTelugu == true)
		document.getElementById("TLanguage").checked = true;
	else
		document.getElementById("ELanguage").checked = true;
}
