var Spry;if(!Spry){Spry={}}if(!Spry.Widget){Spry.Widget={}}Spry.Widget.Accordion=function(b,c){this.element=this.getElement(b);this.defaultPanel=0;this.hoverClass="AccordionPanelHover";this.openClass="AccordionPanelOpen";this.closedClass="AccordionPanelClosed";this.focusedClass="AccordionFocused";this.enableAnimation=true;this.enableRollovers=false;this.enableKeyboardNavigation=true;this.currentPanel=null;this.animator=false;this.hasFocus=null;this.firefox=false;this.closeOpenPanel=false;this.hotAnimation=true;this.roundedCorners=true;this.slowStart=true;this.headerHeight=28;this.panelHeight=190;this.previousPanelKeyCode=Spry.Widget.Accordion.KEY_UP;this.nextPanelKeyCode=Spry.Widget.Accordion.KEY_DOWN;this.useFixedPanelHeights=true;this.fixedPanelHeight=0;if(navigator.userAgent.indexOf("Firefox")>0||navigator.userAgent.indexOf("MSIE 8.0")>0||navigator.userAgent.indexOf("Opera")==0){this.firefox=true}Spry.Widget.Accordion.setOptions(this,c,true);this.attachBehaviors();if(this.useFixedPanelHeights==true){var a=this.getPanels();this.bckgrndHeight=(a.length*28)+this.panelHeight+1;var b=this.getElement("navigation");b.style.height=this.bckgrndHeight+"px"}};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.initPanel=function(b,d){var c=this.getPanelContent(b);var a=this.getPanelType(b);if(d){this.currentPanel=b;this.removeClassName(this.getPanelTab(b),this.closedClass+a);this.addClassName(this.getPanelTab(b),this.openClass+a);if(c){if(this.useFixedPanelHeights){if(this.fixedPanelHeight){c.style.height=this.fixedPanelHeight+"px"}}else{c.style.height="auto"}}}else{this.removeClassName(this.getPanelTab(b),this.openClass+a);this.addClassName(this.getPanelTab(b),this.closedClass+a);if(c){c.style.height="0px";c.style.display="none"}}this.attachPanelHandlers(b)};Spry.Widget.Accordion.prototype.openPanel=function(d){var f=this.currentPanel;var e;if(typeof d=="number"){e=this.getPanels()[d]}else{e=this.getElement(d)}if(!e||f==e){return null}var c=f?this.getPanelContent(f):null;var a=this.getPanelContent(e);if(!a){return null}if(this.firefox==true){a.style.height="auto"}if(this.useFixedPanelHeights&&!this.fixedPanelHeight){this.fixedPanelHeight=(c.offsetHeight)?c.offsetHeight:c.scrollHeight}var b="";if(f){b=this.getPanelType(f);this.removeClassName(this.getPanelTab(f),this.openClass+b);this.addClassName(this.getPanelTab(f),this.closedClass+b)}b=this.getPanelType(e);this.removeClassName(this.getPanelTab(e),this.closedClass+b);this.addClassName(this.getPanelTab(e),this.openClass+b);if(this.enableAnimation){if(this.animator){this.animator.stop()}this.animator=new Spry.Widget.Accordion.PanelAnimator(this,e,{duration:this.duration,fps:this.fps,transition:this.transition});this.animator.start()}else{if(c){c.style.display="none";c.style.height="0px"}a.style.display="block";a.style.height=(this.useFixedPanelHeights?this.fixedPanelHeight:a.scrollHeight)+"px"}this.currentPanel=e;return e};Spry.Widget.Accordion.prototype.closePanel=function(){if(!this.useFixedPanelHeights&&this.currentPanel){var b=this.currentPanel;var c=this.getPanelContent(b);var a=this.getPanelType(b);this.removeClassName(this.getPanelTab(b),this.openClass+a);this.addClassName(this.getPanelTab(b),this.closedClass+a);if(c){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{c.style.display="none";c.style.height="0px"}}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(){alert("opening last panel");var a=this.getPanels();return this.openPanel(a[a.length-1])};Spry.Widget.Accordion.prototype.onPanelTabClick=function(c,b){if(!this.hotAnimation){if(this.lastPanel(b)){var a=this.getPanelType(b);this.removeClassName(this.getPanelTab(b),this.hoverClass+a)}if(b!=this.currentPanel){this.openPanel(b)}else{if(this.closeOpenPanel==true){this.closePanel()}}if(this.enableKeyboardNavigation){this.focus()}}if(c.preventDefault){c.preventDefault()}else{c.returnResult=false}if(c.stopPropagation){c.stopPropagation()}else{c.cancelBubble=true}return false};Spry.Widget.Accordion.prototype.onPanelTabMouseOver=function(d,b){if(b){if(this.hotAnimation){var c=false;if(this.animator){if(this.animator.finished){c=true}}else{c=true}if(c){if(b!=this.currentPanel){this.openPanel(b)}}}else{var a=this.getPanelType(b);if(b!=this.currentPanel){if(b==this.currentPanel){this.removeClassName(this.getPanelTab(b),this.openClass+a)}else{this.removeClassName(this.getPanelTab(b),this.closedClass+a)}if(this.lastPanel(b)&&b==this.currentPanel){a=""}this.addClassName(this.getPanelTab(b),this.hoverClass+a)}}if(this.enableKeyboardNavigation){this.focus()}if(d.preventDefault){d.preventDefault()}else{d.returnResult=false}if(d.stopPropagation){d.stopPropagation()}else{d.cancelBubble=true}}return false};Spry.Widget.Accordion.prototype.onPanelTabMouseOut=function(c,b){if(!this.hotAnimation){if(b){var a=this.getPanelType(b);if(b==this.currentPanel){this.addClassName(this.getPanelTab(b),this.openClass+a)}else{this.addClassName(this.getPanelTab(b),this.closedClass+a)}if(this.lastPanel(b)&&b==this.currentPanel){a=""}this.removeClassName(this.getPanelTab(b),this.hoverClass+a)}}return false};Spry.Widget.Accordion.prototype.onFocus=function(a){this.hasFocus=true;return false};Spry.Widget.Accordion.prototype.onBlur=function(a){this.hasFocus=false;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 f=this.currentPanel?this.currentPanel:a[0];var d=(b==this.nextPanelKeyCode)?f.nextSibling:f.previousSibling;while(d){if(d.nodeType==1){break}d=(b==this.nextPanelKeyCode)?d.nextSibling:d.previousSibling}if(d&&f!=d){this.openPanel(d)}if(c.preventDefault){c.preventDefault()}else{c.returnResult=false}if(c.stopPropagation){c.stopPropagation()}else{c.cancelBubble=true}return false};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.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);if(this.enableRollovers){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(f){}};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.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.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.firstPanel=function(a){var b=this.getPanelIndex(a);if(b==0){return true}return false};Spry.Widget.Accordion.prototype.lastPanel=function(a){var c=this.getPanelIndex(a);if(c!=0){var b=this.getPanels();if(c==b.length-1){return true}}return false};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.managePanelType=function(a){var b="";if(this.roundedCorners){if(this.firstPanel(a)||this.lastPanel(a)){if(this.lastPanel(a)==false||this.lastPanel(this.currentPanel)==false){b="Bottom";if(this.firstPanel(a)){b="Top"}}}}return b};Spry.Widget.Accordion.prototype.getPanelType=function(a){var b="";if(this.roundedCorners){if(this.firstPanel(a)||this.lastPanel(a)){b="Bottom";if(this.firstPanel(a)){b="Top"}}}return b};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.PanelAnimator=function(j,b,a){this.timer=null;this.interval=0;this.fps=100;this.duration=400;this.startTime=0;this.slowStart=true;this.durationStart=700;this.durationEnd=200;this.durationIntervalInc=0.8;this.durationInterval=4;if(this.slowStart){this.duration=this.durationStart}this.transition=Spry.Widget.Accordion.PanelAnimator.defaultTransition;this.onComplete=null;this.finished=false;this.panel=b;this.panelToOpen=j.getElement(b);this.panelData=[];Spry.Widget.Accordion.setOptions(this,a,true);this.interval=Math.floor(1000/this.fps);var k=j.getPanels();for(var f=0;f<k.length;f++){var d=k[f];var l=j.getPanelContent(d);if(l){var g=l.offsetHeight;if(g==undefined){g=0}if(d==b&&g==0){l.style.display="block"}if(d==b||g>0){var e=new Object;e.panel=d;e.content=l;e.fromHeight=g;e.toHeight=(d==b)?(j.useFixedPanelHeights?j.fixedPanelHeight:l.scrollHeight):0;e.distance=e.toHeight-e.fromHeight;e.overflow=l.style.overflow;this.panelData.push(e);l.style.overflow="hidden";l.style.height=g+"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=f.toHeight+"px"}if(this.onComplete){this.onComplete()}this.finished=true;return}for(d=0;d<this.panelData.length;d++){if(this.slowStart){this.durationInterval+=this.durationIntervalInc;if(this.duration>this.durationEnd){this.duration-=this.durationInterval}}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);this.finished=true};