var Spry;if(!Spry)Spry={};if(!Spry.Widget)Spry.Widget={};Spry.Widget.Accordion=function(i,I){var l=this;l.element=l.getElement(i);l.defaultPanel=1;l.hoverClass="AccordionPanelTabHover";l.openClass="AccordionPanelOpen";l.closedClass="AccordionPanelClosed";l.focusedClass="AccordionFocused";l.enableAnimation=true;l.enableKeyboardNavigation=true;l.currentPanel=null;l.animator=null;l.hasFocus=null;l.duration=50;l.previousPanelKeyCode=Spry.Widget.Accordion.KEY_UP;l.nextPanelKeyCode=Spry.Widget.Accordion.KEY_DOWN;l.useFixedPanelHeights=true;l.fixedPanelHeight=0;Spry.Widget.Accordion.setOptions(l,I,true);if(Spry.Widget.Accordion.onloadDidFire)l.attachBehaviors();else
Spry.Widget.Accordion.loadQueue.push(l)};Spry.Widget.Accordion.onloadDidFire=false;Spry.Widget.Accordion.loadQueue=[];Spry.Widget.Accordion.addLoadListener=function(i){if(typeof window.addEventListener!='undefined')window.addEventListener('load',i,false);else if(typeof document.addEventListener!='undefined')document.addEventListener('load',i,false);else if(typeof window.attachEvent!='undefined')window.attachEvent('onload',i)};Spry.Widget.Accordion.processLoadQueue=function(i){Spry.Widget.Accordion.onloadDidFire=true;var o=Spry.Widget.Accordion.loadQueue,I=o.length;for(var l=0;l<I;l++)o[l].attachBehaviors()};Spry.Widget.Accordion.addLoadListener(Spry.Widget.Accordion.processLoadQueue);Spry.Widget.Accordion.prototype.getElement=function(i){if(i&&typeof i=="string")return document.getElementById(i);return i};Spry.Widget.Accordion.prototype.addClassName=function(I,i){if(!I||!i||(I.className&&I.className.search(new RegExp("\\b"+i+"\\b"))!=-1))return;I.className+=(I.className?" ":"")+i};Spry.Widget.Accordion.prototype.removeClassName=function(I,i){if(!I||!i||(I.className&&I.className.search(new RegExp("\\b"+i+"\\b"))==-1))return;I.className=I.className.replace(new RegExp("\\s*\\b"+i+"\\b","g"),"")};Spry.Widget.Accordion.setOptions=function(o,i,I){if(!i)return;for(var l in i){if(I&&i[l]==undefined)continue;o[l]=i[l]}};Spry.Widget.Accordion.prototype.onPanelTabMouseOver=function(i){var I=this;if(i)I.addClassName(I.getPanelTab(i),I.hoverClass)};Spry.Widget.Accordion.prototype.onPanelTabMouseOut=function(i){var I=this;if(i)I.removeClassName(I.getPanelTab(i),I.hoverClass)};Spry.Widget.Accordion.prototype.openPanel=function(O){var c=this,l=c.currentPanel,I=O;if(!I||l==I)return;var i;if(l)i=c.getPanelContent(l);var o=c.getPanelContent(I);if(!o)return;if(c.useFixedPanelHeights&&!c.fixedPanelHeight){c.fixedPanelHeight=(i.offsetHeight)?i.offsetHeight:i.scrollHeight}
if(c.enableAnimation){if(c.animator)c.animator.stop();c.animator=new Spry.Widget.Accordion.PanelAnimator(c,I,{duration:c.duration});c.animator.start()}else{if(i)i.style.height="0px";o.style.height=(c.useFixedPanelHeights?c.fixedPanelHeight:o.scrollHeight)+"px"}
if(l){c.removeClassName(l,c.openClass);c.addClassName(l,c.closedClass)}
c.removeClassName(I,c.closedClass);c.addClassName(I,c.openClass);c.currentPanel=I};Spry.Widget.Accordion.prototype.openNextPanel=function(){var l=this,I=l.getPanels(),i=l.getCurrentPanelIndex();if(I&&i>=0&&(i+1)<I.length)l.openPanel(I[i+1])};Spry.Widget.Accordion.prototype.openPreviousPanel=function(){var l=this,I=l.getPanels(),i=l.getCurrentPanelIndex();if(I&&i>0&&i<I.length)l.openPanel(I[i-1])};Spry.Widget.Accordion.prototype.openFirstPanel=function(){var I=this,i=I.getPanels();if(i)I.openPanel(i[0])};Spry.Widget.Accordion.prototype.openLastPanel=function(){var I=this,i=I.getPanels();if(i)I.openPanel(i[i.length-1])};Spry.Widget.Accordion.prototype.onPanelClick=function(i){var I=this;if(i!=I.currentPanel)I.openPanel(i);I.focus()};Spry.Widget.Accordion.prototype.onFocus=function(I){var i=this;i.hasFocus=true;i.addClassName(i.element,i.focusedClass)};Spry.Widget.Accordion.prototype.onBlur=function(I){var i=this;i.hasFocus=false;i.removeClassName(i.element,i.focusedClass)};Spry.Widget.Accordion.KEY_UP=38;Spry.Widget.Accordion.KEY_DOWN=40;Spry.Widget.Accordion.prototype.onKeyDown=function(c){var O=this,o=c.keyCode;if(!O.hasFocus||(o!=O.previousPanelKeyCode&&o!=O.nextPanelKeyCode))return true;var l=O.getPanels();if(!l||l.length<1)return false;var I=O.currentPanel?O.currentPanel:l[0],i=(o==O.nextPanelKeyCode)?I.nextSibling:I.previousSibling;while(i){if(i.nodeType==1)break;i=(o==O.nextPanelKeyCode)?i.nextSibling:i.previousSibling}
if(i&&I!=i)O.openPanel(i);if(c.stopPropagation)c.stopPropagation();if(c.preventDefault)c.preventDefault();return false};Spry.Widget.Accordion.prototype.attachPanelHandlers=function(i){var o=this;if(!i)return;var I=o.getPanelTab(i);if(I){var l=o;Spry.Widget.Accordion.addEventListener(I,"click",function(I){return l.onPanelClick(i)},false);Spry.Widget.Accordion.addEventListener(I,"mouseover",function(I){return l.onPanelTabMouseOver(i)},false);Spry.Widget.Accordion.addEventListener(I,"mouseout",function(I){return l.onPanelTabMouseOut(i)},false)}};Spry.Widget.Accordion.addEventListener=function(i,I,l,o){try{if(i.addEventListener)i.addEventListener(I,l,o);else if(i.attachEvent)i.attachEvent("on"+I,l)}
catch(e){}};Spry.Widget.Accordion.prototype.initPanel=function(i,I){var o=this,l=o.getPanelContent(i);if(I){o.currentPanel=i;o.removeClassName(i,o.closedClass);o.addClassName(i,o.openClass)}else{o.removeClassName(i,o.openClass);o.addClassName(i,o.closedClass);l.style.height="0px"}
o.attachPanelHandlers(i)};Spry.Widget.Accordion.prototype.attachBehaviors=function(){var O=this,I=O.getPanels();for(var o=0;o<I.length;o++){O.initPanel(I[o],o==O.defaultPanel)}
if(O.enableKeyboardNavigation){var i=O.element.attributes.getNamedItem("tabindex");if(i){var l=O;Spry.Widget.Accordion.addEventListener(O.element,"focus",function(i){return l.onFocus(i)},false);Spry.Widget.Accordion.addEventListener(O.element,"blur",function(i){return l.onBlur(i)},false);Spry.Widget.Accordion.addEventListener(O.element,"keydown",function(i){return l.onKeyDown(i)},false)}}};Spry.Widget.Accordion.prototype.getPanels=function(){var i=this;return i.getElementChildren(i.element)};Spry.Widget.Accordion.prototype.getCurrentPanel=function(){return this.currentPanel};Spry.Widget.Accordion.prototype.getCurrentPanelIndex=function(){var I=this,i=I.getPanels();for(var l=0;l<i.length;l++){if(I.currentPanel==i[l])return l}
return 0};Spry.Widget.Accordion.prototype.getPanelTab=function(i){if(!i)return null;return this.getElementChildren(i)[0]};Spry.Widget.Accordion.prototype.getPanelContent=function(i){if(!i)return null;return this.getElementChildren(i)[1]};Spry.Widget.Accordion.prototype.getElementChildren=function(l){var I=[],i=l.firstChild;while(i){if(i.nodeType==1)I.push(i);i=i.nextSibling}
return I};Spry.Widget.Accordion.prototype.focus=function(){var i=this;if(i.element&&i.element.focus)i.element.focus()};Spry.Widget.Accordion.PanelAnimator=function(i,I,O){var x=this;x.timer=null;x.interval=0;x.stepCount=0;x.fps=0;x.steps=10;x.duration=500;x.onComplete=null;x.panel=I;x.panelToOpen=i.getElement(I);x.panelData=[];Spry.Widget.Accordion.setOptions(x,O,true);if(x.fps>0){x.interval=Math.floor(1000/x.fps);x.steps=parseInt((x.duration+(x.interval-1))/x.interval)}else if(x.steps>0)x.interval=x.duration/x.steps;var o=i.getPanels();for(var V=0;V<o.length;V++){var v=o[V],C=i.getPanelContent(v);if(C){var c=C.offsetHeight;if(c==undefined)c=0;if(v==I||c>0){var l=new Object;l.panel=v;l.content=C;l.fromHeight=c;l.toHeight=(v==I)?(i.useFixedPanelHeights?i.fixedPanelHeight:C.scrollHeight):0;l.increment=(l.toHeight-l.fromHeight)/x.steps;l.overflow=C.style.overflow;x.panelData.push(l);C.style.overflow="hidden";C.style.height=c+"px"}}}};Spry.Widget.Accordion.PanelAnimator.prototype.start=function(){var self=this;this.timer=setTimeout(function(){self.stepAnimation()},this.interval)};Spry.Widget.Accordion.PanelAnimator.prototype.stop=function(){var I=this;if(I.timer){clearTimeout(I.timer);if(I.stepCount<I.steps){for(i=0;i<I.panelData.length;i++){obj=I.panelData[i];obj.content.style.overflow=obj.overflow}}}
I.timer=null};Spry.Widget.Accordion.PanelAnimator.prototype.stepAnimation=function(){var i=this;++i.stepCount;i.animate();if(i.stepCount<i.steps)i.start();else if(i.onComplete)i.onComplete()};Spry.Widget.Accordion.PanelAnimator.prototype.animate=function(){var l=this,I,i;if(l.stepCount>=l.steps){for(I=0;I<l.panelData.length;I++){i=l.panelData[I];if(i.panel!=l.panel)i.content.style.height="0px";i.content.style.overflow=i.overflow;i.content.style.height=i.toHeight+"px"}}else{for(I=0;I<l.panelData.length;I++){i=l.panelData[I];i.fromHeight+=i.increment;i.content.style.height=i.fromHeight+"px"}}};
