Dear All,
Kindly I need yours help to solve my problem:
I am using below code to convert the keyboard language automatically to arabic, but below codes remove maxlength for the input type text on my application:
/*
ArabicType
Version 1.3 (24/07/2013)
Revamped by: Alaa Salem
* ver Developer Date Comments
* ----- ----------------- ---------- ----------------------------------------
* 1.3 Alaa Salem
24/07/2013 - First version
* 1.4 Hamzeh Abu Lawi 31/10/2009 - Fix "?" issue
Original developer source comment:
> FarsiType
> Version: 1.3.6
> This script developed to ease typing Farsi (Persian) in web forms where there is no Farsi Keyboard installed on a PC.
> Works with Internet Explorer, FireFox, Opera and Chrome.
*/
function getCaretPosition(e){
var t=0;if(document.selection) {
e.focus();
var n= document.selection.createRange();
n.moveStart("character",-e.value.length);
t=n.text.length}else if(e.selectionStart||e.selectionStart=="0") {
t=e.selectionStart}
return t}
function setCaretPosition(e,t) {
if(e.setSelectionRange){e.focus();
e.setSelectionRange(t,t)}else if(e.createTextRange)
{var n=e.createTextRange();n.collapse(true);
n.moveEnd("character",t);
n.moveStart("character",t);n.select()}}
function displayKeyCode() {
evt=window.event;
var e=evt.which?evt.which:event.keyCode;if(e==111){currentChar="/"}else{currentChar=""}}
function debug(e){}if(typeof HTMLElement!="undefined"&&!HTMLElement.prototype.insertAdjacentElement)
{HTMLElement.prototype.insertAdjacentElement=function(e,t){
switch(e){case"beforeBegin":this.parentNode.insertBefore(t,this);break;
case"afterBegin":this.insertBefore(t,this.firstChild);break;
case"beforeEnd":this.appendChild(t);break;
case"afterEnd":if(this.nextSibling)this.parentNode.insertBefore(t,this.nextSibling);
else this.parentNode.appendChild(t);break}};
HTMLElement.prototype.insertAdjacentHTML=function(e,t){
var n=this.ownerDocument.createRange();n.setStartBefore(this);
var r=n.createContextualFragment(t);
this.insertAdjacentElement(e,r)};
HTMLElement.prototype.insertAdjacentText=function(e,t){
var n=document.createTextNode(t);this.insertAdjacentElement(e,n)}}
var currentChar="";
var ArabicType={farsiKey:[32,33,34,35,36,37,1548,1591,41,40,215,43,1608,45,1586,1592,48,49,50,51,52,53,54,55,56,57,58,1603,44,61,46,1567,64,1616,"1604,1570",125,91,1615,93,"1604,64",1571,247,1600,1548,47,8217,1570,215,1563,1614,1612,1613,"1604,1573",8216,123,1611,1618,1573,126,1580,92,1583,94,95,1584,1588,"1604,1575",1572,1610,1579,1576,1604,1575,1607,1578,1606,1605,1577,1609,1582,1581,1590,1602,1587,1601,1593,1585,1589,1569,1594,1574,60,124,62,1617],
englishKey:[[62,125],[1591,39],[41,40],[40,41],[79,42],[1608,44],[1586,46],[1617,126],[1592,47],[1603,59],[44,60],[46,62],[1567,63],[1616,65],[1569,120],[125,67],[93,68],[1615,69],[91,70],[1594,121],[1650,72],[247,73],[1600,74],[1571,72],[1548,75],[8217,77],[1570,78],[215,79],[1563,80],[1614,81],[1612,82],[1613,83],[60,123],[8216,85],[123,86],[1611,87],[1618,88],[1573,89],[126,90],[1580,91],[1583,93],[1584,96],[1588,97],[1574,122],[1572,99],[1610,100],[1579,101],[1576,102],[1604,103],[1575,104],[1607,105],[1578,106],[1606,107],[1605,108],[1577,109],[1609,110],[1582,111],[1581,112],[1590,113],[1602,114],[1587,115],[1601,116],[1593,117],[1585,118],[1589,119]],
getEnglishChar:function(e,t){var n=e;for(var r=0;r<ArabicType.englishKey.length;r++){
var i=ArabicType.englishKey[r];if(n==i[0]){n=i[1];break}}
if(t.shiftKey){switch(e){case 47:n=76;break;case 79:n=79;break}}return n},Type:true,counter:0,ShowChangeLangButton:0,KeyBoardError:0,
ChangeDir:2,UnSupportedAction:0,fieldText:"",capsLockOn:false,multiKey2Code:null};
ArabicType.enable_disable=function(e){var t,n;if(!e.checked){ArabicType.Type=true;disable=false;color="darkblue"}else{
ArabicType.Type=false;disable=true;color="#ECE9D8"}if(ArabicType.ShowChangeLangButton==1){
for(var r=1;r<=ArabicType.counter;r++){n=document.getElementById("ArabicType_button_"+r);
n.disabled=disable;n.style.backgroundColor=color}}};
ArabicType.Disable=function(){ArabicType.Type=false;var e=document.getElementById("disableArabicType");
if(e!=null){e.checked=true}if(ArabicType.ShowChangeLangButton==1){for(var t=1;t<=ArabicType.counter;t++){
obj=document.getElementById("ArabicType_button_"+t);obj.disabled=true;obj.style.backgroundColor="#ECE9D8"}}};
ArabicType.init=function(){var e=$("input[type=text], textarea");
e.unbind("focus");e.bind("focus",function(e){ArabicType.Type=true;ArabicType.counter=0;ArabicType.vShowChangeLangButton=1;
ArabicType.KeyBoardError=0;ArabicType.ChangeDir=2;ArabicType.UnSupportedAction=0;ArabicType.fieldText="";ArabicType.init()});
for(var t=0;t<e.length;t++){var n=e.eq(t);if(!n.hasClass("lang-en")&&!n.hasClass("lang-ar")){n.addClass("lang-ar")}
var r=n.hasClass("lang-ar");ArabicType.counter++;new ArabicType.KeyObject(n.get(0),ArabicType.counter,r)}
var i=document.getElementById("disableArabicType");if(i!=null){ArabicType.enable_disable(i);
i.onclick=new Function("ArabicType.enable_disable (this);")}};ArabicType.KeyObject = function(e,t,n){GenerateStr="";
if(ArabicType.ShowChangeLangButton==1) {
GenerateStr=GenerateStr+"<input type='button' id=ArabicType_button_"+t+" class='switch-lang-tag btn btn-small hidden' style='display:none; border: none; background-color:darkblue; font-size:11; color:white; font-family:tahoma; padding: 1px; margin: 1px; width: auto; height: auto;' value='"+(n?"AR":"EN")+"' /> " } if(ArabicType.ChangeDir==2) {GenerateStr=GenerateStr+"<input type='button' id=ArabicType_ChangeDir_"+t+" class='switch-lang-tag btn btn-small hidden' style='display:none; border: none; background-color:darkblue; font-size:11; color:white; font-family:tahoma; padding: 1px; margin: 1px; width: auto; height: auto;' value='"+(n?"RTL":"LTR")+"' />" }
e.insertAdjacentHTML("afterEnd",GenerateStr);if(ArabicType.ShowChangeLangButton==1)
{e.bottelm=document.getElementById("ArabicType_button_"+t)}if(ArabicType.ChangeDir==2)
{e.Direlm=document.getElementById("ArabicType_ChangeDir_"+t)}e.farsi=n;e.dir=n?"rtl":"ltr";e.align=n?"right":"left";
e.style.textAlign=e.align;e.style.direction=e.dir;setSelectionRange=function(e,t,n){e.focus();e.setSelectionRange(t,n)};
ChangeDirection=function(){if(e.dir=="rtl"){e.dir="ltr";e.align="left";e.Direlm.value="LTR"}else{e.dir="rtl";
e.align="right";e.Direlm.value="RTL"}e.style.textAlign=e.align;e.style.direction=e.dir;e.focus()};
ChangeLang=function(t,n){if(n)e=n;if(ArabicType.Type){if(e.farsi){e.farsi=false;
if(ArabicType.ShowChangeLangButton==1){e.bottelm.value="EN"}if(ArabicType.ChangeDir==1){e.style.textAlign="left";
e.style.direction="ltr"}}else{e.farsi=true;if(ArabicType.ShowChangeLangButton==1){
e.bottelm.value="AR"}if(ArabicType.ChangeDir==1){e.style.textAlign="right";e.style.direction="rtl"}}e.focus()}if(t.preventDefault)
t.preventDefault();t.returnValue=false;return false};Convert=function(t){if(t==null)t=window.event;var r=t.which?t.which:t.keyCode;
var i=t.which||t.charCode||t.keyCode;var s=t.target||t.originalTarget||t.srcElement;if(t.ctrlKey&&i==32){ChangeLang(t,e)}
if(ArabicType.Type){if(t.charCode!=null&&t.charCode!=i||t.which!=null&&t.which!=i||t.ctrlKey||t.altKey||t.metaKey||i==13||i==27||i==8)
return true;if(i>128&&n||i<=128&&i!=60&&i!=62&&i!=93&&i!=91&&i!=47&&i!=126&&i!=125&&i!=123&&i!=44&&i!=46&&!(i>=48&&i<=59)&&i!=33&&i!=64
&&i!=35&&i!=36&&i!=37&&i!=94&&i!=38&&i!=42&&i!=40&&i!=41&&i!=45&&i!=95&&i!=43&&i!=61&&i!=34&&i!=92&&i!=124&&i!=32&&!n){
if(ArabicType.KeyBoardError==0){ArabicType.Disable()}else{alert("Please change your windows language to English");return false}}
if(ArabicType.Type){if(i>=65&&i<=90&&!t.shiftKey||i>=97&&i<=122&&t.shiftKey&&e.farsi){if(i>=65&&i<=90&&!t.shiftKey){i+=32}}
var o=i==47||i>=65&&i<=90||i==91||i==93||i==123||i==125||i==126||i==215||i==247||i==1548||i==1563||i==1570||i==1571||i==1573||i==1600||
i>=1611&&i<=1616||i==1618||i==8216||i==8217;var u=i>=97&&i<=122||i==1569||i==1572||i>=1574&&i<=1577||i==1579||i==1581||i==1582||i==1585||
i>=1587&&i<=1590||i==1593||i==1594||i==1601||i==1602||i>=1604&&i<=1607||i==1609||i==1610;
if(o&&!t.shiftKey||u&&t.shiftKey){ArabicType.capsLockOn=true}else if(u&&!t.shiftKey||o&&t.shiftKey){ArabicType.capsLockOn=false}if(e.farsi){
if(i==32&&t.shiftKey){i=8204}else{i=ArabicType.farsiKey[i-32]}}else{if(i>128||i==60||i==62||i==93||i==91||i==47||i==126||i==125||i==123||i==44||
i==46||i==40||i==41){i=ArabicType.getEnglishChar(i,t)}}if(typeof i=="string"){var a=i.split(",");i="";
for(var f=0;f<a.length;f++){i+=String.fromCharCode(a[f])}}else{i=String.fromCharCode(i)}i=typeof i=="string"?i:String.fromCharCode(i);
if(currentChar=="/"){i="/"}try{for(;;){setTimeout(function(){ArabicType.multiKey2Code=null;ArabicType.fieldText=""},10);
var l=document.selection;var c=s.selectionStart;var h=s.selectionEnd;
var p=false;if(ArabicType.fieldText=="g"){if(i=="Y"||i=="H"||i=="h"||i=="N"){ArabicType.fieldText+=i}else if(i=="g"){}
else{ArabicType.fieldText=""}}else if(ArabicType.fieldText==""){if(i=="g"){ArabicType.fieldText+=i}else{ArabicType.fieldText=""}}
else{ArabicType.fieldText=""}if(ArabicType.fieldText=="gY"||ArabicType.fieldText=="gH"||ArabicType.fieldText=="gh"||ArabicType.fieldText=="gN")
{switch(ArabicType.fieldText){case"gY":i="T";break;case"gH":i="G";break;case"gh":i="b";break;case"gN":i="B";break}
p=true;c-=1;ArabicType.fieldText=""}if(ArabicType.capsLockOn){i=t.shiftKey?i.toLowerCase():i.toUpperCase()}
var d=$(s).selection("getPos");var v=d.start-(ArabicType.multiKey2Code==null?0:1);if(p){if($.browser.mozilla||
$.browser.webkit||$.browser.safari||$.browser.opera){v-=1}else if($.browser.msie&&$.browser.version>=10){v-=1}}
var m=s.value.substring(0,v);var g=s.value.substring(d.end);s.value=m+i+g;$(s).selection("setPos",{start:m.length+i.length,end:m.length+i.length});
if(typeof c=="number"){ArabicType.multiKey2Code=null}else{ArabicType.multiKey2Code=i}break}}catch(y){try{t.keyCode=i}
catch(y){try{t.initKeyEvent("keypress",true,true,document.defaultView,false,false,true,false,0,i,s)}
catch(y){if(ArabicType.UnSupportedAction==0){alert("Sorry! no ArabicType support");
ArabicType.Disable();var b=document.getElementById("disableArabicType");if(b!=null)
{b.disabled=true}return false}else{s.value+=i}}}}if(t.preventDefault)t.preventDefault();t.returnValue=false}}return true};
if(ArabicType.ShowChangeLangButton==1){e.bottelm.onmouseup=ChangeLang}if(ArabicType.ChangeDir==2){e.Direlm.onmouseup=ChangeDirection}
e.onkeypress=Convert;e.onkeydown=displayKeyCode};if(window.attachEvent) {window.attachEvent("onload",ArabicType.init)}else
if(window.addEventListener){window.addEventListener("load",ArabicType.init,false)}