﻿/// <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"); $("select").trigger('blur'); },
        timeout: 100, // number = milliseconds delay before onMouseOut
        out: function() { $(this).children(".SubMenuItemsShadow, .SubMenuModelItemsShadow").hide(); }
    };

    $(".TopItem").parent().hoverIntent(config);


    // jquery custom filter to compare the selected link
    $.expr[":"].linkCheck = function(el, i, m) {
        var search = m[3];
        if (!search) return false;
        return (search.toLowerCase() == el.pathname.toLowerCase());
    };


    // determine where we are on the TopNav and set the appropriate class
    // for ui indication.
    $(function($) {
        var path = location.pathname.substring(1).toLowerCase();
        var href = location.href.toLowerCase();


        if (path.lastIndexOf("/") == path.length - 1) {
            path = path + "default.aspx";
        }

        var current;
        // on the home page 
        if (path == "default.aspx") {
            current = $("#Menu a[href=/" + path + "]");
        }
        // vehicle shopping tools selected
        else if (path.indexOf("financeoffers.aspx") > 0 || path.indexOf("leaseoffers.aspx") > 0) {
            current = $("#Menu a[href$=Finance/Default.aspx]");
        }
        else {
            current = $("#Menu a:linkCheck(" + path + ")");
        }

        // set the classes for ui feedback
        current.addClass("selectMenuItem");
        current.closest('.SubMenuModelItemsShadow').prev("a").addClass("selectMenuItem");
        current.closest('.SubMenuItemsShadow').prev("a").addClass("selectMenuItem");
    });


    $(".LeftAdjust").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);
    });



    if (!$.browser.msie) {
        
        // re-written version
        $(".mainRow .Vehicle").parent().hover(
        // hover enter
            function() {
                var parentPosLeft = $(this).offset().left;
                var firstItemlOffset = $(".mainRow li").eq(0).offset().left + 6;
                var leftAdjust = "-" + (parentPosLeft - firstItemlOffset) + "px";
                $(this).children(".Vehicle").next().css("left", leftAdjust);
            },

        // hover leave
            function() {
                // do nothing
            }

        ); // end hover        



        $("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 defaultEmpty = "http://cache.bmwusa.com/image_d5cf7777-efd4-4294-84aa-397cbefe220e.arox";
                var imageNa = "http://cache.bmwusa.com/image_0e52178e-2f6e-4ca8-884d-f295b7c298ca.arox";

                var src = $("img.modelImage", this).attr("src");
                var alt = $("img.modelImage", this).attr("alt");

                if (alt.length) {
                    if (src.toLowerCase().indexOf("image_6256c981-6f02-4006-bf23-5868c0fb613c.arox") > 0 && (alt.toLowerCase().indexOf("brand=wbbm") > 0 || alt.toLowerCase().indexOf("image_") > 0)) {
                        $("img.modelImage", this).attr("src", alt);
                        $("img.modelImage", this).attr("alt", "");
                    }
                    else {
                        $("img.modelImage", this).attr("src", imageNa);
                    }
                }

                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("™", "");
    });


    $("#Menu .SubMenuItemsContainer a").each(function() {
        var newValue = $(this).html().replace("â„¢", "&trade;");
        newValue = newValue.replace("Â®", "&reg;");
        newValue = newValue.replace("Â ", "");
        $(this).html(newValue);
    });


    $(window).load(function() {
        $("#TopNavNew img").each(function() {
            if ($(this).attr("alt").length && $(this).attr("alt").toLowerCase().indexOf(".arox") > 0) {
                var newImage2 = new Image();
                newImage2.src = $(this).attr("alt");
                $("#modelPreLoad").append(newImage2);
            }
        });
    });
});


