Array.prototype.binarySearch=function(F){var A=0;var E=this.length-1;var B=(this[0]>this[this.length-1])?1:0;while(A<=E){var D=parseInt((A+E)/2);var C=this[D];C=C.substring(0,F.length);if(!B){if(C<F){A=D+1;continue}if(C>F){E=D-1;continue}}else{if(C>F){A=D+1;continue}if(C<F){E=D-1;continue}}if(F.length>2){for(i=D;i>=0;i--){if(this[i].substring(0,F.length)!=F){return i+1}}}return D}return null};function UnifyChars(inputString){pol=new Array("261","263","281","322","324","243","347","378","380","260","262","280","321","323","211","346","377","379");bez=new Array("97","99","101","108","110","111","115","122","122","65","67","69","76","78","79","83","90","90");for(var i=0;i<pol.length;i++){var regexp=eval("/"+String.fromCharCode(pol[i])+"/g");inputString=inputString.replace(regexp,String.fromCharCode(bez[i]))}return inputString.toLowerCase()}function AutoSuggestControl(B,A,C){this.provider=A;this.textbox=B;this.ClearCombo=C;this.init()}AutoSuggestControl.prototype.autosuggest=function(A){if(A.length>0){return this.typeAhead(A[0])}};AutoSuggestControl.prototype.handleKeyUp=function(A){var B=A.keyCode;if(B<32||(B>=33&&B<=38)||(B>=40&&B<=46)||(B>=112&&B<=123)){if((B==8)||(B==46)){this.ClearCombo()}}else{this.provider.requestSuggestions(this)}};AutoSuggestControl.prototype.init=function(){var A=this;this.textbox.onkeyup=function(B){if(!B){B=window.event}A.handleKeyUp(B)};if(document.layers){window.captureEvents(Event.KEYPRESS)}this.textbox.onkeydown=function(B){if(window.event){B=window.event}if(B.keyCode==9){A.provider.requestSuggestions(A,true)}}};AutoSuggestControl.prototype.selectRange=function(A,B){if(this.textbox.createTextRange){var C=this.textbox.createTextRange();C.moveStart("character",A);C.moveEnd("character",B-this.textbox.value.length);C.select()}else{if(this.textbox.setSelectionRange){this.textbox.setSelectionRange(A,B)}}this.textbox.focus()};AutoSuggestControl.prototype.typeAhead=function(B){var A=this.textbox.value.length;if(this.textbox.createTextRange||this.textbox.setSelectionRange){this.textbox.value=B;this.selectRange(A,B.length)}return(A==B.length)};
