var GgvMrAutoCor=false; GgvOldStr="";var __GgvActPane;var GgvAsciiString="";var __GgaShift = new Array(7);var __GgaMap=GgaDev;__GgaShift['__devanagari__']=0;__GgaShift['__bengoli__']=128;__GgaShift['__gurumukhi__']=256;__GgaShift['__gujarati__']=384;__GgaShift['__kannada__']=896;__GgaShift['__malayalam__']=1024;__GgaShift['__telugu__']=768;var GgvLocationType;var GgvAN=null;var GgvTN=null;var GgvBN=null;var GgvIN=null;var GgvNN = null;var GgvON=null;var GgvThisCont;var GgvSel;var GgvRng;var Ggves=false;var GgvPos=0;var GgvText=null;var GgvIE=false;var GgvMozilla=false;var __GgvLangShift=0;var __GgvLang='__roman__';var __Ggvaltlang="__roman__";
function GfSwapLanguage() {if ( __Ggvaltlang != '__roman__' && __GgvLang != '__roman__' ) __Ggvaltlang = '__roman__';swplang = __Ggvaltlang;__Ggvaltlang = __GgvLang;__GgvLang=swplang;GfSetLanguage(__GgvLang);}
function GfHandleCtrl(GivEveObj){if (!document.all) GlvHandleKey = GivEveObj.which;else {if(GivEveObj.keyCode==0) GlvHandleKey = GivEveObj.charCode;else GlvHandleKey = GivEveObj.keyCode;}if((document.all && GlvHandleKey == 28) || (!document.all && GlvHandleKey == 92)) GfSwapLanguage();}
function GfNonPhonetic(GivKey){if( GivKey == 0 || GivKey==8 || GivKey==13 || GivKey==9 || GivKey== 32 || GivKey == 33 || GivKey == 34 || GivKey == 35 || GivKey == 36 || GivKey==37 || GivKey==38 || GivKey==39 || GivKey==40 || GivKey==45 || GivKey==60 || GivKey==62)	{return true;} else {return false;}}
function GfResetGvars(){Ggves=false;GgvNN=null;GgvText=null;GgvAN=null;GgvTN=null;GgvBN=null;GgvIN=null;GgvON=null;GgvAsciiString="";GgvOldStr="";}
function GfSetLanguage(GivLang){ if(GivLang=='') return false; if(__GgaShift[GivLang]) {GfResetGvars();__GgvLangShift=__GgaShift[GivLang];__GgvLang = GivLang;} if(GivLang=='__roman__' || (!__GgaShift[GivLang])) {GfResetGvars();__GgvLangShift=0;__GgvLang=GivLang;} if(__GgvLang == '__devanagari__' || __GgvLang == '__bengoli__' || __GgvLang == '__gurumukhi__' || __GgvLang =='__gujarati__' || __GgvLang =='__kannada__' || __GgvLang =='__malayalam__' || __GgvLang =='__telugu__') __GgaMap=GgaDev;if(__GgvLang == '__urdu__' ){__GgaMap=GgaArabic;if(__GgvActPane) __GgvActPane.style.direction = 'rtl';}return true;}
function GfShiftRequired(GlvUniVal){if (GlvUniVal == '\u007E' || GlvUniVal =='\u0060'|| GlvUniVal =='\u0021'|| GlvUniVal =='\u0040'|| GlvUniVal =='\u0023'|| GlvUniVal =='\u0024'|| GlvUniVal =='\u0025'|| GlvUniVal =='\u005E'|| GlvUniVal =='\u0026'|| GlvUniVal =='\u002A'|| GlvUniVal =='\u0028'|| GlvUniVal =='\u0029'|| GlvUniVal =='\u002D'|| GlvUniVal =='\u003D'|| GlvUniVal =='\u005F'|| GlvUniVal =='\u002B'|| GlvUniVal =='\u005B'|| GlvUniVal =='\u005D'|| GlvUniVal =='\u007B'|| GlvUniVal =='\u007D'|| GlvUniVal =='\u003B'|| GlvUniVal =='\u0027'|| GlvUniVal =='\u003A'|| GlvUniVal =='\u0022'|| GlvUniVal =='\u002C'|| GlvUniVal =='\u002F'|| GlvUniVal =='\u003C'|| GlvUniVal =='\u003E'|| GlvUniVal =='\u003F'|| GlvUniVal =='\u005C'|| GlvUniVal =='\u007C') return false; else return true;}
function GfAttachPhoneticsToEditableId(GivId){var Glfmyfunc=new Function("e","__GgvActPane = '"+GivId+"';GfKeyboardListener(e);");var GlfmyfuncProxy=new Function("e","__GgvActPane = '"+GivId+"';GfKeyboardListenerProxy(e);");
if(document.all){GgvIE=true;var  GlvObj=document.getElementById(GivId);GlvObj.onfocus=function(){__GgvActPane=GivId;GfResetGvars()};GlvObj.onblur=function(){GfResetGvars();__GgvActPane=null;};GlvObj.onclick=function(){__GgvActPane=GivId;GfResetGvars()};
if(document.getElementById(GivId).contentWindow) {var GlvDoc=document.getElementById(GivId).contentWindow.document;GlvDoc.onkeypress= Glfmyfunc;GlvDoc.onkeydown= GlfmyfuncProxy;GlvDoc.onclick= function(){__GgvActPane=GivId;GfResetGvars()};}
else {GlvObj.onkeypress= Glfmyfunc;GlvObj.onkeydown= GlfmyfuncProxy;GlvObj.onclick= function(){__GgvActPane=GivId;GfResetGvars()};}} else {GgvMozilla=true;if(document.getElementById(GivId).contentWindow) {var GlvDocM = document.getElementById(GivId).contentWindow.document;var Glfmyfunc2=new Function("e","__GgvActPane = '"+GivId+"';GfResetGvars();");var Glfmyfunc3=new Function("e","GfResetGvars();__GgvActPane=null;");GlvDocM.addEventListener("focus",Glfmyfunc2 , true);GlvDocM.addEventListener("click", Glfmyfunc2, true);GlvDocM.addEventListener("blur", Glfmyfunc3,  true);}
else {var GlvObjM = document.getElementById(GivId);GlvObjM.onfocus=function(){__GgvActPane=GivId;GfResetGvars();};GlvObjM.onclick=function(){__GgvActPane=GivId;GfResetGvars();};GlvObjM.onblur=function(){GfResetGvars();__GgvActPane=null;};}
try {if(document.getElementById(GivId).contentWindow) document.getElementById(GivId).contentWindow.document.addEventListener("keypress", Glfmyfunc, true); else document.getElementById(GivId).onkeypress= GfKeyboardListener;}catch (e){ alert("Error preloading content.");}}}
function GfKeyboardListenerProxy(GivEvent){if(__GgvLang!='') {var GlvState = (typeof document.getElementById(__GgvActPane).contentWindow == "undefined")?false:true;if(!(GlvState==true && GgvMozilla)) 
{ var GlvThisEvent; if(GgvIE && document.getElementById(__GgvActPane).contentWindow) GlvThisEvent=document.getElementById(__GgvActPane).contentWindow.event; else GlvThisEvent=(window.event) ? window.event : GivEvent;
if (GlvThisEvent.altKey) return;if (!GlvThisEvent.ctrlKey) { if(__GgvLang!='__roman__'){ var __GlvKeyStroke; if(GlvThisEvent.keyCode ==0) __GlvKeyStroke = GlvThisEvent.charCode; else __GlvKeyStroke = GlvThisEvent.keyCode;
if(GfNonPhonetic(__GlvKeyStroke)) {GgvOldStr="";GgvAsciiString="";return __GlvKeyStroke;}}return false;}}}return;}
function GfKeyboardListener(GivEvent){if(__GgvLang!='') { var GlvState = (typeof document.getElementById(__GgvActPane).contentWindow == "undefined")?false:true; if(GlvState==true && GgvMozilla) {if (GivEvent.altKey) return; if (!GivEvent.ctrlKey) { if(__GgvLang!='__roman__') { var __GlvKeyStroke = GivEvent.which;
if(GfNonPhonetic(__GlvKeyStroke)) { GfResetGvars();GgvAsciiString="";GgvOldStr="";return;} else{GfparsePhonetic(__GgvActPane,GivEvent.charCode);GivEvent.preventDefault();return false;}}} else {GfHandleCtrl(GivEvent);}return;}
else {var GlvThisEvent;if(GgvIE && document.getElementById(__GgvActPane).contentWindow) GlvThisEvent=document.getElementById(__GgvActPane).contentWindow.event; else GlvThisEvent=(window.event) ? window.event : GivEvent;
if (GlvThisEvent.altKey) return;if (!GlvThisEvent.ctrlKey) {  if(__GgvLang!='__roman__') {var __GlvKeyStroke;if(GlvThisEvent.keyCode ==0) __GlvKeyStroke = GlvThisEvent.charCode; else __GlvKeyStroke = GlvThisEvent.keyCode;
if(GgvIE) GlvThisEvent.returnValue=GfparsePhonetic(__GgvActPane,__GlvKeyStroke); else { if(GfNonPhonetic(__GlvKeyStroke) || __GlvKeyStroke == 46 ) {GgvOldStr="";GgvAsciiString="";return __GlvKeyStroke;}
GfparsePhonetic(__GgvActPane,__GlvKeyStroke);}return false;}} else { GfHandleCtrl(GlvThisEvent);}}}return;}
function GfparsePhonetic(GivId,GivCode) {var GlvChar = String.fromCharCode(GivCode);if(GivCode==8 || GivCode==32 || GivCode==0 || GivCode==13){ GgvOldStr="";GgvAsciiString="";Ggves=false;GgvNN = null;return;} GgvOldStr = GgvAsciiString;GgvAsciiString = GgvAsciiString + GlvChar;GfSpecialInsert(GivId);return false;}
function GfparsePhonetickey(GivCode){ if (!__GgaMap[GivCode]) return ""; else {  var GlvUnicodeX = __GgaMap[GivCode].toString(); var GlvLocalShift = 0; if(GfShiftRequired(GlvUnicodeX)) GlvLocalShift=__GgvLangShift; var GlvReturnCode; GlvReturnCode=""; for ( i = 0; i < GlvUnicodeX.length;i++) GlvReturnCode = GlvReturnCode.toString()+String.fromCharCode((GlvUnicodeX.charCodeAt(i)+GlvLocalShift)); return (GlvReturnCode);}}
function GfInsertPhoneticNodeMozilla(GivId,GivString) { GgvNN=document.createTextNode(GivString);
if(!Ggves) {GgvON=null;GgvNN=null;Ggves=true;GgvSel = document.getElementById(GivId).contentWindow.getSelection(); if(typeof GgvSel!="undefined") GgvRng=GgvSel.getRangeAt(0); else GgvRng= document.getElementById(GivId).contentWindow.document.createRange(); GgvThisCont=GgvRng.startContainer;GgvPos=GgvRng.startOffset;GgvLocationType=GgvThisCont.nodeType;
if(GgvLocationType!=3) GgvAN=GgvThisCont.childNodes[GgvPos]; else { GgvTN = GgvThisCont; GgvThisCont = GgvTN.parentNode; GgvText = GgvTN.nodeValue;}
GgvNN=document.createTextNode(GivString);var GlvTextBefore=""; if(GgvPos >0 && GgvText!=null) GlvTextBefore = GgvText.substr(0,GgvPos); var GlvTextAfter="";
if(GgvText!=null) GlvTextAfter = GgvText.substr(GgvPos); GgvBN = document.createTextNode(GlvTextBefore); if(!(GgvLocationType!=3)) GgvAN = document.createTextNode(GlvTextAfter);}
if (GgvON!=null && GgvNN!=null) {GgvThisCont.removeChild(GgvON);GgvThisCont.insertBefore(GgvNN, GgvAN);GgvON=GgvNN;}
if(GgvON==null && GgvNN!=null) {GgvON=GgvNN;if(GgvLocationType!=3)GgvThisCont.insertBefore(GgvNN,GgvAN); else {GgvThisCont.insertBefore(GgvAN,GgvTN);GgvThisCont.insertBefore(GgvNN,GgvAN);GgvThisCont.insertBefore(GgvBN,GgvNN);if(GgvText!=null) GgvThisCont.removeChild(GgvTN);}}
if(GgvLocationType!=3) {var GlvDevlen = GivString.length; GgvRng.setEnd(GgvNN,GlvDevlen); GgvRng.setStart(GgvNN,GlvDevlen);} else {GgvRng.setStart(GgvAN,0);GgvRng.setEnd(GgvAN,0);}}
function GfInsertPhoneticNodeIE(GivId,GivString,GivLength) { var GlvEle = document.getElementById(GivId);var GlvPane;if (GlvEle.document.selection) { if(!GlvEle.value) { if(GlvEle.contentWindow) GlvPane = GlvEle.contentWindow.document; else GlvPane = GlvEle.document;} else GlvPane = GlvEle.document; GgvRng = GlvPane.selection.createRange();}
if(GivLength!=0) {var GlvLength; if(!GlvEle.value) GlvLength = GlvPane.body.innerHTML.length; else GlvLength = GlvEle.value.length; if (GlvLength >= GivLength) { GgvRng.moveStart('character', -1*(GivLength));}} GgvRng.text = GivString; GgvRng.collapse(true);GgvRng.select();}
function GfMrAutoCorrect(inStr) {outStr=inStr;outStr=outStr.replace(eval("/^(maha|sa|ta|sA|tA)(tv)/g"),"$1ttv");outStr=outStr.replace(eval("/^(paraMt|kiMt)U$/g"),"$1u");outStr=outStr.replace(eval("/(krut)/g"),"kRut");outStr=outStr.replace(eval("/(krUt)/g"),"kRUt");outStr=outStr.replace(eval("/(dipAval)/g"),"dIpAval");outStr=outStr.replace(eval("/hArdIk$/g"),"hArdik");outStr=outStr.replace(eval("/(pratikSh)/g"),"pratIkSh");outStr=outStr.replace(eval("/(pratix)/g"),"pratIx");outStr=outStr.replace(eval("/(parikSh)/g"),"parIkSh");outStr=outStr.replace(eval("/(parix)/g"),"parIx");outStr=outStr.replace(eval("/(AshirvAd)/g"),"AshIrvAd");outStr=outStr.replace(eval("/(bhitI)/g"),"bhItI");outStr=outStr.replace(eval("/^(tathAp|AN|adyAp|kadAp|it|saMprat|saMprat|at|yathAshakt|yathAbuddh|yathAvidh|yathAsthit|yathAmat)I$/g"),"$1i");return outStr;}
function GfMrPreParse(GivStr) {var GlvFString;GlvFString = GivStr;if(GivStr.length>0) {GivStr=GivStr.replace(eval("/()\\.h()/g"),"$1\+h$2");GivStr=GivStr.replace(eval("/()\\.q()/g"),"$1J$2");GivStr=GivStr.replace(eval("/()\\.n()/g"),"$1M$2");GivStr=GivStr.replace(eval("/()aa()/g"),"$1A$2");GivStr=GivStr.replace(eval("/()ee()/g"),"$1I$2");GivStr=GivStr.replace(eval("/()oo()/g"),"$1U$2");GivStr=GivStr.replace(eval("/()uu()/g"),"$1U$2");GivStr=GivStr.replace(eval("/()C()/g"),"$1ch$2");GivStr=GivStr.replace(eval("/()dny()/g"),"$1jn$2");GivStr=GivStr.replace(eval("/()Ksh()/g"),"$1x$2");GivStr=GivStr.replace(eval("/()X()/g"),"$1x$2");GivStr=GivStr.replace(eval("/()shh()/g"),"$1Sh$2");GivStr=GivStr.replace(eval("/()W()/g"),"$1v$2");GivStr=GivStr.replace(eval("/()V()/g"),"$1v$2");GivStr=GivStr.replace(eval("/()w()/g"),"$1v$2");GivStr=GivStr.replace(eval("/()Z()/g"),"$1z$2");GivStr=GivStr.replace(eval("/()jh()/g"),"$1z$2");GivStr=GivStr.replace(eval("/()P()/g"),"$1p$2");GivStr=GivStr.replace(eval("/()ph()/g"),"$1f$2");GivStr=GivStr.replace(eval("/()F()/g"),"$1f$2");GivStr=GivStr.replace(eval("/()Ph()/g"),"$1f$2");GivStr=GivStr.replace(eval("/()B()/g"),"$1b$2");GivStr=GivStr.replace(eval("/()Ri()/g"),"$1Ru$2");GivStr=GivStr.replace(eval("/()RI()/g"),"$1RU$2");GlvFString = GivStr;
for ( var i = GivStr.length-1; i > -1; i--){ if(GivStr.substr(i,1) == 'a' || GivStr.substr(i,1) == 'A' || GivStr.substr(i,1) == 'e' || GivStr.substr(i,1) == 'E' || GivStr.substr(i,1) == 'i' || GivStr.substr(i,1) == 'I' || GivStr.substr(i,1) == 'o' || GivStr.substr(i,1) == 'O' || GivStr.substr(i,1) == 'u' || GivStr.substr(i,1) == 'U') break;
var GlvLastChar = GivStr.substr(i,1);if( (GlvLastChar >= 'b' && GlvLastChar <= 'd') || (GlvLastChar >= 'f' && GlvLastChar <= 'h') || (GlvLastChar >= 'j' && GlvLastChar <= 'n') || (GlvLastChar >= 'p' && GlvLastChar <= 'p') ||(GlvLastChar >= 'r' && GlvLastChar <= 't') || (GlvLastChar >= 'v' && GlvLastChar <= 'z') || (GlvLastChar >= 'B' && GlvLastChar <= 'D') || (GlvLastChar >= 'F' && GlvLastChar <= 'G') || (GlvLastChar >= 'L' && GlvLastChar <= 'L') || (GlvLastChar >= 'N' && GlvLastChar <= 'N') || (GlvLastChar >= 'P' && GlvLastChar <= 'P') || (GlvLastChar >= 'S' && GlvLastChar <= 'T') || (GlvLastChar >= 'V' && GlvLastChar <= 'Z')) 
{ if(GivStr.substr(i-1,2) !='Rl' && GivStr.substr(i-1,2) !='+h' && GivStr.substr(i-1,2) !='.n' && GivStr.substr(i-1,2) !='+n' && GivStr.substr(i,1) !='M') 
{ GlvFString = GivStr.substr(0,i+1)+'a'; if((i+1)< GivStr.length) GlvFString += GivStr.substr(i+1);	break; }}}}return(GlvFString);}
function GfUrPreParse(GivStr) {var GlvFString;GlvFString = GivStr;if(GivStr.length>0) {GivStr=GivStr.replace(eval("/(\\w)y(\\w)/g"),"$1iy$2");GivStr=GivStr.replace(eval("/^(y|Y)(\\w)/g"),"y\/$1");
GivStr=GivStr.replace(eval("/(\\w)(Y|e)(\\w)/g"),"$1\~#y$2");GivStr=GivStr.replace(eval("/ai$/g"),"Y");GivStr=GivStr.replace(eval("/(\\w)ai(\\w)/g"),"$1\/\/y$2");
GivStr=GivStr.replace(eval("/^i/g"),"ai");}GlvFString = GivStr;return (GlvFString);}
function GfValidateRange(GivStr){for(var i=0;i<GivStr.length;i++){if(GivStr.charCodeAt(i)>126)	return false;}return true;}
function GfGetParsedUnicodeString(GivAsciiString) {if(!GfValidateRange(GivAsciiString))return GivAsciiString;
var GlvParsedCode="";var GlvParsedString="";var GlvUnicodeString="";var GlvStartPos = 0;var GlvLength = 1;var i = 0;var GlvWordInProcess =1;
/*   preformating and autocorrection for input text for selected language */
if(__GgvLang != '__roman__' && __GgvLang != '__urdu__'){	GivAsciiString=GfMrPreParse(GivAsciiString); if(__GgvLang == '__devanagari__' && GgvMrAutoCor)		GivAsciiString=GfMrAutoCorrect(GivAsciiString);}if( __GgvLang == '__urdu__'){GivAsciiString=GfUrPreParse(GivAsciiString);}
if(GivAsciiString.length>0){ while(GlvWordInProcess ==1 ) {	GlvParsedCode  = GfparsePhonetickey(GivAsciiString.substr(GlvStartPos,GlvLength)); if ( GlvParsedCode == "") { GlvUnicodeString+=GlvParsedString;GlvParsedString = ""; GlvStartPos = i+GlvLength-1;GlvLength = 1;i=GlvStartPos;}else {GlvParsedString = GlvParsedCode;GlvLength+=1; if((GlvStartPos+GlvLength-1) >= GivAsciiString.length) {GlvWordInProcess =0;GlvUnicodeString+= GlvParsedString;GlvParsedString = "";}}	}}return (GlvUnicodeString);}
function GfSpecialInsert(GivId){var GlvUniString = GfGetParsedUnicodeString(GgvAsciiString);var GlvOldUniStr = GfGetParsedUnicodeString(GgvOldStr); if(GgvIE) GfInsertPhoneticNodeIE(GivId,GlvUniString,GlvOldUniStr.length); 
if(GgvMozilla) {if(typeof document.getElementById(GivId).contentWindow == "undefined" ) return GfInsertPhoneticTextMozilla(GivId,GlvUniString,GlvOldUniStr.length); else GfInsertPhoneticNodeMozilla(GivId,GlvUniString);}}
function GfInsertPhoneticTextMozilla(GivId,GivString,GivLength) {var GlvEle = document.getElementById(GivId);var GlvDiff = 0;if (GivLength != 0) GlvDiff = GivLength;
if (GlvEle.selectionStart || GlvEle.selectionStart == 0) {var startPos = GlvEle.selectionStart-GlvDiff;var endPos = GlvEle.selectionEnd;var scrollTop = GlvEle.scrollTop; startPos = (startPos == -1 ? GlvEle.value.length : startPos );GlvEle.value = GlvEle.value.substring(0, startPos)+ GivString+ GlvEle.value.substring(endPos, GlvEle.value.length);GlvEle.selectionStart = startPos + GivString.length;GlvEle.selectionEnd = startPos + GivString.length;GlvEle.scrollTop = scrollTop;}
else { var scrollTop = GlvEle.scrollTop;GlvEle.value += GivString;GlvEle.scrollTop = scrollTop;}return;}