var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.BrowserSniff=function(){var H=navigator.appName.toString();var D=navigator.platform.toString();var B=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=this.safari=false;var F=/Opera.([0-9\.]*)/i;var C=/MSIE.([0-9\.]*)/i;var E=/gecko/i;var G=/(applewebkit|safari)\/([\d\.]*)/i;var A=false;if((A=B.match(F))){this.opera=true;this.version=parseFloat(A[1])}else{if((A=B.match(C))){this.ie=true;this.version=parseFloat(A[1])}else{if((A=B.match(G))){this.safari=true;this.version=parseFloat(A[2])}else{if(B.match(E)){var I=/rv:\s*([0-9\.]+)/i;A=B.match(I);this.mozilla=true;this.version=parseFloat(A[1])}}}}this.windows=this.mac=this.linux=false;this.Platform=B.match(/windows/i)?"windows":(B.match(/linux/i)?"linux":(B.match(/mac/i)?"mac":B.match(/unix/i)?"unix":"unknown"));this[this.Platform]=true;this.v=this.version;if(this.safari&&this.mac&&this.mozilla){this.mozilla=false}};Spry.is=new Spry.Widget.BrowserSniff();Spry.Widget.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(F){if(this.input.disabled==true||this.input.readOnly==true){return }if(!this.initialCursor){this.initialCursor=this.cursorPosition}if(this.flags.locked){return true}var G=this.input.value;var C=true;if(this.flags.hintOn){return true}if(F&&this.input&&this.options&&this.options.maxChars>0&&C){if(G.length>this.options.maxChars&&((!Spry.Widget.Utils.isSpecialKey(F)&&this.cursorPosition.start==this.cursorPosition.end)||(Spry.Widget.Utils.isSpecialKey(F)&&G!=this.initialValue)||this.cursorPosition.start!=this.cursorPosition.end)){this.flags.locked=true;var B=this.initialValue;var H=this.initialCursor.start;var A=this.initialCursor.end;if(B.length&&this.initialCursor.end<B.length){var D=A-H+this.options.maxChars-B.length;var E=B.substring(0,H)+G.substring(H,H+D)+B.substring(A,B.length<this.options.maxChars?B.length:this.options.maxChars);A=H+D}else{var E=G.substring(0,this.options.maxChars);A=H=this.options.maxChars}if(Spry.is.ie){this.input.innerText=E}else{this.input.value=E}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}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,E){var C=Spry.Widget.Form.onSubmitWidgetQueue;var A=C.length;for(var B=0;B<A;B++){if(!C[B].isDisabled()&&C[B].form==E&&typeof (C[B].reset)=="function"){C[B].reset()}}return true}}if(!Spry.Widget.Form.destroy){Spry.Widget.Form.destroy=function(B){var C=Spry.Widget.Form.onSubmitWidgetQueue;for(var A=0;A<Spry.Widget.Form.onSubmitWidgetQueue.length;A++){if(C[A].form==B&&typeof (C[A].destroy)=="function"){C[A].destroy();A--}}}}if(!Spry.Widget.Form.destroyAll){Spry.Widget.Form.destroyAll=function(){var B=Spry.Widget.Form.onSubmitWidgetQueue;for(var A=0;A<Spry.Widget.Form.onSubmitWidgetQueue.length;A++){if(typeof (B[A].destroy)=="function"){B[A].destroy();A--}}}}if(!Spry.Widget.Utils){Spry.Widget.Utils={}}Spry.Widget.Utils.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(E){}};Spry.Widget.Utils.removeEventListener=function(C,B,D,A){try{if(C.removeEventListener){C.removeEventListener(B,D,A)}else{if(C.detachEvent){C.detachEvent("on"+B,D,A)}}}catch(E){}};Spry.Widget.Utils.stopEvent=function(A){try{this.stopPropagation(A);this.preventDefault(A)}catch(B){}};Spry.Widget.Utils.stopPropagation=function(A){if(A.stopPropagation){A.stopPropagation()}else{A.cancelBubble=true}};Spry.Widget.Utils.preventDefault=function(A){if(A.preventDefault){A.preventDefault()}else{A.returnValue=false}};