/**
 * Created by IntelliJ IDEA.
 * User: arash dalir
 * Date: Nov 21, 2010
 * Time: 11:57:34 AM
 */
var isIE 	= $.browser.msie || $.browser.ie ,
	isIE6	= isIE && parseInt($.browser.version) < 7,
	isIE7	= isIE && parseInt($.browser.version) < 8;

var menuActivated = false;

var timeout = {handler:null, element:null};

$().ready(function(){
	$('ul.menu-holder').children('li').has('ul.sub-menu').addClass('hasChildren');
	$('ul.menu-holder').children('li').mouseenter( function(){
		CreateMouseEnterEffect(this, false);
	}).mouseleave( function(){
		CreateMouseLeaveEffect(this);
	});
});

function CreateMouseEnterEffect(element, inner){
	CheckTimeouts(element);
	menuActivated = true;

	$(element).children('ul.sub-menu').each( function(){
		
		$(element).find('li').has('ul.sub-menu').addClass('hasChildren');
		if ( $(element).find('li').has('ul.sub-menu') )
		{
			if (isIE6 || isIE7) {
				$('#secondary_menu').hide();
			}
		}

		$(this).show();

		var newLeft = ($(element).outerWidth() - $(this).outerWidth() )/2;
		if (inner)
		{
			newLeft = - ($(this).outerWidth() - 10);
		}

		var css = {
			left: newLeft,
			top: 0
		};

		if (inner)
			css.top = 5;
		else
			css.top = $(element).outerHeight() + 2;

		$(this).css(css);

		/*$(this).find('li').css({
			zIndex: parseInt( $(element).css('z-index') ) + 1
		});
		*/
		
		$(this).children('li').mouseenter( function(){
			CreateMouseEnterEffect(this, true);
			CheckTimeouts(this);
		});
		$(this).children('li').mouseleave( function(){
			CreateMouseLeaveEffect(this);
		});
	});
}

function CheckTimeouts(element){
	if (timeout.element)
	{
		$(element).parents().each( function(){
			if ($(this)[0] == $(timeout.element)[0] || $(this)[0] == $(timeout.element) )

			{
				clearTimeout(timeout.handler);
				UnsetTimeout();
			}
		});
	}
}

function CreateMouseLeaveEffect(element){
	timeout.handler = setTimeout( function(){
		$(element).children('ul.sub-menu').hide();
		if (isIE6 || isIE7 && !menuActivated) {
			$('#secondary_menu').show();
		}
	}, 150);

	menuActivated = false;

	timeout.element = element;
}

function UnsetTimeout(){
	timeout.handler = null;
	timeout.element = null;
}

