var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.BrowserSniff=function(){var H=navigator.appName.toString();var D=navigator.platform.toString();var B=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var F=/Opera.([0-9\.]*)/i;var C=/MSIE.([0-9\.]*)/i;var E=/gecko/i;var G=/(applewebkit|safari)\/([\d\.]*)/i;var A=false;if((A=B.match(F))){this.opera=true;this.version=parseFloat(A[1])}else{if((A=B.match(C))){this.ie=true;this.version=parseFloat(A[1])}else{if((A=B.match(G))){this.safari=true;this.version=parseFloat(A[2])}else{if(B.match(E)){var I=/rv:\s*([0-9\.]+)/i;A=B.match(I);this.mozilla=true;this.version=parseFloat(A[1])}}}}this.windows=this.mac=this.linux=false;this.Platform=B.match(/windows/i)?"windows":(B.match(/linux/i)?"linux":(B.match(/mac/i)?"mac":B.match(/unix/i)?"unix":"unknown"));this[this.Platform]=true;this.v=this.version;if(this.safari&&this.mac&&this.mozilla){this.mozilla=false}};Spry.is=new Spry.Widget.BrowserSniff();Spry.Widget.ValidationTextField=function(B,C,A){C=Spry.Widget.Utils.firstValid(C,"none");if(typeof C!="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[C]=="undefined"){this.showError("Unknown validation type received as the second parameter.");return }A=Spry.Widget.Utils.firstValid(A,{});this.type=C;if(!this.isBrowserSupported()){A.useCharacterMasking=false}this.init(B,A);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(D,C){if(D==""||D=="-"||D=="+"){return false}var B=/^[\-\+]?\d*$/;if(!B.test(D)){return false}C=C||{allowNegative:false};var A=parseInt(D,10);if(!isNaN(A)){var E=true;if(typeof C.allowNegative!="undefined"&&C.allowNegative==false){E=false}if(!E&&D<0){A=false}}else{A=false}return A}},real:{characterMasking:/[\d\.,\-\+e]/i,regExpFilter:/^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,validation:function(D,C){var B=/^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/;if(!B.test(D)){return false}var A=parseFloat(D);if(isNaN(A)){A=false}return A}},currency:{formats:{dot_comma:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,validation:function(C,B){var A=false;if(/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(C)||/^(\-|\+)?\d+(?:\,\d{2}|)$/.test(C)){C=C.toString().replace(/\./gi,"").replace(/\,/,".");A=parseFloat(C)}return A}},comma_dot:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,validation:function(C,B){var A=false;if(/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(C)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(C)){C=C.toString().replace(/\,/gi,"");A=parseFloat(C)}return A}}}},email:{characterMasking:/[^\s]/,validation:function(B,A){var C=/^[\w\.-]+@[\w\.-]+\.\w+$/i;return C.test(B)}},date:{validation:function(J,N){var I=/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;var F=this.dateValidationPattern;var A=N.format.match(I);var K=J.match(F);if(A!==null&&K!==null){var B=-1;var E=-1;var C=-1;for(var G=1;G<A.length;G++){switch(A[G].toLowerCase()){case"dd":B=G;break;case"mm":E=G;break;case"yy":case"yyyy":C=G;break}}if(B!=-1&&E!=-1&&C!=-1){var H=-1;var M=parseInt(K[B],10);var L=parseInt(K[E],10);var D=parseInt(K[C],10);if(L<1||L>12){return false}switch(L){case 1:case 3:case 5:case 7:case 8:case 10:case 12:H=31;break;case 4:case 6:case 9:case 11:H=30;break;case 2:if((parseInt(D/4,10)*4==D)&&(D%100!=0||D%400==0)){H=29}else{H=28}break}if(M<1||M>H){return false}return(new Date(D,L-1,M))}}else{return false}}},time:{validation:function(L,P){var G=/([hmst]+)/gi;var E=/(\d+|AM?|PM?)/gi;var A=P.format.match(G);var O=L.match(E);if(A!==null&&O!==null){if(A.length!=O.length){return false}var M=-1;var D=-1;var B=-1;var N=-1;var K=0,J=0,I=0,H="AM";for(var F=0;F<A.length;F++){switch(A[F].toLowerCase()){case"hh":M=F;break;case"mm":D=F;break;case"ss":B=F;break;case"t":case"tt":N=F;break}}if(M!=-1){var K=parseInt(O[M],10);if(isNaN(K)||K>(A[M]=="HH"?23:12)){return false}}if(D!=-1){var J=parseInt(O[D],10);if(isNaN(J)||J>59){return false}}if(B!=-1){var I=parseInt(O[B],10);if(isNaN(I)||I>59){return false}}if(N!=-1){var H=O[N].toUpperCase();if(A[N].toUpperCase()=="TT"&&!/^a|pm$/i.test(H)||A[N].toUpperCase()=="T"&&!/^a|p$/i.test(H)){return false}}var C=new Date(2000,0,1,K+(H.charAt(0)=="P"?12:0),J,I);return C}else{return false}}},credit_card:{characterMasking:/\d/,validation:function(G,C){var B=null;C.format=C.format||"ALL";switch(C.format.toUpperCase()){case"ALL":B=/^[3-6]{1}[0-9]{12,18}$/;break;case"VISA":B=/^4(?:[0-9]{12}|[0-9]{15})$/;break;case"MASTERCARD":B=/^5[1-5]{1}[0-9]{14}$/;break;case"AMEX":B=/^3(4|7){1}[0-9]{13}$/;break;case"DISCOVER":B=/^6011[0-9]{12}$/;break;case"DINERSCLUB":B=/^3(?:(0[0-5]{1}[0-9]{11})|(6[0-9]{12})|(8[0-9]{12}))$/;break}if(!B.test(G)){return false}var F=[];var A=1,H="";for(var D=G.length-1;D>=0;D--){if((A%2)==0){H=parseInt(G.charAt(D),10)*2;F[F.length]=H.toString().charAt(0);if(H.toString().length==2){F[F.length]=H.toString().charAt(1)}}else{H=G.charAt(D);F[F.length]=H}A++}var E=0;for(D=0;D<F.length;D++){E+=parseInt(F[D],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(B,A){return/^[A-Z]{1,2}\d[\dA-Z]?\s?\d[A-Z]{2}$/.test(B)}},zip_canada:{characterMasking:/[\dA-Z\s]/,pattern:"A0A 0A0"},zip_custom:{}}},phone_number:{formats:{phone_us:{pattern:"(000) 000-0000"},phone_custom:{}}},social_security_number:{pattern:"000-00-0000"},ip:{characterMaskingFormats:{ipv4:/[\d\.]/i,ipv6_ipv4:/[\d\.\:A-F\/]/i,ipv6:/[\d\.\:A-F\/]/i},validation:function(B,A){return Spry.Widget.ValidationTextField.validateIP(B,A.format)}},url:{characterMasking:/[^\s]/,validation:function(G,J){var B=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var C=G.match(B);if(C&&C[4]){var I=C[4].split(".");var H="";for(var D=0;D<I.length;D++){H=Spry.Widget.Utils.punycode_encode(I[D],64);if(!H){return false}else{if(H!=(I[D]+"-")){I[D]="xn--"+H}}}I=I.join(".");G=G.replace(B,"$1//"+I+"$5$6$8")}var E=/^(?: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 A=G.match(E);if(A){var F=A[1];if(F){if(F=="[]"){return false}if(F.charAt(0)=="["){F=F.replace(/^\[|\]$/gi,"");return Spry.Widget.ValidationTextField.validateIP(F,"ipv6_ipv4")}else{if(/[^0-9\.]/.test(F)){return true}else{return Spry.Widget.ValidationTextField.validateIP(F,"ipv4")}}}else{return true}}else{return false}}}};Spry.Widget.ValidationTextField.validateIP=function(J,I){var M=[/^(?:[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 A=[/^(\d{1,3}\.){3}\d{1,3}$/i];var F=[];if(I=="ipv6"||I=="ipv6_ipv4"){F=F.concat(M)}if(I=="ipv4"||I=="ipv6_ipv4"){F=F.concat(A)}var E=false;for(var C=0;C<F.length;C++){if(F[C].test(J)){E=true;break}}if(E&&J.indexOf(".")!=-1){var G=J.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);if(!G){return false}G=G[0].replace(/^:/,"");var B=G.split(".");if(B.length!=4){return false}var H=/^[\-\+]?\d*$/;for(var C=0;C<B.length;C++){if(B[C]==""){return false}var L=parseInt(B[C],10);if(isNaN(L)||L>255||!H.test(B[C])||B[C].length>3||/^0{2,3}$/.test(B[C])){return false}}}if(E&&J.indexOf("/")!=-1){var K=J.match(/\/\d{1,3}$/);if(!K){return false}var D=parseInt(K[0].replace(/^\//,""),10);if(isNaN(D)||D>128||D<1){return false}}return E};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];break}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 B=0;B<this.event_handlers.length;B++){Spry.Widget.Utils.removeEventListener(this.event_handlers[B][0],this.event_handlers[B][1],this.event_handlers[B][2],false)}}try{delete this.element}catch(C){}try{delete this.input}catch(C){}try{delete this.form}catch(C){}try{delete this.event_handlers}catch(C){}try{this.selection.destroy()}catch(C){}try{delete this.selection}catch(C){}var D=Spry.Widget.Form.onSubmitWidgetQueue;var A=D.length;for(var B=0;B<A;B++){if(D[B]==this){D.splice(B,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(D){if(A.isDisabled()){return true}return A.onKeyDown(D||event)}]);this.event_handlers.push([this.input,"keypress",function(D){if(A.isDisabled()){return true}return A.onKeyPress(D||event)}]);if(Spry.is.opera){this.event_handlers.push([this.input,"keyup",function(D){if(A.isDisabled()){return true}return A.onKeyUp(D||event)}])}this.event_handlers.push([this.input,"focus",function(D){if(A.isDisabled()){return true}return A.onFocus(D||event)}]);this.event_handlers.push([this.input,"blur",function(D){if(A.isDisabled()){return true}return A.onBlur(D||event)}]);this.event_handlers.push([this.input,"mousedown",function(D){if(A.isDisabled()){return true}return A.onMouseDown(D||event)}]);var C=Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change";this.event_handlers.push([this.input,C,function(D){if(A.isDisabled()){return true}return A.onChange(D||event)}]);if(Spry.is.mozilla||Spry.is.safari){this.event_handlers.push([this.input,"dragdrop",function(D){if(A.isDisabled()){return true}A.removeHint();return A.onChange(D||event)}])}else{if(Spry.is.ie){this.event_handlers.push([this.input,"drop",function(D){if(A.isDisabled()){return true}return A.onDrop(D||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(D){D=D||event;return Spry.Widget.Form.onSubmit(D,D.srcElement||D.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(D){D=D||event;return Spry.Widget.Form.onReset(D,D.srcElement||D.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};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(C){Spry.Widget.ValidationTextField.onloadDidFire=true;var D=Spry.Widget.ValidationTextField.loadQueue;var A=D.length;for(var B=0;B<A;B++){D[B].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(G,F){if(this.isDisabled()){return false}if(this.flags.locked){return false}if(G.length==0&&!this.isRequired){this.errors=0;return false}this.flags.locked=true;var C=false;var L=true;if(!this.options.isRequired&&G.length==0){L=false}var K=0;var I=G;if(this.useCharacterMasking&&this.characterMasking){for(var D=0;D<G.length;D++){if(!this.characterMasking.test(G.charAt(D))){K=K|Spry.Widget.ValidationTextField.ERROR_FORMAT;I=F;C=true;break}}}if(!C&&this.useCharacterMasking&&this.regExpFilter){if(!this.regExpFilter.test(I)){K=K|Spry.Widget.ValidationTextField.ERROR_FORMAT;C=true}}if(!C&&this.pattern){var B=this.patternToRegExp(G.length);if(!B.test(G)){K=K|Spry.Widget.ValidationTextField.ERROR_FORMAT;C=true}else{if(this.patternLength!=G.length){K=K|Spry.Widget.ValidationTextField.ERROR_FORMAT}}}if(I==""){K=K|Spry.Widget.ValidationTextField.ERROR_REQUIRED}if(!C&&this.pattern&&this.useCharacterMasking){var A=this.getAutoComplete(G.length);if(A){I+=A}}if(!C&&this.minChars!==null&&L){if(G.length<this.minChars){K=K|Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;L=false}}if(!C&&this.maxChars!==null&&L){if(G.length>this.maxChars){K=K|Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;L=false}}if(!C&&this.validation&&L){var J=this.validation(I,this.options);if(false===J){K=K|Spry.Widget.ValidationTextField.ERROR_FORMAT;L=false}else{this.typedValue=J}}if(!C&&this.validation&&this.minValue!==null&&L){var H=this.validation(this.minValue.toString(),this.options);if(H!==false){if(this.typedValue<H){K=K|Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;L=false}}}if(!C&&this.validation&&this.maxValue!==null&&L){var E=this.validation(this.maxValue.toString(),this.options);if(E!==false){if(this.typedValue>E){K=K|Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;L=false}}}if(this.useCharacterMasking&&C){this.revertState(F)}this.errors=K;this.fixedValue=I;this.flags.locked=false;return C};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 D="";var F=[];var B=[];var E=[];var A=/^([mdy]+)([\.\-\/\\\s]+)([mdy]+)([\.\-\/\\\s]+)([mdy]+)$/i;var G=this.options.format.match(A);if(G!==null){for(var C=1;C<G.length;C++){switch(G[C].toLowerCase()){case"dd":F[C-1]="\\d{1,2}";B[C-1]="\\d\\d";D+="("+F[C-1]+")";E[C-1]=null;break;case"mm":F[C-1]="\\d{1,2}";B[C-1]="\\d\\d";D+="("+F[C-1]+")";E[C-1]=null;break;case"yy":F[C-1]="\\d{1,2}";B[C-1]="\\d\\d";D+="(\\d\\d)";E[C-1]=null;break;case"yyyy":F[C-1]="\\d{1,4}";B[C-1]="\\d\\d\\d\\d";D+="(\\d\\d\\d\\d)";E[C-1]=null;break;default:F[C-1]=B[C-1]=Spry.Widget.ValidationTextField.regExpFromChars(G[C]);D+="["+F[C-1]+"]";E[C-1]=G[C]}}}this.dateValidationPattern=new RegExp("^"+D+"$","");this.dateAutocompleteCharacters=E;this.dateGroupPatterns=F;this.dateFullGroupPatterns=B;this.lastDateGroup=G.length-2};Spry.Widget.ValidationTextField.prototype.getRegExpForGroup=function(C){var B="^";for(var A=0;A<=C;A++){B+=this.dateGroupPatterns[A]}B+="$";return new RegExp(B,"")};Spry.Widget.ValidationTextField.prototype.getRegExpForFullGroup=function(C){var B="^";for(var A=0;A<C;A++){B+=this.dateGroupPatterns[A]}B+=this.dateFullGroupPatterns[C];return new RegExp(B,"")};Spry.Widget.ValidationTextField.prototype.getDateGroup=function(C,D){if(D==0){return 0}var A=C.substring(0,D);for(var B=0;B<=this.lastDateGroup;B++){if(this.getRegExpForGroup(B).test(A)){return B}}return -1};Spry.Widget.ValidationTextField.prototype.isDateGroupFull=function(A,B){return this.getRegExpForFullGroup(B).test(A)};Spry.Widget.ValidationTextField.prototype.isValueValid=function(B,D,C){var A=B.substring(0,D);return this.getRegExpForGroup(C).test(A)};Spry.Widget.ValidationTextField.prototype.isPositionAtEndOfGroup=function(B,D,C){var A=B.substring(0,D);return this.getRegExpForFullGroup(C).test(A)};Spry.Widget.ValidationTextField.prototype.nextDateDelimiterExists=function(C,E,D){var B=this.dateAutocompleteCharacters[D+1];if(C.length<E+B.length){return false}else{var A=C.substring(E,E+B.length);if(A==B){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 B=this.doValidations(this.input.value,this.input.value);if(B){return true}}var C=Spry.Widget.Utils.getCharacterFromEvent(E);if(C&&this.characterMasking){if(!this.characterMasking.test(C)){Spry.Widget.Utils.stopEvent(E);this.redTextFlash();return false}}if(C&&this.pattern){var F=this.patternCharacters[this.selection.start];if(/[ax]/i.test(F)){if(F.toLowerCase()==F){C=C.toLowerCase()}else{C=C.toUpperCase()}}var A=this.getAutoComplete(this.selection.start);if(this.selection.start==this.oldValue.length){if(this.oldValue.length<this.patternLength){if(A){Spry.Widget.Utils.stopEvent(E);var J=this.oldValue.substring(0,this.selection.start)+A+C;var D=this.doValidations(J,this.oldValue);if(!D){this.setValue(this.fixedValue);this.selection.moveTo(this.fixedValue.length,this.fixedValue.length)}else{this.setValue(this.oldValue.substring(0,this.selection.start)+A);this.selection.moveTo(this.selection.start+A.length,this.selection.start+A.length)}return false}}else{Spry.Widget.Utils.stopEvent(E);this.setValue(this.input.value);return false}}else{if(A){Spry.Widget.Utils.stopEvent(E);this.selection.moveTo(this.selection.start+A.length,this.selection.start+A.length);return false}}Spry.Widget.Utils.stopEvent(E);var J=this.oldValue.substring(0,this.selection.start)+C+this.oldValue.substring(this.selection.start+1);var D=this.doValidations(J,this.oldValue);if(!D){A=this.getAutoComplete(this.selection.start+1);this.setValue(this.fixedValue);this.selection.moveTo(this.selection.start+1+A.length,this.selection.start+1+A.length)}else{this.selection.moveTo(this.selection.start,this.selection.start)}return false}if(C&&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 A=this.dateAutocompleteCharacters[H+1];if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,H)){var A=this.dateAutocompleteCharacters[H+1];this.selection.moveTo(this.selection.start+A.length,this.selection.start+A.length);if(C==A){return false}if(this.isDateGroupFull(this.oldValue,H+2)){J=this.oldValue.substring(0,this.selection.start)+C+this.oldValue.substring(this.selection.start+1)}else{J=this.oldValue.substring(0,this.selection.start)+C+this.oldValue.substring(this.selection.start)}if(!this.isValueValid(J,this.selection.start+1,H+2)){this.redTextFlash();return false}else{this.setValue(J);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}return false}else{var A=this.dateAutocompleteCharacters[H+1];var I=A+C;J=this.oldValue.substring(0,this.selection.start)+I+this.oldValue.substring(this.selection.start);if(!this.isValueValid(J,this.selection.start+I.length,H+2)){I=A;J=this.oldValue.substring(0,this.selection.start)+I+this.oldValue.substring(this.selection.start);this.setValue(J);this.selection.moveTo(this.selection.start+I.length,this.selection.start+I.length);this.redTextFlash();return false}else{this.setValue(J);this.selection.moveTo(this.selection.start+I.length,this.selection.start+I.length);return false}}}}else{var G=1;J=this.oldValue.substring(0,this.selection.start)+C+this.oldValue.substring(this.selection.start+1);if(!this.isValueValid(J,this.selection.start+1,H)){this.redTextFlash();return false}else{if(this.isPositionAtEndOfGroup(J,this.selection.start+1,H)){if(H!=this.lastDateGroup){if(this.nextDateDelimiterExists(J,this.selection.start+1,H)){var A=this.dateAutocompleteCharacters[H+1];G=1+A.length}else{var A=this.dateAutocompleteCharacters[H+1];J=this.oldValue.substring(0,this.selection.start)+C+A+this.oldValue.substring(this.selection.start+1);G=1+A.length}}}this.setValue(J);this.selection.moveTo(this.selection.start+G,this.selection.start+G);return false}}}else{J=this.oldValue.substring(0,this.selection.start)+C+this.oldValue.substring(this.selection.start);var G=1;if(!this.isValueValid(J,this.selection.start+1,H)&&!this.isValueValid(J,this.selection.start+1,H+1)){this.redTextFlash();return false}else{var A=this.dateAutocompleteCharacters[H+1];if(C==A){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,H)){J=this.oldValue;G=1}}else{if(this.isPositionAtEndOfGroup(J,this.selection.start+1,H)){if(H!=this.lastDateGroup){if(this.nextDateDelimiterExists(J,this.selection.start+1,H)){var A=this.dateAutocompleteCharacters[H+1];G=1+A.length}else{var A=this.dateAutocompleteCharacters[H+1];J=this.oldValue.substring(0,this.selection.start)+C+A+this.oldValue.substring(this.selection.start+1);G=1+A.length}}}}this.setValue(J);this.selection.moveTo(this.selection.start+G,this.selection.start+G);return false}}}return false}};Spry.Widget.ValidationTextField.prototype.onKeyDown=function(D){this.saveState();this.keyCode=D.keyCode;if(Spry.is.opera){if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}if(D.ctrlKey){var C=Spry.Widget.Utils.getCharacterFromEvent(D);if(C&&"vx".indexOf(C.toLowerCase())!=-1){var A=this;this.flags.operaPasteOperation=window.setInterval(function(){A.operaPasteMonitor()},1);return true}}}if(this.keyCode!=8&&this.keyCode!=46&&Spry.Widget.Utils.isSpecialKey(D)){return true}if(this.keyCode==8||this.keyCode==46){var B=this.doValidations(this.input.value,this.input.value);if(B){return true}}if(this.useCharacterMasking&&this.pattern&&this.keyCode==46){if(D.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(D);return false}if(this.useCharacterMasking&&this.pattern&&!D.ctrlKey&&this.keyCode==8){if(this.selection.start==this.input.value.length){var E=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-E.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-E.length;this.selection.end=this.selection.end-1-E.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(D);return false}return true};Spry.Widget.ValidationTextField.prototype.onMouseDown=function(A){if(this.flags.active){this.saveState()}};Spry.Widget.ValidationTextField.prototype.onDrop=function(A){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(B){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(C){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 E=[];var B=[];var F=[];var A=0;var G="",D="";for(var C=0;C<this.pattern.length;C++){G=this.pattern.charAt(C);if(D=="\\"){if(/[0ABXY\?]/i.test(G)){B[A-1]=G}else{B[A-1]=Spry.Widget.ValidationTextField.regExpFromChars(G)}E[A-1]=G;F[A-1]=null;D="";continue}B[A]=Spry.Widget.ValidationTextField.regExpFromChars(G);if(/[0ABXY\?]/i.test(G)){E[A]=null;F[A]=G}else{if(G=="\\"){E[A]=G;F[A]="\\"}else{E[A]=G;F[A]=null}}A++;D=G}this.autoCompleteCharacters=E;this.compiledPattern=B;this.patternCharacters=F;this.patternLength=E.length};Spry.Widget.ValidationTextField.prototype.getAutoComplete=function(G,D){if(D==-1){var F="",A="";while(G&&(F=this.getAutoComplete(--G))){A=F}return A}var B="",E="";for(var C=G;C<this.autoCompleteCharacters.length;C++){E=this.autoCompleteCharacters[C];if(E){B+=E}else{break}}return B};Spry.Widget.ValidationTextField.regExpFromChars=function(B){var A="",D="";for(var C=0;C<B.length;C++){D=B.charAt(C);switch(D){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+=D;break;case"c":case"C":case"e":case"E":case"f":case"F":case"r":case"d":case"D":case"n":case"s":case"S":case"w":case"W":case"t":case"v":A+=D;break;default:A+="\\"+D}}return A};Spry.Widget.ValidationTextField.prototype.patternToRegExp=function(A){var C="^";var B=Math.min(this.compiledPattern.length,A);for(var D=0;D<B;D++){C+=this.compiledPattern[D]}C+="$";C=new RegExp(C,"");return C};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(B,A){if(!B||!A||(B.className&&B.className.search(new RegExp("\\b"+A+"\\b"))!=-1)){return }B.className+=(B.className?" ":"")+A};Spry.Widget.ValidationTextField.prototype.removeClassName=function(B,A){if(!B||!A||(B.className&&B.className.search(new RegExp("\\b"+A+"\\b"))==-1)){return }B.className=B.className.replace(new RegExp("\\s*\\b"+A+"\\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 F=A.createRange()}catch(B){return }if(F.parentElement()==this.element){var C=this.element.ownerDocument.body.createTextRange();C.moveToElementText(this.element);for(var G=0;C.compareEndPoints("StartToStart",F)<0;G++){C.moveStart("character",1)}this.start=G;C=this.element.ownerDocument.body.createTextRange();C.moveToElementText(this.element);for(var D=0;C.compareEndPoints("StartToEnd",F)<0;D++){C.moveStart("character",1)}this.end=D;this.length=this.end-this.start;this.text=F.text}}}else{if(this.element.nodeName=="INPUT"){try{this.range=A.createRange()}catch(B){return }this.length=this.range.text.length;var H=this.range.duplicate();this.start=-H.moveStart("character",-10000);H=this.range.duplicate();H.collapse(false);this.end=-H.moveStart("character",-10000);this.text=this.range.text}}}else{var E=this.element;var I=0;var J=0;try{I=E.selectionStart}catch(B){}try{J=E.selectionEnd}catch(B){}if(Spry.is.safari){if(I==2147483647){I=0}if(J==2147483647){J=0}}this.start=I;this.end=J;this.length=J-I;this.text=this.element.value.substring(I,J)}};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(F,A){if(Spry.is.ie&&Spry.is.windows){if(this.element.nodeName=="TEXTAREA"){var E=this.element.createTextRange();this.range=this.element.createTextRange();this.range.move("character",F);this.range.moveEnd("character",A-F);var C=this.range.compareEndPoints("StartToStart",E);if(C<0){this.range.setEndPoint("StartToStart",E)}var B=this.range.compareEndPoints("EndToEnd",E);if(B>0){this.range.setEndPoint("EndToEnd",E)}}else{if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();this.range.move("character",-10000);this.start=this.range.moveStart("character",F);this.end=this.start+this.range.moveEnd("character",A-F)}}this.range.select()}else{this.start=F;try{this.element.selectionStart=F}catch(D){}this.end=A;try{this.element.selectionEnd=A}catch(D){}}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(F){var E=true;var D=true;var C=Spry.Widget.Form.onSubmitWidgetQueue;var A=C.length;for(var B=0;B<A;B++){if(!C[B].isDisabled()&&C[B].form==F){D=C[B].validate();E=D&&E}}return E}}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(D,E){var C=Spry.Widget.Form.onSubmitWidgetQueue;var A=C.length;for(var B=0;B<A;B++){if(!C[B].isDisabled()&&C[B].form==E&&typeof (C[B].reset)=="function"){C[B].reset()}}return true}}if(!Spry.Widget.Form.destroy){Spry.Widget.Form.destroy=function(B){var C=Spry.Widget.Form.onSubmitWidgetQueue;for(var A=0;A<Spry.Widget.Form.onSubmitWidgetQueue.length;A++){if(C[A].form==B&&typeof (C[A].destroy)=="function"){C[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(D,C,B){D=B?D/this.punycode_constants.damp:D>>1;D+=D/C;for(var A=0;D>((this.punycode_constants.base-this.punycode_constants.tmin)*this.punycode_constants.tmax)/2;A+=this.punycode_constants.base){D/=this.punycode_constants.base-this.punycode_constants.tmin}return A+(this.punycode_constants.base-this.punycode_constants.tmin+1)*D/(D+this.punycode_constants.skew)};Spry.Widget.Utils.punycode_encode=function(N,B){var D=N.split("");N=[];for(var J=0;J<D.length;J++){N.push(D[J].charCodeAt(0))}var E="";var K,M,I,F,A,G,Q;var P=N.length;var C=this.punycode_constants.initial_n;var O=0;var L=this.punycode_constants.initial_bias;var H=0;for(I=0;I<P;I++){if(N[I]<128){if(B-H<2){return false}E+=String.fromCharCode(N[I]);H++}}K=M=H;if(M>0){E+=String.fromCharCode(this.punycode_constants.delimiter);H++}while(K<P){for(F=this.punycode_constants.maxint,I=0;I<P;I++){if(N[I]>=C&&N[I]<F){F=N[I]}}if(F-C>(this.punycode_constants.maxint-O)/(K+1)){return false}O+=(F-C)*(K+1);C=F;for(I=0;I<P;I++){if(N[I]<C){if(++O==0){return false}}if(N[I]==C){for(A=O,G=this.punycode_constants.base;true;G+=this.punycode_constants.base){if(H>=B){return false}Q=G<=L?this.punycode_constants.tmin:G>=L+this.punycode_constants.tmax?this.punycode_constants.tmax:G-L;if(A<Q){break}E+=this.punycode_encode_digit(Q+(A-Q)%(this.punycode_constants.base-Q));H++;A=(A-Q)/(this.punycode_constants.base-Q)}E+=this.punycode_encode_digit(A);H++;L=this.punycode_adapt(O,K+1,K==M);O=0;K++}}O++,C++}return E};Spry.Widget.Utils.setOptions=function(D,C,A){if(!C){return }for(var B in C){if(A&&C[B]==undefined){continue}D[B]=C[B]}};Spry.Widget.Utils.firstValid=function(){var A=null;for(var B=0;B<Spry.Widget.Utils.firstValid.arguments.length;B++){if(typeof (Spry.Widget.Utils.firstValid.arguments[B])!="undefined"){A=Spry.Widget.Utils.firstValid.arguments[B];break}}return A};Spry.Widget.Utils.specialCharacters=",8,9,16,17,18,20,27,33,34,35,36,37,38,40,45,144,192,63232,";Spry.Widget.Utils.specialSafariNavKeys="63232,63233,63234,63235,63272,63273,63275,63276,63277,63289,";Spry.Widget.Utils.specialNotSafariCharacters="39,46,91,92,93,";Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialSafariNavKeys;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(D){var A=D.type=="keydown";var B=null;var C=null;if(Spry.is.mozilla&&!A){if(D.charCode){C=String.fromCharCode(D.charCode)}else{B=D.keyCode}}else{B=D.keyCode||D.which;if(B!=13){C=String.fromCharCode(B)}}if(Spry.is.safari){if(A){B=D.keyCode||D.which;C=String.fromCharCode(B)}else{B=D.keyCode||D.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,C){var B=A.getElementsByTagName(C);if(B){return B[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 C=Spry.Widget.Form.onSubmitWidgetQueue;for(var B=0;B<Spry.Widget.Form.onSubmitWidgetQueue.length;B++){if(typeof (C[B].destroy)=="function"&&Spry.Widget.Utils.contains(A,C[B].element)){C[B].destroy();B--}}};Spry.Widget.Utils.contains=function(B,C){if(typeof B.contains=="object"){return C&&B&&(B==C||B.contains(C))}else{var A=C;while(A){if(A==B){return true}A=A.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(C,B,D,A){try{if(C.addEventListener){C.addEventListener(B,D,A)}else{if(C.attachEvent){C.attachEvent("on"+B,D,A)}}}catch(E){}};Spry.Widget.Utils.removeEventListener=function(C,B,D,A){try{if(C.removeEventListener){C.removeEventListener(B,D,A)}else{if(C.detachEvent){C.detachEvent("on"+B,D,A)}}}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}};
