var TimeoutBag = new Array();

var DefaultTab = null;

var AllTabsSelector = "#JHeader1_divu, #JHeader1_divm, #JHeader1_divw, #JHeader1_divk, #JHeader1_divs";
var AllContentsSelector = "#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale";

$(document).ready(function() {			
	if (jQuery.browser.msie) {
        try { 
            document.execCommand("BackgroundImageCache", false, true); 
        } catch(err) {}
    }
    
    //Detect if there is a default tab
    if ($(".backu").size() == 1)
		DefaultTab = { "selector" : "#JHeader1_divu", "backgroundClass" : "backu" };
	else if ($(".backm").size() == 1)
		DefaultTab = { "selector" : "#JHeader1_divm", "backgroundClass" : "backm" };
	else if ($(".backw").size() == 1)
		DefaultTab = { "selector" : "#JHeader1_divw", "backgroundClass" : "backw" };
	else if ($(".backk").size() == 1)
		DefaultTab = { "selector" : "#JHeader1_divk", "backgroundClass" : "backk" };
	else if ($(".backs").size() == 1)
		DefaultTab = { "selector" : "#JHeader1_divs", "backgroundClass" : "backs" };
	else
		DefaultTab = "none";
 
    //Detect browser type
    var Browser;
    Browser = GetBrowserType();

	//adjust the positioning of the nav for the different browsers >.<	
	switch (Browser)
	{
		case "ie6":
			$("#JHeader1_divu, #JHeader1_divm, #JHeader1_divw, #JHeader1_divk, #JHeader1_divs").css("top", "2px");
			$("#JHeader1_divu a, #JHeader1_divm a, #JHeader1_divw a, #JHeader1_divk a, #JHeader1_divs a").css("top", "-6px");
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-4px");
			$("#q").css("top", "1px");
			break;
		case "ie7":			
			$("#JHeader1_divu, #JHeader1_divm, #JHeader1_divw, #JHeader1_divk, #JHeader1_divs").css("top", "2px");
			$("#JHeader1_divu a, #JHeader1_divm a, #JHeader1_divw a, #JHeader1_divk a, #JHeader1_divs a").css("top", "-6px");
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-4px");		
			$("#q").css("top", "2px");
			break;		
		case "opera":
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-3px");				
			break;
		case "chrome":
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-1px");	
			break;
		case "safari":
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-1px");				
			break;
		case "firefox":
			$("#JHeader1_divu, #JHeader1_divm, #JHeader1_divw, #JHeader1_divk, #JHeader1_divs").css("top", "-1px");
			$("#JHeader1_NAVu, #JHeader1_NavMen, #JHeader1_NavWomen, #JHeader1_NavKids, #JHeader1_NAVsale").css("top", "-1px");			
			break;		
	}
  
	//set the initial state
	$(AllContentsSelector).slideUp(0);
	$(AllContentsSelector).css({'left' : '0px', 'visibility' : 'visible'});
	
	//hide dropdowns when mouse enters area below where the dropdowns could be (note: many selectors due to inconsistent page layouts)
	$("#dptouterm, #dptouter, #dptouterd, #dptouter2, .mainbody, #ShoppingBagPageContent").bind("mouseenter", function() {
		TimeoutBag["BelowContentEnter"] = setTimeout(function(){
			$(AllContentsSelector).slideUp(0).css({'height' : '162px'});
		}, 250);
	});
	
	//hide dropdowns when the mouse leaves the center area
	$("#Form1, #Form2, #ProductDetails, #Error, #Logout, #form, #PR, #frmSiteMap, #UpdateProfile").mouseleave(function() {
		TimeoutBag["FormLeave"] = setTimeout(function(){
			$(AllContentsSelector).slideUp(0).css({'height' : '162px'});
		}, 250);
	});
	
	SetTabAndContentState("#JHeader1_NAVu", "#JHeader1_divu", "backu");
	SetTabAndContentState("#JHeader1_NavMen", "#JHeader1_divm", "backm");
	SetTabAndContentState("#JHeader1_NavWomen", "#JHeader1_divw", "backw");
	SetTabAndContentState("#JHeader1_NavKids", "#JHeader1_divk", "backk");
	SetTabAndContentState("#JHeader1_NAVsale", "#JHeader1_divs", "backs");
	
});

function SetTabAndContentState(content, tab, TabBackgroundClass)
{	
	$(tab).bind("mouseenter", function() {			
		$(AllContentsSelector.replace(content, "")).slideUp(0); //slide up all contents except the one associated with the tab		
		clearTimeouts(AllContentsSelector.split(", "));
		clearTimeouts(AllTabsSelector.split(", "));				//clear all tab timeouts
		RemoveOtherBackgroundClasses(tab);						//remove background classes for all other tabs
		$(content).stop(true).slideDown(250, function(){		//slidedown the associated content
			$(this).css({'height' : '162px'});
		});		
		$(tab).addClass(TabBackgroundClass);					//set the background of the tab
		if (DefaultTab != "none" && DefaultTab.selector != tab)
		{
			$(DefaultTab.selector).removeClass(DefaultTab.backgroundClass);
		}
	});
	
	$(tab).mouseleave(function(e){		
		var TimeoutId = setTimeout(function(){
			$(content).slideUp(0).css({'height' : '162px'});
			$(tab).removeClass(TabBackgroundClass);
			if (DefaultTab != "none")
			{				
				$(DefaultTab.selector).addClass(DefaultTab.backgroundClass);
			}
		}, 250);
		TimeoutBag[tab] = { 'name' : tab, 'TimeoutId' : TimeoutId };		
	});
	
	$(content).bind("mouseenter", function() {	
		clearTimeouts([tab]);	
		$(content).stop(true).slideDown(250, function(){
			$(this).css({'height' : '162px'});
		});	
		$(tab).addClass(TabBackgroundClass);
		if (DefaultTab != "none" && DefaultTab.selector != tab)
		{
			$(DefaultTab.selector).removeClass(DefaultTab.backgroundClass);
		}	
		
	});	
	
	$(content).mouseleave(function(e) {			
		var TimeoutId = setTimeout(function(){
			$(content).slideUp(0).css({'height' : '162px'});
			$(tab).removeClass(TabBackgroundClass);	
			if (DefaultTab != "none")
			{
				$(DefaultTab.selector).addClass(DefaultTab.backgroundClass);
			}
		}, 250);		
		TimeoutBag[content] = { 'name' : content, 'TimeoutId' : TimeoutId };
	});	
}

function GetBrowserType()
{
	var Browser;
	if ($.browser.msie)
	{
		if (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1)
		{ Browser = "ie6"; }
		else
		{ Browser = "ie7"; }
	}
	else if ($.browser.safari)
	{ Browser = "safari"; }
	else if ($.browser.opera)
	{ Browser = "opera"; }
	else if ($.browser.mozilla)
	{ Browser = "firefox"; }
	else
	{ Browser = "chrome"; }
	
	return Browser;
}

function RemoveOtherBackgroundClasses(tab)
{
	if (tab != "#JHeader1_divu" || DefaultTab != "none" && DefaultTab.selector != "#JHeader1_divu")
	{
		$("#JHeader1_divu").removeClass("backu");
	}
	if (tab != "#JHeader1_divm" || DefaultTab != "none" && DefaultTab.selector != "#JHeader1_divm")
	{
		$("#JHeader1_divm").removeClass("backm");
	}
	if (tab != "#JHeader1_divw" || DefaultTab != "none" && DefaultTab.selector != "#JHeader1_divw")
	{
		$("#JHeader1_divw").removeClass("backw");
	}
	if (tab != "#JHeader1_divk" || DefaultTab != "none" && DefaultTab.selector != "#JHeader1_divk")
	{
		$("#JHeader1_divk").removeClass("backk");
	}
	if (tab != "#JHeader1_divs" || DefaultTab != "none" && DefaultTab.selector != "#JHeader1_divs")
	{
		$("#JHeader1_divs").removeClass("backs");
	}		
}

function clearTimeouts(TimeoutBagKeys)
{
	if(TimeoutBagKeys == null) //if no TimeoutId is specified, clear all timeouts.
	{
		for (var i = 0; i < TimeoutBag.length; i++)
		{
			clearTimeout(TimeoutBag[i].TimeoutId);
		}
	}
	else //otherwise, an array of keys for the timeout bag has been passed in. clear those timeouts.
	{
		var ClearedIdsString = "";
		for (var i = 0; i < TimeoutBagKeys.length; i++)
		{
			if (TimeoutBag[TimeoutBagKeys[i]] != null)
			{
				clearTimeout(TimeoutBag[TimeoutBagKeys[i]].TimeoutId);
				ClearedIdsString += TimeoutBag[TimeoutBagKeys[i]].TimeoutId;
			}
		}		
	}
}

