﻿/// <reference path="~/JavaScript/jQuery/jquery-1.3.2-vsdoc.js" />

$(document).ready(function()
{
    var config = {
        sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
        interval: 150, // number = milliseconds for onMouseOver polling interval
        over: function() { $(this).children(".SubMenuItemsShadow, .SubMenuModelItemsShadow").fadeIn("fast").bgiframe(); $("select").trigger('blur'); },
        timeout: 100, // number = milliseconds delay before onMouseOut
        out: function() { $(this).children(".SubMenuItemsShadow, .SubMenuModelItemsShadow").hide(); }
    };

    $(".TopItem").parent().hoverIntent(config);

    $(function($)
    {
        var path = location.pathname.substring(1).toLowerCase();
        if (path.lastIndexOf("/") == path.length - 1)
        {
            path = path + "default.aspx";
        }

        var current;
        if (path == "default.aspx")
        {
            current = $("#Menu a[href=/" + path + "]");
        }
        else
        {
            if (path.indexOf("byohome.aspx") > 0)
            {
                current = $("#Menu a[href$=standard/content/byo/default.aspx]");
            }
            else if ((path.indexOf("testdrive.aspx") > 0) || ((path.indexOf("allbmws/compare") > 0)) || ((path.indexOf("leaseoffers.aspx") > 0)) || ((path.indexOf("/financingoffer/") > 0)))
            {
                current = $("#Menu a[href$=" + path + "]");
            }
            else
            {
                current = $("#Menu a[href*=" + path + "]");
            }
        }

        current.addClass("selectMenuItem");
        current.closest('.SubMenuModelItemsShadow').prev("a").addClass("selectMenuItem");
        current.closest('.SubMenuItemsShadow').prev("a").addClass("selectMenuItem");
    });

    $("#MenuTop .MenuLast").hover(function()
    {
        var startItem = $(this).siblings(":eq(0)");
        var startItemWidth = startItem.width();
        var parentPosWidth = startItem.parent().width();
        var leftAdjust = "-" + ((startItemWidth - parentPosWidth) - 5) + "px";
        startItem.css("left", leftAdjust)
    });

    $(".WideContainer").closest("li").children(".TopSubMenu").hover(function()
    {
        var parentPosLeft = $(this).parent().offset().left;
        var firstItemlOffset = $(".mainRow li:eq(0)").offset().left + 3;
        var leftAdjust = "-" + (parentPosLeft - firstItemlOffset) + "px";
        $(this).next().css("left", leftAdjust);
    });

    $("#imgSearchButton").click(function()
    {
        var url = $("#searchUrl").attr("value");
        var query = $("#tbSearch").attr("value");
        var search = url + query;
        document.location = search;
    });

    if ($.browser.mozilla)
    {
        $("#tbSearch").css("padding-top", "2px");

        var isOnMac = navigator.userAgent.toLowerCase().indexOf("macintosh") > 0 ? true : false;

        if (isOnMac)
        {
            $("#tbSearch").css("padding-top", "3px");
            $("#tbSearch").css("height", "12px");
        }
    }

    $("#tbSearch").focus(function()
    {
        if ($(this).val() == "Search")
        {
            $(this).val("");
        }
    });

    $("#tbSearch").blur(function()
    {
        if ($(this).val() == "")
        {
            $(this).val("Search");
        }
    });

    $("#tbSearch").keydown(function(e)
    {
        var event;
        var key;
        event = (e) ? e : window.event;

        if (event)
        {
            key = (event.charCode) ? event.charCode : (event.keyCode) ? event.keyCode : 0;
        }

        if (key && key == 13)
        {
            event.preventDefault();
            var url = $("#searchUrl").attr("value");
            var query = $(this).attr("value");
            var search = url + query;
            window.location = search;
        }
    });

    $("a.Vehicle:not(:contains('All BMW'))").hover(function()
    {
        var siblings = $(this).siblings(".SubMenuModelItemsShadow");
        if (!$("#shoppingDivide", siblings).length)
        {
            $("ul:contains('Shopping')", siblings).before("<img src=\"https://resource.bmwusa.com/image_079a59df-be66-47c1-b4d5-c0dd0da3628f.arox\" id=\"shoppingDivide\" alt=\"\" style=\"float: left; display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; width: 1px; overflow: hidden;\" />");
        }
    });

    if (!$.browser.msie)
    {
        $(".mainRow li").hover(function()
        {
            if ($(this).children("a.Vehicle:not(:contains('All BMW'))"))
            {
                var parentPosLeft = $(this).children("a.Vehicle:not(:contains('All BMW'))").parent().offset().left;
                var firstItemlOffset = $(".mainRow li:eq(0)").offset().left + 6;
                var leftAdjust = "-" + (parentPosLeft - firstItemlOffset) + "px";
                $(this).children("a.Vehicle:not(:contains('All BMW'))").next().css("left", leftAdjust);
            }
        });

        $("a.TopSubMenu").siblings().hover(
        function()
        {
            $(this).closest("li").children(".TopSubMenu").addClass("highlightMenuItem");
        },
        function()
        {
            $(this).closest("li").children(".TopSubMenu").removeClass("highlightMenuItem");
        });

        $("#Menu li .modelSubMenuTop ul li").hover(function()
        {
            var itemToMove = $(this).children(".modelSubMenuBottom");
            if (itemToMove.length)
            {
                var startItem = $(this).closest("div.SubMenuModelItemsContainer");
                var startItemHeight = startItem.height();
                var itemToMoveHeight = itemToMove.height();
                var topAdjust = ((startItemHeight - itemToMoveHeight) - (itemToMove.siblings(":eq(0)").offset().top - startItem.offset().top));
                if ($.browser.safari || $.browser.mozilla)
                {
                    topAdjust = topAdjust + 1;
                }
                topAdjust = topAdjust + "px";
                var leftAdjust = "-" + (itemToMove.siblings(":eq(0)").offset().left - startItem.offset().left - 11) + "px";
                itemToMove.css({ "top": topAdjust, "left": leftAdjust });
            }
        });

        $(".popupShadow").closest("li").hover(
        function()
        {
            var leftAdjust = 0;
            var spanWidth = 0;
            var aWidth = 0;
            if ($(this).children("span").length)
            {
                spanWidth = ($(this).children("span").width());
            }
            if (leftAdjust == 0 && $(this).children("a").length)
            {
                aWidth = ($(this).children("a").width());
            }
            leftAdjust = spanWidth + aWidth;
            if (spanWidth > 0 && aWidth > 0)
            {
                leftAdjust = leftAdjust + 4;
            }
            leftAdjust = (leftAdjust + 20) + "px";
            $(this).children(".popupShadow").css("left", leftAdjust);

            var defaultValueForpsTop = "-10px";

            var psTop = $(this).children(".popupShadow").css("top");
            if (psTop == defaultValueForpsTop)
            {
                var popShadowHeight = $(this).children(".popupShadow").height() - 10;
                var popShadowTop = $(this).children(".popupShadow").offset().top - 50;

                if ((popShadowHeight + popShadowTop) > 108)
                {
                    var newTop = (108 - (popShadowHeight + popShadowTop)) + "px";
                    var newNotchTop = ((popShadowHeight + popShadowTop) - 100) + "px";
                    $(this).children(".popupShadow").css("top", newTop);
                    $(".popupMenu img", this).css("top", newNotchTop);
                }
            }
        });
    }

    $("#Menu a").click(function()
    {
        var trackingName = "TopNav-";
        if ($(this).closest("a.TopItem").length)
        {
            trackingName += $(this).closest("a.TopItem").html() + "-" + $(this).html();
        }
        else if ($(this).closest(".SubMenuItemsShadow").length)
        {
            trackingName += $(this).closest(".SubMenuItemsShadow").prev("a.TopItem").html() + "-" + $(this).html();
        }
        else if ($(this).closest(".SubMenuModelItemsShadow").length)
        {
            trackingName += $(this).closest(".SubMenuModelItemsShadow").prev("a.TopItem").html() + "-" + $(this).closest("li").children(":eq(0)").html() + "-" + $(this).html();
        }
        else
        {
            trackingName += "Uncaught parent in jQuery";
        }
        trackingName = trackingName.replace("&amp;", "and");
        trackingName = trackingName.replace("™", "");

        var accountName = "bmwdev";
        if (document.location.href.indexOf("//www.bmwusa.com") > 0)
        {
            accountName = "bmwprod";
        }
        var s = s_gi(accountName);
        s.tl(this, 'o', trackingName);
    });
});
