/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


dojo._xdResourceLoaded({depends:[["provide","dijit.form.ValidationTextBox"],["require","dojo.i18n"],["require","dijit.form.TextBox"],["require","dijit.Tooltip"],["requireLocalization","dijit.form","validate",null,"cs,de,es,fr,hu,it,ja,ko,pl,pt,ru,ROOT,zh,zh-cn,zh-tw","cs,de,es,fr,hu,it,ja,ko,pl,pt,ru,ROOT,zh,zh-cn,zh-tw"]],defineResource:function(_1){if(!_1._hasResource["dijit.form.ValidationTextBox"]){_1._hasResource["dijit.form.ValidationTextBox"]=true;_1.provide("dijit.form.ValidationTextBox");_1.require("dojo.i18n");_1.require("dijit.form.TextBox");_1.require("dijit.Tooltip");_1.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:"<table style=\"display: -moz-inline-stack;\" class=\"dijit dijitReset dijitInlineTable\" cellspacing=\"0\" cellpadding=\"0\"\n\tid=\"widget_${id}\" name=\"${name}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\" waiRole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitInputField\" width=\"100%\"\n\t\t\t><input dojoAttachPoint='textbox,focusNode' dojoAttachEvent='onfocus,onblur:_onMouse,onkeyup,onkeypress:_onKeyPress' autocomplete=\"off\"\n\t\t\ttype='${type}' name='${name}'\n\t\t/></td\n\t\t><td class=\"dijitReset dijitValidationIconField\" width=\"0%\"\n\t\t\t><div dojoAttachPoint='iconNode' class='dijitValidationIcon'></div><div class='dijitValidationIconText'>&Chi;</div\n\t\t></td\n\t></tr\n></table>\n",baseClass:"dijitTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",constraints:{},regExp:".*",regExpGen:function(_2){return this.regExp;},state:"",setValue:function(){this.inherited("setValue",arguments);this.validate(false);},validator:function(_3,_4){return (new RegExp("^("+this.regExpGen(_4)+")"+(this.required?"":"?")+"$")).test(_3)&&(!this.required||!this._isEmpty(_3))&&(this._isEmpty(_3)||this.parse(_3,_4)!==null);},isValid:function(_5){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_6){return /^\s*$/.test(_6);},getErrorMessage:function(_7){return this.invalidMessage;},getPromptMessage:function(_8){return this.promptMessage;},validate:function(_9){var _a="";var _b=this.isValid(_9);var _c=this._isEmpty(this.textbox.value);this.state=(_b||(!this._hasBeenBlurred&&_c))?"":"Error";this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",(_b?"false":"true"));if(_9){if(_c){_a=this.getPromptMessage(true);}if(!_a&&!_b){_a=this.getErrorMessage(true);}}this._displayMessage(_a);},_message:"",_displayMessage:function(_d){if(this._message==_d){return;}this._message=_d;this.displayMessage(_d);},displayMessage:function(_e){if(_e){dijit.showTooltip(_e,this.domNode);}else{dijit.hideTooltip(this.domNode);}},_hasBeenBlurred:false,_onBlur:function(_f){this._hasBeenBlurred=true;this.validate(false);this.inherited("_onBlur",arguments);},onfocus:function(evt){this.validate(true);this._onMouse(evt);},onkeyup:function(evt){this.onfocus(evt);},constructor:function(){this.constraints={};},postMixInProperties:function(){this.inherited("postMixInProperties",arguments);this.constraints.locale=this.lang;this.messages=_1.i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}var p=this.regExpGen(this.constraints);this.regExp=p;}});_1.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{serialize:function(val,_14){return (val.toString?val.toString():"");},toString:function(){var val=this.filter(this.getValue());return (val!=null)?((typeof val=="string")?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();this.inherited("validate",arguments);},postCreate:function(){var _16=this.textbox;var _17=(this.valueNode=document.createElement("input"));_17.setAttribute("type",_16.type);_17.setAttribute("value",this.toString());_1.style(_17,"display","none");_17.name=this.textbox.name;this.textbox.name="_"+this.textbox.name+"_displayed_";this.textbox.removeAttribute("name");_1.place(_17,_16,"after");this.inherited("postCreate",arguments);}});_1.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",compare:function(_18,_19){return _18-_19;},rangeCheck:function(_1a,_1b){var _1c=(typeof _1b.min!="undefined");var _1d=(typeof _1b.max!="undefined");if(_1c||_1d){return (!_1c||this.compare(_1a,_1b.min)>=0)&&(!_1d||this.compare(_1a,_1b.max)<=0);}else{return true;}},isInRange:function(_1e){return this.rangeCheck(this.getValue(),this.constraints);},isValid:function(_1f){return this.inherited("isValid",arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_1f));},getErrorMessage:function(_20){if(dijit.form.RangeBoundTextBox.superclass.isValid.call(this,false)&&!this.isInRange(_20)){return this.rangeMessage;}else{return this.inherited("getErrorMessage",arguments);}},postMixInProperties:function(){this.inherited("postMixInProperties",arguments);if(!this.rangeMessage){this.messages=_1.i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},postCreate:function(){this.inherited("postCreate",arguments);if(typeof this.constraints.min!="undefined"){dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min);}if(typeof this.constraints.max!="undefined"){dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max);}}});}}});