//© e fusion pvt ltd www.sinharaja.com //all rights reserved //Concept Design & Development: Niranjan Meegammana, Tusitha Randunuge //Language Assistance Asrof,Arthief, //User Implementation Saliya Randunuge,Chulani Padmasanka, Chami, Chamara, Mithila, Hasika //Asistance : Dr. Gihan, Wasantha Deshapriya //Testing : Ranjan Dhanasuriya, Arthif, e fusion //efusion Unikeyboad is a constantly developing online Sinhala,Tamil Unicode tool that can help web based //Sinhala, Tamil content manupulation convinient and easy. //Development Version - Not yet Released Officiall //References info.lk, fonts.lk, kaputa.com, sinhalaunicode.org var xx=InsertJScript('http://gov2.ikadiya.com/ef_tools/','efusion_fix_uni_v1.') var keymaps = new Array(); var Ctrl_on=false; var Alt_on=false; var Shift_on=false; var xbrowser=0; var lastKeyDown=0; if (document.all){ // ie xbrowser=0; } else if (document.layers){ //ns xbrowser=1; } else if (document.getElementById&&!document.all){ xbrowser=2; } for (i=0; i<128; i++) { keymaps[i]=String.fromCharCode(i+3458); } //for (i=0; i<128; i++) { // document.write(keymaps[i]); //} //ZWJ=8205 //ZWNJ=8204 not assigned //ZWS=8204+8203 //rya = 3530 var keys = new Array(); var keypairs = new Array(); var keysplits= new Array(); var nn ; var Myxlang=1; var activeTextBox="document.formx.text1"; xxxx=efillKeys(Myxlang); function efillKeys(Myxlang) { switch (Myxlang) { case 1: { //KS //3551 gayanukithta //3459 visargaya bindu deka //3491-(skan) dha //3492 - (kompa) Ngha //3463 - (daiva) Ngha2 keys[0]="`<>3535,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>0"; keys[1]="q<>3503,w<>3501,e<>3473,r<>3515,t<>3495,y<>3514,u<>3467,i<>3465,o<>3476,p<>3508,[<>3540,]<>3538"; keys[2]="a<>3461,s<>3523,d<>3497,f<>3526,g<>3484,h<>3524,j<>3490,k<>3482,l<>3517,\;<>8205,\'<>0"; keys[3]="z<>3463,x<>3511,c<>3488,v<>3520,b<>3510,n<>3505,m<>3512,\,<>0,.<>0,/<>0,\\<>3530"; keys[4]="~<>3458,!<>0,@<>3545,#<>3536,$<>3537,\%<>0,^<>3544,\&<>3530<>8205<>3514,8<>0,9<>0,0<>0,_<>3550,+<>0"; keys[5]="Q<>3507,W<>3502,E<>3474,R<>3482<>3530<>8205<>3522,T<>3496,Y<>3530<>8205<>3515,U<>3468,I<>3466,O<>3477,P<>3509,{<>3542,}<>3539"; keys[6]="A<>3462,S<>3522,D<>3500,F<>3504,G<>3487,H<>3546,J<>3458,K<>3483,L<>3525,:<>0,\"<>0"; keys[7]="Z<>3464,X<>3521,C<>3489,V<>3498,B<>3513,N<>3499,M<>3485,<<>3548,><>3549,|<>3547,?<>0"; break ; } case 2: { //KT //2946 anuswaraya uda biduwa //2947 visargaya thith thuna keys[0]="`<>3006,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>0"; keys[1]="q<>2980,w<>2980,e<>2958,r<>2992,t<>2975,y<>2991,u<>2953,i<>2951,o<>2962,p<>2986,[<>3009,]<>3007"; keys[2]="a<>2949,s<>3000,d<>2975,f<>2993,g<>2965,h<>3001,j<>2972,k<>2965,l<>2994,\;<>3009,\'<>0"; keys[3]="z<>2974,x<>2985,c<>2970,v<>2997,b<>2986,n<>2984,m<>2990,\,<>0,.<>0,/<>0,\\<>3021"; keys[4]="~<>2946,!<>0,@<>3014,#<>3015,$<>3016,\%<>0,^<>0,\&<>2960,*<>0,(<>0,)<>0,_<>3020,+<>0"; keys[5]="Q<>2975<>3007,W<>2975<>3008,E<>2959,R<>2965<>3021<>2999,T<>2975<>3010,Y<>0,U<>2954,I<>2952,O<>2963,P<>3009,{<>3010,}<>3008"; keys[6]="A<>2950,S<>2999,D<>2975<>3009,F<>2993<>3009,G<>3052,H<>3015,J<>3031,K<>2995,L<>2996,:<>0,\"<>0"; keys[7]="Z<>2969,X<>3000<>3021<>2992<>3008,C<>2970<>3010,V<>2996<>3010,B<>2990<>3010,N<>2979,M<>2990<>3008,<<>3018,><>3019,|<>2947,?<>0"; break; } case 3: { //English keys[0]="`<>0,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>0"; keys[1]="q<>0,w<>0,e<>0,r<>0,t<>0,y<>0,u<>0,i<>0,o<>0,p<>0,[<>0,]<>0"; keys[2]="a<>0,s<>0,d<>0,f<>0,g<>0,h<>0,j<>0,k<>0,l<>0,\;<>0,\'<>0"; keys[3]="z<>0,x<>0,c<>0,v<>0,b<>0,n<>0,m<>0,\,<>0,.<>0,/<>0,\\<>0"; keys[4]="~<>0,!<>0,@<>0,#<>0,$<>0,\%<>0,^<>0,\&<>0,*<>0,(<>0,)<>0,_<>0,+<>0"; keys[5]="Q<>0,W<>0,E<>0,R<>0,T<>0,Y<>0,U<>0,I<>0,O<>0,P<>0,{<>0,}<>0"; keys[6]="A<>0,S<>0,D<>0,F<>0,G<>0,H<>0,J<>0,K<>0,L<>0,:<>0,\"<>0"; keys[7]="Z<>0,X<>0<>0,C<>0,V<>0,B<>0,N<>0,M<>0,<<>0,><>0,?<>0"; break } case 4: { //Wijesekera Official Sinhala keys[0]="`<>3515<>8205<>3530,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>0"; keys[1]="q<>2969,w<>2993,e<>3536,r<>3515,t<>3473,y<>3524,u<>3512,i<>3523,o<>3503,p<>3488,[<>3493,]<>59"; keys[2]="a<>3530,s<>3538,d<>3535,f<>3545,g<>3495,h<>3514,j<>3520,k<>3505,l<>3482,\;<>3501,\'<>46"; keys[3]="z<>39,x<>3511,c<>3490,v<>3497,b<>3465,n<>3510,m<>3508,\,<>3517,.<>3484,/<>0,\\<>0"; keys[4]="~<>3515<>3530,!<>0,@<>0,#<>0,$<>0,\%<>0,^<>0,\&<>0,*<>0,(<>0,)<>0,_<>0,+<>0"; keys[5]="Q<>3542,W<>3467,E<>3537,R<>3469,T<>3476,Y<>3521,U<>3485,I<>3522,O<>3504,P<>3489,{<>3493,}<>58"; keys[6]="A<>3571,S<>3539,D<>3544,F<>3526,G<>3496,H<>3530<>8205<>3514,J<>3525<>3540,K<>3499,L<>3502,:<>0,\"<>3517"; keys[7]="Z<>34,X<>2950,C<>3491,V<>3498,B<>3466,N<>3511,M<>3509,<<>3525,><>3485,?<>0,|<>0"; break } case 5: { //Bamini T keys[0]="`<>3001,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>3000<>3021<>2992<>3008"; keys[1]="q<>2969,w<>2992,e<>2984,r<>2970,t<>2997,y<>2994,u<>2992,i<>3016,o<>2996,p<>3007,[<>2972,]<>3000"; keys[2]="a<>2991,s<>2995,d<>2985,f<>2965,g<>2986,h<>3006,j<>2980,k<>2990,l<>2975,\;<>3021,\'<>0"; keys[3]="z<>2979,x<>2962,c<>2953,v<>2958,b<>2975<>3007,n<>3014,m<>2949,\,<>2951,.<>0,/<>2947,\\<>2999"; keys[4]="~<>0,!<>0,@<>0,#2970<>3010,$<>3016,\%<>0,^<>0,\&<>2960,*<>0,(<>0,)<>0,_<>2947,+<>0"; keys[5]="Q<>2974,W<>2993<>3009,E<>2984<>3009,R<>2970<>3009,T<>2997<>3009,Y<>2994<>3009,U<>2992<>3009,I<>2960,O<>2996<>3009,P<>3008,{<>3009,}<>3010"; keys[6]="A<>2991<>3009,S<>2995<>3009,D<>2985<>3009,F<>2965<>3009,G<>2986<>3009,H<>2992<>3021,J<>2980<>3009,K<>2990<>3009,L<>2975<>3009,:<>0,\"<>0"; keys[7]="Z<>2979<>3009,X<>2963,C<>2954,V<>2959,B<>2975<>3008,N<>3015,M<>2950,<<>2952,><>2951,?<>0"; break; } case 6: { //Sinhala .Apple Mac keys[0]="`<>3530<>8205,1<>0,2<>0,3<>0,4<>0,5<>0,6<>0,7<>0,8<>0,9<>0,0<>0,-<>0,=<>0"; keys[1]="q<>3540,w<>3461,e<>3536,r<>3515,t<>3473,y<>3524,u<>3512,i<>3523,o<>3503,p<>3488,[<>3493,]<>59"; keys[2]="a<>3530,s<>3538,d<>3535,f<>3545,g<>3495,h<>3514,j<>3520,k<>3505,l<>3482,\;<>3501,\'<>46"; keys[3]="z<>3530,x<>3511,c<>3490,v<>3497,b<>3465,n<>3510,m<>3508,\,<>3517,.<>3484,/<>0,\\<>0"; keys[4]="~<>3486,!<>0,@<>0,#<>0,$<>0,\%<>3530<>8205<>3515,^<>0,\&<>0,*<>0,(<>0,)<>0,_<>3515<>8205<>3530,+<>0"; keys[5]="Q<>3542,W<>3467,E<>3537,R<>3469,T<>3476,Y<>3521,U<>3485,I<>3522,O<>3504,P<>3489,{<>3493,}<>58"; keys[6]="A<>3571,S<>3539,D<>3544,F<>3526,G<>3496,H<>3530<>8205<>3514,J<>3525<>3540,K<>3499,L<>3502,:<>0,\"<>3517"; keys[7]="Z<>0,X<>2950,C<>3491,V<>3498,B<>3466,N<>3511,M<>3509,<<>3525,><>3485,?<>0,|<>3487"; break } default: { break } } var ktype=0; for (i=0; i"); ktype=keysplits.length; if (keysplits.length > 0){ nn=keysplits[0]; xval = nn.charCodeAt(0) if (xval > 0) { keymaps[xval]=String.fromCharCode(keysplits[1]); for (k=2; k < keysplits.length; k++) { keymaps[xval]=keymaps[xval]+String.fromCharCode(keysplits[k]); } // for } else { keymaps[xval]=String.fromCharCode(0); } //document.write (keymap[xval]); //document.write (xval); //document.write ("
"); } // end if simple type } } } function efUcode(e,textbox){ //var Key = window.event.keyCode; //etype=event.type; //Alt_on=event.altKey; //alert(Ctrl_on+Alt_on+Shift_on); var inKey=e.charCode? e.charCode : e.keyCode; //var inKey=event.keyCode; if (e.ctrlKey==true) { return}; //if (inKey==88) { return}; //'Ctrl+C' = 'Ctrl'; //if (inKey==67) { return}; //'Ctrl+V' = 'Ctrl'; //if (inKey==86) { return}; //'Ctrl+V' = 'Ctrl'; if (inKey==8 || inKey==13){ return } //if the key isn't the backspace key (which we should allow) if (inKey >=48 && inKey < 57) { return}; //if not a number if (inKey >=40 && inKey < 46) { return}; //if not a number //if (inKey >=60 && inKey < 64) { return}; //if not a number if (inKey >=32 && inKey < 35) { return}; //if not a number if (inKey ==27) { document.getElementById("subMenu").style.visibility = 'hidden'; return false;}; //if Escape outKey=keymaps[inKey]; if (outKey == String.fromCharCode(0)) { return } xxxx=insert(activeTextBox,outKey); //document.formx.text1.value=document.formx.text1.value+outKey; return false; } function setFocusx(textbox,xlang){ document.oncontextmenu = showMenu; //xxs=drawSubMenu(); activeTextBox=textbox; activeTextBox.focus() } function inputx(xn) { var outKey= String.fromCharCode(xn); xxxx=insert(activeTextBox,outKey); //document.formx.text1.value=document.formx.text1.value+outKey; } function chLang(xn) { Myxlang=xn; xxxx=efillKeys(Myxlang); activeTextBox.focus(); //textfield.focus(); } function insert (textfield,outStr) { eval("insertAtCursor(textfield,outStr)"); textfield.focus(); } function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; sel.select(); } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; var newEndPos = startPos + myValue.length; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); myField.setSelectionRange(newEndPos, newEndPos); } else { var newEndPos = myField.value.length + myValue.length; myField.value += myValue; myField.setSelectionRange(newEndPos, newEndPos); } } function PopUpKBD(whatURL) { open( whatURL ,"_abc","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=500,height=350"); } function uniCopy() { activeTextBox.focus(); activeTextBox.select(); therange=activeTextBox.createTextRange(); therange.execCommand("Copy"); } function efuniKit(xlang) { Myxlang=xlang; xxxx=efillKeys(xlang); //document.oncontextmenu = showMenu; xxs=drawSubMenu(); } function drawSubMenu () { var xchk = new Array(); xchk[1]=""; xchk[2]=""; xchk[3]=""; xchk[4]=""; xchk[5]=""; xchk[6]=""; xchk[Myxlang]="checked"; var SubMenuStr="