(function(){var YUD=YAHOO.util.Dom,YUE=YAHOO.util.Event,YUA=YAHOO.util.Anim;var AccordionView=function(el,oAttr){el=YUD.get(el);oAttr=oAttr||{};if(!el){el=document.createElement(this.CONFIG.TAG_NAME)}if(el.id){oAttr.id=el.id}YAHOO.widget.AccordionView.superclass.constructor.call(this,el,oAttr);this.initList(el,oAttr);this.refresh(['id','width','hoverActivated'],true)};var panelCloseEvent='panelClose';var panelOpenEvent='panelOpen';var afterPanelCloseEvent='afterPanelClose';var afterPanelOpenEvent='afterPanelOpen';var stateChangedEvent='stateChanged';var beforeStateChangeEvent='beforeStateChange';YAHOO.widget.AccordionView=AccordionView;YAHOO.extend(AccordionView,YAHOO.util.Element,{initAttributes:function(oAttr){AccordionView.superclass.initAttributes.call(this,oAttr);var bAnimate=(YAHOO.env.modules.animation)?true:false;this.setAttributeConfig('id',{writeOnce:true,validator:function(value){return(/^[a-zA-Z][\w0-9\-_.:]*$/.test(value))},value:YUD.generateId(),method:function(value){this.get('element').id=value}});this.setAttributeConfig('width',{value:'400px',method:function(value){this.setStyle('width',value)}});this.setAttributeConfig('animationSpeed',{value:0.7});this.setAttributeConfig('animate',{value:bAnimate,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('collapsible',{value:false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('expandable',{value:false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('effect',{value:YAHOO.util.Easing.easeBoth,validator:YAHOO.lang.isString});this.setAttributeConfig('hoverActivated',{value:false,validator:YAHOO.lang.isBoolean,method:function(value){if(value){YUE.on(this,'mouseover',this._onMouseOver,this,true)}else{YUE.removeListener(this,'mouseover',this._onMouseOver)}}});this.setAttributeConfig('_hoverTimeout',{value:500,validator:YAHOO.lang.isInteger})},CONFIG:{TAG_NAME:'UL',ITEM_WRAPPER_TAG_NAME:'LI',CONTENT_WRAPPER_TAG_NAME:'DIV'},CLASSES:{ACCORDION:'yui-accordionview',PANEL:'yui-accordion-panel',TOGGLE:'yui-accordion-toggle',CONTENT:'yui-accordion-content',ACTIVE:'active',HIDDEN:'hidden',INDICATOR:'indicator'},_idCounter:'1',_hoverTimer:null,_panels:null,_opening:false,_closing:false,_ff2:(YAHOO.env.ua.gecko>0&&YAHOO.env.ua.gecko<1.9),_ie:(YAHOO.env.ua.ie<8&&YAHOO.env.ua.ie>0),_ARIACapable:(YAHOO.env.ua.ie>7||YAHOO.env.ua.gecko>=1.9),initList:function(el,oAttr){YUD.addClass(el,this.CLASSES.ACCORDION);this._setARIA(el,'role','tree');var aCollectedItems=[];var aListItems=el.getElementsByTagName(this.CONFIG.ITEM_WRAPPER_TAG_NAME);for(var i=0;i<aListItems.length;i++){if(YUD.hasClass(aListItems[i],'nopanel')){aCollectedItems.push({label:'SINGLE_LINK',content:aListItems[i].innerHTML.replace(/^\s\s*/,'').replace(/\s\s*$/,'')})}else{if(aListItems[i].parentNode===el){for(var eHeader=aListItems[i].firstChild;eHeader&&eHeader.nodeType!=1;eHeader=eHeader.nextSibling){}if(eHeader){for(var eContent=eHeader.nextSibling;eContent&&eContent.nodeType!=1;eContent=eContent.nextSibling){}aCollectedItems.push({label:eHeader.innerHTML,content:(eContent&&eContent.innerHTML)})}}}}el.innerHTML='';if(aCollectedItems.length>0){this.addPanels(aCollectedItems)}if((oAttr.expandItem===0)||(oAttr.expandItem>0)){var eLink=this._panels[oAttr.expandItem].firstChild;var eContent=this._panels[oAttr.expandItem].firstChild.nextSibling;YUD.removeClass(eContent,this.CLASSES.HIDDEN);if(eLink&&eContent){YUD.addClass(eLink,this.CLASSES.ACTIVE);eLink.tabIndex=0;this._setARIA(eLink,'aria-expanded','true');this._setARIA(eContent,'aria-hidden','false')}}this.initEvents()},initEvents:function(){if(true===this.get('hoverActivated')){this.on('mouseover',this._onMouseOver,this,true);this.on('mouseout',this._onMouseOut,this,true)}this.on('click',this._onClick,this,true);this.on('keydown',this._onKeydown,this,true);this.on('panelOpen',function(){this._opening=true},this,true);this.on('panelClose',function(){this._closing=true},this,true);this.on('afterPanelClose',function(){this._closing=false;if(!this._closing&&!this._opening){this._fixTabIndexes()}},this,true);this.on('afterPanelOpen',function(){this._opening=false;if(!this._closing&&!this._opening){this._fixTabIndexes()}},this,true);if(this._ARIACapable){this.on('keypress',function(ev){var eCurrentPanel=YUD.getAncestorByClassName(YUE.getTarget(ev),this.CLASSES.PANEL);var keyCode=YUE.getCharCode(ev);if(keyCode===13){this._onClick(eCurrentPanel.firstChild);return false}})}},_setARIA:function(el,sAttr,sValue){if(this._ARIACapable){el.setAttribute(sAttr,sValue)}},_collapseAccordion:function(){YUD.batch(this._panels,function(e){var elContent=this.firstChild.nextSibling;if(elContent){YUD.removeClass(e.firstChild,this.CLASSES.ACTIVE);YUD.addClass(elContent,this.CLASSES.HIDDEN);this._setARIA(elContent,'aria-hidden','true')}},this)},_fixTabIndexes:function(){var aLength=this._panels.length;var bAllClosed=true;for(var i=0;i<aLength;i++){if(YUD.hasClass(this._panels[i].firstChild,this.CLASSES.ACTIVE)){this._panels[i].firstChild.tabIndex=0;bAllClosed=false}else{this._panels[i].firstChild.tabIndex=-1}}if(bAllClosed){this._panels[0].firstChild.tabIndex=0}this.fireEvent(stateChangedEvent)},addPanel:function(oAttr,nIndex){var oPanelParent=document.createElement(this.CONFIG.ITEM_WRAPPER_TAG_NAME);YUD.addClass(oPanelParent,this.CLASSES.PANEL);if(oAttr.label==='SINGLE_LINK'){oPanelParent.innerHTML=oAttr.content;YUD.addClass(oPanelParent.firstChild,this.CLASSES.TOGGLE);YUD.addClass(oPanelParent.firstChild,'link')}else{var elIndicator=document.createElement('span');YUD.addClass(elIndicator,this.CLASSES.INDICATOR);var elPanelLink=oPanelParent.appendChild(document.createElement('A'));elPanelLink.id=this.get('element').id+'-'+this._idCounter+'-label';elPanelLink.innerHTML=oAttr.label||'';elPanelLink.appendChild(elIndicator);if(this._ARIACapable){if(oAttr.href){elPanelLink.href=oAttr.href}}else{elPanelLink.href=oAttr.href||'#toggle'}elPanelLink.tabIndex=-1;YUD.addClass(elPanelLink,this.CLASSES.TOGGLE);var elPanelContent=document.createElement(this.CONFIG.CONTENT_WRAPPER_TAG_NAME);elPanelContent.innerHTML=oAttr.content||'';YUD.addClass(elPanelContent,this.CLASSES.CONTENT);oPanelParent.appendChild(elPanelContent);this._setARIA(oPanelParent,'role','presentation');this._setARIA(elPanelLink,'role','treeitem');this._setARIA(elPanelContent,'aria-labelledby',elPanelLink.id);this._setARIA(elIndicator,'role','presentation')}this._idCounter++;if(this._panels===null){this._panels=[]}if((nIndex!==null)&&(nIndex!==undefined)){var ePanelBefore=this.getPanel(nIndex);this.insertBefore(oPanelParent,ePanelBefore);var aNewPanels=this._panels.slice(0,nIndex);var aNewPanelsAfter=this._panels.slice(nIndex);aNewPanels.push(oPanelParent);for(i=0;i<aNewPanelsAfter.length;i++){aNewPanels.push(aNewPanelsAfter[i])}this._panels=aNewPanels}else{this.appendChild(oPanelParent);if(this.get('element')===oPanelParent.parentNode){this._panels[this._panels.length]=oPanelParent}}if(oAttr.label!=='SINGLE_LINK'){if(oAttr.expand){if(!this.get('expandable')){this._collapseAccordion()}YUD.removeClass(elPanelContent,this.CLASSES.HIDDEN);YUD.addClass(elPanelLink,this.CLASSES.ACTIVE);this._setARIA(elPanelContent,'aria-hidden','false');this._setARIA(elPanelLink,'aria-expanded','true')}else{YUD.addClass(elPanelContent,'hidden');this._setARIA(elPanelContent,'aria-hidden','true');this._setARIA(elPanelLink,'aria-expanded','false')}}var t=YAHOO.lang.later(0,this,function(){this._fixTabIndexes();this.fireEvent(stateChangedEvent)})},addPanels:function(oPanels){for(var i=0;i<oPanels.length;i++){this.addPanel(oPanels[i])}},removePanel:function(index){this.removeChild(YUD.getElementsByClassName(this.CLASSES.PANEL,this.CONFIG.ITEM_WRAPPER_TAG_NAME,this)[index]);var aNewPanels=[];var nLength=this._panels.length;for(var i=0;i<nLength;i++){if(i!==index){aNewPanels.push(this._panels[i])}}this._panels=aNewPanels;var t=YAHOO.lang.later(0,this,function(){this._fixTabIndexes();this.fireEvent(stateChangedEvent)})},getPanel:function(nIndex){return this._panels[nIndex]},getPanels:function(){return this._panels},openPanel:function(nIndex){var ePanelNode=this._panels[nIndex];if(!ePanelNode){return false}if(YUD.hasClass(ePanelNode.firstChild,this.CLASSES.ACTIVE)){return false}this._onClick(ePanelNode.firstChild);return true},closePanel:function(nIndex){var aItems=this._panels;var ePanelNode=aItems[nIndex];if(!ePanelNode){return false}var ePanelLink=ePanelNode.firstChild;if(!YUD.hasClass(ePanelLink,this.CLASSES.ACTIVE)){return true}if(this.get('collapsible')===false){if(this.get('expandable')===true){this.set('collapsible',true);for(var i=0;i<aItems.length;i++){if((YUD.hasClass(aItems[i].firstChild,this.CLASSES.ACTIVE)&&i!==nIndex)){this._onClick(ePanelLink);this.set('collapsible',false);return true}}this.set('collapsible',false)}}this._onClick(ePanelLink);return true},_onKeydown:function(ev){var eCurrentPanel=YUD.getAncestorByClassName(YUE.getTarget(ev),this.CLASSES.PANEL);var nKeyCode=YUE.getCharCode(ev);var nLength=this._panels.length;if(nKeyCode===37||nKeyCode===38){for(var i=0;i<nLength;i++){if((eCurrentPanel===this._panels[i])&&i>0){this._panels[i-1].firstChild.focus();return}}}if(nKeyCode===39||nKeyCode===40){for(var i=0;i<nLength;i++){if((eCurrentPanel===this._panels[i])&&i<nLength-1){this._panels[i+1].firstChild.focus();return}}}},_onMouseOver:function(ev){YUE.stopPropagation(ev);var target=YUE.getTarget(ev);this._hoverTimer=YAHOO.lang.later(this.get('_hoverTimeout'),this,function(){this._onClick(target)})},_onMouseOut:function(){if(this._hoverTimer){this._hoverTimer.cancel();this._hoverTimer=null}},_onClick:function(arg){var ev;if(arg.nodeType===undefined){ev=YUE.getTarget(arg);if(!YUD.hasClass(ev,this.CLASSES.TOGGLE)&&!YUD.hasClass(ev,this.CLASSES.INDICATOR)){return false}if(YUD.hasClass(ev,'link')){return true}YUE.preventDefault(arg);YUE.stopPropagation(arg)}else{ev=arg}var elClickedNode=ev;var that=this;function iehide(el,sHide){if(that._ie){var aInnerAccordions=YUD.getElementsByClassName(that.CLASSES.ACCORDION,that.CONFIG.TAG_NAME,el);if(aInnerAccordions[0]){YUD.setStyle(aInnerAccordions[0],'visibility',sHide)}}}function toggleItem(el,elClicked){var that=this;function fireEvent(type,panel){if(!YUD.hasClass(panel,that.CLASSES.PANEL)){panel=YUD.getAncestorByClassName(panel,that.CLASSES.PANEL)}for(var i=0,p=panel;p.previousSibling;i++){p=p.previousSibling}return that.fireEvent(type,{panel:panel,index:i})}if(!elClicked){if(!el){return false}elClicked=el.parentNode.firstChild}var oOptions={};var nHeight=0;var bHideAfter=(!YUD.hasClass(el,this.CLASSES.HIDDEN));if(this.get('animate')){if(!bHideAfter){if(this._ff2){YUD.addClass(el,'almosthidden');YUD.setStyle(el,'width',this.get('width'))}YUD.removeClass(el,this.CLASSES.HIDDEN);nHeight=el.offsetHeight;YUD.setStyle(el,'height',0);if(this._ff2){YUD.removeClass(el,'almosthidden');YUD.setStyle(el,'width','auto')}oOptions={height:{from:0,to:nHeight}}}else{nHeight=el.offsetHeight;oOptions={height:{from:nHeight,to:0}}}var nSpeed=(this.get('animationSpeed'))?this.get('animationSpeed'):0.5;var sEffect=(this.get('effect'))?this.get('effect'):YAHOO.util.Easing.easeBoth;var oAnimator=new YUA(el,oOptions,nSpeed,sEffect);if(bHideAfter){if(this.fireEvent(panelCloseEvent,el)===false){return}YUD.removeClass(elClicked,that.CLASSES.ACTIVE);elClicked.tabIndex=-1;iehide(el,'hidden');that._setARIA(el,'aria-hidden','true');that._setARIA(elClicked,'aria-expanded','false');oAnimator.onComplete.subscribe(function(){YUD.addClass(el,that.CLASSES.HIDDEN);YUD.setStyle(el,'height','auto');fireEvent('afterPanelClose',el)})}else{if(fireEvent(panelOpenEvent,el)===false){return}iehide(el,'hidden');oAnimator.onComplete.subscribe(function(){YUD.setStyle(el,'height','auto');iehide(el,'visible');that._setARIA(el,'aria-hidden','false');that._setARIA(elClicked,'aria-expanded','true');elClicked.tabIndex=0;fireEvent(afterPanelOpenEvent,el)});YUD.addClass(elClicked,this.CLASSES.ACTIVE)}oAnimator.animate()}else{if(bHideAfter){if(fireEvent(panelCloseEvent,el)===false){return}YUD.addClass(el,that.CLASSES.HIDDEN);YUD.setStyle(el,'height','auto');YUD.removeClass(elClicked,that.CLASSES.ACTIVE);that._setARIA(el,'aria-hidden','true');that._setARIA(elClicked,'aria-expanded','false');elClicked.tabIndex=-1;fireEvent(afterPanelCloseEvent,el)}else{if(fireEvent(panelOpenEvent,el)===false){return}YUD.removeClass(el,that.CLASSES.HIDDEN);YUD.setStyle(el,'height','auto');YUD.addClass(elClicked,that.CLASSES.ACTIVE);that._setARIA(el,'aria-hidden','false');that._setARIA(elClicked,'aria-expanded','true');elClicked.tabIndex=0;fireEvent(afterPanelOpenEvent,el)}}return true}var eTargetListNode=(elClickedNode.nodeName.toUpperCase()==='SPAN')?elClickedNode.parentNode.parentNode:elClickedNode.parentNode;var containedPanel=YUD.getElementsByClassName(this.CLASSES.CONTENT,this.CONFIG.CONTENT_WRAPPER_TAG_NAME,eTargetListNode)[0];if(this.fireEvent(beforeStateChangeEvent,this)===false){return}if(this.get('collapsible')===false){if(!YUD.hasClass(containedPanel,this.CLASSES.HIDDEN)){return false}}else{if(!YUD.hasClass(containedPanel,this.CLASSES.HIDDEN)){toggleItem.call(this,containedPanel);return false}}if(this.get('expandable')!==true){var nLength=this._panels.length;for(var i=0;i<nLength;i++){var bMustToggle=YUD.hasClass(this._panels[i].firstChild.nextSibling,this.CLASSES.HIDDEN);if(!bMustToggle){toggleItem.call(this,this._panels[i].firstChild.nextSibling)}}}if(elClickedNode.nodeName.toUpperCase()==='SPAN'){toggleItem.call(this,containedPanel,elClickedNode.parentNode)}else{toggleItem.call(this,containedPanel,elClickedNode)}return true},toString:function(){var name=this.get('id')||this.get('tagName');return"AccordionView "+name}})})();YAHOO.register("accordionview",YAHOO.widget.AccordionView,{version:"0.99",build:"33"});