var a,Spry;Spry||(Spry={});if(!Spry.Widget)Spry.Widget={};
Spry.Widget.BrowserSniff=function(){var b=navigator.appName.toString();b=navigator.platform.toString();b=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=r=false;var c=/Opera.([0-9\.]*)/i,d=/MSIE.([0-9\.]*)/i,e=/gecko/i,f=/safari\/([\d\.]*)/i;if(b.match(c)){r=b.match(c);this.opera=true;this.version=parseFloat(r[1])}else if(b.match(d)){r=b.match(d);this.ie=true;this.version=parseFloat(r[1])}else if(b.match(f)){this.safari=true;this.version=1.4}else if(b.match(e)){c=/rv:\s*([0-9\.]+)/i;
r=b.match(c);this.mozilla=true;this.version=parseFloat(r[1])}this.windows=this.mac=this.linux=false;this.Platform=b.match(/windows/i)?"windows":b.match(/linux/i)?"linux":b.match(/mac/i)?"mac":b.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(b,c,d){c=Spry.Widget.Utils.firstValid(c,"none");if(typeof c=="string")if(typeof Spry.Widget.ValidationTextField.ValidationDescriptors[c]!="undefined"){d=Spry.Widget.Utils.firstValid(d,{});this.type=c;if(!this.isBrowserSupported())d.useCharacterMasking=false;this.init(b,d);b=["submit"].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));b=b.join(",");this.validateOn=0;this.validateOn|=b.indexOf("submit")!=-1?Spry.Widget.ValidationTextField.ONSUBMIT:
0;this.validateOn|=b.indexOf("blur")!=-1?Spry.Widget.ValidationTextField.ONBLUR:0;this.validateOn|=b.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(b,c){if(b==""||b=="-"||b=="+")return false;var d=/^[\-\+]?\d*$/;if(!d.test(b))return false;c=c||{allowNegative:false};d=parseInt(b,10);if(isNaN(d))d=false;else{var e=true;if(typeof c.allowNegative!="undefined"&&c.allowNegative==false)e=false;if(!e&&b<0)d=false}return d}},real:{characterMasking:/[\d\.,\-\+e]/i,regExpFilter:/^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,
validation:function(b,c){c=/^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/;if(!c.test(b))return false;b=parseFloat(b);if(isNaN(b))b=false;return b}},currency:{formats:{dot_comma:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,validation:function(b,c){c=false;if(/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(b)||/^(\-|\+)?\d+(?:\,\d{2}|)$/.test(b)){b=b.toString().replace(/\./gi,"").replace(/\,/,".");c=parseFloat(b)}return c}},comma_dot:{characterMasking:/[\d\.\,\-\+\$]/,
regExpFilter:/^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,validation:function(b,c){c=false;if(/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(b)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(b)){b=b.toString().replace(/\,/gi,"");c=parseFloat(b)}return c}}}},email:{characterMasking:/[^\s]/,validation:function(b,c){c=/^[\w\.-]+@[\w\.-]+\.\w+$/i;return c.test(b)}},date:{validation:function(b,c){var d=/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i,e=this.dateValidationPattern;c=c.format.match(d);b=b.match(e);if(c!==
null&&b!==null){var f=-1;e=d=-1;for(var g=1;g<c.length;g++)switch(c[g].toLowerCase()){case "dd":f=g;break;case "mm":d=g;break;case "yy":case "yyyy":e=g;break}if(f!=-1&&d!=-1&&e!=-1){c=-1;f=parseInt(b[f],10);d=parseInt(b[d],10);b=parseInt(b[e],10);if(d<1||d>12)return false;switch(d){case 1:case 3:case 5:case 7:case 8:case 10:case 12:c=31;break;case 4:case 6:case 9:case 11:c=30;break;case 2:c=parseInt(b/4,10)*4==b&&parseInt(b/100,10)*100!=b?29:28;break}if(f<1||f>c)return false;return new Date(b,d,f)}}else return false}},
time:{validation:function(b,c){var d=/([hmst]+)/gi,e=/(\d+|AM?|PM?)/gi;c=c.format.match(d);b=b.match(e);if(c!==null&&b!==null){if(c.length!=b.length)return false;for(var f=d=e=-1,g=-1,h=0,j=0,k=0,l="AM",i=0;i<c.length;i++)switch(c[i].toLowerCase()){case "hh":e=i;break;case "mm":d=i;break;case "ss":f=i;break;case "t":case "tt":g=i;break}if(e!=-1){h=parseInt(b[e],10);if(isNaN(h)||h>(c[e]=="HH"?23:12))return false}if(d!=-1){j=parseInt(b[d],10);if(isNaN(j)||j>59)return false}if(f!=-1){k=parseInt(b[f],
10);if(isNaN(k)||k>59)return false}if(g!=-1){l=b[g].toUpperCase();if(c[g].toUpperCase()=="TT"&&!/^a|pm$/i.test(l)||c[g].toUpperCase()=="T"&&!/^a|p$/i.test(l))return false}return c=new Date(2000,0,1,h+(l.charAt(0)=="P"?12:0),j,k)}else return false}},credit_card:{characterMasking:/\d/,validation:function(b,c){var d=null;c.format=c.format||"ALL";switch(c.format.toUpperCase()){case "ALL":d=/^[3-6]{1}[0-9]{12,15}$/;break;case "VISA":d=/^4[0-9]{12,15}$/;break;case "MASTERCARD":d=/^5[1-5]{1}[0-9]{14}$/;
break;case "AMEX":d=/^3(4|7){1}[0-9]{13}$/;break;case "DISCOVER":d=/^6011[0-9]{12}$/;break;case "DINERSCLUB":d=/^3((0[0-5]{1}[0-9]{11})|(6[0-9]{12})|(8[0-9]{12}))$/;break}if(!d.test(b))return false;c=[];var e=1,f="";for(d=b.length-1;d>=0;d--){if(e%2==0){f=parseInt(b.charAt(d),10)*2;c[c.length]=f.toString().charAt(0);if(f.toString().length==2)c[c.length]=f.toString().charAt(1)}else{f=b.charAt(d);c[c.length]=f}e++}for(d=b=0;d<c.length;d++)b+=parseInt(c[d],10);if(b%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(b,c){return/^[A-Z]{1,2}\d[\dA-Z]?\s?\d[A-Z]{2}$/.test(b)}},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(b,c){return Spry.Widget.ValidationTextField.validateIP(b,
c.format)}},url:{characterMasking:/[^\s]/,validation:function(b,c){c=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var d=b.match(c);if(d&&d[4]){d=d[4].split(".");for(var e="",f=0;f<d.length;f++)if(e=Spry.Widget.Utils.punycode_encode(d[f],64)){if(e!=d[f]+"-")d[f]="xn--"+e}else return false;d=d.join(".");b=b.replace(c,"$1//"+d+"$5$6$8")}c=/^(?: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(b=b.match(c))if(b=b[1]){if(b=="[]")return false;c=b.charAt(0);d=b.charAt(b.length-1);if(c=="["&&d!="]"||c!="["&&d=="]")return false;else if(c=="["&&d=="]"){b=b.replace(/^\[|\]$/gi,"");return Spry.Widget.ValidationTextField.validateIP(b,"ipv6_ipv4")}else return/[^0-9\.]/.test(b)?true:Spry.Widget.ValidationTextField.validateIP(b,"ipv4")}else return true;else return false}}};
Spry.Widget.ValidationTextField.validateIP=function(b,c){var d=[/^(?:[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],e=[/^(\d{1,3}\.){3}\d{1,3}$/i],f=[];if(c=="ipv6"||c=="ipv6_ipv4")f=f.concat(d);if(c=="ipv4"||c=="ipv6_ipv4")f=f.concat(e);c=false;for(d=0;d<f.length;d++)if(f[d].test(b)){c=true;break}if(c&&b.indexOf(".")!=-1){f=b.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);if(!f)return false;f=f[0].replace(/^:/,"");f=f.split(".");if(f.length!=4)return false;e=/^[\-\+]?\d*$/;for(d=0;d<f.length;d++){if(f[d]=="")return false;var g=parseInt(f[d],
10);if(isNaN(g)||g>255||!e.test(f[d])||f[d].length>3||/^0{2,3}$/.test(f[d]))return false}}if(c&&b.indexOf("/")!=-1){b=b.match(/\/\d{1,3}$/);if(!b)return false;b=parseInt(b[0].replace(/^\//,""),10);if(isNaN(b)||b>128||b<1)return false}return c};Spry.Widget.ValidationTextField.onloadDidFire=false;Spry.Widget.ValidationTextField.loadQueue=[];a=Spry.Widget.ValidationTextField.prototype;
a.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};
a.init=function(b,c){this.element=this.getElement(b);this.errors=0;this.flags={locked:false};this.options={};this.event_handlers=[];this.validClass="textfieldValidState";this.focusClass="textfieldFocusState";this.requiredClass="textfieldRequiredState";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":c.format=Spry.Widget.Utils.firstValid(c.format,"phone_us");break;case "currency":c.format=Spry.Widget.Utils.firstValid(c.format,"comma_dot");break;case "zip_code":c.format=Spry.Widget.Utils.firstValid(c.format,"zip_us5");break;case "date":c.format=Spry.Widget.Utils.firstValid(c.format,"mm/dd/yy");break;case "time":c.format=Spry.Widget.Utils.firstValid(c.format,
"HH:mm");c.pattern=c.format.replace(/[hms]/gi,"0").replace(/TT/gi,"AM").replace(/T/gi,"A");break;case "ip":c.format=Spry.Widget.Utils.firstValid(c.format,"ipv4");c.characterMasking=Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].characterMaskingFormats[c.format];break}b={};if(c.format&&Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats)Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[c.format]&&Spry.Widget.Utils.setOptions(b,Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[c.format]);
else Spry.Widget.Utils.setOptions(b,Spry.Widget.ValidationTextField.ValidationDescriptors[this.type]);c.useCharacterMasking=Spry.Widget.Utils.firstValid(c.useCharacterMasking,false);c.hint=Spry.Widget.Utils.firstValid(c.hint,"");c.isRequired=Spry.Widget.Utils.firstValid(c.isRequired,true);c.characterMasking=Spry.Widget.Utils.firstValid(c.characterMasking,b.characterMasking);c.regExpFilter=Spry.Widget.Utils.firstValid(c.regExpFilter,b.regExpFilter);c.pattern=Spry.Widget.Utils.firstValid(c.pattern,
b.pattern);c.validation=Spry.Widget.Utils.firstValid(c.validation,b.validation);if(typeof c.validation=="string")c.validation=eval(c.validation);c.minValue=Spry.Widget.Utils.firstValid(c.minValue,b.minValue);c.maxValue=Spry.Widget.Utils.firstValid(c.maxValue,b.maxValue);c.minChars=Spry.Widget.Utils.firstValid(c.minChars,b.minChars);c.maxChars=Spry.Widget.Utils.firstValid(c.maxChars,b.maxChars);Spry.Widget.Utils.setOptions(this,c);Spry.Widget.Utils.setOptions(this.options,c)};
a.destroy=function(){for(var b=0;b<this.event_handlers.length;b++)Spry.Widget.Utils.removeEventListener(this.event_handlers[b][0],this.event_handlers[b][1],this.event_handlers[b][2],false);try{delete this.element}catch(c){}try{delete this.input}catch(d){}try{delete this.form}catch(e){}try{delete this.event_handlers}catch(f){}try{this.selection.destroy()}catch(g){}try{delete this.selection}catch(h){}var j=Spry.Widget.Form.onSubmitWidgetQueue,k=j.length;for(b=0;b<k;b++)if(j[b]==this){j.splice(b,1);
break}};
a.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 b=this;this.event_handlers=[];
this.event_handlers.push([this.input,"keydown",function(d){if(b.isDisabled())return true;return b.onKeyDown(d||event)}]);this.event_handlers.push([this.input,"keypress",function(d){if(b.isDisabled())return true;return b.onKeyPress(d||event)}]);Spry.is.opera&&this.event_handlers.push([this.input,"keyup",function(d){if(b.isDisabled())return true;return b.onKeyUp(d||event)}]);this.event_handlers.push([this.input,"focus",function(d){if(b.isDisabled())return true;return b.onFocus(d||event)}]);this.event_handlers.push([this.input,
"blur",function(d){if(b.isDisabled())return true;return b.onBlur(d||event)}]);this.event_handlers.push([this.input,"mousedown",function(d){if(b.isDisabled())return true;return b.onMouseDown(d||event)}]);var c=Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change";this.event_handlers.push([this.input,c,function(d){if(b.isDisabled())return true;return b.onChange(d||event)}]);if(Spry.is.mozilla||Spry.is.safari)this.event_handlers.push([this.input,"dragdrop",function(d){if(b.isDisabled())return true;
b.removeHint();return b.onChange(d||event)}]);else Spry.is.ie&&this.event_handlers.push([this.input,"drop",function(d){if(b.isDisabled())return true;return b.onDrop(d||event)}]);for(c=0;c<this.event_handlers.length;c++)Spry.Widget.Utils.addEventListener(this.event_handlers[c][0],this.event_handlers[c][1],this.event_handlers[c][2],false);if(this.form=Spry.Widget.Utils.getFirstParentWithNodeName(this.input,"FORM")){if(!this.form.attachedSubmitHandler&&!this.form.onsubmit){this.form.onsubmit=function(d){d=
d||event;return Spry.Widget.Form.onSubmit(d,d.srcElement||d.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(d){d=d||event;return Spry.Widget.Form.onReset(d,d.srcElement||d.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};a.isDisabled=function(){return this.input&&(this.input.disabled||this.input.readOnly)||!this.input};
a.getElement=function(b){if(b&&typeof b=="string")return document.getElementById(b);return b};Spry.Widget.ValidationTextField.addLoadListener=function(b){if(typeof window.addEventListener!="undefined")window.addEventListener("load",b,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",b,false);else typeof window.attachEvent!="undefined"&&window.attachEvent("onload",b)};
Spry.Widget.ValidationTextField.processLoadQueue=function(b){Spry.Widget.ValidationTextField.onloadDidFire=true;b=Spry.Widget.ValidationTextField.loadQueue;for(var c=b.length,d=0;d<c;d++)b[d].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)});a=Spry.Widget.ValidationTextField.prototype;
a.setValue=function(b){this.flags.locked=true;this.input.value=b;this.flags.locked=false;this.oldValue=b;Spry.is.ie||this.onChange()};a.saveState=function(){this.oldValue=this.input.value;this.selection.update()};a.revertState=function(b){if(b!=this.input.value){this.input.readOnly=true;this.input.value=b;this.input.readOnly=false;Spry.is.safari&&this.flags.active&&this.input.focus()}this.selection.moveTo(this.selection.start,this.selection.end);this.redTextFlash()};
a.removeHint=function(){if(this.flags.hintOn){this.input.value="";this.flags.hintOn=false}};a.putHint=function(){if(this.hint&&this.input&&this.input.type=="text"&&this.input.value==""){this.flags.hintOn=true;this.input.value=this.hint}};a.redTextFlash=function(){var b=this;this.addClassName(this.element,this.textfieldFlashTextClass);setTimeout(function(){b.removeClassName(b.element,b.textfieldFlashTextClass)},100)};
a.doValidations=function(b,c){if(this.isDisabled())return false;if(this.flags.locked)return false;if(b.length==0&&!this.isRequired){this.errors=0;return false}this.flags.locked=true;var d=false,e=true;if(!this.options.isRequired&&b.length==0)e=false;var f=0,g=b;if(this.useCharacterMasking&&this.characterMasking)for(var h=0;h<b.length;h++)if(!this.characterMasking.test(b.charAt(h))){f|=Spry.Widget.ValidationTextField.ERROR_FORMAT;g=c;d=true;break}if(!d&&this.useCharacterMasking&&this.regExpFilter)if(!this.regExpFilter.test(g)){f|=
Spry.Widget.ValidationTextField.ERROR_FORMAT;d=true}if(!d&&this.pattern){h=this.patternToRegExp(b.length);if(h.test(b)){if(this.patternLength!=b.length)f|=Spry.Widget.ValidationTextField.ERROR_FORMAT}else{f|=Spry.Widget.ValidationTextField.ERROR_FORMAT;d=true}}if(g=="")f|=Spry.Widget.ValidationTextField.ERROR_REQUIRED;if(!d&&this.pattern&&this.useCharacterMasking)if(h=this.getAutoComplete(b.length))g+=h;if(!d&&this.minChars!==null&&e)if(b.length<this.minChars){f|=Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;
e=false}if(!d&&this.maxChars!==null&&e)if(b.length>this.maxChars){f|=Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;e=false}if(!d&&this.validation&&e){b=this.validation(g,this.options);if(false===b){f|=Spry.Widget.ValidationTextField.ERROR_FORMAT;e=false}else this.typedValue=b}if(!d&&this.validation&&this.minValue!==null&&e){b=this.validation(this.minValue,this.options);if(b!==false)if(this.typedValue<b){f|=Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;e=false}}if(!d&&this.validation&&this.maxValue!==
null&&e){e=this.validation(this.maxValue,this.options);if(e!==false)if(this.typedValue>e){f|=Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;e=false}}this.useCharacterMasking&&d&&this.revertState(c);this.errors=f;this.fixedValue=g;this.flags.locked=false;return d};
a.onChange=function(b){if(Spry.is.opera&&this.flags.operaRevertOnKeyUp)return true;if(Spry.is.ie&&b&&b.propertyName!="value")return true;if(this.flags.drop){var c=this;setTimeout(function(){c.flags.drop=false;c.onChange(null)},0)}else{if(this.flags.hintOn)return true;if(this.keyCode==8||this.keyCode==46){b=this.doValidations(this.input.value,this.input.value);this.oldValue=this.input.value;if((b||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){c=this;setTimeout(function(){c.validate()},
0);return true}}b=this.doValidations(this.input.value,this.oldValue);if((!b||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){c=this;setTimeout(function(){c.validate()},0)}return true}};
a.onKeyUp=function(b){if(this.flags.operaRevertOnKeyUp){this.setValue(this.oldValue);Spry.Widget.Utils.stopEvent(b);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}};
a.operaPasteMonitor=function(){if(this.input.value!=this.oldValue){var b=this.doValidations(this.input.value,this.input.value);if(b){this.setValue(this.oldValue);this.selection.moveTo(this.selection.start,this.selection.start)}else this.onChange()}};
a.compileDatePattern=function(){var b="",c=[],d=[],e=[],f=/^([mdy]+)([\.\-\/\\\s]+)([mdy]+)([\.\-\/\\\s]+)([mdy]+)$/i;f=this.options.format.match(f);if(f!==null)for(var g=1;g<f.length;g++)switch(f[g].toLowerCase()){case "dd":c[g-1]="\\d{1,2}";d[g-1]="\\d\\d";b+="("+c[g-1]+")";e[g-1]=null;break;case "mm":c[g-1]="\\d{1,2}";d[g-1]="\\d\\d";b+="("+c[g-1]+")";e[g-1]=null;break;case "yy":c[g-1]="\\d{1,2}";d[g-1]="\\d\\d";b+="(\\d\\d)";e[g-1]=null;break;case "yyyy":c[g-1]="\\d{1,4}";d[g-1]="\\d\\d\\d\\d";
b+="(\\d\\d\\d\\d)";e[g-1]=null;break;default:c[g-1]=d[g-1]=Spry.Widget.ValidationTextField.regExpFromChars(f[g]);b+="["+c[g-1]+"]";e[g-1]=f[g]}this.dateValidationPattern=new RegExp("^"+b+"$","");this.dateAutocompleteCharacters=e;this.dateGroupPatterns=c;this.dateFullGroupPatterns=d;this.lastDateGroup=f.length-2};a.getRegExpForGroup=function(b){for(var c="^",d=0;d<=b;d++)c+=this.dateGroupPatterns[d];c+="$";return new RegExp(c,"")};
a.getRegExpForFullGroup=function(b){for(var c="^",d=0;d<b;d++)c+=this.dateGroupPatterns[d];c+=this.dateFullGroupPatterns[b];return new RegExp(c,"")};a.getDateGroup=function(b,c){if(c==0)return 0;b=b.substring(0,c);for(c=0;c<=this.lastDateGroup;c++)if(this.getRegExpForGroup(c).test(b))return c;return-1};a.isDateGroupFull=function(b,c){return this.getRegExpForFullGroup(c).test(b)};a.isValueValid=function(b,c,d){b=b.substring(0,c);return this.getRegExpForGroup(d).test(b)};
a.isPositionAtEndOfGroup=function(b,c,d){b=b.substring(0,c);return this.getRegExpForFullGroup(d).test(b)};a.nextDateDelimiterExists=function(b,c,d){d=this.dateAutocompleteCharacters[d+1];if(b.length<c+d.length)return false;else{b=b.substring(c,c+d.length);if(b==d)return true}return false};
a.onKeyPress=function(b){if(this.flags.skp){this.flags.skp=false;Spry.Widget.Utils.stopEvent(b);return false}if(b.ctrlKey||b.metaKey||!this.useCharacterMasking)return true;if(Spry.is.opera&&this.flags.operaRevertOnKeyUp){Spry.Widget.Utils.stopEvent(b);return false}if(this.keyCode==8||this.keyCode==46){var c=this.doValidations(this.input.value,this.input.value);if(c)return true}var d=Spry.Widget.Utils.getCharacterFromEvent(b);if(d&&this.characterMasking)if(!this.characterMasking.test(d)){Spry.Widget.Utils.stopEvent(b);
this.redTextFlash();return false}if(d&&this.pattern){c=this.patternCharacters[this.selection.start];if(/[ax]/i.test(c))d=c.toLowerCase()==c?d.toLowerCase():d.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(b);b=this.oldValue.substring(0,this.selection.start)+c+d;if(d=this.doValidations(b,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(b);this.setValue(this.input.value);return false}else if(c){Spry.Widget.Utils.stopEvent(b);this.selection.moveTo(this.selection.start+c.length,this.selection.start+c.length);return false}Spry.Widget.Utils.stopEvent(b);b=this.oldValue.substring(0,this.selection.start)+
d+this.oldValue.substring(this.selection.start+1);if(d=this.doValidations(b,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(d&&this.type=="date"&&this.useCharacterMasking){var e=this.getDateGroup(this.oldValue,this.selection.start);if(e!=-1){Spry.Widget.Utils.stopEvent(b);e%2!=0&&e++;
if(this.isDateGroupFull(this.oldValue,e))if(this.isPositionAtEndOfGroup(this.oldValue,this.selection.start,e))if(e==this.lastDateGroup)this.redTextFlash();else{c=this.dateAutocompleteCharacters[e+1];if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,e)){c=this.dateAutocompleteCharacters[e+1];this.selection.moveTo(this.selection.start+c.length,this.selection.start+c.length);if(d==c)return false;b=this.isDateGroupFull(this.oldValue,e+2)?this.oldValue.substring(0,this.selection.start)+
d+this.oldValue.substring(this.selection.start+1):this.oldValue.substring(0,this.selection.start)+d+this.oldValue.substring(this.selection.start);if(this.isValueValid(b,this.selection.start+1,e+2)){this.setValue(b);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}else{this.redTextFlash();return false}}else{c=this.dateAutocompleteCharacters[e+1];d=c+d;b=this.oldValue.substring(0,this.selection.start)+d+this.oldValue.substring(this.selection.start);if(this.isValueValid(b,this.selection.start+
d.length,e+2)){this.setValue(b);this.selection.moveTo(this.selection.start+d.length,this.selection.start+d.length)}else{d=c;b=this.oldValue.substring(0,this.selection.start)+d+this.oldValue.substring(this.selection.start);this.setValue(b);this.selection.moveTo(this.selection.start+d.length,this.selection.start+d.length);this.redTextFlash()}}}else{var f=1;b=this.oldValue.substring(0,this.selection.start)+d+this.oldValue.substring(this.selection.start+1);if(this.isValueValid(b,this.selection.start+
1,e)){if(this.isPositionAtEndOfGroup(b,this.selection.start+1,e))if(e!=this.lastDateGroup){if(this.nextDateDelimiterExists(b,this.selection.start+1,e))c=this.dateAutocompleteCharacters[e+1];else{c=this.dateAutocompleteCharacters[e+1];b=this.oldValue.substring(0,this.selection.start)+d+c+this.oldValue.substring(this.selection.start+1)}f=1+c.length}this.setValue(b);this.selection.moveTo(this.selection.start+f,this.selection.start+f)}else this.redTextFlash()}else{b=this.oldValue.substring(0,this.selection.start)+
d+this.oldValue.substring(this.selection.start);f=1;if(!this.isValueValid(b,this.selection.start+1,e)&&!this.isValueValid(b,this.selection.start+1,e+1))this.redTextFlash();else{c=this.dateAutocompleteCharacters[e+1];if(d==c){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,e)){b=this.oldValue;f=1}}else if(this.isPositionAtEndOfGroup(b,this.selection.start+1,e))if(e!=this.lastDateGroup){if(this.nextDateDelimiterExists(b,this.selection.start+1,e))c=this.dateAutocompleteCharacters[e+
1];else{c=this.dateAutocompleteCharacters[e+1];b=this.oldValue.substring(0,this.selection.start)+d+c+this.oldValue.substring(this.selection.start+1)}f=1+c.length}this.setValue(b);this.selection.moveTo(this.selection.start+f,this.selection.start+f)}}return false}return false}};
a.onKeyDown=function(b){this.saveState();this.keyCode=b.keyCode;if(Spry.is.opera){if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}if(b.ctrlKey){var c=Spry.Widget.Utils.getCharacterFromEvent(b);if(c&&"vx".indexOf(c.toLowerCase())!=-1){var d=this;this.flags.operaPasteOperation=window.setInterval(function(){d.operaPasteMonitor()},1);return true}}}if(this.keyCode!=8&&this.keyCode!=46&&Spry.Widget.Utils.isSpecialKey(b))return true;
if(this.keyCode==8||this.keyCode==46)if(c=this.doValidations(this.input.value,this.input.value))return true;if(this.useCharacterMasking&&this.pattern&&this.keyCode==46){if(b.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(b);return false}if(this.useCharacterMasking&&
this.pattern&&!b.ctrlKey&&this.keyCode==8){if(this.selection.start==this.input.value.length){c=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-c.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-c.length;this.selection.end=this.selection.end-1-c.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(b);return false}return true};a.onMouseDown=function(b){this.flags.active&&this.saveState()};a.onDrop=function(b){this.flags.drop=true;this.removeHint();this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass)};
a.onFocus=function(b){if(!this.flags.drop){this.removeHint();if(this.pattern&&this.useCharacterMasking){b=this.getAutoComplete(this.selection.start);this.setValue(this.input.value+b);this.selection.moveTo(this.input.value.length,this.input.value.length)}this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass)}};
a.onBlur=function(b){this.flags.active=false;this.removeClassName(this.element,this.focusClass);b=this.doValidations(this.input.value,this.input.value);this.validateOn&Spry.Widget.ValidationTextField.ONBLUR&&this.validate();var c=this;setTimeout(function(){c.putHint()},10);return true};
a.compilePattern=function(){if(this.pattern){for(var b=[],c=[],d=[],e=0,f="",g="",h=0;h<this.pattern.length;h++){f=this.pattern.charAt(h);if(g=="\\"){c[e-1]=/[0ABXY\?]/i.test(f)?f:Spry.Widget.ValidationTextField.regExpFromChars(f);b[e-1]=f;d[e-1]=null;g=""}else{c[e]=Spry.Widget.ValidationTextField.regExpFromChars(f);if(/[0ABXY\?]/i.test(f)){b[e]=null;d[e]=f}else if(f=="\\"){b[e]=f;d[e]="\\"}else{b[e]=f;d[e]=null}e++;g=f}}this.autoCompleteCharacters=b;this.compiledPattern=c;this.patternCharacters=
d;this.patternLength=b.length}};a.getAutoComplete=function(b,c){if(c==-1){for(var d=c="";b&&(c=this.getAutoComplete(--b));)d=c;return d}d=c="";for(b=b;b<this.autoCompleteCharacters.length;b++)if(d=this.autoCompleteCharacters[b])c+=d;else break;return c};
Spry.Widget.ValidationTextField.regExpFromChars=function(b){for(var c="",d="",e=0;e<b.length;e++){d=b.charAt(e);switch(d){case "0":c+="\\d";break;case "A":c+="[A-Z]";break;case "a":c+="[a-z]";break;case "B":case "b":c+="[a-zA-Z]";break;case "x":c+="[0-9a-z]";break;case "X":c+="[0-9A-Z]";break;case "Y":case "y":c+="[0-9a-zA-Z]";break;case "?":c+=".";break;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":c+=d;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":c+=
d;break;default:c+="\\"+d}}return c};a=Spry.Widget.ValidationTextField.prototype;a.patternToRegExp=function(b){var c="^";b=Math.min(this.compiledPattern.length,b);for(var d=0;d<b;d++)c+=this.compiledPattern[d];c+="$";return c=new RegExp(c,"")};
a.reset=function(){this.removeHint();this.oldValue=this.input.defaultValue;this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidFormatClass);this.removeClassName(this.element,this.invalidRangeMinClass);this.removeClassName(this.element,this.invalidRangeMaxClass);this.removeClassName(this.element,this.invalidCharsMinClass);this.removeClassName(this.element,this.invalidCharsMaxClass);this.removeClassName(this.element,this.validClass);var b=this;setTimeout(function(){b.putHint()},
10)};
a.validate=function(){this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidFormatClass);this.removeClassName(this.element,this.invalidRangeMinClass);this.removeClassName(this.element,this.invalidRangeMaxClass);this.removeClassName(this.element,this.invalidCharsMinClass);this.removeClassName(this.element,this.invalidCharsMaxClass);this.removeClassName(this.element,this.validClass);if(this.validateOn&Spry.Widget.ValidationTextField.ONSUBMIT){this.removeHint();this.doValidations(this.input.value,
this.input.value);if(!this.flags.active){var b=this;setTimeout(function(){b.putHint()},10)}}if(this.isRequired&&this.errors&Spry.Widget.ValidationTextField.ERROR_REQUIRED){this.addClassName(this.element,this.requiredClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_FORMAT){this.addClassName(this.element,this.invalidFormatClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_RANGE_MIN){this.addClassName(this.element,this.invalidRangeMinClass);return false}if(this.errors&
Spry.Widget.ValidationTextField.ERROR_RANGE_MAX){this.addClassName(this.element,this.invalidRangeMaxClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MIN){this.addClassName(this.element,this.invalidCharsMinClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MAX){this.addClassName(this.element,this.invalidCharsMaxClass);return false}this.addClassName(this.element,this.validClass);return true};
a.addClassName=function(b,c){!b||!c||b.className&&b.className.search(new RegExp("\\b"+c+"\\b"))!=-1||(b.className+=(b.className?" ":"")+c)};a.removeClassName=function(b,c){if(!(!b||!c||b.className&&b.className.search(new RegExp("\\b"+c+"\\b"))==-1))b.className=b.className.replace(new RegExp("\\s*\\b"+c+"\\b","g"),"")};Spry.Widget.SelectionDescriptor=function(b){this.element=b;this.update()};a=Spry.Widget.SelectionDescriptor.prototype;
a.update=function(){if(Spry.is.ie&&Spry.is.windows)if(this.element.nodeName=="TEXTAREA"){var b=this.element.ownerDocument.selection.createRange();if(b.parentElement()==this.element){var c=this.element.ownerDocument.body.createTextRange();c.moveToElementText(this.element);for(var d=0;c.compareEndPoints("StartToStart",b)<0;d++)c.moveStart("character",1);this.start=d;c=this.element.ownerDocument.body.createTextRange();c.moveToElementText(this.element);for(d=0;c.compareEndPoints("StartToEnd",b)<0;d++)c.moveStart("character",
1);this.end=d;this.length=this.end-this.start;this.text=b.text}}else{if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();this.length=this.range.text.length;b=this.range.duplicate();this.start=-b.moveStart("character",-10000);b=this.range.duplicate();b.collapse(false);this.end=-b.moveStart("character",-10000);this.text=this.range.text}}else{b=this.element;d=c=0;try{c=b.selectionStart}catch(e){}try{d=b.selectionEnd}catch(f){}if(Spry.is.safari){if(c==2147483647)c=
0;if(d==2147483647)d=0}this.start=c;this.end=d;this.length=d-c;this.text=this.element.value.substring(c,d)}};a.destroy=function(){try{delete this.range}catch(b){}try{delete this.element}catch(c){}};a.move=function(b){if(Spry.is.ie&&Spry.is.windows){this.range.move("character",b);this.range.select()}else try{this.element.selectionStart++}catch(c){}this.update()};
a.moveTo=function(b,c){if(Spry.is.ie&&Spry.is.windows){if(this.element.nodeName=="TEXTAREA"){var d=this.element.createTextRange();this.range=this.element.createTextRange();this.range.move("character",b);this.range.moveEnd("character",c-b);b=this.range.compareEndPoints("StartToStart",d);b<0&&this.range.setEndPoint("StartToStart",d);b=this.range.compareEndPoints("EndToEnd",d);b>0&&this.range.setEndPoint("EndToEnd",d)}else if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();
this.range.move("character",-10000);this.start=this.range.moveStart("character",b);this.end=this.start+this.range.moveEnd("character",c-b)}this.range.select()}else{this.start=b;try{this.element.selectionStart=b}catch(e){}this.end=c;try{this.element.selectionEnd=c}catch(f){}}this.ignore=true;this.update()};a.moveEnd=function(b){if(Spry.is.ie&&Spry.is.windows){this.range.moveEnd("character",b);this.range.select()}else try{this.element.selectionEnd++}catch(c){}this.update()};
a.collapse=function(b){if(Spry.is.ie&&Spry.is.windows){this.range=this.element.ownerDocument.selection.createRange();this.range.collapse(b);this.range.select()}else if(b)try{this.element.selectionEnd=this.element.selectionStart}catch(c){}else try{this.element.selectionStart=this.element.selectionEnd}catch(d){}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(b){for(var c=true,d=true,e=Spry.Widget.Form.onSubmitWidgetQueue,f=e.length,g=0;g<f;g++)if(!e[g].isDisabled()&&e[g].form==b)c=(d=e[g].validate())&&c;return c};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(b,c){if(Spry.Widget.Form.validate(c)==false)return false;return true};
if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(b,c){b=Spry.Widget.Form.onSubmitWidgetQueue;for(var d=b.length,e=0;e<d;e++)!b[e].isDisabled()&&b[e].form==c&&typeof b[e].reset=="function"&&b[e].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(b){for(var c=Spry.Widget.Form.onSubmitWidgetQueue,d=0;d<Spry.Widget.Form.onSubmitWidgetQueue.length;d++)if(c[d].form==b&&typeof c[d].destroy=="function"){c[d].destroy();d--}};
if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){for(var b=Spry.Widget.Form.onSubmitWidgetQueue,c=0;c<Spry.Widget.Form.onSubmitWidgetQueue.length;c++)if(typeof b[c].destroy=="function"){b[c].destroy();c--}};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(b){return String.fromCharCode(b+22+75*(b<26))};
Spry.Widget.Utils.punycode_adapt=function(b,c,d){b=d?b/this.punycode_constants.damp:b>>1;b+=b/c;for(c=0;b>(this.punycode_constants.base-this.punycode_constants.tmin)*this.punycode_constants.tmax/2;c+=this.punycode_constants.base)b/=this.punycode_constants.base-this.punycode_constants.tmin;return c+(this.punycode_constants.base-this.punycode_constants.tmin+1)*b/(b+this.punycode_constants.skew)};
Spry.Widget.Utils.punycode_encode=function(b,c){var d=b.split("");b=[];for(var e=0;e<d.length;e++)b.push(d[e].charCodeAt(0));d="";var f,g,h,j,k,l=b.length,i=this.punycode_constants.initial_n,m=0,o=this.punycode_constants.initial_bias,n=0;for(g=0;g<l;g++)if(b[g]<128){if(c-n<2)return false;d+=String.fromCharCode(b[g]);n++}e=f=n;if(f>0){d+=String.fromCharCode(this.punycode_constants.delimiter);n++}for(;e<l;){h=this.punycode_constants.maxint;for(g=0;g<l;g++)if(b[g]>=i&&b[g]<h)h=b[g];if(h-i>(this.punycode_constants.maxint-
m)/(e+1))return false;m+=(h-i)*(e+1);i=h;for(g=0;g<l;g++){if(b[g]<i)if(++m==0)return false;if(b[g]==i){h=m;for(j=this.punycode_constants.base;;j+=this.punycode_constants.base){if(n>=c)return false;k=j<=o?this.punycode_constants.tmin:j>=o+this.punycode_constants.tmax?this.punycode_constants.tmax:j-o;if(h<k)break;d+=this.punycode_encode_digit(k+(h-k)%(this.punycode_constants.base-k));n++;h=(h-k)/(this.punycode_constants.base-k)}d+=this.punycode_encode_digit(h);n++;o=this.punycode_adapt(m,e+1,e==f);
m=0;e++}}m++;i++}return d};Spry.Widget.Utils.setOptions=function(b,c,d){if(c)for(var e in c)d&&c[e]==undefined||(b[e]=c[e])};Spry.Widget.Utils.firstValid=function(){for(var b=null,c=0;c<Spry.Widget.Utils.firstValid.arguments.length;c++)if(typeof Spry.Widget.Utils.firstValid.arguments[c]!="undefined"){b=Spry.Widget.Utils.firstValid.arguments[c];break}return b};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(b){return Spry.Widget.Utils.specialCharacters.indexOf(","+b.keyCode+",")!=-1};
Spry.Widget.Utils.getCharacterFromEvent=function(b){var c=b.type=="keydown",d=null,e=null;if(Spry.is.mozilla&&!c)if(b.charCode)e=String.fromCharCode(b.charCode);else d=b.keyCode;else{d=b.keyCode||b.which;if(d!=13)e=String.fromCharCode(d)}if(Spry.is.safari)if(c){d=b.keyCode||b.which;e=String.fromCharCode(d)}else{d=b.keyCode||b.which;e=Spry.Widget.Utils.specialCharacters.indexOf(","+d+",")!=-1?null:String.fromCharCode(d)}if(Spry.is.opera)e=Spry.Widget.Utils.specialCharacters.indexOf(","+d+",")!=-1?
null:String.fromCharCode(d);return e};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(b,c){if(b=b.getElementsByTagName(c))return b[0];return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(b,c){for(;b.parentNode&&b.parentNode.nodeName.toLowerCase()!=c.toLowerCase()&&b.parentNode.nodeName!="BODY";)b=b.parentNode;return b.parentNode&&b.parentNode.nodeName.toLowerCase()==c.toLowerCase()?b.parentNode:null};
Spry.Widget.Utils.destroyWidgets=function(b){if(typeof b=="string")b=document.getElementById(b);for(var c=Spry.Widget.Form.onSubmitWidgetQueue,d=0;d<Spry.Widget.Form.onSubmitWidgetQueue.length;d++)if(typeof c[d].destroy=="function"&&Spry.Widget.Utils.contains(b,c[d].element)){c[d].destroy();d--}};Spry.Widget.Utils.contains=function(b,c){if(typeof b.contains=="object")return c&&b&&(b==c||b.contains(c));else{for(c=c;c;){if(c==b)return true;c=c.parentNode}return false}};
Spry.Widget.Utils.addEventListener=function(b,c,d,e){try{if(b.addEventListener)b.addEventListener(c,d,e);else b.attachEvent&&b.attachEvent("on"+c,d,e)}catch(f){}};Spry.Widget.Utils.removeEventListener=function(b,c,d,e){try{if(b.removeEventListener)b.removeEventListener(c,d,e);else b.detachEvent&&b.detachEvent("on"+c,d,e)}catch(f){}};Spry.Widget.Utils.stopEvent=function(b){try{this.stopPropagation(b);this.preventDefault(b)}catch(c){}};
Spry.Widget.Utils.stopPropagation=function(b){if(b.stopPropagation)b.stopPropagation();else b.cancelBubble=true};Spry.Widget.Utils.preventDefault=function(b){if(b.preventDefault)b.preventDefault();else b.returnValue=false};