मिडियाविकि:Translitma.js

विकिपिडिया नं

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*
This script is a modified version of Alex benenson's cyrillic translitarator and this version was created by user Tatari
*/
var amhaHash='{"k":"ക്","ക്a":"ക","കa":"കാ","ക്i":"കി","ക്I":"കീ","കിi":"കിഇ","കേe":"കീ","ക്u":"കു","ക്U":"കൂ","കോo":"കൂ","കുu":"കൂ","ക്e":"കേ","കi":"കൈ","ക്o":"കോ","കu":"കൌ","ക്:":"കഃ","ക:":"കഃ","ക്O":"ക൉","ക൉M":"കാഁ","ക്E":"ക൅","ക൅M":"കഁ","ക്R":"കൃ","കൃu":"കൃ","കൃU":"കൄ","കൃഓo":"കൃഊ","കൃl":"കൢ","കൢu":"കൢ","കൢU":"കൣ","കൢഓo":"കൢഊ","ക്M":"കം","ക്h":"ഖ്","ഖ്a":"ഖ","ഖa":"ഖാ","ഖ്i":"ഖി","ഖ്I":"ഖീ","ഖിi":"ഖിഇ","ഖേe":"ഖീ","ഖ്u":"ഖു","ഖ്U":"ഖൂ","ഖോo":"ഖൂ","ഖുu":"ഖൂ","ഖ്e":"ഖേ","ഖi":"ഖൈ","ഖ്o":"ഖോ","ഖu":"ഖൌ","ഖ്:":"ഖഃ","ഖ:":"ഖഃ","ഖ്O":"ഖ൉","ഖ൉M":"ഖാഁ","ഖ്E":"ഖ൅","ഖ൅M":"ഖഁ","ഖ്R":"ഖൃ","ഖൃu":"ഖൃ","ഖൃU":"ഖൄ","ഖൃഓo":"ഖൃഊ","ഖ്M":"ഖം","ഖൃl":"ഖൢ","ഖൢu":"ഖൢ","ഖൢU":"ഖൣ","ഖൢഓo":"ഖൢഊ",';
amhaHash+='"g":"ഗ്","ഗ്a":"ഗ","ഗa":"ഗാ","ഗ്i":"ഗി","ഗ്I":"ഗീ","ഗിi":"ഗീ","ഗേe":"ഗീ","ഗ്u":"ഗു","ഗ്U":"ഗൂ","ഗോo":"ഗൂ","ഗുu":"ഗൂ","ഗ്e":"ഗേ","ഗi":"ഗൈ","ഗ്o":"ഗോ","ഗu":"ഗൌ","ഗ്:":"ഗഃ","ഗ:":"ഗഃ","ഗ്O":"ഗ൉","ഗ൉M":"ഗാഁ","ഗ്E":"ഗ൅","ഗ൅M":"ഗഁ","ഗ്R":"ഗൃ","ഗൃu":"ഗൃ","ഗൃU":"ഗൄ","ഗൃഓo":"ഗൄ","ഗ്M":"ഗം","ഗൃl":"ഗൢ","ഗൢu":"ഗൢ","ഗൢU":"ഗൣ","ഗൢo":"ഗൣ","ഗ്h":"ഘ്","ഘ്a":"ഘ","ഘa":"ഘാ","ഘ്i":"ഘി","ഘ്I":"ഘീ","ഘിi":"ഘീ","ഘേe":"ഘീ","ഘ്u":"ഘു","ഘ്U":"ഘൂ","ഘോo":"ഘൂ","ഘുu":"ഘൂ","ഘ്e":"ഘേ","ഘi":"ഘൈ","ഘ്o":"ഘോ","ഘu":"ഘൌ","ഘ്:":"ഘഃ","ഘ:":"ഘഃ","ഘ്O":"ഘ൉","ഘ൉M":"ഘാഁ","ഘ്E":"ഘ൅","ഘ൅M":"ഘഁ","ഘ്R":"ഘൃ","ഘൃu":"ഘൃ","ഘൃU":"ഘൄ","ഘൃഓo":"ഘൄ","ഘ്M":"ഘം","ഘൃl":"ഘൢ","ഘൢu":"ഘൢ","ഘൢU":"ഘൣ","ഘൢഓo":"ഘൣ","G":"ങ്","ങ്a":"ങ","ങa":"ങാ","ങ്i":"ങി","ങ്I":"ങീ","ങിi":"ങീ","ങേe":"ങീ","ങ്u":"ങു","ങ്U":"ങൂ","ങോo":"ങൂ","ങുu":"ങൂ","ങ്e":"ങേ","ങi":"ങൈ","ങ്o":"ങോ","ങu":"ങൌ","ങ്:":"ങഃ","ങ:":"ങഃ","ങ്O":"ങ൉","ങ൉M":"ങാഁ","ങ്E":"ങ൅","ങ൅M":"ങഁ","ങ്R":"ങൃ","ങൃu":"ങൃ","ങൃU":"ങൄ","ങൃഓo":"ങൄ","ങ്M":"ങം","ങൃl":"ങൢ","ങൢu":"ങൢ","ങൢU":"ങൣ","ങൢഓo":"ങൣ",';
amhaHash+='"c":"ച്","ch":"ച്","ച്a":"ച","ചa":"ചാ","ച്i":"ചി","ച്I":"ചീ","ചിi":"ചീ","ചേe":"ചീ","ച്u":"ചു","ച്U":"ചൂ","ചോo":"ചൂ","ചുu":"ചൂ","ച്e":"ചേ","ചi":"ചൈ","ച്o":"ചോ","ചu":"ചൌ","ച്:":"ചഃ","ച:":"ചഃ","ച്O":"ച൉","ച൉M":"ചാഁ","ച്E":"ച൅","ച൅M":"ചഁ","ച്R":"ചൃ","ചൃu":"ചൃ","ചൃU":"ചൄ","ചൃഓo":"ചൄ","ച്M":"ചം","ചൃl":"ചൢ","ചൢu":"ചൢ","ചൢU":"ചൣ","ചൢഓo":"ചൣ",';
amhaHash+='"C":"ഛ്","ച്h":"ഛ്","ഛ്h":"ഛ്","ഛ്a":"ഛ","ഛa":"ഛാ","ഛ്i":"ഛി","ഛ്I":"ഛീ","ഛിi":"ഛീ","ഛേe":"ഛീ","ഛ്u":"ഛു","ഛ്U":"ഛൂ","ഛോo":"ഛൂ","ഛുu":"ഛൂ","ഛ്e":"ഛേ","ഛi":"ഛൈ","ഛ്o":"ഛോ","ഛu":"ഛൌ","ഛ്:":"ഛഃ","ഛ:":"ഛഃ","ഛ്O":"ഛ൉","ഛ൉M":"ഛാഁ","ഛ്E":"ഛ൅","ഛ൅M":"ഛഁ","ഛ്R":"ഛൃ","ഛൃu":"ഛൃ","ഛൃU":"ഛൄ","ഛൃഓo":"ഛൄ","ഛ്M":"ഛം","ഛൃl":"ഛൢ","ഛൢu":"ഛൢ","ഛൢU":"ഛൣ","ഛൢഓo":"ഛൣ",';
amhaHash+='"j":"ജ്","ജ്a":"ജ","ജa":"ജാ","ജ്i":"ജി","ജ്I":"ജീ","ജിi":"ജീ","ജേe":"ജീ","ജ്u":"ജു","ജ്U":"ജൂ","ജോo":"ജൂ","ജുu":"ജൂ","ജ്e":"ജേ","ജi":"ജൈ","ജ്o":"ജോ","ജu":"ജൌ","ജ്:":"ജഃ","ജ:":"ജഃ","ജ്O":"ജ൉","ജ൉M":"ജാഁ","ജ്E":"ജ൅","ജ൅M":"ജഁ","ജ്R":"ജൃ","ജൃu":"ജൃ","ജൃU":"ജൄ","ജൃഓo":"ജൄ","ജ്M":"ജം","ജൃl":"ജൢ","ജൢu":"ജൢ","ജൢU":"ജൣ","ജൢഓo":"ജൣ","ജ്h":"ഝ്","ഝ്a":"ഝ","ഝa":"ഝാ","ഝ്i":"ഝി","ഝ്I":"ഝീ","ഝിi":"ഝീ","ഝേe":"ഝീ","ഝ്u":"ഝു","ഝ്U":"ഝൂ","ഝോo":"ഝൂ","ഝുu":"ഝൂ","ഝ്e":"ഝേ","ഝi":"ഝൈ","ഝ്o":"ഝോ","ഝu":"ഝൌ","ഝ്:":"ഞഃ","ഝ്a:":"ഝഃ","ഝ്O":"ഝ൉","ഝ൉M":"ഝാഁ","ഝ്E":"ഝ൅","ഝ൅M":"ഝഁ","ഝ്R":"ഝൃ","ഝൃu":"ഝൃ","ഝൃU":"ഝൄ","ഝൃഓo":"ഝൄ","ഝ്M":"ഝം","ഝൃl":"ഝൢ","ഝൢu":"ഝൢ","ഝൢU":"ഝൣ","ഝൢഓo":"ഝൣ",';
amhaHash+='"z":"ഝ്","ഝ:":"ഝഃ","Z":"ഝ്","Y":"ഞ്","ഞ്a":"ഞ","ഞa":"ഞാ","ഞ്i":"ഞി","ഞ്I":"ഞീ","ഞിi":"ഞീ","ഞേe":"ഞീ","ഞ്u":"ഞു","ഞ്U":"ഞൂ","ഞോo":"ഞൂ","ഞുu":"ഞൂ","ഞ്e":"ഞേ","ഞi":"ഞൈ","ഞ്o":"ഞോ","ഞu":"ഞൌ","ഞ:":"ഞഃ","ഞ്O":"ഞ൉","ഞ൉M":"ഞാഁ","ഞ്E":"ഞ൅","ഞ൅M":"ഞഁ","ഞ്R":"ഞൃ","ഞൃu":"ഞൃ","ഞൃU":"ഞൄ","ഞൃഓo":"ഞൄ","ഞ്M":"ഞം","ഞൃl":"ഞൢ","ഞൢu":"ഞൢ","ഞൢU":"ഞൣ","ഞൢഓo":"ഞൣ",';
amhaHash+='"T":"ട്","ട്a":"ട","ടa":"ടാ","ട്i":"ടി","ട്I":"ടീ","ടിi":"ടീ","ടേe":"ടീ","ട്u":"ടു","ട്U":"ടൂ","ടോo":"ടൂ","ടുu":"ടൂ","ട്e":"ടേ","ടi":"ടൈ","ട്o":"ടോ","ടu":"ടൌ","ട്:":"ടഃ","ട:":"ടഃ","ട്O":"ട൉","ട൉M":"ടാഁ","ട്E":"ട൅","ട൅M":"ടഁ","ട്R":"ടൃ","ടൃu":"ടൃ","ടൃU":"ടൄ","ടൃഓo":"ടൄ","ട്M":"ടം","ടൃl":"ടൢ","ടൢu":"ടൢ","ടൢU":"ടൣ","ടൢഓo":"ടൣ","ട്h":"ഠ്","ഠ്a":"ഠ","ഠa":"ഠാ","ഠ്i":"ഠി","ഠ്I":"ഠീ","ഠിi":"ഠീ","ഠേe":"ഠീ","ഠ്u":"ഠു","ഠ്U":"ഠൂ","ഠോo":"ഠൂ","ഠുu":"ഠൂ","ഠ്e":"ഠേ","ഠi":"ഠൈ","ഠ്o":"ഠോ","ഠu":"ഠൌ","ഠ്:":"ഠഃ","ഠ്a:":"ഠഃ","ഠ്O":"ഠ൉","ഠ൉M":"ഠാഁ","ഠ്E":"ഠ൅","ഠ൅M":"ഠഁ","ഠ്R":"ഠൃ","ഠൃu":"ഠൃ","ഠൃU":"ഠൄ","ഠൃഓo":"ഠൄ","ഠ്M":"ഠം","ഠൃl":"ഠൢ","ഠൢu":"ഠൢ","ഠൢU":"ഠൣ","ഠൢഓo":"ഠൣ",';
amhaHash+='"D":"ഡ്","ഡ്a":"ഡ","ഡa":"ഡാ","ഡ്i":"ഡി","ഡ്I":"ഡീ","ഡിi":"ഡീ","ഡേe":"ഡീ","ഡ്u":"ഡു","ഡ്U":"ഡൂ","ഡോo":"ഡൂ","ഡുu":"ഡൂ","ഡ്e":"ഡേ","ഡi":"ഡൈ","ഡ്o":"ഡോ","ഡu":"ഡൌ","ഡ്:":"ഡഃ","ഡ:":"ഡഃ","ഡ്O":"ഡ൉","ഡ൉M":"഑ാഁ","ഡ്E":"ഡ൅","ഡ൅M":"ഡഁ","ഡ്R":"ഡൃ","ഡൃu":"ഡൃ","ഡൃU":"ഡൄ","ഡൃഓo":"ഡൄ","ഡ്M":"ഡം","ഡൃl":"ഡൢ","ഡൢu":"ഡൢ","ഡൢU":"ഡൣ","ഡൢഓo":"ഡൣ","ഡ്h":"ഢ്","ഢ്a":"ഢ","ഢa":"ഢാ","ഢ്i":"ഢി","ഢ്I":"ഢീ","ഢിi":"ഢീ","ഢേe":"ഢീ","ഢ്u":"ഢു","ഢ്U":"ഢൂ","ഢോo":"ഢൂ","ഢുu":"ഢൂ","ഢ്e":"ഢേ","ഢi":"ഢൈ","ഢ്o":"ഢോ","ഢu":"ഢൌ","ഢ്:":"ഢഃ","ഢ്a:":"ഢഃ","ഢ്O":"ഢ൉","ഢ൉M":"ഢാഁ","ഢ്E":"ഢ൅","ഢ൅M":"ഢഁ","ഢ്R":"ഢൃ","ഢൃu":"ഢൃ","ഢൃU":"ഢൄ","ഢൃഓo":"ഢൄ","ഢ്M":"ഢം","ഢൃl":"ഢൢ","ഢൢu":"ഢൢ","ഢൢU":"ഢൣ","ഢൢഓo":"ഢൣ",';
amhaHash+='"N":"ണ്","ണ്a":"ണ","ണa":"ണാ","ണ്i":"ണി","ണ്I":"ണീ","ണിi":"ണീ","ണേe":"ണീ","ണ്u":"ണു","ണ്U":"ണൂ","ണോo":"ണൂ","ണുu":"ണൂ","ണ്e":"ണേ","ണi":"ണൈ","ണ്o":"ണോ","ണu":"ണൌ","ണ്:":"ണഃ","ണ:":"ണഃ","ണ്O":"ണ൉","ണ൉M":"ണാഁ","ണ്E":"ണ൅","ണ൅M":"ണഁ","ണ്R":"ണൃ","ണൃu":"ണൃ","ണൃU":"ണൄ","ണൃഓo":"ണൄ","ണ്M":"ണം","ണൃl":"ണൢ","ണൢu":"ണൢ","ണൢU":"ണൣ","ണൢഓo":"ണൣ",';
amhaHash+='"t":"ത്","ത്a":"ത","തa":"താ","ത്i":"തി","ത്I":"തീ","തിi":"തീ","തേe":"തീ","ത്u":"തു","ത്U":"തൂ","തോo":"തൂ","തുu":"തൂ","ത്e":"തേ","തi":"തൈ","ത്o":"തോ","തu":"തൌ","ത്:":"തഃ","ത:":"തഃ","ത്O":"ത൉","ത൉M":"താഁ","ത്E":"ത൅","ത൅M":"തഁ","ത്R":"തൃ","തൃu":"തൃ","തൃU":"തൄ","തൃഓo":"തൄ","ത്M":"തം","തൃl":"തൢ","തൢu":"തൢ","തൢU":"തൣ","തൢഓo":"തൣ","ത്h":"ഥ്","ഥ്a":"ഥ","ഥa":"ഥാ","ഥ്i":"ഥി","ഥ്I":"ഥീ","ഥിi":"ഥീ","ഥേe":"ഥീ","ഥ്u":"ഥു","ഥ്U":"ഥൂ","ഥോo":"ഥൂ","ഥുu":"ഥൂ","ഥ്e":"ഥേ","ഥi":"ഥൈ","ഥ്o":"ഥോ","ഥu":"ഥൌ","ഥ്:":"ഥഃ","ഥ്a:":"ഥഃ","ഥ്O":"ഥ൉","ഥ൉M":"ഥാഁ","ഥ്E":"ഥ൅","ഥ൅M":"ഥഁ","ഥ്R":"ഥൃ","ഥൃu":"ഥൃ","ഥൃU":"ഥൄ","ഥൃഓo":"ഥൄ","ഥ്M":"ഥം","ഥൃl":"ഥൢ","ഥൢu":"ഥൢ","ഥൢU":"ഥൣ","ഥൢഓo":"ഥൣ",';
amhaHash+='"d":"ദ്","ദ്a":"ദ","ദa":"ദാ","ദ്i":"ദി","ദ്I":"ദീ","ദിi":"ദീ","ദേe":"ദീ","ദ്u":"ദു","ദ്U":"ദൂ","ദോo":"ദൂ","ദുu":"ദൂ","ദ്e":"ദേ","ദi":"ദൈ","ദ്o":"ദോ","ദu":"ദൌ","ദ്:":"ദഃ","ദ:":"ദഃ","ദ്O":"ദ൉","ദ൉M":"ദാഁ","ദ്E":"ദ൅","ദ൅M":"ദഁ","ദ്R":"ദൃ","ദൃu":"ദൃ","ദൃU":"ദൄ","ദൃഓo":"ദൄ","ദ്M":"ദം","ദൃl":"ദൢ","ദൢu":"ദൢ","ദൢU":"ദൣ","ദൢഓo":"ദൣ","ദ്h":"ധ്","ധ്a":"ധ","ധa":"ധാ","ധ്i":"ധി","ധ്I":"ധീ","ധിi":"ധീ","ധേe":"ധീ","ധ്u":"ധു","ധ്U":"ധൂ","ധോo":"ധൂ","ധുu":"ധൂ","ധ്e":"ധേ","ധi":"ധൈ","ധ്o":"ധോ","ധu":"ധൌ","ധ്:":"ധഃ","ധ്a:":"ധഃ","ധ്O":"ധ൉","ധ൉M":"ധാഁ","ധ്E":"ധ൅","ധേM":"ധഁ","ധ്R":"ധൃ","ധൃu":"ധൃ","ധൃU":"ധൄ","ധൃഓo":"ധൄ","ധ്M":"ധം","ധൃl":"ധൢ","ധൢu":"ധൢ","ധൢU":"ധൣ","ധൢഓo":"ധൣ",';
amhaHash+='"n":"ന്","ന്a":"ന","നa":"നാ","ന്i":"നി","ന്I":"നീ","നിi":"നീ","നേe":"നീ","ന്u":"നു","ന്U":"നൂ","നോo":"നൂ","നുu":"നൂ","ന്e":"നേ","നi":"നൈ","ന്o":"നോ","നu":"നൌ","ന്:":"നഃ","ന:":"നഃ","ന്O":"ന൉","ന൉M":"നാഁ","ന്E":"ന൅","ന൅M":"നഁ","ന്R":"നൃ","നൃu":"നൃ","നൃU":"നൄ","നൃഓo":"നൄ","ന്M":"നം","നൃl":"നൢ","നൢu":"നൢ","നൢU":"നൣ","നൢഓo":"നൣ",';
amhaHash+='"p":"പ്","പ്a":"പ","പa":"പാ","പ്i":"പി","പ്I":"പീ","പിi":"പീ","പേe":"പീ","പ്u":"പു","പ്U":"പൂ","പോo":"പൂ","പുu":"പൂ","പ്e":"പേ","പi":"പൈ","പ്o":"പോ","പu":"പൌ","പ്:":"പഃ","പ:":"പഃ","പ്O":"പ൉","പ൉M":"പാഁ","പ്E":"പ൅","പ൅M":"പഁ","പ്R":"പൃ","പൃu":"പൃ","പൃU":"പൄ","പൃഓo":"പൄ","പ്M":"പം","പൃl":"പൢ","പൢu":"പൢ","പൢU":"പൣ","പൢഓo":"പൣ",';
amhaHash+='"P":"പ്","പ്a:":"പഃ","പ്h":"ഫ്","ഫ്a":"ഫ","ഫa":"ഫാ","ഫ്i":"ഫി","ഫ്I":"ഫീ","ഫിi":"ഫീ","ഫ്ee":"ഫീ","ഫ്u":"ഫു","ഫ്U":"ഫൂ","ഫോo":"ഫൂ","ഫ്uu":"ഫൂ","ഫ്e":"ഫേ","ഫi":"ഫൈ","ഫ്o":"ഫോ","ഫu":"ഫൌ","ഫ്:":"ഫഃ","ഫ്a:":"ഫഃ","ഫ്O":"ഫ൉","ഫ൉M":"ഫാഁ","ഫ്E":"ഫ൅","ഫ൅M":"ഫഁ","ഫ്R":"ഫൃ","ഫൃu":"ഫൃ","ഫൃU":"ഫൄ","ഫൃഓo":"ഫൄ","ഫ്M":"ഫം","ഫൃl":"ഫൢ","ഫൢu":"ഫൢ","ഫൢU":"ഫൣ","ഫൢഓo":"ഫൣ",';
amhaHash+='"f":"ഫ്","F":"ഫ്","b":"ബ്","ബ്a":"ബ","ബa":"ബാ","ബ്i":"ബി","ബ്I":"ബീ","ബിi":"ബീ","ബേe":"ബീ","ബ്u":"ബു","ബ്U":"ബൂ","ബോo":"ബൂ","ബുu":"ബൂ","ബ്e":"ബേ","ബi":"ബൈ","ബ്o":"ബോ","ബu":"ബൌ","ബ്:":"ബഃ","ബ:":"ബഃ","ബ്O":"ബ൉","ബ൉M":"ബാഁ","ബ്E":"ബ൅","ബ൅M":"ബഁ","ബ്R":"ബൃ","ബൃu":"ബൃ","ബൃU":"ബൄ","ബൃഓo":"ബൄ","ബ്M":"ബം","ബൃl":"ബൢ","ബൢu":"ബൢ","ബൢU":"ബൣ","ബൢഓo":"ബൣ",';
amhaHash+='"B":"ബ്","ബ്h":"ഭ്","ഭ്a":"ഭ","ഭa":"ഭാ","ഭ്i":"ഭി","ഭ്I":"ഭീ","ഭിi":"ഭീ","ഭേe":"ഭീ","ഭ്u":"ഭു","ഭ്U":"ഭൂ","ഭോo":"ഭൂ","ഭുu":"ഭൂ","ഭ്e":"ഭേ","ഭi":"ഭൈ","ഭ്o":"ഭോ","ഭu":"ഭൌ","ഭ്:":"ഭഃ","ഭ്a:":"ഭഃ","ഭ്O":"ഭ൉","ഭ൉M":"ഭാഁ","ഭ്E":"ഭ൅","ഭ൅M":"ഭഁ","ഭൃ":"ഭൃ","ഭൃu":"ഭൃ","ഭൃU":"ഭൄ","ഭൃഓo":"ഭൄ","ഭ്M":"ഭം","ഭൃl":"ഭൢ","ഭൢu":"ഭൢ","ഭൢU":"ഭൣ","ഭൢഓo":"ഭൣ","U092DU094D":"ഭ്",';
amhaHash+='"m":"മ്","മ്a":"മ","മa":"മാ","മ്i":"മി","മ്I":"മീ","മിi":"മീ","മേe":"മീ","മ്u":"മു","മ്U":"മൂ","മോo":"മൂ","മുu":"മൂ","മ്e":"മേ","മi":"മൈ","മ്o":"മോ","മu":"മൌ","മ്:":"മഃ","മ:":"മഃ","മ്O":"മ൉","മ൉M":"മാഁ","മ്E":"മ൅","മ൅M":"മഁ","മ്R":"മൃ","മൃu":"മൃ","മൃU":"മൄ","മൃഓo":"മൄ","മ്M":"മം","മൃl":"മൢ","മൢu":"മൢ","മൢU":"മൣ","മൢഓo":"മൣ",';
amhaHash+='"y":"യ്","യ്a":"യ","യa":"യാ","യ്i":"യി","യ്I":"യീ","യിi":"യീ","യേe":"യീ","യ്u":"യു","യ്U":"യൂ","യോo":"യൂ","യുu":"യൂ","യ്e":"യേ","യi":"യൈ","യ്o":"യോ","യu":"യൌ","യ്:":"യഃ","യ:":"യഃ","യ്O":"യ൉","യ൉M":"യാഁ","യ്E":"യ൅","യ൅M":"യഁ","യ്R":"യൃ","യൃu":"യൃ","യൃU":"യൄ","യൃഓo":"യൄ","യ്M":"യം","യൃl":"യൢ","യൢu":"യൢ","യൢU":"യൣ","യൢഓo":"യൣ",';
amhaHash+='"r":"ര്","ര്r":"ര്‍","ര്a":"ര","രa":"രാ","ര്i":"രി","ര്I":"രീ","രിi":"രീ","രേe":"രീ","ര്u":"രു","ര്U":"രൂ","രോo":"രൂ","രുu":"രൂ","ര്e":"രേ","രi":"രൈ","ര്o":"രോ","രu":"രൌ","ര്:":"രഃ","ര:":"രഃ","ര്O":"ര൉","ര൉M":"രാഁ","ര്E":"ര൅","ര൅M":"രഁ","ര്M":"രം","രൢ":"രൢ","രൢu":"രൢ","രൢU":"രൣ","രൢഓo":"രൣ","ര്R":"രൃ","രൃu":"രൃ","രൃU":"രൄ","രൃഓo":"രൄ",';
amhaHash+='"l":"ല്","ല്a":"ല","ലa":"ലാ","ല്i":"ലി","ല്I":"ലീ","ലിi":"ലീ","ലേe":"ലീ","ല്u":"ലു","ല്U":"ലൂ","ലോo":"ലൂ","ലുu":"ലൂ","ല്e":"ലേ","ലi":"ലൈ","ല്o":"ലോ","ലu":"ലൌ","ല്:":"ലഃ","ല:":"ലഃ","ല്O":"ല൉","ല൉M":"ലാഁ","ല്E":"ല൅","ല൅M":"ലഁ","ല്R":"ലൃ","ലൃu":"ലൃ","ലൃU":"ലൄ","ലൃഓo":"ലൄ","ല്M":"ലം","ലൃl":"ലൢ","ലൢu":"ലൢ","ലൢU":"ലൣ","ലൢഓo":"ലൣ",';
amhaHash+='"v":"ഭ്","വ്a":"വ","വa":"വാ","വ്i":"വി","വ്I":"വീ","വിi":"വീ","വേe":"വീ","വ്u":"വു","വ്U":"വൂ","വോo":"വൂ","വുu":"വൂ","വ്e":"വേ","വi":"വൈ","വ്o":"വോ","വu":"വൌ","വ്:":"വഃ","വ:":"വഃ","വ്O":"വ൉","വ൉M":"വാഁ","വ്E":"വ൅","വ൅M":"വഁ","വ്R":"വൃ","വൃu":"വൃ","വൃU":"വൄ","വൃഓo":"വൃU","വ്M":"വം","വൃl":"വൢ","\u0935\u0962u":"വൢ","\u0935\u0962U":"വൣ","\u0935\u0962ഓo":"വൣ",';
amhaHash+='"V":"വ്","w":"വ്","W":"വ്","സ്h":"ശ്","ശ്a":"ശ","ശa":"ശാ","ശ്i":"ശി","ശ്I":"ശീ","ശിi":"ശീ","ശേe":"ശീ","ശ്u":"ശു","ശ്U":"ശൂ","ശോo":"ശൂ","ശുu":"ശൂ","ശ്e":"ശേ","ശi":"ശൈ","ശ്o":"ശോ","ശu":"ശൌ","ശ്:":"ശഃ","ശ്a:":"ശഃ","ശ്O":"ശ൉","ശ൉M":"ശാഁ","ശ്E":"ശ൅","ശ൅M":"ശഁ","ശ്rR":"ശരൃ","ശരൃu":"ശരൃ","ശരൃU":"ശരൄ","ശരൃoo":"ശരൄ","ശ്R":"ശൃ","ശൃu":"ശൃ","ശൃU":"ശൄ","ശൃഓo":"ശൄ","ശ്M":"ശം","ശൃl":"ശൢ","ശൢu":"ശൢ","ശൢU":"ശൣ","ശൢഓo":"ശൣ","ശ്h":"ഷ്","ഷ്a":"ഷ","ഷa":"ഷാ","ഷ്i":"ഷി","ഷ്I":"ഷീ","ഷിi":"ഷീ","ഷേe":"ഷീ","ഷ്u":"ഷു","ഷ്U":"ഷൂ","ഷോo":"ഷൂ","ഷുu":"ഷൂ","ഷ്e":"ഷേ","ഷi":"ഷൈ","ഷ്o":"ഷോ","ഷu":"ഷൌ","ഷ്:":"ഷഃ","ഷ:":"ഷഃ","ഷ്O":"ഷ൉","ഷ൉M":"ഷാഁ","ഷ്E":"ഷ൅","ഷ൅M":"ഷഁ","ഷ്R":"ഷൃ","ഷൃu":"ഷൃ","ഷൃU":"ഷൄ","ഷൃഓo":"ഷൄ","ഷ്M":"ഷം","ഷൃl":"ഷൢ","ഷൢu":"ഷൢ","ഷൢU":"ഷൣ","ഷൢഓo":"ഷൣ","ഷ്h":"ഷ്",';
amhaHash+='"s":"സ്","സ്a":"സ","സa":"സാ","സ്i":"സി","സ്I":"സീ","സിi":"സീ","സേe":"സീ","സ്u":"സു","സ്U":"സൂ","സോo":"സൂ","സുu":"സൂ","സ്e":"സേ","സi":"സൈ","സ്o":"സോ","സu":"സൌ","സ:":"സഃ","സാ:":"സഃ","സ്O":"സ൉","സ൉M":"സാഁ","സ്E":"സ൅","സ൅M":"സഁ","സ്R":"സൃ","സൃu":"സൃ","സൃU":"സൄ","സൃഓo":"സൄ","സ്M":"സം","സൃl":"സൢ","സൢu":"സൢ","സൢU":"സൣ","സൢഓo":"സൣ",';
amhaHash+='"S":"ഷ്","h":"ഹ്","ഹ്a":"ഹ","ഹa":"ഹാ","ഹ്i":"ഹി","ഹ്I":"ഹീ","ഹിi":"ഹീ","ഹേe":"ഹീ","ഹ്u":"ഹു","ഹ്U":"ഹൂ","ഹോo":"ഹൂ","ഹുu":"ഹൂ","ഹ്e":"ഹേ","ഹi":"ഹൈ","ഹ്o":"ഹോ","ഹu":"ഹൌ","ഹ്:":"ഹഃ","ഹ:":"ഹഃ","ഹ്O":"ഹ൉","ഹ൉M":"ഹാഁ","ഹ്E":"ഹ൅","ഹ൅M":"ഹഁ","ഹ്R":"ഹൃ","ഹൃu":"ഹൃ","ഹൃU":"ഹൄ","ഹൃഓo":"ഹൄ","ഹ്M":"ഹം","ഹൃl":"ഹൢ","ഹൢu":"ഹൢ","ഹൢU":"ഹൣ","ഹൢഓo":"ഹൣ",';
amhaHash+='"L":"ള്","ള്a":"ള","ളa":"ളാ","ള്i":"ളി","ള്I":"ളീ","ളിi":"ളീ","ളേe":"ളീ","ള്u":"ളു","ള്U":"ളൂ","ളോo":"ളൂ","ളുu":"ളൂ","ള്e":"ളേ","ളi":"ളൈ","ള്o":"ളോ","ളu":"ളൌ","ള്:":"ളഃ","ള:":"ളഃ","ള്O":"ള൉","ള൉M":"ളാഁ","ള്E":"ള൅","ള൅M":"ളഁ","ള്R":"ളൃ","ളൃu":"ളൃ","ളൃU":"ളൄ","ളൃഓo":"ളൄ","ള്M":"ളം","ളൃl":"ളൢ","ളൢu":"ളൢ","ളൢU":"ളൣ","ളൢഓo":"ളൣ",';
amhaHash+='"x":"ക്ഷ്","ക്ഷ്a":"ക്ഷ","ക്ഷa":"ക്ഷാ","ക്ഷ്i":"ക്ഷി","ക്ഷ്I":"ക്ഷീ","ക്ഷിi":"ക്ഷീ","ക്ഷേe":"ക്ഷീ","ക്ഷ്u":"ക്ഷു","ക്ഷ്U":"ക്ഷൂ","ക്ഷോo":"ക്ഷൂ","ക്ഷുu":"ക്ഷൂ","ക്ഷ്e":"ക്ഷേ","ക്ഷi":"ക്ഷൈ","ക്ഷ്o":"ക്ഷോ","ക്ഷu":"ക്ഷൌ","ക്ഷ്:":"ക്ഷഃ","ക്ഷ:":"ക്ഷഃ","ക്ഷ്O":"ക്ഷ൉","ക്ഷ൉M":"ക്ഷാഁ","ക്ഷ്E":"ക്ഷ൅","ക്ഷ൅M":"ക്ഷഁ","ക്ഷ്R":"ക്ഷൃ","ക്ഷൃu":"ക്ഷൃ","ക്ഷൃU":"ക്ഷൄ","ക്ഷൃഓo":"ക്ഷൄ","ക്ഷ്M":"ക്ഷം","ക്ഷൃl":"ക്ഷൢ","ക്ഷൢu":"ക്ഷൢ","ക്ഷൢU":"ക്ഷൣ","ക്ഷൢഓo":"ക്ഷൣ",';
amhaHash+='"X":"ക്ഷ്","ജ്n":"ജ്ഞ്","ഗ്y":"ജ്ഞ്","ജ്ഞ്a":"ജ്ഞ","ജ്ഞa":"ജ്ഞാ","ജ്ഞ്i":"ജ്ഞി","ജ്ഞ്I":"ജ്ഞീ","ജ്ഞിi":"ജ്ഞീ","ജ്ഞേe":"ജ്ഞീ","ജ്ഞ്u":"ജ്ഞു","ജ്ഞ്U":"ജ്ഞൂ","ജ്ഞോo":"ജ്ഞൂ","ജ്ഞുu":"ജ്ഞൂ","ജ്ഞ്e":"ജ്ഞേ","ജ്ഞi":"ജ്ഞൈ","ജ്ഞ്o":"ജ്ഞോ","ജ്ഞu":"ജ്ഞൌ","ജ്ഞ്:":"ജ്ഞഃ","ജ്ഞ്a:":"ജ്ഞഃ","ജ്ഞ്O":"ജ്ഞ൉","ജ്ഞ൉M":"ജ്ഞാഁ","ജ്ഞ്E":"ജ്ഞ൅","ജ്ഞ൅M":"ജ്ഞഁ","ജ്ഞ്R":"ജ്ഞൃ","ജ്ഞൃu":"ജ്ഞൃ","ജ്ഞൃU":"ജ്ഞൄ","ജ്ഞൃഓo":"ജ്ഞൄ","ജ്ഞ്M":"ജ്ഞം","ജ്ഞൃl":"ജ്ഞൢ","ജ്ഞൢu":"ജ്ഞൢ","ജ്ഞൢU":"ജ്ഞൣ","ജ്ഞൢഓo":"ജ്ഞൣ",';
amhaHash+='"a":"അ","഑m":"൐","അa":"ആ","A":"ആ","i":"ഇ","I":"ഈ","ഇi":"ഈ","ഏe":"ഐ","u":"ഉ","ഉu":"ഊ","U":"ഊ","ഓo":"ഔ","e":"ഏ","അi":"ഐ","o":"ഓ","അu":"ഔ",":":"ഃ","M":"ം","ംM":"ഁ","E":"഍","഍M":"അഁ","O":"഑","഑M":"ആഁ","ആU":"഑","ഋl":"ൡ","ൡu":"ൡ","R":"ഋ","ഋi":"ഋ","ഋu":"ഋ","ഋU":"ൠ","ഋഓo":"ൠ","ഋI":"ൠ","ഋഇi":"ൠ","അ~":"ഽ","q":"൑","൑q":"൒","Q":"൓","൓Q":"ൔ","J":"഼","K":"഼","C":"॰","|":"൤","൤|":"൥","0":"൦","1":"൧","2":"൨","3":"൩","4":"൪","5":"൫","6":"൬","7":"൭","8":"൮","9":"൯"}';




// for compatibility with bookmarklets
function cyr_translit(src) {
	return to_cyrillic(src);
}

var conversionHash = undefined;
var maxcyrlength = 0;

function getConversionHash() {
	if (conversionHash == undefined) {
		conversionHash = eval("("+amhaHash+")");
		 maxcyrlength=6;
	}

	return conversionHash;
}


function to_cyrillic(src, output, chunks) {
	if (src == undefined || src == "" || src == null)
		return src;
	if (output == undefined)
		output = new String();

	var hash = getConversionHash();
	
	var location = 0;
	
	while (location < src.length) {
		var len = Math.min(maxcyrlength, src.length - location);
		var arr = undefined;
		var sub;
		while (len > 0) {
			sub = src.substr(location, len);
			arr = hash[sub];
			if (arr != undefined) 
				break;
			else 
				len--;
		}
		
		// need this for translit on the fly
		if (chunks != undefined)
			chunks[chunks.length] = sub;
			
		if (arr == undefined) {
			output += sub;
			location ++;
		}
		else {

			// case analysis
			var newChar = arr;
			
			if (sub.toLowerCase() == sub.toUpperCase() && arr.length > 1 && arr[1] && (newChar.toUpperCase() != newChar.toLowerCase())) {
			
				// need translit hash to determine if previous character (and possibly the one before it) 
				// were converted and are in upper case
				
				// set prevDud to true previous is not a translated character or simply a blank
				// set prevCap to true if previous was translated and was upper case

				var prevCh = output.length == 0 ? null : output.substr(output.length - 1, 1);
				var prevDud = !prevCh || !getTranslitString(prevCh);
				var prevCap = (!prevDud && prevCh == prevCh.toUpperCase());

				// sub is caseless but result isn't. case will depend on lookbehind and lookahead
				if (prevDud || !prevCap) {
					output += newChar.toLowerCase();
					prevCap = false;
				}
				else {
					var next = " ";
					if (location + len < src.length)
						next = src.substr(location + len, 1);

					if (next != next.toUpperCase() && next == next.toLowerCase() ) {
						//next is lowercase (and not caseless)
						output += newChar.toLowerCase();
					}
					else if (next == next.toUpperCase() && next != next.toLowerCase() ) {
						// next is uppercase (and not caseless)
						output += newChar.toUpperCase();
					}
					else {
						// next is caseless. output case determined by the case of output[length - 2]
						var pprevCh = output.length == 1 ? null : output.substr(output.length - 2, 1);
						var pprevDud = !pprevCh || !getTranslitString(pprevCh);
						if (!pprevDud && (pprevCh == pprevCh.toUpperCase())) {
							//pre-prev is in upper case. output is also uppercase
							output += newChar.toUpperCase();
						}
						else {
						    output += newChar.toLowerCase();
						}
						
					}
				}
					
			}
			else if ((sub.toLowerCase() == sub.toUpperCase()) && (arr.length < 2 || !arr[1])) {
				
				// literal treatment of newChar
				output += newChar;

			}
			else if (sub != sub.toLowerCase()) {
			
				// sub not all-lowercase
				output += newChar.toUpperCase();
			}
			else {
					
					
					
				// sub is lowercase
			    output += newChar.toLowerCase();
			}
			location += len;
		}
	}
	
	return output;
}



function convertIt(src,converter){
 var resultbuffer=""; 
	for(var i=0;i<src.length;i++){
	resultbuffer=converter(resultbuffer+src[i]);
	}
        return converter(resultbuffer);

}



var translitHash = undefined;

function initTranslit() {
	if (translitHash == undefined) {
		translitHash = new Array();

		for (var i = 0; i < conversionHash.length; i++) {
			var ch = conversionHash[i][1];
			// if the translit string is not caseless, convert cyr string to upper case
			// otherwise maintain its case
			if (conversionHash[i][0].toUpperCase() != conversionHash[i][0].toLowerCase())
				ch = ch.toUpperCase();
				
			if (translitHash[ch] == undefined)
				translitHash[ch] = conversionHash[i][0];
		}
	}
}




//-- translit on-the-fly -- 

function replaceValue(node, value, stepback) {
	if (stepback == undefined)
		stepback = 0;
		
	if (isExplorer()) {
		var range = document.selection.createRange();
		range.moveStart("character", -stepback);
		range.text = value;
		range.collapse(false);
		range.select();
	}
	else {
		var scrollTop = node.scrollTop;
		var cursorLoc =  node.selectionStart;
		node.value = node.value.substring(0, node.selectionStart - stepback) + value + 
                node.value.substring(node.selectionEnd, node.value.length);
		node.scrollTop = scrollTop;
		node.selectionStart = cursorLoc + value.length - stepback;
		node.selectionEnd = cursorLoc + value.length - stepback;
	}
}


// compare positions
function positionIsEqual(other) {
	if (isExplorer())
		return this.position.isEqual(other.position);
	else
		return this.position == other.position;
  
}

function Position(node) {
  if (node.selectionStart != undefined)
	this.position = node.selectionStart;
  else if (document.selection && document.selection.createRange())
    this.position = document.selection.createRange();
    
  this.isEqual = positionIsEqual;
}

function resetState() {
	this.position = new Position(this.node);
	this.transBuffer = "";
	this.cyrBuffer = "";
}

function StateObject(node) {
	this.node = node;
	this.reset = resetState;
	this.cyrBuffer = "";
	this.transBuffer = "";
	this.position = new Position(node);
}


var stateHash = new Array();

function isExplorer() {
  return (document.selection != undefined && document.selection.createRange().isEqual != undefined);
}

function pressedKey(event) {
  if (isExplorer())
	return event.keyCode;
  else
    return event.which;
}

function translitonkey(event) {
     /*
	if ((event.keyCode == 255 && event.charCode > 0) || event.keyCode == 8) {
		return;
	}
    */
    
    if (event == undefined)
		event = window.event;
    
	var node = null;
	if (event.target)
		node = event.target;
	else if (event.srcElement)
		node = event.srcElement;
		
	
	
	// initialize state
	var state = stateHash[node];
	if (state == null) {
		state = new StateObject(node);
		stateHash[node] = state;
	}
	if ( (pressedKey(event) > 20) && !event.ctrlKey && !event.altKey && !event.metaKey) {

		var c = String.fromCharCode(pressedKey(event));

		// process input
		var result = process_translit(state, c);
		// finish up
		if (c != result.out || result.replace != 0) {
		  if (isExplorer())
			event.returnValue = false;
		  else
		    event.preventDefault();
		  
		  replaceValue(node, result.out, result.replace);
		  
		  state.position = new Position(node);

		}
	}
	
}

function TranslitResult() {
	this.out = "";
	this.replace = 0;
}

function process_translit(state, c) {
	// reset state if position changed
	if (!state.position.isEqual(new Position(state.node)))
		state.reset();
		
	var result = new TranslitResult();
	
	// initial backbuffer. Add to it as characters are converted
	var backbuffer = getBackBuffer(state.node, state.cyrBuffer.length, 2);
	var chunks = new Array();
	
	state.transBuffer = state.transBuffer+ c

	var str = to_cyrillic(state.cyrBuffer+c, backbuffer, chunks);

	// remove backbuffer from output
	str = str.substr(backbuffer.length);
	result.out = str; 
	/* str is now left alone - it has the output matching contents of chunks and 
	   will be used to reinitialize backbuffers, along with chunks and state.transBuffer
	*/
	
	// get the difference between state.cyrBuffer and output
	for (var i = 0; i < Math.min(state.cyrBuffer.length, result.out.length); i++) {
		if (state.cyrBuffer.substr(i, 1) != result.out.substr(i, 1)) {
			result.replace = state.cyrBuffer.length - i;
			result.out = result.out.substr(i);
			break;
		}
	}
	if (result.replace == 0) {
               if(result.out.length<state.cyrBuffer.length)
				result.replace=state.cyrBuffer.length- result.out.length;
		result.out = result.out.substr(Math.min(state.cyrBuffer.length, result.out.length));
                 
                       //    result.out+="\u0008"
                         
	}
	
	// update state: backbuffer, bufferArray
	if (chunks.length > 0 && chunks[chunks.length - 1] == result.out.substr(result.out.length - 1)) {
		// no convertion took place, reset state
		state.reset();
	}
	else {
		while (state.transBuffer.length > maxcyrlength) {
			state.transBuffer = state.transBuffer.substr(chunks[0].length);
			chunks.shift();
			str = str.substr(1);
		}
		state.cyrBuffer = str;
	}
	return result;
}

function getBackBuffer(node, offset, count) {
		
	if (isExplorer()) { //.tagName.toUpperCase() == "EDITOR") {
	
		var range = document.selection.createRange();
		range.moveStart("character", -offset);
		var result = range.text.substr(-count);
		if (!result)
			result = "";
			
		return result;

	} else {
		return node.value.substring(0, node.selectionStart - offset).substr(-count);
	}
}

// need this for bookmarklets
function getSelectedNode() {
  if (document.activeElement)
	return document.activeElement;
  else
    if (window.getSelection && window.getSelection() && window.getSelection().rangeCount > 0) {
		var range = window.getSelection().getRangeAt(0);
		if (range.startContainer && range.startContainer.childNodes && range.startContainer.childNodes.length > range.startOffset)
			return range.startContainer.childNodes[range.startOffset]
    }
  return null;
}

function toggleCyrMode() {
	var node = getSelectedNode();
	if (node) {
		if (stateHash[node]) {
			if (removeKeyEventListener(node))
				delete stateHash[node];
		}
		else {
			if (addKeyEventListener(node))
				stateHash[node] = new StateObject(node);
		}
	}
}

function addKeyEventListener(node) {
	if (node.addEventListener)
		node.addEventListener("keypress", translitonkey, false);
	else if (node.attachEvent)
	    node.attachEvent("onkeypress", translitonkey);
	else return false;
	return true;
}
function removeKeyEventListener(node) {
	if (node.removeEventListener)
		node.removeEventListener("keypress", translitonkey, false);
	else if (node.detachEvent)
		node.detachEvent("onkeypress", translitonkey);
	else return false;
	return true;
}

function getSelectedText() {
	if (isExplorer()) {
		return document.selection.createRange().text;
	}
	else {
		var node = getSelectedNode();
		if (node && node.value && node.selectionStart != undefined && node.selectionEnd != undefined)
			return node.value.substring(node.selectionStart, node.selectionEnd);
	}
	return "";
}