/**
* YUI-Based Accordion Menu
* 
* @author Donald J. Sipe <donald.sipe@newsobserver.com>
* @version 1.0b
* @copyright 2007 - News & Observer Publishing Company
*/

YAHOO.namespace("NAOwidget");

(function() {

	var Dom   = YAHOO.util.Dom;
	var Event = YAHOO.util.Event;
	var Anim  = YAHOO.util.Anim;

	/**
	 * A widget to control a collection of "accordion" menu items
	 * 
	 * @namespace YAHOO.djsWidget
	 * @class AccordionView
	 * @constructor
	 * @param {Object} containerId
	 */
	YAHOO.NAOwidget.AccordionView = function(containerId, itemHeight)
	{
		this._containerEl = Dom.get(containerId);
		this._loadItems(itemHeight);
 	};
	
	var proto = YAHOO.NAOwidget.AccordionView.prototype;

	/**
	 * Menu Items Collection
	 * 
	 * An array of menu items
	 */
	proto._items = [];



	proto._loadItems = function (itemHeight) 
	{
		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], itemHeight);
			m.openEvent.subscribe(this._closeItems, {me:this, item:this._items.length});
			this._items.push(m);
		}
		
		return this._items.length;
	};	
	
	
	/**
	 * Menu Container Element
	 */
	proto._containerEl = null;
	
	
	proto.MENU_CLASSNAME = "nao-am";
	
	
	proto.ITEM_CLASSNAME = "nao-am-item";
	
	
	proto._closeItems = function (type, args, sArgs)
	{
		var that 	= sArgs.me,
			itemNum = sArgs.item,
			i,test=0;
			
		for (i=0; i<that._items.length; i++)
		{
			if (i == itemNum)
			{
				continue;
			}
			test++;
			that._items[i].close();
		}

	};
	
	
})();