﻿(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.ValidationPassword=function(c,b){b=Spry.Widget.Utils.firstValid(b,{});if(!this.isBrowserSupported())return;if(this.init(c,b)===false)return false;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.ValidationPassword.ONSUBMIT:0);this.validateOn=this.validateOn|(a.indexOf("blur")!=-1?Spry.Widget.ValidationPassword.ONBLUR:0);this.validateOn=this.validateOn|(a.indexOf("change")!=-1?Spry.Widget.ValidationPassword.ONCHANGE:0);if(Spry.Widget.ValidationPassword.onloadDidFire)this.attachBehaviors();else Spry.Widget.ValidationPassword.loadQueue.push(this)};Spry.Widget.ValidationPassword.ONCHANGE=1;Spry.Widget.ValidationPassword.ONBLUR=2;Spry.Widget.ValidationPassword.ONSUBMIT=4;Spry.Widget.ValidationPassword.prototype.init=function(d,a){a=Spry.Widget.Utils.firstValid(a,[]);this.options=[];this.element=this.getElement(d);if(!this.element)return false;else if(this.element.nodeName.toUpperCase()=="INPUT"&&typeof this.element.type!="undefined"&&this.element.type.toUpperCase()=="PASSWORD")this.input=this.element;else{var c=Spry.Widget.Utils.getValidChildrenWithNodeNameAtAnyLevel(this.element,"INPUT","PASSWORD");if(c&&c.length>0)this.input=c[0];else this.input=false}if(!this.input)return false;this.event_handlers=[];this.validClass="passwordValidState";this.focusClass="passwordFocusState";this.requiredClass="passwordRequiredState";this.invalidStrengthClass="passwordInvalidStrengthState";this.invalidCharsMinClass="passwordMinCharsState";this.invalidCharsMaxClass="passwordMaxCharsState";this.invalidCustomClass="passwordCustomState";a.isRequired=Spry.Widget.Utils.firstValid(a.isRequired,true);a.additionalError=Spry.Widget.Utils.firstValid(a.additionalError,false);if(a.additionalError)a.additionalError=this.getElement(a.additionalError);var b=Spry.Widget.Utils.getOptionRealValue;a.minChars=b(a.minChars,false);a.maxChars=b(a.maxChars,false);if(a.maxChars)this.input.removeAttribute("maxLength");a.minAlphaChars=b(a.minAlphaChars,false);a.maxAlphaChars=b(a.maxAlphaChars,false);a.minUpperAlphaChars=b(a.minUpperAlphaChars,false);a.maxUpperAlphaChars=b(a.maxUpperAlphaChars,false);a.minSpecialChars=b(a.minSpecialChars,false);a.maxSpecialChars=b(a.maxSpecialChars,false);a.minNumbers=b(a.minNumbers,false);a.maxNumbers=b(a.maxNumbers,false);if(a.minAlphaChars!==false&&a.maxAlphaChars!==false&&a.minAlphaChars>a.maxAlphaChars||a.minUpperAlphaChars!==false&&a.maxUpperAlphaChars!==false&&a.minUpperAlphaChars>a.maxUpperAlphaChars||a.minSpecialChars!==false&&a.maxSpecialChars!==false&&a.minSpecialChars>a.maxSpecialChars||a.minNumbers!==false&&a.maxNumbers!==false&&a.minNumbers>a.maxNumbers||a.maxUpperAlphaChars!==false&&a.maxAlphaChars!==false&&a.maxUpperAlphaChars>a.maxAlphaChars||a.maxChars!==false&&a.minAlphaChars+a.minUpperAlphaChars+a.minSpecialChars+a.minNumbers>a.maxChars){this.showError("Invalid Strength Options!");return false}Spry.Widget.Utils.setOptions(this,a);Spry.Widget.Utils.setOptions(this.options,a)};Spry.Widget.ValidationPassword.loadQueue=[];Spry.Widget.ValidationPassword.onloadDidFire=false;Spry.Widget.ValidationPassword.prototype.getElement=function(a){if(a&&typeof a=="string")a=document.getElementById(a);return a};Spry.Widget.ValidationPassword.processLoadQueue=function(){Spry.Widget.ValidationPassword.onloadDidFire=true;var b=Spry.Widget.ValidationPassword.loadQueue,c=b.length;for(var a=0;a<c;a++)b[a].attachBehaviors()};Spry.Widget.ValidationPassword.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.ValidationPassword.addLoadListener(Spry.Widget.ValidationPassword.processLoadQueue);Spry.Widget.ValidationPassword.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.event_handlers}catch(d){}try{delete this.options}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.ValidationPassword.prototype.attachBehaviors=function(){if(this.event_handlers&&this.event_handlers.length>0)return;var b=this.event_handlers;if(this.input){var a=this;this.input.setAttribute("AutoComplete","off");if(this.validateOn&Spry.Widget.ValidationPassword.ONCHANGE){var d=Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change";b.push([this.input,d,function(b){if(a.isDisabled())return true;return a.validate(b||event)}]);if(Spry.is.mozilla||Spry.is.safari)b.push([this.input,"dragdrop",function(b){if(a.isDisabled())return true;return a.validate(b)}]);else if(Spry.is.ie)b.push([this.input,"drop",function(){if(a.isDisabled())return true;return a.validate(event)}])}b.push([this.input,"blur",function(b){if(a.isDisabled())return true;return a.onBlur(b||event)}]);b.push([this.input,"focus",function(b){if(a.isDisabled())return true;return a.onFocus(b||event)}]);for(var c=0;c<this.event_handlers.length;c++)Spry.Widget.Utils.addEventListener(this.event_handlers[c][0],this.event_handlers[c][1],this.event_handlers[c][2],false);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){var 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.ValidationPassword.prototype.reset=function(){this.switchClassName(this.element,"");this.switchClassName(this.additionalError,"");this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass);if(Spry.is.ie){this.input.forceFireFirstOnPropertyChange=true;this.input.removeAttribute("forceFireFirstOnPropertyChange")}};Spry.Widget.ValidationPassword.prototype.validateLength=function(){var a=this.options;if(this.isRequired&&this.input.value=="")return this.requiredClass;if(a.minChars>0&&this.input.value.length<a.minChars)return this.invalidCharsMinClass;if(a.maxChars!==false&&this.input.value.length>a.maxChars)return this.invalidCharsMaxClass;return true};Spry.Widget.ValidationPassword.prototype.validateStrength=function(){var a=this.options,b=this.input.value;if(a.minAlphaChars!==false||a.maxAlphaChars!==false){var d=b.replace(/[^a-z]/ig,"").length;if(a.maxAlphaChars!==false&&d>a.maxAlphaChars||a.minAlphaChars!==false&&d<a.minAlphaChars)return false}if(a.minUpperAlphaChars!==false||a.maxUpperAlphaChars!==false){var c=b.replace(/[^A-Z]/g,"").length;if(a.maxUpperAlphaChars!==false&&c>a.maxUpperAlphaChars||a.minUpperAlphaChars!==false&&c<a.minUpperAlphaChars)return false}if(a.minNumbers!==false||a.maxNumbers!==false){var f=b.replace(/[^0-9]/g,"").length;if(a.maxNumbers!==false&&f>a.maxNumbers||a.minNumbers!==false&&f<a.minNumbers)return false}if(a.minSpecialChars!==false||a.maxSpecialChars!==false){var e=b.replace(/[a-z0-9]/ig,"").length;if(a.maxSpecialChars!==false&&e>a.maxSpecialChars||a.minSpecialChars!==false&&e<a.minSpecialChars)return false}return true};Spry.Widget.ValidationPassword.prototype.validate=function(b){var a=this.validateLength(b);if(a!==true){this.switchClassName(this.element,a);this.switchClassName(this.additionalError,a);return false}var d=this.validateStrength(b);if(d!==true){this.switchClassName(this.element,this.invalidStrengthClass);this.switchClassName(this.additionalError,this.invalidStrengthClass);return false}if(typeof this.options.validation=="function"){var c=this.options.validation(this.input.value,this.options);if(c!==true){this.switchClassName(this.element,this.invalidCustomClass);return false}}this.switchClassName(this.element,this.validClass);this.switchClassName(this.additionalError,this.validClass);return true};Spry.Widget.ValidationPassword.prototype.onBlur=function(a){this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass);if(this.validateOn&Spry.Widget.ValidationPassword.ONBLUR)this.validate(a)};Spry.Widget.ValidationPassword.prototype.onFocus=function(){this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationPassword.prototype.switchClassName=function(c,d){var b=[this.validClass,this.requiredClass,this.invalidCharsMaxClass,this.invalidCharsMinClass,this.invalidStrengthClass,this.invalidCustomClass];for(var a=0;a<b.length;a++)this.removeClassName(c,b[a]);this.addClassName(c,d)};Spry.Widget.ValidationPassword.prototype.addClassName=function(a,b){if(!a||!b||a.className&&a.className.indexOf(b)!=-1&&a.className.search(new RegExp("\\b"+b+"\\b"))!=-1)return;a.className+=(a.className?" ":"")+b};Spry.Widget.ValidationPassword.prototype.removeClassName=function(a,b){if(!a||!b||a.className&&a.className.indexOf(b)!=-1&&a.className.search(new RegExp("\\b"+b+"\\b"))==-1)return;a.className=a.className.replace(new RegExp("\\s*\\b"+b+"\\b","g"),"")};Spry.Widget.ValidationPassword.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.ValidationPassword.prototype.isDisabled=function(){return this.input&&(this.input.disabled||this.input.readOnly)||!this.input};Spry.Widget.ValidationPassword.prototype.showError=function(a){alert("Spry.ValidationPassword ERR: "+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(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.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.getOptionRealValue=function(c,b){var a=Spry.Widget.Utils.firstValid(c,b);if(a!==false)a=parseInt(a,10);if(isNaN(a)||a<0)a=false;return a};Spry.Widget.Utils.getValidChildrenWithNodeNameAtAnyLevel=function(f,e,g){var a=f.getElementsByTagName(e),c=[],d=0;if(a)for(var b=0;b<a.length;b++)if(typeof a[b].type!="undefined"&&a[b].type.toUpperCase()==g.toUpperCase()){c[d]=a[b];d++}return c};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.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){}}})()
