(function(){if(typeof Spry=="undefined")window.Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.BrowserSniff=function(){var b=navigator.appName.toString();var a=navigator.platform.toString();var c=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var d=/Opera.([0-9\.]*)/i;var e=/MSIE.([0-9\.]*)/i;var f=/gecko/i;var g=/(applewebkit|safari)\/([\d\.]*)/i;var r=false;if((r=c.match(d))){this.opera=true;this.version=parseFloat(r[1])}else if((r=c.match(e))){this.ie=true;this.version=parseFloat(r[1])}else if((r=c.match(g))){this.safari=true;this.version=parseFloat(r[2])}else if(c.match(f)){var h=/rv:\s*([0-9\.]+)/i;r=c.match(h);this.mozilla=true;this.version=parseFloat(r[1])}this.windows=this.mac=this.linux=false;this.Platform=c.match(/windows/i)?"windows":(c.match(/linux/i)?"linux":(c.match(/mac/i)?"mac":c.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'){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(a,c);var d=['submit'].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));d=d.join(",");this.validateOn=0;this.validateOn=this.validateOn|(d.indexOf('submit')!=-1?Spry.Widget.ValidationTextField.ONSUBMIT:0);this.validateOn=this.validateOn|(d.indexOf('blur')!=-1?Spry.Widget.ValidationTextField.ONBLUR:0);this.validateOn=this.validateOn|(d.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 c=/^[\-\+]?\d*$/;if(!c.test(a)){return false}b=b||{allowNegative:false};var d=parseInt(a,10);if(!isNaN(d)){var e=true;if(typeof b.allowNegative!='undefined'&&b.allowNegative==false){e=false}if(!e&&a<0){d=false}}else{d=false}return d}},'real':{characterMasking:/[\d\.,\-\+e]/i,regExpFilter:/^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,validation:function(a,b){var c=/^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/;if(!c.test(a)){return false}var d=parseFloat(a);if(isNaN(d)){d=false}return d}},'currency':{formats:{'dot_comma':{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,validation:function(a,b){var c=false;if(/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(a)||/^(\-|\+)?\d+(?:\,\d{2}|)$/.test(a)){a=a.toString().replace(/\./gi,'').replace(/\,/,'.');c=parseFloat(a)}return c}},'comma_dot':{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,validation:function(a,b){var c=false;if(/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(a)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(a)){a=a.toString().replace(/\,/gi,'');c=parseFloat(a)}return c}}}},'email':{characterMasking:/[^\s]/,validation:function(a,b){var c=/^[\w\.-]+@[\w\.-]+\.\w+$/i;return c.test(a)}},'date':{validation:function(a,b){var c=/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;var d=this.dateValidationPattern;var e=b.format.match(c);var f=a.match(d);if(e!==null&&f!==null){var g=-1;var h=-1;var j=-1;for(var i=1;i<e.length;i++){switch(e[i].toLowerCase()){case"dd":g=i;break;case"mm":h=i;break;case"yy":case"yyyy":j=i;break}}if(g!=-1&&h!=-1&&j!=-1){var k=-1;var l=parseInt(f[g],10);var m=parseInt(f[h],10);var n=parseInt(f[j],10);if(m<1||m>12){return false}switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:k=31;break;case 4:case 6:case 9:case 11:k=30;break;case 2:if((parseInt(n/4,10)*4==n)&&(n%100!=0||n%400==0)){k=29}else{k=28}break}if(l<1||l>k){return false}return(new Date(n,m-1,l))}}else{return false}}},'time':{validation:function(a,b){var c=/([hmst]+)/gi;var d=/(\d+|AM?|PM?)/gi;var e=b.format.match(c);var f=a.match(d);if(e!==null&&f!==null){if(e.length!=f.length){return false}var g=-1;var h=-1;var j=-1;var k=-1;var l=0,m=0,n=0,o='AM';for(var i=0;i<e.length;i++){switch(e[i].toLowerCase()){case"hh":g=i;break;case"mm":h=i;break;case"ss":j=i;break;case"t":case"tt":k=i;break}}if(g!=-1){var l=parseInt(f[g],10);if(isNaN(l)||l>(e[g]=='HH'?23:12)){return false}}if(h!=-1){var m=parseInt(f[h],10);if(isNaN(m)||m>59){return false}}if(j!=-1){var n=parseInt(f[j],10);if(isNaN(n)||n>59){return false}}if(k!=-1){var o=f[k].toUpperCase();if(e[k].toUpperCase()=='TT'&&!/^a|pm$/i.test(o)||e[k].toUpperCase()=='T'&&!/^a|p$/i.test(o)){return false}}var p=new Date(2000,0,1,l+(o.charAt(0)=='P'?12:0),m,n);return p}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,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}))$/;break}if(!c.test(a)){return false}var d=[];var j=1,digit='';for(var i=a.length-1;i>=0;i--){if((j%2)==0){digit=parseInt(a.charAt(i),10)*2;d[d.length]=digit.toString().charAt(0);if(digit.toString().length==2){d[d.length]=digit.toString().charAt(1)}}else{digit=a.charAt(i);d[d.length]=digit}j++}var e=0;for(i=0;i<d.length;i++){e+=parseInt(d[i],10)}if((e%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,b){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,b){var c=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var d=a.match(c);if(d&&d[4]){var e=d[4].split(".");var f='';for(var i=0;i<e.length;i++){f=Spry.Widget.Utils.punycode_encode(e[i],64);if(!f){return false}else{if(f!=(e[i]+"-")){e[i]='xn--'+f}}}e=e.join(".");a=a.replace(c,"$1//"+e+"$5$6$8")}var g=/^(?: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;var h=a.match(g);if(h){var j=h[1];if(j){if(j=='[]'){return false}if(j.charAt(0)=='['){j=j.replace(/^\[|\]$/gi,'');return Spry.Widget.ValidationTextField.validateIP(j,'ipv6_ipv4')}else{if(/[^0-9\.]/.test(j)){return true}else{return Spry.Widget.ValidationTextField.validateIP(j,'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];var d=[/^(\d{1,3}\.){3}\d{1,3}$/i];var e=[];if(b=='ipv6'||b=='ipv6_ipv4'){e=e.concat(c)}if(b=='ipv4'||b=='ipv6_ipv4'){e=e.concat(d)}var f=false;for(var i=0;i<e.length;i++){if(e[i].test(a)){f=true;break}}if(f&&a.indexOf(".")!=-1){var g=a.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);if(!g){return false}g=g[0].replace(/^:/,'');var h=g.split('.');if(h.length!=4){return false}var j=/^[\-\+]?\d*$/;for(var i=0;i<h.length;i++){if(h[i]==''){return false}var k=parseInt(h[i],10);if(isNaN(k)||k>255||!j.test(h[i])||h[i].length>3||/^0{2,3}$/.test(h[i])){return false}}}if(f&&a.indexOf("/")!=-1){var l=a.match(/\/\d{1,3}$/);if(!l)return false;var m=parseInt(l[0].replace(/^\//,''),10);if(isNaN(m)||m>128||m<1){return false}}return f};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];break}var c={};if(b.format&&Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats){if(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 i=0;i<this.event_handlers.length;i++){Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false)}try{delete this.element}catch(err){}try{delete this.input}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}try{this.selection.destroy()}catch(err){}try{delete this.selection}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var a=q.length;for(var i=0;i<a;i++){if(q[i]==this){q.splice(i,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(e){if(a.isDisabled())return true;return a.onKeyDown(e||event)}]);this.event_handlers.push([this.input,"keypress",function(e){if(a.isDisabled())return true;return a.onKeyPress(e||event)}]);if(Spry.is.opera){this.event_handlers.push([this.input,"keyup",function(e){if(a.isDisabled())return true;return a.onKeyUp(e||event)}])}this.event_handlers.push([this.input,"focus",function(e){if(a.isDisabled())return true;return a.onFocus(e||event)}]);this.event_handlers.push([this.input,"blur",function(e){if(a.isDisabled())return true;return a.onBlur(e||event)}]);this.event_handlers.push([this.input,"mousedown",function(e){if(a.isDisabled())return true;return a.onMouseDown(e||event)}]);var b=Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change";this.event_handlers.push([this.input,b,function(e){if(a.isDisabled())return true;return a.onChange(e||event)}]);if(Spry.is.mozilla||Spry.is.safari){this.event_handlers.push([this.input,"dragdrop",function(e){if(a.isDisabled())return true;a.removeHint();return a.onChange(e||event)}])}else if(Spry.is.ie){this.event_handlers.push([this.input,"drop",function(e){if(a.isDisabled())return true;return a.onDrop(e||event)}])}for(var i=0;i<this.event_handlers.length;i++){Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][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(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.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(a){Spry.Widget.ValidationTextField.onloadDidFire=true;var q=Spry.Widget.ValidationTextField.loadQueue;var b=q.length;for(var i=0;i<b;i++)q[i].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(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;var d=true;if(!this.options.isRequired&&a.length==0){d=false}var e=0;var f=a;if(this.useCharacterMasking&&this.characterMasking){for(var i=0;i<a.length;i++){if(!this.characterMasking.test(a.charAt(i))){e=e|Spry.Widget.ValidationTextField.ERROR_FORMAT;f=b;c=true;break}}}if(!c&&this.useCharacterMasking&&this.regExpFilter){if(!this.regExpFilter.test(f)){e=e|Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}}if(!c&&this.pattern){var g=this.patternToRegExp(a.length);if(!g.test(a)){e=e|Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}else if(this.patternLength!=a.length){e=e|Spry.Widget.ValidationTextField.ERROR_FORMAT}}if(f==''){e=e|Spry.Widget.ValidationTextField.ERROR_REQUIRED}if(!c&&this.pattern&&this.useCharacterMasking){var n=this.getAutoComplete(a.length);if(n){f+=n}}if(!c&&this.minChars!==null&&d){if(a.length<this.minChars){e=e|Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;d=false}}if(!c&&this.maxChars!==null&&d){if(a.length>this.maxChars){e=e|Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;d=false}}if(!c&&this.validation&&d){var h=this.validation(f,this.options);if(false===h){e=e|Spry.Widget.ValidationTextField.ERROR_FORMAT;d=false}else{this.typedValue=h}}if(!c&&this.validation&&this.minValue!==null&&d){var j=this.validation(this.minValue.toString(),this.options);if(j!==false){if(this.typedValue<j){e=e|Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;d=false}}}if(!c&&this.validation&&this.maxValue!==null&&d){var k=this.validation(this.maxValue.toString(),this.options);if(k!==false){if(this.typedValue>k){e=e|Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;d=false}}}if(this.useCharacterMasking&&c){this.revertState(b)}this.errors=e;this.fixedValue=f;this.flags.locked=false;return c};Spry.Widget.ValidationTextField.prototype.onChange=function(e){if(Spry.is.opera&&this.flags.operaRevertOnKeyUp){return true}if(Spry.is.ie&&e&&e.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(e){if(this.flags.operaRevertOnKeyUp){this.setValue(this.oldValue);Spry.Widget.Utils.stopEvent(e);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 a="";var b=[];var c=[];var d=[];var e=/^([mdy]+)([\.\-\/\\\s]+)([mdy]+)([\.\-\/\\\s]+)([mdy]+)$/i;var f=this.options.format.match(e);if(f!==null){for(var i=1;i<f.length;i++){switch(f[i].toLowerCase()){case"dd":b[i-1]="\\d{1,2}";c[i-1]="\\d\\d";a+="("+b[i-1]+")";d[i-1]=null;break;case"mm":b[i-1]="\\d{1,2}";c[i-1]="\\d\\d";a+="("+b[i-1]+")";d[i-1]=null;break;case"yy":b[i-1]="\\d{1,2}";c[i-1]="\\d\\d";a+="(\\d\\d)";d[i-1]=null;break;case"yyyy":b[i-1]="\\d{1,4}";c[i-1]="\\d\\d\\d\\d";a+="(\\d\\d\\d\\d)";d[i-1]=null;break;default:b[i-1]=c[i-1]=Spry.Widget.ValidationTextField.regExpFromChars(f[i]);a+="["+b[i-1]+"]";d[i-1]=f[i]}}}this.dateValidationPattern=new RegExp("^"+a+"$","");this.dateAutocompleteCharacters=d;this.dateGroupPatterns=b;this.dateFullGroupPatterns=c;this.lastDateGroup=f.length-2};Spry.Widget.ValidationTextField.prototype.getRegExpForGroup=function(a){var b='^';for(var j=0;j<=a;j++)b+=this.dateGroupPatterns[j];b+='$';return new RegExp(b,"")};Spry.Widget.ValidationTextField.prototype.getRegExpForFullGroup=function(a){var b='^';for(var j=0;j<a;j++)b+=this.dateGroupPatterns[j];b+=this.dateFullGroupPatterns[a];return new RegExp(b,"")};Spry.Widget.ValidationTextField.prototype.getDateGroup=function(a,b){if(b==0)return 0;var c=a.substring(0,b);for(var i=0;i<=this.lastDateGroup;i++)if(this.getRegExpForGroup(i).test(c))return i;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){var d=a.substring(0,b);return this.getRegExpForGroup(c).test(d)};Spry.Widget.ValidationTextField.prototype.isPositionAtEndOfGroup=function(a,b,c){var d=a.substring(0,b);return this.getRegExpForFullGroup(c).test(d)};Spry.Widget.ValidationTextField.prototype.nextDateDelimiterExists=function(a,b,c){var d=this.dateAutocompleteCharacters[c+1];if(a.length<b+d.length)return false;else{var e=a.substring(b,b+d.length);if(e==d)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 a=this.doValidations(this.input.value,this.input.value);if(a){return true}}var b=Spry.Widget.Utils.getCharacterFromEvent(e);if(b&&this.characterMasking){if(!this.characterMasking.test(b)){Spry.Widget.Utils.stopEvent(e);this.redTextFlash();return false}}if(b&&this.pattern){var c=this.patternCharacters[this.selection.start];if(/[ax]/i.test(c)){if(c.toLowerCase()==c){b=b.toLowerCase()}else{b=b.toUpperCase()}}var d=this.getAutoComplete(this.selection.start);if(this.selection.start==this.oldValue.length){if(this.oldValue.length<this.patternLength){if(d){Spry.Widget.Utils.stopEvent(e);var f=this.oldValue.substring(0,this.selection.start)+d+b;var g=this.doValidations(f,this.oldValue);if(!g){this.setValue(this.fixedValue);this.selection.moveTo(this.fixedValue.length,this.fixedValue.length)}else{this.setValue(this.oldValue.substring(0,this.selection.start)+d);this.selection.moveTo(this.selection.start+d.length,this.selection.start+d.length)}return false}}else{Spry.Widget.Utils.stopEvent(e);this.setValue(this.input.value);return false}}else if(d){Spry.Widget.Utils.stopEvent(e);this.selection.moveTo(this.selection.start+d.length,this.selection.start+d.length);return false}Spry.Widget.Utils.stopEvent(e);var f=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start+1);var g=this.doValidations(f,this.oldValue);if(!g){d=this.getAutoComplete(this.selection.start+1);this.setValue(this.fixedValue);this.selection.moveTo(this.selection.start+1+d.length,this.selection.start+1+d.length)}else{this.selection.moveTo(this.selection.start,this.selection.start)}return false}if(b&&this.type=='date'&&this.useCharacterMasking){var h=this.getDateGroup(this.oldValue,this.selection.start);if(h!=-1){Spry.Widget.Utils.stopEvent(e);if((h%2)!=0)h++;if(this.isDateGroupFull(this.oldValue,h)){if(this.isPositionAtEndOfGroup(this.oldValue,this.selection.start,h)){if(h==this.lastDateGroup){this.redTextFlash();return false}else{var d=this.dateAutocompleteCharacters[h+1];if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,h)){var d=this.dateAutocompleteCharacters[h+1];this.selection.moveTo(this.selection.start+d.length,this.selection.start+d.length);if(b==d)return false;if(this.isDateGroupFull(this.oldValue,h+2))f=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start+1);else f=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);if(!this.isValueValid(f,this.selection.start+1,h+2)){this.redTextFlash();return false}else{this.setValue(f);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}return false}else{var d=this.dateAutocompleteCharacters[h+1];var i=d+b;f=this.oldValue.substring(0,this.selection.start)+i+this.oldValue.substring(this.selection.start);if(!this.isValueValid(f,this.selection.start+i.length,h+2)){i=d;f=this.oldValue.substring(0,this.selection.start)+i+this.oldValue.substring(this.selection.start);this.setValue(f);this.selection.moveTo(this.selection.start+i.length,this.selection.start+i.length);this.redTextFlash();return false}else{this.setValue(f);this.selection.moveTo(this.selection.start+i.length,this.selection.start+i.length);return false}}}}else{var j=1;f=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start+1);if(!this.isValueValid(f,this.selection.start+1,h)){this.redTextFlash();return false}else{if(this.isPositionAtEndOfGroup(f,this.selection.start+1,h)){if(h!=this.lastDateGroup){if(this.nextDateDelimiterExists(f,this.selection.start+1,h)){var d=this.dateAutocompleteCharacters[h+1];j=1+d.length}else{var d=this.dateAutocompleteCharacters[h+1];f=this.oldValue.substring(0,this.selection.start)+b+d+this.oldValue.substring(this.selection.start+1);j=1+d.length}}}this.setValue(f);this.selection.moveTo(this.selection.start+j,this.selection.start+j);return false}}}else{f=this.oldValue.substring(0,this.selection.start)+b+this.oldValue.substring(this.selection.start);var j=1;if(!this.isValueValid(f,this.selection.start+1,h)&&!this.isValueValid(f,this.selection.start+1,h+1)){this.redTextFlash();return false}else{var d=this.dateAutocompleteCharacters[h+1];if(b==d){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,h)){f=this.oldValue;j=1}}else{if(this.isPositionAtEndOfGroup(f,this.selection.start+1,h)){if(h!=this.lastDateGroup){if(this.nextDateDelimiterExists(f,this.selection.start+1,h)){var d=this.dateAutocompleteCharacters[h+1];j=1+d.length}else{var d=this.dateAutocompleteCharacters[h+1];f=this.oldValue.substring(0,this.selection.start)+b+d+this.oldValue.substring(this.selection.start+1);j=1+d.length}}}}this.setValue(f);this.selection.moveTo(this.selection.start+j,this.selection.start+j);return false}}}return false}};Spry.Widget.ValidationTextField.prototype.onKeyDown=function(e){this.saveState();this.keyCode=e.keyCode;if(Spry.is.opera){if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}if(e.ctrlKey){var a=Spry.Widget.Utils.getCharacterFromEvent(e);if(a&&'vx'.indexOf(a.toLowerCase())!=-1){var b=this;this.flags.operaPasteOperation=window.setInterval(function(){b.operaPasteMonitor()},1);return true}}}if(this.keyCode!=8&&this.keyCode!=46&&Spry.Widget.Utils.isSpecialKey(e)){return true}if(this.keyCode==8||this.keyCode==46){var c=this.doValidations(this.input.value,this.input.value);if(c){return true}}if(this.useCharacterMasking&&this.pattern&&this.keyCode==46){if(e.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(e);return false}if(this.useCharacterMasking&&this.pattern&&!e.ctrlKey&&this.keyCode==8){if(this.selection.start==this.input.value.length){var n=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-n.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-n.length;this.selection.end=this.selection.end-1-n.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(e);return false}return true};Spry.Widget.ValidationTextField.prototype.onMouseDown=function(e){if(this.flags.active){this.saveState()}};Spry.Widget.ValidationTextField.prototype.onDrop=function(e){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(e){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(e){this.flags.active=false;this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass);this.flags.restoreSelection=false;var a=this.doValidations(this.input.value,this.input.value);this.flags.restoreSelection=true;if(this.validateOn&Spry.Widget.ValidationTextField.ONBLUR){this.validate()}var b=this;setTimeout(function(){b.putHint()},10);return true};Spry.Widget.ValidationTextField.prototype.compilePattern=function(){if(!this.pattern){return}var a=[];var b=[];var d=[];var e=0;var c='',p='';for(var i=0;i<this.pattern.length;i++){c=this.pattern.charAt(i);if(p=='\\'){if(/[0ABXY\?]/i.test(c)){b[e-1]=c}else{b[e-1]=Spry.Widget.ValidationTextField.regExpFromChars(c)}a[e-1]=c;d[e-1]=null;p='';continue}b[e]=Spry.Widget.ValidationTextField.regExpFromChars(c);if(/[0ABXY\?]/i.test(c)){a[e]=null;d[e]=c}else if(c=='\\'){a[e]=c;d[e]='\\'}else{a[e]=c;d[e]=null}e++;p=c}this.autoCompleteCharacters=a;this.compiledPattern=b;this.patternCharacters=d;this.patternLength=a.length};Spry.Widget.ValidationTextField.prototype.getAutoComplete=function(a,b){if(b==-1){var n='',m='';while(a&&(n=this.getAutoComplete(--a))){m=n}return m}var d='',c='';for(var i=a;i<this.autoCompleteCharacters.length;i++){c=this.autoCompleteCharacters[i];if(c){d+=c}else{break}}return d};Spry.Widget.ValidationTextField.regExpFromChars=function(a){var b='',character='';for(var i=0;i<a.length;i++){character=a.charAt(i);switch(character){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+=character;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+=character;break;default:b+='\\'+character}}return b};Spry.Widget.ValidationTextField.prototype.patternToRegExp=function(a){var b='^';var c=Math.min(this.compiledPattern.length,a);for(var i=0;i<c;i++){b+=this.compiledPattern[i]}b+='$';b=new RegExp(b,"");return b};Spry.Widget.ValidationTextField.prototype.resetClasses=function(){var a=[this.requiredClass,this.invalidFormatClass,this.invalidRangeMinClass,this.invalidRangeMaxClass,this.invalidCharsMinClass,this.invalidCharsMaxClass,this.validClass];for(var i=0;i<a.length;i++){this.removeClassName(this.element,a[i]);this.removeClassName(this.additionalError,a[i])}};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 a=this.element.ownerDocument.selection;if(this.element.nodeName=="TEXTAREA"){if(a.type!='None'){try{var b=a.createRange()}catch(err){return}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(var e=0;c.compareEndPoints('StartToEnd',b)<0;e++){c.moveStart('character',1)}this.end=e;this.length=this.end-this.start;this.text=b.text}}}else if(this.element.nodeName=="INPUT"){try{this.range=a.createRange()}catch(err){return}this.length=this.range.text.length;var f=this.range.duplicate();this.start=-f.moveStart("character",-10000);f=this.range.duplicate();f.collapse(false);this.end=-f.moveStart("character",-10000);this.text=this.range.text}}else{var g=this.element;var h=0;var i=0;try{h=g.selectionStart}catch(err){}try{i=g.selectionEnd}catch(err){}if(Spry.is.safari){if(h==2147483647){h=0}if(i==2147483647){i=0}}this.start=h;this.end=i;this.length=i-h;this.text=this.element.value.substring(h,i)}};Spry.Widget.SelectionDescriptor.prototype.destroy=function(){try{delete this.range}catch(err){}try{delete this.element}catch(err){}};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(err){}}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);var d=this.range.compareEndPoints("StartToStart",c);if(d<0){this.range.setEndPoint("StartToStart",c)}var e=this.range.compareEndPoints("EndToEnd",c);if(e>0){this.range.setEndPoint("EndToEnd",c)}}else if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();this.range.move("character",-10000);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(err){}this.end=b;try{this.element.selectionEnd=b}catch(err){}}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(err){}}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(err){}}else{try{this.element.selectionStart=this.element.selectionEnd}catch(err){}}}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){var b=true;var c=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var d=q.length;for(var i=0;i<d;i++){if(!q[i].isDisabled()&&q[i].form==a){c=q[i].validate();b=c&&b}}return b}};if(!Spry.Widget.Form.onSubmit){Spry.Widget.Form.onSubmit=function(e,a){if(Spry.Widget.Form.validate(a)==false){return false}return true}};if(!Spry.Widget.Form.onReset){Spry.Widget.Form.onReset=function(e,a){var q=Spry.Widget.Form.onSubmitWidgetQueue;var b=q.length;for(var i=0;i<b;i++){if(!q[i].isDisabled()&&q[i].form==a&&typeof(q[i].reset)=='function'){q[i].reset()}}return true}};if(!Spry.Widget.Form.destroy){Spry.Widget.Form.destroy=function(a){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(q[i].form==a&&typeof(q[i].destroy)=='function'){q[i].destroy();i--}}}};if(!Spry.Widget.Form.destroyAll){Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(typeof(q[i].destroy)=='function'){q[i].destroy();i--}}}};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:0x80,delimiter:0x2D,maxint:2<<26-1};Spry.Widget.Utils.punycode_encode_digit=function(d){return String.fromCharCode(d+22+75*(d<26))};Spry.Widget.Utils.punycode_adapt=function(a,b,c){a=c?a/this.punycode_constants.damp:a>>1;a+=a/b;for(var k=0;a>((this.punycode_constants.base-this.punycode_constants.tmin)*this.punycode_constants.tmax)/2;k+=this.punycode_constants.base){a/=this.punycode_constants.base-this.punycode_constants.tmin}return k+(this.punycode_constants.base-this.punycode_constants.tmin+1)*a/(a+this.punycode_constants.skew)};Spry.Widget.Utils.punycode_encode=function(a,c){var d=a.split("");a=[];for(var i=0;i<d.length;i++){a.push(d[i].charCodeAt(0))}var e='';var h,b,j,m,q,k,t;var f=a.length;var n=this.punycode_constants.initial_n;var g=0;var l=this.punycode_constants.initial_bias;var o=0;for(j=0;j<f;j++){if(a[j]<128){if(c-o<2){return false}e+=String.fromCharCode(a[j]);o++}}h=b=o;if(b>0){e+=String.fromCharCode(this.punycode_constants.delimiter);o++}while(h<f){for(m=this.punycode_constants.maxint,j=0;j<f;j++){if(a[j]>=n&&a[j]<m){m=a[j]}}if(m-n>(this.punycode_constants.maxint-g)/(h+1)){return false}g+=(m-n)*(h+1);n=m;for(j=0;j<f;j++){if(a[j]<n){if(++g==0){return false}}if(a[j]==n){for(q=g,k=this.punycode_constants.base;true;k+=this.punycode_constants.base){if(o>=c){return false}t=k<=l?this.punycode_constants.tmin:k>=l+this.punycode_constants.tmax?this.punycode_constants.tmax:k-l;if(q<t){break}e+=this.punycode_encode_digit(t+(q-t)%(this.punycode_constants.base-t));o++;q=(q-t)/(this.punycode_constants.base-t)}e+=this.punycode_encode_digit(q);o++;l=this.punycode_adapt(g,h+1,h==b);g=0;h++}}g++,n++}return e};Spry.Widget.Utils.setOptions=function(a,b,c){if(!b)return;for(var d in b){if(c&&b[d]==undefined)continue;a[d]=b[d]}};Spry.Widget.Utils.firstValid=function(){var a=null;for(var i=0;i<Spry.Widget.Utils.firstValid.arguments.length;i++){if(typeof(Spry.Widget.Utils.firstValid.arguments[i])!='undefined'){a=Spry.Widget.Utils.firstValid.arguments[i];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;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(e){var a=e.type=="keydown";var b=null;var c=null;if(Spry.is.mozilla&&!a){if(e.charCode){c=String.fromCharCode(e.charCode)}else{b=e.keyCode}}else{b=e.keyCode||e.which;if(b!=13){c=String.fromCharCode(b)}}if(Spry.is.safari){if(a){b=e.keyCode||e.which;c=String.fromCharCode(b)}else{b=e.keyCode||e.which;if(Spry.Widget.Utils.specialCharacters.indexOf(","+b+",")!=-1){c=null}else{c=String.fromCharCode(b)}}}if(Spry.is.opera){if(Spry.Widget.Utils.specialCharacters.indexOf(","+b+",")!=-1){c=null}else{c=String.fromCharCode(b)}}return c};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){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(a){if(typeof a=='string'){a=document.getElementById(a)}var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(typeof(q[i].destroy)=='function'&&Spry.Widget.Utils.contains(a,q[i].element)){q[i].destroy();i--}}};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,c,d){try{if(a.addEventListener)a.addEventListener(b,c,d);else if(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 if(a.detachEvent)a.detachEvent("on"+b,c,d)}catch(e){}};Spry.Widget.Utils.stopEvent=function(a){try{this.stopPropagation(a);this.preventDefault(a)}catch(e){}};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}}})();(function(){if(typeof Spry=="undefined")window.Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.ValidationCheckbox=function(a,b){this.init(a);Spry.Widget.Utils.setOptions(this,b);var c=['submit'].concat(this.validateOn||[]);c=c.join(",");this.validateOn=0|(c.indexOf('submit')!=-1?Spry.Widget.ValidationCheckbox.ONSUBMIT:0);this.validateOn=this.validateOn|(c.indexOf('blur')!=-1?Spry.Widget.ValidationCheckbox.ONBLUR:0);this.validateOn=this.validateOn|(c.indexOf('change')!=-1?Spry.Widget.ValidationCheckbox.ONCHANGE:0);if(!isNaN(this.minSelections)){this.minSelections=(this.minSelections>0)?parseInt(this.minSelections,10):null}if(!isNaN(this.maxSelections)){this.maxSelections=(this.maxSelections>0)?parseInt(this.maxSelections,10):null}if(this.additionalError)this.additionalError=this.getElement(this.additionalError);if(Spry.Widget.ValidationCheckbox.onloadDidFire)this.attachBehaviors();else Spry.Widget.ValidationCheckbox.loadQueue.push(this)};Spry.Widget.ValidationCheckbox.ONCHANGE=1;Spry.Widget.ValidationCheckbox.ONBLUR=2;Spry.Widget.ValidationCheckbox.ONSUBMIT=4;Spry.Widget.ValidationCheckbox.prototype.init=function(a){this.element=this.getElement(a);this.checkboxElements=null;this.additionalError=false;this.form=null;this.event_handlers=[];this.hasFocus=false;this.requiredClass="checkboxRequiredState";this.minSelectionsClass="checkboxMinSelectionsState";this.maxSelectionsClass="checkboxMaxSelectionsState";this.focusClass="checkboxFocusState";this.validClass="checkboxValidState";this.isRequired=true;this.minSelections=null;this.maxSelections=null;this.validateOn=["submit"]};Spry.Widget.ValidationCheckbox.prototype.destroy=function(){if(this.event_handlers)for(var i=0;i<this.event_handlers.length;i++){Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false)}try{delete this.element}catch(err){}if(this.checkboxElements)for(var i=0;i<this.checkboxElements.length;i++){try{delete this.checkboxElements[i]}catch(err){}}try{delete this.checkboxElements}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var a=q.length;for(var i=0;i<a;i++){if(q[i]==this){q.splice(i,1);break}}};Spry.Widget.ValidationCheckbox.onloadDidFire=false;Spry.Widget.ValidationCheckbox.loadQueue=[];Spry.Widget.ValidationCheckbox.prototype.getElement=function(a){if(a&&typeof a=="string")return document.getElementById(a);return a};Spry.Widget.ValidationCheckbox.processLoadQueue=function(a){Spry.Widget.ValidationCheckbox.onloadDidFire=true;var q=Spry.Widget.ValidationCheckbox.loadQueue;var b=q.length;for(var i=0;i<b;i++)q[i].attachBehaviors()};Spry.Widget.ValidationCheckbox.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.ValidationCheckbox.addLoadListener(Spry.Widget.ValidationCheckbox.processLoadQueue);Spry.Widget.ValidationCheckbox.addLoadListener(function(){Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false)});Spry.Widget.ValidationCheckbox.prototype.attachBehaviors=function(){if(!this.element)return;if(this.element.nodeName=="INPUT"){this.checkboxElements=[this.element]}else{this.checkboxElements=this.getCheckboxes()}if(this.checkboxElements){var a=this;this.event_handlers=[];var b=this.checkboxElements.length;for(var i=0;i<b;i++){this.event_handlers.push([this.checkboxElements[i],"focus",function(e){return a.onFocus(e)}]);this.event_handlers.push([this.checkboxElements[i],"blur",function(e){return a.onBlur(e)}]);if(this.validateOn&Spry.Widget.ValidationCheckbox.ONCHANGE){this.event_handlers.push([this.checkboxElements[i],"click",function(e){return a.onClick(e)}])}}for(var i=0;i<this.event_handlers.length;i++){Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false)}this.form=Spry.Widget.Utils.getFirstParentWithNodeName(this.element,"FORM");if(this.form){if(!this.form.attachedSubmitHandler&&!this.form.onsubmit){this.form.onsubmit=function(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};Spry.Widget.ValidationCheckbox.prototype.getCheckboxes=function(){var a;var b=this.element.getElementsByTagName("INPUT");if(b.length){a=[];var c=b.length;for(var i=0;i<c;i++){if(b[i].type=="checkbox"){a.push(b[i])}}return a}return null};Spry.Widget.ValidationCheckbox.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.ValidationCheckbox.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.ValidationCheckbox.prototype.onFocus=function(e){var a=(e.srcElement!=null)?e.srcElement:e.target;if(a.disabled)return;this.hasFocus=true;this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationCheckbox.prototype.onBlur=function(e){var a=(e.srcElement!=null)?e.srcElement:e.target;if(a.disabled)return;this.hasFocus=false;var b=false;if(this.validateOn&Spry.Widget.ValidationCheckbox.ONBLUR)b=true;if(b)this.validate();this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationCheckbox.prototype.onClick=function(e){var a=(e.srcElement!=null)?e.srcElement:e.target;if(a.disabled)return;this.validate()};Spry.Widget.ValidationCheckbox.prototype.reset=function(){this.removeClassName(this.element,this.validClass);this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.minSelectionsClass);this.removeClassName(this.element,this.maxSelectionsClass);this.removeClassName(this.additionalError,this.validClass);this.removeClassName(this.additionalError,this.requiredClass);this.removeClassName(this.additionalError,this.minSelectionsClass);this.removeClassName(this.additionalError,this.maxSelectionsClass)};Spry.Widget.ValidationCheckbox.prototype.validate=function(){this.reset();var a=0;if(this.checkboxElements){var b=this.checkboxElements.length;for(var i=0;i<b;i++){if(!this.checkboxElements[i].disabled&&this.checkboxElements[i].checked){a++}}}if(this.isRequired){if(a==0){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}}if(this.minSelections){if(this.minSelections>a){this.addClassName(this.element,this.minSelectionsClass);this.addClassName(this.additionalError,this.minSelectionsClass);return false}}if(this.maxSelections){if(this.maxSelections<a){this.addClassName(this.element,this.maxSelectionsClass);this.addClassName(this.additionalError,this.maxSelectionsClass);return false}}this.addClassName(this.element,this.validClass);this.addClassName(this.additionalError,this.validClass);return true};Spry.Widget.ValidationCheckbox.prototype.isDisabled=function(){var a=true;if(this.checkboxElements){var b=this.checkboxElements.length;for(var i=0;i<b;i++){if(!this.checkboxElements[i].disabled){a=false;break}}}return a};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){var b=true;var c=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var d=q.length;for(var i=0;i<d;i++){if(!q[i].isDisabled()&&q[i].form==a){c=q[i].validate();b=c&&b}}return b}};if(!Spry.Widget.Form.onSubmit){Spry.Widget.Form.onSubmit=function(e,a){if(Spry.Widget.Form.validate(a)==false){return false}return true}};if(!Spry.Widget.Form.onReset){Spry.Widget.Form.onReset=function(e,a){var q=Spry.Widget.Form.onSubmitWidgetQueue;var b=q.length;for(var i=0;i<b;i++){if(!q[i].isDisabled()&&q[i].form==a&&typeof(q[i].reset)=='function'){q[i].reset()}}return true}};if(!Spry.Widget.Form.destroy){Spry.Widget.Form.destroy=function(a){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(q[i].form==a&&typeof(q[i].destroy)=='function'){q[i].destroy();i--}}}};if(!Spry.Widget.Form.destroyAll){Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(typeof(q[i].destroy)=='function'){q[i].destroy();i--}}}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.setOptions=function(a,b,c){if(!b)return;for(var d in b){if(c&&b[d]==undefined)continue;a[d]=b[d]}};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(a){if(typeof a=='string'){a=document.getElementById(a)}var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){if(typeof(q[i].destroy)=='function'&&Spry.Widget.Utils.contains(a,q[i].element)){q[i].destroy();i--}}};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,c,d){try{if(a.addEventListener)a.addEventListener(b,c,d);else if(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 if(a.detachEvent)a.detachEvent("on"+b,c,d)}catch(e){}}})();function reloadCAPTCHA(){document.getElementById('captcha').src='/captcha/captcha.asp?'+Date()}var nomeform="";var result_from="";function PreparaDati(){stringa="";var a=document.forms[nomeform];var b=a.elements.length;for(var i=0;i<b;i++){if(a.elements[i].type!="radio"){if(i<b-1){stringa+=a.elements[i].name+"="+encodeURIComponent(a.elements[i].value)+"&"}else{stringa+=a.elements[i].name+"="+encodeURIComponent(a.elements[i].value)}}else{if(a.elements[i].checked){if(i<b-1){stringa+=a.elements[i].name+"="+encodeURIComponent(a.elements[i].value)+"&"}else{stringa+=a.elements[i].name+"="+encodeURIComponent(a.elements[i].value)}}}}}function AJAXReq(a,b,c){if(window.XMLHttpRequest){myReq=new XMLHttpRequest()}else if(window.ActiveXObject){myReq=new ActiveXObject("Microsoft.XMLHTTP");if(!myReq){myReq=new ActiveXObject("Msxml2.XMLHTTP")}}if(myReq){execfunc(a,b,c)}else{alert("Errore aggiornare browser non supporta ajax")}}function execfunc(a,b,c){myReq.onreadystatechange=handleResponse;myReq.open(a,b,c);myReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");myReq.send(stringa)}function InviaDati(a,b,c){nomeform=b;result_from=c;var d=document.getElementById(result_from);d.innerHTML='Caricamento in corso ...';PreparaDati();a=a.replace("'","");a=a.replace(";","");AJAXReq("POST",a+"?date()",true)}function handleResponse(){if(myReq.readyState==4){if(myReq.status==200){var R=document.getElementById(result_from);R.innerHTML=myReq.responseText;reloadCAPTCHA();document.preventivo.strCAPTCHA.value="";if(nomeform=="CommunityLogin"){var a=document.getElementById('LoginTop');a.style.display="none"}}else{alert("Errore")}}}function valida(a){var b=document.getElementById("preventivo");var c=Spry.Widget.Form.validate(b);if(c==true){InviaDati('/functions/go_from.asp','preventivo','result_from')}return false}function verifica(){var a=new Spry.Widget.ValidationTextField("ConvNome","none",{validateOn:["blur","change"],hint:"Nome e Cognome",minChars:6});var b=new Spry.Widget.ValidationTextField("ConvMail","email",{validateOn:["blur","change"],hint:"mail@address.com"});var c=new Spry.Widget.ValidationTextField("ConvTel","integer",{validateOn:["blur","change"],minChars:8});var d=new Spry.Widget.ValidationTextField("ConvCAPTCHA","none",{hint:"Ricopia il codice",minChars:3,validateOn:["blur","change"]});var e=new Spry.Widget.ValidationCheckbox("ConvPrivacy",{validateOn:["blur","change"]});return verifica}
