/**
 * Accordion Menu Component
 * @copyright 2007 News & Observer Publishing Company
 * @author Donald Sipe <donald.sipe@newsobserver.com>
 * @version 1.1
 */
YAHOO.namespace("NAOwidget");
(function(){var Y=YAHOO,Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Anim=YAHOO.util.Anim;AItem=function(container,cfg,autoClose){autoClose=autoClose||true;this._containerEl=Dom.get(container);this._headEl=this.getFirstByClassName(AItem.HEAD_CLASSNAME);this._bodyEl=this.getFirstByClassName(AItem.BODY_CLASSNAME);if(cfg&&Y.lang.isObject(cfg)){this.config=Y.lang.merge(this.config,cfg);}this._isOpen=this.config.isOpen(this._containerEl);if(this._isOpen){Dom.addClass(this._containerEl,"selected");}else{Dom.removeClass(this._containerEl,"selected");}this.openEvent=new YAHOO.util.CustomEvent("openEvent",this);this.afterOpenEvent=new YAHOO.util.CustomEvent("afterOpenEvent",this);this.closeEvent=new YAHOO.util.CustomEvent("closeEvent",this);this.afterCloseEvent=new YAHOO.util.CustomEvent("afterCloseEvent",this);this.openEvent.subscribe(this.onOpen,this);this.closeEvent.subscribe(this.onClose,this);this.afterOpenEvent.subscribe(this.onAfterOpen,this);this.afterCloseEvent.subscribe(this.onAfterClose,this);Event.addListener(this._headEl,"click",this.onClick,this,true);Event.addListener(this._headEl,"mouseover",this.onMouseOver,this,true);Event.addListener(this._headEl,"mouseout",this.onMouseOut,this,true);if(this._isOpen){this.setBodyStyle("height",this.config.height+this.config.unit);this.setBodyStyle("display","block");}else if(autoClose){this.closeEvent.fire();}};var proto=AItem.prototype;proto.config={height:100,unit:"px",duration:0.3,easing:YAHOO.util.Easing.easeIn,isOpen:function(el){return Dom.hasClass(el,"selected");}};AItem.HEAD_CLASSNAME="nao-am-item-hd";AItem.BODY_CLASSNAME="nao-am-item-bd";proto.getFirstByClassName=function(className){var els=Dom.getElementsByClassName(className,"*",this._containerEl);if(els.length>0){return els[0];}};proto.setBodyStyle=function(style,value){Dom.setStyle(this._bodyEl,style,value);};proto._containerEl=null;proto._headEl=null;proto._bodyEl=null;proto._isOpen=false;proto.timeoutDelay=300;proto._timeoutId=null;proto.onMouseOver=function(){me=this;function fireOpenEvent(){me.open();}this._timeoutId=window.setTimeout(fireOpenEvent,this.timeoutDelay);};proto.onMouseOut=function(){window.clearTimeout(this._timeoutId);};proto.onClick=function(){this.onMouseOut();this.open();};proto.open=function(){if(this._isOpen===true){return;}this.openEvent.fire();};proto.close=function(){if(this._isOpen===false){return;}this.closeEvent.fire();};proto.openEvent=null;proto.afterOpenEvent=null;proto.closeEvent=null;proto.afterCloseEvent=null;proto.onOpen=function(type,args,me){var c=me.config;var animProp={height:{from:0,to:c.height}};Dom.setStyle(me._bodyEl,"height","0px");Dom.setStyle(me._bodyEl,"display","block");var anim=new YAHOO.util.Anim(me._bodyEl,animProp,c.duration);anim.onComplete.subscribe(function(){me.afterOpenEvent.fire();});me._isOpen=true;anim.animate();};proto.onClose=function(type,args,me){var c=me.config;var animProp={height:{to:0}};var animObj=new YAHOO.util.Anim(me._bodyEl,animProp,c.duration);animObj.onComplete.subscribe(function(){me.afterCloseEvent.fire();});me._isOpen=false;animObj.animate();};proto.onAfterOpen=function(type,args,me){Dom.addClass(me._containerEl,"selected");};proto.onAfterClose=function(type,args,me){Dom.removeClass(me._containerEl,"selected");Dom.setStyle(me._bodyEl,"height","0px");Dom.setStyle(me._bodyEl,"display","none");};YAHOO.NAOwidget.AccordionItem=AItem;})();YAHOO.namespace("NAOwidget");
(function(){var Y=YAHOO,Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Anim=YAHOO.util.Anim;var AMenu=function(containerId,itemConfig){this._containerEl=Dom.get(containerId);this._loadItems(itemConfig);};var proto=AMenu.prototype;proto._items=[];proto._loadItems=function(config){var menuEls=Dom.getElementsByClassName(this.ITEM_CLASSNAME,"*",this._containerEl);var i,m;this._items=[];for(i=0;i<menuEls.length;i++){m=new YAHOO.NAOwidget.AccordionItem(menuEls[i],config);m.openEvent.subscribe(_closeItems,i,this);this._items.push(m);}return this._items.length;};proto._config={};proto._containerEl=null;proto.MENU_CLASSNAME="nao-am";proto.ITEM_CLASSNAME="nao-am-item";var _closeItems=function(type,t,index){var cnt=this._items.length;var i;for(i=0;i<this._items.length;i++){if(i==index){continue;}this._items[i].close();}};var defaultConfig={autoClose:false};AMenu.autoLoadbyClassName=function(cssConfig,itemConfig){cssConfig=cssConfig||false;itemConfig=itemConfig||{};var i,cssName,els,menus=[];if(cssConfig){for(cssName in cssConfig){els=Dom.getElementsByClassName(cssName,'*','bd');for(i=0;i<els.length;i++){itemConfig.height=cssConfig[cssName];menus.push(new YAHOO.NAOwidget.AccordionView(els[i],itemConfig));}}}return menus;};YAHOO.NAOwidget.AccordionView=AMenu;})();