﻿function objPromo() {
    this.intIndex = arrPromos.length;
    this.intCurrentItem = 0;
    // Methods
    this.mtdNavigate = mtdNavigate;
    this.mtdChangePromo = mtdChangePromo;
}

function mtdNavigate(strDirection) {
    var intNewItem = this.intCurrentItem;
    if (strDirection == "previous") {
        intNewItem--;
    }
    else {
        intNewItem++;
    }
    if (intNewItem < 0) {
        intNewItem = $("#divSlideshowNav" + this.intIndex + " > ul > li").size() - 1;
    }
    else if (intNewItem > $("#divSlideshowNav" + this.intIndex + " > ul > li").size() - 1) {
        intNewItem = 0;
    }
    this.mtdChangePromo(intNewItem);
}

function mtdChangePromo(intNewItem) {
    $("#divSlideshowNav" + this.intIndex + " > ul > li:nth-child(" + (intNewItem + 1) + ") > a").unbind();
    $("#divSlideshowNav" + this.intIndex + " > ul > li > a").removeClass("Selected");
    $("#divSlideshowNav" + this.intIndex + " > ul > li:nth-child(" + (intNewItem + 1) + ") > a").addClass("Selected");
    if (intNewItem != this.intCurrentItem) {
        var strNewItem = this.intIndex + "-" + intNewItem;
        var strPreviousItem = this.intIndex + "-" + this.intCurrentItem;
        var intPreviousItem = this.intCurrentItem;
        var intThisIndex = this.intIndex;
        $("#divPromoInner" + strPreviousItem).css("z-index", "0");
        $("#divPromoInner" + strNewItem).css("z-index", "1");
        $("#divPromoInner" + strNewItem).hide().fadeIn(500, function () {
            $("#divPromoInner" + strPreviousItem).hide();
            $("#divSlideshowNav" + intThisIndex + " > ul > li:nth-child(" + (intPreviousItem + 1) + ") > a").bind("click", ftnClosure(arrPromos[intThisIndex], "promo", intPreviousItem));
        });
        this.intCurrentItem = intNewItem;
    }
}

function objLargePromo(objImage, objThumbnail, objText) {
    this.intIndex = arrLargePromos.length;
    this.objImage = objImage;
    this.objThumbnail = objThumbnail;
    this.objText = objText;
    // Methods
    this.mtdChangeLargePromo = mtdChangeLargePromo;
}

function mtdChangeLargePromo(blnPreserveInterval) {
    var intFadeDuration = 1000;
    if (!blnPreserveInterval) {
        clearInterval(objInterval);
        intFadeDuration = 100;
    }
    $(this.objThumbnail).unbind();
    $(this.objThumbnail).addClass("Selected");
    $(this.objImage).css("z-index", "1");
    $(this.objText).css("z-index", "1");
    if (objCurrent != null) {
        $(objCurrent.objImage).css("z-index", "0");
        $(objCurrent.objText).css("z-index", "0");
        $(objCurrent.objThumbnail).removeClass("Selected");
        $(objCurrent.objText).hide();
        $(objCurrent.objThumbnail).bind("click", ftnClosure(objCurrent, "largepromo"));
        $(this.objText).show();
        $(this.objImage).hide().fadeIn(intFadeDuration, ftnSetCurrentObject(this, intFadeDuration));
    }
    else {
        objCurrent = this;
    }
}

function ftnSetCurrentObject(objNew, intFadeDuration) {
    $(objCurrent.objImage).fadeOut(intFadeDuration);
    objCurrent = objNew;
}

function ftnClosure(objObject, strFunction, intIndex) {
    return function () {
        switch (strFunction) {
            case "largepromo":
                objObject.mtdChangeLargePromo();
                break;
            case "LargePromoPrevious":
                ftnLargePromoNavigate("previous");
                break;
            case "LargePromoNext":
                ftnLargePromoNavigate("next");
                break;
            case "previous":
                objObject.mtdNavigate("previous");
                break;
            case "next":
                objObject.mtdNavigate("next");
                break;
            case "promo":
                objObject.mtdChangePromo(intIndex);
                break;
        }
    };
};

function ftnNavigateAutomatically() {
    var intNewItem = objCurrent.intIndex;
    intNewItem++;
    if (intNewItem > arrLargePromos.length - 1) {
        intNewItem = 0;
    }
    arrLargePromos[intNewItem].mtdChangeLargePromo(true);
}

function ftnSetLargePromoInterval() {
    objInterval = setInterval(function () { ftnNavigateAutomatically() }, 6000);
}

function ftnLargePromoNavigate(strDirection) {
    var intNewItem = parseInt($("div.LargePromoNav > ul > li > a.Selected").text()) - 1;
    //var intNewItem = this.intCurrentItem;
    if (strDirection == "previous") {
        intNewItem--;
    }
    else {
        intNewItem++;
    }
    if (intNewItem < 0) {
        intNewItem = $("div.LargePromoNav > ul > li").size() - 1;
    }
    else if (intNewItem > $("div.LargePromoNav > ul > li").size() - 1) {
        intNewItem = 0;
    }
    //this.mtdChangePromo(intNewItem);
    arrLargePromos[intNewItem].mtdChangeLargePromo();
}

function ftnInitialiseLandingPage() {
    $(".MediumPromo").each(function () {
        var intIndex = $(".MediumPromo").index($(this));
        arrPromos[intIndex] = new objPromo();
        $("#divSlideshowNav" + intIndex + " > ul > li").each(function () {
            var intItemIndex = $("#divSlideshowNav" + intIndex + " > ul > li").index($(this));
            $(this).children("a").click(ftnClosure(arrPromos[intIndex], "promo", intItemIndex)).attr("href", "javascript:void(0);");
        });
        $("#divSlideshowNav" + intIndex + " > a:first-child").click(ftnClosure(arrPromos[intIndex], "previous")).attr("href", "javascript:void(0);");
        $("#divSlideshowNav" + intIndex + " > a:last-child").click(ftnClosure(arrPromos[intIndex], "next")).attr("href", "javascript:void(0);"); ;
        arrPromos[intIndex].mtdChangePromo(0);
    });
    $(".LargePromo > a").each(function () {
        var intIndex = $(".LargePromo > a").index($(this));
        var intNthChildIndex = intIndex + 1
        arrLargePromos[intIndex] = new objLargePromo($(this), $(".LargePromoNav > ul > li:nth-child(" + intNthChildIndex + ") > a"), $(".LargePromoOverlay > div:nth-child(" + (intNthChildIndex + 1) + ")"));
        $(".LargePromoNav > ul > li:nth-child(" + intNthChildIndex + ") > a").bind("click", ftnClosure(arrLargePromos[intIndex], "largepromo")).attr("href", "javascript:void(0);");
    });
    $("div.LargePromoNav > a.Left").bind("click", ftnClosure("", "LargePromoPrevious")).attr("href", "javascript:void(0);");
    $("div.LargePromoNav > a.Right").bind("click", ftnClosure("", "LargePromoNext")).attr("href", "javascript:void(0);");
    arrLargePromos[0].mtdChangeLargePromo(true);
    ftnSetLargePromoInterval();
}

var objCurrent = null;
var objInterval = null;
var arrLargePromos = new Array();
var arrPromos = new Array();

$(document).ready(function () {
    ftnInitialiseLandingPage();
});
