// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   * Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//   * Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//   * Neither the name of Adobe Systems Incorporated nor the names of its
//     contributors may be used to endorse or promote products derived from this
//     software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE
var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.BrowserSniff=function(){var i=navigator.appName.toString();var e=navigator.platform.toString();var c=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var g=/Opera.([0-9\.]*)/i;var d=/MSIE.([0-9\.]*)/i;var f=/gecko/i;var h=/(applewebkit|safari)\/([\d\.]*)/i;var a=false;if((a=c.match(g))){this.opera=true;this.version=parseFloat(a[1])}else{if((a=c.match(d))){this.ie=true;this.version=parseFloat(a[1])}else{if((a=c.match(h))){this.safari=true;this.version=parseFloat(a[2])}else{if(c.match(f)){var j=/rv:\s*([0-9\.]+)/i;a=c.match(j);this.mozilla=true;this.version=parseFloat(a[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();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,f){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&&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.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.getFirstChildWithNodeNameAtAnyLevel=function(a,c){var b=a.getElementsByTagName(c);if(b){return b[0]}return null};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.specialSafariNavKeys=",63232,63233,63234,63235,63272,63273,63275,63276,63277,63289,";Spry.Widget.Utils.specialNotSafariCharacters="39,46,91,92,93,";Spry.Widget.Utils.specialCharacters=",8,9,16,17,18,20,27,33,34,35,36,37,38,39,40,45,46,91,92,93,144,192,63232,";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.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(w,c){var e=w.split("");w=[];for(var r=0;r<e.length;r++){w.push(e[r].charCodeAt(0))}var f="";var s,v,p,g,a,l,z;var y=w.length;var d=this.punycode_constants.initial_n;var x=0;var u=this.punycode_constants.initial_bias;var o=0;for(p=0;p<y;p++){if(w[p]<128){if(c-o<2){return false}f+=String.fromCharCode(w[p]);o++}}s=v=o;if(v>0){f+=String.fromCharCode(this.punycode_constants.delimiter);o++}while(s<y){for(g=this.punycode_constants.maxint,p=0;p<y;p++){if(w[p]>=d&&w[p]<g){g=w[p]}}if(g-d>(this.punycode_constants.maxint-x)/(s+1)){return false}x+=(g-d)*(s+1);d=g;for(p=0;p<y;p++){if(w[p]<d){if(++x==0){return false}}if(w[p]==d){for(a=x,l=this.punycode_constants.base;true;l+=this.punycode_constants.base){if(o>=c){return false}z=l<=u?this.punycode_constants.tmin:l>=u+this.punycode_constants.tmax?this.punycode_constants.tmax:l-u;if(a<z){break}f+=this.punycode_encode_digit(z+(a-z)%(this.punycode_constants.base-z));o++;a=(a-z)/(this.punycode_constants.base-z)}f+=this.punycode_encode_digit(a);o++;u=this.punycode_adapt(x,s+1,s==v);x=0;s++}}x++,d++}return f};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(f){}};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(f){}};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.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.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}};var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.ValidationRadio=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.ValidationRadio.ONSUBMIT:0);this.validateOn=this.validateOn|(c.indexOf("blur")!=-1?Spry.Widget.ValidationRadio.ONBLUR:0);this.validateOn=this.validateOn|(c.indexOf("change")!=-1?Spry.Widget.ValidationRadio.ONCHANGE:0);if(this.additionalError){this.additionalError=this.getElement(this.additionalError)}if(Spry.Widget.ValidationRadio.onloadDidFire){this.attachBehaviors()}else{Spry.Widget.ValidationRadio.loadQueue.push(this)}};Spry.Widget.ValidationRadio.ONCHANGE=1;Spry.Widget.ValidationRadio.ONBLUR=2;Spry.Widget.ValidationRadio.ONSUBMIT=4;Spry.Widget.ValidationRadio.prototype.init=function(a){this.element=this.getElement(a);this.additionalError=false;this.radioElements=null;this.form=null;this.event_handlers=[];this.requiredClass="radioRequiredState";this.focusClass="radioFocusState";this.invalidClass="radioInvalidState";this.validClass="radioValidState";this.emptyValue="";this.invalidValue=null;this.isRequired=true;this.validateOn=["submit"]};Spry.Widget.ValidationRadio.onloadDidFire=false;Spry.Widget.ValidationRadio.loadQueue=[];Spry.Widget.ValidationRadio.prototype.getElement=function(a){if(a&&typeof a=="string"){return document.getElementById(a)}return a};Spry.Widget.ValidationRadio.processLoadQueue=function(c){Spry.Widget.ValidationRadio.onloadDidFire=true;var d=Spry.Widget.ValidationRadio.loadQueue;var a=d.length;for(var b=0;b<a;b++){d[b].attachBehaviors()}};Spry.Widget.ValidationRadio.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.ValidationRadio.addLoadListener(Spry.Widget.ValidationRadio.processLoadQueue);Spry.Widget.ValidationRadio.addLoadListener(function(){Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false)});Spry.Widget.ValidationRadio.prototype.attachBehaviors=function(){if(!this.element){return}if(this.element.nodeName=="INPUT"){this.radioElements=[this.element]}else{this.radioElements=this.getRadios()}if(this.radioElements){var b=this;this.event_handlers=[];var a=this.radioElements.length;for(var c=0;c<a;c++){this.event_handlers.push([this.radioElements[c],"focus",function(d){return b.onFocus(d)}]);this.event_handlers.push([this.radioElements[c],"blur",function(d){return b.onBlur(d)}]);if(this.validateOn&Spry.Widget.ValidationRadio.ONCHANGE){this.event_handlers.push([this.radioElements[c],"click",function(d){return b.onClick(d)}])}}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.element,"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.ValidationRadio.prototype.getRadios=function(){var b;var d=this.element.getElementsByTagName("INPUT");if(d.length){b=[];var a=d.length;for(var c=0;c<a;c++){if(d[c].getAttribute("type").toLowerCase()=="radio"){b.push(d[c])}}return b}return null};Spry.Widget.ValidationRadio.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.ValidationRadio.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.ValidationRadio.prototype.onFocus=function(b){var a=(b.srcElement!=null)?b.srcElement:b.target;if(a.disabled){return}this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationRadio.prototype.onBlur=function(c){var b=(c.srcElement!=null)?c.srcElement:c.target;if(b.disabled){return}var a=false;if(this.validateOn&Spry.Widget.ValidationRadio.ONBLUR){a=true}if(a){this.validate()}this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationRadio.prototype.onClick=function(b){var a=(b.srcElement!=null)?b.srcElement:b.target;if(a.disabled){return}this.validate()};Spry.Widget.ValidationRadio.prototype.reset=function(){this.removeClassName(this.element,this.validClass);this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidClass);this.removeClassName(this.additionalError,this.validClass);this.removeClassName(this.additionalError,this.requiredClass);this.removeClassName(this.additionalError,this.invalidClass)};Spry.Widget.ValidationRadio.prototype.validate=function(){this.reset();var e=0;var c=0;var d=0;if(this.radioElements){var a=this.radioElements.length;for(var b=0;b<a;b++){if(!this.radioElements[b].disabled&&this.radioElements[b].checked){if(this.radioElements[b].value==this.emptyValue){d++}else{if(this.invalidValue&&this.radioElements[b].value==this.invalidValue){c++}else{e++}}}}}if(this.invalidValue&&c!=0){this.addClassName(this.element,this.invalidClass);this.addClassName(this.additionalError,this.invalidClass);return false}if(this.isRequired&&(e==0||d!=0)){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}this.addClassName(this.element,this.validClass);this.addClassName(this.additionalError,this.validClass);return true};Spry.Widget.ValidationRadio.prototype.isDisabled=function(){var b=true;if(this.radioElements){var a=this.radioElements.length;for(var c=0;c<a;c++){if(!this.radioElements[c].disabled){b=false;break}}}return b};Spry.Widget.ValidationRadio.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){}if(this.radioElements){for(var b=0;b<this.radioElements.length;b++){try{delete this.radioElements[b]}catch(c){}}}try{delete this.radioElements}catch(c){}try{delete this.form}catch(c){}try{delete this.event_handlers}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.ValidationSelect=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.ValidationSelect.ONSUBMIT:0);this.validateOn=this.validateOn|(c.indexOf("blur")!=-1?Spry.Widget.ValidationSelect.ONBLUR:0);this.validateOn=this.validateOn|(c.indexOf("change")!=-1?Spry.Widget.ValidationSelect.ONCHANGE:0);if(this.additionalError){this.additionalError=this.getElement(this.additionalError)}if(Spry.Widget.ValidationSelect.onloadDidFire){this.attachBehaviors()}else{Spry.Widget.ValidationSelect.loadQueue.push(this)}};Spry.Widget.ValidationSelect.ONCHANGE=1;Spry.Widget.ValidationSelect.ONBLUR=2;Spry.Widget.ValidationSelect.ONSUBMIT=4;Spry.Widget.ValidationSelect.prototype.init=function(a){this.element=this.getElement(a);this.additionalError=false;this.selectElement=null;this.form=null;this.event_handlers=[];this.requiredClass="selectRequiredState";this.invalidClass="selectInvalidState";this.focusClass="selectFocusState";this.validClass="selectValidState";this.emptyValue="";this.invalidValue=null;this.isRequired=true;this.validateOn=["submit"];this.validatedByOnChangeEvent=false};Spry.Widget.ValidationSelect.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.selectElement}catch(c){}try{delete this.form}catch(c){}try{delete this.event_handlers}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.ValidationSelect.onloadDidFire=false;Spry.Widget.ValidationSelect.loadQueue=[];Spry.Widget.ValidationSelect.prototype.getElement=function(a){if(a&&typeof a=="string"){return document.getElementById(a)}return a};Spry.Widget.ValidationSelect.processLoadQueue=function(c){Spry.Widget.ValidationSelect.onloadDidFire=true;var d=Spry.Widget.ValidationSelect.loadQueue;var a=d.length;for(var b=0;b<a;b++){d[b].attachBehaviors()}};Spry.Widget.ValidationSelect.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.ValidationSelect.addLoadListener(Spry.Widget.ValidationSelect.processLoadQueue);Spry.Widget.ValidationSelect.addLoadListener(function(){Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false)});Spry.Widget.ValidationSelect.prototype.attachBehaviors=function(){if(this.element.nodeName=="SELECT"){this.selectElement=this.element}else{this.selectElement=Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element,"SELECT")}if(this.selectElement){var a=this;this.event_handlers=[];var d="focus";var c=navigator.userAgent.match(/msie (\d+)\./i);if(c){c=parseInt(c[1],10);if(c>=6){d="beforeactivate"}}this.event_handlers.push([this.selectElement,d,function(f){if(a.isDisabled()){return true}return a.onFocus(f)}]);this.event_handlers.push([this.selectElement,"blur",function(f){if(a.isDisabled()){return true}return a.onBlur(f)}]);if(this.validateOn&Spry.Widget.ValidationSelect.ONCHANGE){this.event_handlers.push([this.selectElement,"change",function(f){if(a.isDisabled()){return true}return a.onChange(f)}]);this.event_handlers.push([this.selectElement,"keypress",function(f){if(a.isDisabled()){return true}return a.onChange(f)}])}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.selectElement,"FORM");if(this.form){if(!this.form.attachedSubmitHandler&&!this.form.onsubmit){this.form.onsubmit=function(f){f=f||event;return Spry.Widget.Form.onSubmit(f,f.srcElement||f.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(f){f=f||event;return Spry.Widget.Form.onReset(f,f.srcElement||f.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};Spry.Widget.ValidationSelect.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.ValidationSelect.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.ValidationSelect.prototype.onFocus=function(a){this.hasFocus=true;this.validatedByOnChangeEvent=false;this.addClassName(this.element,this.focusClass);this.addClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onBlur=function(b){this.hasFocus=false;var a=false;if(this.validateOn&Spry.Widget.ValidationSelect.ONBLUR){a=true}if(a&&!this.validatedByOnChangeEvent){this.validate()}this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onChange=function(a){this.hasFocus=false;this.validate();this.validatedByOnChangeEvent=true};Spry.Widget.ValidationSelect.prototype.reset=function(){this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidClass);this.removeClassName(this.element,this.validClass);this.removeClassName(this.additionalError,this.requiredClass);this.removeClassName(this.additionalError,this.invalidClass);this.removeClassName(this.additionalError,this.validClass)};Spry.Widget.ValidationSelect.prototype.validate=function(){this.reset();if(this.isRequired){if(this.selectElement.options.length==0||this.selectElement.selectedIndex==-1){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].getAttribute("value")==null){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].value==this.emptyValue){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].disabled){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}}if(this.invalidValue){if(this.selectElement.options.length>0&&this.selectElement.selectedIndex!=-1&&this.selectElement.options[this.selectElement.selectedIndex].value==this.invalidValue){this.addClassName(this.element,this.invalidClass);this.addClassName(this.additionalError,this.invalidClass);return false}}this.addClassName(this.element,this.validClass);this.addClassName(this.additionalError,this.validClass);return true};Spry.Widget.ValidationSelect.prototype.isDisabled=function(){return this.selectElement.disabled};Spry.Widget.ValidationTextarea=function(b,a){a=Spry.Widget.Utils.firstValid(a,{});this.flags={locked:false};this.options={};this.element=b;this.init(b);if(!this.isBrowserSupported()){return}a.useCharacterMasking=Spry.Widget.Utils.firstValid(a.useCharacterMasking,true);a.hint=Spry.Widget.Utils.firstValid(a.hint,"");a.isRequired=Spry.Widget.Utils.firstValid(a.isRequired,true);a.additionalError=Spry.Widget.Utils.firstValid(a.additionalError,false);Spry.Widget.Utils.setOptions(this,a);Spry.Widget.Utils.setOptions(this.options,a);if(a.additionalError){this.additionalError=this.getElement(a.additionalError)}var c=["submit"].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));c=c.join(",");this.validateOn=0;this.validateOn=this.validateOn|(c.indexOf("submit")!=-1?Spry.Widget.ValidationTextarea.ONSUBMIT:0);this.validateOn=this.validateOn|(c.indexOf("blur")!=-1?Spry.Widget.ValidationTextarea.ONBLUR:0);this.validateOn=this.validateOn|(c.indexOf("change")!=-1?Spry.Widget.ValidationTextarea.ONCHANGE:0);if(Spry.Widget.ValidationTextarea.onloadDidFire){this.attachBehaviors()}else{Spry.Widget.ValidationTextarea.loadQueue.push(this)}};Spry.Widget.ValidationTextarea.ONCHANGE=1;Spry.Widget.ValidationTextarea.ONBLUR=2;Spry.Widget.ValidationTextarea.ONSUBMIT=4;Spry.Widget.ValidationTextarea.INITIAL="Initial";Spry.Widget.ValidationTextarea.REQUIRED="Required";Spry.Widget.ValidationTextarea.INVALID="Invalid Format";Spry.Widget.ValidationTextarea.MINIMUM="Minimum Number of Chars Not Met";Spry.Widget.ValidationTextarea.MAXIMUM="Maximum Number of Chars Exceeded";Spry.Widget.ValidationTextarea.VALID="Valid";Spry.Widget.ValidationTextarea.prototype.init=function(a){this.element=this.getElement(a);this.event_handlers=[];this.requiredClass="textareaRequiredState";this.invalidCharsMaxClass="textareaMaxCharsState";this.invalidCharsMinClass="textareaMinCharsState";this.validClass="textareaValidState";this.focusClass="textareaFocusState";this.hintClass="textareaHintState";this.textareaFlashClass="textareaFlashState";this.isMaxInvalid=false;this.isMinInvalid=false;this.isRequireInvalid=false;this.safariClicked=false;this.state=Spry.Widget.ValidationTextarea.INITIAL};Spry.Widget.ValidationTextarea.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.counterEl}catch(c){}try{delete this.form}catch(c){}try{delete this.event_handlers}catch(c){}try{this.cursorPosition.destroy()}catch(c){}try{delete this.cursorPosition}catch(c){}try{this.initialCursor.destroy()}catch(c){}try{delete this.initialCursor}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.ValidationTextarea.prototype.isDisabled=function(){return this.input&&(this.input.disabled||this.input.readOnly)||!this.input};Spry.Widget.ValidationTextarea.prototype.getElement=function(a){if(a&&typeof a=="string"){return document.getElementById(a)}return a};Spry.Widget.ValidationTextarea.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.ValidationTextarea.processLoadQueue=function(c){Spry.Widget.ValidationTextarea.onloadDidFire=true;var d=Spry.Widget.ValidationTextarea.loadQueue;var a=d.length;for(var b=0;b<a;b++){d[b].attachBehaviors()}};Spry.Widget.ValidationTextarea.onloadDidFire=false;Spry.Widget.ValidationTextarea.loadQueue=[];Spry.Widget.ValidationTextarea.addLoadListener(Spry.Widget.ValidationTextarea.processLoadQueue);Spry.Widget.ValidationTextarea.addLoadListener(function(){Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false)});Spry.Widget.ValidationTextarea.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.ValidationTextarea.prototype.attachBehaviors=function(){if(this.element){if(this.element.nodeName=="TEXTAREA"){this.input=this.element}else{this.input=Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element,"TEXTAREA")}}if(this.options&&this.options.counterType&&(this.options.counterType=="chars_count"||this.options.counterType=="chars_remaining")){this.counterEl=document.getElementById(this.options.counterId);this.counterChar()}if(this.input){this.input.setAttribute("AutoComplete","off");this.putHint();this.cursorPosition=new Spry.Widget.SelectionDescriptor(this.input);var a=this;this.event_handlers=[];if(this.useCharacterMasking){if(Spry.is.ie){this.event_handlers.push([this.input,"propertychange",function(c){return a.onKeyEvent(c||event)}]);this.event_handlers.push([this.input,"drop",function(c){return a.onDrop(c||event)}]);this.event_handlers.push([this.input,"keypress",function(c){return a.onKeyPress(c||event)}])}else{this.event_handlers.push([this.input,"keydown",function(c){return a.onKeyDown(c)}]);this.event_handlers.push([this.input,"keypress",function(c){return a.safariKeyPress(c)}]);this.event_handlers.push([this.input,"keyup",function(c){return a.safariValidate(c)}]);if(Spry.is.safari){this.event_handlers.push([this.input,"mouseup",function(c){return a.safariMouseUp(c)}]);this.event_handlers.push([this.input,"mousedown",function(c){return a.safariMouseDown(c)}])}else{this.event_handlers.push([this.input,"dragdrop",function(c){return a.onKeyEvent(c)}]);this.event_handlers.push([this.input,"dragenter",function(c){a.removeHint();return a.onKeyDown(c)}]);this.event_handlers.push([this.input,"dragexit",function(c){return a.putHint()}])}}this.event_handlers.push([this.input,"keydown",function(c){return a.onKeyDown(c||event)}])}this.event_handlers.push([this.input,"focus",function(c){return a.onFocus(c||event)}]);this.event_handlers.push([this.input,"mousedown",function(c){return a.onMouseDown(c||event)}]);this.event_handlers.push([this.input,"blur",function(c){return a.onBlur(c||event)}]);if(this.validateOn&Spry.Widget.ValidationTextarea.ONCHANGE){if(Spry.is.ie){this.event_handlers.push([this.input,"propertychange",function(c){return a.onChange(c||event)}]);this.event_handlers.push([this.input,"drop",function(c){return a.onChange(c||event)}])}else{this.event_handlers.push([this.input,"keydown",function(c){return a.onKeyDown(c)}]);this.event_handlers.push([this.input,"keypress",function(c){return a.safariChangeKeyPress(c)}]);this.event_handlers.push([this.input,"keyup",function(c){return a.safariChangeValidate(c)}]);if(Spry.is.safari){this.event_handlers.push([this.input,"mouseup",function(c){return a.safariChangeMouseUp(c)}]);this.event_handlers.push([this.input,"mousedown",function(c){return a.safariMouseDown(c)}])}else{this.event_handlers.push([this.input,"dragdrop",function(c){return a.onChange(c)}]);this.event_handlers.push([this.input,"dragenter",function(c){a.removeHint();return a.onKeyDown(c)}]);this.event_handlers.push([this.input,"dragexit",function(c){return a.putHint()}])}}}if(!(this.validateOn&Spry.Widget.ValidationTextarea.ONCHANGE)&&!this.useCharacterMasking){if(Spry.is.ie){this.event_handlers.push([this.input,"propertychange",function(c){return a.counterChar()}]);this.event_handlers.push([this.input,"drop",function(c){return a.counterChar()}])}else{this.event_handlers.push([this.input,"keypress",function(c){return a.counterChar()}]);this.event_handlers.push([this.input,"keyup",function(c){return a.counterChar()}]);if(Spry.is.safari){this.event_handlers.push([this.input,"mouseup",function(c){return a.counterChar()}])}else{this.event_handlers.push([this.input,"dragdrop",function(c){return a.counterChar()}])}}}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(c){c=c||event;return Spry.Widget.Form.onSubmit(c,c.srcElement||c.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(c){c=c||event;return Spry.Widget.Form.onReset(c,c.srcElement||c.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}this.saveState()};Spry.Widget.ValidationTextarea.prototype.onTyping=function(g){if(this.input.disabled==true||this.input.readOnly==true){return}if(!this.initialCursor){this.initialCursor=this.cursorPosition}if(this.flags.locked){return true}var h=this.input.value;var c=true;if(this.flags.hintOn){return true}if(g&&this.input&&this.options&&this.options.maxChars>0&&c){if(h.length>this.options.maxChars&&((!Spry.Widget.Utils.isSpecialKey(g)&&this.cursorPosition.start==this.cursorPosition.end)||(Spry.Widget.Utils.isSpecialKey(g)&&h!=this.initialValue)||this.cursorPosition.start!=this.cursorPosition.end)){this.flags.locked=true;var b=this.initialValue;var i=this.initialCursor.start;var a=this.initialCursor.end;if(b.length&&this.initialCursor.end<b.length){var d=a-i+this.options.maxChars-b.length;var f=b.substring(0,i)+h.substring(i,i+d)+b.substring(a,b.length<this.options.maxChars?b.length:this.options.maxChars);a=i+d}else{var f=h.substring(0,this.options.maxChars);a=i=this.options.maxChars}if(Spry.is.ie){this.input.innerText=f}else{this.input.value=f}this.redTextFlash();this.cursorPosition.moveTo(a,a);this.flags.locked=false;c=false}else{this.setState(Spry.Widget.ValidationTextarea.VALID);this.isMaxInvalid=false}}this.counterChar();return c};Spry.Widget.ValidationTextarea.prototype.validateMinRequired=function(b){var a=false;if(typeof this.notFireMinYet=="undefined"){this.notFireMinYet=false}else{a=true;this.notFireMinYet=true}if(this.onBlurOn){this.notFireMinYet=true}else{if(!this.onKeyEventOn){this.notFireMinYet=true}}if(this.input&&this.options&&this.options.isRequired){if(b.length>0&&this.isRequireInvalid&&(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&b!=this.hint))){this.switchClassName(this.validClass);this.setState(Spry.Widget.ValidationTextarea.VALID);this.isRequireInvalid=false}else{if((b.length==0||!(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&b!=this.hint)))&&(!this.isRequireInvalid||a)){if(this.notFireMinYet||Spry.is.ie){this.switchClassName(this.requiredClass);this.setState(Spry.Widget.ValidationTextarea.REQUIRED)}this.isRequireInvalid=true;this.isMinInvalid=false}}}if(this.input&&this.options&&this.options.minChars>0&&!this.isRequireInvalid){if(b.length>=this.options.minChars&&(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&b!=this.hint))&&this.isMinInvalid){this.switchClassName(this.validClass);this.setState(Spry.Widget.ValidationTextarea.VALID);this.isMinInvalid=false}else{if((b.length<this.options.minChars||(this.hint&&b==this.hint&&this.flags.hintOn))&&!this.isMinInvalid){this.switchClassName(this.invalidCharsMinClass);this.setState(Spry.Widget.ValidationTextarea.MINIMUM);this.isMinInvalid=true}}}};Spry.Widget.ValidationTextarea.prototype.counterChar=function(){if(!this.counterEl||!this.options||!this.options.counterType||(this.options.counterType!="chars_remaining"&&this.options.counterType!="chars_count")){return}if(this.options.counterType=="chars_remaining"){if(this.options.maxChars>0){if(this.flags.hintOn){this.setCounterElementValue(this.options.maxChars)}else{if(this.options.maxChars>this.input.value.length){this.setCounterElementValue(this.options.maxChars-this.input.value.length)}else{this.setCounterElementValue(0)}}}}else{if(this.flags.hintOn){this.setCounterElementValue(0)}else{if(this.useCharacterMasking&&typeof this.options.maxChars!="undefined"&&this.options.maxChars<this.input.value.length){this.setCounterElementValue(this.options.maxChars)}else{this.setCounterElementValue(this.input.value.length)}}}};Spry.Widget.ValidationTextarea.prototype.setCounterElementValue=function(a){if(this.counterEl.nodeName.toLowerCase()!="input"&&this.counterEl.nodeName.toLowerCase()!="textarea"&&this.counterEl.nodeName.toLowerCase()!="select"&&this.counterEl.nodeName.toLowerCase()!="img"){this.counterEl.innerHTML=a}};Spry.Widget.ValidationTextarea.prototype.reset=function(){this.removeHint();this.removeClassName(this.requiredClass);this.removeClassName(this.invalidCharsMinClass);this.removeClassName(this.invalidCharsMaxClass);this.removeClassName(this.validClass);this.setState(Spry.Widget.ValidationTextarea.INITIAL);var a=this;setTimeout(function(){a.putHint();a.counterChar()},10)};Spry.Widget.ValidationTextarea.prototype.validate=function(){if(this.input.disabled==true||this.input.readOnly==true){return true}if(this.validateOn&Spry.Widget.ValidationTextarea.ONSUBMIT){this.removeHint()}var b=this.input.value;this.validateMinRequired(b);var a=!this.isMinInvalid&&!this.isRequireInvalid;if(a&&this.options.maxChars>0&&!this.useCharacterMasking){if(b.length<=this.options.maxChars||(this.hint&&this.hint==b&&this.flags.hintOn)){this.switchClassName(this.validClass);this.setState(Spry.Widget.ValidationTextarea.VALID);this.isMaxInvalid=false}else{this.switchClassName(this.invalidCharsMaxClass);this.setState(Spry.Widget.ValidationTextarea.MAXIMUM);this.isMaxInvalid=true}}a=a&&!this.isMaxInvalid;if(a){this.switchClassName(this.validClass)}this.counterChar();return a};Spry.Widget.ValidationTextarea.prototype.setState=function(a){this.state=a};Spry.Widget.ValidationTextarea.prototype.getState=function(){return this.state};Spry.Widget.ValidationTextarea.prototype.removeHint=function(){if(this.flags.hintOn){this.flags.locked=true;this.input.value="";this.flags.locked=false;this.flags.hintOn=false;this.removeClassName(this.hintClass)}};Spry.Widget.ValidationTextarea.prototype.putHint=function(){if(this.hint&&this.input.value==""){this.flags.hintOn=true;this.input.value=this.hint;this.addClassName(this.hintClass)}};Spry.Widget.ValidationTextarea.prototype.redTextFlash=function(){var a=this;this.addClassName(this.textareaFlashClass);setTimeout(function(){a.removeClassName(a.textareaFlashClass)},200)};Spry.Widget.ValidationTextarea.prototype.onKeyPress=function(a){if(Spry.is.ie&&Spry.is.windows&&a.keyCode==13){if((this.initialCursor.length+this.options.maxChars-this.input.value.length)<2){Spry.Widget.Utils.stopEvent(a);return false}}};Spry.Widget.ValidationTextarea.prototype.onKeyDown=function(a){this.saveState();this.keyCode=a.keyCode;return true};Spry.Widget.ValidationTextarea.prototype.onKeyEvent=function(b){if(b.type=="propertychange"&&b.propertyName!="value"){return true}var a=this.onTyping(b);if(!a){Spry.Widget.Utils.stopEvent(b)}};Spry.Widget.ValidationTextarea.prototype.onChange=function(c){if(Spry.is.ie&&c&&c.type=="propertychange"&&c.propertyName!="value"){return true}if(this.flags.drop){var a=this;setTimeout(function(){a.flags.drop=false;a.onChange(null)},0);return true}if(this.flags.hintOn){return true}this.onKeyEventOn=true;var b=this.validate();this.onKeyEventOn=false;return b};Spry.Widget.ValidationTextarea.prototype.onMouseDown=function(a){if(this.flags.active){this.saveState()}};Spry.Widget.ValidationTextarea.prototype.onDrop=function(b){this.flags.drop=true;this.removeHint();if(Spry.is.ie){var a=document.body.createTextRange();a.moveToPoint(b.x,b.y);a.select()}this.saveState();this.flags.active=true;this.addClassName(this.focusClass)};Spry.Widget.ValidationTextarea.prototype.onFocus=function(a){if(this.flags.drop){return}this.removeHint();this.saveState();this.flags.active=true;this.addClassName(this.focusClass)};Spry.Widget.ValidationTextarea.prototype.onBlur=function(b){this.removeClassName(this.focusClass);if(this.validateOn&Spry.Widget.ValidationTextarea.ONBLUR){this.onBlurOn=true;this.validate();this.onBlurOn=false}this.flags.active=false;var a=this;setTimeout(function(){a.putHint()},10)};Spry.Widget.ValidationTextarea.prototype.safariMouseDown=function(a){this.safariClicked=true};Spry.Widget.ValidationTextarea.prototype.safariChangeMouseUp=function(a){if(!this.safariClicked){this.onKeyDown(a);return this.safariChangeValidate(a,false)}else{this.safariClicked=false;return true}};Spry.Widget.ValidationTextarea.prototype.safariMouseUp=function(a){if(!this.safariClicked){this.onKeyDown(a);return this.safariValidate(a,false)}else{this.safariClicked=false;return true}};Spry.Widget.ValidationTextarea.prototype.safariKeyPress=function(a){this.safariFlag=new Date();return this.safariValidate(a,true)};Spry.Widget.ValidationTextarea.prototype.safariValidate=function(d,b){if(d.keyCode&&Spry.Widget.Utils.isSpecialKey(d)&&d.keyCode!=8&&d.keyCode!=46){return true}var c=this.onTyping(d);if(new Date()-this.safariFlag<1000&&b){var a=this;setTimeout(function(){a.safariValidate(d,false)},1000)}return c};Spry.Widget.ValidationTextarea.prototype.safariChangeKeyPress=function(a){this.safariChangeFlag=new Date();return this.safariChangeValidate(a,true)};Spry.Widget.ValidationTextarea.prototype.safariChangeValidate=function(d,b){if(d.keyCode&&Spry.Widget.Utils.isSpecialKey(d)&&d.keyCode!=8&&d.keyCode!=46){return true}var c=this.onChange(d);if(new Date()-this.safariChangeFlag<1000&&b){var a=this;setTimeout(function(){a.safariChangeValidate(d,false)},1000-new Date()+this.safariChangeFlag)}return c};Spry.Widget.ValidationTextarea.prototype.saveState=function(a){if(this.options.maxChars>0&&this.input.value.length>this.options.maxChars){return}this.cursorPosition.update();if(!this.flags.hintOn){this.initialValue=this.input.value}else{this.initialValue=""}this.initialCursor=this.cursorPosition;return true};Spry.Widget.ValidationTextarea.prototype.checkClassName=function(b,a){if(!b||!a){return false}if(typeof b=="string"){b=document.getElementById(b);if(!b){return false}}if(!b.className){b.className=" "}return b};Spry.Widget.ValidationTextarea.prototype.switchClassName=function(c){var b=[this.invalidCharsMaxClass,this.validClass,this.requiredClass,this.invalidCharsMinClass];for(var a=0;a<b.length;a++){if(b[a]!=c){this.removeClassName(b[a])}}this.addClassName(c)};Spry.Widget.ValidationTextarea.prototype.addClassName=function(c){var a=this.checkClassName(this.element,c);var b=this.checkClassName(this.additionalError,c);if(!a||a.className.search(new RegExp("\\b"+c+"\\b"))!=-1){return}this.element.className+=" "+c;if(b){b.className+=" "+c}};Spry.Widget.ValidationTextarea.prototype.removeClassName=function(a){var b=this.checkClassName(this.element,a);var c=this.checkClassName(this.additionalError,a);if(!b){return}b.className=b.className.replace(new RegExp("\\s*\\b"+a+"\\b","g"),"");if(c){c.className=c.className.replace(new RegExp("\\s*\\b"+a+"\\b","g"),"")}};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(k,o){var j=/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;var f=this.dateValidationPattern;var a=o.format.match(j);var l=k.match(f);if(a!==null&&l!==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 n=parseInt(l[b],10);var m=parseInt(l[e],10);var d=parseInt(l[c],10);if(m<1||m>12){return false}switch(m){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(n<1||n>h){return false}return(new Date(d,m-1,n))}}else{return false}}},time:{validation:function(m,q){var g=/([hmst]+)/gi;var e=/(\d+|AM?|PM?)/gi;var a=q.format.match(g);var p=m.match(e);if(a!==null&&p!==null){if(a.length!=p.length){return false}var n=-1;var d=-1;var b=-1;var o=-1;var l=0,k=0,j=0,h="AM";for(var f=0;f<a.length;f++){switch(a[f].toLowerCase()){case"hh":n=f;break;case"mm":d=f;break;case"ss":b=f;break;case"t":case"tt":o=f;break}}if(n!=-1){var l=parseInt(p[n],10);if(isNaN(l)||l>(a[n]=="HH"?23:12)){return false}}if(d!=-1){var k=parseInt(p[d],10);if(isNaN(k)||k>59){return false}}if(b!=-1){var j=parseInt(p[b],10);if(isNaN(j)||j>59){return false}}if(o!=-1){var h=p[o].toUpperCase();if(a[o].toUpperCase()=="TT"&&!/^a|pm$/i.test(h)||a[o].toUpperCase()=="T"&&!/^a|p$/i.test(h)){return false}}var c=new Date(2000,0,1,l+(h.charAt(0)=="P"?12:0),k,j);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,k){var b=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var c=g.match(b);if(c&&c[4]){var j=c[4].split(".");var h="";for(var d=0;d<j.length;d++){h=Spry.Widget.Utils.punycode_encode(j[d],64);if(!h){return false}else{if(h!=(j[d]+"-")){j[d]="xn--"+h}}}j=j.join(".");g=g.replace(b,"$1//"+j+"$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(k,j){var n=[/^(?:[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(j=="ipv6"||j=="ipv6_ipv4"){f=f.concat(n)}if(j=="ipv4"||j=="ipv6_ipv4"){f=f.concat(a)}var e=false;for(var c=0;c<f.length;c++){if(f[c].test(k)){e=true;break}}if(e&&k.indexOf(".")!=-1){var g=k.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 m=parseInt(b[c],10);if(isNaN(m)||m>255||!h.test(b[c])||b[c].length>3||/^0{2,3}$/.test(b[c])){return false}}}if(e&&k.indexOf("/")!=-1){var l=k.match(/\/\d{1,3}$/);if(!l){return false}var d=parseInt(l[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 m=true;if(!this.options.isRequired&&g.length==0){m=false}var l=0;var j=g;if(this.useCharacterMasking&&this.characterMasking){for(var d=0;d<g.length;d++){if(!this.characterMasking.test(g.charAt(d))){l=l|Spry.Widget.ValidationTextField.ERROR_FORMAT;j=f;c=true;break}}}if(!c&&this.useCharacterMasking&&this.regExpFilter){if(!this.regExpFilter.test(j)){l=l|Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}}if(!c&&this.pattern){var b=this.patternToRegExp(g.length);if(!b.test(g)){l=l|Spry.Widget.ValidationTextField.ERROR_FORMAT;c=true}else{if(this.patternLength!=g.length){l=l|Spry.Widget.ValidationTextField.ERROR_FORMAT}}}if(j==""){l=l|Spry.Widget.ValidationTextField.ERROR_REQUIRED}if(!c&&this.pattern&&this.useCharacterMasking){var a=this.getAutoComplete(g.length);if(a){j+=a}}if(!c&&this.minChars!==null&&m){if(g.length<this.minChars){l=l|Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;m=false}}if(!c&&this.maxChars!==null&&m){if(g.length>this.maxChars){l=l|Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;m=false}}if(!c&&this.validation&&m){var k=this.validation(j,this.options);if(false===k){l=l|Spry.Widget.ValidationTextField.ERROR_FORMAT;m=false}else{this.typedValue=k}}if(!c&&this.validation&&this.minValue!==null&&m){var h=this.validation(this.minValue.toString(),this.options);if(h!==false){if(this.typedValue<h){l=l|Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;m=false}}}if(!c&&this.validation&&this.maxValue!==null&&m){var e=this.validation(this.maxValue.toString(),this.options);if(e!==false){if(this.typedValue>e){l=l|Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;m=false}}}if(this.useCharacterMasking&&c){this.revertState(f)}this.errors=l;this.fixedValue=j;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(f){if(this.flags.skp){this.flags.skp=false;Spry.Widget.Utils.stopEvent(f);return false}if(f.ctrlKey||f.metaKey||!this.useCharacterMasking){return true}if(Spry.is.opera&&this.flags.operaRevertOnKeyUp){Spry.Widget.Utils.stopEvent(f);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(f);if(c&&this.characterMasking){if(!this.characterMasking.test(c)){Spry.Widget.Utils.stopEvent(f);this.redTextFlash();return false}}if(c&&this.pattern){var g=this.patternCharacters[this.selection.start];if(/[ax]/i.test(g)){if(g.toLowerCase()==g){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(f);var k=this.oldValue.substring(0,this.selection.start)+a+c;var d=this.doValidations(k,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(f);this.setValue(this.input.value);return false}}else{if(a){Spry.Widget.Utils.stopEvent(f);this.selection.moveTo(this.selection.start+a.length,this.selection.start+a.length);return false}}Spry.Widget.Utils.stopEvent(f);var k=this.oldValue.substring(0,this.selection.start)+c+this.oldValue.substring(this.selection.start+1);var d=this.doValidations(k,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 i=this.getDateGroup(this.oldValue,this.selection.start);if(i!=-1){Spry.Widget.Utils.stopEvent(f);if((i%2)!=0){i++}if(this.isDateGroupFull(this.oldValue,i)){if(this.isPositionAtEndOfGroup(this.oldValue,this.selection.start,i)){if(i==this.lastDateGroup){this.redTextFlash();return false}else{var a=this.dateAutocompleteCharacters[i+1];if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,i)){var a=this.dateAutocompleteCharacters[i+1];this.selection.moveTo(this.selection.start+a.length,this.selection.start+a.length);if(c==a){return false}if(this.isDateGroupFull(this.oldValue,i+2)){k=this.oldValue.substring(0,this.selection.start)+c+this.oldValue.substring(this.selection.start+1)}else{k=this.oldValue.substring(0,this.selection.start)+c+this.oldValue.substring(this.selection.start)}if(!this.isValueValid(k,this.selection.start+1,i+2)){this.redTextFlash();return false}else{this.setValue(k);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}return false}else{var a=this.dateAutocompleteCharacters[i+1];var j=a+c;k=this.oldValue.substring(0,this.selection.start)+j+this.oldValue.substring(this.selection.start);if(!this.isValueValid(k,this.selection.start+j.length,i+2)){j=a;k=this.oldValue.substring(0,this.selection.start)+j+this.oldValue.substring(this.selection.start);this.setValue(k);this.selection.moveTo(this.selection.start+j.length,this.selection.start+j.length);this.redTextFlash();return false}else{this.setValue(k);this.selection.moveTo(this.selection.start+j.length,this.selection.start+j.length);return false}}}}else{var h=1;k=this.oldValue.substring(0,this.selection.start)+c+this.oldValue.substring(this.selection.start+1);if(!this.isValueValid(k,this.selection.start+1,i)){this.redTextFlash();return false}else{if(this.isPositionAtEndOfGroup(k,this.selection.start+1,i)){if(i!=this.lastDateGroup){if(this.nextDateDelimiterExists(k,this.selection.start+1,i)){var a=this.dateAutocompleteCharacters[i+1];h=1+a.length}else{var a=this.dateAutocompleteCharacters[i+1];k=this.oldValue.substring(0,this.selection.start)+c+a+this.oldValue.substring(this.selection.start+1);h=1+a.length}}}this.setValue(k);this.selection.moveTo(this.selection.start+h,this.selection.start+h);return false}}}else{k=this.oldValue.substring(0,this.selection.start)+c+this.oldValue.substring(this.selection.start);var h=1;if(!this.isValueValid(k,this.selection.start+1,i)&&!this.isValueValid(k,this.selection.start+1,i+1)){this.redTextFlash();return false}else{var a=this.dateAutocompleteCharacters[i+1];if(c==a){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,i)){k=this.oldValue;h=1}}else{if(this.isPositionAtEndOfGroup(k,this.selection.start+1,i)){if(i!=this.lastDateGroup){if(this.nextDateDelimiterExists(k,this.selection.start+1,i)){var a=this.dateAutocompleteCharacters[i+1];h=1+a.length}else{var a=this.dateAutocompleteCharacters[i+1];k=this.oldValue.substring(0,this.selection.start)+c+a+this.oldValue.substring(this.selection.start+1);h=1+a.length}}}}this.setValue(k);this.selection.moveTo(this.selection.start+h,this.selection.start+h);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 f=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-f.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-f.length;this.selection.end=this.selection.end-1-f.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 f=[];var b=[];var g=[];var a=0;var h="",e="";for(var d=0;d<this.pattern.length;d++){h=this.pattern.charAt(d);if(e=="\\"){if(/[0ABXY\?]/i.test(h)){b[a-1]=h}else{b[a-1]=Spry.Widget.ValidationTextField.regExpFromChars(h)}f[a-1]=h;g[a-1]=null;e="";continue}b[a]=Spry.Widget.ValidationTextField.regExpFromChars(h);if(/[0ABXY\?]/i.test(h)){f[a]=null;g[a]=h}else{if(h=="\\"){f[a]=h;g[a]="\\"}else{f[a]=h;g[a]=null}}a++;e=h}this.autoCompleteCharacters=f;this.compiledPattern=b;this.patternCharacters=g;this.patternLength=f.length};Spry.Widget.ValidationTextField.prototype.getAutoComplete=function(h,e){if(e==-1){var g="",a="";while(h&&(g=this.getAutoComplete(--h))){a=g}return a}var b="",f="";for(var d=h;d<this.autoCompleteCharacters.length;d++){f=this.autoCompleteCharacters[d];if(f){b+=f}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()};var Spry;if(!Spry){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 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){}if(this.checkboxElements){for(var b=0;b<this.checkboxElements.length;b++){try{delete this.checkboxElements[b]}catch(c){}}}try{delete this.checkboxElements}catch(c){}try{delete this.form}catch(c){}try{delete this.event_handlers}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.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(c){Spry.Widget.ValidationCheckbox.onloadDidFire=true;var d=Spry.Widget.ValidationCheckbox.loadQueue;var a=d.length;for(var b=0;b<a;b++){d[b].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 b=this;this.event_handlers=[];var a=this.checkboxElements.length;for(var c=0;c<a;c++){this.event_handlers.push([this.checkboxElements[c],"focus",function(d){return b.onFocus(d)}]);this.event_handlers.push([this.checkboxElements[c],"blur",function(d){return b.onBlur(d)}]);if(this.validateOn&Spry.Widget.ValidationCheckbox.ONCHANGE){this.event_handlers.push([this.checkboxElements[c],"click",function(d){return b.onClick(d)}])}}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.element,"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.ValidationCheckbox.prototype.getCheckboxes=function(){var d;var c=this.element.getElementsByTagName("INPUT");if(c.length){d=[];var a=c.length;for(var b=0;b<a;b++){if(c[b].type=="checkbox"){d.push(c[b])}}return d}return null};Spry.Widget.ValidationCheckbox.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.ValidationCheckbox.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.ValidationCheckbox.prototype.onFocus=function(b){var a=(b.srcElement!=null)?b.srcElement:b.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(c){var b=(c.srcElement!=null)?c.srcElement:c.target;if(b.disabled){return}this.hasFocus=false;var a=false;if(this.validateOn&Spry.Widget.ValidationCheckbox.ONBLUR){a=true}if(a){this.validate()}this.removeClassName(this.element,this.focusClass);this.removeClassName(this.additionalError,this.focusClass)};Spry.Widget.ValidationCheckbox.prototype.onClick=function(b){var a=(b.srcElement!=null)?b.srcElement:b.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 c=0;if(this.checkboxElements){var a=this.checkboxElements.length;for(var b=0;b<a;b++){if(!this.checkboxElements[b].disabled&&this.checkboxElements[b].checked){c++}}}if(this.isRequired){if(c==0){this.addClassName(this.element,this.requiredClass);this.addClassName(this.additionalError,this.requiredClass);return false}}if(this.minSelections){if(this.minSelections>c){this.addClassName(this.element,this.minSelectionsClass);this.addClassName(this.additionalError,this.minSelectionsClass);return false}}if(this.maxSelections){if(this.maxSelections<c){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 b=true;if(this.checkboxElements){var a=this.checkboxElements.length;for(var c=0;c<a;c++){if(!this.checkboxElements[c].disabled){b=false;break}}}return b};var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.BrowserSniff=function(){var i=navigator.appName.toString();var e=navigator.platform.toString();var c=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var g=/Opera.([0-9\.]*)/i;var d=/MSIE.([0-9\.]*)/i;var f=/gecko/i;var h=/(applewebkit|safari)\/([\d\.]*)/i;var a=false;if((a=c.match(g))){this.opera=true;this.version=parseFloat(a[1])}else{if((a=c.match(d))){this.ie=true;this.version=parseFloat(a[1])}else{if((a=c.match(h))){this.safari=true;if(parseFloat(a[2])<420){this.version=2}else{this.version=3}}else{if(c.match(f)){var j=/rv:\s*([0-9\.]+)/i;a=c.match(j);this.mozilla=true;this.version=parseFloat(a[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.Tooltip=function(c,b,a){a=Spry.Widget.Utils.firstValid(a,{});this.init(b,c,a);if(Spry.Widget.Tooltip.onloadDidFire){this.attachBehaviors()}Spry.Widget.Tooltip.loadQueue.push(this)};Spry.Widget.Tooltip.prototype.init=function(d,e,a){var c=Spry.Widget.Utils;this.triggerElements=c.getElementsByClassName(d);this.tooltipElement=c.getElement(e);a.showDelay=parseInt(c.firstValid(a.showDelay,0),10);a.hideDelay=parseInt(c.firstValid(a.hideDelay,0),10);if(typeof this.triggerElements=="undefined"||!(this.triggerElements.length>0)){this.showError('The element(s) "'+d+'" do not exist in the page');return false}if(typeof this.tooltipElement=="undefined"||!this.tooltipElement){this.showError('The element "'+e+'" do not exists in the page');return false}this.listenersAttached=false;this.hoverClass="";this.followMouse=false;this.offsetX=15;this.offsetY=15;this.closeOnTooltipLeave=false;this.useEffect=false;c.setOptions(this,a);this.animator=null;for(var b=0;b<this.triggerElements.length;b++){if(!this.triggerElements[b].className){this.triggerElements[b].className=""}}if(this.useEffect){switch(this.useEffect.toString().toLowerCase()){case"blind":this.useEffect="Blind";break;case"fade":this.useEffect="Fade";break;default:this.useEffect=false}}this.visibleTooltip=false;this.tooltipElement.offsetHeight;if(Spry.Widget.Utils.getStyleProperty(this.tooltipElement,"display")!="none"){this.tooltipElement.style.display="none"}if(typeof this.offsetX!="numeric"){this.offsetX=parseInt(this.offsetX,10)}if(isNaN(this.offsetX)){this.offsetX=0}if(typeof this.offsetY!="numeric"){this.offsetY=parseInt(this.offsetY,10)}if(isNaN(this.offsetY)){this.offsetY=0}this.tooltipElement.style.position="absolute";this.tooltipElement.style.top="0px";this.tooltipElement.style.left="0px"};Spry.Widget.Tooltip.onloadDidFire=false;Spry.Widget.Tooltip.loadQueue=[];Spry.Widget.Tooltip.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.Tooltip.processLoadQueue=function(c){Spry.Widget.Tooltip.onloadDidFire=true;var d=Spry.Widget.Tooltip.loadQueue;var a=d.length;for(var b=0;b<a;b++){if(!d[b].listenersAttached){d[b].attachBehaviors()}}};Spry.Widget.Tooltip.addLoadListener(Spry.Widget.Tooltip.processLoadQueue);Spry.Widget.Tooltip.prototype.addClassName=function(b,a){if(!b||!a){return}if(b.className.indexOf(a)==-1){b.className+=(b.className?" ":"")+a}};Spry.Widget.Tooltip.prototype.removeClassName=function(b,a){if(!b||!a){return}b.className=b.className.replace(new RegExp("\\s*\\b"+a+"\\b","g"),"")};Spry.Widget.Tooltip.prototype.showTooltip=function(){if(!this.visibleTooltip){this.tooltipElement.style.visibility="hidden";this.tooltipElement.style.zIndex="9999";this.tooltipElement.style.display="block"}Spry.Widget.Utils.putElementAt(this.tooltipElement,this.pos,{x:this.offsetX,y:this.offsetY},true);if(Spry.is.ie&&Spry.is.version=="6"){this.createIframeLayer(this.tooltipElement)}if(!this.visibleTooltip){if(this.useEffect){if(typeof this.showEffect=="undefined"){this.showEffect=new Spry.Widget.Tooltip[this.useEffect](this.tooltipElement,{from:0,to:1})}this.showEffect.start()}else{this.tooltipElement.style.visibility="visible"}}this.visibleTooltip=true};Spry.Widget.Tooltip.prototype.hideTooltip=function(b){if(this.useEffect&&!b){if(typeof this.hideEffect=="undefined"){this.hideEffect=new Spry.Widget.Tooltip[this.useEffect](this.tooltipElement,{from:1,to:0})}this.hideEffect.start()}else{if(typeof this.showEffect!="undefined"){this.showEffect.stop()}this.tooltipElement.style.display="none"}if(Spry.is.ie&&Spry.is.version=="6"){this.removeIframeLayer(this.tooltipElement)}if(this.hoverClass&&!this.hideTimer){for(var a=0;a<this.triggerElements.length;a++){this.removeClassName(this.triggerElements[a],this.hoverClass)}}this.visibleTooltip=false};Spry.Widget.Tooltip.prototype.displayTooltip=function(a){if(this.tooltipElement){if(this.hoverClass){for(var c=0;c<this.triggerElements.length;c++){this.removeClassName(this.triggerElements[c],this.hoverClass)}}if(a){if(this.hideTimer){clearInterval(this.hideTimer);delete (this.hideTimer)}if(this.hoverClass){if(typeof this.triggerHighlight!="undefined"){this.addClassName(this.triggerHighlight,this.hoverClass)}}var b=this;this.showTimer=setTimeout(function(){b.showTooltip()},this.showDelay)}else{if(this.showTimer){clearInterval(this.showTimer);delete (this.showTimer)}var b=this;this.hideTimer=setTimeout(function(){b.hideTooltip()},this.hideDelay)}}this.refreshTimeout()};Spry.Widget.Tooltip.prototype.onMouseOverTrigger=function(d){var c="";if(Spry.is.ie){c=d.srcElement}else{c=d.target}var b=Spry.Widget.Utils.contains;for(var a=0;a<this.triggerElements.length;a++){if(b(this.triggerElements[a],c)){c=this.triggerElements[a];break}}if(a==this.triggerElements.length){return}if(this.visibleTooltip&&this.triggerHighlight&&this.triggerHighlight==c){if(this.hideTimer){clearInterval(this.hideTimer);delete (this.hideTimer)}if(this.hoverClass){if(typeof this.triggerHighlight!="undefined"){this.addClassName(this.triggerHighlight,this.hoverClass)}}return}var f=Spry.Widget.Utils.getAbsoluteMousePosition(d);this.pos={x:f.x+this.offsetX,y:f.y+this.offsetY};this.triggerHighlight=c;Spry.Widget.Tooltip.closeAll();this.displayTooltip(true)};Spry.Widget.Tooltip.prototype.onMouseMoveTrigger=function(a){var b=Spry.Widget.Utils.getAbsoluteMousePosition(a);this.pos={x:b.x+this.offsetX,y:b.y+this.offsetY};if(this.visibleTooltip){this.showTooltip()}};Spry.Widget.Tooltip.prototype.onMouseOutTrigger=function(d){var c="";if(Spry.is.ie){c=d.toElement}else{c=d.relatedTarget}var b=Spry.Widget.Utils.contains;for(var a=0;a<this.triggerElements.length;a++){if(b(this.triggerElements[a],c)){return}}this.displayTooltip(false)};Spry.Widget.Tooltip.prototype.onMouseOutTooltip=function(c){var b="";if(Spry.is.ie){b=c.toElement}else{b=c.relatedTarget}var a=Spry.Widget.Utils.contains;if(a(this.tooltipElement,b)){return}this.displayTooltip(false)};Spry.Widget.Tooltip.prototype.onMouseOverTooltip=function(a){if(this.hideTimer){clearInterval(this.hideTimer);delete (this.hideTimer)}if(this.hoverClass){if(typeof this.triggerHighlight!="undefined"){this.addClassName(this.triggerHighlight,this.hoverClass)}}};Spry.Widget.Tooltip.prototype.refreshTimeout=function(){if(Spry.Widget.Tooltip.refreshTimeout!=null){clearTimeout(Spry.Widget.Tooltip.refreshTimeout);Spry.Widget.Tooltip.refreshTimeout=null}Spry.Widget.Tooltip.refreshTimeout=setTimeout(Spry.Widget.Tooltip.refreshAll,100)};Spry.Widget.Tooltip.prototype.destroy=function(){for(var a in this){try{if(typeof this.k=="object"&&typeof this.k.destroy=="function"){this.k.destroy()}delete this.k}catch(b){}}};Spry.Widget.Tooltip.prototype.checkDestroyed=function(){if(!this.tooltipElement||this.tooltipElement.parentNode==null){return true}return false};Spry.Widget.Tooltip.prototype.attachBehaviors=function(){var a=this;var c=Spry.Widget.Utils.addEventListener;for(var b=0;b<this.triggerElements.length;b++){c(this.triggerElements[b],"mouseover",function(d){a.onMouseOverTrigger(d||event);return true},false);c(this.triggerElements[b],"mouseout",function(d){a.onMouseOutTrigger(d||event);return true},false);if(this.followMouse){c(this.triggerElements[b],"mousemove",function(d){a.onMouseMoveTrigger(d||event);return true},false)}}if(this.closeOnTooltipLeave){c(this.tooltipElement,"mouseover",function(d){a.onMouseOverTooltip(d||event);return true},false);c(this.tooltipElement,"mouseout",function(d){a.onMouseOutTooltip(d||event);return true},false)}this.listenersAttached=true};Spry.Widget.Tooltip.prototype.createIframeLayer=function(b){if(typeof this.iframeLayer=="undefined"){var a=document.createElement("iframe");a.tabIndex="-1";a.src='javascript:"";';a.scrolling="no";a.frameBorder="0";a.className="iframeTooltip";b.parentNode.appendChild(a);this.iframeLayer=a}this.iframeLayer.style.left=b.offsetLeft+"px";this.iframeLayer.style.top=b.offsetTop+"px";this.iframeLayer.style.width=b.offsetWidth+"px";this.iframeLayer.style.height=b.offsetHeight+"px";this.iframeLayer.style.display="block"};Spry.Widget.Tooltip.prototype.removeIframeLayer=function(a){if(this.iframeLayer){this.iframeLayer.style.display="none"}};Spry.Widget.Tooltip.prototype.showError=function(a){alert("Spry.Widget.Tooltip ERR: "+a)};Spry.Widget.Tooltip.refreshAll=function(){var c=Spry.Widget.Tooltip.loadQueue;var a=c.length;for(var b=0;b<a;b++){if(c[b].checkDestroyed()){c[b].destroy();c.splice(b,1);b--;a=c.length}}};Spry.Widget.Tooltip.closeAll=function(){var c=Spry.Widget.Tooltip.loadQueue;var a=c.length;for(var b=0;b<a;b++){if(c[b].visibleTooltip){c[b].hideTooltip(true)}if(c[b].showTimer){clearTimeout(c[b].showTimer)}if(c[b].hideTimer){clearTimeout(c[b].hideTimer)}}};Spry.Widget.Tooltip.Animator=function(a,b){this.timer=null;this.fps=60;this.duration=500;this.startTime=0;this.transition=Spry.Widget.Tooltip.Animator.defaultTransition;this.onComplete=null;if(typeof a=="undefined"){return}this.element=Spry.Widget.Utils.getElement(a);Spry.Widget.Utils.setOptions(this,b,true);this.interval=this.duration/this.fps};Spry.Widget.Tooltip.Animator.defaultTransition=function(d,b,a,c){d/=c;return b+((2-d)*d*a)};Spry.Widget.Tooltip.Animator.prototype.start=function(){var a=this;this.startTime=(new Date).getTime();this.beforeStart();this.timer=setInterval(function(){a.stepAnimation()},this.interval)};Spry.Widget.Tooltip.Animator.prototype.stop=function(){if(this.timer){clearTimeout(this.timer)}this.timer=null};Spry.Widget.Tooltip.Animator.prototype.stepAnimation=function(){};Spry.Widget.Tooltip.Animator.prototype.beforeStart=function(){};Spry.Widget.Tooltip.Animator.prototype.destroy=function(){for(var a in this){try{delete this.k}catch(b){}}};Spry.Widget.Tooltip.Fade=function(a,b){Spry.Widget.Tooltip.Animator.call(this,a,b);if(Spry.is.ie){this.origOpacity=this.element.style.filter}else{this.origOpacity=this.element.style.opacity}};Spry.Widget.Tooltip.Fade.prototype=new Spry.Widget.Tooltip.Animator();Spry.Widget.Tooltip.Fade.prototype.constructor=Spry.Widget.Tooltip.Fade;Spry.Widget.Tooltip.Fade.prototype.stepAnimation=function(){var e=(new Date).getTime();var a=e-this.startTime;var c,f;if(a>=this.duration){this.beforeStop();this.stop();return}var b=this.transition(a,this.from,this.to-this.from,this.duration);if(Spry.is.ie){var d=this.element.style.filter.replace(/alpha\s*\(\s*opacity\s*=\s*[0-9\.]{1,3}\)/,"");this.element.style.filter=d+"alpha(opacity="+parseInt(b*100,10)+")"}else{this.element.style.opacity=b}this.element.style.visibility="visible";this.element.style.display="block"};Spry.Widget.Tooltip.Fade.prototype.beforeStop=function(){if(this.from>this.to){this.element.style.display="none"}if(Spry.is.mozilla){this.element.style.filter=this.origOpacity}else{this.element.style.opacity=this.origOpacity}};Spry.Widget.Tooltip.Blind=function(a,b){this.from=0;this.to=100;Spry.Widget.Tooltip.Animator.call(this,a,b);this.element.style.visibility="hidden";this.element.style.display="block";this.origHeight=parseInt(Spry.Widget.Utils.getStyleProperty(this.element,"height"),10);if(isNaN(this.origHeight)){this.origHeight=this.element.offsetHeight}if(this.to==0){this.from=this.origHeight}else{this.to=this.origHeight}};Spry.Widget.Tooltip.Blind.prototype=new Spry.Widget.Tooltip.Animator();Spry.Widget.Tooltip.Blind.prototype.constructor=Spry.Widget.Tooltip.Blind;Spry.Widget.Tooltip.Blind.prototype.beforeStart=function(){this.origOverflow=Spry.Widget.Utils.getStyleProperty(this.element,"overflow");this.element.style.overflow="hidden"};Spry.Widget.Tooltip.Blind.prototype.stepAnimation=function(){var d=(new Date).getTime();var a=d-this.startTime;var c,e;if(a>=this.duration){this.beforeStop();this.stop();return}var b=this.transition(a,this.from,this.to-this.from,this.duration);this.element.style.height=Math.floor(b)+"px";this.element.style.visibility="visible";this.element.style.display="block"};Spry.Widget.Tooltip.Blind.prototype.beforeStop=function(){this.element.style.overflow=this.origOverflow;if(this.from>this.to){this.element.style.display="none"}this.element.style.height=this.origHeight+"px"};if(!Spry.Widget.Utils){Spry.Widget.Utils={}}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.getElement=function(a){if(a&&typeof a=="string"){return document.getElementById(a)}return a};Spry.Widget.Utils.getElementsByClassName=function(a){if(!a.length>0){return null}var p=a.split(",");var b=[];for(var f=0;f<p.length;f++){var g=p[f];var n=g.split(" ");var o=[];o[0]=[];o[0][0]=document.body;for(var e=0;e<n.length;e++){var m=Spry.Widget.Utils.getSelectorTokens(n[e]);for(var d=0;d<o[e].length;d++){var h=o[e][d].getElementsByTagName("*");o[e+1]=[];for(var c=0;c<h.length;c++){if(Spry.Widget.Utils.hasSelector(h[c],m)){o[e+1].push(h[c])}}}}if(o[e]){for(var d=0;d<o[e].length;d++){b.push(o[e][d])}}}return b};Spry.Widget.Utils.firstValid=function(){var c=null;var b=Spry.Widget.Utils.firstValid;for(var d=0;d<b.arguments.length;d++){if(typeof(b.arguments[d])!="undefined"){c=b.arguments[d];break}}return c};Spry.Widget.Utils.getSelectorTokens=function(a){a=a.replace(/\./g," .");a=a.replace(/\#/g," #");a=a.replace(/^\s+|\s+$/g,"");return a.split(" ")};Spry.Widget.Utils.hasSelector=function(b,c){for(var a=0;a<c.length;a++){switch(c[a].charAt(0)){case".":if(!b.className||b.className.indexOf(c[a].substr(1))==-1){return false}break;case"#":if(!b.id||b.id!=c[a].substr(1)){return false}break;default:if(b.nodeName.toLowerCase!=c[a]){return false}break}}return true};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)}}}catch(f){}};Spry.Widget.Utils.getStyleProperty=function(b,g){var d;var c=Spry.Widget.Utils.camelize(g);try{if(b.style){d=b.style[c]}if(!d){if(document.defaultView&&document.defaultView.getComputedStyle){var a=document.defaultView.getComputedStyle(b,null);d=a?a.getPropertyValue(g):null}else{if(b.currentStyle){d=b.currentStyle[c]}}}}catch(f){}return d=="auto"?null:d};Spry.Widget.Utils.camelize=function(f){if(f.indexOf("-")==-1){return f}var d=f.split("-");var a=true;var b="";for(var c=0;c<d.length;c++){if(d[c].length>0){if(a){b=d[c];a=false}else{var e=d[c];b+=e.charAt(0).toUpperCase()+e.substring(1)}}}return b};Spry.Widget.Utils.getPixels=function(a,c){var b=Spry.Widget.Utils.getStyleProperty(a,c);if(b=="medium"){b=2}else{b=parseInt(b,10)}b=isNaN(b)?0:b;return b};Spry.Widget.Utils.getAbsoluteMousePosition=function(a){var b={x:0,y:0};if(a.pageX){b.x=a.pageX}else{if(a.clientX){b.x=a.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft)}}if(isNaN(b.x)){b.x=0}if(a.pageY){b.y=a.pageY}else{if(a.clientY){b.y=a.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)}}if(isNaN(b.y)){b.y=0}return b};Spry.Widget.Utils.getBorderBox=function(c,i){i=i||document;if(typeof c=="string"){c=i.getElementById(c)}if(!c){return false}if(c.parentNode===null||Spry.Widget.Utils.getStyleProperty(c,"display")=="none"){return false}var g={x:0,y:0,width:0,height:0};var j=null;var e;if(c.getBoundingClientRect){e=c.getBoundingClientRect();var b=i.documentElement.scrollTop||i.body.scrollTop;var d=i.documentElement.scrollLeft||i.body.scrollLeft;g.x=e.left+d;g.y=e.top+b;g.width=e.right-e.left;g.height=e.bottom-e.top}else{if(i.getBoxObjectFor){e=i.getBoxObjectFor(c);g.x=e.x;g.y=e.y;g.width=e.width;g.height=e.height;var h=Spry.Widget.Utils.getPixels(c,"border-top-width");var f=Spry.Widget.Utils.getPixels(c,"border-left-width");g.x-=f;g.y-=h}else{g.x=c.offsetLeft;g.y=c.offsetTop;g.width=c.offsetWidth;g.height=c.offsetHeight;j=c.offsetParent;if(j!=c){while(j){g.x+=j.offsetLeft;g.y+=j.offsetTop;j=j.offsetParent}}var f=Spry.Widget.Utils.getPixels(c,"border-left-width");var h=Spry.Widget.Utils.getPixels(c,"border-top-width");g.x-=f;g.y-=h;var a=navigator.userAgent.toLowerCase();if(Spry.is.opera||Spry.is.safari&&Spry.Widget.Utils.getStyleProperty(c,"position")=="absolute"){g.y-=i.body.offsetTop}}}if(c.parentNode){j=c.parentNode}else{j=null}while(j&&j.tagName!="BODY"&&j.tagName!="HTML"){g.x-=j.scrollLeft;g.y-=j.scrollTop;if(j.parentNode){j=j.parentNode}else{j=null}}return g};Spry.Widget.Utils.setBorderBox=function(b,c){var e=Spry.Widget.Utils.getBorderBox(b,b.ownerDocument);if(e===false){return false}var d={x:Spry.Widget.Utils.getPixels(b,"left"),y:Spry.Widget.Utils.getPixels(b,"top")};var a={x:0,y:0,w:0,h:0};if(typeof c.x=="number"){a.x=c.x-e.x+d.x}if(typeof c.y=="number"){a.y=c.y-e.y+d.y}if(typeof c.x=="number"){b.style.left=a.x+"px"}if(typeof c.y=="number"){b.style.top=a.y+"px"}return true};Spry.Widget.Utils.putElementAt=function(b,c,e,a){a=Spry.Widget.Utils.firstValid(a,true);var d=Spry.Widget.Utils.getBorderBox(b,b.ownerDocument);Spry.Widget.Utils.setBorderBox(b,c);if(a){Spry.Widget.Utils.bringIntoView(b)}return true};Spry.Widget.Utils.bringIntoView=function(d){var j=Spry.Widget.Utils.getBorderBox(d,d.ownerDocument);if(j===false){return false}var k={x:Spry.Widget.Utils.getPixels(d,"left"),y:Spry.Widget.Utils.getPixels(d,"top")};var o={x:0,y:0};var h={x:0,y:0};var e=d.ownerDocument.compatMode=="CSS1Compat";var n=(Spry.is.ie&&e||Spry.is.mozilla)?d.ownerDocument.documentElement:d.ownerDocument.body;h.x=Spry.Widget.Utils.getPixels(n,"border-left-width");h.y=Spry.Widget.Utils.getPixels(n,"border-top-width");var q=n.scrollTop;var c=self.innerHeight?self.innerHeight:n.clientHeight;var p=j.y+(Spry.is.ie?-h.y:h.y);var m=j.y+j.height+(Spry.is.ie?-h.y:h.y);if(m-q>c){o.y=c-(m-q);if(p+o.y<q){o.y=q-p}}else{if(p<q){o.y=q-p}}if(o.y!=0){d.style.top=(k.y+o.y)+"px"}var g=n.scrollLeft;var i=n.clientWidth;var f=j.x+(Spry.is.ie?-h.x:h.x);var a=j.x+j.width+(Spry.is.ie?-h.x:h.x);if(a-g>i){o.x=i-(a-g);if(f+o.x<g){o.x=g-f}}else{if(f<g){o.x=g-f}}if(o.x!=0){d.style.left=(k.x+o.x)+"px"}};Spry.Widget.Utils.contains=function(d,e){if(typeof d.contains=="object"){return e&&d&&(d==e||d.contains(e))}else{var c=e;while(c){try{if(c==d){return true}c=c.parentNode}catch(b){return false}}return false}};
