// (c) 2010 CodePlex Foundation (function(){var b="ExtendedFilteredTextBox";function a(){var c="filtered",b="processKey",d="keypress",a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.FilteredTextBoxBehavior=function(c){var b=this;Sys.Extended.UI.FilteredTextBoxBehavior.initializeBase(b,[c]);b._keypressHandler=a;b._changeHandler=a;b._intervalID=a;b._filterType=Sys.Extended.UI.FilterTypes.Custom;b._filterMode=Sys.Extended.UI.FilterModes.ValidChars;b._validChars=a;b._invalidChars=a;b._filterInterval=250;b.charTypes={};b.charTypes.LowercaseLetters="abcdefghijklmnopqrstuvwxyz";b.charTypes.UppercaseLetters="ABCDEFGHIJKLMNOPQRSTUVWXYZ";b.charTypes.Numbers="0123456789"};Sys.Extended.UI.FilteredTextBoxBehavior.prototype={initialize:function(){var a=this;Sys.Extended.UI.FilteredTextBoxBehavior.callBaseMethod(a,"initialize");var b=a.get_element();a._keypressHandler=Function.createDelegate(a,a._onkeypress);$addHandler(b,d,a._keypressHandler);a._changeHandler=Function.createDelegate(a,a._onchange);$addHandler(b,"change",a._changeHandler);var c=Function.createDelegate(a,a._intervalCallback);a._intervalID=window.setInterval(c,a._filterInterval)},dispose:function(){var b=this,c=b.get_element();$removeHandler(c,d,b._keypressHandler);b._keypressHandler=a;$removeHandler(c,"change",b._changeHandler);b._changeHandler=a;window.clearInterval(b._intervalID);Sys.Extended.UI.FilteredTextBoxBehavior.callBaseMethod(b,"dispose")},_getValidChars:function(){var a=this;if(a._validChars)return a._validChars;a._validChars="";for(type in a.charTypes){var b=Sys.Extended.UI.FilterTypes.toString(a._filterType);if(b.indexOf(type)!=-1)a._validChars+=a.charTypes[type]}return a._validChars},_getInvalidChars:function(){var a=this;if(!a._invalidChars)a._invalidChars=a.charTypes.Custom;return a._invalidChars},_onkeypress:function(a){var b;if((a.rawEvent.charCode==0||a.rawEvent.keyCode==a.rawEvent.which&&a.rawEvent.charCode==undefined)&&(a.rawEvent.keyCode==Sys.UI.Key.pageUp||a.rawEvent.keyCode==Sys.UI.Key.pageDown||a.rawEvent.keyCode==Sys.UI.Key.up||a.rawEvent.keyCode==Sys.UI.Key.down||a.rawEvent.keyCode==Sys.UI.Key.left||a.rawEvent.keyCode==Sys.UI.Key.right||a.rawEvent.keyCode==Sys.UI.Key.home||a.rawEvent.keyCode==Sys.UI.Key.end||a.rawEvent.keyCode==46)||a.ctrlKey)return;if(a.rawEvent.keyIdentifier){if(a.rawEvent.ctrlKey||a.rawEvent.altKey||a.rawEvent.metaKey)return;if(a.rawEvent.keyIdentifier.substring(0,2)!="U+")return;b=a.rawEvent.charCode;if(b==63272)return}else b=a.charCode;if(b&&b>=32){var c=String.fromCharCode(b);!this._processKey(c)&&a.preventDefault()}},_processKey:function(c){var b=this,a="",d=false;if(b._filterMode==Sys.Extended.UI.FilterModes.ValidChars){a=b._getValidChars();d=a&&a.length>0&&a.indexOf(c)==-1}else{a=b._getInvalidChars();d=a&&a.length>0&&a.indexOf(c)>-1}var e=new Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs(c,Sys.Extended.UI.TextBoxWrapper.get_Wrapper(b.get_element()).get_Value(),d);b.raiseProcessKey(e);if(e.get_allowKey())return true;b.raiseFiltered(new Sys.Extended.UI.FilteredTextBoxEventArgs(c));return false},_onchange:function(){for(var b=Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()),d=b.get_Value()||"",c=new Sys.StringBuilder,a=0;a