मिडियाविकि:Translitgur.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 for Devnagari and modified by user Eukesh for Gurmukhi
*/
var amhaHash='{"k":"ਕ੍","ਕ੍a":"ਕ","ਕa":"ਕਾ","ਕ੍i":"ਕਿ","ਕ੍I":"ਕੀ","ਕਿi":"ਕਿਇ","ਕੇe":"ਕੀ","ਕ੍u":"ਕੁ","ਕ੍U":"ਕੱ","ਕੋo":"ਕੂ","ਕੁu":"ਕੂ","ਕ੍e":"ਕੇ","ਕi":"ਕੈ","ਕ੍o":"ਕੋ","ਕu":"ਕੌ","ਕ੍:":"ਕਃ","ਕ:":"ਕਃ","ਕ੍O":"ਕ੉","ਕ੉M":"ਕਾਁ","ਕ੍E":"ਕ੅","ਕ੅M":"ਕਁ","ਕ੍र":"ਕ੃","ਕ੃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":"ਖਁ","ਖ੍र":"ਖ੃","ਖ੃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":"ਗਁ","ਗ੍र":"ਗ੃","ਗ੃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":"ਘਁ","ਘ੍र":"ਘ੃","ਘ੃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":"ਙਁ","ਙ੍र":"ਙ੃","ਙ੃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":"ਚਁ","ਚ੍र":"ਚ੃","ਚ੃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":"ਛਁ","ਛ੍र":"ਛ੃","ਛ੃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":"ਜਁ","ਜ੍र":"ਜ੃","ਜ੃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":"ਝਁ","ਝ੍र":"ਝ੃","ਝ੃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":"ਞਁ","ਞ੍र":"ਞ੃","ਞ੃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":"ਟਁ","ਟ੍र":"ਟ੃","ਟ੃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":"ਠਁ","ਠ੍र":"ਠ੃","ਠ੃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":"ਡਁ","ਡ੍र":"ਡ੃","ਡ੃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":"ਢਁ","ਢ੍र":"ਢ੃","ਢ੃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":"ਣਁ","ਣ੍र":"ਣ੃","ਣ੃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":"ਤਁ","ਤ੍र":"ਤ੃","ਤ੃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":"ਥਁ","ਥ੍र":"ਥ੃","ਥ੃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":"ਦਁ","ਦ੍र":"ਦ੃","ਦ੃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":"ਧਁ","ਧ੍र":"ਧ੃","ਧ੃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":"ਨਁ","ਨ੍र":"ਨ੃","ਨ੃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":"ਪਁ","ਪ੍र":"ਪ੃","ਪ੃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":"ਫਁ","ਫ੍र":"ਫ੃","ਫ੃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":"ਬਁ","ਬ੍र":"ਬ੃","ਬ੃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":"ਮਁ","ਮ੍र":"ਮ੃","ਮ੃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":"ਯਁ","ਯ੍र":"ਯ੃","ਯ੃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":"ਰ੣","ਰ੍र":"ਰ੃","ਰ੃u":"ਰ੃","ਰ੃U":"ਰ੄","ਰ੃ਓo":"ਰ੄",';
amhaHash+='"R":"ੜ੍","ੜ੍a":"ੜ","ੜa":"ੜਾ","ੜ੍i":"ੜਿ","ੜ੍I":"ੜੀ","ੜਿi":"ੜੀ","ੜੇe":"ੜੀ","ੜ੍u":"ੜੁ","ੜ੍U":"ਰੱ","ੜੋo":"ੜੂ","ੜੁu":"ੜੂ","ੜ੍e":"ੜੇ","ੜi":"ੜੈ","ੜ੍o":"ੜੋ","ੜu":"ੜੌ","ੜ੍:":"ੜਃ","ੜ:":"ੜਃ","ੜ੍O":"ੜ੉","ੜ੉M":"ੜਾਁ","ੜ੍E":"ੜ੅","ੜ੅M":"ੜਁ","ੜ੍M":"ੜਂ","ੜ੢":"ੜ੢","ੜ੢u":"ੜ੢","ੜ੢U":"ੜ੣","ੜ੢ਓo":"ੜ੣","ੜ੃u":"ੜ੃","ੜ੃U":"ੜ੄","ੜ੃ਓo":"ੜ੄",';
amhaHash+='"l":"ਲ੍","ਲ੍a":"ਲ","ਲa":"ਲਾ","ਲ੍i":"ਲਿ","ਲ੍I":"ਲੀ","ਲਿi":"ਲੀ","ਲੇe":"ਲੀ","ਲ੍u":"ਲੁ","ਲ੍U":"ਲੱ","ਲੋo":"ਲੂ","ਲੁu":"ਲੂ","ਲ੍e":"ਲੇ","ਲi":"ਲੈ","ਲ੍o":"ਲੋ","ਲu":"ਲੌ","ਲ੍:":"ਲਃ","ਲ:":"ਲਃ","ਲ੍O":"ਲ੉","ਲ੉M":"ਲਾਁ","ਲ੍E":"ਲ੅","ਲ੅M":"ਲਁ","ਲ੍र":"ਲ੃","ਲ੃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":"ਵਁ","ਵ੍र":"ਵ੃","ਵ੃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":"ਸ਼ਁ","ਸ਼੍rर":"ਸ਼ਰ੃","ਸ਼ਰ੃u":"ਸ਼ਰ੃","ਸ਼ਰ੃U":"ਸ਼ਰ੄","ਸ਼ਰ੃oo":"ਸ਼ਰ੄","ਸ਼੍र":"ਸ਼੃","ਸ਼੃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":"਷ਁ","਷੍र":"਷੃","਷੃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":"ਸਁ","ਸ੍र":"ਸ੃","ਸ੃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":"ਹਁ","ਹ੍र":"ਹ੃","ਹ੃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":"ਲ਼ਁ","ਲ਼੍र":"ਲ਼੃","ਲ਼੃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":"ਕ੍਷ਁ","ਕ੍਷੍र":"ਕ੍਷੃","ਕ੍਷੃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":"ਜ੍ਞਁ","ਜ੍ਞ੍र":"ਜ੍ਞ੃","ਜ੍ਞ੃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":"੡","र":"਋","਋i":"਋","਋u":"਋","਋U":"੠","਋ਓo":"੠","਋I":"੠","਋ਇi":"੠","~":"਽","q":"ੑ","ੑq":"੒","Q":"੓","੓Q":"੔","J":"਼","ਣ੍N":"ੰ","K":"਼","C":"॰","z":"੤","੤z":"੥","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 "";
}