/* copyright 2007 ACTDPL Punjabi University, Patiala, Author: Tejinder Singh Saini/SA Date: 09-Oct-09*/ var selpad; function hideshow(hide,show){ document.getElementById(hide).style.visibility='hidden'; document.getElementById(show).style.visibility='visible'; } function markit(obj){selpad=obj;} function ChangeLang(select){ 	var language = document.getElementById('lang'); 	var kbtype0= document.getElementById('KBType_0'); 	var editor= selpad; 	var f1=0; 	var f2=1; 	language.value=select.value; 	if (language.value==0){ 	    toggleTransliteration(f1); 	} 	if (language.value==1 && kbtype0.checked){ 	    toggleTransliteration(f2); 	} 	else toggleTransliteration(f1);     	editor.focus(); } function pad(myValue) {  	var editor= selpad; 	editor.focus(); 	if (document.selection){ 		var sel1 = document.selection.createRange();         var val="";         var chr;         var sel3 = sel1.duplicate();         sel3.moveToElementText(editor);         if(editor.value.length>0 && sel3.offsetLeft!= sel1.offsetLeft){             sel1.moveStart('character', -1);             val=sel1.text + myValue;                 if (val.charCodeAt(0)==2623){sel1.moveStart('character', -1);val=sel1.text + myValue;}                 selText=formatUni(val);                 sel1.text = selText;         }         else             { sel1.text= myValue;} 	} 	else { 	editor.value= editor.value + myValue; 	if(editor.value.length>1) {editor.value=formatUni(editor.value);} 	} 	var t= setTimeout('markLen()',10); } function txtEvent(evt){ 	var keyCode = evt.keyCode ? evt.keyCode : evt.charCode; 	var keyCodeChar = String.fromCharCode(keyCode).toLowerCase(); 	var lang= document.getElementById('lang'); 	var editor=selpad; 	var kbtype1= document.getElementById('KBType_1'); 	var kbtype2= document.getElementById('KBType_2'); 	var kbtype0= document.getElementById('KBType_0'); 	if (lang.value==0 || kbtype0.checked){var t= setTimeout('markLen()',10); return true;} 	if (kbtype2.checked){ 	    if (keyCode==13 || keyCode==8 || keyCode==40 ){ var t= setTimeout('markLen()',10); return true;} 	} 	else{ 	    if (keyCode==13 || keyCode==8 || keyCode==46 || keyCode==40 || keyCode==39 || keyCode==37){var t= setTimeout('markLen()',10);return true;} 	}      if (evt.type=='keypress'){     var language = 2; 		if (language == 2 ){ 				if (evt.altKey) { 				} 				else { 				    if (kbtype2.checked==true){ 				        var myValue= keyMapUnicodeGurRem(keyCode); 				        } 				    else { 				        var myValue= keyMapUnicodeGur(keyCode); 				    } 				}	 			} 		else{ 				var myValue=String.fromCharCode(keyCode); 		} 		    editor.focus(); 		if (document.selection){ 		    var sel1 = document.selection.createRange();             var val="";             var chr;             var sel3 = sel1.duplicate();             sel3.moveToElementText(editor);             if(editor.value.length>0 && sel3.offsetLeft!= sel1.offsetLeft){                 sel1.moveStart('character', -1);                 val=sel1.text + myValue;                 if (val.charCodeAt(0)==2623){sel1.moveStart('character', -1);val=sel1.text + myValue;}                 selText=formatUni(val);                 sel1.text = selText;             }             else                 { sel1.text= myValue;} 		} 		else{ 		editor.value= editor.value + myValue; 		if(editor.value.length>1) {editor.value=formatUni(editor.value);} 		} 		var t= setTimeout('markLen()',10); 		return false;  }  } function keyMapUnicode(keyValue){  var uniValue=keyValue;  	switch (keyValue){ 	case 92: uniValue=1550; 	break;  	case 43:  uniValue=1570; 	break; 	case 61:  uniValue= 1572; 	break;  	case 95:  uniValue= 1617; 	break; 	case 45:  uniValue= 1571; 	break;     case 41:  uniValue= 40; 	break; 	case 48:  uniValue= 1776; 	break;      case 40:  uniValue= 41; 	break; 	case 57:  uniValue= 1785; 	break;  	case 42:  uniValue= 1612; 	break; 	case 56:  uniValue= 1784; 	break;  	case 38:  uniValue=1620;  	break; 	case 55:  uniValue= 1783; 	break;  	case 94:  uniValue= 1552; 	break; 	case 54:  uniValue= 1782; 	break;  	case 37:  uniValue= 1610; 	break; 	case 53:  uniValue= 1781; 	break;  	case 36:  uniValue= 1574; 	break; 	case 52:  uniValue= 1780; 	break;  	case 51:  uniValue= 1779; 	break; 	case 50:  uniValue= 1778; 	break; 	case 49:  uniValue= 1777; 	break;  	case 126:  uniValue= 1613; 	break; 	case 96:  uniValue= 1611; 	break; 	case 125:  uniValue= 1643; 	break;  	case 123:  uniValue= 1644; 	break;  	case 80:  uniValue= 1615; 	break; 	case 112:  uniValue= 1662; 	break;  	case 79:  uniValue= 1731; 	break; 	case 111:  uniValue= 1729; 	break;  	case 73:  uniValue= 1622; 	break; 	case 105:  uniValue= 1740; 	break;  	case 85:  uniValue= 1623; 	break; 	case 117:  uniValue= 1569; 	break;  	case 89:  uniValue= 1537; 	break; 	case 121:  uniValue= 1746; 	break;  	case 84:  uniValue= 1657; 	break; 	case 116:  uniValue= 1578; 	break;  	case 82:  uniValue= 1681; 	break; 	case 114:  uniValue= 1585; 	break;  	case 69:  uniValue= 1553; 	break; 	case 101:  uniValue= 1593; 	break;  	case 87:  uniValue= 65018; 	break; 	case 119:  uniValue= 1608; 	break;  	case 81:  uniValue= 44; 	break; 	case 113:  uniValue= 1602; 	break; 	case 34:  uniValue= 45; 	break; 	case 39:  uniValue= 46; 	break; 	case 59:  uniValue= 1563; 	break;  	case 76:  uniValue= 1554; 	break; 	case 108:  uniValue= 1604; 	break;  	case 75:  uniValue= 1582; 	break;  	case 107: uniValue=1705; 	break;  	case 74: uniValue=1590; 	break; 	case 106: uniValue=1580; 	break;  	case 72: uniValue=1581; 	break; 	case 104: uniValue=1726; 	break;  	case 71: uniValue=1594; 	break; 	case 103: uniValue=1711; 	break;   	case 70: uniValue=1648; 	break; 	case 102: uniValue=1601; 	break;  	case 68: uniValue=1672; 	break; 	case 100: uniValue=1583; 	break;  	case 83: uniValue=1589; 	break; 	case 115: uniValue=1587; 	break;  	case 65: uniValue=1619; 	break; 	case 97: uniValue=1575; 	break; 	case 63: uniValue=1567; 	break; 	case 47: uniValue=1618; 	break;  	case 62: uniValue=1614; 	break; 	case 46: uniValue=1748; 	break;  	case 60: uniValue=1616; 	break; 	case 44: uniValue=1548; 	break;  	case 77: uniValue=1575; 	break; 	case 109: uniValue=1605; 	break;  	case 78: uniValue=1722; 	break; 	case 110: uniValue=1606; 	break;  	case 66: uniValue=1555; 	break; 	case 98: uniValue=1576; 	break;  	case 86: uniValue=1592; 	break; 	case 118: uniValue=1591; 	break;  	case 67: uniValue=1579; 	break; 	case 99: uniValue=1670; 	break;  	case 88: uniValue=1688; 	break; 	case 120: uniValue=1588; 	break;  	case 90: uniValue=1584; 	break; 	case 122: uniValue=1586; 	break; 	}  return String.fromCharCode(uniValue);   } function keyMapUnicodeAlt(keyValue){  var uniValue = keyValue;  var found=false;  	switch (keyValue) { 	case 45: uniValue=64831; found=true; 	break; 	case 48: uniValue=64830; found=true; 	break; 	case 49: uniValue=43; found=true; 	break; 	case 50:  uniValue=45; found=true; 	break; 	case 51:  uniValue= 215; found=true; 	break; 	case 52:  uniValue= 247; found=true; 	break; 	case 53:  uniValue= 61; found=true; 	break; 	case 54: uniValue=1642; found=true; 	break; 	case 55:  uniValue=1645; found=true; 	break; 	case 56:  uniValue= 47; found=true; 	break; 	case 61:  uniValue= 65010; found=true; 	break; 	case 94:  uniValue= 1571; found=true; 	break; 	} 	if (found) {   		return String.fromCharCode(uniValue); 	} 	else{ 		return -1; 	} } function keyMapUnicodeGur(keyValue){  var uniValue=keyValue;  	switch (keyValue){ 	case 38: uniValue=2654; 	break; 	case 60:  uniValue=2676; 	break; 	case 65:  uniValue= 2565; 	break; 	case 66:  uniValue= 2605; 	break; 	case 67:  uniValue= 2587; 	break; 	case 68:  uniValue= 2599; 	break; 	case 69:  uniValue= 2579; 	break; 	case 70:  uniValue= 2594; 	break; 	case 71:  uniValue= 2584; 	break; 	case 72:  return String.fromCharCode(2637,2617); 	break; 	case 73:  uniValue= 2624; 	break; 	case 74:  uniValue= 2589; 	break; 	case 75:  uniValue= 2582; 	break; 	case 76:  uniValue= 2611; 	break; 	case 77:  uniValue= 2672; 	break; 	case 78:  uniValue= 2562; 	break; 	case 79:  uniValue= 2636; 	break; 	case 80:  uniValue= 2603; 	break; 	case 81:  uniValue= 2597; 	break; 	case 82:  return String.fromCharCode(2637,2608); 	break; 	case 83:  uniValue= 2614; 	break; 	case 84:  uniValue= 2592; 	break; 	case 85:  uniValue= 2626; 	break; 	case 86:  uniValue= 2652; 	break; 	case 87:  return String.fromCharCode(2622,2562); 	break; 	case 88:  uniValue= 2607; 	break; 	case 89:  uniValue= 2632; 	break; 	case 90:  uniValue= 2650; 	break; 	case 91:  uniValue= 2404; 	break; 	case 92:  uniValue= 2590; 	break; 	case 93:  return String.fromCharCode(2404,2404); 	break; 	case 94:  uniValue= 2649; 	break; 	case 95:  return String.fromCharCode(2637,2613); 	break; 	case 96:  uniValue= 2673; 	break; 	case 97:  uniValue= 2675; 	break; 	case 98:  uniValue= 2604; 	break; 	case 99:  uniValue= 2586; 	break; 	case 100:  uniValue= 2598; 	break; 	case 101:  uniValue= 2674; 	break; 	case 102:  uniValue= 2593; 	break; 	case 103:  uniValue= 2583; 	break; 	case 104:  uniValue= 2617; 	break; 	case 105:  return String.fromCharCode(8204,2623); 	break; 	case 106:  uniValue= 2588; 	break; 	case 107:  uniValue= 2581; 	break; 	case 108:  uniValue= 2610; 	break; 	case 109:  uniValue= 2606; 	break; 	case 110:  uniValue= 2600; 	break; 	case 111:  uniValue= 2635; 	break; 	case 112:  uniValue= 2602; 	break;  	case 113: uniValue=2596; 	break; 	case 114: uniValue=2608; 	break; 	case 115: uniValue=2616; 	break; 	case 116: uniValue=2591; 	break; 	case 117: uniValue=2625; 	break; 	case 118: uniValue=2613; 	break; 	case 119: uniValue=2622; 	break;  	case 120: uniValue=2595; 	break; 	case 121: uniValue=2631; 	break; 	case 122: uniValue=2651; 	break; 	case 124: uniValue=2585; 	break; 	case 126: uniValue=2673; 	break; }  return String.fromCharCode(uniValue);   } function keyMapUnicodeGurRem(keyValue){  var uniValue=keyValue;  	switch (keyValue){ 	case 34: uniValue=2636; 	break; 	case 35: uniValue=39; 	break; 	case 36: uniValue=47; 	break; 	case 37: uniValue=215; 	break; 	case 39: uniValue=2635; 	break; 	case 42: uniValue=39; 	break; 	case 43: uniValue=93; 	break; 	case 46: uniValue=2404; 	break; 	case 47: uniValue=2631; 	break; 	case 58: uniValue=2607; 	break; 	case 59: uniValue=2616; 	break; 	case 60:  uniValue=63; 	break; 	case 61: return String.fromCharCode(2632,2562); 	break; 	case 62:  uniValue=2676; 	break; 	case 63:  uniValue= 2632; 	break; 	case 64:  uniValue= 39; 	break; 	case 65: uniValue=2562; 	break; 	case 66:  uniValue= 2600; 	break; 	case 67:  uniValue= 2585; 	break; 	case 68:  uniValue= 2595; 	break; 	case 69:  uniValue= 2597; 	break; 	case 70:  uniValue= 2614; 	break; 	case 71:  uniValue= 2605; 	break; 	case 72:  uniValue=46; 	break; 	case 73:  uniValue= 2562; 	break; 	case 74:  uniValue= 2674; 	break; 	case 75:  return String.fromCharCode(2622,2562); 	break; 	case 76:  uniValue= 58; 	break; 	case 77:  uniValue= 2589; 	break; 	case 78:  uniValue= 2591; 	break; 	case 79:  uniValue= 43; 	break; 	case 80:  return String.fromCharCode(2637,2613); 	break; 	case 81:  return String.fromCharCode(2637,2617); 	break; 	case 82:  uniValue= 2590; 	break; 	case 83:  uniValue= 2587; 	break; 	case 84:  uniValue= 2675; 	break; 	case 85:  uniValue= 2579; 	break; 	case 86:  uniValue= 2652; 	break; 	case 87:  return String.fromCharCode(2608,2625); 	break; 	case 88:  uniValue= 2599; 	break; 	case 89:  uniValue= 2594; 	break; 	case 90:  uniValue= 2673; 	break; 	case 91:  uniValue= 2625; 	break; 	case 92:  uniValue= 2654; 	break; 	case 93:  uniValue= 2649; 	break; 	case 94:  uniValue= 95; 	break; 	case 95:  uniValue= 2562; 	break; 	case 96:  uniValue= 2673; 	break; 	case 97:  uniValue= 2620; 	break; 	case 98:  uniValue= 2610; 	break; 	case 99:  uniValue= 2603; 	break; 	case 100:  uniValue= 2598; 	break; 	case 101:  uniValue= 2581; 	break; 	case 102:  return String.fromCharCode(8204,2623); 	break; 	case 103:  uniValue= 2602; 	break; 	case 104:  uniValue= 2624; 	break; 	case 105:  uniValue= 2588; 	break; 	case 106:  uniValue= 2617; 	break; 	case 107:  uniValue= 2622; 	break; 	case 108:  uniValue= 59; 	break; 	case 109:  uniValue= 2592; 	break; 	case 110:  uniValue= 2565; 	break; 	case 111:  uniValue= 2608; 	break; 	case 112:  uniValue= 2604; 	break;  	case 113:  return String.fromCharCode(2637,2608); 	break; 	case 114: uniValue=2583; 	break; 	case 115: uniValue=2596; 	break; 	case 116: uniValue=2613; 	break; 	case 117: uniValue=2586; 	break; 	case 118: uniValue=2593; 	break; 	case 119: uniValue=2606; 	break;  	case 120: uniValue=2584; 	break; 	case 121: uniValue=2582; 	break; 	case 122: uniValue=2672; 	break; 	case 123: uniValue=2626; 	break; 	case 124: uniValue=2650; 	break; 	case 125: uniValue=2651; 	break; 	case 126: return String.fromCharCode(2600,2626,2672); 	break; }  return String.fromCharCode(uniValue);  } function formatUni(Input){ var iStr = new String(Input); var oStr= new String(); var t,tmp,pre,nxt,nxt2nxt,chr; var skip=0; if (iStr){     for (t=0; t< iStr.length; t++){         if (skip==1) {skip=0; continue;}         chr = iStr.charCodeAt(t);         if (t > 0 && t < iStr.length){pre=iStr.charCodeAt(t-1);}else{ pre=0;}         if (t < iStr.length - 1){nxt = iStr.charCodeAt(t+1);}else{ nxt=0;}         if (t < iStr.length - 2){nxt2nxt = iStr.charCodeAt(t+2);}else{ nxt2nxt=0;}         if (pre==8204 && chr==2623 && nxt>0){oStr=oStr.substring(0,oStr.length-1);oStr= oStr + String.fromCharCode(nxt) + String.fromCharCode(chr);skip=1;}         if (pre==2623 && chr==2637 && nxt>0){if (t-1 > 0){oStr=oStr.substring(0,t-1);}else {oStr="";};oStr= oStr + String.fromCharCode(chr)+ String.fromCharCode(nxt) + String.fromCharCode(pre);skip=1;}         if (chr==2582 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2649);}         if (chr==2588 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2651);}         if (chr==2583 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2650);}         if (chr==2603 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2654);}         if (chr==2610 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2611);}         if (chr==2616 && nxt==2620){skip=1; oStr= oStr + String.fromCharCode(2614);}         if (chr==8204 && nxt!=2623){continue;}         if (skip==0) {oStr= oStr + String.fromCharCode(chr); }           }    oStr=formatUniLV(oStr);  } return oStr; } function formatUniLV(Input){ var iStr = new String(Input); var oStr= new String(); var t,tmp,pre,nxt,chr; var skip=0; if (iStr){     for (t=0; t< iStr.length; t++){         if (skip==1) {skip=0; continue;}         chr = iStr.charCodeAt(t);         if (t > 0 && t < iStr.length){pre=iStr.charCodeAt(t-1);}else{ pre=0;}         if (t < iStr.length - 1){nxt = iStr.charCodeAt(t+1);}else{ nxt=0;}         if (chr==2675 || chr==2579){             if (nxt == 2625){             oStr= oStr + String.fromCharCode(2569);             skip=1;             }             if (nxt == 2626){             oStr= oStr + String.fromCharCode(2570);             skip=1;             }             if (nxt == 2635 || nxt==2636){             oStr= oStr + String.fromCharCode(2579);             skip=1;             }         }         if (chr==2565 || chr==2566 || chr==2576 || chr==2580){             if (nxt == 2622){             oStr= oStr + String.fromCharCode(2566);             skip=1;             }             if (nxt == 2632 || nxt==2631){             oStr= oStr + String.fromCharCode(2576);             skip=1;             }             if (nxt == 2635 || nxt==2636){             oStr= oStr + String.fromCharCode(2580);             skip=1;             }         }         if (chr==2674 || chr==2567 || chr==2568 || chr==2575){             if (nxt == 2623){             oStr= oStr + String.fromCharCode(2567);             skip=1;             }             if (nxt == 2624){             oStr= oStr + String.fromCharCode(2568);             skip=1;             }             if (nxt == 2631 || nxt==2632){             oStr= oStr + String.fromCharCode(2575);             skip=1;             }         }         if (skip==0) {oStr= oStr + String.fromCharCode(chr); }           }  } return oStr; } function showit(fn){ var s=document.getElementById("tejbottom"); if (s){s.src=fn;return false;}else{return false;} } function showHideLayerDefault(layer1,layer2){ 	 try { 	 if (document.getElementById(layer1).style.display == "none") { 	 document.getElementById(layer1).style.display = ""; 	 HideLayerDefault(layer2); 	 } 	 else 	   document.getElementById(layer1).style.display = "none"; 	 } catch(e){} } function HideLayerDefault(layer){ 	 try { 	   document.getElementById(layer).style.display = "none"; 	 } catch(e){} } function init(){ var q=document.getElementById("BtnSave"); q.disabled =true; var q2=document.getElementById("Btnupload"); q2.disabled =true; var q3=document.getElementById("BtnEmail"); q3.disabled =true; var q4=document.getElementById("txtTo"); var LangOpt= document.getElementById('langOption'); var lang = document.getElementById('lang'); var editor = document.getElementById('q'); var kbtype0= document.getElementById('KBType_0'); if (q4){if (q4.value.length>0){showHideLayerDefault('email','key1');} } LangOpt.selectedIndex = lang.value; HideLayerDefault('key1'); HideLayerDefault('key2'); if (lang.value==1 && kbtype0.checked){var t2= setTimeout('roman2gur()',1);} selpad=editor; editor.focus(); var t= setTimeout('markLen()',10);  } function markLen(){     var editor = document.getElementById('q');     var TxtLen=document.getElementById('Len');     var btn=document.getElementById('BtnSave');     var btn2=document.getElementById('BtnEmail');     var lbl=document.getElementById('lblMsg');     var limit=60000;     var ThisLen=editor.value.length;     TxtLen.value = ThisLen;     if (ThisLen > limit || ThisLen<=0){         btn.disabled=true;         btn2.disabled=true;         if(ThisLen > limit){lbl.innerText="ਤੁਸੀਂ ਨਿਰਧਾਰਿਤ " + limit +" ਅੱਖਰਾਂ ਤੋਂ ਵੱਧ ਨਹੀਂ ਜਾ ਸਕਦੇ"}     }     else {         btn.disabled=false;         btn2.disabled=false;     } }