/**
* @version		$Id: menu.js 10702 2008-08-21 09:31:31Z eddieajau $
* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

/**
 * JMenu javascript behavior
 *
 * @package		Joomla
 * @since		1.5
 * @version     1.0
 */
var JMenu = new Class({
	initialize: function(el)
	{
		var elements = $ES('li', el);
		var nested = null
		var showingparent = false;
		var showing;
		var activate = function(el){
			el.addClass('hover');
			showing = el;
			};
		var deactivate = function(el) {
			el.removeClass('hover');
			//showing = null;
			};
	
		for (var i=0; i<elements.length; i++)
		{
			var element = elements[i];

			element.addEvent('mouseover', function(){ activate(this); });
			element.addEvent('mouseout', function(){ deactivate(this); });
			
			//find nested UL
			nested = $E('ul', element);
			if(!nested) {
				continue;
			}

			//declare width
			var offsetWidth  = 0;

			//find longest child
			for (k=0; k < nested.childNodes.length; k++) {
				var node  = nested.childNodes[k]
				if (node.nodeName == "LI")
					offsetWidth = (offsetWidth >= node.offsetWidth) ? offsetWidth :  node.offsetWidth;
			}

			//match longest child
			for (l=0; l < nested.childNodes.length; l++) {
				var node = nested.childNodes[l]
				if (node.nodeName == "LI") {
					$(node).setStyle('width', offsetWidth+'px');
				}
			}

			$(nested).setStyle('width', offsetWidth+'px');
		}
			
			$ES('li.parent', el).removeEvents('mouseover');
			$ES('li.parent', el).removeEvents('mouseout');
			$ES('li.parent>a', el).addEvent('click', function(event) {
				event.preventDefault();
				if(this.getParent().hasClass('hover')){
					deactivate(this.getParent());
					showingparent = false;
				} else {
					deactivate($$('#menu>li.parent'));
					activate(this.getParent());
					showingparent = true;
				}
			});
			$('page_bg').addEvent('click', function(elm) {
				if(showingparent == true && $(elm.target).get('tag') == 'body' && showing.get('tag') == 'li'){
					deactivate($ES('li.parent', el));
					//alert(String($(showing)));
				}
			});
	}
});
