﻿var hasTrackedCategory = false;
var hasTrackedProduct = false;

$(function() {
    // initCarousels();
    initAllergiesBox();

    $("#categorySlider a.itemLink img, #productSlider a.itemLink img").wrap("<span></span>");

    if (currentCategory > -1 && currentProduct == -1) {
        $("#noProduct").show();
        $("#productSlider").show();
        showProductsFromCategory(currentCategory, false);
        if ($("#productSlider").length > 0) $.scrollTo($("#productSlider").offset().top - 10 + "px", 700);
    }
    else {
        $("#productSlider").show();
        showProductsFromCategory(currentCategory, false);
        if ($("#productSlider").length > 0) $.scrollTo($("#productSlider").offset().top - 10 + "px", 700);
        slideToActiveProduct();
        $("#product").show();
    }

    if (currentCategory == -1) {
        $("#noCategory").show();
        $("#productSlider").hide();
        trackFunnel("/ons-assortiment.aspx");
        resetSliderRollOver();
    }
    else {
        hasTrackedCategory = true;
        findActiveCategory(true);
        resetSliderRollOver();
    }


    initCategoryButtons();

});

function findActiveCategory(doSlide) {

    $links = $("#categorySlider a.itemLink")

    $links.each(function(i) {

        if (parseInt($(this).attr("CategoryID")) == currentCategory) {

            if (!hasTrackedCategory) {
                hasTrackedCategory = true;
                trackFunnel("/assortiment-producten.aspx");
            }
            
            $(this).parent().addClass("active");
            
            if (doSlide) {
                navigateMiniSliderTo($("#categorySlider div.miniSlider"), i, 0);
            }
        }
        else {
            $(this).parent().removeClass("active");
        }
    }); 
}

function slideToActiveProduct() {
    $links = $("#productSlider div.category-" + currentCategory + " a.itemLink")

    $links.each(function(i) {

    if (parseInt($(this).attr("ProductID")) == currentProduct) {
            if (!hasTrackedProduct) {
                hasTrackedProduct = true;
                trackFunnel("/assortiment-product-view.aspx");
            }
            navigateMiniSliderTo($("#productSlider div.miniSlider"), i, 0);
        }
    });
}



function initCategoryButtons() {
    if (enableCategoryLinks) {
        $("#categorySlider a.itemLink").click(function(e) {

            $("#product, div.noProductSelected").hide();
            $("#noProduct").show();
            $("#noCategory").hide();
            $("#productSlider").show();

            var categoryID = $(this).attr("CategoryID");
            currentCategory = categoryID;

            findActiveCategory(false);

            resetSliderRollOver();

            showProductsFromCategory($(this).attr("CategoryID"), true);

            e.preventDefault();
        });
    };
}

function addLoadEventListener(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

addLoadEventListener(showProductPage);

function showProductPage() {
    $("#categorySlider div.miniSlider").css("visibility", "visible");
    $("#productLoader").hide();
}

function initAllergiesBox()
{
    var FADE_SPEED = 300;

    $('#content p.allergies-link a').click(
        function(e)
        {
            $('#productinfo-wrapper').show(0).fadeIn(0).fadeOut(FADE_SPEED);
            $('#productinfo-wrapper h2').show(0)
            $('#content div.allergies-box').show(0).fadeOut(0).wait(FADE_SPEED + 150).fadeIn(FADE_SPEED);
            e.preventDefault()
        }
    );
    $('#content a.allergiesCloseBtn').click(
        function(e)
        {
            $('#productinfo-wrapper').show(0).fadeOut(0).wait(FADE_SPEED + 150).fadeIn(FADE_SPEED);
            $('#productinfo-wrapper h2').hide(0)
            $('#content div.allergies-box').show(0).fadeIn(0).fadeOut(FADE_SPEED);
            e.preventDefault()
        }
    );
    $('#content div.allergies-box').hide();
}

function initRecepiesBox()
{
    var FADE_SPEED = 300;

    $('#content h3.recepies-link a').click(
        function(e)
        {
            $('#productinfo-wrapper').show(0).fadeIn(0).fadeOut(FADE_SPEED);
            $('#productinfo-wrapper h2').show(0)
            $('#content div.recepies-box').show(0).fadeOut(0).wait(FADE_SPEED + 150).fadeIn(FADE_SPEED);
            e.preventDefault()
        }
    );
    $('#product a.recepiesCloseBtn').click(
        function(e)
        {
            $('#productinfo-wrapper').show(0).fadeOut(0).wait(FADE_SPEED + 150).fadeIn(FADE_SPEED);
            $('#productinfo-wrapper h2').hide(0)
            $('#content div.recepies-box').show(0).fadeIn(0).fadeOut(FADE_SPEED);
            e.preventDefault()
        }
    );
    $('#content div.recepies-box').hide();
}

function showProductsFromCategory(categoryID, doScrollTop) {
    // show products within this category (by classnames)
    var $items = $("#productSlider div.miniSliderItem");

    for (var i = 0; i < $items.length; i++) {
        if (categoryID == i) {
            $("#productSlider div.category-" + i).show();
            
        }
        else {
            $("#productSlider div.category-" + i).hide();
        }
    }

    if (doScrollTop) {
        setTimeout(pageScrollDown, 300);
    }

    // reset minislider
    navigateMiniSliderTo($("#productSlider div.miniSlider"), 0, 0);
    setTimeout(resetStaticBar, 1500);
}

function pageScrollDown() {
    if (parseInt($.jqURL.get("ypos")) < $("#content").offset().top - 10 || ($("html").scrollTop() + $("body").scrollTop()) < $("#content").offset().top - 10) {
        $.scrollTo($("#content").offset().top - 10 + "px", 700);
    }
}

function resetSliderRollOver() {
    initProductRollOvers(117, 156, currentCategory, "#categorySlider");
    initProductRollOvers(117, 176, currentCategory, "#productSlider");
}

function initProductRollOvers(w, h, c, scope) {

    //$(_selector + " li.active").removeClass('active').addClass('unactive');
    // $(_selector + " .categoryLink-" + c).addClass('active');

    var t1 = new Object();
    t1.width = w;
    t1.height = h;
    t1.paddingLeft = 0;
    t1.paddingTop = 0;

    var t2 = new Object();
    t2.width = t1.width * 0.75;
    t2.height = t1.height * 0.75;
    t2.paddingLeft = Math.abs(t1.width - t2.width) / 2;
    t2.paddingTop = Math.abs(t1.height - t2.height) / 2;

    // inactive links hover
    $("a.itemLink", scope).hoverIntent(
        function() { onProductMouseOver($(this), t1, t2) },
        function() { onProductMouseOut($(this), t1, t2) }
    );

    $("a.itemLink img", scope).fadeTo(0, 0.5).animate(t2, 0);
    $("div.active a.itemLink img", scope).fadeTo(0, 1).animate(t1, 0);

    // active links hover
    $("div.active a.itemLink", scope).hoverIntent(
        function() { onActiveProductMouseOver($(this), t1, t2) },
        function() { onActiveProductMouseOut($(this), t1, t2) }
    ).fadeTo(0, 1).animate(t1, 0);
}

function onProductMouseOver(obj, t1, t2) {
    $("img", obj).animate(t1, 100).fadeTo(100, 1);
}

function onProductMouseOut(obj, t1, t2) {
    $("img", obj).animate(t2, 100).fadeTo(100, 0.5);
}

function onActiveProductMouseOver(obj, t1, t2) {
    $("img", obj).animate(t1, 0).fadeTo(0, 1);
}

function onActiveProductMouseOut(obj, t1, t2) {
    $("img", obj).animate(t1, 0).fadeTo(0, 1);
}


