$(window).load(function() {
    slider.init();

    $('#home-promo').mouseenter(function() {
        slider.mousein = true;
        if (!slider.isanimating) {
            window.clearTimeout(slider.autoloop);
        }
    });

    $('#home-promo').mouseleave(function() {
        slider.mousein = false;
        if (!slider.isanimating) {
            slider.autoloop = window.setTimeout('slider.auto();', slider.timer);
        }
    });

    $('.promo-nav a').click(function(e) {
        switch ($(this).parent().attr("id")) {
        case "promo-nav-1":
            slider.slide(1, true);
            break;
        case "promo-nav-2":
            slider.slide(2, true);
            break;
        case "promo-nav-3":
            slider.slide(3, true);
            break;
        }
        e.preventDefault();
    });

});

var slider = {
    num: -1,
    curr: 0,
    transtime: .75 * 1000,
    autoloop: null,
    autotime: 10 * 1000,
    autorotate: true,
    mousein: false,
    timer: 0,
    colors: Array("red", "dk-blue", "green"),
    init: function() {
        // initialize
        if (!slider.data || !slider.data.length) {
            return false;
        }

        var d = slider.data;
        slider.num = d.length;
        for (var i = 0; i < slider.num; i++) {
            if (i !== 0) {
                $("#home-promo #home-promo-imgs").append('<img id="promo-' + (i + 1) + '" src=" '+ d[i].image + '" alt="'+d[i].ScreenReaderTitle+'" />');
                $("#home-promo #home-promo-imgs #promo-" + (i + 1)).css("opacity", 0.0);
            }
        }

        slider.countdown(slider.autotime/2);
    },
    auto: function() {
        // auto rotate to next
        if (!slider.autorotate)
        return false;

        var next = slider.curr + 2;
        if (next >= (slider.num + 1)) next = -1;
        // on last slide so set it to -1
        if (!slider.mousein) {
            slider.slide(next);
        }
    },
    slide: function(next, gap) {
        // transition to next image
        if (gap) {
            slider.wrapoff(true);
            $("#home-promo #home-promo-imgs #promo-" + Number(slider.curr + 1)).animate({
                opacity: 0.0
            },
            slider.transtime);
            $("#home-promo #home-promo-imgs #promo-" + (next)).animate({
                opacity: 1.0
            },
            slider.transtime);
            slider.curr = next - 1;
        } else if (next > 0 && !gap) {
            slider.wrapoff(true, next);
            $("#home-promo #home-promo-imgs #promo-" + (next - 1)).animate({
                opacity: 0.0
            },
            slider.transtime);
            $("#home-promo #home-promo-imgs #promo-" + (next)).animate({
                opacity: 1.0
            },
            slider.transtime);
            slider.curr++;
        } else {
            slider.wrapoff(true);
            $("#home-promo #home-promo-imgs #promo-" + (slider.num)).animate({
                opacity: 0.0
            },
            slider.transtime);
            $("#home-promo #home-promo-imgs #promo-" + (1)).animate({
                opacity: 1.0
            },
            slider.transtime);
            slider.curr = 0;
        }
    },
    textswap: function(next) {
        // update text area
        if (!next)
        next = slider.curr + 1;
        switch (next) {
        case 1:
            $('#home-promo li').removeClass("active");
            $('#home-promo .home-promo-wrap').removeClass("red dk-blue green");
            $('#home-promo .home-promo-wrap').addClass("red");
            $('#home-promo #promo-nav-1').addClass("active");
            $('#home-promo .wrap-fg .home-promo-content h3').html(slider.data[0].title);
            $('#home-promo .wrap-fg .home-promo-content p').html(slider.data[0].copy);
			$('#home-promo .wrap-fg .home-promo-content a').attr('href', slider.data[0].link);
            $('#home-promo .wrap-fg .home-promo-content a').attr('title', slider.data[0].ScreenReaderTitle);
            $('#home-promo .wrap-fg .home-promo-content a').html(slider.data[0].CallToAction);
            break;
        case 2:
            $('#home-promo li').removeClass("active");
            $('#home-promo .home-promo-wrap').removeClass("red dk-blue green");
            $('#home-promo .home-promo-wrap').addClass("dk-blue");
            $('#home-promo #promo-nav-2').addClass("active");
            $('#home-promo .wrap-fg .home-promo-content h3').html(slider.data[1].title);
            $('#home-promo .wrap-fg .home-promo-content p').html(slider.data[1].copy);
			$('#home-promo .wrap-fg .home-promo-content a').attr('href', slider.data[1].link); 
            $('#home-promo .wrap-fg .home-promo-content a').attr('title', slider.data[1].ScreenReaderTitle);
            $('#home-promo .wrap-fg .home-promo-content a').html(slider.data[1].CallToAction);
            break;
        case 3:
            $('#home-promo li').removeClass("active");
            $('#home-promo .home-promo-wrap').removeClass("red dk-blue green");
            $('#home-promo .home-promo-wrap').addClass("green");
            $('#home-promo #promo-nav-3').addClass("active");
            $('#home-promo .wrap-fg .home-promo-content h3').html(slider.data[2].title);
            $('#home-promo .wrap-fg .home-promo-content p').html(slider.data[2].copy);
			$('#home-promo .wrap-fg .home-promo-content a').attr('href', slider.data[2].link);
			$('#home-promo .wrap-fg .home-promo-content a').attr('title', slider.data[2].ScreenReaderTitle);
            $('#home-promo .wrap-fg .home-promo-content a').html(slider.data[2].CallToAction);
            break;
        }
    },
    highlight: function() {
        // change active slide number
        },
    wrapon: function(onagain) {
        if (!onagain)
        return false;

        var newFgLeft = -($("#home-promo .wrap-fg").width() - 40);

        $("#home-promo .wrap-bg").animate({
            left: "-21px",
            width: "21px"
        },
        250);

        $("#home-promo .home-promo-wrap .wrap-fg").delay(500).animate({
            width: "350px"
        },
        400, slider.countdown);
        $("#home-promo .home-promo-wrap .home-promo-content").delay(500).animate({
            opacity: 1.0
        },
        400, slider.countdown);
    },
    wrapoff: function(onagain, next) {
        slider.isanimating = true;
        var newFgLeft = -($("#home-promo .wrap-fg").width() - 40);

        $("#home-promo .wrap-bg").delay(450).animate({
            left: "0px",
            width: "0px"
        },
        250,
        function() {
            slider.textswap(next);
            slider.wrapon(onagain);
        });
        $("#home-promo .home-promo-wrap .home-promo-content").animate({
            opacity: 0.0
        },
        400);
        $("#home-promo .home-promo-wrap .wrap-fg").animate({
            width: "0px"
        },
        400);
    },
    countdown: function(t) {
        if (!slider.mousein) {
            window.clearTimeout(slider.autoloop);
            slider.autoloop = window.setTimeout('slider.auto();', slider.autotime);
        }
        slider.isanimating = false;
        slider.timer = slider.autotime;
    }
};
