मिडियाविकि:Translitta.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 as a part of South Asian Script Enhancement project for Devnagari and modified by Eukesh for Tamil
*/
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":"ஔ","H":"ஃ","M":"ம்","ம்M":"ம்","E":"எ","எM":"அம்","O":"ஒ","ஒM":"ஆம்","ஆU":"ஒ","ருl":"ல்ரூ","ல்ரூu":"ல்ரூ","R":"ரு","ருi":"ரு","ருu":"ரு","ருU":"ரூ","ருஓo":"ரூ","ருI":"ரூ","ருஇi":"ரூ","~":"","ஃH":"‌","q":"","q":"","Q":"","Q":"॔","J":"","K":"","C":"॰","z":"|","|z":"||","0":"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 "";
}