var TIMER;
var INIT_TIME;
var LAST_TIME;
var UPDATE_TIME;
var FIRST_IMAGE;

var imagemAtual = 0;
var imagens = [{
    elemento: "body",
    caminho: "fotos/bg-body.jpg",
    tamanho: window.screen.width + 'x' + window.screen.height,
    corte: "smart",
    mascara: "#mascara-body"
}];

function redimensionaMascara(elemento){
    var larTotal = 0;
    var altTotal = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        larTotal = window.innerWidth;
        altTotal = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        larTotal = document.documentElement.clientWidth;
        altTotal = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        larTotal = document.body.clientWidth;
        altTotal = document.body.clientHeight;
    }
    var mascara = $(elemento);
    var maskHeight = altTotal;
    var maskWidth = larTotal;
    mascara.css({'width':maskWidth,'height':maskHeight});
}
function controleCarregamento(){
    if (FIRST_IMAGE == true) imagens.reverse(); // invertendo a ordem do array para o bg ser sempre o último
    if (imagens.length > imagemAtual){
        if (FIRST_IMAGE == true || (imagens[imagemAtual - 1]['exibida'] == true && (LAST_TIME - INIT_TIME > UPDATE_TIME * 1000))){
            FIRST_IMAGE = false;
            var iAtual = imagens[imagemAtual++];
            carregarImagem(iAtual['elemento'], iAtual['mascara'], iAtual['caminho'], iAtual['tamanho'], iAtual['corte']);
            //esses objetos DATE são para a diff de time entre os slides...
            INIT_TIME = new Date();
			LAST_TIME = new Date();
        }else{
            LAST_TIME = new Date();
        }
    }else{
        window.clearInterval(TIMER);
    }
    //para atualizar o modal caso o usuário redimensione a janela do navegador antes da imagem de fundo ser carregada
    redimensionaMascara("#mascara-body");
    redimensionaMascara("#mascara-corpo");
}

function carregarImagem(elemento, mascara, imagem, tamanho, corte){
    $.post("/snug/ajax-imagem/", {
        'tamanho': tamanho,
        'imagem': imagem,
        'corte': corte
    }, function(src){
        var img = new Image();
        $(img).load(function () {
            $(this).hide();
            $(elemento).css("backgroundImage","url("+src+")");
            $(this).remove();
            $(mascara).fadeOut(750);
            imagens[imagemAtual - 1]['exibida'] = true;
        }).error(function () {}).attr({'src': src});
    });
}

$(document).ready(function () {
    $('#destaque li').hover(function(){
        $(this).parent().find('.imagem').stop().animate({opacity: '0.4'}, 500);
        $(this).find('.imagem').stop().animate({opacity: '1'}, 500);
    }, function(){
        $(this).parent().find('.imagem').stop().animate({opacity: '1'}, 1000);
    })
	
    TIMER = window.setInterval(controleCarregamento, 10);
    INIT_TIME = new Date();
    LAST_TIME = new Date();
    UPDATE_TIME = 1;
    FIRST_IMAGE = true;
});
