a:16:{s:9:"#provides";s:24:"dojox.string.BidiComplex";s:9:"#resource";s:21:"string/BidiComplex.js";s:36:"dojox.string.BidiComplex.attachInput";a:4:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"field";a:2:{s:4:"type";s:7:"DOMNode";s:7:"summary";s:14:"INPUT DOM node";}s:7:"pattern";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:116:"Complex Expression Pattern type. One of "FILE_PATH", "URL", "EMAIL", "XPATH"";}}s:6:"source";s:333:" field.alt = pattern; dojo.connect(field, "onkeydown", this, "_ceKeyDown"); dojo.connect(field, "onkeyup", this, "_ceKeyUp"); dojo.connect(field, "oncut", this, "_ceCutText"); dojo.connect(field, "oncopy", this, "_ceCopyText"); field.value = dojox.string.BidiComplex.createDisplayString(field.value, field.alt); ";s:7:"summary";s:86:"Attach key listeners to the INPUT field to accomodate dynamic complex BiDi expressions";}s:44:"dojox.string.BidiComplex.createDisplayString";a:4:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"str";a:1:{s:4:"type";s:6:"String";}s:7:"pattern";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:116:"Complex Expression Pattern type. One of "FILE_PATH", "URL", "EMAIL", "XPATH"";}}s:6:"source";s:491:" str = dojox.string.BidiComplex.stripSpecialCharacters(str); var segmentsPointers = dojox.string.BidiComplex._parse(str, pattern); var buf = '\u202A'/*LRE*/ + str; var shift = 1; dojo.forEach(segmentsPointers, function(n){ if(n != null){ var preStr = buf.substring(0, n + shift); var postStr = buf.substring(n + shift, buf.length); buf = preStr + '\u200E'/*LRM*/ + postStr; shift++; } }); return buf; ";s:7:"summary";s:65:"Create the display string by adding the Unicode direction Markers";}s:47:"dojox.string.BidiComplex.stripSpecialCharacters";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"str";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:67:" return str.replace(/[\u200E\u200F\u202A-\u202E]/g, ""); // String";s:7:"summary";s:55:"removes all Unicode directional markers from the string";s:7:"returns";s:6:"String";}s:35:"dojox.string.BidiComplex._ceKeyDown";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"event";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:87:" var elem = dojo.isIE ? event.srcElement : event.target; _str0 = elem.value;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:33:"dojox.string.BidiComplex._ceKeyUp";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"event";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:2425:" var LRM = '\u200E'; var elem = dojo.isIE ? event.srcElement : event.target; var str1 = elem.value; var ieKey = event.keyCode; if((ieKey == dojo.keys.HOME) || (ieKey == dojo.keys.END) || (ieKey == dojo.keys.SHIFT)){ return; } var cursorStart, cursorEnd; var selection = dojox.string.BidiComplex._getCaretPos(event, elem); if(selection){ cursorStart = selection[0]; cursorEnd = selection[1]; } //Jump over a cursor processing if(dojo.isIE){ var cursorStart1 = cursorStart, cursorEnd1 = cursorEnd; if(ieKey == dojo.keys.LEFT_ARROW){ if((str1.charAt(cursorEnd-1) == LRM) && (cursorStart == cursorEnd)){ dojox.string.BidiComplex._setSelectedRange(elem,cursorStart - 1, cursorEnd - 1); } return; } if(ieKey == dojo.keys.RIGHT_ARROW){ if(str1.charAt(cursorEnd-1) == LRM){ cursorEnd1 = cursorEnd + 1; if(cursorStart == cursorEnd){ cursorStart1 = cursorStart + 1; } } dojox.string.BidiComplex._setSelectedRange(elem, cursorStart1, cursorEnd1); return; } }else{ //Firefox if(ieKey == dojo.keys.LEFT_ARROW){ if(str1.charAt(cursorEnd-1) == LRM){ dojox.string.BidiComplex._setSelectedRange(elem, cursorStart - 1, cursorEnd - 1); } return; } if(ieKey == dojo.keys.RIGHT_ARROW){ if(str1.charAt(cursorEnd-1) == LRM){ dojox.string.BidiComplex._setSelectedRange(elem, cursorStart + 1, cursorEnd + 1); } return; } } var str2 = dojox.string.BidiComplex.createDisplayString(str1, elem.alt); if(str1 != str2) { window.status = str1 + " c=" + cursorEnd; elem.value = str2; if((ieKey == dojo.keys.DELETE) && (str2.charAt(cursorEnd)==LRM)){ elem.value = str2.substring(0, cursorEnd) + str2.substring(cursorEnd+2, str2.length); } if(ieKey == dojo.keys.DELETE){ dojox.string.BidiComplex._setSelectedRange(elem,cursorStart,cursorEnd); }else if(ieKey == dojo.keys.BACKSPACE){ if((_str0.length >= cursorEnd) && (_str0.charAt(cursorEnd-1)==LRM)){ dojox.string.BidiComplex._setSelectedRange(elem, cursorStart - 1, cursorEnd - 1); }else{ dojox.string.BidiComplex._setSelectedRange(elem, cursorStart, cursorEnd); } }else if(elem.value.charAt(cursorEnd) != LRM){ dojox.string.BidiComplex._setSelectedRange(elem, cursorStart + 1, cursorEnd + 1); } }";s:7:"private";b:1;s:7:"summary";s:0:"";}s:37:"dojox.string.BidiComplex._processCopy";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"elem";a:1:{s:4:"type";s:0:"";}s:4:"text";a:1:{s:4:"type";s:0:"";}s:9:"isReverse";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:380:" if(text == null){ if(dojo.isIE){ var range = document.selection.createRange(); text = range.text; }else{ text = elem.value.substring(elem.selectionStart, elem.selectionEnd); } } var textToClipboard = dojox.string.BidiComplex.stripSpecialCharacters(text); if(dojo.isIE){ window.clipboardData.setData("Text", textToClipboard); } return true;";s:7:"summary";s:91:"This function strips the unicode directional controls when the text copied to the Clipboard";s:7:"private";b:1;}s:36:"dojox.string.BidiComplex._ceCopyText";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"elem";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:116:" if(dojo.isIE){ elem.returnValue = false; } return dojox.string.BidiComplex._processCopy(elem, null, false);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:35:"dojox.string.BidiComplex._ceCutText";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"elem";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:391:" var ret = dojox.string.BidiComplex._processCopy(elem, null, false); if(!ret){ return false; } if(dojo.isIE){ // curPos = elem.selectionStart; document.selection.clear(); }else{ var curPos = elem.selectionStart; elem.value = elem.value.substring(0, curPos) + elem.value.substring(elem.selectionEnd); elem.setSelectionRange(curPos, curPos); } return true;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:37:"dojox.string.BidiComplex._getCaretPos";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"event";a:1:{s:4:"type";s:0:"";}s:4:"elem";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:519:" if(dojo.isIE){ var position = 0, range = document.selection.createRange().duplicate(), range2 = range.duplicate(), rangeLength = range.text.length; if(elem.type == "textarea"){ range2.moveToElementText(elem); }else{ range2.expand('textedit'); } while(range.compareEndPoints('StartToStart', range2) > 0){ range.moveStart('character', -1); ++position; } return [position, position + rangeLength]; } return [event.target.selectionStart, event.target.selectionEnd];";s:7:"private";b:1;s:7:"summary";s:0:"";}s:42:"dojox.string.BidiComplex._setSelectedRange";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"elem";a:1:{s:4:"type";s:0:"";}s:14:"selectionStart";a:1:{s:4:"type";s:0:"";}s:12:"selectionEnd";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:442:" if(dojo.isIE){ var range = elem.createTextRange(); if(range){ if(elem.type == "textarea"){ range.moveToElementText(elem); }else{ range.expand('textedit'); } range.collapse(); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); } }else{ elem.selectionStart = selectionStart; elem.selectionEnd = selectionEnd; }";s:7:"private";b:1;s:7:"summary";s:0:"";}s:31:"dojox.string.BidiComplex._parse";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"str";a:1:{s:4:"type";s:6:"String";}s:7:"pattern";a:1:{s:4:"type";s:6:"String";}}s:6:"source";s:1190:" var previous = -1, segmentsPointers = []; var delimiters = { FILE_PATH: "/\\:.", URL: "/:.?=&#", XPATH: "/\\:.<>=[]", EMAIL: "<>@.,;" }[pattern]; switch(pattern){ case "FILE_PATH": case "URL": case "XPATH": dojo.forEach(str, function(ch, i){ if(delimiters.indexOf(ch) >= 0 && _isCharBeforeBiDiChar(str, i, previous)){ previous = i; segmentsPointers.push(i); } }); break; case "EMAIL": var inQuotes = false; // FIXME: unused? dojo.forEach(str, function(ch, i){ if(ch== '\"'){ if(_isCharBeforeBiDiChar(str, i, previous)){ previous = i; segmentsPointers.push(i); } i++; var i1 = str.indexOf('\"', i); if(i1 >= i){ i = i1; } if(_isCharBeforeBiDiChar(str, i, previous)){ previous = i; segmentsPointers.push(i); } } if(delimiters.indexOf(ch) >= 0 && _isCharBeforeBiDiChar(str, i, previous)){ previous = i; segmentsPointers.push(i); } }); } return segmentsPointers;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.string.BidiComplex";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:12:"dojox.string";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}