﻿
var timeout = 150;
var closetimer = null;
var ddmenuitem = 0;
var currentMenuClass = "";
var isTertiary = false;
var $target = "";
var closeTarget = "";

var tertiaryCount;
var secondaryNavPos;
var tertiaryNavWidth;
var tertiaryNavHeight;

function jsddm_open($this) {
    ddmenuitem = $this.children('div').css('display', 'block');
    currentMenuClass = ddmenuitem.siblings('a').attr('class');
}

function jsddm_close() {
    if (closeTarget) {
        closeTarget.css('display', 'none');
        closeTarget.siblings('a').css("background-position", "0 -29px").children('img').css("margin-top", "0");

        if (closeTarget.children('#tertiarymenu_in_store').hasClass('active')) {
            isTertiary = false;
            closeTarget.children('#tertiarymenu_in_store').removeClass('active');
        }
    }
}

function jsddm_timer(target) {
    closeTarget = target.children('div');
    closetimer = setTimeout(jsddm_close(), timeout);
}

function jsddm_canceltimer() {
    if ((closetimer) || (isTertiary)) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}

$(document).ready(function () {
    tertiaryCount = $('#tertiarymenu_in_store > #tertiary-nav > a').length;

    $('#primarymenu > li').hover(
        function () { jsddm_open($(this)); setTertiary($(this).children('div')); },
        function () { jsddm_timer($(this)); }
    );

    $('#primarymenu > li > div').each(function () {
        $(this).children("a").each(function () {
            if (($(this).attr('id') == "AllAmericanGames") || ($(this).attr('id') == "OlympicsInLondon")) {
                $(this).remove();
            }

            if ($(this).parent().hasClass('secondarymenu-online')) {
                switch ($(this).attr('id')) {
                    case "Snapfish":
                        $(this).insertAfter($(this).siblings('#Cash'));
                        break;
                    case "Beaches":
                        $(this).insertBefore($(this).siblings('#Nissan'));
                        break;
                    case "Nissan":
                        $(this).insertAfter($(this).siblings('#Beaches'));
                        break;
                    case "SpaWish":
                        $(this).insertAfter($(this).siblings('#Nissan'));
                        break;
                    case "Walmart":
                        $(this).insertAfter($(this).siblings('#SpaWish'));
                        break;
                    case "GiftCards":
                        $(this).insertAfter($(this).siblings('#Walmart'));
                        break;
                    case "EASPORTS":
                        $(this).insertAfter($(this).siblings('#GiftCards'));
                        break;
                }

            }

            if ($(this).parent().hasClass('secondarymenu-in-store')) {
                switch ($(this).attr('id')) {
                    case "Snapfish":
                        $(this).insertAfter($(this).siblings('#Cash'));
                        break;
                    case "Beaches":
                        $(this).insertBefore($(this).siblings('#Nissan'));
                        break;
                    case "SpaWish":
                        $(this).insertBefore($(this).siblings('#Walmart'));
                        break;
                    case "EASPORTS":
                        $(this).insertAfter($(this).siblings('#GiftCards'));
                        break;
                    case "GiftCardsForGas":
                        $(this).insertAfter($(this).siblings('#Walmart'));
                        break;
                }
            }
        });

        var anchorTags = $(this).children("a");
        var anchorLength = anchorTags.length;

        if ($(this).attr('class') == 'secondarymenu-in-store') {
            anchorLength = anchorTags.length - 3;
        } else {
            anchorLength = anchorTags.length - 2;
        }
        
        //wrap online secondarynav in divs
        for (var i = 0; i < anchorLength; i += 2) {
            anchorTags.slice(i, i + 2).wrapAll("<div class='double-row'></div>");
        }

        //wrap online secondarynav in divs
        var excessTags = $(this).children("a");
        for (var j = 0; j < excessTags.length; j += 1) {
            excessTags.slice(j, j + 1).wrapAll("<div class='single-row'></div>");
        }

    });

    $('#secondarymenu > li > a').each(function () {
        $(this).hover(
            function () { $(this).children('img').css("margin-top", "-16px"); },
            function () { $(this).children('img').css("margin-top", "0"); }
        );
    });

    $('#primarymenu > li > a').each(function () {
        $(this).hover(
            function () { if (!isActive($(this))) { $(this).children('img').css("margin-top", "-29px"); } },
            function () {
                if (!isActive($(this))) {
                    if ($(this).attr('class') != currentMenuClass) { $(this).children('img').css("margin-top", "0"); }
                    else { $(this).css("background-position", "0 0"); }
                }
            }
        );
    });


    // $('#tertiarymenu_in_store').css({ 'top': tertiaryNavHeight + 'px', 'left': tertiaryNavWidth + 'px' });

    var teritaryTags = $('#tertiarymenu_in_store > #tertiary-nav > a');

    //wrap online secondarynav in divs
    for (var x = 0; x < tertiaryCount; x += 1) {
        if (x == 0) {
            teritaryTags.slice(x, x + 1).wrapAll("<div class='tertiary-single-row'></div>");
        }
        else {
            teritaryTags.slice(x, x + 1).wrapAll("<div class='single-row'></div>");
        }
    }

    $("#tertiary").unbind('click');
    $("#tertiary").hover(
        function () {
            $(this).parent().siblings('#tertiarymenu_in_store').addClass('active');


            $(this).parent().siblings('#tertiarymenu_in_store').hover(
                function () { isTertiary = true; jsddm_canceltimer(); },
                function () {
                    isTertiary = false;
                    window.setTimeout("hideTertiary()", timeout);
                }
            );
        },
        function () {
            $target = $(this);
            window.setTimeout("hideTertiary()", timeout);
        }
    );
});

function setTertiary($target) {
    if ($target.attr('class') == 'secondarymenu-in-store') {

        secondaryNavPos = $('.secondarymenu-in-store').position();
        tertiaryNavWidth = ($target.width() + 5) + secondaryNavPos.left;
        tertiaryNavHeight = ($target.height() - (tertiaryCount * 20) + 1) + secondaryNavPos.top;
        $('#tertiarymenu_in_store').css({ 'top': tertiaryNavHeight + 'px', 'left': tertiaryNavWidth + 'px' });
    }
}
function hideTertiary() {

    if (!isTertiary) {
        $target.parent().siblings('#tertiarymenu_in_store').removeClass('active');
    }
}
function isActive(target) {
    var curClass = $('body').attr('class');

    switch (curClass) {
        case "entercode":
            if (target.hasClass('nav-enter-code')) { return true; }
            else { return false; }
            break;
        case "prize-online":
            if (target.hasClass('nav-online-prizes')) { return true; }
            else { return false; }
            break;
        case "prize-gamepiece":
            if (target.hasClass('nav-in-store-prizes')) { return true; }
            else { return false; }
            break;
        case "gameboard":
            if (target.hasClass('nav-play-in-store')) { return true; }
            else { return false; }
            break;
        case "entry":
            if (target.hasClass('nav-enter-code')) { return true; }
            else { return false; }
            break;
        default: return false;
            break;
    }

}
document.onclick = jsddm_close;
