var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.Accordion=function(A,B){this.element=this.getElement(A);this.defaultPanel=-1;this.hoverClass="AccordionPanelTabHover";this.openClass="AccordionPanelOpen";this.closedClass="AccordionPanelClosed";this.focusedClass="AccordionFocused";this.enableAnimation=true;this.enableKeyboardNavigation=true;this.currentPanel=null;this.animator=null;this.hasFocus=null;this.previousPanelKeyCode=Spry.Widget.Accordion.KEY_UP;this.nextPanelKeyCode=Spry.Widget.Accordion.KEY_DOWN;this.useFixedPanelHeights=false;this.fixedPanelHeight=0;Spry.Widget.Accordion.setOptions(this,B,true);this.attachBehaviors()};Spry.Widget.Accordion.prototype.getElement=function(A){if(A&&typeof A=="string"){return document.getElementById(A)}return A};Spry.Widget.Accordion.prototype.addClassName=function(B,A){if(!B||!A||(B.className&&B.className.search(new RegExp("\\b"+A+"\\b"))!=-1)){return}B.className+=(B.className?" ":"")+A};Spry.Widget.Accordion.prototype.removeClassName=function(B,A){if(!B||!A||(B.className&&B.className.search(new RegExp("\\b"+A+"\\b"))==-1)){return}B.className=B.className.replace(new RegExp("\\s*\\b"+A+"\\b","g"),"")};Spry.Widget.Accordion.setOptions=function(D,C,A){if(!C){return}for(var B in C){if(A&&C[B]==undefined){continue}D[B]=C[B]}};Spry.Widget.Accordion.prototype.onPanelTabMouseOver=function(B,A){if(A){this.addClassName(this.getPanelTab(A),this.hoverClass)}return false};Spry.Widget.Accordion.prototype.onPanelTabMouseOut=function(B,A){if(A){this.removeClassName(this.getPanelTab(A),this.hoverClass)}return false};Spry.Widget.Accordion.prototype.openPanel=function(C){var E=this.currentPanel;var D;if(typeof C=="number"){D=this.getPanels()[C]}else{D=this.getElement(C)}if(!D||E==D){return null}var B=E?this.getPanelContent(E):null;var A=this.getPanelContent(D);if(!A){return null}if(this.useFixedPanelHeights&&!this.fixedPanelHeight){this.fixedPanelHeight=(B.offsetHeight)?B.offsetHeight:B.scrollHeight}if(this.enableAnimation){if(this.animator){this.animator.stop()}this.animator=new Spry.Widget.Accordion.PanelAnimator(this,D,{duration:this.duration,fps:this.fps,transition:this.transition});this.animator.start()}else{if(B){B.style.display="none";B.style.height="0px"}A.style.display="block";A.style.height=this.useFixedPanelHeights?this.fixedPanelHeight+"px":"auto"}if(E){this.removeClassName(E,this.openClass);this.addClassName(E,this.closedClass)}this.removeClassName(D,this.closedClass);this.addClassName(D,this.openClass);this.currentPanel=D;return D};Spry.Widget.Accordion.prototype.closePanel=function(){if(!this.useFixedPanelHeights&&this.currentPanel){var A=this.currentPanel;var B=this.getPanelContent(A);if(B){if(this.enableAnimation){if(this.animator){this.animator.stop()}this.animator=new Spry.Widget.Accordion.PanelAnimator(this,null,{duration:this.duration,fps:this.fps,transition:this.transition});this.animator.start()}else{B.style.display="none";B.style.height="0px"}}this.removeClassName(A,this.openClass);this.addClassName(A,this.closedClass);this.currentPanel=null}};Spry.Widget.Accordion.prototype.openNextPanel=function(){return this.openPanel(this.getCurrentPanelIndex()+1)};Spry.Widget.Accordion.prototype.openPreviousPanel=function(){return this.openPanel(this.getCurrentPanelIndex()-1)};Spry.Widget.Accordion.prototype.openFirstPanel=function(){return this.openPanel(0)};Spry.Widget.Accordion.prototype.openLastPanel=function(){var A=this.getPanels();return this.openPanel(A[A.length-1])};Spry.Widget.Accordion.prototype.onPanelTabClick=function(B,A){if(A!=this.currentPanel){this.openPanel(A)}else{this.closePanel()}if(this.enableKeyboardNavigation){this.focus()}if(B.preventDefault){B.preventDefault()}else{B.returnValue=false}if(B.stopPropagation){B.stopPropagation()}else{B.cancelBubble=true}return false};Spry.Widget.Accordion.prototype.onFocus=function(A){this.hasFocus=true;this.addClassName(this.element,this.focusedClass);return false};Spry.Widget.Accordion.prototype.onBlur=function(A){this.hasFocus=false;this.removeClassName(this.element,this.focusedClass);return false};Spry.Widget.Accordion.KEY_UP=38;Spry.Widget.Accordion.KEY_DOWN=40;Spry.Widget.Accordion.prototype.onKeyDown=function(C){var B=C.keyCode;if(!this.hasFocus||(B!=this.previousPanelKeyCode&&B!=this.nextPanelKeyCode)){return true}var A=this.getPanels();if(!A||A.length<1){return false}var E=this.currentPanel?this.currentPanel:A[0];var D=(B==this.nextPanelKeyCode)?E.nextSibling:E.previousSibling;while(D){if(D.nodeType==1){break}D=(B==this.nextPanelKeyCode)?D.nextSibling:D.previousSibling}if(D&&E!=D){this.openPanel(D)}if(C.preventDefault){C.preventDefault()}else{C.returnValue=false}if(C.stopPropagation){C.stopPropagation()}else{C.cancelBubble=true}return false};Spry.Widget.Accordion.prototype.attachPanelHandlers=function(A){if(!A){return}var C=this.getPanelTab(A);if(C){var B=this;Spry.Widget.Accordion.addEventListener(C,"click",function(D){return B.onPanelTabClick(D,A)},false);Spry.Widget.Accordion.addEventListener(C,"mouseover",function(D){return B.onPanelTabMouseOver(D,A)},false);Spry.Widget.Accordion.addEventListener(C,"mouseout",function(D){return B.onPanelTabMouseOut(D,A)},false)}};Spry.Widget.Accordion.addEventListener=function(C,B,D,A){try{if(C.addEventListener){C.addEventListener(B,D,A)}else{if(C.attachEvent){C.attachEvent("on"+B,D)}}}catch(E){}};Spry.Widget.Accordion.prototype.initPanel=function(A,C){var B=this.getPanelContent(A);if(C){this.currentPanel=A;this.removeClassName(A,this.closedClass);this.addClassName(A,this.openClass);if(B){if(this.useFixedPanelHeights){if(this.fixedPanelHeight){B.style.height=this.fixedPanelHeight+"px"}}else{B.style.height="auto"}}}else{this.removeClassName(A,this.openClass);this.addClassName(A,this.closedClass);if(B){B.style.height="0px";B.style.display="none"}}this.attachPanelHandlers(A)};Spry.Widget.Accordion.prototype.attachBehaviors=function(){var B=this.getPanels();for(var C=0;C<B.length;C++){this.initPanel(B[C],C==this.defaultPanel)}this.enableKeyboardNavigation=(this.enableKeyboardNavigation&&this.element.attributes.getNamedItem("tabindex"));if(this.enableKeyboardNavigation){var A=this;Spry.Widget.Accordion.addEventListener(this.element,"focus",function(D){return A.onFocus(D)},false);Spry.Widget.Accordion.addEventListener(this.element,"blur",function(D){return A.onBlur(D)},false);Spry.Widget.Accordion.addEventListener(this.element,"keydown",function(D){return A.onKeyDown(D)},false)}};Spry.Widget.Accordion.prototype.getPanels=function(){return this.getElementChildren(this.element)};Spry.Widget.Accordion.prototype.getCurrentPanel=function(){return this.currentPanel};Spry.Widget.Accordion.prototype.getPanelIndex=function(A){var B=this.getPanels();for(var C=0;C<B.length;C++){if(A==B[C]){return C}}return -1};Spry.Widget.Accordion.prototype.getCurrentPanelIndex=function(){return this.getPanelIndex(this.currentPanel)};Spry.Widget.Accordion.prototype.getPanelTab=function(A){if(!A){return null}return this.getElementChildren(A)[0]};Spry.Widget.Accordion.prototype.getPanelContent=function(A){if(!A){return null}return this.getElementChildren(A)[1]};Spry.Widget.Accordion.prototype.getElementChildren=function(B){var A=[];var C=B.firstChild;while(C){if(C.nodeType==1){A.push(C)}C=C.nextSibling}return A};Spry.Widget.Accordion.prototype.focus=function(){if(this.element&&this.element.focus){this.element.focus()}};Spry.Widget.Accordion.prototype.blur=function(){if(this.element&&this.element.blur){this.element.blur()}};Spry.Widget.Accordion.PanelAnimator=function(G,B,A){this.timer=null;this.interval=0;this.fps=60;this.duration=500;this.startTime=0;this.transition=Spry.Widget.Accordion.PanelAnimator.defaultTransition;this.onComplete=null;this.panel=B;this.panelToOpen=G.getElement(B);this.panelData=[];this.useFixedPanelHeights=G.useFixedPanelHeights;Spry.Widget.Accordion.setOptions(this,A,true);this.interval=Math.floor(1000/this.fps);var H=G.getPanels();for(var E=0;E<H.length;E++){var C=H[E];var I=G.getPanelContent(C);if(I){var F=I.offsetHeight;if(F==undefined){F=0}if(C==B&&F==0){I.style.display="block"}if(C==B||F>0){var D=new Object;D.panel=C;D.content=I;D.fromHeight=F;D.toHeight=(C==B)?(G.useFixedPanelHeights?G.fixedPanelHeight:I.scrollHeight):0;D.distance=D.toHeight-D.fromHeight;D.overflow=I.style.overflow;this.panelData.push(D);I.style.overflow="hidden";I.style.height=F+"px"}}}};Spry.Widget.Accordion.PanelAnimator.defaultTransition=function(D,B,A,C){D/=C;return B+((2-D)*D*A)};Spry.Widget.Accordion.PanelAnimator.prototype.start=function(){var A=this;this.startTime=(new Date).getTime();this.timer=setTimeout(function(){A.stepAnimation()},this.interval)};Spry.Widget.Accordion.PanelAnimator.prototype.stop=function(){if(this.timer){clearTimeout(this.timer);for(i=0;i<this.panelData.length;i++){obj=this.panelData[i];obj.content.style.overflow=obj.overflow}}this.timer=null};Spry.Widget.Accordion.PanelAnimator.prototype.stepAnimation=function(){var E=(new Date).getTime();var B=E-this.startTime;var D,F;if(B>=this.duration){for(D=0;D<this.panelData.length;D++){F=this.panelData[D];if(F.panel!=this.panel){F.content.style.display="none";F.content.style.height="0px"}F.content.style.overflow=F.overflow;F.content.style.height=(this.useFixedPanelHeights||F.toHeight==0)?F.toHeight+"px":"auto"}if(this.onComplete){this.onComplete()}return}for(D=0;D<this.panelData.length;D++){F=this.panelData[D];var C=this.transition(B,F.fromHeight,F.distance,this.duration);F.content.style.height=((C<0)?0:C)+"px"}var A=this;this.timer=setTimeout(function(){A.stepAnimation()},this.interval)};