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();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.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()};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.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.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;Spry.Widget.Utils.isSpecialKey=function(a){return Spry.Widget.Utils.specialCharacters.indexOf(","+a.keyCode+",")!=-1};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(a,c){var b=a.getElementsByTagName(c);if(b){return b[0]}return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(a,b){while(a.parentNode&&a.parentNode.nodeName.toLowerCase()!=b.toLowerCase()&&a.parentNode.nodeName!="BODY"){a=a.parentNode}if(a.parentNode&&a.parentNode.nodeName.toLowerCase()==b.toLowerCase()){return a.parentNode}else{return null}};Spry.Widget.Utils.destroyWidgets=function(a){if(typeof a=="string"){a=document.getElementById(a)}var c=Spry.Widget.Form.onSubmitWidgetQueue;for(var b=0;b<Spry.Widget.Form.onSubmitWidgetQueue.length;b++){if(typeof(c[b].destroy)=="function"&&Spry.Widget.Utils.contains(a,c[b].element)){c[b].destroy();b--}}};Spry.Widget.Utils.contains=function(b,c){if(typeof b.contains=="object"){return c&&b&&(b==c||b.contains(c))}else{var a=c;while(a){if(a==b){return true}a=a.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(c,b,d,a){try{if(c.addEventListener){c.addEventListener(b,d,a)}else{if(c.attachEvent){c.attachEvent("on"+b,d,a)}}}catch(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.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}};