﻿var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
var keyPressedForUpButton = false;
var keyPressedForDownButton = false;
var divNum;
var currentTabIndex;
Global.load(function () {

    $(function () {
        $('.account-button-inner').each(function () {
            if ($(this).children().length == 0) {
                $(this).hide();
            }
        });
    });

    // Listening for modern browser events and a bit extra for older versions of IE.
    var postMessageEvent = window.addEventListener ? "addEventListener" : "attachEvent",
        escapeHandler = window[postMessageEvent],
        messageEvent = postMessageEvent == "attachEvent" ? "onmessage" : "message";

    escapeHandler(messageEvent, function (e) {
        if (e.data == 'close the login box please') {
            closeLoginBox();
        }
    }, false);

    if ($('#ctl08 div.error').length > 0) {
        var name = $('#ctl08 div.error span').attr('class');
        $('input[name="' + name + '"]').focus();
    }

    if ($('#topNavCartTotal').html() != 1) {
        $('#topNavItemSuffix').html('items');
    }
    else {
        $('#topNavItemSuffix').html('item');
    }
    //click handler for pop-up buttons
    $('.login').click(function () {
        $('body').append('<div id=\'overlay\'></div>');
        $('#overlay').css('height', $(document).height());
        sizeAndAnimate('#loginmodal');
        $(window).bind("scroll", function () {
            var element = '#' + $('.open-modal').attr('id');
            checkPosition(element);
        });
    });

    //header nav active states
    $('.nav-bar li a').each(function () {
        if ($(this).attr('href') == window.location.pathname.split('/')[window.location.pathname.split('/').length - 1]) {
            $(this).parent().addClass('active');
        }
    });

    $("#loginReturnUrl").val(window.location);

    //email
    $(".email-input").focus(function () {
        if ($(this).val() == "Your Email Address") {
            $(this).val("");
        }
    });
    $(".email-input").blur(function () {
        $(this).val("Your Email Address");
    });


    //footer find retailers
    $('.retailer-find-button').click(function () {
        $('#DealerSearchForm').submit();
    });

    //Email Signup
    $("span.signin").click(function () {
        $(".dropdown").toggleClass("active");
        if ($(".signup-drop").css("display") == "block") {
            $(".signup-drop").slideUp('fast');
        } else {
            $(".signup-drop").slideDown('fast');
        }
        return false;
    });

    $('#email-signup').bind('click', function () {
        return false;
    });

    $(document).bind('click', function () {
        $(".dropdown").removeClass("active");
        if ($(".signup-drop").css("display") == "block") {
            $(".signup-drop").slideUp('fast');
        }
    });

    $("body").click(function (e) {
        var searchListOffset = $(".search-dropdown").offset();
        if (e.pageX < searchListOffset.left || e.pageY < searchListOffset.top ||
            e.pageX > searchListOffset.left + $(".search-dropdown").width() || e.pageY > searchListOffset.top + $(".search-dropdown").height()) {
            $(".search-dropdown").fadeOut(10);
            $("li.searchbox").removeClass("active");
        }
    });
});

SignIn.attachCallback(function (response) {
    if ($('body').hasClass('home') && SignIn.customer.CustomerLevelID != 0) {
        window.location.reload(true);
    }
    
    if (response.Error && response.MustChangePassword) {
        window.location.href = "signin.aspx?MustChangePassword=true&Email=" + response.Username + "&ReturnURL=" + window.location.href;
        return;
    }

    if (response.Error) {
        return;
    }

    closeLoginBox();

    if (window.location.href.indexOf("createaccount.aspx") != -1) {
        window.location.href = "account.aspx";
    }

    $("#topNavCartTotal").html(response.Customer.CartItemCount);
    var itemSuffix = response.Customer.CartItemCount == 1 ? "Item" : "Items";
    $("#topNavItemSuffix").html(itemSuffix);

    $("#topNavCustomerSignIn").html('<span class="loggedin"><span class="left user">Hi, <a href="account.aspx">' + response.Customer.Name + '</a></span><span class="button signout"><a href="signout.aspx">Sign Out</a></span>');
    $("#topNavCustomerSignIn").addClass("loggedin");
});

function openLoginBox(info) {
    if ($("#loginbox").css("display") == "none") {
        // to help with focus
        var server = window.location.href.substring(0, window.location.href.lastIndexOf("?"));
        if (server.length < 1) {
            server = window.location.href;
        }
        server = server.substring(0, server.lastIndexOf("/"));
        server = server.replace('http:', 'https:');

        var infoQueryVar;
        if (info && info != "") {
            infoQueryVar = "&info=" + info;
        } else {
            infoQueryVar = "";
        }

        $("#secure").attr('src', server + '/MhmControls/LogInSecure.aspx?ParentUrl=' + window.location.href + infoQueryVar);
        // end focus
        var bodyHeight = $("body").height();
        var $fader = $("#fader").css({ height: bodyHeight + "px", width: "100%", top: "0", left: "0", "background": "url(skins/skin_1/images/lightbox-bg.png) repeat", position: "absolute", "z-index": "5000" });
        var loginWidth = 310;
        var loginHeight = 320;
        $(".pop-up-inner").height(310);
        $("#secure").height(295);
        var $login = $("#loginbox").width(loginWidth).height(loginHeight).show();
        var leftOffset = ($fader.width() / 2) - (loginWidth / 2);
        var topOffset = ($(window).height() / 2) - (loginHeight / 2);
        $login.css({ left: leftOffset, top: topOffset, "background-color": "white", position: "fixed" });
        if (info == 'You must be logged in to write a review.') { resize(30); }
        $fader.fadeIn(10);
    }
}

function closeLoginBox() {
    $("#fader").fadeOut(10);
    $("#loginbox").hide();
}

function resize(h) {
    //    closeLoginBox();
    //$("#loginbox").hide();
    var addedInHeight = h - 6;
    $(".pop-up-inner").height(303 + addedInHeight + 33);
    $("#secure").height(290 + addedInHeight + 46);
}

function submitLogin() {
    document.getElementById("loginbox").submit();
}
function submitEmail() {
    document.getElementById("email-signup").submit();
}
function submitEmailHome() {
    document.getElementById("email-signup-home").submit();
}
function submitDealerZip() {
    document.getElementById("find-retailer-form").submit();
}

// hide swatches if there is only one
function hideLonelySwatches() {
    $(".productSwatches").each(function () {
        var swatchCount = 0;
        $(this).children('li').each(function () {
            swatchCount++;
        });
        if (swatchCount == 1) {
            $(this).hide();
        }
    });
};

//for login box
var last;
function checkPosition() {
    if (pos != $(window).scrollTop()) {
        console.log(pos);
        $(window).unbind('scroll');
        last = $(window).scrollTop();
        setTimeout('poll(element)', 50);
    }
}
function poll(element) {
    var current = $(window).scrollTop();
    if (last != current) {
        last = $(window).scrollTop();
        setTimeout('poll(element)', 50);
    } else {
        sizeAndAnimate(element);
        $(window).bind('scroll', function() {
            element = '#' + $('.open-modal').attr('id');
            checkPosition(element);
        });
    }
}

function sizeAndAnimate(element) {
    $(element).clearQueue();
    $(element).show();
    $(element).addClass('open-modal');
    var distanceLeft = $(window).width() / 2 - $(element).width() / 2;
    var distanceTop = window.pageYOffset + $(window).height() / 2 - $(element).height() / 2;
    if ($(element).css('top').substring(0, $(element).css('top').length - 2) < distanceTop) {
        $(element).animate({ top: distanceTop + 50, left: distanceLeft + 25 }, 600)
            .animate({ top: distanceTop }, 400);
    } else {
        $(element).animate({ top: distanceTop - 50, left: distanceLeft + 25 }, 600)
            .animate({ top: distanceTop }, 400);
    }
    if (distanceTop == 0) { sizeAndAnimate(); }
}

