function gup(name){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);if(results==null)return"";else return results[1]}var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.CollapsiblePanel=function(element,opts){this.init(element);Spry.Widget.CollapsiblePanel.setOptions(this,opts);this.attachBehaviors()};Spry.Widget.CollapsiblePanel.prototype.init=function(element){this.element=this.getElement(element);this.focusElement=null;this.hoverClass="CollapsiblePanelTabHover";this.openClass="CollapsiblePanelOpen";this.closedClass="CollapsiblePanelClosed";this.focusedClass="CollapsiblePanelFocused";this.enableAnimation=true;this.enableKeyboardNavigation=true;this.animator=null;this.hasFocus=false;this.contentIsOpen=true};Spry.Widget.CollapsiblePanel.prototype.getElement=function(ele){if(ele&&typeof ele=="string")return document.getElementById(ele);return ele};Spry.Widget.CollapsiblePanel.prototype.addClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1)return;ele.className+=(ele.className?" ":"")+className};Spry.Widget.CollapsiblePanel.prototype.removeClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"")};Spry.Widget.CollapsiblePanel.prototype.hasClassName=function(ele,className){if(!ele||!className||!ele.className||ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return false;return true};Spry.Widget.CollapsiblePanel.prototype.setDisplay=function(ele,display){if(ele)ele.style.display=display};Spry.Widget.CollapsiblePanel.setOptions=function(obj,optionsObj,ignoreUndefinedProps){if(!optionsObj)return;for(var optionName in optionsObj){if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)continue;obj[optionName]=optionsObj[optionName]}};Spry.Widget.CollapsiblePanel.prototype.onTabMouseOver=function(){this.addClassName(this.getTab(),this.hoverClass)};Spry.Widget.CollapsiblePanel.prototype.onTabMouseOut=function(){this.removeClassName(this.getTab(),this.hoverClass)};Spry.Widget.CollapsiblePanel.prototype.open=function(){this.contentIsOpen=true;if(this.enableAnimation){if(this.animator)this.animator.stop();this.animator=new Spry.Widget.CollapsiblePanel.PanelAnimator(this,true);this.animator.start()}else this.setDisplay(this.getContent(),"block");this.removeClassName(this.element,this.closedClass);this.addClassName(this.element,this.openClass)};Spry.Widget.CollapsiblePanel.prototype.close=function(){this.contentIsOpen=false;if(this.enableAnimation){if(this.animator)this.animator.stop();this.animator=new Spry.Widget.CollapsiblePanel.PanelAnimator(this,false);this.animator.start()}else this.setDisplay(this.getContent(),"none");this.removeClassName(this.element,this.openClass);this.addClassName(this.element,this.closedClass)};Spry.Widget.CollapsiblePanel.prototype.onTabClick=function(){if(this.isOpen())this.close();else this.open();this.focus()};Spry.Widget.CollapsiblePanel.prototype.onFocus=function(e){this.hasFocus=true;this.addClassName(this.element,this.focusedClass)};Spry.Widget.CollapsiblePanel.prototype.onBlur=function(e){this.hasFocus=false;this.removeClassName(this.element,this.focusedClass)};Spry.Widget.CollapsiblePanel.ENTER_KEY=13;Spry.Widget.CollapsiblePanel.SPACE_KEY=32;Spry.Widget.CollapsiblePanel.prototype.onKeyDown=function(e){var key=e.keyCode;if(!this.hasFocus||key!=Spry.Widget.CollapsiblePanel.ENTER_KEY&&key!=Spry.Widget.CollapsiblePanel.SPACE_KEY)return true;if(this.isOpen())this.close();else this.open();if(e.stopPropagation)e.stopPropagation();if(e.preventDefault)e.preventDefault();return false};Spry.Widget.CollapsiblePanel.prototype.attachPanelHandlers=function(){var tab=this.getTab();if(!tab)return;var self=this;Spry.Widget.CollapsiblePanel.addEventListener(tab,"click",function(e){return self.onTabClick()},false);Spry.Widget.CollapsiblePanel.addEventListener(tab,"mouseover",function(e){return self.onTabMouseOver()},false);Spry.Widget.CollapsiblePanel.addEventListener(tab,"mouseout",function(e){return self.onTabMouseOut()},false);if(this.enableKeyboardNavigation){var tabIndexEle=null;var tabAnchorEle=null;this.preorderTraversal(tab,function(node){if(node.nodeType==1){var tabIndexAttr=tab.attributes.getNamedItem("tabindex");if(tabIndexAttr){tabIndexEle=node;return true}if(!tabAnchorEle&&node.nodeName.toLowerCase()=="a")tabAnchorEle=node}return false});if(tabIndexEle)this.focusElement=tabIndexEle;else if(tabAnchorEle)this.focusElement=tabAnchorEle;if(this.focusElement){Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement,"focus",function(e){return self.onFocus(e)},false);Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement,"blur",function(e){return self.onBlur(e)},false);Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement,"keydown",function(e){return self.onKeyDown(e)},false)}}};Spry.Widget.CollapsiblePanel.addEventListener=function(element,eventType,handler,capture){try{if(element.addEventListener)element.addEventListener(eventType,handler,capture);else if(element.attachEvent)element.attachEvent("on"+eventType,handler)}catch(e){}};Spry.Widget.CollapsiblePanel.prototype.preorderTraversal=function(root,func){var stopTraversal=false;if(root){stopTraversal=func(root);if(root.hasChildNodes()){var child=root.firstChild;while(!stopTraversal&&child){stopTraversal=this.preorderTraversal(child,func);try{child=child.nextSibling}catch(e){child=null}}}}return stopTraversal};Spry.Widget.CollapsiblePanel.prototype.attachBehaviors=function(){var panel=this.element;var tab=this.getTab();var content=this.getContent();if(this.contentIsOpen||this.hasClassName(panel,this.openClass)){this.removeClassName(panel,this.closedClass);this.setDisplay(content,"block");this.contentIsOpen=true}else{this.removeClassName(panel,this.openClass);this.addClassName(panel,this.closedClass);this.setDisplay(content,"none");this.contentIsOpen=false}this.attachPanelHandlers()};Spry.Widget.CollapsiblePanel.prototype.getTab=function(){return this.getElementChildren(this.element)[0]};Spry.Widget.CollapsiblePanel.prototype.getContent=function(){return this.getElementChildren(this.element)[1]};Spry.Widget.CollapsiblePanel.prototype.isOpen=function(){return this.contentIsOpen};Spry.Widget.CollapsiblePanel.prototype.getElementChildren=function(element){var children=[];var child=element.firstChild;while(child){if(child.nodeType==1)children.push(child);child=child.nextSibling}return children};Spry.Widget.CollapsiblePanel.prototype.focus=function(){if(this.focusElement&&this.focusElement.focus)this.focusElement.focus()};Spry.Widget.CollapsiblePanel.PanelAnimator=function(panel,doOpen,opts){this.timer=null;this.interval=0;this.stepCount=0;this.fps=0;this.steps=10;this.duration=500;this.onComplete=null;this.panel=panel;this.content=panel.getContent();this.panelData=[];this.doOpen=doOpen;Spry.Widget.CollapsiblePanel.setOptions(this,opts);if(this.fps>0){this.interval=Math.floor(1000/this.fps);this.steps=parseInt((this.duration+(this.interval-1))/this.interval)}else if(this.steps>0)this.interval=this.duration/this.steps;var c=this.content;var curHeight=c.offsetHeight?c.offsetHeight:0;if(doOpen&&c.style.display=="none")this.fromHeight=0;else this.fromHeight=curHeight;if(!doOpen)this.toHeight=0;else{if(c.style.display=="none"){c.style.visibility="hidden";c.style.display="block"}c.style.height="";this.toHeight=c.offsetHeight}this.increment=(this.toHeight-this.fromHeight)/this.steps;this.overflow=c.style.overflow;c.style.height=this.fromHeight+"px";c.style.visibility="visible";c.style.overflow="hidden";c.style.display="block"};Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.start=function(){var self=this;this.timer=setTimeout(function(){self.stepAnimation()},this.interval)};Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stop=function(){if(this.timer){clearTimeout(this.timer);if(this.stepCount<this.steps)this.content.style.overflow=this.overflow}this.timer=null};Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stepAnimation=function(){++this.stepCount;this.animate();if(this.stepCount<this.steps)this.start();else if(this.onComplete)this.onComplete()};Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.animate=function(){if(this.stepCount>=this.steps){if(!this.doOpen)this.content.style.display="none";this.content.style.overflow=this.overflow;this.content.style.height=this.toHeight+"px"}else{this.fromHeight+=this.increment;this.content.style.height=this.fromHeight+"px"}};var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.ValidationSelect=function(element,opts){this.init(element);Spry.Widget.Utils.setOptions(this,opts);var validateOn=["submit"].concat(this.validateOn||[]);validateOn=validateOn.join(",");this.validateOn=0|(validateOn.indexOf("submit")!=-1?Spry.Widget.ValidationSelect.ONSUBMIT:0);this.validateOn=this.validateOn|(validateOn.indexOf("blur")!=-1?Spry.Widget.ValidationSelect.ONBLUR:0);this.validateOn=this.validateOn|(validateOn.indexOf("change")!=-1?Spry.Widget.ValidationSelect.ONCHANGE:0);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(element){this.element=this.getElement(element);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(){for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);try{delete this.element}catch(err){}try{delete this.selectElement}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(q[i]==this){q.splice(i,1);break}};Spry.Widget.ValidationSelect.onloadDidFire=false;Spry.Widget.ValidationSelect.loadQueue=[];Spry.Widget.ValidationSelect.prototype.getElement=function(ele){if(ele&&typeof ele=="string")return document.getElementById(ele);return ele};Spry.Widget.ValidationSelect.processLoadQueue=function(handler){Spry.Widget.ValidationSelect.onloadDidFire=true;var q=Spry.Widget.ValidationSelect.loadQueue;var qlen=q.length;for(var i=0;i<qlen;i++)q[i].attachBehaviors()};Spry.Widget.ValidationSelect.addLoadListener=function(handler){if(typeof window.addEventListener!="undefined")window.addEventListener("load",handler,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",handler,false);else if(typeof window.attachEvent!="undefined")window.attachEvent("onload",handler)};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 self=this;this.event_handlers=[];var focusEventName="focus";if(navigator.userAgent.toLowerCase().indexOf("msie 7.")!=-1)focusEventName="beforeactivate";this.event_handlers.push([this.selectElement,focusEventName,function(e){if(self.isDisabled())return true;return self.onFocus(e)}]);this.event_handlers.push([this.selectElement,"blur",function(e){if(self.isDisabled())return true;return self.onBlur(e)}]);if(this.validateOn&Spry.Widget.ValidationSelect.ONCHANGE){this.event_handlers.push([this.selectElement,"change",function(e){if(self.isDisabled())return true;return self.onChange(e)}]);this.event_handlers.push([this.selectElement,"keypress",function(e){if(self.isDisabled())return true;return self.onChange(e)}])}for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][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(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};Spry.Widget.ValidationSelect.prototype.addClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1)return;ele.className+=(ele.className?" ":"")+className};Spry.Widget.ValidationSelect.prototype.removeClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"")};Spry.Widget.ValidationSelect.prototype.onFocus=function(e){this.hasFocus=true;this.validatedByOnChangeEvent=false;this.addClassName(this.element,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onBlur=function(e){this.hasFocus=false;var doValidation=false;if(this.validateOn&Spry.Widget.ValidationSelect.ONBLUR)doValidation=true;if(doValidation&&!this.validatedByOnChangeEvent)this.validate();this.removeClassName(this.element,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onChange=function(e){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)};Spry.Widget.ValidationSelect.prototype.validate=function(){this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidClass);this.removeClassName(this.element,this.validClass);if(this.isRequired){if(this.selectElement.options.length==0||this.selectElement.selectedIndex==-1){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].getAttribute("value")==null){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].value==this.emptyValue){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].disabled){this.addClassName(this.element,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);return false}this.addClassName(this.element,this.validClass);return true};Spry.Widget.ValidationSelect.prototype.isDisabled=function(){return this.selectElement.disabled};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(vform){var isValid=true;var isElementValid=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform){isElementValid=q[i].validate();isValid=isElementValid&&isValid}return isValid};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(e,form){if(Spry.Widget.Form.validate(form)==false)return false;return true};if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(e,vform){var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform&&typeof q[i].reset=="function")q[i].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(form){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(q[i].form==form&&typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.setOptions=function(obj,optionsObj,ignoreUndefinedProps){if(!optionsObj)return;for(var optionName in optionsObj){if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)continue;obj[optionName]=optionsObj[optionName]}};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(node,nodeName){var elements=node.getElementsByTagName(nodeName);if(elements)return elements[0];return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(node,nodeName){while(node.parentNode&&node.parentNode.nodeName.toLowerCase()!=nodeName.toLowerCase()&&node.parentNode.nodeName!="BODY")node=node.parentNode;if(node.parentNode&&node.parentNode.nodeName.toLowerCase()==nodeName.toLowerCase())return node.parentNode;else return null};Spry.Widget.Utils.destroyWidgets=function(container){if(typeof container=="string")container=document.getElementById(container);var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"&&Spry.Widget.Utils.contains(container,q[i].element)){q[i].destroy();i--}};Spry.Widget.Utils.contains=function(who,what){if(typeof who.contains=="object")return what&&who&&(who==what||who.contains(what));else{var el=what;while(el){if(el==who)return true;el=el.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(element,eventType,handler,capture){try{if(element.addEventListener)element.addEventListener(eventType,handler,capture);else if(element.attachEvent)element.attachEvent("on"+eventType,handler,capture)}catch(e){}};Spry.Widget.Utils.removeEventListener=function(element,eventType,handler,capture){try{if(element.removeEventListener)element.removeEventListener(eventType,handler,capture);else if(element.detachEvent)element.detachEvent("on"+eventType,handler,capture)}catch(e){}};var Spry;if(!Spry)Spry={};Spry.forwards=1;Spry.backwards=2;Spry.linearTransition=1;Spry.sinusoidalTransition=2;if(!Spry.Effect)Spry.Effect={};Spry.Effect.Registry=function(){this.elements=new Array;_AnimatedElement=function(element){this.element=element;this.currentEffect=-1;this.effectArray=new Array};this.AnimatedElement=_AnimatedElement};Spry.Effect.Registry.prototype.getRegisteredEffect=function(element,effect){var eleIdx=this.getIndexOfElement(element);if(eleIdx==-1){this.elements[this.elements.length]=new this.AnimatedElement(element);eleIdx=this.elements.length-1}var foundEffectArrayIdx=-1;for(var i=0;i<this.elements[eleIdx].effectArray.length;i++)if(this.elements[eleIdx].effectArray[i])if(this.effectsAreTheSame(this.elements[eleIdx].effectArray[i],effect)){foundEffectArrayIdx=i;if(this.elements[eleIdx].effectArray[i].isRunning==true)this.elements[eleIdx].effectArray[i].cancel();this.elements[eleIdx].currentEffect=i;if(this.elements[eleIdx].effectArray[i].options&&this.elements[eleIdx].effectArray[i].options.toggle!=null){if(this.elements[eleIdx].effectArray[i].options.toggle==true)this.elements[eleIdx].effectArray[i].doToggle()}else this.elements[eleIdx].effectArray[i]=effect;break}if(foundEffectArrayIdx==-1){var currEffectIdx=this.elements[eleIdx].effectArray.length;this.elements[eleIdx].effectArray[currEffectIdx]=effect;this.elements[eleIdx].currentEffect=currEffectIdx}var idx=this.elements[eleIdx].currentEffect;return this.elements[eleIdx].effectArray[idx]};Spry.Effect.Registry.prototype.getIndexOfElement=function(element){var registryIndex=-1;for(var i=0;i<this.elements.length;i++)if(this.elements[i])if(this.elements[i].element==element)registryIndex=i;return registryIndex};Spry.Effect.Registry.prototype.effectsAreTheSame=function(effectA,effectB){if(effectA.name!=effectB.name)return false;if(effectA.effectsArray){if(!effectB.effectsArray||effectA.effectsArray.length!=effectB.effectsArray.length)return false;for(var i=0;i<effectA.effectsArray.length;i++)if(!Spry.Effect.Utils.optionsAreIdentical(effectA.effectsArray[i].effect.options,effectB.effectsArray[i].effect.options))return false}else if(effectB.effectsArray||!Spry.Effect.Utils.optionsAreIdentical(effectA.options,effectB.options))return false;return true};var SpryRegistry=new Spry.Effect.Registry;if(!Spry.Effect.Utils)Spry.Effect.Utils={};Spry.Effect.Utils.showError=function(msg){alert("Spry.Effect ERR: "+msg)};Spry.Effect.Utils.Position=function(){this.x=0;this.y=0;this.units="px"};Spry.Effect.Utils.Rectangle=function(){this.width=0;this.height=0;this.units="px"};Spry.Effect.Utils.PositionedRectangle=function(){this.position=new Spry.Effect.Utils.Position;this.rectangle=new Spry.Effect.Utils.Rectangle};Spry.Effect.Utils.intToHex=function(integerNum){var result=integerNum.toString(16);if(result.length==1)result="0"+result;return result};Spry.Effect.Utils.hexToInt=function(hexStr){return parseInt(hexStr,16)};Spry.Effect.Utils.rgb=function(redInt,greenInt,blueInt){var redHex=Spry.Effect.Utils.intToHex(redInt);var greenHex=Spry.Effect.Utils.intToHex(greenInt);var blueHex=Spry.Effect.Utils.intToHex(blueInt);compositeColorHex=redHex.concat(greenHex,blueHex);compositeColorHex="#"+compositeColorHex;return compositeColorHex};Spry.Effect.Utils.camelize=function(stringToCamelize){var oStringList=stringToCamelize.split("-");var isFirstEntry=true;var camelizedString="";for(var i=0;i<oStringList.length;i++)if(oStringList[i].length>0)if(isFirstEntry){camelizedString=oStringList[i];isFirstEntry=false}else{var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1)}return camelizedString};Spry.Effect.Utils.isPercentValue=function(value){var result=false;try{if(value.lastIndexOf("%")>0)result=true}catch(e){}return result};Spry.Effect.Utils.getPercentValue=function(value){var result=0;try{result=Number(value.substring(0,value.lastIndexOf("%")))}catch(e){Spry.Effect.Utils.showError("Spry.Effect.Utils.getPercentValue: "+e)}return result};Spry.Effect.Utils.getPixelValue=function(value){var result=0;try{result=Number(value.substring(0,value.lastIndexOf("px")))}catch(e){}return result};Spry.Effect.Utils.getFirstChildElement=function(node){if(node){var childCurr=node.firstChild;while(childCurr){if(childCurr.nodeType==1)return childCurr;childCurr=childCurr.nextSibling}}return null};Spry.Effect.Utils.fetchChildImages=function(startEltIn,targetImagesOut){if(!startEltIn||startEltIn.nodeType!=1||!targetImagesOut)return;if(startEltIn.hasChildNodes()){var childImages=startEltIn.getElementsByTagName("img");var imageCnt=childImages.length;for(var i=0;i<imageCnt;i++){var imgCurr=childImages[i];var dimensionsCurr=Spry.Effect.getDimensions(imgCurr);targetImagesOut.push([imgCurr,dimensionsCurr.width,dimensionsCurr.height])}}};Spry.Effect.Utils.optionsAreIdentical=function(optionsA,optionsB){if(optionsA==null&&optionsB==null)return true;if(optionsA!=null&&optionsB!=null){var objectCountA=0;var objectCountB=0;for(var propA in optionsA)objectCountA++;for(var propB in optionsB)objectCountB++;if(objectCountA!=objectCountB)return false;for(var prop in optionsA)if(optionsA[prop]===undefined){if(optionsB[prop]!==undefined)return false}else if(optionsB[prop]===undefined||optionsA[prop]!=optionsB[prop])return false;return true}return false};Spry.Effect.getElement=function(ele){var element=null;if(ele&&typeof ele=="string")element=document.getElementById(ele);else element=ele;if(element==null)Spry.Effect.Utils.showError('Element "'+ele+'" not found.');return element};Spry.Effect.getStyleProp=function(element,prop){var value;try{value=element.style[Spry.Effect.Utils.camelize(prop)];if(!value)if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(prop):null}else if(element.currentStyle)value=element.currentStyle[Spry.Effect.Utils.camelize(prop)]}catch(e){Spry.Effect.Utils.showError("Spry.Effect.getStyleProp: "+e)}return value=="auto"?null:value};Spry.Effect.getStylePropRegardlessOfDisplayState=function(element,prop,displayElement){var refElement=displayElement?displayElement:element;var displayOrig=Spry.Effect.getStyleProp(refElement,"display");var visibilityOrig=Spry.Effect.getStyleProp(refElement,"visibility");if(displayOrig=="none"){Spry.Effect.setStyleProp(refElement,"visibility","hidden");Spry.Effect.setStyleProp(refElement,"display","block");if(window.opera)refElement.focus()}var styleProp=Spry.Effect.getStyleProp(element,prop);if(displayOrig=="none"){Spry.Effect.setStyleProp(refElement,"display","none");Spry.Effect.setStyleProp(refElement,"visibility",visibilityOrig)}return styleProp};Spry.Effect.setStyleProp=function(element,prop,value){try{element.style[Spry.Effect.Utils.camelize(prop)]=value}catch(e){Spry.Effect.Utils.showError("Spry.Effect.setStyleProp: "+e)}return null};Spry.Effect.makePositioned=function(element){var pos=Spry.Effect.getStyleProp(element,"position");if(!pos||pos=="static"){element.style.position="relative";if(window.opera){element.style.top=0;element.style.left=0}}};Spry.Effect.isInvisible=function(element){var propDisplay=Spry.Effect.getStyleProp(element,"display");if(propDisplay&&propDisplay.toLowerCase()=="none")return true;var propVisible=Spry.Effect.getStyleProp(element,"visibility");if(propVisible&&propVisible.toLowerCase()=="hidden")return true;return false};Spry.Effect.enforceVisible=function(element){var propDisplay=Spry.Effect.getStyleProp(element,"display");if(propDisplay&&propDisplay.toLowerCase()=="none")Spry.Effect.setStyleProp(element,"display","block");var propVisible=Spry.Effect.getStyleProp(element,"visibility");if(propVisible&&propVisible.toLowerCase()=="hidden")Spry.Effect.setStyleProp(element,"visibility","visible")};Spry.Effect.makeClipping=function(element){var overflow=Spry.Effect.getStyleProp(element,"overflow");if(overflow!="hidden"&&overflow!="scroll"){var heightCache=0;var needsCache=/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent);if(needsCache)heightCache=Spry.Effect.getDimensionsRegardlessOfDisplayState(element).height;Spry.Effect.setStyleProp(element,"overflow","hidden");if(needsCache)Spry.Effect.setStyleProp(element,"height",heightCache+"px")}};Spry.Effect.cleanWhitespace=function(element){var childCountInit=element.childNodes.length;for(var i=childCountInit-1;i>=0;i--){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))try{element.removeChild(node)}catch(e){Spry.Effect.Utils.showError("Spry.Effect.cleanWhitespace: "+e)}}};Spry.Effect.getComputedStyle=function(element){var computedStyle=/MSIE/.test(navigator.userAgent)?element.currentStyle:document.defaultView.getComputedStyle(element,null);return computedStyle};Spry.Effect.getDimensions=function(element){var dimensions=new Spry.Effect.Utils.Rectangle;var computedStyle=null;if(element.style.width&&/px/i.test(element.style.width))dimensions.width=parseInt(element.style.width);else{computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.width&&/px/i.test(computedStyle.width);if(tryComputedStyle)dimensions.width=parseInt(computedStyle.width);if(!tryComputedStyle||dimensions.width==0)dimensions.width=element.offsetWidth}if(element.style.height&&/px/i.test(element.style.height))dimensions.height=parseInt(element.style.height);else{if(!computedStyle)computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.height&&/px/i.test(computedStyle.height);if(tryComputedStyle)dimensions.height=parseInt(computedStyle.height);if(!tryComputedStyle||dimensions.height==0)dimensions.height=element.offsetHeight}return dimensions};Spry.Effect.getDimensionsRegardlessOfDisplayState=function(element,displayElement){var refElement=displayElement?displayElement:element;var displayOrig=Spry.Effect.getStyleProp(refElement,"display");var visibilityOrig=Spry.Effect.getStyleProp(refElement,"visibility");if(displayOrig=="none"){Spry.Effect.setStyleProp(refElement,"visibility","hidden");Spry.Effect.setStyleProp(refElement,"display","block");if(window.opera)refElement.focus()}var dimensions=Spry.Effect.getDimensions(element);if(displayOrig=="none"){Spry.Effect.setStyleProp(refElement,"display","none");Spry.Effect.setStyleProp(refElement,"visibility",visibilityOrig)}return dimensions};Spry.Effect.getOpacity=function(element){var o=Spry.Effect.getStyleProp(element,"opacity");if(o==undefined||o==null)o=1;return o};Spry.Effect.getColor=function(element){var c=Spry.Effect.getStyleProp(ele,"background-color");return c};Spry.Effect.getPosition=function(element){var position=new Spry.Effect.Utils.Position;var computedStyle=null;if(element.style.left&&/px/i.test(element.style.left))position.x=parseInt(element.style.left);else{computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.left&&/px/i.test(computedStyle.left);if(tryComputedStyle)position.x=parseInt(computedStyle.left);if(!tryComputedStyle||position.x==0)position.x=element.offsetLeft}if(element.style.top&&/px/i.test(element.style.top))position.y=parseInt(element.style.top);else{if(!computedStyle)computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.top&&/px/i.test(computedStyle.top);if(tryComputedStyle)position.y=parseInt(computedStyle.top);if(!tryComputedStyle||position.y==0)position.y=element.offsetTop}return position};Spry.Effect.getOffsetPosition=Spry.Effect.getPosition;Spry.Effect.Animator=function(options){this.name="Animator";this.element=null;this.timer=null;this.direction=Spry.forwards;this.startMilliseconds=0;this.repeat="none";this.isRunning=false;this.options={duration:500,toggle:false,transition:Spry.linearTransition,interval:33};this.setOptions(options)};Spry.Effect.Animator.prototype.setOptions=function(options){if(!options)return;for(var prop in options)this.options[prop]=options[prop]};Spry.Effect.Animator.prototype.start=function(withoutTimer){if(arguments.length==0)withoutTimer=false;var self=this;if(this.options.setup)try{this.options.setup(this.element,this)}catch(e){Spry.Effect.Utils.showError("Spry.Effect.Animator.prototype.start: setup callback: "+e)}this.prepareStart();var currDate=new Date;this.startMilliseconds=currDate.getTime();if(withoutTimer==false)this.timer=setInterval(function(){self.drawEffect()},this.options.interval);this.isRunning=true};Spry.Effect.Animator.prototype.stop=function(){if(this.timer){clearInterval(this.timer);this.timer=null}this.startMilliseconds=0;if(this.options.finish)try{this.options.finish(this.element,this)}catch(e){Spry.Effect.Utils.showError("Spry.Effect.Animator.prototype.stop: finish callback: "+e)}this.isRunning=false};Spry.Effect.Animator.prototype.cancel=function(){if(this.timer){clearInterval(this.timer);this.timer=null}this.isRunning=false};Spry.Effect.Animator.prototype.drawEffect=function(){var isRunning=true;var position=this.getElapsedMilliseconds()/this.options.duration;if(this.getElapsedMilliseconds()>this.options.duration)position=1;else if(this.options.transition==Spry.sinusoidalTransition)position=-Math.cos(position*Math.PI)/2+0.5;else if(this.options.transition==Spry.linearTransition);else Spry.Effect.Utils.showError("unknown transition");this.animate(position);if(this.getElapsedMilliseconds()>this.options.duration){this.stop();isRunning=false}return isRunning};Spry.Effect.Animator.prototype.getElapsedMilliseconds=function(){if(this.startMilliseconds>0){var currDate=new Date;return currDate.getTime()-this.startMilliseconds}else return 0};Spry.Effect.Animator.prototype.doToggle=function(){if(this.options.toggle==true)if(this.direction==Spry.forwards)this.direction=Spry.backwards;else if(this.direction==Spry.backwards)this.direction=Spry.forwards};Spry.Effect.Animator.prototype.prepareStart=function(){};Spry.Effect.Animator.prototype.animate=function(position){};Spry.Effect.Move=function(element,fromPos,toPos,options){this.dynamicFromPos=false;if(arguments.length==3){options=toPos;toPos=fromPos;fromPos=Spry.Effect.getPosition(element);this.dynamicFromPos=true}Spry.Effect.Animator.call(this,options);this.name="Move";this.element=Spry.Effect.getElement(element);if(fromPos.units!=toPos.units)Spry.Effect.Utils.showError("Spry.Effect.Move: Conflicting units ("+fromPos.units+", "+toPos.units+")");this.units=fromPos.units;this.startX=fromPos.x;this.stopX=toPos.x;this.startY=fromPos.y;this.stopY=toPos.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY};Spry.Effect.Move.prototype=new Spry.Effect.Animator;Spry.Effect.Move.prototype.constructor=Spry.Effect.Move;Spry.Effect.Move.prototype.animate=function(position){var left=0;var top=0;if(this.direction==Spry.forwards){left=this.startX-this.rangeMoveX*position;top=this.startY-this.rangeMoveY*position}else if(this.direction==Spry.backwards){left=this.rangeMoveX*position+this.stopX;top=this.rangeMoveY*position+this.stopY}this.element.style.left=left+this.units;this.element.style.top=top+this.units};Spry.Effect.Move.prototype.prepareStart=function(){if(this.dynamicFromPos==true){var fromPos=Spry.Effect.getPosition(this.element);this.startX=fromPos.x;this.startY=fromPos.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY}};Spry.Effect.MoveSlide=function(element,fromPos,toPos,horizontal,options){this.dynamicFromPos=false;if(arguments.length==4){options=horizontal;horizontal=toPos;toPos=fromPos;fromPos=Spry.Effect.getPosition(element);this.dynamicFromPos=true}Spry.Effect.Animator.call(this,options);this.name="MoveSlide";this.element=Spry.Effect.getElement(element);this.horizontal=horizontal;this.firstChildElement=Spry.Effect.Utils.getFirstChildElement(element);this.overflow=Spry.Effect.getStyleProp(this.element,"overflow");this.originalChildRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(this.firstChildElement,this.element);if(fromPos.units!=toPos.units)Spry.Effect.Utils.showError("Spry.Effect.MoveSlide: Conflicting units ("+fromPos.units+", "+toPos.units+")");this.units=fromPos.units;var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.startHeight=originalRect.height;this.startX=Number(fromPos.x);this.stopX=Number(toPos.x);this.startY=Number(fromPos.y);this.stopY=Number(toPos.y);this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.MoveSlide.prototype=new Spry.Effect.Animator;Spry.Effect.MoveSlide.prototype.constructor=Spry.Effect.MoveSlide;Spry.Effect.MoveSlide.prototype.animate=function(position){if(this.horizontal){var xStart=this.direction==Spry.forwards?this.startX:this.stopX;var xStop=this.direction==Spry.forwards?this.stopX:this.startX;var eltWidth=xStart+position*(xStop-xStart);if(eltWidth<0)eltWidth=0;if(this.overflow!="scroll"||eltWidth>this.originalChildRect.width)this.firstChildElement.style.left=eltWidth-this.originalChildRect.width+this.units;this.element.style.width=eltWidth+this.units}else{var yStart=this.direction==Spry.forwards?this.startY:this.stopY;var yStop=this.direction==Spry.forwards?this.stopY:this.startY;var eltHeight=yStart+position*(yStop-yStart);if(eltHeight<0)eltHeight=0;if(this.overflow!="scroll"||eltHeight>this.originalChildRect.height)this.firstChildElement.style.top=eltHeight-this.originalChildRect.height+this.units;this.element.style.height=eltHeight+this.units}if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.MoveSlide.prototype.prepareStart=function(){if(this.dynamicFromPos==true){var fromPos=Spry.Effect.getPosition(this.element);this.startX=fromPos.x;this.startY=fromPos.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY}};Spry.Effect.Size=function(element,fromRect,toRect,options){this.dynamicFromRect=false;if(arguments.length==3){options=toRect;toRect=fromRect;fromRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.dynamicFromRect=true}Spry.Effect.Animator.call(this,options);this.name="Size";this.element=Spry.Effect.getElement(element);if(fromRect.units!=toRect.units)Spry.Effect.Utils.showError("Spry.Effect.Size: Conflicting units ("+fromRect.units+", "+toRect.units+")");this.units=fromRect.units;var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.originalWidth=originalRect.width;this.startWidth=fromRect.width;this.startHeight=fromRect.height;this.stopWidth=toRect.width;this.stopHeight=toRect.height;this.childImages=new Array;if(this.options.scaleContent)Spry.Effect.Utils.fetchChildImages(element,this.childImages);this.fontFactor=1;if(this.element.style&&this.element.style.fontSize)if(/em\s*$/.test(this.element.style.fontSize))this.fontFactor=parseFloat(this.element.style.fontSize);if(Spry.Effect.Utils.isPercentValue(this.startWidth)){var startWidthPercent=Spry.Effect.Utils.getPercentValue(this.startWidth);this.startWidth=originalRect.width*(startWidthPercent/100)}if(Spry.Effect.Utils.isPercentValue(this.startHeight)){var startHeightPercent=Spry.Effect.Utils.getPercentValue(this.startHeight);this.startHeight=originalRect.height*(startHeightPercent/100)}if(Spry.Effect.Utils.isPercentValue(this.stopWidth)){var stopWidthPercent=Spry.Effect.Utils.getPercentValue(this.stopWidth);var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.stopWidth=originalRect.width*(stopWidthPercent/100)}if(Spry.Effect.Utils.isPercentValue(this.stopHeight)){var stopHeightPercent=Spry.Effect.Utils.getPercentValue(this.stopHeight);var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.stopHeight=originalRect.height*(stopHeightPercent/100)}this.widthRange=this.startWidth-this.stopWidth;this.heightRange=this.startHeight-this.stopHeight;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.Size.prototype=new Spry.Effect.Animator;Spry.Effect.Size.prototype.constructor=Spry.Effect.Size;Spry.Effect.Size.prototype.animate=function(position){var width=0;var height=0;var fontSize=0;if(this.direction==Spry.forwards){width=this.startWidth-this.widthRange*position;height=this.startHeight-this.heightRange*position;fontSize=this.fontFactor*(this.startWidth+position*(this.stopWidth-this.startWidth))/this.originalWidth}else if(this.direction==Spry.backwards){width=this.widthRange*position+this.stopWidth;height=this.heightRange*position+this.stopHeight;fontSize=this.fontFactor*(this.stopWidth+position*(this.startWidth-this.stopWidth))/this.originalWidth}if(this.options.scaleContent==true)this.element.style.fontSize=fontSize+"em";this.element.style.width=width+this.units;this.element.style.height=height+this.units;if(this.options.scaleContent){var propFactor=this.direction==Spry.forwards?(this.startWidth+position*(this.stopWidth-this.startWidth))/this.originalWidth:(this.stopWidth+position*(this.startWidth-this.stopWidth))/this.originalWidth;for(var i=0;i<this.childImages.length;i++){this.childImages[i][0].style.width=propFactor*this.childImages[i][1]+this.units;this.childImages[i][0].style.height=propFactor*this.childImages[i][2]+this.units}}if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicFromRect==true){var fromRect=Spry.Effect.getDimensions(element);this.startWidth=fromRect.width;this.startHeight=fromRect.height;this.widthRange=this.startWidth-this.stopWidth;this.heightRange=this.startHeight-this.stopHeight}};Spry.Effect.Opacity=function(element,startOpacity,stopOpacity,options){this.dynamicStartOpacity=false;if(arguments.length==3){options=stopOpacity;stopOpacity=startOpacity;startOpacity=Spry.Effect.getOpacity(element);this.dynamicStartOpacity=true}Spry.Effect.Animator.call(this,options);this.name="Opacity";this.element=Spry.Effect.getElement(element);if(/MSIE/.test(navigator.userAgent)&&!this.element.hasLayout)Spry.Effect.setStyleProp(this.element,"zoom","1");this.startOpacity=startOpacity;this.stopOpacity=stopOpacity;this.opacityRange=this.startOpacity-this.stopOpacity;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.Opacity.prototype=new Spry.Effect.Animator;Spry.Effect.Opacity.prototype.constructor=Spry.Effect.Opacity;Spry.Effect.Opacity.prototype.animate=function(position){var opacity=0;if(this.direction==Spry.forwards)opacity=this.startOpacity-this.opacityRange*position;else if(this.direction==Spry.backwards)opacity=this.opacityRange*position+this.stopOpacity;this.element.style.opacity=opacity;this.element.style.filter="alpha(opacity="+Math.floor(opacity*100)+")";if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicStartOpacity==true){this.startOpacity=Spry.Effect.getOpacity(element);this.opacityRange=this.startOpacity-this.stopOpacity}};Spry.Effect.Color=function(element,startColor,stopColor,options){this.dynamicStartColor=false;if(arguments.length==3){options=stopColor;stopColor=startColor;startColor=Spry.Effect.getColor(element);this.dynamicStartColor=true}Spry.Effect.Animator.call(this,options);this.name="Color";this.element=Spry.Effect.getElement(element);this.startColor=startColor;this.stopColor=stopColor;this.startRedColor=Spry.Effect.Utils.hexToInt(startColor.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(startColor.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(startColor.substr(5,2));this.stopRedColor=Spry.Effect.Utils.hexToInt(stopColor.substr(1,2));this.stopGreenColor=Spry.Effect.Utils.hexToInt(stopColor.substr(3,2));this.stopBlueColor=Spry.Effect.Utils.hexToInt(stopColor.substr(5,2));this.redColorRange=this.startRedColor-this.stopRedColor;this.greenColorRange=this.startGreenColor-this.stopGreenColor;this.blueColorRange=this.startBlueColor-this.stopBlueColor};Spry.Effect.Color.prototype=new Spry.Effect.Animator;Spry.Effect.Color.prototype.constructor=Spry.Effect.Color;Spry.Effect.Color.prototype.animate=function(position){var redColor=0;var greenColor=0;var blueColor=0;if(this.direction==Spry.forwards){redColor=parseInt(this.startRedColor-this.redColorRange*position);greenColor=parseInt(this.startGreenColor-this.greenColorRange*position);blueColor=parseInt(this.startBlueColor-this.blueColorRange*position)}else if(this.direction==Spry.backwards){redColor=parseInt(this.redColorRange*position)+this.stopRedColor;greenColor=parseInt(this.greenColorRange*position)+this.stopGreenColor;blueColor=parseInt(this.blueColorRange*position)+this.stopBlueColor}this.element.style.backgroundColor=Spry.Effect.Utils.rgb(redColor,greenColor,blueColor)};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicStartColor==true){this.startColor=Spry.Effect.getColor(element);this.startRedColor=Spry.Effect.Utils.hexToInt(startColor.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(startColor.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(startColor.substr(5,2));this.redColorRange=this.startRedColor-this.stopRedColor;this.greenColorRange=this.startGreenColor-this.stopGreenColor;this.blueColorRange=this.startBlueColor-this.stopBlueColor}};Spry.Effect.Cluster=function(options){Spry.Effect.Animator.call(this,options);this.name="Cluster";this.effectsArray=new Array;this.currIdx=-1;_ClusteredEffect=function(effect,kind){this.effect=effect;this.kind=kind;this.isRunning=false};this.ClusteredEffect=_ClusteredEffect};Spry.Effect.Cluster.prototype=new Spry.Effect.Animator;Spry.Effect.Cluster.prototype.constructor=Spry.Effect.Cluster;Spry.Effect.Cluster.prototype.drawEffect=function(){var isRunning=true;var allEffectsDidRun=false;if(this.currIdx==-1)this.initNextEffectsRunning();var baseEffectIsStillRunning=false;var evalNextEffectsRunning=false;for(var i=0;i<this.effectsArray.length;i++)if(this.effectsArray[i].isRunning==true){baseEffectIsStillRunning=this.effectsArray[i].effect.drawEffect();if(baseEffectIsStillRunning==false&&i==this.currIdx){this.effectsArray[i].isRunning=false;evalNextEffectsRunning=true}}if(evalNextEffectsRunning==true)allEffectsDidRun=this.initNextEffectsRunning();if(allEffectsDidRun==true){this.stop();isRunning=false;for(var i=0;i<this.effectsArray.length;i++)this.effectsArray[i].isRunning=false;this.currIdx=-1}return isRunning};Spry.Effect.Cluster.prototype.initNextEffectsRunning=function(){var allEffectsDidRun=false;this.currIdx++;if(this.currIdx>this.effectsArray.length-1)allEffectsDidRun=true;else for(var i=this.currIdx;i<this.effectsArray.length;i++){if(i>this.currIdx&&this.effectsArray[i].kind=="queue")break;this.effectsArray[i].effect.start(true);this.effectsArray[i].isRunning=true;this.currIdx=i}return allEffectsDidRun};Spry.Effect.Cluster.prototype.doToggle=function(){if(this.options.toggle==true)if(this.direction==Spry.forwards)this.direction=Spry.backwards;else if(this.direction==Spry.backwards)this.direction=Spry.forwards;for(var i=0;i<this.effectsArray.length;i++)if(this.effectsArray[i].effect.options&&this.effectsArray[i].effect.options.toggle!=null)if(this.effectsArray[i].effect.options.toggle==true)this.effectsArray[i].effect.doToggle()};Spry.Effect.Cluster.prototype.cancel=function(){for(var i=0;i<this.effectsArray.length;i++)this.effectsArray[i].effect.cancel();if(this.timer){clearInterval(this.timer);this.timer=null}this.isRunning=false};Spry.Effect.Cluster.prototype.addNextEffect=function(effect){this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(effect,"queue");if(this.effectsArray.length==1)this.element=effect.element};Spry.Effect.Cluster.prototype.addParallelEffect=function(effect){this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(effect,"parallel");if(this.effectsArray.length==1)this.element=effect.element};Spry.Effect.AppearFade=function(element,options){var element=Spry.Effect.getElement(element);var durationInMilliseconds=1000;var fromOpacity=0;var toOpacity=100;var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var setupCallback=null;var finishCallback=null;if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)fromOpacity=options.from;if(options.to!=null)toOpacity=options.to;if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,setup:setupCallback,finish:finishCallback,from:fromOpacity,to:toOpacity};fromOpacity=fromOpacity/100;toOpacity=toOpacity/100;var appearFadeEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);appearFadeEffect.name="AppearFade";var registeredEffect=SpryRegistry.getRegisteredEffect(element,appearFadeEffect);registeredEffect.start();return registeredEffect};Spry.Effect.Blind=function(element,options){var element=Spry.Effect.getElement(element);Spry.Effect.makeClipping(element);var durationInMilliseconds=1000;var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var doScaleContent=false;var setupCallback=null;var finishCallback=null;var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var fromHeightPx=originalRect.height;var toHeightPx=0;var optionFrom=options?options.from:originalRect.height;var optionTo=options?options.to:0;if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)if(Spry.Effect.Utils.isPercentValue(options.from))fromHeightPx=Spry.Effect.Utils.getPercentValue(options.from)*originalRect.height/100;else fromHeightPx=Spry.Effect.Utils.getPixelValue(options.from);if(options.to!=null)if(Spry.Effect.Utils.isPercentValue(options.to))toHeightPx=Spry.Effect.Utils.getPercentValue(options.to)*originalRect.height/100;else toHeightPx=Spry.Effect.Utils.getPixelValue(options.to);if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=originalRect.width;fromRect.height=fromHeightPx;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=originalRect.width;toRect.height=toHeightPx;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,scaleContent:doScaleContent,setup:setupCallback,finish:finishCallback,from:optionFrom,to:optionTo};var blindEffect=new Spry.Effect.Size(element,fromRect,toRect,options);blindEffect.name="Blind";var registeredEffect=SpryRegistry.getRegisteredEffect(element,blindEffect);registeredEffect.start();return registeredEffect};function setupHighlight(element,effect){Spry.Effect.setStyleProp(element,"background-image","none")}
function finishHighlight(element,effect){Spry.Effect.setStyleProp(element,"background-image",effect.options.restoreBackgroundImage);if(effect.direction==Spry.forwards)Spry.Effect.setStyleProp(element,"background-color",effect.options.restoreColor)}
Spry.Effect.Highlight=function(element,options){var durationInMilliseconds=1000;var toColor="#ffffff";var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var setupCallback=setupHighlight;var finishCallback=finishHighlight;var element=Spry.Effect.getElement(element);var fromColor=Spry.Effect.getStyleProp(element,"background-color");var restoreColor=fromColor;if(fromColor=="transparent")fromColor="#ffff99";var optionFrom=options?options.from:"#ffff00";var optionTo=options?options.to:"#0000ff";if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)fromColor=options.from;if(options.to!=null)toColor=options.to;if(options.restoreColor)restoreColor=options.restoreColor;if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}var restoreBackgroundImage=Spry.Effect.getStyleProp(element,"background-image");options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,setup:setupCallback,finish:finishCallback,restoreColor:restoreColor,restoreBackgroundImage:restoreBackgroundImage,from:optionFrom,to:optionTo};var highlightEffect=new Spry.Effect.Color(element,fromColor,toColor,options);highlightEffect.name="Highlight";var registeredEffect=SpryRegistry.getRegisteredEffect(element,highlightEffect);registeredEffect.start();return registeredEffect};Spry.Effect.Slide=function(element,options){var element=Spry.Effect.getElement(element);var durationInMilliseconds=2000;var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var slideHorizontally=false;var setupCallback=null;var finishCallback=null;var firstChildElt=Spry.Effect.Utils.getFirstChildElement(element);if(/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent))Spry.Effect.makePositioned(element);Spry.Effect.makeClipping(element);if(/MSIE 6.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent)){var pos=Spry.Effect.getStyleProp(element,"position");if(pos&&(pos=="static"||pos=="fixed")){Spry.Effect.setStyleProp(element,"position","relative");Spry.Effect.setStyleProp(element,"top","");Spry.Effect.setStyleProp(element,"left","")}}if(firstChildElt){Spry.Effect.makePositioned(firstChildElt);Spry.Effect.makeClipping(firstChildElt);var childRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(firstChildElt,element);Spry.Effect.setStyleProp(firstChildElt,"width",childRect.width+"px")}var elementRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var startOffsetPosition=new Spry.Effect.Utils.Position;startOffsetPosition.x=parseInt(Spry.Effect.getStyleProp(firstChildElt,"left"));startOffsetPosition.y=parseInt(Spry.Effect.getStyleProp(firstChildElt,"top"));if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;if(options&&options.horizontal!==null&&options.horizontal===true)slideHorizontally=true;var movePx=slideHorizontally?elementRect.width:elementRect.height;var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x;fromPos.y=startOffsetPosition.y;var toPos=new Spry.Effect.Utils.Position;toPos.x=slideHorizontally?startOffsetPosition.x-movePx:startOffsetPosition.x;toPos.y=slideHorizontally?startOffsetPosition.y:startOffsetPosition.y-movePx;var optionFrom=options?options.from:elementRect.height;var optionTo=options?options.to:0;if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)if(slideHorizontally)if(Spry.Effect.Utils.isPercentValue(options.from))fromPos.x=movePx*Spry.Effect.Utils.getPercentValue(options.from)/100;else fromPos.x=Spry.Effect.Utils.getPixelValue(options.from);else if(Spry.Effect.Utils.isPercentValue(options.from))fromPos.y=movePx*Spry.Effect.Utils.getPercentValue(options.from)/100;else fromPos.y=Spry.Effect.Utils.getPixelValue(options.from);if(options.to!=null)if(slideHorizontally)if(Spry.Effect.Utils.isPercentValue(options.to))toPos.x=movePx*Spry.Effect.Utils.getPercentValue(options.to)/100;else toPos.x=Spry.Effect.Utils.getPixelValue(options.to);else if(Spry.Effect.Utils.isPercentValue(options.to))toPos.y=movePx*Spry.Effect.Utils.getPercentValue(options.to)/100;else toPos.y=Spry.Effect.Utils.getPixelValue(options.to);if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,setup:setupCallback,finish:finishCallback,from:optionFrom,to:optionTo};var slideEffect=new Spry.Effect.MoveSlide(element,fromPos,toPos,slideHorizontally,options);slideEffect.name="Slide";var registeredEffect=SpryRegistry.getRegisteredEffect(element,slideEffect);registeredEffect.start();return registeredEffect};Spry.Effect.GrowShrink=function(element,options){var element=Spry.Effect.getElement(element);Spry.Effect.makePositioned(element);Spry.Effect.makeClipping(element);var startOffsetPosition=new Spry.Effect.Utils.Position;startOffsetPosition.x=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(element,"left"));startOffsetPosition.y=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(element,"top"));if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;var dimRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var originalWidth=dimRect.width;var originalHeight=dimRect.height;var propFactor=originalWidth==0?1:originalHeight/originalWidth;var durationInMilliseconds=500;var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=0;fromRect.height=0;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=originalWidth;toRect.height=originalHeight;var setupCallback=null;var finishCallback=null;var doScaleContent=true;var optionFrom=options?options.from:dimRect.width;var optionTo=options?options.to:0;var calcHeight=false;var growFromCenter=true;if(options){if(options.referHeight!=null)calcHeight=options.referHeight;if(options.growCenter!=null)growFromCenter=options.growCenter;if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)if(Spry.Effect.Utils.isPercentValue(options.from)){fromRect.width=originalWidth*(Spry.Effect.Utils.getPercentValue(options.from)/100);fromRect.height=originalHeight*(Spry.Effect.Utils.getPercentValue(options.from)/100)}else if(calcHeight){fromRect.height=Spry.Effect.Utils.getPixelValue(options.from);fromRect.width=Spry.Effect.Utils.getPixelValue(options.from)/propFactor}else{fromRect.width=Spry.Effect.Utils.getPixelValue(options.from);fromRect.height=propFactor*Spry.Effect.Utils.getPixelValue(options.from)}if(options.to!=null)if(Spry.Effect.Utils.isPercentValue(options.to)){toRect.width=originalWidth*(Spry.Effect.Utils.getPercentValue(options.to)/100);toRect.height=originalHeight*(Spry.Effect.Utils.getPercentValue(options.to)/100)}else if(calcHeight){toRect.height=Spry.Effect.Utils.getPixelValue(options.to);toRect.width=Spry.Effect.Utils.getPixelValue(options.to)/propFactor}else{toRect.width=Spry.Effect.Utils.getPixelValue(options.to);toRect.height=propFactor*Spry.Effect.Utils.getPixelValue(options.to)}if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,scaleContent:doScaleContent,from:optionFrom,to:optionTo};var effectCluster=new Spry.Effect.Cluster({toggle:doToggle,setup:setupCallback,finish:finishCallback});effectCluster.name="GrowShrink";var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);effectCluster.addParallelEffect(sizeEffect);if(growFromCenter){options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,from:optionFrom,to:optionTo};var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+(originalWidth-fromRect.width)/2;fromPos.y=startOffsetPosition.y+(originalHeight-fromRect.height)/2;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+(originalWidth-toRect.width)/2;toPos.y=startOffsetPosition.y+(originalHeight-toRect.height)/2;var initialProps2={top:fromPos.y,left:fromPos.x};var moveEffect=new Spry.Effect.Move(element,fromPos,toPos,options,initialProps2);effectCluster.addParallelEffect(moveEffect)}var registeredEffect=SpryRegistry.getRegisteredEffect(element,effectCluster);registeredEffect.start();return registeredEffect};Spry.Effect.Shake=function(element,options){var element=Spry.Effect.getElement(element);Spry.Effect.makePositioned(element);var setupCallback=null;var finishCallback=null;if(options){if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}var startOffsetPosition=new Spry.Effect.Utils.Position;startOffsetPosition.x=parseInt(Spry.Effect.getStyleProp(element,"left"));startOffsetPosition.y=parseInt(Spry.Effect.getStyleProp(element,"top"));if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;var shakeEffectCluster=new Spry.Effect.Cluster({setup:setupCallback,finish:finishCallback});shakeEffectCluster.name="Shake";var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+0;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+20;toPos.y=startOffsetPosition.y+0;options={duration:50,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+20;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+-20;toPos.y=startOffsetPosition.y+0;options={duration:100,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+-20;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+20;toPos.y=startOffsetPosition.y+0;options={duration:100,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+20;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+-20;toPos.y=startOffsetPosition.y+0;options={duration:100,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+-20;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+20;toPos.y=startOffsetPosition.y+0;options={duration:100,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+20;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+0;toPos.y=startOffsetPosition.y+0;options={duration:50,toggle:false};var effect=new Spry.Effect.Move(element,fromPos,toPos,options);shakeEffectCluster.addNextEffect(effect);var registeredEffect=SpryRegistry.getRegisteredEffect(element,shakeEffectCluster);registeredEffect.start();return registeredEffect};Spry.Effect.Squish=function(element,options){var element=Spry.Effect.getElement(element);var durationInMilliseconds=500;var doToggle=true;var setupCallback=null;var finishCallback=null;if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.toggle!=null)doToggle=options.toggle;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}Spry.Effect.makePositioned(element);Spry.Effect.makeClipping(element);var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var startWidth=originalRect.width;var startHeight=originalRect.height;var stopWidth=0;var stopHeight=0;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=startWidth;fromRect.height=startHeight;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=stopWidth;toRect.height=stopHeight;var doScaleContent=true;options={duration:durationInMilliseconds,toggle:doToggle,scaleContent:doScaleContent,setup:setupCallback,finish:finishCallback};var squishEffect=new Spry.Effect.Size(element,fromRect,toRect,options);squishEffect.name="Squish";var registeredEffect=SpryRegistry.getRegisteredEffect(element,squishEffect);registeredEffect.start();return registeredEffect};Spry.Effect.Pulsate=function(element,options){var element=Spry.Effect.getElement(element);var durationInMilliseconds=400;var fromOpacity=100;var toOpacity=0;var doToggle=false;var kindOfTransition=Spry.linearTransition;var setupCallback=null;var finishCallback=null;if(options){if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)fromOpacity=options.from;if(options.to!=null)toOpacity=options.to;if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,setup:setupCallback,finish:finishCallback};fromOpacity=fromOpacity/100;toOpacity=toOpacity/100;var pulsateEffectCluster=new Spry.Effect.Cluster;var fadeEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);var appearEffect=new Spry.Effect.Opacity(element,toOpacity,fromOpacity,options);pulsateEffectCluster.addNextEffect(fadeEffect);pulsateEffectCluster.addNextEffect(appearEffect);pulsateEffectCluster.addNextEffect(fadeEffect);pulsateEffectCluster.addNextEffect(appearEffect);pulsateEffectCluster.addNextEffect(fadeEffect);pulsateEffectCluster.addNextEffect(appearEffect);pulsateEffectCluster.name="Pulsate";var registeredEffect=SpryRegistry.getRegisteredEffect(element,pulsateEffectCluster);registeredEffect.start();return registeredEffect};Spry.Effect.Puff=function(element,options){var element=Spry.Effect.getElement(element);Spry.Effect.makePositioned(element);var setupCallback=null;var finishCallback=null;if(options){if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}var puffEffectCluster=new Spry.Effect.Cluster;var durationInMilliseconds=500;var originalRect=Spry.Effect.getDimensions(element);var startWidth=originalRect.width;var startHeight=originalRect.height;var stopWidth=startWidth*2;var stopHeight=startHeight*2;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=startWidth;fromRect.height=startHeight;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=stopWidth;toRect.height=stopHeight;var doScaleContent=false;options={duration:durationInMilliseconds,toggle:false,scaleContent:doScaleContent};var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);puffEffectCluster.addParallelEffect(sizeEffect);options={duration:durationInMilliseconds,toggle:false};var fromOpacity=1;var toOpacity=0;var opacityEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);puffEffectCluster.addParallelEffect(opacityEffect);options={duration:durationInMilliseconds,toggle:false};var fromPos=new Spry.Effect.Utils.Position;fromPos.x=0;fromPos.y=0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startWidth/2*-1;toPos.y=startHeight/2*-1;var moveEffect=new Spry.Effect.Move(element,fromPos,toPos,options);puffEffectCluster.addParallelEffect(moveEffect);puffEffectCluster.setup=setupCallback;puffEffectCluster.finish=finishCallback;puffEffectCluster.name="Puff";var registeredEffect=SpryRegistry.getRegisteredEffect(element,puffEffectCluster);registeredEffect.start();return registeredEffect};Spry.Effect.DropOut=function(element,options){var element=Spry.Effect.getElement(element);var dropoutEffectCluster=new Spry.Effect.Cluster;var durationInMilliseconds=500;Spry.Effect.makePositioned(element);var setupCallback=null;var finishCallback=null;if(options){if(options.setup!=null)setupCallback=options.setup;if(options.finish!=null)finishCallback=options.finish}var startOffsetPosition=new Spry.Effect.Utils.Position;startOffsetPosition.x=parseInt(Spry.Effect.getStyleProp(element,"left"));startOffsetPosition.y=parseInt(Spry.Effect.getStyleProp(element,"top"));if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+0;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+0;toPos.y=startOffsetPosition.y+160;options={from:fromPos,to:toPos,duration:durationInMilliseconds,toggle:true};var moveEffect=new Spry.Effect.Move(element,options.from,options.to,options);dropoutEffectCluster.addParallelEffect(moveEffect);options={duration:durationInMilliseconds,toggle:true};var fromOpacity=1;var toOpacity=0;var opacityEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);dropoutEffectCluster.addParallelEffect(opacityEffect);dropoutEffectCluster.setup=setupCallback;dropoutEffectCluster.finish=finishCallback;dropoutEffectCluster.name="DropOut";var registeredEffect=SpryRegistry.getRegisteredEffect(element,dropoutEffectCluster);registeredEffect.start();return registeredEffect};Spry.Effect.Fold=function(element,options){var element=Spry.Effect.getElement(element);var durationInMilliseconds=1000;var doToggle=false;var doScaleContent=true;var foldEffectCluster=new Spry.Effect.Cluster;var originalRect=Spry.Effect.getDimensions(element);var startWidth=originalRect.width;var startHeight=originalRect.height;var stopWidth=startWidth;var stopHeight=startHeight/5;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=startWidth;fromRect.height=startHeight;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=stopWidth;toRect.height=stopHeight;options={duration:durationInMilliseconds,toggle:doToggle,scaleContent:doScaleContent};var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);foldEffectCluster.addNextEffect(sizeEffect);durationInMilliseconds=500;options={duration:durationInMilliseconds,toggle:doToggle,scaleContent:doScaleContent};fromRect.width="100%";fromRect.height="20%";toRect.width="10%";toRect.height="20%";var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);foldEffectCluster.addNextEffect(sizeEffect);foldEffectCluster.name="Fold";var registeredEffect=SpryRegistry.getRegisteredEffect(element,foldEffectCluster);registeredEffect.start();return registeredEffect};function MM_preloadImages(){var d=document;if(d.images){if(!d.MM_p)d.MM_p=new Array;var i,j=d.MM_p.length,a=MM_preloadImages.arguments;for(i=0;i<a.length;i++)if(a[i].indexOf("#")!=0){d.MM_p[j]=new Image;d.MM_p[j++].src=a[i]}}}
function MM_swapImgRestore(){var i,x,a=document.MM_sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)x.src=x.oSrc}function MM_findObj(n,d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p)}if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers[i].document);if(!x&&d.getElementById)x=d.getElementById(n);return x}
function MM_swapImage(){var i,j=0,x,a=MM_swapImage.arguments;document.MM_sr=new Array;for(i=0;i<a.length-2;i+=3)if((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;if(!x.oSrc)x.oSrc=x.src;x.src=a[i+2]}}function MM_effectHighlight(targetElement,duration,startColor,endColor,restoreColor,toggle){Spry.Effect.DoHighlight(targetElement,{duration:duration,from:startColor,to:endColor,restoreColor:restoreColor,toggle:toggle})}
function MM_effectAppearFade(targetElement,duration,from,to,toggle){Spry.Effect.DoFade(targetElement,{duration:duration,from:from,to:to,toggle:toggle})}Spry.Effect.DoFade=function(element,options){return Spry.Effect.AppearFade(element,options)};Spry.Effect.DoBlind=function(element,options){return Spry.Effect.Blind(element,options)};Spry.Effect.DoHighlight=function(element,options){return Spry.Effect.Highlight(element,options)};Spry.Effect.DoSlide=function(element,options){return Spry.Effect.Slide(element,options)};Spry.Effect.DoGrow=function(element,options){return Spry.Effect.GrowShrink(element,options)};Spry.Effect.DoShake=function(element,options){return Spry.Effect.Shake(element,options)};Spry.Effect.DoSquish=function(element,options){return Spry.Effect.Squish(element,options)};Spry.Effect.DoPulsate=function(element,options){return Spry.Effect.Pulsate(element,options)};Spry.Effect.DoPuff=function(element,options){return Spry.Effect.Puff(element,options)};Spry.Effect.DoDropOut=function(element,options){return Spry.Effect.DropOut(element,options)};Spry.Effect.DoFold=function(element,options){return Spry.Effect.Fold(element,options)};var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.ValidationCheckbox=function(element,opts){this.init(element);Spry.Widget.Utils.setOptions(this,opts);var validateOn=["submit"].concat(this.validateOn||[]);validateOn=validateOn.join(",");this.validateOn=0|(validateOn.indexOf("submit")!=-1?Spry.Widget.ValidationCheckbox.ONSUBMIT:0);this.validateOn=this.validateOn|(validateOn.indexOf("blur")!=-1?Spry.Widget.ValidationCheckbox.ONBLUR:0);this.validateOn=this.validateOn|(validateOn.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(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(element){this.element=this.getElement(element);this.checkboxElements=null;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(){for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);try{delete this.element}catch(err){}for(var i=0;i<this.checkboxElements.length;i++)try{delete this.checkboxElements[i]}catch(err){}try{delete this.checkboxElements}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(q[i]==this){q.splice(i,1);break}};Spry.Widget.ValidationCheckbox.onloadDidFire=false;Spry.Widget.ValidationCheckbox.loadQueue=[];Spry.Widget.ValidationCheckbox.prototype.getElement=function(ele){if(ele&&typeof ele=="string")return document.getElementById(ele);return ele};Spry.Widget.ValidationCheckbox.processLoadQueue=function(handler){Spry.Widget.ValidationCheckbox.onloadDidFire=true;var q=Spry.Widget.ValidationCheckbox.loadQueue;var qlen=q.length;for(var i=0;i<qlen;i++)q[i].attachBehaviors()};Spry.Widget.ValidationCheckbox.addLoadListener=function(handler){if(typeof window.addEventListener!="undefined")window.addEventListener("load",handler,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",handler,false);else if(typeof window.attachEvent!="undefined")window.attachEvent("onload",handler)};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.nodeName=="INPUT")this.checkboxElements=[this.element];else this.checkboxElements=this.getCheckboxes();if(this.checkboxElements){var self=this;this.event_handlers=[];var qlen=this.checkboxElements.length;for(var i=0;i<qlen;i++){this.event_handlers.push([this.checkboxElements[i],"focus",function(e){return self.onFocus(e)}]);this.event_handlers.push([this.checkboxElements[i],"blur",function(e){return self.onBlur(e)}]);if(this.validateOn&Spry.Widget.ValidationCheckbox.ONCHANGE)this.event_handlers.push([this.checkboxElements[i],"click",function(e){return self.onClick(e)}])}for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][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(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};Spry.Widget.ValidationCheckbox.prototype.getCheckboxes=function(){var arrCheckboxes;var elements=this.element.getElementsByTagName("INPUT");if(elements.length){arrCheckboxes=[];var qlen=elements.length;for(var i=0;i<qlen;i++)if(elements[i].type=="checkbox")arrCheckboxes.push(elements[i]);return arrCheckboxes}return null};Spry.Widget.ValidationCheckbox.prototype.addClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1)return;ele.className+=(ele.className?" ":"")+className};Spry.Widget.ValidationCheckbox.prototype.removeClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"")};Spry.Widget.ValidationCheckbox.prototype.onFocus=function(e){var eventCheckbox=e.srcElement!=null?e.srcElement:e.target;if(eventCheckbox.disabled)return;this.hasFocus=true;this.addClassName(this.element,this.focusClass)};Spry.Widget.ValidationCheckbox.prototype.onBlur=function(e){var eventCheckbox=e.srcElement!=null?e.srcElement:e.target;if(eventCheckbox.disabled)return;this.hasFocus=false;var doValidation=false;if(this.validateOn&Spry.Widget.ValidationCheckbox.ONBLUR)doValidation=true;if(doValidation)this.validate();this.removeClassName(this.element,this.focusClass)};Spry.Widget.ValidationCheckbox.prototype.onClick=function(e){var eventCheckbox=e.srcElement!=null?e.srcElement:e.target;if(eventCheckbox.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)};Spry.Widget.ValidationCheckbox.prototype.validate=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);var nochecked=0;if(this.checkboxElements){var qlen=this.checkboxElements.length;for(var i=0;i<qlen;i++)if(!this.checkboxElements[i].disabled&&this.checkboxElements[i].checked)nochecked++}if(this.isRequired)if(nochecked==0){this.addClassName(this.element,this.requiredClass);return false}if(this.minSelections)if(this.minSelections>nochecked){this.addClassName(this.element,this.minSelectionsClass);return false}if(this.maxSelections)if(this.maxSelections<nochecked){this.addClassName(this.element,this.maxSelectionsClass);return false}this.addClassName(this.element,this.validClass);return true};Spry.Widget.ValidationCheckbox.prototype.isDisabled=function(){var ret=true;if(this.checkboxElements){var qlen=this.checkboxElements.length;for(var i=0;i<qlen;i++)if(!this.checkboxElements[i].disabled){ret=false;break}}return ret};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(vform){var isValid=true;var isElementValid=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform){isElementValid=q[i].validate();isValid=isElementValid&&isValid}return isValid};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(e,form){if(Spry.Widget.Form.validate(form)==false)return false;return true};if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(e,vform){var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform&&typeof q[i].reset=="function")q[i].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(form){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(q[i].form==form&&typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.setOptions=function(obj,optionsObj,ignoreUndefinedProps){if(!optionsObj)return;for(var optionName in optionsObj){if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)continue;obj[optionName]=optionsObj[optionName]}};Spry.Widget.Utils.getFirstParentWithNodeName=function(node,nodeName){while(node.parentNode&&node.parentNode.nodeName.toLowerCase()!=nodeName.toLowerCase()&&node.parentNode.nodeName!="BODY")node=node.parentNode;if(node.parentNode&&node.parentNode.nodeName.toLowerCase()==nodeName.toLowerCase())return node.parentNode;else return null};Spry.Widget.Utils.destroyWidgets=function(container){if(typeof container=="string")container=document.getElementById(container);var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"&&Spry.Widget.Utils.contains(container,q[i].element)){q[i].destroy();i--}};Spry.Widget.Utils.contains=function(who,what){if(typeof who.contains=="object")return what&&who&&(who==what||who.contains(what));else{var el=what;while(el){if(el==who)return true;el=el.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(element,eventType,handler,capture){try{if(element.addEventListener)element.addEventListener(eventType,handler,capture);else if(element.attachEvent)element.attachEvent("on"+eventType,handler,capture)}catch(e){}};Spry.Widget.Utils.removeEventListener=function(element,eventType,handler,capture){try{if(element.removeEventListener)element.removeEventListener(eventType,handler,capture);else if(element.detachEvent)element.detachEvent("on"+eventType,handler,capture)}catch(e){}};var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.BrowserSniff=function(){var b=navigator.appName.toString();var up=navigator.platform.toString();var ua=navigator.userAgent.toString();this.mozilla=this.ie=this.opera=r=false;var re_opera=/Opera.([0-9\.]*)/i;var re_msie=/MSIE.([0-9\.]*)/i;var re_gecko=/gecko/i;var re_safari=/safari\/([\d\.]*)/i;if(ua.match(re_opera)){r=ua.match(re_opera);this.opera=true;this.version=parseFloat(r[1])}else if(ua.match(re_msie)){r=ua.match(re_msie);this.ie=true;this.version=parseFloat(r[1])}else if(ua.match(re_safari)){this.safari=true;this.version=1.4}else if(ua.match(re_gecko)){var re_gecko_version=/rv:\s*([0-9\.]+)/i;r=ua.match(re_gecko_version);this.mozilla=true;this.version=parseFloat(r[1])}this.windows=this.mac=this.linux=false;this.Platform=ua.match(/windows/i)?"windows":ua.match(/linux/i)?"linux":ua.match(/mac/i)?"mac":ua.match(/unix/i)?"unix":"unknown";this[this.Platform]=true;this.v=this.version;if(this.safari&&this.mac&&this.mozilla)this.mozilla=false};Spry.is=new Spry.Widget.BrowserSniff;Spry.Widget.ValidationTextField=function(element,type,options){type=Spry.Widget.Utils.firstValid(type,"none");if(typeof type!="string")return;if(typeof Spry.Widget.ValidationTextField.ValidationDescriptors[type]=="undefined")return;options=Spry.Widget.Utils.firstValid(options,{});this.type=type;if(!this.isBrowserSupported())options.useCharacterMasking=false;this.init(element,options);var validateOn=["submit"].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));validateOn=validateOn.join(",");this.validateOn=0;this.validateOn=this.validateOn|(validateOn.indexOf("submit")!=-1?Spry.Widget.ValidationTextField.ONSUBMIT:0);this.validateOn=this.validateOn|(validateOn.indexOf("blur")!=-1?Spry.Widget.ValidationTextField.ONBLUR:0);this.validateOn=this.validateOn|(validateOn.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(value,options){if(value==""||value=="-"||value=="+")return false;var regExp=/^[\-\+]?\d*$/;if(!regExp.test(value))return false;options=options||{allowNegative:false};var ret=parseInt(value,10);if(!isNaN(ret)){var allowNegative=true;if(typeof options.allowNegative!="undefined"&&options.allowNegative==false)allowNegative=false;if(!allowNegative&&value<0)ret=false}else ret=false;return ret}},real:{characterMasking:/[\d\.,\-\+e]/i,regExpFilter:/^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,validation:function(value,options){var regExp=/^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/;if(!regExp.test(value))return false;var ret=parseFloat(value);if(isNaN(ret))ret=false;return ret}},currency:{formats:{dot_comma:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,validation:function(value,options){var ret=false;if(/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(value)||/^(\-|\+)?\d+(?:\,\d{2}|)$/.test(value)){value=value.toString().replace(/\./gi,"").replace(/\,/,".");ret=parseFloat(value)}return ret}},comma_dot:{characterMasking:/[\d\.\,\-\+\$]/,regExpFilter:/^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,validation:function(value,options){var ret=false;if(/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(value)||/^(\-|\+)?\d+(?:\.\d{2}|)$/.test(value)){value=value.toString().replace(/\,/gi,"");ret=parseFloat(value)}return ret}}}},email:{characterMasking:/[^\s]/,validation:function(value,options){var rx=/^[\w\.-]+@[\w\.-]+\.\w+$/i;return rx.test(value)}},date:{validation:function(value,options){var formatRegExp=/^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;var valueRegExp=this.dateValidationPattern;var formatGroups=options.format.match(formatRegExp);var valueGroups=value.match(valueRegExp);if(formatGroups!==null&&valueGroups!==null){var dayIndex=-1;var monthIndex=-1;var yearIndex=-1;for(var i=1;i<formatGroups.length;i++)switch(formatGroups[i].toLowerCase()){case"dd":dayIndex=i;break;case"mm":monthIndex=i;break;case"yy":case"yyyy":yearIndex=i;break}if(dayIndex!=-1&&monthIndex!=-1&&yearIndex!=-1){var maxDay=-1;var theDay=parseInt(valueGroups[dayIndex],10);var theMonth=parseInt(valueGroups[monthIndex],10);var theYear=parseInt(valueGroups[yearIndex],10);if(theMonth<1||theMonth>12)return false;switch(theMonth){case 1:case 3:case 5:case 7:case 8:case 10:case 12:maxDay=31;break;case 4:case 6:case 9:case 11:maxDay=30;break;case 2:if(parseInt(theYear/4,10)*4==theYear&&parseInt(theYear/100,10)*100!=theYear)maxDay=29;else maxDay=28;break}if(theDay<1||theDay>maxDay)return false;return new Date(theYear,theMonth,theDay)}}else return false}},time:{validation:function(value,options){var formatRegExp=/([hmst]+)/gi;var valueRegExp=/(\d+|AM?|PM?)/gi;var formatGroups=options.format.match(formatRegExp);var valueGroups=value.match(valueRegExp);if(formatGroups!==null&&valueGroups!==null){if(formatGroups.length!=valueGroups.length)return false;var hourIndex=-1;var minuteIndex=-1;var secondIndex=-1;var tIndex=-1;var theHour=0,theMinute=0,theSecond=0,theT="AM";for(var i=0;i<formatGroups.length;i++)switch(formatGroups[i].toLowerCase()){case"hh":hourIndex=i;break;case"mm":minuteIndex=i;break;case"ss":secondIndex=i;break;case"t":case"tt":tIndex=i;break}if(hourIndex!=-1){var theHour=parseInt(valueGroups[hourIndex],10);if(isNaN(theHour)||theHour>(formatGroups[hourIndex]=="HH"?23:12))return false}if(minuteIndex!=-1){var theMinute=parseInt(valueGroups[minuteIndex],10);if(isNaN(theMinute)||theMinute>59)return false}if(secondIndex!=-1){var theSecond=parseInt(valueGroups[secondIndex],10);if(isNaN(theSecond)||theSecond>59)return false}if(tIndex!=-1){var theT=valueGroups[tIndex].toUpperCase();if(formatGroups[tIndex].toUpperCase()=="TT"&&!/^a|pm$/i.test(theT)||formatGroups[tIndex].toUpperCase()=="T"&&!/^a|p$/i.test(theT))return false}var date=new Date(2000,0,1,theHour+(theT.charAt(0)=="P"?12:0),theMinute,theSecond);return date}else return false}},credit_card:{characterMasking:/\d/,validation:function(value,options){var regExp=null;options.format=options.format||"ALL";switch(options.format.toUpperCase()){case"ALL":regExp=/^[3-6]{1}[0-9]{12,15}$/;break;case"VISA":regExp=/^4[0-9]{12,15}$/;break;case"MASTERCARD":regExp=/^5[1-5]{1}[0-9]{14}$/;break;case"AMEX":regExp=/^3(4|7){1}[0-9]{13}$/;break;case"DISCOVER":regExp=/^6011[0-9]{12}$/;break;case"DINERSCLUB":regExp=/^3((0[0-5]{1}[0-9]{11})|(6[0-9]{12})|(8[0-9]{12}))$/;break}if(!regExp.test(value))return false;var digits=[];var j=1,digit="";for(var i=value.length-1;i>=0;i--){if(j%2==0){digit=parseInt(value.charAt(i),10)*2;digits[digits.length]=digit.toString().charAt(0);if(digit.toString().length==2)digits[digits.length]=digit.toString().charAt(1)}else{digit=value.charAt(i);digits[digits.length]=digit}j++}var sum=0;for(i=0;i<digits.length;i++)sum+=parseInt(digits[i],10);if(sum%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(value,options){return/^[A-Z]{1,2}\d[\dA-Z]?\s?\d[A-Z]{2}$/.test(value)}},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(value,options){return Spry.Widget.ValidationTextField.validateIP(value,options.format)}},url:{characterMasking:/[^\s]/,validation:function(value,options){var URI_spliter=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var parts=value.match(URI_spliter);if(parts&&parts[4]){var host=parts[4].split(".");var punyencoded="";for(var i=0;i<host.length;i++){punyencoded=Spry.Widget.Utils.punycode_encode(host[i],64);if(!punyencoded)return false;else if(punyencoded!=host[i]+"-")host[i]="xn--"+punyencoded}host=host.join(".");value=value.replace(URI_spliter,"$1//"+host+"$5$6$8")}var regExp=/^(?: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 valid=value.match(regExp);if(valid){var address=valid[1];if(address){if(address=="[]")return false;var first=address.charAt(0);var last=address.charAt(address.length-1);if(first=="["&&last!="]"||first!="["&&last=="]")return false;else if(first=="["&&last=="]"){address=address.replace(/^\[|\]$/gi,"");return Spry.Widget.ValidationTextField.validateIP(address,"ipv6_ipv4")}else if(/[^0-9\.]/.test(address))return true;else return Spry.Widget.ValidationTextField.validateIP(address,"ipv4")}else return true}else return false}}};Spry.Widget.ValidationTextField.validateIP=function(value,format){var validIPv6Addresses=[/^(?:[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 validIPv4Addresses=[/^(\d{1,3}\.){3}\d{1,3}$/i];var validAddresses=[];if(format=="ipv6"||format=="ipv6_ipv4")validAddresses=validAddresses.concat(validIPv6Addresses);if(format=="ipv4"||format=="ipv6_ipv4")validAddresses=validAddresses.concat(validIPv4Addresses);var ret=false;for(var i=0;i<validAddresses.length;i++)if(validAddresses[i].test(value)){ret=true;break}if(ret&&value.indexOf(".")!=-1){var ipv4=value.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);if(!ipv4)return false;ipv4=ipv4[0].replace(/^:/,"");var pieces=ipv4.split(".");if(pieces.length!=4)return false;var regExp=/^[\-\+]?\d*$/;for(var i=0;i<pieces.length;i++){if(pieces[i]=="")return false;var piece=parseInt(pieces[i],10);if(isNaN(piece)||piece>255||!regExp.test(pieces[i])||pieces[i].length>3||/^0{2,3}$/.test(pieces[i]))return false}}if(ret&&value.indexOf("/")!=-1){var prefLen=value.match(/\/\d{1,3}$/);if(!prefLen)return false;var prefLenVal=parseInt(prefLen[0].replace(/^\//,""),10);if(isNaN(prefLenVal)||prefLenVal>128||prefLenVal<1)return false}return ret};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};this.options={};this.event_handlers=[];this.validClass="textfieldValidState";this.focusClass="textfieldFocusState";this.requiredClass="textfieldRequiredState";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.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(){for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);try{delete this.element}catch(err){}try{delete this.input}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}try{this.selection.destroy()}catch(err){}try{delete this.selection}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(q[i]==this){q.splice(i,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 self=this;this.event_handlers=[];this.event_handlers.push([this.input,"keydown",function(e){if(self.isDisabled())return true;return self.onKeyDown(e||event)}]);this.event_handlers.push([this.input,"keypress",function(e){if(self.isDisabled())return true;return self.onKeyPress(e||event)}]);if(Spry.is.opera)this.event_handlers.push([this.input,"keyup",function(e){if(self.isDisabled())return true;return self.onKeyUp(e||event)}]);this.event_handlers.push([this.input,"focus",function(e){if(self.isDisabled())return true;return self.onFocus(e||event)}]);this.event_handlers.push([this.input,"blur",function(e){if(self.isDisabled())return true;return self.onBlur(e||event)}]);this.event_handlers.push([this.input,"mousedown",function(e){if(self.isDisabled())return true;return self.onMouseDown(e||event)}]);var changeEvent=Spry.is.mozilla||Spry.is.opera||Spry.is.safari?"input":Spry.is.ie?"propertychange":"change";this.event_handlers.push([this.input,changeEvent,function(e){if(self.isDisabled())return true;return self.onChange(e||event)}]);if(Spry.is.mozilla||Spry.is.safari)this.event_handlers.push([this.input,"dragdrop",function(e){if(self.isDisabled())return true;self.removeHint();return self.onChange(e||event)}]);else if(Spry.is.ie)this.event_handlers.push([this.input,"drop",function(e){if(self.isDisabled())return true;return self.onDrop(e||event)}]);for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][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(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.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(ele){if(ele&&typeof ele=="string")return document.getElementById(ele);return ele};Spry.Widget.ValidationTextField.addLoadListener=function(handler){if(typeof window.addEventListener!="undefined")window.addEventListener("load",handler,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",handler,false);else if(typeof window.attachEvent!="undefined")window.attachEvent("onload",handler)};Spry.Widget.ValidationTextField.processLoadQueue=function(handler){Spry.Widget.ValidationTextField.onloadDidFire=true;var q=Spry.Widget.ValidationTextField.loadQueue;var qlen=q.length;for(var i=0;i<qlen;i++)q[i].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(newValue){this.flags.locked=true;this.input.value=newValue;this.flags.locked=false;this.oldValue=newValue;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(revertValue){if(revertValue!=this.input.value){this.input.readOnly=true;this.input.value=revertValue;this.input.readOnly=false;if(Spry.is.safari&&this.flags.active)this.input.focus()}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}};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}};Spry.Widget.ValidationTextField.prototype.redTextFlash=function(){var self=this;this.addClassName(this.element,this.textfieldFlashTextClass);setTimeout(function(){self.removeClassName(self.element,self.textfieldFlashTextClass)},100)};Spry.Widget.ValidationTextField.prototype.doValidations=function(testValue,revertValue){if(this.isDisabled())return false;if(this.flags.locked)return false;if(testValue.length==0&&!this.isRequired){this.errors=0;return false}this.flags.locked=true;var mustRevert=false;var continueValidations=true;if(!this.options.isRequired&&testValue.length==0)continueValidations=false;var errors=0;var fixedValue=testValue;if(this.useCharacterMasking&&this.characterMasking)for(var i=0;i<testValue.length;i++)if(!this.characterMasking.test(testValue.charAt(i))){errors=errors|Spry.Widget.ValidationTextField.ERROR_FORMAT;fixedValue=revertValue;mustRevert=true;break}if(!mustRevert&&this.useCharacterMasking&&this.regExpFilter)if(!this.regExpFilter.test(fixedValue)){errors=errors|Spry.Widget.ValidationTextField.ERROR_FORMAT;mustRevert=true}if(!mustRevert&&this.pattern){var currentRegExp=this.patternToRegExp(testValue.length);if(!currentRegExp.test(testValue)){errors=errors|Spry.Widget.ValidationTextField.ERROR_FORMAT;mustRevert=true}else if(this.patternLength!=testValue.length)errors=errors|Spry.Widget.ValidationTextField.ERROR_FORMAT}if(fixedValue=="")errors=errors|Spry.Widget.ValidationTextField.ERROR_REQUIRED;if(!mustRevert&&this.pattern&&this.useCharacterMasking){var n=this.getAutoComplete(testValue.length);if(n)fixedValue+=n}if(!mustRevert&&this.minChars!==null&&continueValidations)if(testValue.length<this.minChars){errors=errors|Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;continueValidations=false}if(!mustRevert&&this.maxChars!==null&&continueValidations)if(testValue.length>this.maxChars){errors=errors|Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;continueValidations=false}if(!mustRevert&&this.validation&&continueValidations){var value=this.validation(fixedValue,this.options);if(false===value){errors=errors|Spry.Widget.ValidationTextField.ERROR_FORMAT;continueValidations=false}else this.typedValue=value}if(!mustRevert&&this.validation&&this.minValue!==null&&continueValidations){var minValue=this.validation(this.minValue,this.options);if(minValue!==false)if(this.typedValue<minValue){errors=errors|Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;continueValidations=false}}if(!mustRevert&&this.validation&&this.maxValue!==null&&continueValidations){var maxValue=this.validation(this.maxValue,this.options);if(maxValue!==false)if(this.typedValue>maxValue){errors=errors|Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;continueValidations=false}}if(this.useCharacterMasking&&mustRevert)this.revertState(revertValue);this.errors=errors;this.fixedValue=fixedValue;this.flags.locked=false;return mustRevert};Spry.Widget.ValidationTextField.prototype.onChange=function(e){if(Spry.is.opera&&this.flags.operaRevertOnKeyUp)return true;if(Spry.is.ie&&e&&e.propertyName!="value")return true;if(this.flags.drop){var self=this;setTimeout(function(){self.flags.drop=false;self.onChange(null)},0);return}if(this.flags.hintOn)return true;if(this.keyCode==8||this.keyCode==46){var mustRevert=this.doValidations(this.input.value,this.input.value);this.oldValue=this.input.value;if((mustRevert||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){var self=this;setTimeout(function(){self.validate()},0);return true}}var mustRevert=this.doValidations(this.input.value,this.oldValue);if((!mustRevert||this.errors)&&this.validateOn&Spry.Widget.ValidationTextField.ONCHANGE){var self=this;setTimeout(function(){self.validate()},0)}return true};Spry.Widget.ValidationTextField.prototype.onKeyUp=function(e){if(this.flags.operaRevertOnKeyUp){this.setValue(this.oldValue);Spry.Widget.Utils.stopEvent(e);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 mustRevert=this.doValidations(this.input.value,this.input.value);if(mustRevert){this.setValue(this.oldValue);this.selection.moveTo(this.selection.start,this.selection.start)}else this.onChange()}};Spry.Widget.ValidationTextField.prototype.compileDatePattern=function(){var dateValidationPatternString="";var groupPatterns=[];var fullGroupPatterns=[];var autocompleteCharacters=[];var formatRegExp=/^([mdy]+)([\.\-\/\\\s]+)([mdy]+)([\.\-\/\\\s]+)([mdy]+)$/i;var formatGroups=this.options.format.match(formatRegExp);if(formatGroups!==null)for(var i=1;i<formatGroups.length;i++)switch(formatGroups[i].toLowerCase()){case"dd":groupPatterns[i-1]="\\d{1,2}";fullGroupPatterns[i-1]="\\d\\d";dateValidationPatternString+="("+groupPatterns[i-1]+")";autocompleteCharacters[i-1]=null;break;case"mm":groupPatterns[i-1]="\\d{1,2}";fullGroupPatterns[i-1]="\\d\\d";dateValidationPatternString+="("+groupPatterns[i-1]+")";autocompleteCharacters[i-1]=null;break;case"yy":groupPatterns[i-1]="\\d{1,2}";fullGroupPatterns[i-1]="\\d\\d";dateValidationPatternString+="(\\d\\d)";autocompleteCharacters[i-1]=null;break;case"yyyy":groupPatterns[i-1]="\\d{1,4}";fullGroupPatterns[i-1]="\\d\\d\\d\\d";dateValidationPatternString+="(\\d\\d\\d\\d)";autocompleteCharacters[i-1]=null;break;default:groupPatterns[i-1]=fullGroupPatterns[i-1]=Spry.Widget.ValidationTextField.regExpFromChars(formatGroups[i]);dateValidationPatternString+="["+groupPatterns[i-1]+"]";autocompleteCharacters[i-1]=formatGroups[i]}this.dateValidationPattern=new RegExp("^"+dateValidationPatternString+"$","");this.dateAutocompleteCharacters=autocompleteCharacters;this.dateGroupPatterns=groupPatterns;this.dateFullGroupPatterns=fullGroupPatterns;this.lastDateGroup=formatGroups.length-2};Spry.Widget.ValidationTextField.prototype.getRegExpForGroup=function(group){var ret="^";for(var j=0;j<=group;j++)ret+=this.dateGroupPatterns[j];ret+="$";return new RegExp(ret,"")};Spry.Widget.ValidationTextField.prototype.getRegExpForFullGroup=function(group){var ret="^";for(var j=0;j<group;j++)ret+=this.dateGroupPatterns[j];ret+=this.dateFullGroupPatterns[group];return new RegExp(ret,"")};Spry.Widget.ValidationTextField.prototype.getDateGroup=function(value,pos){if(pos==0)return 0;var test_value=value.substring(0,pos);for(var i=0;i<=this.lastDateGroup;i++)if(this.getRegExpForGroup(i).test(test_value))return i;return-1};Spry.Widget.ValidationTextField.prototype.isDateGroupFull=function(value,group){return this.getRegExpForFullGroup(group).test(value)};Spry.Widget.ValidationTextField.prototype.isValueValid=function(value,pos,group){var test_value=value.substring(0,pos);return this.getRegExpForGroup(group).test(test_value)};Spry.Widget.ValidationTextField.prototype.isPositionAtEndOfGroup=function(value,pos,group){var test_value=value.substring(0,pos);return this.getRegExpForFullGroup(group).test(test_value)};Spry.Widget.ValidationTextField.prototype.nextDateDelimiterExists=function(value,pos,group){var autocomplete=this.dateAutocompleteCharacters[group+1];if(value.length<pos+autocomplete.length)return false;else{var test_value=value.substring(pos,pos+autocomplete.length);if(test_value==autocomplete)return true}return false};Spry.Widget.ValidationTextField.prototype.onKeyPress=function(e){if(this.flags.skp){this.flags.skp=false;Spry.Widget.Utils.stopEvent(e);return false}if(e.ctrlKey||e.metaKey||!this.useCharacterMasking)return true;if(Spry.is.opera&&this.flags.operaRevertOnKeyUp){Spry.Widget.Utils.stopEvent(e);return false}if(this.keyCode==8||this.keyCode==46){var mr=this.doValidations(this.input.value,this.input.value);if(mr)return true}var pressed=Spry.Widget.Utils.getCharacterFromEvent(e);if(pressed&&this.characterMasking)if(!this.characterMasking.test(pressed)){Spry.Widget.Utils.stopEvent(e);this.redTextFlash();return false}if(pressed&&this.pattern){var currentPatternChar=this.patternCharacters[this.selection.start];if(/[ax]/i.test(currentPatternChar))if(currentPatternChar.toLowerCase()==currentPatternChar)pressed=pressed.toLowerCase();else pressed=pressed.toUpperCase();var autocomplete=this.getAutoComplete(this.selection.start);if(this.selection.start==this.oldValue.length)if(this.oldValue.length<this.patternLength){if(autocomplete){Spry.Widget.Utils.stopEvent(e);var futureValue=this.oldValue.substring(0,this.selection.start)+autocomplete+pressed;var mustRevert=this.doValidations(futureValue,this.oldValue);if(!mustRevert){this.setValue(this.fixedValue);this.selection.moveTo(this.fixedValue.length,this.fixedValue.length)}else{this.setValue(this.oldValue.substring(0,this.selection.start)+autocomplete);this.selection.moveTo(this.selection.start+autocomplete.length,this.selection.start+autocomplete.length)}return false}}else{Spry.Widget.Utils.stopEvent(e);this.setValue(this.input.value);return false}else if(autocomplete){Spry.Widget.Utils.stopEvent(e);this.selection.moveTo(this.selection.start+autocomplete.length,this.selection.start+autocomplete.length);return false}Spry.Widget.Utils.stopEvent(e);var futureValue=this.oldValue.substring(0,this.selection.start)+pressed+this.oldValue.substring(this.selection.start+1);var mustRevert=this.doValidations(futureValue,this.oldValue);if(!mustRevert){autocomplete=this.getAutoComplete(this.selection.start+1);this.setValue(this.fixedValue);this.selection.moveTo(this.selection.start+1+autocomplete.length,this.selection.start+1+autocomplete.length)}else this.selection.moveTo(this.selection.start,this.selection.start);return false}if(pressed&&this.type=="date"&&this.useCharacterMasking){var group=this.getDateGroup(this.oldValue,this.selection.start);if(group!=-1){Spry.Widget.Utils.stopEvent(e);if(group%2!=0)group++;if(this.isDateGroupFull(this.oldValue,group))if(this.isPositionAtEndOfGroup(this.oldValue,this.selection.start,group))if(group==this.lastDateGroup){this.redTextFlash();return false}else{var autocomplete=this.dateAutocompleteCharacters[group+1];if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,group)){var autocomplete=this.dateAutocompleteCharacters[group+1];this.selection.moveTo(this.selection.start+autocomplete.length,this.selection.start+autocomplete.length);if(pressed==autocomplete)return false;if(this.isDateGroupFull(this.oldValue,group+2))futureValue=this.oldValue.substring(0,this.selection.start)+pressed+this.oldValue.substring(this.selection.start+1);else futureValue=this.oldValue.substring(0,this.selection.start)+pressed+this.oldValue.substring(this.selection.start);if(!this.isValueValid(futureValue,this.selection.start+1,group+2)){this.redTextFlash();return false}else{this.setValue(futureValue);this.selection.moveTo(this.selection.start+1,this.selection.start+1)}return false}else{var autocomplete=this.dateAutocompleteCharacters[group+1];var insertedValue=autocomplete+pressed;futureValue=this.oldValue.substring(0,this.selection.start)+insertedValue+this.oldValue.substring(this.selection.start);if(!this.isValueValid(futureValue,this.selection.start+insertedValue.length,group+2)){insertedValue=autocomplete;futureValue=this.oldValue.substring(0,this.selection.start)+insertedValue+this.oldValue.substring(this.selection.start);this.setValue(futureValue);this.selection.moveTo(this.selection.start+insertedValue.length,this.selection.start+insertedValue.length);this.redTextFlash();return false}else{this.setValue(futureValue);this.selection.moveTo(this.selection.start+insertedValue.length,this.selection.start+insertedValue.length);return false}}}else{var movePosition=1;futureValue=this.oldValue.substring(0,this.selection.start)+pressed+this.oldValue.substring(this.selection.start+1);if(!this.isValueValid(futureValue,this.selection.start+1,group)){this.redTextFlash();return false}else{if(this.isPositionAtEndOfGroup(futureValue,this.selection.start+1,group))if(group!=this.lastDateGroup)if(this.nextDateDelimiterExists(futureValue,this.selection.start+1,group)){var autocomplete=this.dateAutocompleteCharacters[group+1];movePosition=1+autocomplete.length}else{var autocomplete=this.dateAutocompleteCharacters[group+1];futureValue=this.oldValue.substring(0,this.selection.start)+pressed+autocomplete+this.oldValue.substring(this.selection.start+1);movePosition=1+autocomplete.length}this.setValue(futureValue);this.selection.moveTo(this.selection.start+movePosition,this.selection.start+movePosition);return false}}else{futureValue=this.oldValue.substring(0,this.selection.start)+pressed+this.oldValue.substring(this.selection.start);var movePosition=1;if(!this.isValueValid(futureValue,this.selection.start+1,group)&&!this.isValueValid(futureValue,this.selection.start+1,group+1)){this.redTextFlash();return false}else{var autocomplete=this.dateAutocompleteCharacters[group+1];if(pressed==autocomplete){if(this.nextDateDelimiterExists(this.oldValue,this.selection.start,group)){futureValue=this.oldValue;movePosition=1}}else if(this.isPositionAtEndOfGroup(futureValue,this.selection.start+1,group))if(group!=this.lastDateGroup)if(this.nextDateDelimiterExists(futureValue,this.selection.start+1,group)){var autocomplete=this.dateAutocompleteCharacters[group+1];movePosition=1+autocomplete.length}else{var autocomplete=this.dateAutocompleteCharacters[group+1];futureValue=this.oldValue.substring(0,this.selection.start)+pressed+autocomplete+this.oldValue.substring(this.selection.start+1);movePosition=1+autocomplete.length}this.setValue(futureValue);this.selection.moveTo(this.selection.start+movePosition,this.selection.start+movePosition);return false}}}return false}};Spry.Widget.ValidationTextField.prototype.onKeyDown=function(e){this.saveState();this.keyCode=e.keyCode;if(Spry.is.opera){if(this.flags.operaPasteOperation){window.clearInterval(this.flags.operaPasteOperation);this.flags.operaPasteOperation=null}if(e.ctrlKey){var pressed=Spry.Widget.Utils.getCharacterFromEvent(e);if(pressed&&"vx".indexOf(pressed.toLowerCase())!=-1){var self=this;this.flags.operaPasteOperation=window.setInterval(function(){self.operaPasteMonitor()},1);return true}}}if(this.keyCode!=8&&this.keyCode!=46&&Spry.Widget.Utils.isSpecialKey(e))return true;if(this.keyCode==8||this.keyCode==46){var mr=this.doValidations(this.input.value,this.input.value);if(mr)return true}if(this.useCharacterMasking&&this.pattern&&this.keyCode==46){if(e.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(e);return false}if(this.useCharacterMasking&&this.pattern&&!e.ctrlKey&&this.keyCode==8){if(this.selection.start==this.input.value.length){var n=this.getAutoComplete(this.selection.start,-1);this.setValue(this.input.value.substring(0,this.input.value.length-(Spry.is.opera?0:1)-n.length));if(Spry.is.opera){this.selection.start=this.selection.start-1-n.length;this.selection.end=this.selection.end-1-n.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(e);return false}return true};Spry.Widget.ValidationTextField.prototype.onMouseDown=function(e){if(this.flags.active)this.saveState()};Spry.Widget.ValidationTextField.prototype.onDrop=function(e){this.flags.drop=true;this.removeHint();this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass)};Spry.Widget.ValidationTextField.prototype.onFocus=function(e){if(this.flags.drop)return;this.removeHint();if(this.pattern&&this.useCharacterMasking){var autocomplete=this.getAutoComplete(this.selection.start);this.setValue(this.input.value+autocomplete);this.selection.moveTo(this.input.value.length,this.input.value.length)}this.saveState();this.flags.active=true;this.addClassName(this.element,this.focusClass)};Spry.Widget.ValidationTextField.prototype.onBlur=function(e){this.flags.active=false;this.removeClassName(this.element,this.focusClass);var mustRevert=this.doValidations(this.input.value,this.input.value);if(this.validateOn&Spry.Widget.ValidationTextField.ONBLUR)this.validate();var self=this;setTimeout(function(){self.putHint()},10);return true};Spry.Widget.ValidationTextField.prototype.compilePattern=function(){if(!this.pattern)return;var compiled=[];var regexps=[];var patternCharacters=[];var idx=0;var c="",p="";for(var i=0;i<this.pattern.length;i++){c=this.pattern.charAt(i);if(p=="\\"){if(/[0ABXY\?]/i.test(c))regexps[idx-1]=c;else regexps[idx-1]=Spry.Widget.ValidationTextField.regExpFromChars(c);compiled[idx-1]=c;patternCharacters[idx-1]=null;p="";continue}regexps[idx]=Spry.Widget.ValidationTextField.regExpFromChars(c);if(/[0ABXY\?]/i.test(c)){compiled[idx]=null;patternCharacters[idx]=c}else if(c=="\\"){compiled[idx]=c;patternCharacters[idx]="\\"}else{compiled[idx]=c;patternCharacters[idx]=null}idx++;p=c}this.autoCompleteCharacters=compiled;this.compiledPattern=regexps;this.patternCharacters=patternCharacters;this.patternLength=compiled.length};Spry.Widget.ValidationTextField.prototype.getAutoComplete=function(from,direction){if(direction==-1){var n="",m="";while(from&&(n=this.getAutoComplete(--from)))m=n;return m}var ret="",c="";for(var i=from;i<this.autoCompleteCharacters.length;i++){c=this.autoCompleteCharacters[i];if(c)ret+=c;else break}return ret};Spry.Widget.ValidationTextField.regExpFromChars=function(string){var ret="",character="";for(var i=0;i<string.length;i++){character=string.charAt(i);switch(character){case"0":ret+="\\d";break;case"A":ret+="[A-Z]";break;case"a":ret+="[a-z]";break;case"B":case"b":ret+="[a-zA-Z]";break;case"x":ret+="[0-9a-z]";break;case"X":ret+="[0-9A-Z]";break;case"Y":case"y":ret+="[0-9a-zA-Z]";break;case"?":ret+=".";break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":ret+=character;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":ret+=character;break;default:ret+="\\"+character}}return ret};Spry.Widget.ValidationTextField.prototype.patternToRegExp=function(len){var ret="^";var end=Math.min(this.compiledPattern.length,len);for(var i=0;i<end;i++)ret+=this.compiledPattern[i];ret+="$";ret=new RegExp(ret,"");return ret};Spry.Widget.ValidationTextField.prototype.reset=function(){this.removeHint();this.oldValue=this.input.defaultValue;this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidFormatClass);this.removeClassName(this.element,this.invalidRangeMinClass);this.removeClassName(this.element,this.invalidRangeMaxClass);this.removeClassName(this.element,this.invalidCharsMinClass);this.removeClassName(this.element,this.invalidCharsMaxClass);this.removeClassName(this.element,this.validClass);var self=this;setTimeout(function(){self.putHint()},10)};Spry.Widget.ValidationTextField.prototype.validate=function(){this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidFormatClass);this.removeClassName(this.element,this.invalidRangeMinClass);this.removeClassName(this.element,this.invalidRangeMaxClass);this.removeClassName(this.element,this.invalidCharsMinClass);this.removeClassName(this.element,this.invalidCharsMaxClass);this.removeClassName(this.element,this.validClass);if(this.validateOn&Spry.Widget.ValidationTextField.ONSUBMIT){this.removeHint();this.doValidations(this.input.value,this.input.value);if(!this.flags.active){var self=this;setTimeout(function(){self.putHint()},10)}}if(this.isRequired&&this.errors&Spry.Widget.ValidationTextField.ERROR_REQUIRED){this.addClassName(this.element,this.requiredClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_FORMAT){this.addClassName(this.element,this.invalidFormatClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_RANGE_MIN){this.addClassName(this.element,this.invalidRangeMinClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_RANGE_MAX){this.addClassName(this.element,this.invalidRangeMaxClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MIN){this.addClassName(this.element,this.invalidCharsMinClass);return false}if(this.errors&Spry.Widget.ValidationTextField.ERROR_CHARS_MAX){this.addClassName(this.element,this.invalidCharsMaxClass);return false}this.addClassName(this.element,this.validClass);return true};Spry.Widget.ValidationTextField.prototype.addClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1)return;ele.className+=(ele.className?" ":"")+className};Spry.Widget.ValidationTextField.prototype.removeClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"")};Spry.Widget.SelectionDescriptor=function(element){this.element=element;this.update()};Spry.Widget.SelectionDescriptor.prototype.update=function(){if(Spry.is.ie&&Spry.is.windows)if(this.element.nodeName=="TEXTAREA"){var range=this.element.ownerDocument.selection.createRange();if(range.parentElement()==this.element){var range_all=this.element.ownerDocument.body.createTextRange();range_all.moveToElementText(this.element);for(var sel_start=0;range_all.compareEndPoints("StartToStart",range)<0;sel_start++)range_all.moveStart("character",1);this.start=sel_start;range_all=this.element.ownerDocument.body.createTextRange();range_all.moveToElementText(this.element);for(var sel_end=0;range_all.compareEndPoints("StartToEnd",range)<0;sel_end++)range_all.moveStart("character",1);this.end=sel_end;this.length=this.end-this.start;this.text=range.text}}else{if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();this.length=this.range.text.length;var clone=this.range.duplicate();this.start=-clone.moveStart("character",-10000);clone=this.range.duplicate();clone.collapse(false);this.end=-clone.moveStart("character",-10000);this.text=this.range.text}}else{var tmp=this.element;var selectionStart=0;var selectionEnd=0;try{selectionStart=tmp.selectionStart}catch(err){}try{selectionEnd=tmp.selectionEnd}catch(err){}if(Spry.is.safari){if(selectionStart==2147483647)selectionStart=0;if(selectionEnd==2147483647)selectionEnd=0}this.start=selectionStart;this.end=selectionEnd;this.length=selectionEnd-selectionStart;this.text=this.element.value.substring(selectionStart,selectionEnd)}};Spry.Widget.SelectionDescriptor.prototype.destroy=function(){try{delete this.range}catch(err){}try{delete this.element}catch(err){}};Spry.Widget.SelectionDescriptor.prototype.move=function(amount){if(Spry.is.ie&&Spry.is.windows){this.range.move("character",amount);this.range.select()}else try{this.element.selectionStart++}catch(err){}this.update()};Spry.Widget.SelectionDescriptor.prototype.moveTo=function(start,end){if(Spry.is.ie&&Spry.is.windows){if(this.element.nodeName=="TEXTAREA"){var ta_range=this.element.createTextRange();this.range=this.element.createTextRange();this.range.move("character",start);this.range.moveEnd("character",end-start);var c1=this.range.compareEndPoints("StartToStart",ta_range);if(c1<0)this.range.setEndPoint("StartToStart",ta_range);var c2=this.range.compareEndPoints("EndToEnd",ta_range);if(c2>0)this.range.setEndPoint("EndToEnd",ta_range)}else if(this.element.nodeName=="INPUT"){this.range=this.element.ownerDocument.selection.createRange();this.range.move("character",-10000);this.start=this.range.moveStart("character",start);this.end=this.start+this.range.moveEnd("character",end-start)}this.range.select()}else{this.start=start;try{this.element.selectionStart=start}catch(err){}this.end=end;try{this.element.selectionEnd=end}catch(err){}}this.ignore=true;this.update()};Spry.Widget.SelectionDescriptor.prototype.moveEnd=function(amount){if(Spry.is.ie&&Spry.is.windows){this.range.moveEnd("character",amount);this.range.select()}else try{this.element.selectionEnd++}catch(err){}this.update()};Spry.Widget.SelectionDescriptor.prototype.collapse=function(begin){if(Spry.is.ie&&Spry.is.windows){this.range=this.element.ownerDocument.selection.createRange();this.range.collapse(begin);this.range.select()}else if(begin)try{this.element.selectionEnd=this.element.selectionStart}catch(err){}else try{this.element.selectionStart=this.element.selectionEnd}catch(err){}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(vform){var isValid=true;var isElementValid=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform){isElementValid=q[i].validate();isValid=isElementValid&&isValid}return isValid};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(e,form){if(Spry.Widget.Form.validate(form)==false)return false;return true};if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(e,vform){var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform&&typeof q[i].reset=="function")q[i].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(form){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(q[i].form==form&&typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.punycode_constants={base:36,tmin:1,tmax:26,skew:38,damp:700,initial_bias:72,initial_n:128,delimiter:45,maxint:2<<26-1};Spry.Widget.Utils.punycode_encode_digit=function(d){return String.fromCharCode(d+22+75*(d<26))};Spry.Widget.Utils.punycode_adapt=function(delta,numpoints,firsttime){delta=firsttime?delta/this.punycode_constants.damp:delta>>1;delta+=delta/numpoints;for(var k=0;delta>(this.punycode_constants.base-this.punycode_constants.tmin)*this.punycode_constants.tmax/2;k+=this.punycode_constants.base)delta/=this.punycode_constants.base-this.punycode_constants.tmin;return k+(this.punycode_constants.base-this.punycode_constants.tmin+1)*delta/(delta+this.punycode_constants.skew)};Spry.Widget.Utils.punycode_encode=function(input,max_out){var inputc=input.split("");input=[];for(var i=0;i<inputc.length;i++)input.push(inputc[i].charCodeAt(0));var output="";var h,b,j,m,q,k,t;var input_len=input.length;var n=this.punycode_constants.initial_n;var delta=0;var bias=this.punycode_constants.initial_bias;var out=0;for(j=0;j<input_len;j++)if(input[j]<128){if(max_out-out<2)return false;output+=String.fromCharCode(input[j]);out++}h=b=out;if(b>0){output+=String.fromCharCode(this.punycode_constants.delimiter);out++}while(h<input_len){for(m=this.punycode_constants.maxint,j=0;j<input_len;j++)if(input[j]>=n&&input[j]<m)m=input[j];if(m-n>(this.punycode_constants.maxint-delta)/(h+1))return false;delta+=(m-n)*(h+1);n=m;for(j=0;j<input_len;j++){if(input[j]<n)if(++delta==0)return false;if(input[j]==n){for(q=delta,k=this.punycode_constants.base;;k+=this.punycode_constants.base){if(out>=max_out)return false;t=k<=bias?this.punycode_constants.tmin:k>=bias+this.punycode_constants.tmax?this.punycode_constants.tmax:k-bias;if(q<t)break;output+=this.punycode_encode_digit(t+(q-t)%(this.punycode_constants.base-t));out++;q=(q-t)/(this.punycode_constants.base-t)}output+=this.punycode_encode_digit(q);out++;bias=this.punycode_adapt(delta,h+1,h==b);delta=0;h++}}delta++,n++}return output};Spry.Widget.Utils.setOptions=function(obj,optionsObj,ignoreUndefinedProps){if(!optionsObj)return;for(var optionName in optionsObj){if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)continue;obj[optionName]=optionsObj[optionName]}};Spry.Widget.Utils.firstValid=function(){var ret=null;for(var i=0;i<Spry.Widget.Utils.firstValid.arguments.length;i++)if(typeof Spry.Widget.Utils.firstValid.arguments[i]!="undefined"){ret=Spry.Widget.Utils.firstValid.arguments[i];break}return ret};Spry.Widget.Utils.specialCharacters=",8,9,16,17,18,20,27,33,34,35,36,37,38,40,45,144,192,63232,";Spry.Widget.Utils.specialSafariNavKeys="63232,63233,63234,63235,63272,63273,63275,63276,63277,63289,";Spry.Widget.Utils.specialNotSafariCharacters="39,46,91,92,93,";Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialSafariNavKeys;if(!Spry.is.safari)Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialNotSafariCharacters;Spry.Widget.Utils.isSpecialKey=function(ev){return Spry.Widget.Utils.specialCharacters.indexOf(","+ev.keyCode+",")!=-1};Spry.Widget.Utils.getCharacterFromEvent=function(e){var keyDown=e.type=="keydown";var code=null;var character=null;if(Spry.is.mozilla&&!keyDown)if(e.charCode)character=String.fromCharCode(e.charCode);else code=e.keyCode;else{code=e.keyCode||e.which;if(code!=13)character=String.fromCharCode(code)}if(Spry.is.safari)if(keyDown){code=e.keyCode||e.which;character=String.fromCharCode(code)}else{code=e.keyCode||e.which;if(Spry.Widget.Utils.specialCharacters.indexOf(","+code+",")!=-1)character=null;else character=String.fromCharCode(code)}if(Spry.is.opera)if(Spry.Widget.Utils.specialCharacters.indexOf(","+code+",")!=-1)character=null;else character=String.fromCharCode(code);return character};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(node,nodeName){var elements=node.getElementsByTagName(nodeName);if(elements)return elements[0];return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(node,nodeName){while(node.parentNode&&node.parentNode.nodeName.toLowerCase()!=nodeName.toLowerCase()&&node.parentNode.nodeName!="BODY")node=node.parentNode;if(node.parentNode&&node.parentNode.nodeName.toLowerCase()==nodeName.toLowerCase())return node.parentNode;else return null};Spry.Widget.Utils.destroyWidgets=function(container){if(typeof container=="string")container=document.getElementById(container);var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"&&Spry.Widget.Utils.contains(container,q[i].element)){q[i].destroy();i--}};Spry.Widget.Utils.contains=function(who,what){if(typeof who.contains=="object")return what&&who&&(who==what||who.contains(what));else{var el=what;while(el){if(el==who)return true;el=el.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(element,eventType,handler,capture){try{if(element.addEventListener)element.addEventListener(eventType,handler,capture);else if(element.attachEvent)element.attachEvent("on"+eventType,handler,capture)}catch(e){}};Spry.Widget.Utils.removeEventListener=function(element,eventType,handler,capture){try{if(element.removeEventListener)element.removeEventListener(eventType,handler,capture);else if(element.detachEvent)element.detachEvent("on"+eventType,handler,capture)}catch(e){}};Spry.Widget.Utils.stopEvent=function(ev){try{this.stopPropagation(ev);this.preventDefault(ev)}catch(e){}};Spry.Widget.Utils.stopPropagation=function(ev){if(ev.stopPropagation)ev.stopPropagation();else ev.cancelBubble=true};Spry.Widget.Utils.preventDefault=function(ev){if(ev.preventDefault)ev.preventDefault();else ev.returnValue=false};var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.ValidationSelect=function(element,opts){this.init(element);Spry.Widget.Utils.setOptions(this,opts);var validateOn=["submit"].concat(this.validateOn||[]);validateOn=validateOn.join(",");this.validateOn=0|(validateOn.indexOf("submit")!=-1?Spry.Widget.ValidationSelect.ONSUBMIT:0);this.validateOn=this.validateOn|(validateOn.indexOf("blur")!=-1?Spry.Widget.ValidationSelect.ONBLUR:0);this.validateOn=this.validateOn|(validateOn.indexOf("change")!=-1?Spry.Widget.ValidationSelect.ONCHANGE:0);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(element){this.element=this.getElement(element);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(){for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);try{delete this.element}catch(err){}try{delete this.selectElement}catch(err){}try{delete this.form}catch(err){}try{delete this.event_handlers}catch(err){}var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(q[i]==this){q.splice(i,1);break}};Spry.Widget.ValidationSelect.onloadDidFire=false;Spry.Widget.ValidationSelect.loadQueue=[];Spry.Widget.ValidationSelect.prototype.getElement=function(ele){if(ele&&typeof ele=="string")return document.getElementById(ele);return ele};Spry.Widget.ValidationSelect.processLoadQueue=function(handler){Spry.Widget.ValidationSelect.onloadDidFire=true;var q=Spry.Widget.ValidationSelect.loadQueue;var qlen=q.length;for(var i=0;i<qlen;i++)q[i].attachBehaviors()};Spry.Widget.ValidationSelect.addLoadListener=function(handler){if(typeof window.addEventListener!="undefined")window.addEventListener("load",handler,false);else if(typeof document.addEventListener!="undefined")document.addEventListener("load",handler,false);else if(typeof window.attachEvent!="undefined")window.attachEvent("onload",handler)};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 self=this;this.event_handlers=[];var focusEventName="focus";if(navigator.userAgent.toLowerCase().indexOf("msie 7.")!=-1)focusEventName="beforeactivate";this.event_handlers.push([this.selectElement,focusEventName,function(e){if(self.isDisabled())return true;return self.onFocus(e)}]);this.event_handlers.push([this.selectElement,"blur",function(e){if(self.isDisabled())return true;return self.onBlur(e)}]);if(this.validateOn&Spry.Widget.ValidationSelect.ONCHANGE){this.event_handlers.push([this.selectElement,"change",function(e){if(self.isDisabled())return true;return self.onChange(e)}]);this.event_handlers.push([this.selectElement,"keypress",function(e){if(self.isDisabled())return true;return self.onChange(e)}])}for(var i=0;i<this.event_handlers.length;i++)Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][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(e){e=e||event;return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget)};this.form.attachedSubmitHandler=true}if(!this.form.attachedResetHandler){Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){e=e||event;return Spry.Widget.Form.onReset(e,e.srcElement||e.currentTarget)},false);this.form.attachedResetHandler=true}Spry.Widget.Form.onSubmitWidgetQueue.push(this)}}};Spry.Widget.ValidationSelect.prototype.addClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))!=-1)return;ele.className+=(ele.className?" ":"")+className};Spry.Widget.ValidationSelect.prototype.removeClassName=function(ele,className){if(!ele||!className||ele.className&&ele.className.search(new RegExp("\\b"+className+"\\b"))==-1)return;ele.className=ele.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"")};Spry.Widget.ValidationSelect.prototype.onFocus=function(e){this.hasFocus=true;this.validatedByOnChangeEvent=false;this.addClassName(this.element,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onBlur=function(e){this.hasFocus=false;var doValidation=false;if(this.validateOn&Spry.Widget.ValidationSelect.ONBLUR)doValidation=true;if(doValidation&&!this.validatedByOnChangeEvent)this.validate();this.removeClassName(this.element,this.focusClass)};Spry.Widget.ValidationSelect.prototype.onChange=function(e){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)};Spry.Widget.ValidationSelect.prototype.validate=function(){this.removeClassName(this.element,this.requiredClass);this.removeClassName(this.element,this.invalidClass);this.removeClassName(this.element,this.validClass);if(this.isRequired){if(this.selectElement.options.length==0||this.selectElement.selectedIndex==-1){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].getAttribute("value")==null){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].value==this.emptyValue){this.addClassName(this.element,this.requiredClass);return false}if(this.selectElement.options[this.selectElement.selectedIndex].disabled){this.addClassName(this.element,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);return false}this.addClassName(this.element,this.validClass);return true};Spry.Widget.ValidationSelect.prototype.isDisabled=function(){return this.selectElement.disabled};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(vform){var isValid=true;var isElementValid=true;var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform){isElementValid=q[i].validate();isValid=isElementValid&&isValid}return isValid};if(!Spry.Widget.Form.onSubmit)Spry.Widget.Form.onSubmit=function(e,form){if(Spry.Widget.Form.validate(form)==false)return false;return true};if(!Spry.Widget.Form.onReset)Spry.Widget.Form.onReset=function(e,vform){var q=Spry.Widget.Form.onSubmitWidgetQueue;var qlen=q.length;for(var i=0;i<qlen;i++)if(!q[i].isDisabled()&&q[i].form==vform&&typeof q[i].reset=="function")q[i].reset();return true};if(!Spry.Widget.Form.destroy)Spry.Widget.Form.destroy=function(form){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(q[i].form==form&&typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Form.destroyAll)Spry.Widget.Form.destroyAll=function(){var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"){q[i].destroy();i--}};if(!Spry.Widget.Utils)Spry.Widget.Utils={};Spry.Widget.Utils.setOptions=function(obj,optionsObj,ignoreUndefinedProps){if(!optionsObj)return;for(var optionName in optionsObj){if(ignoreUndefinedProps&&optionsObj[optionName]==undefined)continue;obj[optionName]=optionsObj[optionName]}};Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(node,nodeName){var elements=node.getElementsByTagName(nodeName);if(elements)return elements[0];return null};Spry.Widget.Utils.getFirstParentWithNodeName=function(node,nodeName){while(node.parentNode&&node.parentNode.nodeName.toLowerCase()!=nodeName.toLowerCase()&&node.parentNode.nodeName!="BODY")node=node.parentNode;if(node.parentNode&&node.parentNode.nodeName.toLowerCase()==nodeName.toLowerCase())return node.parentNode;else return null};Spry.Widget.Utils.destroyWidgets=function(container){if(typeof container=="string")container=document.getElementById(container);var q=Spry.Widget.Form.onSubmitWidgetQueue;for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++)if(typeof q[i].destroy=="function"&&Spry.Widget.Utils.contains(container,q[i].element)){q[i].destroy();i--}};Spry.Widget.Utils.contains=function(who,what){if(typeof who.contains=="object")return what&&who&&(who==what||who.contains(what));else{var el=what;while(el){if(el==who)return true;el=el.parentNode}return false}};Spry.Widget.Utils.addEventListener=function(element,eventType,handler,capture){try{if(element.addEventListener)element.addEventListener(eventType,handler,capture);else if(element.attachEvent)element.attachEvent("on"+eventType,handler,capture)}catch(e){}};Spry.Widget.Utils.removeEventListener=function(element,eventType,handler,capture){try{if(element.removeEventListener)element.removeEventListener(eventType,handler,capture);else if(element.detachEvent)element.detachEvent("on"+eventType,handler,capture)}catch(e){}};