var Spry;Spry||(Spry={});if(!Spry.Widget)Spry.Widget={};
Spry.Widget.BrowserSniff=function(){navigator.appName.toString();navigator.platform.toString();var a=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=r=false;var b=/Opera.([0-9\.]*)/i,c=/MSIE.([0-9\.]*)/i,d=/gecko/i,e=/safari\/([\d\.]*)/i;if(a.match(b)){r=a.match(b);this.opera=true;this.version=parseFloat(r[1])}else if(a.match(c)){r=a.match(c);this.ie=true;this.version=parseFloat(r[1])}else if(a.match(e)){this.safari=true;this.version=1.4}else if(a.match(d)){r=a.match(/rv:\s*([0-9\.]+)/i);
this.mozilla=true;this.version=parseFloat(r[1])}this.windows=this.mac=this.linux=false;this.Platform=a.match(/windows/i)?"windows":a.match(/linux/i)?"linux":a.match(/mac/i)?"mac":a.match(/unix/i)?"unix":"unknown";this[this.Platform]=true;this.v=this.version;if(this.safari&&this.mac&&this.mozilla)this.mozilla=false};Spry.is=new Spry.Widget.BrowserSniff;
Spry.Widget.ValidationTextField=function(a,b,c){b=Spry.Widget.Utils.firstValid(b,"none");if(typeof b!="string")Spry.Widget.Utils.showError("The second parameter in the constructor should be the validation type, the options are the third parameter.");else if(typeof Spry.Widget.ValidationTextField.ValidationDescriptors[b]=="undefined")Spry.Widget.Utils.showError("Unknown validation type received as the second parameter.");else{c=Spry.Widget.Utils.firstValid(c,{});this.type=b;if(!this.isBrowserSupported())c.useCharacterMasking=
false;this.init(a,c);a=["submit"].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));a=a.join(",");this.validateOn=0;this.validateOn|=a.indexOf("submit")!=-1?Spry.Widget.ValidationTextField.ONSUBMIT:0;this.validateOn|=a.indexOf("blur")!=-1?Spry.Widget.ValidationTextField.ONBLUR:0;this.validateOn|=a.indexOf("change")!=-1?Spry.Widget.ValidationTextField.ONCHANGE:0;Spry.Widget.ValidationTextField.onloadDidFire?this.attachBehaviors():Spry.Widget.ValidationTextField.loadQueue.push(this)}};
Spry.Widget.ValidationTextField.ONCHANGE=1;Spry.Widget.ValidationTextField.ONBLUR=2;Spry.Widget.ValidationTextField.ONSUBMIT=4;Spry.Widget.ValidationTextField.ERROR_REQUIRED=1;Spry.Widget.ValidationTextField.ERROR_FORMAT=2;Spry.Widget.ValidationTextField.ERROR_RANGE_MIN=4;Spry.Widget.ValidationTextField.ERROR_RANGE_MAX=8;Spry.Widget.ValidationTextField.ERROR_CHARS_MIN=16;Spry.Widget.ValidationTextField.ERROR_CHARS_MAX=32;
Spry.Widget.ValidationTextField.ValidationDescriptors={none:{},custom:{},integer:{characterMasking:/[\-\+\d]/,regExpFilter:/^[\-\+]?\d*$/,validation:function(a,b){if(a==""||a=="-"||a=="+")return false;if(!/^[\-\+]?\d*$/.test(a))return false;b=b||{allowNegative:false};var c=parseInt(a,10);if(isNaN(c))c=false;else{var d=true;if(typeof b.allowNegative!="undefined"&&b.allowNegative==false)d=false;if(!d&&a<0)c=false}return c}},real:{characterMasking:/[\d\.,\-\+e]/i,regExpFilter:/^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,
validation:function(a){if(!/^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/.test(a))return false;a=parseFloat(a);if(isNaN(a))a=false;return a}},currency:{formats:{dot_comma:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,validation:function(a){var b=false;if(/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(a)||/^(\-|\+)?\d+(?:\,\d{2}|)$/.test(a)){a=a.toString().replace(/\./gi,"").replace(/\,/,".");b=parseFloat(a)}return b}},comma_dot:{characterMasking:/[\d\.\,\-\+\$]/,
regExpFilter:/^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,validation:function(a){var b=false;if(/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(a)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(a)){a=a.toString().replace(/\,/gi,"");b=parseFloat(a)}return b}},no_comma:{characterMasking:/[\d\.\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d]*)+(|\.\d{0,2})$/,validation:function(a){var b=false;if(/^(\-|\+)?\d{1,3}(?:\d{3})*(?:\.\d{2}|)$/.test(a)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(a)){a=a.toString().replace(/\,/gi,"");b=parseFloat(a)}return b}}}},
email:{characterMasking:/[^\s]/,validation:function(a){return/^([._a-z0-9-+]+[._a-z0-9-+]*)@((([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6}))$/i.test(a)}},date:{validation:function(a,b){var c=this.dateValidationPattern,d=b.format.match(/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i);c=a.match(c);if(d!==null&&c!==null){for(var e=-1,f=-1,g=-1,h=1;h<d.length;h++)switch(d[h].toLowerCase()){case "dd":e=h;break;case "mm":f=h;break;case "yy":case "yyyy":g=h}if(e!=-1&&f!=-1&&g!=-1){d=-1;e=parseInt(c[e],10);
f=parseInt(c[f],10);c=parseInt(c[g],10);if(f<1||f>12)return false;switch(f){case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30;break;case 2:d=parseInt(c/4,10)*4==c&&(c%100!=0||c%400==0)?29:28}if(e<1||e>d)return false;return new Date(c,f,e)}}else return false}},time:{validation:function(a,b){var c=b.format.match(/([hmst]+)/gi),d=a.match(/(\d+|AM?|PM?)/gi);if(c!==null&&d!==null){if(c.length!=d.length)return false;for(var e=-1,f=-1,g=-1,h=-1,i=0,m=0,j=0,k=
"AM",l=0;l<c.length;l++)switch(c[l].toLowerCase()){case "hh":e=l;break;case "mm":f=l;break;case "ss":g=l;break;case "t":case "tt":h=l}if(e!=-1){i=parseInt(d[e],10);if(isNaN(i)||i>(c[e]=="HH"?23:12))return false}if(f!=-1){m=parseInt(d[f],10);if(isNaN(m)||m>59)return false}if(g!=-1){j=parseInt(d[g],10);if(isNaN(j)||j>59)return false}if(h!=-1){k=d[h].toUpperCase();if(c[h].toUpperCase()=="TT"&&!/^a|pm$/i.test(k)||c[h].toUpperCase()=="T"&&!/^a|p$/i.test(k))return false}return new Date(2E3,0,1,i+(k.charAt(0)==
"P"?12:0),m,j)}else return false}},credit_card:{characterMasking:/\d/,validation:function(a,b){var c=null;b.format=b.format||"ALL";switch(b.format.toUpperCase()){case "ALL":c=/^[3-6]{1}[0-9]{12,15}$/;break;case "VISA":c=/^4[0-9]{12,15}$/;break;case "MASTERCARD":c=/^5[1-5]{1}[0-9]{14}$/;break;case "AMEX":c=/^3(4|7){1}[0-9]{13}$/;break;case "DISCOVER":c=/^6011[0-9]{12}$/;break;case "DINERSCLUB":c=/^3((0[0-5]{1}[0-9]{11})|(6[0-9]{12})|(8[0-9]{12}))$/}if(!c.test(a))return false;c=[];for(var d=1,e="",
f=a.length-1;f>=0;f--){if(d%2==0){e=parseInt(a.charAt(f),10)*2;c[c.length]=e.toString().charAt(0);if(e.toString().length==2)c[c.length]=e.toString().charAt(1)}else{e=a.charAt(f);c[c.length]=e}d++}for(f=d=0;f<c.length;f++)d+=parseInt(c[f],10);if(d%10==0)return true;return false}},zip_code:{formats:{zip_us9:{pattern:"00000-0000"},zip_us5:{pattern:"00000"},zip_uk:{characterMasking:/[\dA-Z\s]/,validation:function(a){return/^[A-Z]{1,2}\d[\dA-Z]?\s?\d[A-Z]{2}$/.test(a)}},zip_canada:{characterMasking:/[\dA-Z\s]/,
pattern:"A0A 0A0"},zip_custom:{}}},phone_number:{formats:{phone_us:{pattern:"(000) 000-0000"},phone_custom:{}}},social_security_number:{pattern:"000-00-0000"},ip:{characterMaskingFormats:{ipv4:/[\d\.]/i,ipv6_ipv4:/[\d\.\:A-F\/]/i,ipv6:/[\d\.\:A-F\/]/i},validation:function(a,b){return Spry.Widget.ValidationTextField.validateIP(a,b.format)}},url:{characterMasking:/[^\s]/,validation:function(a){var b=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,c=a.match(b);if(c&&c[4]){c=c[4].split(".");
for(var d="",e=0;e<c.length;e++)if(d=Spry.Widget.Utils.punycode_encode(c[e],64)){if(d!=c[e]+"-")c[e]="xn--"+d}else return false;c=c.join(".");a=a.replace(b,"$1//"+c+"$5$6$8")}if(a=a.match(/^(?:https?|ftp)\:\/\/(?:(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=:]|%[0-9a-f]{2,2})*\@)?(?:((?:(?:[a-z0-9][a-z0-9\-]*[a-z0-9]|[a-z0-9])\.)*(?:[a-z][a-z0-9\-]*[a-z0-9]|[a-z])|(?:\[[^\]]*\]))(?:\:[0-9]*)?)(?:\/(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@]|%[0-9a-f]{2,2})*)*(?:\?(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?(?:\#(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?$/i))if(a=
a[1]){if(a=="[]")return false;if(a.charAt(0)=="["){a=a.replace(/^\[|\]$/gi,"");return Spry.Widget.ValidationTextField.validateIP(a,"ipv6_ipv4")}else return/[^0-9\.]/.test(a)?true:Spry.Widget.ValidationTextField.validateIP(a,"ipv4")}else return true;else return false}}};
Spry.Widget.ValidationTextField.validateIP=function(a,b){var c=[/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}(?:\/\d{1,3})?$/i,/^[a-f0-9]{0,4}::(?:\/\d{1,3})?$/i,/^:(?::[a-f0-9]{1,4}){1,6}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){1,6}:(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:)(?::[a-f0-9]{1,4}){1,6}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){2}(?::[a-f0-9]{1,4}){1,5}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){3}(?::[a-f0-9]{1,4}){1,4}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){4}(?::[a-f0-9]{1,4}){1,3}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){5}(?::[a-f0-9]{1,4}){1,2}(?:\/\d{1,3})?$/i,
/^(?:[a-f0-9]{1,4}:){6}(?::[a-f0-9]{1,4})(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){6}(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,/^:(?::[a-f0-9]{1,4}){0,4}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){1,5}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:)(?::[a-f0-9]{1,4}){1,4}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){2}(?::[a-f0-9]{1,4}){1,3}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,/^(?:[a-f0-9]{1,4}:){3}(?::[a-f0-9]{1,4}){1,2}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
/^(?:[a-f0-9]{1,4}:){4}(?::[a-f0-9]{1,4}):(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i],d=[/^(\d{1,3}\.){3}\d{1,3}$/i],e=[];if(b=="ipv6"||b=="ipv6_ipv4")e=e.concat(c);if(b=="ipv4"||b=="ipv6_ipv4")e=e.concat(d);c=false;for(d=0;d<e.length;d++)if(e[d].test(a)){c=true;break}if(c&&a.indexOf(".")!=-1){d=a.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);if(!d)return false;d=d[0].replace(/^:/,"");e=d.split(".");if(e.length!=4)return false;var f=/^[\-\+]?\d*$/;for(d=0;d<e.length;d++){if(e[d]=="")return false;var g=parseInt(e[d],
10);if(isNaN(g)||g>255||!f.test(e[d])||e[d].length>3||/^0{2,3}$/.test(e[d]))return false}}if(c&&a.indexOf("/")!=-1){d=a.match(/\/\d{1,3}$/);if(!d)return false;d=parseInt(d[0].replace(/^\//,""),10);if(isNaN(d)||d>128||d<1)return false}return c};Spry.Widget.ValidationTextField.onloadDidFire=false;Spry.Widget.ValidationTextField.loadQueue=[];
Spry.Widget.ValidationTextField.prototype.isBrowserSupported=function(){return Spry.is.ie&&Spry.is.v>=5&&Spry.is.windows||Spry.is.mozilla&&Spry.is.v>=1.4||Spry.is.safari||Spry.is.opera&&Spry.is.v>=9};
Spry.Widget.ValidationTextField.prototype.init=function(a,b){this.element=this.getElement(a);this.errors=0;this.flags={locked:false,restoreSelection:true};this.options={};this.event_handlers=[];this.validClass="textfieldValidState";this.focusClass="textfieldFocusState";this.requiredClass="textfieldRequiredState";this.hintClass="textfieldHintState";this.invalidFormatClass="textfieldInvalidFormatState";this.invalidRangeMinClass="textfieldMinValueState";this.invalidRangeMaxClass="textfieldMaxValueState";
this.invalidCharsMinClass="textfieldMinCharsState";this.invalidCharsMaxClass="textfieldMaxCharsState";this.textfieldFlashTextClass="textfieldFlashText";if(Spry.is.safari)this.flags.lastKeyPressedTimeStamp=0;switch(this.type){case "phone_number":b.format=Spry.Widget.Utils.firstValid(b.format,"phone_us");break;case "currency":b.format=Spry.Widget.Utils.firstValid(b.format,"comma_dot");break;case "zip_code":b.format=Spry.Widget.Utils.firstValid(b.format,"zip_us5");break;case "date":b.format=Spry.Widget.Utils.firstValid(b.format,
"mm/dd/yy");break;case "time":b.format=Spry.Widget.Utils.firstValid(b.format,"HH:mm");b.pattern=b.format.replace(/[hms]/gi,"0").replace(/TT/gi,"AM").replace(/T/gi,"A");break;case "ip":b.format=Spry.Widget.Utils.firstValid(b.format,"ipv4");b.characterMasking=Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].characterMaskingFormats[b.format]}var c={};if(b.format&&Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats)Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[b.format]&&
Spry.Widget.Utils.setOptions(c,Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[b.format]);else Spry.Widget.Utils.setOptions(c,Spry.Widget.ValidationTextField.ValidationDescriptors[this.type]);b.useCharacterMasking=Spry.Widget.Utils.firstValid(b.useCharacterMasking,false);b.hint=Spry.Widget.Utils.firstValid(b.hint,"");b.isRequired=Spry.Widget.Utils.firstValid(b.isRequired,true);b.additionalError=Spry.Widget.Utils.firstValid(b.additionalError,false);if(b.additionalError)b.additionalError=
this.getElement(b.additionalError);b.characterMasking=Spry.Widget.Utils.firstValid(b.characterMasking,c.characterMasking);b.regExpFilter=Spry.Widget.Utils.firstValid(b.regExpFilter,c.regExpFilter);b.pattern=Spry.Widget.Utils.firstValid(b.pattern,c.pattern);b.validation=Spry.Widget.Utils.firstValid(b.validation,c.validation);if(typeof b.validation=="string")b.validation=eval(b.validation);b.minValue=Spry.Widget.Utils.firstValid(b.minValue,c.minValue);b.maxValue=Spry.Widget.Utils.firstValid(b.maxValue,
c.maxValue);b.minChars=Spry.Widget.Utils.firstValid(b.minChars,c.minChars);b.maxChars=Spry.Widget.Utils.firstValid(b.maxChars,c.maxChars);Spry.Widget.Utils.setOptions(this,b);Spry.Widget.Utils.setOptions(this.options,b)};
Spry.Widget.ValidationTextField.prototype.destroy=function(){if(this.event_handlers)for(var a=0;a<this.event_handlers.length;a++)Spry.Widget.Utils.removeEventListener(this.event_handlers[a][0],this.event_handlers[a][1],this.event_handlers[a][2],false);try{delete this.element}catch(b){}try{delete this.input}catch(c){}try{delete this.form}catch(d){}try{delete this.event_handlers}catch(e){}try{this.selection.destroy()}catch(f){}try{delete this.selection}catch(g){}var h=Spry.Widget.Form.onSubmitWidgetQueue,
i=h.length;for(a=0;a<i;a++)if(h[a]==this){h.splice(a,1);break}};
Spry.Widget.ValidationTextField.prototype.attachBehaviors=function(){if(this.element)this.input=this.element.nodeName=="INPUT"?this.element:Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element,"INPUT");if(this.input){this.maxChars&&this.input.removeAttribute("maxLength");this.putHint();this.compilePattern();this.type=="date"&&this.compileDatePattern();this.input.setAttribute("AutoComplete","off");this.selection=new Spry.Widget.SelectionDescriptor(this.input);this.oldValue=this.input.value;
var a=this;this.event_handlers=[];this.event_handlers.push([this.input,"keydown",function(c){if(a.isDisabled())return true;return a.onKeyDown(c||event)}]);this.event_handlers.push([this.input,"keypress",function(c){if(a.isDisabled())return true;return a.onKeyPress(c||event)}]);Spry.is.opera&&this.event_handlers.push([this.input,"keyup",function(c){if(a.isDisabled())return true;return a.onKeyUp(c||event)}]);this.event_handlers.push([this.input,"focus",function(c){if(a.isDisabled())return true;return a.onFocus(c||
event)}]);this.event_handlers.push([this.input,"blur",function(c){if(a.isDisabled())return true;return a.onblur(c||event)}]);this.event_handlers.push([this.input,"mousedown",function(c){if(a.isDisabled())return true;return a.onMouseDown(c||event)}]);this.event_handlers.push([this.input,Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change",function(c){if(a.isDisabled())return true;return a.onchange(c||event)}]);if(Spry.is.mozilla||Spry.is.safari)this.event_handlers.push([this.input,
"dragdrop",function(c){if(a.isDisabled())return true;a.removeHint();return a.onchange(c||event)}]);else Spry.is.ie&&this.event_handlers.push([this.input,"drop",function(c){if(a.isDisabled())return true;return a.onDrop(c||event)}]);for(var b=0;b<this.event_handlers.length;b++)Spry.Widget.Utils.addEventListener(this.event_handlers[b][0],this.event_handlers[b][1],this.event_handlers[b][2],false);if(this.form=Spry.Widget.Utils.getFirstParentWithNodeName(this.input,"FORM")){if(!this.form.attachedSubmitHandler&&
!this.form.onsubmit){this.form.onsubmit=function(c){c=c||event;return Spry.Widget.Form.onSubmit(c,c.srcElement||c.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(c){c=c||event;return Spry.Widget.Form.onReset(c,c.srcElement||c.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};
Spry.Widget.ValidationTextField.prototype.isDisabled=function(){return this.input&&(this.input.disabled||this.input.readOnly)||!this.input};Spry.Widget.ValidationTextField.prototype.getElement=function(a){if(a&&typeof a=="string")return document.getElementById(a);return a};
Spry.Widget.ValidationTextField.addLoadListener=function(a){if(typeof window.addEventListener!="undefined")window.addEventListener("load",a,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",a,false);else typeof window.attachEvent!="undefined"&&window.attachEvent("onload",a)};Spry.Widget.ValidationTextField.processLoadQueue=function(){Spry.Widget.ValidationTextField.onloadDidFire=true;for(var a=Spry.Widget.ValidationTextField.loadQueue,b=a.length,c=0;c<b;c++)a[c].attachBehaviors()};
Spry.Widget.ValidationTextField.addLoadListener(Spry.Widget.ValidationTextField.processLoadQueue);Spry.Widget.ValidationTextField.addLoadListener(function(){Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false)});Spry.Widget.ValidationTextField.prototype.setValue=function(a){this.flags.locked=true;this.input.value=a;this.flags.locked=false;this.oldValue=a;Spry.is.ie||this.onchange()};
Spry.Widget.ValidationTextField.prototype.saveState=function(){this.oldValue=this.input.value;this.selection.update()};Spry.Widget.ValidationTextField.prototype.revertState=function(a){if(a!=this.input.value){this.input.readOnly=true;this.input.value=a;this.input.readOnly=false;Spry.is.safari&&this.flags.active&&this.input.focus()}this.flags.restoreSelection&&this.selection.moveTo(this.selection.start,this.selection.end);this.redTextFlash()};
Spry.Widget.ValidationTextField.prototype.removeHint=function(){if(this.flags.hintOn){this.input.value="";this.flags.hintOn=false;this.removeClassName(this.element,this.hintClass);this.removeClassName(this.additionalError,this.hintClass)}};
Spry.Widget.ValidationTextField.prototype.putHint=function(){if(this.hint&&this.input&&this.input.type=="text"&&this.input.value==""){this.flags.hintOn=true;this.input.value=this.hint;this.addClassName(this.element,this.hintClass);this.addClassName(this.additionalError,this.hintClass)}};
Spry.Widget.ValidationTextField.prototype.redTextFlash=function(){var a=this;this.addClassName(this.element,this.textfieldFlashTextClass);setTimeout(function(){a.removeClassName(a.element,a.textfieldFlashTextClass)},100)};
Spry.Widget.ValidationTextField.prototype.doValidations=function(a,b){if(this.isDisabled())return false;if(this.flags.locked)return false;if(a.length==0&&!this.isRequired){this.errors=0;return false}this.flags.locked=true;var c=false,d=true;if(!this.options.isRequired&&a.length==0)d=false;var e=0,f=a;if(this.useCharacterMasking&&this.characterMasking)for(var g=0;g<a.length;g++)if(!this.characterMasking.test(a.charAt(g))){e|=Spry.Widget.ValidationTextField.ERROR_FORMAT;f=b;c=true;break}if(!c&&this.useCharacterMasking&&
this.regExpFilter)if(!this.regExpFilter.test(f)){e|=Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}if(!c&&this.pattern)if(this.patternToRegExp(a.length).test(a)){if(this.patternLength!=a.length)e|=Spry.Widget.ValidationTextField.ERROR_FORMAT}else{e|=Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}if(f=="")e|=Spry.Widget.ValidationTextField.ERROR_REQUIRED;if(!c&&this.pattern&&this.useCharacterMasking)if(g=this.getAutoComplete(a.length))f+=g;if(!c&&this.minChars!==null&&d)if(a.length<this.minChars){e|=
Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;d=false}if(!c&&this.maxChars!==null&&d)if(a.length>this.maxChars){e|=Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;d=false}if(!c&&this.validation&&d){g=this.validation(f,this.options);if(false===g){e|=Spry.Widget.ValidationTextField.ERROR_FORMAT;d=false}else this.typedValue=g}if(!c&&this.validation&&this.minValue!==null&&d){g=this.validation(this.minValue.toString(),this.options);if(g!==false)if(this.typedValue<g){e|=Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;
d=false}}if(!c&&this.validation&&this.maxValue!==null&&d){d=this.validation(this.maxValue.toString(),this.options);if(d!==false)if(this.typedValue>d)e|=Spry.Widget.ValidationTextField.ERROR_RANGE_MAX}this.useCharacterMasking&&c&&this.revertState(b);this.errors=e;this.fixedValue=f;this.flags.locked=false;return c};
Spry.Widget.ValidationTextField.prototype.onchange=function(a){if(Spry.is.opera&&this.flags.operaRevertOnKeyUp)return true;if(Spry.is.ie&&a&&a.propertyName!="value")return true;if(this.flags.drop){var b=this;setTimeout(function(){b.flags.drop=false;b.onchange(null)},0)}else{if(this.flags.hintOn)return true;if(this.keyCode==8||this.keyCode==46){a=this.doValidations(this.input.value,this.input.value);this.oldValue=this.input.value;if((a||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){b=
this;setTimeout(function(){b.validate()},0);return true}}a=this.doValidations(this.input.value,this.oldValue);if((!a||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){b=this;setTimeout(function(){b.validate()},0)}return true}};
Spry.Widget.ValidationTextField.prototype.onKeyUp=function(a){if(this.flags.operaRevertOnKeyUp){this.setValue(this.oldValue);Spry.Widget.Utils.stopEvent(a);this.selection.moveTo(this.selection.start,this.selection.start);return this.flags.operaRevertOnKeyUp=false}if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}};
Spry.Widget.ValidationTextField.prototype.operaPasteMonitor=function(){if(this.input.value!=this.oldValue)if(this.doValidations(this.input.value,this.input.value)){this.setValue(this.oldValue);this.selection.moveTo(this.selection.start,this.selection.start)}else this.onchange()};
Spry.Widget.ValidationTextField.prototype.compileDatePattern=function(){var a="",b=[],c=[],d=[],e=this.options.format.match(/^([mdy]+)([\.\-\/\\\s]+)([mdy]+)([\.\-\/\\\s]+)([mdy]+)$/i);if(e!==null)for(var f=1;f<e.length;f++)switch(e[f].toLowerCase()){case "dd":b[f-1]="\\d{1,2}";c[f-1]="\\d\\d";a+="("+b[f-1]+")";d[f-1]=null;break;case "mm":b[f-1]="\\d{1,2}";c[f-1]="\\d\\d";a+="("+b[f-1]+")";d[f-1]=null;break;case "yy":b[f-1]="\\d{1,2}";c[f-1]="\\d\\d";a+="(\\d\\d)";d[f-1]=null;break;case "yyyy":b[f-
1]="\\d{1,4}";c[f-1]="\\d\\d\\d\\d";a+="(\\d\\d\\d\\d)";d[f-1]=null;break;default:b[f-1]=c[f-1]=Spry.Widget.ValidationTextField.regExpFromChars(e[f]);a+="["+b[f-1]+"]";d[f-1]=e[f]}this.dateValidationPattern=RegExp("^"+a+"$","");this.dateAutocompleteCharacters=d;this.dateGroupPatterns=b;this.dateFullGroupPatterns=c;this.lastDateGroup=e.length-2};Spry.Widget.ValidationTextField.prototype.getRegExpForGroup=function(a){for(var b="^",c=0;c<=a;c++)b+=this.dateGroupPatterns[c];b+="$";return RegExp(b,"")};
Spry.Widget.ValidationTextField.prototype.getRegExpForFullGroup=function(a){for(var b="^",c=0;c<a;c++)b+=this.dateGroupPatterns[c];b+=this.dateFullGroupPatterns[a];return RegExp(b,"")};Spry.Widget.ValidationTextField.prototype.getDateGroup=function(a,b){if(b==0)return 0;for(var c=a.substring(0,b),d=0;d<=this.lastDateGroup;d++)if(this.getRegExpForGroup(d).test(c))return d;return-1};Spry.Widget.ValidationTextField.prototype.isDateGroupFull=function(a,b){return this.getRegExpForFullGroup(b).test(a)};
Spry.Widget.ValidationTextField.prototype.isValueValid=function(a,b,c){a=a.substring(0,b);return this.getRegExpForGroup(c).test(a)};Spry.Widget.ValidationTextField.prototype.isPositionAtEndOfGroup=function(a,b,c){a=a.substring(0,b);return this.getRegExpForFullGroup(c).test(a)};Spry.Widget.ValidationTextField.prototype.nextDateDelimiterExists=function(a,b,c){c=this.dateAutocompleteCharacters[c+1];if(a.length<b+c.length)return false;else if(a.substring(b,b+c.length)==c)return true;return false};
Spry.Widget.ValidationTextField.prototype.onKeyPress=function(a){if(this.flags.skp){this.flags.skp=false;Spry.Widget.Utils.stopEvent(a);return false}if(a.ctrlKey||a.metaKey||!this.useCharacterMasking)return true;if(Spry.is.opera&&this.flags.operaRevertOnKeyUp){Spry.Widget.Utils.stopEvent(a);return false}if(this.keyCode==8||this.keyCode==46)if(this.doValidations(this.input.value,this.input.value))return true;var b=Spry.Widget.Utils.getCharacterFromEvent(a);if(b&&this.characterMasking)if(!this.characterMasking.test(b)){Spry.Widget.Utils.stopEvent(a);
this.redTextFlash();return false}if(b&&this.pattern){var c=this.patternCharacters[this.selection.start];if(/[ax]/i.test(c))b=c.toLowerCase()==c?b.toLowerCase():b.toUpperCase();c=this.getAutoComplete(this.selection.start);if(this.selection.start==this.oldValue.length)if(this.oldValue.length<this.patternLength){if(c){Spry.Widget.Utils.stopEvent(a);a=this.oldValue.substring(0,this.selection.start)+c+b;if(b=this.doValidations(a,this.oldValue)){this.setValue(this.oldValue.substring(0,this.selection.start)+
c);this.selection.moveTo(this.selection.start+c.length,this.selection.start+c.length)}else{this.setValue(this.fixedValue);this.selection.moveTo(this.fixedValue.length,this.fixedValue.length)}return false}}else{Spry.Widget.Utils.stopEvent(a);this.setValue(this.input.value);return false}else if(c){Spry.Widget.Utils.stopEvent(a);this.selection.moveTo(this.selection.start+c.length,this.selection.start+c.length);return false}Spry.Widget.Utils.stopEvent(a);a=this.oldValue.substring(0,this.selection.start)+
b+this.oldValue.substring(this.selection.start+1);if(b=this.doValidations(a,this.oldValue))this.selection.moveTo(this.selection.start,this.selection.start);else{c=this.getAutoComplete(this.selection.start+1);this.setValue(this.fixedValue);this.selection.moveTo(this.selection.start+1+c.length,this.selection.start+1+c.length)}return false}if(b&&this.type=="date"&&this.useCharacterMasking){var d=this.getDateGroup(this.oldValue,this.selection.start);if(d!=-1){Spry.Widget.Utils.stopEvent(a);d%2!=0&&d++;
if(this.isDateGroupFull(this.oldValue,d))if(this.isPositionAtEndOfGroup(this.oldValue,this.selection.start,d))if(d==this.lastDateGroup)this.redTextFlash();else if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,d)){c=this.dateAutocompleteCharacters[d+1];this.selection.moveTo(this.selection.start+c.length,this.selection.start+c.length);if(b==c)return false;a=this.isDateGroupFull(this.oldValue,d+2)?this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start+
1):this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);if(this.isValueValid(a,this.selection.start+1,d+2)){this.setValue(a);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}else{this.redTextFlash();return false}}else{c=this.dateAutocompleteCharacters[d+1];b=c+b;a=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);if(this.isValueValid(a,this.selection.start+b.length,d+2)){this.setValue(a);this.selection.moveTo(this.selection.start+
b.length,this.selection.start+b.length)}else{b=c;a=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);this.setValue(a);this.selection.moveTo(this.selection.start+b.length,this.selection.start+b.length);this.redTextFlash()}}else{var e=1;a=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start+1);if(this.isValueValid(a,this.selection.start+1,d)){if(this.isPositionAtEndOfGroup(a,this.selection.start+1,d))if(d!=this.lastDateGroup){if(this.nextDateDelimiterExists(a,
this.selection.start+1,d))c=this.dateAutocompleteCharacters[d+1];else{c=this.dateAutocompleteCharacters[d+1];a=this.oldValue.substring(0,this.selection.start)+b+c+this.oldValue.substring(this.selection.start+1)}e=1+c.length}this.setValue(a);this.selection.moveTo(this.selection.start+e,this.selection.start+e)}else this.redTextFlash()}else{a=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);e=1;if(!this.isValueValid(a,this.selection.start+1,d)&&!this.isValueValid(a,
this.selection.start+1,d+1))this.redTextFlash();else{c=this.dateAutocompleteCharacters[d+1];if(b==c){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,d)){a=this.oldValue;e=1}}else if(this.isPositionAtEndOfGroup(a,this.selection.start+1,d))if(d!=this.lastDateGroup){if(this.nextDateDelimiterExists(a,this.selection.start+1,d))c=this.dateAutocompleteCharacters[d+1];else{c=this.dateAutocompleteCharacters[d+1];a=this.oldValue.substring(0,this.selection.start)+b+c+this.oldValue.substring(this.selection.start+
1)}e=1+c.length}this.setValue(a);this.selection.moveTo(this.selection.start+e,this.selection.start+e)}}return false}return false}};
Spry.Widget.ValidationTextField.prototype.onKeyDown=function(a){this.saveState();this.keyCode=a.keyCode;if(Spry.is.opera){if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}if(a.ctrlKey){var b=Spry.Widget.Utils.getCharacterFromEvent(a);if(b&&"vx".indexOf(b.toLowerCase())!=-1){var c=this;this.flags.operaPasteOperation=window.setInterval(function(){c.operaPasteMonitor()},1);return true}}}if(this.keyCode!=8&&this.keyCode!=46&&Spry.Widget.Utils.isSpecialKey(a))return true;
if(this.keyCode==8||this.keyCode==46)if(this.doValidations(this.input.value,this.input.value))return true;if(this.useCharacterMasking&&this.pattern&&this.keyCode==46){if(a.ctrlKey)this.setValue(this.input.value.substring(0,this.selection.start));else if(this.selection.end==this.input.value.length||this.selection.start==this.input.value.length-1)return true;else this.flags.operaRevertOnKeyUp=true;if(Spry.is.mozilla&&Spry.is.mac)this.flags.skp=true;Spry.Widget.Utils.stopEvent(a);return false}if(this.useCharacterMasking&&
this.pattern&&!a.ctrlKey&&this.keyCode==8){if(this.selection.start==this.input.value.length){b=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-b.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-b.length;this.selection.end=this.selection.end-1-b.length}}else if(this.selection.end==this.input.value.length)return true;else this.flags.operaRevertOnKeyUp=true;if(Spry.is.mozilla&&Spry.is.mac)this.flags.skp=
true;Spry.Widget.Utils.stopEvent(a);return false}return true};Spry.Widget.ValidationTextField.prototype.onMouseDown=function(){this.flags.active&&this.saveState()};Spry.Widget.ValidationTextField.prototype.onDrop=function(){this.flags.drop=true;this.removeHint();this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)};
Spry.Widget.ValidationTextField.prototype.onFocus=function(){if(!this.flags.drop){this.removeHint();if(this.pattern&&this.useCharacterMasking){this.setValue(this.input.value+this.getAutoComplete(this.selection.start));this.selection.moveTo(this.input.value.length,this.input.value.length)}this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)}};
Spry.Widget.ValidationTextField.prototype.onblur=function(){this.flags.active=false;this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass);this.flags.restoreSelection=false;this.doValidations(this.input.value,this.input.value);this.flags.restoreSelection=true;this.validateOn&Spry.Widget.ValidationTextField.ONBLUR&&this.validate();var a=this;setTimeout(function(){a.putHint()},10);return true};
Spry.Widget.ValidationTextField.prototype.compilePattern=function(){if(this.pattern){for(var a=[],b=[],c=[],d=0,e="",f="",g=0;g<this.pattern.length;g++){e=this.pattern.charAt(g);if(f=="\\"){b[d-1]=/[0ABXY\?]/i.test(e)?e:Spry.Widget.ValidationTextField.regExpFromChars(e);a[d-1]=e;c[d-1]=null;f=""}else{b[d]=Spry.Widget.ValidationTextField.regExpFromChars(e);if(/[0ABXY\?]/i.test(e)){a[d]=null;c[d]=e}else if(e=="\\"){a[d]=e;c[d]="\\"}else{a[d]=e;c[d]=null}d++;f=e}}this.autoCompleteCharacters=a;this.compiledPattern=
b;this.patternCharacters=c;this.patternLength=a.length}};Spry.Widget.ValidationTextField.prototype.getAutoComplete=function(a,b){if(b==-1){for(var c="",d="";a&&(c=this.getAutoComplete(--a));)d=c;return d}d=c="";for(var e=a;e<this.autoCompleteCharacters.length;e++)if(d=this.autoCompleteCharacters[e])c+=d;else break;return c};
Spry.Widget.ValidationTextField.regExpFromChars=function(a){for(var b="",c="",d=0;d<a.length;d++){c=a.charAt(d);switch(c){case "0":b+="\\d";break;case "A":b+="[A-Z]";break;case "a":b+="[a-z]";break;case "B":case "b":b+="[a-zA-Z]";break;case "x":b+="[0-9a-z]";break;case "X":b+="[0-9A-Z]";break;case "Y":case "y":b+="[0-9a-zA-Z]";break;case "?":b+=".";break;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":b+=c;break;case "c":case "C":case "e":case "E":case "f":case "F":case "r":case "d":case "D":case "n":case "s":case "S":case "w":case "W":case "t":case "v":b+=
c;break;default:b+="\\"+c}}return b};Spry.Widget.ValidationTextField.prototype.patternToRegExp=function(a){var b="^";a=Math.min(this.compiledPattern.length,a);for(var c=0;c<a;c++)b+=this.compiledPattern[c];b+="$";return b=RegExp(b,"")};
Spry.Widget.ValidationTextField.prototype.resetClasses=function(){for(var a=[this.requiredClass,this.invalidFormatClass,this.invalidRangeMinClass,this.invalidRangeMaxClass,this.invalidCharsMinClass,this.invalidCharsMaxClass,this.validClass],b=0;b<a.length;b++){this.removeClassName(this.element,a[b]);this.removeClassName(this.additionalError,a[b])}};
Spry.Widget.ValidationTextField.prototype.reset=function(){this.removeHint();this.oldValue=this.input.defaultValue;this.resetClasses();if(Spry.is.ie){this.input.forceFireFirstOnPropertyChange=true;this.input.removeAttribute("forceFireFirstOnPropertyChange")}var a=this;setTimeout(function(){a.putHint()},10)};
Spry.Widget.ValidationTextField.prototype.validate=function(){this.resetClasses();if(this.validateOn&Spry.Widget.ValidationTextField.ONSUBMIT){this.removeHint();this.doValidations(this.input.value,this.input.value);if(!this.flags.active){var a=this;setTimeout(function(){a.putHint()},10)}}if(this.isRequired&&this.errors&Spry.Widget.ValidationTextField.ERROR_REQUIRED){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}if(this.errors&
Spry.Widget.ValidationTextField.ERROR_FORMAT){this.addClassName(this.element,this.invalidFormatClass);this.addClassName(this.additionalError,this.invalidFormatClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_RANGE_MIN){this.addClassName(this.element,this.invalidRangeMinClass);this.addClassName(this.additionalError,this.invalidRangeMinClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_RANGE_MAX){this.addClassName(this.element,this.invalidRangeMaxClass);
this.addClassName(this.additionalError,this.invalidRangeMaxClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MIN){this.addClassName(this.element,this.invalidCharsMinClass);this.addClassName(this.additionalError,this.invalidCharsMinClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MAX){this.addClassName(this.element,this.invalidCharsMaxClass);this.addClassName(this.additionalError,this.invalidCharsMaxClass);return false}this.addClassName(this.element,
this.validClass);this.addClassName(this.additionalError,this.validClass);return true};Spry.Widget.ValidationTextField.prototype.addClassName=function(a,b){!a||!b||a.className&&a.className.search(RegExp("\\b"+b+"\\b"))!=-1||(a.className+=(a.className?" ":"")+b)};Spry.Widget.ValidationTextField.prototype.removeClassName=function(a,b){if(!(!a||!b||a.className&&a.className.search(RegExp("\\b"+b+"\\b"))==-1))a.className=a.className.replace(RegExp("\\s*\\b"+b+"\\b","g"),"")};
Spry.Widget.SelectionDescriptor=function(a){this.element=a;this.update()};
Spry.Widget.SelectionDescriptor.prototype.update=function(){if(Spry.is.ie&&Spry.is.windows){var a=this.element.ownerDocument.selection;if(this.element.nodeName=="TEXTAREA"){if(a.type!="None"){try{var b=a.createRange()}catch(c){return}if(b.parentElement()==this.element){a=this.element.ownerDocument.body.createTextRange();a.moveToElementText(this.element);for(var d=0;a.compareEndPoints("StartToStart",b)<0;d++)a.moveStart("character",1);this.start=d;a=this.element.ownerDocument.body.createTextRange();
a.moveToElementText(this.element);for(d=0;a.compareEndPoints("StartToEnd",b)<0;d++)a.moveStart("character",1);this.end=d;this.length=this.end-this.start;this.text=b.text}}}else if(this.element.nodeName=="INPUT"){try{this.range=a.createRange()}catch(e){return}this.length=this.range.text.length;b=this.range.duplicate();this.start=-b.moveStart("character",-1E4);b=this.range.duplicate();b.collapse(false);this.end=-b.moveStart("character",-1E4);this.text=this.range.text}}else{b=this.element;d=a=0;try{a=
b.selectionStart}catch(f){}try{d=b.selectionEnd}catch(g){}if(Spry.is.safari){if(a==2147483647)a=0;if(d==2147483647)d=0}this.start=a;this.end=d;this.length=d-a;this.text=this.element.value.substring(a,d)}};Spry.Widget.SelectionDescriptor.prototype.destroy=function(){try{delete this.range}catch(a){}try{delete this.element}catch(b){}};Spry.Widget.SelectionDescriptor.prototype.move=function(a){if(Spry.is.ie&&Spry.is.windows){this.range.move("character",a);this.range.select()}else try{this.element.selectionStart++}catch(b){}this.update()};
Spry.Widget.SelectionDescriptor.prototype.moveTo=function(a,b){if(Spry.is.ie&&Spry.is.windows){if(this.element.nodeName=="TEXTAREA"){var c=this.element.createTextRange();this.range=this.element.createTextRange();this.range.move("character",a);this.range.moveEnd("character",b-a);this.range.compareEndPoints("StartToStart",c)<0&&this.range.setEndPoint("StartToStart",c);this.range.compareEndPoints("EndToEnd",c)>0&&this.range.setEndPoint("EndToEnd",c)}else if(this.element.nodeName=="INPUT"){this.range=
this.element.ownerDocument.selection.createRange();this.range.move("character",-1E4);this.start=this.range.moveStart("character",a);this.end=this.start+this.range.moveEnd("character",b-a)}this.range.select()}else{this.start=a;try{this.element.selectionStart=a}catch(d){}this.end=b;try{this.element.selectionEnd=b}catch(e){}}this.ignore=true;this.update()};Spry.Widget.SelectionDescriptor.prototype.moveEnd=function(a){if(Spry.is.ie&&Spry.is.windows){this.range.moveEnd("character",a);this.range.select()}else try{this.element.selectionEnd++}catch(b){}this.update()};
Spry.Widget.SelectionDescriptor.prototype.collapse=function(a){if(Spry.is.ie&&Spry.is.windows){this.range=this.element.ownerDocument.selection.createRange();this.range.collapse(a);this.range.select()}else if(a)try{this.element.selectionEnd=this.element.selectionStart}catch(b){}else try{this.element.selectionStart=this.element.selectionEnd}catch(c){}this.update()};if(!Spry.Widget.Form)Spry.Widget.Form={};if(!Spry.Widget.Form.onSubmitWidgetQueue)Spry.Widget.Form.onSubmitWidgetQueue=[];
if(!Spry.Widget.Form.validate)Spry.Widget.Form.validate=function(a){for(var b=true,c=true,d=Spry.Widget.Form.onSubmitWidgetQueue,e=d.length,f=0;f<e;f++)if(!d[f].isDisabled()&&d[f].form==a)b=(c=d[f].validate())&&b;return b};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(a,b){if(Spry.Widget.Form.validate(b)==false)return false;return true};
if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(a,b){for(var c=Spry.Widget.Form.onSubmitWidgetQueue,d=c.length,e=0;e<d;e++)!c[e].isDisabled()&&c[e].form==b&&typeof c[e].reset=="function"&&c[e].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(a){for(var b=Spry.Widget.Form.onSubmitWidgetQueue,c=0;c<Spry.Widget.Form.onSubmitWidgetQueue.length;c++)if(b[c].form==a&&typeof b[c].destroy=="function"){b[c].destroy();c--}};
if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){for(var a=Spry.Widget.Form.onSubmitWidgetQueue,b=0;b<Spry.Widget.Form.onSubmitWidgetQueue.length;b++)if(typeof a[b].destroy=="function"){a[b].destroy();b--}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.punycode_constants={base:36,tmin:1,tmax:26,skew:38,damp:700,initial_bias:72,initial_n:128,delimiter:45,maxint:67108864};Spry.Widget.Utils.punycode_encode_digit=function(a){return String.fromCharCode(a+22+75*(a<26))};
Spry.Widget.Utils.punycode_adapt=function(a,b,c){a=c?a/this.punycode_constants.damp:a>>1;a+=a/b;for(b=0;a>(this.punycode_constants.base-this.punycode_constants.tmin)*this.punycode_constants.tmax/2;b+=this.punycode_constants.base)a/=this.punycode_constants.base-this.punycode_constants.tmin;return b+(this.punycode_constants.base-this.punycode_constants.tmin+1)*a/(a+this.punycode_constants.skew)};
Spry.Widget.Utils.punycode_encode=function(a,b){var c=a.split("");a=[];for(var d=0;d<c.length;d++)a.push(c[d].charCodeAt(0));c="";var e,f,g,h,i,m=a.length,j=this.punycode_constants.initial_n,k=0,l=this.punycode_constants.initial_bias,n=0;for(f=0;f<m;f++)if(a[f]<128){if(b-n<2)return false;c+=String.fromCharCode(a[f]);n++}d=e=n;if(e>0){c+=String.fromCharCode(this.punycode_constants.delimiter);n++}for(;d<m;){g=this.punycode_constants.maxint;for(f=0;f<m;f++)if(a[f]>=j&&a[f]<g)g=a[f];if(g-j>(this.punycode_constants.maxint-
k)/(d+1))return false;k+=(g-j)*(d+1);j=g;for(f=0;f<m;f++){if(a[f]<j)if(++k==0)return false;if(a[f]==j){g=k;for(h=this.punycode_constants.base;;h+=this.punycode_constants.base){if(n>=b)return false;i=h<=l?this.punycode_constants.tmin:h>=l+this.punycode_constants.tmax?this.punycode_constants.tmax:h-l;if(g<i)break;c+=this.punycode_encode_digit(i+(g-i)%(this.punycode_constants.base-i));n++;g=(g-i)/(this.punycode_constants.base-i)}c+=this.punycode_encode_digit(g);n++;l=this.punycode_adapt(k,d+1,d==e);
k=0;d++}}k++;j++}return c};Spry.Widget.Utils.setOptions=function(a,b,c){if(b)for(var d in b)c&&b[d]==undefined||(a[d]=b[d])};Spry.Widget.Utils.firstValid=function(){for(var a=null,b=0;b<Spry.Widget.Utils.firstValid.arguments.length;b++)if(typeof Spry.Widget.Utils.firstValid.arguments[b]!="undefined"){a=Spry.Widget.Utils.firstValid.arguments[b];break}return a};Spry.Widget.Utils.specialCharacters=",8,9,16,17,18,20,27,33,34,35,36,37,38,40,45,144,192,63232,";Spry.Widget.Utils.specialSafariNavKeys="63232,63233,63234,63235,63272,63273,63275,63276,63277,63289,";
Spry.Widget.Utils.specialNotSafariCharacters="39,46,91,92,93,";Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialSafariNavKeys;Spry.is.safari||(Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialNotSafariCharacters);Spry.Widget.Utils.isSpecialKey=function(a){return Spry.Widget.Utils.specialCharacters.indexOf(","+a.keyCode+",")!=-1};
Spry.Widget.Utils.getCharacterFromEvent=function(a){var b=a.type=="keydown",c=null,d=null;if(Spry.is.mozilla&&!b)if(a.charCode)d=String.fromCharCode(a.charCode);else c=a.keyCode;else{c=a.keyCode||a.which;if(c!=13)d=String.fromCharCode(c)}if(Spry.is.safari)if(b){c=a.keyCode||a.which;d=String.fromCharCode(c)}else{c=a.keyCode||a.which;d=Spry.Widget.Utils.specialCharacters.indexOf(","+c+",")!=-1?null:String.fromCharCode(c)}if(Spry.is.opera)d=Spry.Widget.Utils.specialCharacters.indexOf(","+c+",")!=-1?
null:String.fromCharCode(c);return d};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(a,b){var c=a.getElementsByTagName(b);if(c)return c[0];return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(a,b){for(;a.parentNode&&a.parentNode.nodeName.toLowerCase()!=b.toLowerCase()&&a.parentNode.nodeName!="BODY";)a=a.parentNode;return a.parentNode&&a.parentNode.nodeName.toLowerCase()==b.toLowerCase()?a.parentNode:null};
Spry.Widget.Utils.destroyWidgets=function(a){if(typeof a=="string")a=document.getElementById(a);for(var b=Spry.Widget.Form.onSubmitWidgetQueue,c=0;c<Spry.Widget.Form.onSubmitWidgetQueue.length;c++)if(typeof b[c].destroy=="function"&&Spry.Widget.Utils.contains(a,b[c].element)){b[c].destroy();c--}};Spry.Widget.Utils.contains=function(a,b){if(typeof a.contains=="object")return b&&a&&(a==b||a.contains(b));else{for(var c=b;c;){if(c==a)return true;c=c.parentNode}return false}};
Spry.Widget.Utils.addEventListener=function(a,b,c,d){try{if(a.addEventListener)a.addEventListener(b,c,d);else a.attachEvent&&a.attachEvent("on"+b,c,d)}catch(e){}};Spry.Widget.Utils.removeEventListener=function(a,b,c,d){try{if(a.removeEventListener)a.removeEventListener(b,c,d);else a.detachEvent&&a.detachEvent("on"+b,c,d)}catch(e){}};Spry.Widget.Utils.stopEvent=function(a){try{this.stopPropagation(a);this.preventDefault(a)}catch(b){}};
Spry.Widget.Utils.stopPropagation=function(a){if(a.stopPropagation)a.stopPropagation();else a.cancelBubble=true};Spry.Widget.Utils.preventDefault=function(a){if(a.preventDefault)a.preventDefault();else a.returnValue=false};Spry.Widget.Utils.showError=function(a){alert("Spry.Widget.TextField ERR: "+a)};
