/*
    Document   : banner main
    Created on : 16/08/2011, 8:52:00
    Author     : CarlosGarcia
    Description: Javascript main banner controller
    Purpose of the javascript follows.
*/

var num_banners;
var id_banner_current = 1;
var id_banner_next = 2;
var timerBanners = 7000;
var zBannerindex=0;

/*
 * This method is called form main.js
 * See the file above to see the cosntructor method
 * It's working as purpose because it was not working from here on ready initial method.
 * 
 */
function initBannerMain(banners){

    num_banners = $("#quantidade_banners").val();

    if(num_banners > 1){
        intervaloBannerMain = setInterval(slideShow, timerBanners);
        createNewBannersVariables(banners);
    }
    initButtonsBannerListeners();
}

//It animates the slide show after load a new image from banner 
function slideShow(){

    clearInterval(intervaloBannerMain);
    //Se veio do slideback verifica se já esta sendo exibido
    if(id_banner_next > num_banners) id_banner_next = 1;
    
    if($("#banner_loader" + id_banner_next).attr('id') == undefined){loadNewBanner(id_banner_next);}    

    $('#banner_loader' + id_banner_current).fadeOut("slow");
    $("#banner_loader" + id_banner_next).fadeIn("slow").css("z-index", zBannerindex++);

    //Prepara proxima troca de banner
    id_banner_current = id_banner_next;
    id_banner_next++;

    intervaloBannerMain = setInterval(slideShow, timerBanners);

    //$(".bn_shadow").append(id_banner_current + " _  "+ id_banner_next +  "  ");
}

//It animates the slide show to back 
function backslideShow(){

    clearInterval(intervaloBannerMain);

    if(id_banner_next < 1) id_banner_next = num_banners;

    $("#banner_loader" + id_banner_current).fadeOut("slow");
    $("#banner_loader" + id_banner_next).fadeIn("slow").css("z-index", zBannerindex++);

    //Prepara proxima troca de banner
    id_banner_current = id_banner_next;

    intervaloBannerMain = setInterval(slideShow, timerBanners);

}

//It animates the slide show to next item
function nextslideShow(){

    clearInterval(intervaloBannerMain);

    //Se veio do slideback verifica se já esta sendo exibido
    if(id_banner_next > num_banners) id_banner_next = 1;

    $('#banner_loader' + id_banner_current).fadeOut("slow");
    $("#banner_loader" + id_banner_next).fadeIn("slow").css("z-index", zBannerindex++);

    //Prepara proxima troca de banner
    id_banner_current = id_banner_next;

    intervaloBannerMain = setInterval(slideShow, timerBanners);

}

/*
 * Init the listeners 
 * It prepares the the new action for the banner main 
 * 
 */
function initButtonsBannerListeners(){

    $(".bn_button_left").click(function(){

        if(id_banner_next <= 1){
            id_banner_next = num_banners;
        }else{
            id_banner_next--;
        }

        backslideShow();

    });

    $(".bn_button_right").click(function(){

        if(id_banner_next > num_banners){
            id_banner_next = 1;
        }else{
            id_banner_next++;
        }

        nextslideShow();

    });
}

/*
 * Sets the main banner properties.
 * 
 * @param number
 * @param number
 *
 */
function setSizeMainBanner(alt, larg){
    $(".mn_banner_container").css("height", alt + "px");       
    $(".mn_banner_container").css("width", larg + "px");
}

/*
 * Loads a new banner.
 * 
 * @param number
 *
 */
function loadNewBanner(nextBn){
    
    var idObject = nextBn -1;
        
    var items_sc = "";            
    items_sc  = "<div id='banner_loader"+nextBn+"'>";
    items_sc += "<div class='canvas_stage"+bannerObject[idObject]['id']+"'></div>";
    items_sc += "</div>";
    $("#banner_main_support").append(items_sc);  
         
    addBannerHTML(bannerObject[idObject]['cool'], bannerObject[idObject]['id']);
    setSizeMainBanner(bannerObject[idObject]['altura'], bannerObject[idObject]['largura']);
        
}

/*
 * Loads a new banner.
 * 
 * @param number
 *
 */
function createNewBannersVariables(banners_object){
    bannerObject = eval('(' + banners_object + ')');
}
