var NMenu = new Class.create({
	initialize: function(el)
	{
//		var elements = $ES('li', el);
		var elements = el.getElementsBySelector('li');
		var nested = null
		for (var i=0; i<elements.length; i++)
		{
			var element = elements[i];

//			element.addEvent('mouseover', function(){ this.addClassName('hover'); });
//			element.addEvent('mouseout', function(){ this.removeClassName('hover'); });
			Event.observe(element, 'mouseover', function(){ this.addClassName('hover'); });
			Event.observe(element, 'mouseout', function(){ this.removeClassName('hover'); });

			//find nested UL
//			nested = $E('ul', element);
			nested = element.getElementsBySelector('ul')[0];
			if(!nested) {
				continue;
			}

			//add padding to elems that have childs
//			element.setStyle({padding: '0 0 2px 0'});

			//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');
					node.setStyle({width: offsetWidth+'px'});
				}
			}
//			$(nested).setStyle('width', offsetWidth+'px');
			nested.setStyle({width: offsetWidth+'px'});
		}
	}
});

//For IE6 - Background flicker fix
try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

document.menu = null
//window.addEvent('load', function(){
Event.observe(window, 'load', function(){
	element = $('nav_menu')
	if(!element.hasClassName('disabled')) {
		var menu = new NMenu(element)
		document.menu = menu
	}
});

