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