Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.TextBoxWatermarkBehavior = function(element) { AjaxControlToolkit.TextBoxWatermarkBehavior.initializeBase(this, [element]);this._watermarkText = null;this._watermarkCssClass = null;this._watermarked = null;this._focusHandler = null;this._blurHandler = null;this._keyPressHandler = null;this._propertyChangedHandler = null;this._oldClassName = null;this._clearedForSubmit = null;this._maxLength = null;} AjaxControlToolkit.TextBoxWatermarkBehavior.prototype = { initialize : function() { AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'initialize');var e = this.get_element();var hasInitialFocus = false;var clientState = AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'get_ClientState');if (clientState != null && clientState != "") { hasInitialFocus = (clientState == "Focused");AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'set_ClientState', null);} this._oldClassName = e.className;this._focusHandler = Function.createDelegate(this, this._onFocus);this._blurHandler = Function.createDelegate(this, this._onBlur);this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);$addHandler(e, 'focus', this._focusHandler);$addHandler(e, 'blur', this._blurHandler);$addHandler(e, 'keypress', this._keyPressHandler);this.registerPropertyChanged();var currentValue = e.value;this._watermarked = (("" == currentValue) || (this._watermarkText == currentValue));if (hasInitialFocus) { this._onFocus();} else { e.blur();this._onBlur();} this._clearedForSubmit = false;this.registerPartialUpdateEvents();}, dispose : function() { var e = this.get_element();if(e.control && this._propertyChangedHandler) { e.control.remove_propertyChanged(this._propertyChangedHandler);this._propertyChangedHandler = null;} if (this._focusHandler) { $removeHandler(e, 'focus', this._focusHandler);this._focusHandler = null;} if (this._blurHandler) { $removeHandler(e, 'blur', this._blurHandler);this._blurHandler = null;} if (this._keyPressHandler) { $removeHandler(e, 'keypress', this._keyPressHandler);this._keyPressHandler = null;} if(this._watermarked) { this.clearText(false);} AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'dispose');}, clearText : function(focusing) { this.get_element().value = "";if(focusing) { this.get_element().setAttribute("autocomplete","off");this.get_element().select();} }, _onFocus : function(evt) { var e = this.get_element();if(this._watermarked) { this.clearText(evt ? true : false);} e.className = this._oldClassName;this._watermarked = false;if (this._maxLength > 0) { this.get_element().maxLength = this._maxLength;this._maxLength = null;} }, _onBlur : function() { if(("" == this.get_element().value) || this._watermarked) { if (this.get_element().maxLength > 0 && this._watermarkText.length > this.get_element().maxLength) { this._maxLength = this.get_element().maxLength;this.get_element().maxLength = this._watermarkText.length;} this._applyWatermark();} }, _applyWatermark : function() { this.get_element().value = this._watermarkText;if(this._watermarkCssClass) { this.get_element().className = this._watermarkCssClass;} this._watermarked = true;}, _onKeyPress : function() { this._watermarked = false;}, registerPropertyChanged : function() { var e = this.get_element();if(e.control && !this._propertyChangedHandler) { this._propertyChangedHandler = Function.createDelegate(this, this._onPropertyChanged);e.control.add_propertyChanged(this._propertyChangedHandler);} }, _onPropertyChanged : function(sender, propertyChangedEventArgs) { if("text" == propertyChangedEventArgs.get_propertyName()) { this.set_Text(this.get_element().value);} }, _onSubmit : function() { if(this._watermarked) { this.clearText(false);this._clearedForSubmit = true;} }, _partialUpdateEndRequest : function(sender, endRequestEventArgs) { AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]);if (this.get_element() && this._clearedForSubmit) { this.get_element().blur();this._onBlur();this._clearedForSubmit = false;} }, get_WatermarkText : function() { return this._watermarkText;}, set_WatermarkText : function(value) { if (this._watermarkText != value) { this._watermarkText = value;if (this._watermarked) { this._applyWatermark();} this.raisePropertyChanged('WatermarkText');} }, get_WatermarkCssClass : function() { return this._watermarkCssClass;}, set_WatermarkCssClass : function(value) { if (this._watermarkCssClass != value) { this._watermarkCssClass = value;if (this._watermarked) { this._applyWatermark();} this.raisePropertyChanged('WatermarkCssClass');} }, get_Text : function() { return (this._watermarked ? "" : this.get_element().value);}, set_Text : function(value) { if ("" == value) { this.get_element().value = "";this.get_element().blur();this._onBlur();} else { this._onFocus();this.get_element().value = value;} } } AjaxControlToolkit.TextBoxWatermarkBehavior.registerClass('AjaxControlToolkit.TextBoxWatermarkBehavior', AjaxControlToolkit.BehaviorBase);