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=0;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.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);l.attachBehaviors()};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,i){var l=this;if(i)l.addClassName(l.getPanelTab(i),l.hoverClass);return false};Spry.Widget.Accordion.prototype.onPanelTabMouseOut=function(I,i){var l=this;if(i)l.removeClassName(l.getPanelTab(i),l.hoverClass);return false};Spry.Widget.Accordion.prototype.openPanel=function(I){var c=this,o=c.currentPanel,i;if(typeof I=="number")i=c.getPanels()[I];else
i=c.getElement(I);if(!i||o==i)return null;var l=o?c.getPanelContent(o):null,O=c.getPanelContent(i);if(!O)return null;if(c.useFixedPanelHeights&&!c.fixedPanelHeight)c.fixedPanelHeight=(l.offsetHeight)?l.offsetHeight:l.scrollHeight;if(c.enableAnimation){if(c.animator)c.animator.stop();c.animator=new Spry.Widget.Accordion.PanelAnimator(c,i,{duration:c.duration,fps:c.fps,transition:c.transition});c.animator.start()}else{if(l){l.style.display="none";l.style.height="0px"}
O.style.display="block";O.style.height=c.useFixedPanelHeights?c.fixedPanelHeight+"px":"auto"}
if(o){c.removeClassName(o,c.openClass);c.addClassName(o,c.closedClass)}
c.removeClassName(i,c.closedClass);c.addClassName(i,c.openClass);c.currentPanel=i;return i};Spry.Widget.Accordion.prototype.closePanel=function(){var l=this;if(!l.useFixedPanelHeights&&l.currentPanel){var I=l.currentPanel,i=l.getPanelContent(I);if(i){if(l.enableAnimation){if(l.animator)l.animator.stop();l.animator=new Spry.Widget.Accordion.PanelAnimator(l,null,{duration:l.duration,fps:l.fps,transition:l.transition});l.animator.start()}else{i.style.display="none";i.style.height="0px"}}
l.removeClassName(I,l.openClass);l.addClassName(I,l.closedClass);l.currentPanel=null}};Spry.Widget.Accordion.prototype.openNextPanel=function(){var i=this;return i.openPanel(i.getCurrentPanelIndex()+1)};Spry.Widget.Accordion.prototype.openPreviousPanel=function(){var i=this;return i.openPanel(i.getCurrentPanelIndex()-1)};Spry.Widget.Accordion.prototype.openFirstPanel=function(){return this.openPanel(0)};Spry.Widget.Accordion.prototype.openLastPanel=function(){var I=this,i=I.getPanels();return I.openPanel(i[i.length-1])};Spry.Widget.Accordion.prototype.onPanelTabClick=function(I,i){var l=this;if(i!=l.currentPanel)l.openPanel(i);else
l.closePanel();if(l.enableKeyboardNavigation)l.focus();if(I.preventDefault)I.preventDefault();else I.returnValue=false;if(I.stopPropagation)I.stopPropagation();else I.cancelBubble=true;return false};Spry.Widget.Accordion.prototype.onFocus=function(I){var i=this;i.hasFocus=true;i.addClassName(i.element,i.focusedClass);return false};Spry.Widget.Accordion.prototype.onBlur=function(I){var i=this;i.hasFocus=false;i.removeClassName(i.element,i.focusedClass);return false};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.preventDefault)c.preventDefault();else c.returnValue=false;if(c.stopPropagation)c.stopPropagation();else c.cancelBubble=true;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.onPanelTabClick(I,i)},false);Spry.Widget.Accordion.addEventListener(I,"mouseover",function(I){return l.onPanelTabMouseOver(I,i)},false);Spry.Widget.Accordion.addEventListener(I,"mouseout",function(I){return l.onPanelTabMouseOut(I,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,l){var o=this,i=o.getPanelContent(I);if(l){o.currentPanel=I;o.removeClassName(I,o.closedClass);o.addClassName(I,o.openClass);if(i){if(o.useFixedPanelHeights){if(o.fixedPanelHeight)i.style.height=o.fixedPanelHeight+"px"}else{i.style.height="auto"}}}else{o.removeClassName(I,o.openClass);o.addClassName(I,o.closedClass);if(i){i.style.height="0px";i.style.display="none"}}
o.attachPanelHandlers(I)};Spry.Widget.Accordion.prototype.attachBehaviors=function(){var o=this,i=o.getPanels();for(var l=0;l<i.length;l++)o.initPanel(i[l],l==o.defaultPanel);o.enableKeyboardNavigation=(o.enableKeyboardNavigation&&o.element.attributes.getNamedItem("tabindex"));if(o.enableKeyboardNavigation){var I=o;Spry.Widget.Accordion.addEventListener(o.element,"focus",function(i){return I.onFocus(i)},false);Spry.Widget.Accordion.addEventListener(o.element,"blur",function(i){return I.onBlur(i)},false);Spry.Widget.Accordion.addEventListener(o.element,"keydown",function(i){return I.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.getPanelIndex=function(I){var i=this.getPanels();for(var l=0;l<i.length;l++){if(I==i[l])return l}
return-1};Spry.Widget.Accordion.prototype.getCurrentPanelIndex=function(){var i=this;return i.getPanelIndex(i.currentPanel)};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.prototype.blur=function(){var i=this;if(i.element&&i.element.blur)i.element.blur()};Spry.Widget.Accordion.PanelAnimator=function(i,I,O){var x=this;x.timer=null;x.interval=0;x.fps=60;x.duration=500;x.startTime=0;x.transition=Spry.Widget.Accordion.PanelAnimator.defaultTransition;x.onComplete=null;x.panel=I;x.panelToOpen=i.getElement(I);x.panelData=[];x.useFixedPanelHeights=i.useFixedPanelHeights;Spry.Widget.Accordion.setOptions(x,O,true);x.interval=Math.floor(1000/x.fps);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)C.style.display="block";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.distance=l.toHeight-l.fromHeight;l.overflow=C.style.overflow;x.panelData.push(l);C.style.overflow="hidden";C.style.height=c+"px"}}}};Spry.Widget.Accordion.PanelAnimator.defaultTransition=function(I,o,l,i){I/=i;return o+((2-I)*I*l)};Spry.Widget.Accordion.PanelAnimator.prototype.start=function(){var self=this;this.startTime=(new Date).getTime();this.timer=setTimeout(function(){self.stepAnimation()},this.interval)};Spry.Widget.Accordion.PanelAnimator.prototype.stop=function(){var I=this;if(I.timer){clearTimeout(I.timer);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 curTime=(new Date).getTime();var elapsedTime=curTime-this.startTime,i,obj;if(elapsedTime>=this.duration){for(i=0;i<this.panelData.length;i++){obj=this.panelData[i];if(obj.panel!=this.panel){obj.content.style.display="none";obj.content.style.height="0px"}
obj.content.style.overflow=obj.overflow;obj.content.style.height=(this.useFixedPanelHeights||obj.toHeight==0)?obj.toHeight+"px":"auto"}
if(this.onComplete)this.onComplete();return}
for(i=0;i<this.panelData.length;i++){obj=this.panelData[i];var ht=this.transition(elapsedTime,obj.fromHeight,obj.distance,this.duration);obj.content.style.height=((ht<0)?0:ht)+"px"}
var self=this;this.timer=setTimeout(function(){self.stepAnimation()},this.interval)};