summaryrefslogtreecommitdiffstats
path: root/input-methods/swanalekha-js/swanalekha-ta.js
diff options
context:
space:
mode:
Diffstat (limited to 'input-methods/swanalekha-js/swanalekha-ta.js')
-rw-r--r--input-methods/swanalekha-js/swanalekha-ta.js696
1 files changed, 696 insertions, 0 deletions
diff --git a/input-methods/swanalekha-js/swanalekha-ta.js b/input-methods/swanalekha-js/swanalekha-ta.js
new file mode 100644
index 0000000..fe51f47
--- /dev/null
+++ b/input-methods/swanalekha-js/swanalekha-ta.js
@@ -0,0 +1,696 @@
+ /************ Swanalekha code ends here **********************/
+var pattern=null;
+var tabCount=1;
+function bindSwanalekha(widget){
+
+if(widget.aBound){
+widget.aBound=false;
+disable();
+return;
+}
+
+var A={
+a:'அ',
+A:'ஆ',
+i:'இ',
+I:'ஈ',
+u:'உ',
+U:'ஊ',
+e:'எ',
+E:'ஏ',
+o:'ஒ',
+O:'ஓ',
+q:'ஃ',
+aa:'ஆ',
+ii:'ஈ',
+uu:'ஊ',
+ee:'ஏ',
+oo:'ஓ',
+ai:'ஐ',
+au:'ஔ',
+k:'க்',
+ka:'க',
+kaa:'கா',
+kA:'கா',
+ki:'கி',
+kii:'கீ',
+kI:'கீ',
+ku:'கு',
+kuu:'கூ',
+kU:'கூ',
+ke:'கெ',
+kee:'கே',
+kE:'கே',
+kai:'கை',
+ko:'கொ',
+koo:'கோ',
+kO:'கோ',
+kau:'கௌ',
+ng:'ங்',
+nga:'ங',
+ngaa:'ஙா',
+ngA:'ஙா',
+ngi:'ஙி',
+ngii:'ஙீ',
+ngI:'ஙீ',
+ngu:'ஙு',
+nguu:'ஙூ',
+ngU:'ஙூ',
+nge:'ஙெ',
+ngee:'ஙே',
+ngE:'ஙே',
+ngai:'ஙை',
+ngo:'ஙொ',
+ngoo:'ஙோ',
+ngO:'ஙோ',
+ngau:'ஙௌ',
+c:'ச்',
+ca:'ச',
+caa:'சா',
+cA:'சா',
+ci:'சி',
+cii:'சீ',
+cI:'சீ',
+cu:'சு',
+cuu:'சூ',
+cU:'சூ',
+ce:'செ',
+cee:'சே',
+cE:'சே',
+cai:'சை',
+co:'சொ',
+coo:'சோ',
+cO:'சோ',
+cau:'சௌ',
+nj:'ஞ்',
+nja:'ஞ',
+njaa:'ஞா',
+njA:'ஞா',
+nji:'ஞி',
+njii:'ஞீ',
+njI:'ஞீ',
+nju:'ஞு',
+njuu:'ஞூ',
+njU:'ஞூ',
+nje:'ஞெ',
+njee:'ஞே',
+njE:'ஞே',
+njai:'ஞை',
+njo:'ஞொ',
+njoo:'ஞோ',
+njO:'ஞோ',
+njau:'ஞௌ',
+t:'ட்',
+ta:'ட',
+taa:'டா',
+tA:'டா',
+ti:'டி',
+tii:'டீ',
+tI:'டீ',
+tu:'டு',
+tuu:'டூ',
+tU:'டூ',
+te:'டெ',
+tee:'டே',
+tE:'டே',
+tai:'டை',
+to:'டொ',
+too:'டோ',
+tO:'டோ',
+tau:'டௌ',
+d:'ட்',
+da:'ட',
+daa:'டா',
+dA:'டா',
+di:'டி',
+dii:'டீ',
+dI:'டீ',
+du:'டு',
+duu:'டூ',
+dU:'டூ',
+de:'டெ',
+dee:'டே',
+dE:'டே',
+dai:'டை',
+'do':'டொ',
+doo:'டோ',
+dO:'டோ',
+dau:'டௌ',
+N:'ண்',
+Na:'ண',
+Naa:'ணா',
+NA:'ணா',
+Ni:'ணி',
+Nii:'ணீ',
+NI:'ணீ',
+Nu:'ணு',
+Nuu:'ணூ',
+NU:'ணூ',
+Ne:'ணெ',
+Nee:'ணே',
+NE:'ணே',
+Nai:'ணை',
+No:'ணொ',
+Noo:'ணோ',
+NO:'ணோ',
+Nau:'ணௌ',
+th:'த்',
+tha:'த',
+thaa:'தா',
+thA:'தா',
+thi:'தி',
+thii:'தீ',
+thI:'தீ',
+thu:'து',
+thuu:'தூ',
+thU:'தூ',
+the:'தெ',
+thee:'தே',
+thE:'தே',
+thai:'தை',
+tho:'தொ',
+thoo:'தோ',
+thO:'தோ',
+thau:'தௌ',
+w:'ந்',
+wa:'ந',
+waa:'நா',
+wA:'நா',
+wi:'நி',
+wii:'நீ',
+wI:'நீ',
+wu:'நு',
+wuu:'நூ',
+wU:'நூ',
+we:'நெ',
+wee:'நே',
+wE:'நே',
+wai:'நை',
+wo:'நொ',
+woo:'நோ',
+wO:'நோ',
+wau:'நௌ',
+w:'ந்',
+wa:'ந',
+waa:'நா',
+wA:'நா',
+wi:'நி',
+wii:'நீ',
+wI:'நீ',
+wu:'நு',
+wuu:'நூ',
+wU:'நூ',
+we:'நெ',
+wee:'நே',
+wE:'நே',
+wai:'நை',
+wo:'நொ',
+woo:'நோ',
+wO:'நோ',
+wau:'நௌ',
+p:'ப்',
+pa:'ப',
+paa:'பா',
+pA:'பா',
+pi:'பி',
+pii:'பீ',
+pI:'பீ',
+pu:'பு',
+puu:'பூ',
+pU:'பூ',
+pe:'பெ',
+pee:'பே',
+pE:'பே',
+pai:'பை',
+po:'பொ',
+poo:'போ',
+pO:'போ',
+pau:'பௌ',
+m:'ம்',
+ma:'ம',
+maa:'மா',
+mA:'மா',
+mi:'மி',
+mii:'மீ',
+mI:'மீ',
+mu:'மு',
+muu:'மூ',
+mU:'மூ',
+me:'மெ',
+mee:'மே',
+mE:'மே',
+mai:'மை',
+mo:'மொ',
+moo:'மோ',
+mO:'மோ',
+mau:'மௌ',
+y:'ய்',
+ya:'ய',
+yaa:'யா',
+yA:'யா',
+yi:'யி',
+yii:'யீ',
+yI:'யீ',
+yu:'யு',
+yuu:'யூ',
+yU:'யூ',
+ye:'யெ',
+yee:'யே',
+yE:'யே',
+yai:'யை',
+yo:'யொ',
+yoo:'யோ',
+yO:'யோ',
+yau:'யௌ',
+r:'ர்',
+ra:'ர',
+raa:'ரா',
+rA:'ரா',
+ri:'ரி',
+rii:'ரீ',
+rI:'ரீ',
+ru:'ரு',
+ruu:'ரூ',
+rU:'ரூ',
+re:'ரெ',
+ree:'ரே',
+rE:'ரே',
+rai:'ரை',
+ro:'ரொ',
+roo:'ரோ',
+rO:'ரோ',
+rau:'ரௌ',
+l:'ல்',
+la:'ல',
+laa:'லா',
+lA:'லா',
+li:'லி',
+lii:'லீ',
+lI:'லீ',
+lu:'லு',
+luu:'லூ',
+lU:'லூ',
+le:'லெ',
+lee:'லே',
+lE:'லே',
+lai:'லை',
+lo:'லொ',
+loo:'லோ',
+lO:'லோ',
+lau:'லௌ',
+v:'வ்',
+va:'வ',
+vaa:'வா',
+vA:'வா',
+vi:'வி',
+vii:'வீ',
+vI:'வீ',
+vu:'வு',
+vuu:'வூ',
+vU:'வூ',
+ve:'வெ',
+vee:'வே',
+vE:'வே',
+vai:'வை',
+vo:'வொ',
+voo:'வோ',
+vO:'வோ',
+vau:'வௌ',
+z:'ழ்',
+za:'ழ',
+zaa:'ழா',
+zA:'ழா',
+zi:'ழி',
+zii:'ழீ',
+zI:'ழீ',
+zu:'ழு',
+zuu:'ழூ',
+zU:'ழூ',
+ze:'ழெ',
+zee:'ழே',
+zE:'ழே',
+zai:'ழை',
+zo:'ழொ',
+zoo:'ழோ',
+zO:'ழோ',
+zau:'ழௌ',
+L:'ள்',
+La:'ள',
+Laa:'ளா',
+LA:'ளா',
+Li:'ளி',
+Lii:'ளீ',
+LI:'ளீ',
+Lu:'ளு',
+Luu:'ளூ',
+LU:'ளூ',
+Le:'ளெ',
+Lee:'ளே',
+LE:'ளே',
+Lai:'ளை',
+Lo:'ளொ',
+Loo:'ளோ',
+LO:'ளோ',
+Lau:'ளௌ',
+R:'ற்',
+Ra:'ற',
+Raa:'றா',
+RA:'றா',
+Ri:'றி',
+Rii:'றீ',
+RI:'றீ',
+Ru:'று',
+Ruu:'றூ',
+RU:'றூ',
+Re:'றெ',
+Ree:'றே',
+RE:'றே',
+Rai:'றை',
+Ro:'றொ',
+Roo:'றோ',
+RO:'றோ',
+Rau:'றௌ',
+n:'ன்',
+na:'ன',
+naa:'னா',
+nA:'னா',
+ni:'னி',
+nii:'னீ',
+nI:'னீ',
+nu:'னு',
+nuu:'னூ',
+nU:'னூ',
+ne:'னெ',
+nee:'னே',
+nE:'னே',
+nai:'னை',
+no:'னொ',
+noo:'னோ',
+nO:'னோ',
+nau:'னௌ',
+j:'ஜ்',
+ja:'ஜ',
+jaa:'ஜா',
+jA:'ஜா',
+ji:'ஜி',
+jii:'ஜீ',
+jI:'ஜீ',
+ju:'ஜு',
+juu:'ஜூ',
+jU:'ஜூ',
+je:'ஜெ',
+jee:'ஜே',
+jE:'ஜே',
+jai:'ஜை',
+jo:'ஜொ',
+joo:'ஜோ',
+jO:'ஜோ',
+jau:'ஜௌ',
+sh:'ஷ்',
+sha:'ஷ',
+shaa:'ஷா',
+shA:'ஷா',
+shi:'ஷி',
+shii:'ஷீ',
+shI:'ஷீ',
+shu:'ஷு',
+shuu:'ஷூ',
+shU:'ஷூ',
+she:'ஷெ',
+shee:'ஷே',
+shE:'ஷே',
+shai:'ஷை',
+sho:'ஷொ',
+shoo:'ஷோ',
+shO:'ஷோ',
+shau:'ஷௌ',
+sr:'ஸ்ர்',
+sri:'ஸ்ரீ',
+s:'ஸ்',
+sa:'ஸ',
+saa:'ஸா',
+sA:'ஸா',
+si:'ஸி',
+sii:'ஸீ',
+sI:'ஸீ',
+su:'ஸு',
+suu:'ஸூ',
+sU:'ஸூ',
+se:'ஸெ',
+see:'ஸே',
+sE:'ஸே',
+sai:'ஸை',
+so:'ஸொ',
+soo:'ஸோ',
+sO:'ஸோ',
+sau:'ஸௌ',
+h:'ஹ்',
+ha:'ஹ',
+haa:'ஹா',
+hA:'ஹா',
+hi:'ஹி',
+hii:'ஹீ',
+hI:'ஹீ',
+hu:'ஹு',
+huu:'ஹூ',
+hU:'ஹூ',
+he:'ஹெ',
+hee:'ஹே',
+hE:'ஹே',
+hai:'ஹை',
+ho:'ஹொ',
+hoo:'ஹோ',
+hO:'ஹோ',
+hau:'ஹௌ',
+ksh:'க்ஷ்',
+ksha:'க்ஷ',
+kshaa:'க்ஷா',
+kshA:'க்ஷா',
+kshi:'க்ஷி'
+
+};
+function isToggleEvent(event){
+ event = (event) ? event : window.event;
+ kCode = event.keyCode || event.which;
+ return ((event.keyCode == 13 && event.ctrlKey) || (event.which == 109 && event.ctrlKey));
+};
+function enable(){
+/*widget.style.background='#eef';*/
+widget.onkeypress=keypressEnabled;
+widget.style.outline = 'dashed 1px red';
+};
+function disable(){
+widget.style.background='white';
+widget.onkeypress=keypressDisabled;
+widget.style.outline = null;
+
+};
+function checkBoxListener(){
+ if(widget.aBound){
+ widget.aBound=false;
+ disable();
+ }
+else{
+ widget.aBound=true;
+ enable();
+ }
+}
+function isExplorer() {
+ return (document.selection != undefined && document.selection.createRange().isEqual != undefined);
+}
+// 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 keypressEnabled(event){
+
+ if (event == undefined)
+ event = window.event;
+ if(isToggleEvent(event)){
+ disable();
+ document.getElementById("toggle").checked = false;
+ return;
+ }
+ kCode = event.keyCode || event.which;
+
+ if ( kCode == 8) {
+ if(pattern.indexOf('a')>=0 || pattern.indexOf('A')>=0 || pattern.indexOf('e')>=0 || pattern.indexOf('E')>=0 || pattern.indexOf('i')>=0 || pattern.indexOf('I')>=0 || pattern.indexOf('o')>=0 || pattern.indexOf('O')>=0 || pattern.indexOf('u')>=0 || pattern.indexOf('U')>=0|| pattern.indexOf('1')>=0 || pattern.indexOf('2')>=0 || pattern.indexOf('3')>=0 || pattern.indexOf('4')>=0 || pattern.indexOf('5')>=0 || pattern.indexOf('6')>=0 || pattern.indexOf('7')>=0 || pattern.indexOf('8')>=0 || pattern.indexOf('9')>=0 ){
+ pattern=pattern.replace('a','');
+ pattern=pattern.replace('a','');
+ pattern=pattern.replace('A','');
+ pattern=pattern.replace('e','');
+ pattern=pattern.replace('e','');
+ pattern= pattern.replace('E','');
+ pattern= pattern.replace('i','');
+ pattern= pattern.replace('i','');
+ pattern= pattern.replace('I','');
+ pattern= pattern.replace('o','');
+ pattern= pattern.replace('o','');
+ pattern= pattern.replace('O','');
+ pattern= pattern.replace('u','');
+ pattern= pattern.replace('u','');
+ pattern= pattern.replace('U','');
+ pattern= pattern.replace('1','');
+ pattern= pattern.replace('2','');
+ pattern= pattern.replace('3','');
+ pattern= pattern.replace('4','');
+ pattern= pattern.replace('5','');
+ pattern= pattern.replace('6','');
+ pattern= pattern.replace('7','');
+ pattern= pattern.replace('8','');
+ pattern= pattern.replace('9','');
+ tabCount=1;
+ return;
+ }
+ }
+ if(event.ctrlKey||event. altKey||event.metaKey){
+ return true;
+ }
+ var char=String.fromCharCode(kCode );
+ var pos=widget.selectionStart;
+ if( kCode ==9){ /*Tab key*/
+ tabCount++;
+ if(pattern!=null || pattern!=''){
+ if(tabCount==2){
+ pattern=pattern+tabCount;
+ }
+ else{
+ if(A[pattern.substring(0, pattern.length-1)+tabCount]){
+ pattern=pattern.substring(0, pattern.length-1)+tabCount;
+ }
+ else{
+ tabCount=1;
+ pattern=pattern.substring(0, pattern.length-1);
+ }
+ }
+ }
+ }
+ else{
+ pattern=pattern+char;
+ }
+ if(pattern.length > 5){
+ pattern='';
+ tabCount=1;
+ }
+ var mal=A[pattern];
+ if(!mal) {
+ pattern=char;
+ tabCount=1;
+ patternStart=widget.selectionStart;
+ var mal=A[pattern];
+ }
+ if(mal){
+ if (isExplorer()) {
+ var range = document.selection.createRange();
+ var stepback= range-patternStart;
+ range.moveStart("character", -stepback);
+ range.text = mal;
+ range.collapse(false);
+ range.select();
+ return false;
+ }
+ else {
+ var scrollTop = widget.scrollTop;
+ var cursorLoc = widget.selectionStart;
+ var stepback= cursorLoc-patternStart;
+ widget.value= widget.value.substr(0,patternStart)+mal+widget.value.substr(widget.selectionEnd,widget.value.length);
+ widget.scrollTop=scrollTop ;
+ widget.selectionStart = cursorLoc + mal.length - stepback ;
+ widget.selectionEnd = cursorLoc + mal.length - stepback;
+ return false;
+ }
+ }
+ if( kCode ==9){
+ return false;
+ }
+ return true;
+};
+function keypressDisabled(event){
+if(isToggleEvent(event)){
+enable();
+document.getElementById("toggle").checked = true;
+return false;
+}
+return true;
+};
+widget.aBound=false;
+disable();
+var checkbox = document.getElementById("toggle");
+if (checkbox.addEventListener)
+ checkbox.addEventListener("click", checkBoxListener,false);
+else if (checkbox.attachEvent)
+ checkbox.attachEvent("onclick", checkBoxListener);
+};
+ function addCheckbox(textBox) {
+ if(textBox==null) return;
+ try
+ {
+ var searchBox= document.getElementById("searchInput");
+ var element = document.createElement("input");
+ element.setAttribute("type","checkbox");
+ element.setAttribute("id","toggle");
+ var labelcheckBox = document.createTextNode(' Transliterate - Use Ctrl + M to Toggle.');
+ textBox.parentNode.insertBefore(element,textBox);
+ if(searchBox) searchBox.parentNode.insertBefore(element,searchBox);
+ /* textBox.insertBefore(element,textBox);*/
+ document.getElementById("toggle").checked = textBox.aBound;
+ textBox.parentNode.insertBefore(labelcheckBox,textBox);
+ if(searchBox) searchBox.parentNode.insertBefore(labelcheckBox,searchBox);
+ var p = document.createElement("p");
+ p.setAttribute("style","width:100%;height:1px;");
+ textBox.parentNode.insertBefore(p,textBox);
+ if(searchBox) searchBox.parentNode.insertBefore(p,searchBox);
+ }
+ catch(ex)
+ {
+ alert(ex);
+ }
+}
+function bindAllTextElements() {
+
+ var ta=document.getElementsByTagName('textarea');
+
+ for(var i=0;i < ta.length;++i){
+ addCheckbox(ta[i]);
+ bindSwanalekha(ta[i]);
+ }
+ var tb=document.getElementsByTagName('input');
+ for(var i=0;i < tb.length;++i){
+ type = tb[i].getAttribute('type');
+ if ( type == 'text' || type == null) {
+ bindSwanalekha(tb[i]);
+ }
+ }
+
+ var ifs = document.getElementsByTagName('iframe');
+ var len=ifs.length;
+ for (var i=0;i < len; i++) {
+ bindAllTextElements(ifs[i].contentDocument.documentElement);
+ }
+
+ };
+function addLoadEvent(func) {
+
+ if (window.addEventListener) {
+ window.addEventListener("load", func, false);
+ }
+ else if (window.attachEvent) {
+ window.attachEvent("onload", func);
+ }
+}
+
+addLoadEvent(bindAllTextElements);
+/************ Swanalekha code ends here **********************/