var supported=(document.all||document.getElementById);var disabled=false;var charmapid=1;var keymodeid=0;var linebreak=0;var theTyper=null;var Kbrd="telex";function ChangeLinkHref(a){a.href=a.href+"&Kbrd="+Kbrd}function initVietTyper(b,a){setTypingMode(b);switch(a){case"utf8":charmapid=1;break;case"vni":charmapid=5;break;case"tcvn":charmapid=6;break;case"viscii":charmapid=7;break;case"vps":charmapid=8;break;case"viqr":charmapid=9;break;default:charmapid=6}}reset=function(){};telexingVietUC=initTyper;function setTypingMode(a){keymodeid=a;if(theTyper){theTyper.keymode=initKeys()}if(!supported&&!disabled){disabled=true}}initCharMap=function(){return new CVietUniCodeMap()};initKeys=function(){switch(keymodeid){case 1:return new CTelexKeys();case 2:return new CVniKeys();case 3:return new CViqrKeys();default:return new CVKOff()}};function initTyper(a){a.vietarea=true;a.onkeyup=null;if(!supported){return}a.onkeypress=vietTyping;a.getCurrentWord=getCurrentWord;a.replaceWord=replaceWord;a.onkeydown=onKeyDown;a.onmousedown=onMouseDown}function getEvt(a){return document.all?event.keyCode:(a&&a.which)?a.which:0}function onKeyDown(a){var b=getEvt(a);if((b==10)||(b==13)){reset(1);linebreak=1}else{if((b<49)&&(b!=16)&&(b!=20)){linebreak=0;reset(b==32)}}return true}function onMouseDown(a){reset(0);linebreak=0;return true}function vietTyping(a){var d=getEvt(a);if(theTyper){theTyper.value=this.getCurrentWord()}else{theTyper=new CVietString(this.getCurrentWord())}var b=(d>32)&&theTyper.typing(d);if(b){this.replaceWord(theTyper.value)}return !b}function getCurrentWord(){if(!document.all){return this.value}var c=this.document.selection.createRange();var b=-10;do{var a=c.duplicate();a.moveStart("character",b++)}while(a.parentElement()!=this&&b<0);this.curword=a.duplicate();return a.text}function replaceWord(a){if(!document.all){this.value=a;return}this.curword.text=a;this.curword.collapse(false)}function CVietString(a){this.value=a;this.keymode=initKeys();this.charmap=initCharMap();this.ctrlchar="-";this.changed=0;this.typing=typing;this.Compose=Compose;this.findCharToChange=findCharToChange;return this}function typing(a){this.changed=0;this.ctrlchar=String.fromCharCode(a);if(linebreak){linebreak=0}else{this.keymode.getAction(this)}return this.changed}function Compose(a){var b=this.findCharToChange(a);if(!b){return}var c;if(b[0]=="\\"){c=[1,this.ctrlchar,1]}else{if(a>6){c=this.charmap.getAEOWD(b[0],a,b[3])}else{c=this.charmap.getDau(b[0],a)}}if(!(this.changed=c[0])){return}this.value=this.value.replaceAt(b[1],c[1],b[2]);if(!c[2]){spellerror=1;this.value+=this.ctrlchar}}function findCharToChange(k){var o=this.charmap.lastCharsOf(this.value,5);var f=0,h=o[0][0],e=0;if(h=="\\"){return[h,this.value.length-1,1]}if(k==15){while(!(e=this.charmap.isVD(h))){if((h<"A")||(f>=4)||!(h=o[++f][0])){return null}}}else{while("cghmnpt".indexOf(h)>=0){if((h<"A")||(f>=2)||!(h=o[++f][0])){return null}}}h=o[0][0].toLowerCase();var n=o[1][0].toLowerCase();var b=o[2][0].toLowerCase();if(f==2&&k<6){var g=n+h;if((g!="ng")&&(g!="ch")&&(g!="nh")){return null}if(g=="ch"&&k!=1&&k!=3){return null}}else{if(f==1&&k<6){if((h=="g")||(h=="h")){return null}if("cpt".indexOf(h)>=0&&k!=1&&k!=3){return null}}else{if(f==0&&k!=15){if((e=this.charmap.isVowel(o[1][0]))&&("uyoia".indexOf(h)>=0)&&!this.charmap.isUO(n,h)&&!((n=="o"&&h=="a")||(n=="u"&&h=="y"))&&!((b=="q"&&n=="u")||(b=="g"&&n=="i"))){++f}if(h=="a"&&(k==9||k==7)){f=0}}}}h=o[f][0];if((f==0||e==0)&&k!=15){e=this.charmap.isVowel(h)}if(!e){return null}var m=o[f][1],a=0;if((f>0)&&(k==7||k==8||k==11)){a=this.charmap.isUO(o[f+1][0],h);if(a){e=a;m+=o[++f][1];a=1}}var l=this.value.length;for(var d=0;d<=f;d++){l-=o[d][1]}return[e,l,m,a]}function CVietCharMap(){this.vietchars=null;this.length=149;return this}CVietCharMap.prototype.charAt=function(a){var b=this.vietchars[a];return b?String.fromCharCode(b):null};CVietCharMap.prototype.isVowel=function(a){var b=this.length-5;while((a!=this.charAt(b))&&b){--b}return b};CVietCharMap.prototype.isVD=function(a){var b=this.length-5;while((a!=this.charAt(b))&&(b<this.length)){++b}return(b<this.length)?b:0};CVietCharMap.prototype.isCol=function(a,c){var b=12,d=a+1;while(b>=0&&(this.charAt(b*12+d)!=c)){--b}return(b>=0)?b*12+d:0};CVietCharMap.prototype.isUO=function(c,b){if(!c||!b){return 0}var a=this.isCol(9,c);if(!a){a=this.isCol(10,c)}if(!a){return 0}var d=this.isCol(6,b);if(!d){d=this.isCol(7,b)}if(!d){d=this.isCol(8,b)}if(!d){return 0}return[a,d]};CVietCharMap.prototype.getDau=function(e,c){var b=(e<25)?0:1;var d=(e-1)%24+1;var f=(c==6)?0:c;if((c==6)&&!b){return[0]}var a=f*24+d;if(a==e){a=d}return[1,this.charAt(a),a>24||c==6]};var map=[[7,7,7,8,8,8,9,10,11,15],[0,3,6,0,6,9,0,3,6,0],[1,4,7,2,8,10,1,4,7,1]];CVietCharMap.prototype.getAEOWD=function(e,j,a){var h=0,f=a?e[0]:e;var b=(j==15)?(f-1)%2:(f-1)%12;if(a){base=e[1]-(e[1]-1)%12;if(j==7||j==11){h=this.charAt(f-b+9)+this.charAt(base+7)}else{if(j==8){h=this.charAt(f-b+10)+this.charAt(base+8)}}return[h!=0,h,1]}var g=-1,d=0,k=0;while(d==0&&++g<map[0].length){if(map[0][g]==j){if(map[1][g]==b){d=map[2][g]-b}else{if(map[2][g]==b){d=map[1][g]-b}}}}if(d==0){if(j==7&&(b==2||b==8)){d=-1}else{if((j==9&&b==2)||(j==11&&b==8)){d=-1}else{if(j==8&&(b==1||b==7)){d=1}}}k=1}else{k=(d>0)}return[d!=0,this.charAt(f+d),k]};CVietCharMap.prototype.lastCharsOf=function(d,b){if(!b){return[d.charAt(d.length-1),1]}var a=new Array(b);for(var c=0;c<b;c++){a[c]=[d.charAt(d.length-c-1),1]}return a};String.prototype.replaceAt=function(c,b,a){return this.substring(0,c)+b+this.substring(c+a)};function CVietUniCodeMap(){var a=new CVietCharMap();a.vietchars=new Array("UNICODE",97,226,259,101,234,105,111,244,417,117,432,121,65,194,258,69,202,73,79,212,416,85,431,89,225,7845,7855,233,7871,237,243,7889,7899,250,7913,253,193,7844,7854,201,7870,205,211,7888,7898,218,7912,221,224,7847,7857,232,7873,236,242,7891,7901,249,7915,7923,192,7846,7856,200,7872,204,210,7890,7900,217,7914,7922,7841,7853,7863,7865,7879,7883,7885,7897,7907,7909,7921,7925,7840,7852,7862,7864,7878,7882,7884,7896,7906,7908,7920,7924,7843,7849,7859,7867,7875,7881,7887,7893,7903,7911,7917,7927,7842,7848,7858,7866,7874,7880,7886,7892,7902,7910,7916,7926,227,7851,7861,7869,7877,297,245,7895,7905,361,7919,7929,195,7850,7860,7868,7876,296,213,7894,7904,360,7918,7928,100,273,68,272);return a}function CVietKeys(){this.getAction=function(b){var a=this.keys.indexOf(b.ctrlchar.toLowerCase());if(a>=0){b.Compose(this.actions[a])}};return this}function CVKOff(){this.off=true;this.getAction=function(){};return this}function CTelexKeys(){var a=new CVietKeys();a.keys="sfjrxzaeowd";a.actions=[1,2,3,4,5,6,9,10,11,8,15];a.istelex=true;return a}function CVniKeys(){var a=new CVietKeys();a.keys="0123456789";a.actions=[6,1,2,4,5,3,7,8,8,15];return a}function CViqrKeys(){var a=new CVietKeys();a.keys="\xB4/'`.?~-^(*+d";a.actions=[1,1,1,2,3,4,5,6,7,8,8,8,15];return a}if(typeof(initCharMap)!="undefined"){initCharMap=selectMap;if(theTyper){theTyper.charmap=initCharMap()}vumaps=1}function selectMap(b){var a=b?b:charmapid;switch(a){case 1:return new CVietUniCodeMap();case 5:return new CVietVniMap();case 6:return new CVietTCVNMap();case 7:return new CVietVISCIIMap();case 8:return new CVietVPSMap();case 9:return new CVietViqrMap();default:return new CVietUniCodeMap()}}CVietCharMap.prototype.lowerCaseOf=function(b,c){var a=c?c:this.isVowel(b);if(a){return(a&&((a-1)%24>=12))?this.charAt(a-12):this.charAt(a)}if(!result[1]){result[1]=this.lowerCaseOf(0,charset*24+ind_i)}};CVietCharMap.prototype.indexOf=function(a,b){var e=b?String.fromcharCode(a):a;var d=this.length-1;while((e!=this.charAt(d))&&(d>0)){--d}return d};CVietCharMap.prototype.regExpAt=function(a){var b=this.charAt(a);return b?new RegExp(b,"g"):0};CVietCharMap.prototype.convertTxtTo=function(a,d){var c,e,b;for(c=this.length-1;c>0;c--){if(e=this.regExpAt(c)){a=a.replace(e,"::"+c+"::")}}while(b=/::(\d+)::/gi.exec(a)){e=new RegExp("::"+b[1]+"::","g");a=a.replace(e,d.charAt(parseInt(b[1],10)))}return a};function CVietTCVNMap(){var a=new CVietCharMap();a.vietchars=new Array("TCVN-3",97,169,168,101,170,105,111,171,172,117,173,121,65,162,161,69,163,73,79,164,165,85,166,89,184,202,190,208,213,221,227,232,237,243,248,253,0,0,0,0,0,0,0,0,0,0,0,0,181,199,187,204,210,215,223,229,234,239,245,250,0,0,0,0,0,0,0,0,0,0,0,0,185,203,198,209,214,222,228,233,238,244,249,254,0,0,0,0,0,0,0,0,0,0,0,0,182,200,188,206,211,216,225,230,235,241,246,251,0,0,0,0,0,0,0,0,0,0,0,0,183,201,189,207,212,220,226,231,236,242,247,252,0,0,0,0,0,0,0,0,0,0,0,0,100,174,68,167);return a}function CVietVISCIIMap(){var a=new CVietCharMap();a.vietchars=new Array("VISCII",97,226,229,101,234,105,111,244,189,117,223,121,65,194,197,69,202,73,79,212,180,85,191,89,225,164,237,233,170,237,243,175,190,250,209,253,193,8222,129,201,352,205,211,143,8226,218,186,221,224,165,162,232,171,236,242,176,182,249,215,207,192,8230,8218,200,8249,204,210,144,8211,217,187,376,213,167,163,169,174,184,247,181,254,248,241,220,8364,8225,402,8240,381,732,353,8220,8221,382,185,0,228,166,198,235,172,239,246,177,183,252,216,214,196,8224,0,203,338,8250,8482,8216,8212,339,188,0,227,231,199,168,173,238,245,178,222,251,230,219,195,0,0,710,141,206,0,8217,179,157,255,0,100,240,68,208);return a}function CVietVPSMap(){var a=new CVietCharMap();a.vietchars=new Array("VPS-Win",97,226,230,101,234,105,111,244,214,117,220,121,65,194,710,69,202,73,79,212,247,85,208,89,225,195,161,233,8240,237,243,211,167,250,217,353,193,402,141,201,144,180,185,8211,157,218,173,221,224,192,162,232,352,236,242,210,169,249,216,255,0,8222,0,215,8220,181,188,8212,0,168,175,178,229,198,165,203,338,206,8224,182,174,248,191,339,0,0,0,0,0,0,0,0,0,0,0,0,228,196,163,200,8249,204,213,176,170,251,186,8250,129,8230,0,222,8221,183,189,732,376,209,177,0,227,197,164,235,205,239,245,8225,171,219,187,207,8218,0,0,254,8226,184,0,8482,166,172,0,0,100,199,68,241);return a}function CVietMultibyteMap(b){var a=b?b:new CVietCharMap();a.maxchrlen=3;a.charAt=function(c){return this.vietchars[c]};a.lastCharsOf=function(j,f){var h=null;var g=this.maxchrlen;var e=j;while(!h&&(g>1)){var k=e.substring(e.length-g);if(this.indexOf(k)){h=[k,g]}--g}if(!h){h=[e.charAt(e.length-1),1]}if(!f){return h}var d=new Array(f);d[0]=h;for(g=1;g<f;g++){e=e.substring(0,e.length-d[g-1][1]);d[g]=this.lastCharsOf(e)}return d};return a}function CVietVniMap(){var a=new CVietMultibyteMap();a.maxchrlen=2;a.vietchars=new Array("VNI-WIN","a","a\xe2","a\xea","e","e\xe2","i","o","o\xe2","\xf4","u","\xf6","y","A","A\xc2","A\xca","E","E\xc2","I","O","O\xc2","\xd4","U","\xd6","Y","a\xf9","a\xe1","a\xe9","e\xf9","e\xe1","\xed","o\xf9","o\xe1","\xf4\xf9","u\xf9","\xf6\xf9","y\xf9","A\xd9","A\xc1","A\xc9","E\xd9","E\xc1","\xcd","O\xd9","O\xc1","\xd4\xd9","U\xd9","\xd6\xd9","Y\xd9","a\xf8","a\xe0","a\xe8","e\xf8","e\xe0","\xec","o\xf8","o\xe0","\xf4\xf8","u\xf8","\xf6\xf8","y\xf8","A\xd8","A\xc0","A\xc8","E\xd8","E\xc0","\xcc","O\xd8","O\xc0","\xd4\xd8","U\xd8","\xd6\xd8","Y\xd8","a\xef","a\xe4","a\xeb","e\xef","e\xe4","\xf2","o\xef","o\xe4","\xf4\xef","u\xef","\xf6\xef","\xee","A\xcf","A\xc4","A\xcb","E\xcf","E\xc4","\xd2","O\xcf","O\xc4","\xd4\xcf","U\xcf","\xd6\xcf","\xce","a\xfb","a\xe5","a\xfa","e\xfb","e\xe5","\xe6","o\xfb","o\xe5","\xf4\xfb","u\xfb","\xf6\xfb","y\xfb","A\xdb","A\xc5","A\xda","E\xdb","E\xc5","\xc6","O\xdb","O\xc5","\xd4\xdb","U\xdb","\xd6\xdb","Y\xdb","a\xf5","a\xe3","a\xfc","e\xf5","e\xe3","\xf3","o\xf5","o\xe3","\xf4\xf5","u\xf5","\xf6\xf5","y\xf5","A\xd5","A\xc3","A\xdc","E\xd5","E\xc3","\xd3","O\xd5","O\xc3","\xd4\xd5","U\xd5","\xd6\xd5","Y\xd5","d","\xf1","D","\xd1");return a}function CVietViqrMap(){var a=new CVietMultibyteMap();a.vietchars=new Array("VIQR","a","a^","a(","e","e^","i","o","o^","o+","u","u+","y","A","A^","A(","E","E^","I","O","O^","O+","U","U+","Y","a'","a^'","a('","e'","e^'","i'","o'","o^'","o+'","u'","u+'","y'","A'","A^'","A('","E'","E^'","I'","O'","O^'","O+'","U'","U+'","Y'","a`","a^`","a(`","e`","e^`","i`","o`","o^`","o+`","u`","u+`","y`","A`","A^`","A(`","E`","E^`","I`","O`","O^`","O+`","U`","U+`","Y`","a.","a^.","a(.","e.","e^.","i.","o.","o^.","o+.","u.","u+.","y.","A.","A^.","A(.","E.","E^.","I.","O.","O^.","O+.","U.","U+.","Y.","a?","a^?","a(?","e?","e^?","i?","o?","o^?","o+?","u?","u+?","y?","A?","A^?","A(?","E?","E^?","I?","O?","O^?","O+?","U?","U+?","Y?","a~","a^~","a(~","e~","e^~","i~","o~","o^~","o+~","u~","u+~","y~","A~","A^~","A(~","E~","E^~","I~","O~","O^~","O+~","U~","U+~","Y~","d","dd","D","DD");a.regExpAt=function(b){var d=this.charAt(b);if(!d){return null}d=d.replace(/\+/g,"[\\+\\*]");d=d.replace(/'/g,"['´]");d=d.replace(/([\-\?\.\(\^])/g,"\\$1");d=d.replace(/(d)d/gi,"$1$1|\\-$1|$1\\-");return new RegExp(d,"g")};a.convertTxtTo=function(b,f){var e,g,d,c;b=b.replace(/(\.\.+|\?\?+)/g,";;;$1");while(d=/(\.[\w\@\-\.\/\\][\w\@\-\.\/\\][\w\@\-\.\/\\]+\s*)/g.exec(b)){g=d[1].replace(/([\.\?\+\-\(\^\*\@\\)\]\}])/g,"\\$1");c=d[1].replace(/\./g,";;;.;;;");b=b.replace(new RegExp(g,"g"),c)}for(e=this.length-1;e>0;e--){if(g=this.regExpAt(e)){b=b.replace(g,"::"+e+"::")}}while(d=/::(\d+)::/gi.exec(b)){g=new RegExp("::"+d[1]+"::","g");b=b.replace(g,f.charAt(parseInt(d[1],10)))}b=b.replace(/;;;/g,"");return b};return a}function CVietCombUCMap(){var d=new CVietMultibyteMap(new CVietUniCodeMap());d.maxchrlen=2;var a=new Array("UNICODE-C",769,768,803,777,771);for(var c=1;c<d.length-4;c++){var f=(c-1)%24;var g=(c-f-1)/24;var b=d.vietchars[f+1];if(c<25){b=String.fromCharCode(b)}var e=String.fromCharCode(a[g]);d.vietchars[c]=g?b+e:b}for(var c=d.length-4;c<d.length;c++){d.vietchars[c]=String.fromCharCode(d.vietchars[c])}return d};