﻿$(window).bind("load", function() {
    slider.init();
});

var slider = {
    num: -1,
    cur: 0,
    cr: [],
    al: null,
    ar: true,
    at: 10 * 1000, //10 secs
    init: function() {
        if (!slider.data || !slider.data.length)
            return false;

        var d = slider.data;
        slider.num = d.length;
        var pos = Math.floor(Math.random() * 1); //slider.num);
        for (var i = 0; i < slider.num; i++) {
            $('#' + d[i].id).css({ left: ((i - pos) * 560) });
            $('#slideLinkAppleLeft').after('<a id="slideLink' + i + '" href="#" onclick="slider.slide(' + i + ');return false;" onfocus="this.blur();">' + (i + 1) + '</a>');
        }
        //Get and set height for banner container and images
        var bannerHeight = $('img.slide').height();
        $('img.slide, #bannerContainer #banner, #bannerContainer').css({ height: bannerHeight });

        //Fade in controls for  banner
        $('#slideControls, #bannerContainer img').fadeIn();
        slider.text(d[pos]); //


        //Slide through slides when right arrow is clicked
        $('#slideLinkAppleRight').click(function() {
            slider.next();
        });
        //Slide through slides when left arrow is clicked
        $('#slideLinkAppleLeft').click(function() {
            slider.prev();
        });

        slider.on(pos); // makes the control item active
        slider.cur = pos; //sets pos to be the current slide

        //Call the auto function to initialize the loop after the time interval at
        window.setTimeout('slider.auto();', slider.at);
    },
    auto: function() {
        if (!slider.ar)
            return false;

        //Determine the next slider for autoplay
        var next = slider.cur + 1;

        //Check bounds and set to first slide if true
        if (next >= slider.num) next = 0;

        //Call the slide function to actually animate the banner
        slider.slide(next);
    },
    slide: function(pos) {
        //Check bounds
        if (pos < 0 || pos >= slider.num || pos == slider.cur)
            return;

        //Reset timer of autoplay
        window.clearTimeout(slider.al);
        slider.al = window.setTimeout('slider.auto();', slider.at);

        var d = slider.data;
        for (var i = 0; i < slider.num; i++)
        //Actual sliding of banner happens here
            $('#' + d[i].id).stop().animate({ left: ((i - pos) * 560) }, 500, 'swing');
        slider.on(pos); // makes the box active
        slider.text(d[pos]); //makes number active
        slider.cur = pos; //sets pos to be the current slide

    },
    //Current classes
    on: function(pos) {
        $('#slideControls a').removeClass('on');
        $('#slideControls a#slideLink' + pos).addClass('on');
    },
    //data for slider
    text: function(di) {
        //        $('#sliderClient').html(di.client);
        //        $('#sliderDesc').html(di.desc);
    },

    next: function() {
        if (!slider.ar)
            return false;

        //Determine the next slider for autoplay
        var next = slider.cur + 1;

        //Check bounds and set to first slide if true
        if (next >= slider.num) next = 3;

        //Call the slide function to actually animate the banner
        slider.slide(next);

    },

    prev: function() {
        if (!slider.ar)
            return false;

        //Determine the next slider for autoplay
        var prev = slider.cur - 1;

        //Check bounds and set to first slide if true
        if (prev >= slider.num) prev = 0;

        //Call the slide function to actually animate the banner
        slider.slide(prev);
    }

};
