/*
 * @author Martin Shopland
 * @copyright Redbrick Studios 2011
 * @link http://www.redbrickstudios.co.uk/
 * @package sagal.co.uk
 * @version 3.0
 * 
 * Homepage banner
 */
$(function(){

    var pause = 5000;
    var duration = 2000;
    var easing = 'easeOutExpo';

    ///////////

    var interval = 0;
    var transition = false;

    var slide = 0;
    var lastSlide = 0;
    var slides = [];
    var banner = $('.banner');
    banner.children().each(function(){slides.push($(this));});
    var maxSlide = slides.length - 1;

    if(maxSlide < 1) return false;

    var links = [];
    var controls = $('<ul class="controls page-numbers"/>').appendTo(banner);
    for(var i = 0; i < slides.length; i++)(function(){
        var slideId = i;
        links[i] = $('<li/>').appendTo(controls);
        $('<a href="#">' + (i + 1) + '</a>').click(function(){return doPick(slideId);}).appendTo(links[i]);
    })();
    var allLinks = controls.children();

    wait();

    function wait(){
        transition = false;
        controls.removeClass('disabled');
        links[slide].addClass('active');
        interval = setInterval(doNext, pause);
    }

    function beginFade(){
        clearInterval(interval);
        transition = true;
        controls.addClass('disabled');
        allLinks.removeClass('active');
        slides[slide].css('z-index', 2).show('slide', {direction: 'right', easing: easing}, duration, wait);
        slides[lastSlide].css('z-index', 1).hide('slide', {direction: 'left', easing: easing}, duration);
    }

    function doNext(){
        lastSlide = slide;
        if(++slide > maxSlide) slide = 0;
        beginFade();
        return false;
    }

    function doPick(slideId){
        if(transition || slideId == slide) return false;
        lastSlide = slide;
        slide = slideId;
        beginFade();
        return false;
    }

});
