/**
 * @author Tal Shani
 */
YAHOO.util.Event.onDOMReady(function() {
	var YEvent = YAHOO.util.Event,
		YDom = YAHOO.util.Dom,
		YSelector = YAHOO.util.Selector;
	
	
	var els = YSelector.query('#main-menu > li > a');
	var displayed_ul = null,
		hide_timer = null;
	
	
	YEvent.addListener(els, 'mouseover', function(e) {
		var t = YEvent.getTarget(e),
			li = t.parentNode;
		
		var ul = YSelector.query('> ul', li);
		if(!ul) return;
		
		if(hide_timer && hide_timer.cancel) {
			hide_timer.cancel();
		}

		if(displayed_ul) {
			YDom.setStyle(displayed_ul, 'display', 'none');
		}
		displayed_ul = ul;
		YDom.setStyle(ul, 'display', 'block');
	});
	YEvent.addListener(els, 'mouseout', function(e) {
		var t = YEvent.getTarget(e),
			li = t.parentNode;
		
		var ul = YSelector.query('> ul', li);
		if(!ul) return;
		
		if(hide_timer && hide_timer.cancel) {
			hide_timer.cancel();
		}
		hide_timer = YAHOO.lang.later(500, this, function() {
			if(displayed_ul) {
				YDom.setStyle(displayed_ul, 'display', 'none');
			}
			displayed_ul = null;
		});
	});
	
	
	
	var uls = YSelector.query('#main-menu > li > ul');
	YEvent.addListener(uls, 'mouseover', function(e) {
		if(hide_timer && hide_timer.cancel) {
			hide_timer.cancel();
		}
	});
	YEvent.addListener(uls, 'mouseout', function(e) {
		var t = YEvent.getTarget(e);
		while(t && t.tagName && t.tagName != 'UL') {
			t = t.parentNode;
		}
		hide_timer = YAHOO.lang.later(500, this, function() {
			if(t) {
				YDom.setStyle(t, 'display', 'none');
			}
			displayed_ul = null;
		});
	});
});
