//>>built define("dojox/string/BidiComplex",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/_base/connect","dojo/_base/sniff","dojo/keys"],function(_1,_2,_3,_4,_5,_6){ _1.experimental("dojox.string.BidiComplex"); var _7=_2.getObject("string.BidiComplex",true,dojox); var _8=[]; _7.attachInput=function(_9,_a){ _9.alt=_a; _4.connect(_9,"onkeydown",this,"_ceKeyDown"); _4.connect(_9,"onkeyup",this,"_ceKeyUp"); _4.connect(_9,"oncut",this,"_ceCutText"); _4.connect(_9,"oncopy",this,"_ceCopyText"); _9.value=_7.createDisplayString(_9.value,_9.alt); }; _7.createDisplayString=function(_b,_c){ _b=_7.stripSpecialCharacters(_b); var _d=_7._parse(_b,_c); var _e="‪"+_b; var _f=1; _3.forEach(_d,function(n){ if(n!=null){ var _10=_e.substring(0,n+_f); var _11=_e.substring(n+_f,_e.length); _e=_10+"‎"+_11; _f++; } }); return _e; }; _7.stripSpecialCharacters=function(str){ return str.replace(/[\u200E\u200F\u202A-\u202E]/g,""); }; _7._ceKeyDown=function(_12){ var _13=_5("ie")?_12.srcElement:_12.target; _8=_13.value; }; _7._ceKeyUp=function(_14){ var LRM="‎"; var _15=_5("ie")?_14.srcElement:_14.target; var _16=_15.value; var _17=_14.keyCode; if((_17==_6.HOME)||(_17==_6.END)||(_17==_6.SHIFT)){ return; } var _18,_19; var _1a=_7._getCaretPos(_14,_15); if(_1a){ _18=_1a[0]; _19=_1a[1]; } if(_5("ie")){ var _1b=_18,_1c=_19; if(_17==_6.LEFT_ARROW){ if((_16.charAt(_19-1)==LRM)&&(_18==_19)){ _7._setSelectedRange(_15,_18-1,_19-1); } return; } if(_17==_6.RIGHT_ARROW){ if(_16.charAt(_19-1)==LRM){ _1c=_19+1; if(_18==_19){ _1b=_18+1; } } _7._setSelectedRange(_15,_1b,_1c); return; } }else{ if(_17==_6.LEFT_ARROW){ if(_16.charAt(_19-1)==LRM){ _7._setSelectedRange(_15,_18-1,_19-1); } return; } if(_17==_6.RIGHT_ARROW){ if(_16.charAt(_19-1)==LRM){ _7._setSelectedRange(_15,_18+1,_19+1); } return; } } var _1d=_7.createDisplayString(_16,_15.alt); if(_16!=_1d){ window.status=_16+" c="+_19; _15.value=_1d; if((_17==_6.DELETE)&&(_1d.charAt(_19)==LRM)){ _15.value=_1d.substring(0,_19)+_1d.substring(_19+2,_1d.length); } if(_17==_6.DELETE){ _7._setSelectedRange(_15,_18,_19); }else{ if(_17==_6.BACKSPACE){ if((_8.length>=_19)&&(_8.charAt(_19-1)==LRM)){ _7._setSelectedRange(_15,_18-1,_19-1); }else{ _7._setSelectedRange(_15,_18,_19); } }else{ if(_15.value.charAt(_19)!=LRM){ _7._setSelectedRange(_15,_18+1,_19+1); } } } } }; _7._processCopy=function(_1e,_1f,_20){ if(_1f==null){ if(_5("ie")){ var _21=document.selection.createRange(); _1f=_21.text; }else{ _1f=_1e.value.substring(_1e.selectionStart,_1e.selectionEnd); } } var _22=_7.stripSpecialCharacters(_1f); if(_5("ie")){ window.clipboardData.setData("Text",_22); } return true; }; _7._ceCopyText=function(_23){ if(_5("ie")){ _23.returnValue=false; } return _7._processCopy(_23,null,false); }; _7._ceCutText=function(_24){ var ret=_7._processCopy(_24,null,false); if(!ret){ return false; } if(_5("ie")){ document.selection.clear(); }else{ var _25=_24.selectionStart; _24.value=_24.value.substring(0,_25)+_24.value.substring(_24.selectionEnd); _24.setSelectionRange(_25,_25); } return true; }; _7._getCaretPos=function(_26,_27){ if(_5("ie")){ var _28=0,_29=document.selection.createRange().duplicate(),_2a=_29.duplicate(),_2b=_29.text.length; if(_27.type=="textarea"){ _2a.moveToElementText(_27); }else{ _2a.expand("textedit"); } while(_29.compareEndPoints("StartToStart",_2a)>0){ _29.moveStart("character",-1); ++_28; } return [_28,_28+_2b]; } return [_26.target.selectionStart,_26.target.selectionEnd]; }; _7._setSelectedRange=function(_2c,_2d,_2e){ if(_5("ie")){ var _2f=_2c.createTextRange(); if(_2f){ if(_2c.type=="textarea"){ _2f.moveToElementText(_2c); }else{ _2f.expand("textedit"); } _2f.collapse(); _2f.moveEnd("character",_2e); _2f.moveStart("character",_2d); _2f.select(); } }else{ _2c.selectionStart=_2d; _2c.selectionEnd=_2e; } }; var _30=function(c){ return (c>="0"&&c<="9")||(c>"ÿ"); }; var _31=function(c){ return (c>="A"&&c<="Z")||(c>="a"&&c<="z"); }; var _32=function(_33,i,_34){ while(i>0){ if(i==_34){ return false; } i--; if(_30(_33.charAt(i))){ return true; } if(_31(_33.charAt(i))){ return false; } } return false; }; _7._parse=function(str,_35){ var _36=-1,_37=[]; var _38={FILE_PATH:"/\\:.",URL:"/:.?=&#",XPATH:"/\\:.<>=[]",EMAIL:"<>@.,;"}[_35]; switch(_35){ case "FILE_PATH": case "URL": case "XPATH": _3.forEach(str,function(ch,i){ if(_38.indexOf(ch)>=0&&_32(str,i,_36)){ _36=i; _37.push(i); } }); break; case "EMAIL": var _39=false; _3.forEach(str,function(ch,i){ if(ch=="\""){ if(_32(str,i,_36)){ _36=i; _37.push(i); } i++; var i1=str.indexOf("\"",i); if(i1>=i){ i=i1; } if(_32(str,i,_36)){ _36=i; _37.push(i); } } if(_38.indexOf(ch)>=0&&_32(str,i,_36)){ _36=i; _37.push(i); } }); } return _37; }; return dojox.string.BidiComplex; });