var isIE=document.all?true:false;var myimg=new Image();var sPos=0;var isTh=false;var isNg=false;var kbmode="roman";var pkbmode="roman";var SplKeys=new Array();SplKeys["ZR"]=0;SplKeys["BS"]=8;SplKeys["CR"]=13;function incfont(fontname,fontfile)
{if(isIE)
document.write("<STY"+"LE TYPE='text/css'>\n<!--\n@font-face {\n"+"font-family: "+fontname+";\nsrc:url("+fontfile+".eot);\n"+"}\n-->\n</ST"+"YLE>")}
function showMap()
{PositionX=100;PositionY=100;defaultWidth=500;defaultHeight=500;var AutoClose=true;var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;if(isIE){imgWin=window.open('about:blank','',optIE);}
else{imgWin=window.open('about:blank','',optNN);}
with(imgWin.document){writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');writeln('width=100-(document.body.clientWidth-document.images[0].width);');writeln('height=100-(document.body.clientHeight-document.images[0].height);');writeln('window.resizeTo(width,height);}');writeln('if (isNN){');writeln('window.innerWidth=document.images["KeyMap"].width;');writeln('window.innerHeight=document.images["KeyMap"].height;}}');writeln('function doTitle(){document.title="Keypad Map";}');writeln('</sc'+'ript>');if(!AutoClose)writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');writeln('</body></html>');close();}}
function convertThis(e,numchar)
{if(!isIE)
Key=e.which;else
Key=e.keyCode;Char=String.fromCharCode(Key);if(typeof numchar=="undefined")
numchar=4;if(isIE)
{myField=e.srcElement;myField.caretPos=document.selection.createRange().duplicate();prevChar=myField.caretPos.text;diff=0;cpos=getCursorPosition(myField);if(prevChar.length!=0)
document.selection.clear();if(myField.value.length!=0&&cpos!="1,1")
{myField.caretPos.moveStart('character',-1);prevChar=myField.caretPos.text;diff++;}
if(prevChar==chnbin)
{myField.caretPos.moveStart('character',-1);prevChar=myField.caretPos.text;diff++;}
if(cpos[1]>numchar)
{myField.caretPos.moveStart('character',diff-numchar);prevChar=myField.caretPos.text;}
if(prevChar==""&&cpos!="1,1")
prevChar="\u000A";if(Key==13)
Char="\u000A";myField.caretPos.text=getLang(prevChar,Char,0)
e.cancelBubble=true;e.returnValue=false;}
else
{myField=e.target;if(myField.selectionStart>=0)
{if(isSplKey(Key)||e.ctrlKey)
return true;var startPos=myField.selectionStart;var endPos=myField.selectionEnd;txtTop=myField.scrollTop;if(myField.value.length==0)
{prevChar="";myField.value=getLang(prevChar,Char,startPos)}
else
{prevChar=myField.value.substring(startPos-1,startPos);prevStr=myField.value.substring(0,startPos-1);if(prevChar==chnbin)
{prevChar=myField.value.substring(startPos-2,startPos);prevStr=myField.value.substring(0,startPos-2);}
cpos=getCursorPosition(myField);if(cpos[1]>=numchar)
{prevChar=myField.value.substring(startPos-numchar,startPos);prevStr=myField.value.substring(0,startPos-numchar);}
myField.value=prevStr+getLang(prevChar,Char,myField.selectionStart)+myField.value.substring(endPos,myField.value.length);}
myField.selectionStart=sPos;myField.selectionEnd=sPos;if((myField.scrollHeight+4)+"px"!=myField.style.height)
myField.scrollTop=txtTop;e.stopPropagation();e.preventDefault();}}}
function toggleT(obj)
{isTh=obj.checked;if(isTh)
ta['t']="\u0BA4\u0BCD";else
ta['t']="\u0B9F\u0BCD";}
function toggleG(obj)
{isNg=obj.checked;if(isNg)
ta['g']="\u0B99\u0BCD";else
ta['g']="\u0B95\u0BCD"}
function toggleKBMode(e,obj)
{if(obj!=null)
{pkbmode=kbmode;kbmode=obj.value;if(kbmode=="typewriter")
myimg.src="http://www.bhaskar.com/images/"+lang+"tw.png";else
myimg.src="http://www.bhaskar.com/images/"+lang+".png";}
else
{if(!isIE)
key=e.which;else
key=e.keyCode;if(key==123)
{if(kbmode!="english")
{pkbmode=kbmode;kbmode="english";}
else
{kbmode=pkbmode;pkbmode="english";}}}}
function isSplKey(keynum)
{retVal=false;for(i in SplKeys)
{if(keynum==SplKeys[i])
retVal=true;}
return retVal;}
function getLang(prv,txt,sP)
{sPos=sP;if(kbmode=="english")
{retTxt=prv+txt;sPos++;}
else if(kbmode=="typewriter")
{if(prv==ugar&&mapLang(txt,sP,"tw")==uugar)
retTxt=mapLang(prv+txt,sP,"tw");else
retTxt=prv+mapLang(txt,sP,"tw");}
else
{if(pkbmode=="english")
{retTxt=prv+mapLang(txt);pkbmode="roman";}
else
retTxt=mapLang(prv+txt);}
return retTxt;}
function mapLang(txt,sP,mod)
{if(sP!=null)
sPos=sP;prvlen=txt.length;txtarr=eval(lang.substring(0,2));if(mod!=null&&mod=="tw")
txtarr=eval(lang.substring(0,2)+"tw")
retTxt="";for(itm in txtarr)
{rexp=new RegExp(itm,"g");txt=txt.replace(rexp,txtarr[itm]);}
sPos+=(txt.length-prvlen+1);return txt;}
function getCursorPosition(textarea)
{var txt=textarea.value;var len=txt.length;var erg=txt.split("\n");var pos=-1;if(typeof document.selection!="undefined")
{range_sel=document.selection.createRange();range_obj=textarea.createTextRange();range_obj.moveToBookmark(range_sel.getBookmark());range_obj.moveEnd('character',textarea.value.length);pos=len-range_obj.text.length;}
else if(typeof textarea.selectionStart!="undefined")
{pos=textarea.selectionStart;}
if(pos!=-1)
{for(ind=0;ind<erg.length;ind++)
{len=erg[ind].length+1;if(pos<len)
break;pos-=len;}
ind++;pos++;return[ind,pos];}}
