// remap jQuery to $
(function($){})(window.jQuery);


/* trigger when page is ready */
$(document).ready(function() {

    target = $("#conteudo");
    moduloAtual = "inicio";

    $(window).trigger('hashchange');
});

$.ajaxSetup({
    // Disable caching of AJAX responses
    cache: false
});
/* optional triggers

$(window).load(function() {
	
});


*/





var moduloAtual;
var caseCarregar;
var target;
var randomizar = false;
var tempoTransicao = 500;

$(window).bind('hashchange', function(e) {

    // Get the hash (fragment) as a string, with any leading # removed. Note that
    // in jQuery 1.4, you should use e.fragment instead of $.param.fragment().
    var url = $.param.fragment();
    
    _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
    
    if (url.toLowerCase() != moduloAtual && url) {

        if (!target.length) { target = $("#conteudo"); }
        caseCarregar = "";
        randomizar = false;
        switch (url.toLowerCase()) {
            case "info":
                trocaModulo(carregaInfo);
                ativaMenu($("#linkInfo"));
                break;


            case "inicio":
                trocaModulo(carregaInicio);
                ativaMenu($("#logo"));
                break;
            case "cases":
                randomizar = true;
                trocaModulo(carregaCases);
                ativaMenu($("#linkCases"));
                break;
            default:
                if (url.length > 0) {
                    if (url.toLowerCase().indexOf("case-") >= 0) {
                        caseCarregar = url.toLowerCase();
                        carregaCase();
                    }
                }
                break;
        }
        moduloAtual = url.toLowerCase();
    }



});

// Coloca o efeito de loading no elemento alvo
function mostraLoading(tar) {
    if (tar.length) {
        tar.append('<div class="loadingScreen"><img src="images/loader.gif" alt=""/></div>')
    }
}

function removeLoading(tar) {
    if (tar.length) {
        $(".loadingScreen", tar).remove();
    }
}

function ativaMenu(clicado) {
    $(".clicado").removeClass("clicado");
    if (clicado.length) {
        clicado.addClass("clicado");
        clicado.blur();
    }
}

function mostraConteudo() {
    target.fadeIn(tempoTransicao);
    removeLoading(target.parent());
}

function carregaInfo() {
    mostraLoading(target.parent());
    target.hide();
    target.load("getInfo.aspx",mostraConteudo);
}

function carregaCases() {
    mostraLoading(target.parent());
    target.hide();
    target.load("getCases.aspx", initCases);
}

function initCases() {
    
        mostraConteudo();
        $(".submenuHeader").click(
        function() {
            $(".caseClicado").removeClass("caseClicado");
            $(".submenuHeader").removeClass("caseClicado");
            $(this).addClass("caseClicado");
            $(".submenu", $(this).parent()).slideToggle(tempoTransicao);
        });
        if (randomizar) {
            var i = Math.floor(Math.random() * $("#cases a").length);
            if (i >= $("#cases a").length) { i = $("#cases a").length - 1; }

            var url = $("#cases a").get(i);

            window.location.hash = url.hash;

            //$(window).trigger('hashchange');
        }
        
}

function carregaCasesEspecial() {
    mostraLoading(target.parent());
    target.load("getCases.aspx", mostraConteudoEspecial);
}
function mostraConteudoEspecial() {
    target.fadeIn(tempoTransicao, carregaCase);
    removeLoading(target.parent());
    $(".submenuHeader").click(
        function() {
            $(".caseClicado").removeClass("caseClicado");
            $(".submenuHeader").removeClass("caseClicado");
            $(this).addClass("caseClicado");
            $(".submenu", $(this).parent()).slideToggle(tempoTransicao);
        });
}

function carregaInicio() {
    $("#inicio").fadeIn(tempoTransicao, startSlideShow);
    resumeSlideShow();
}

function carregaCase() {
    // verifica se os cases estão carregados
    if ($("#cases").length) {

        mostraLoading($("#conteudocase .ct"));
        $("#conteudocase").load("getCase.aspx?m=" + caseCarregar, initCase);
        $(".caseClicado").removeClass("caseClicado");
        $("#_" + caseCarregar).addClass("caseClicado");
        $("#_" + caseCarregar).blur();

        var submenu = $("#_" + caseCarregar).parent().parent();
        if (submenu.length) {
            if (submenu.hasClass("submenu")) {
                if (!submenu.is(':visible')) {
                    submenu.slideToggle();
                }
                
                var header = $(".submenuHeader", submenu.parent());
                if(!header.hasClass("caseClicado")){
                    header.addClass("caseClicado");
                }
            }
        }
        
    } else {
        trocaModulo(carregaCasesEspecial);
    }
}


function trocaModulo(callBackCarregar) {

    pauseSlideShow();
    switch (moduloAtual) {
        case "info":
            target.fadeOut(tempoTransicao, callBackCarregar);
            break;
        case "cases":
            target.fadeOut(tempoTransicao, callBackCarregar);
            break;
        case "inicio":
            pauseSlideShow();
            $("#inicio").fadeOut(tempoTransicao, callBackCarregar);
            
            //thisCanvas.fadeOut(tempoTransicao, callBackCarregar);
            break;
        default:
            if ($("#cases").length) {
                $("#cases").fadeOut(tempoTransicao, callBackCarregar);
            }
            callBackCarregar;
            break;
    }
}

var cts;
var indiceCTS;
function initCase() {
    cts = new Array();
    indiceCTS = 0;
    $(".ct").each(function() {
        cts.push($(this));
    });
    if (cts.length > 0) {
        for (var i = 0; i < cts.length; i++) {
            cts[i].hide();
        }
        mostraCTS(indiceCTS);

        $("#caseTotalPaginas").html(cts.length);
        $("#casePaginaAtual").html(indiceCTS + 1);
        
        $(".texto .setaAvanca").css("height", $(".setaAvanca").parent().height());
        $(".texto .setaRetrocede").css("height", $(".setaRetrocede").parent().height());

        $(".setaAvanca").click(function() { avancaCTS(); });
        $(".setaRetrocede").click(function() { retrocedeCTS(); });

        $(".ct").click(function() { avancaCTS(); });

    }
}

function avancaCTS() {
    if (indiceCTS + 1 < cts.length) {
        indiceCTS++;
    } else {
        indiceCTS = 0;
    }
    mostraCTS(indiceCTS);
}
function retrocedeCTS() {
    if (indiceCTS > 0) {
        indiceCTS--;
    } else {
        indiceCTS = cts.length - 1;
    }
    mostraCTS(indiceCTS);
}
function mostraCTS(indice) {
    $(".ct").fadeOut(tempoTransicao);
    cts[indice].fadeIn(tempoTransicao);
    $("#casePaginaAtual").html(indice + 1);
    mostraSocial();
    
    if (indiceCTS == 0) {
        $(".titulo").hide();
    } else {
        $(".titulo").show();
    }
}

function mostraSocial() {
    $(".social").css("top", cts[indiceCTS].height());
    $(".social").show();
}
































































////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SLIDESHOW
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var widthFinal, heightFinal, xis, yp, imageAtual;

function initBackground() {
    var imageInicial = new Image();
    imageInicial.onload = function() {
        draw(this);
        imageAtual = this;
        setLegenda("Materiais impressos", "Clientes diversos", "2008-2011");
        initLoader();
    }
    imageInicial.src = "animacao/Bizu-0.jpg"
    
}

var timeoutFade;

function draw(image){
    if (ctx != null) {
        ctx.globalAlpha = ctx.globalAlpha + 0.05;
        ctx.drawImage(image, xis, yp, widthFinal, heightFinal);


        if (ctx.globalAlpha < 1)
            timeoutFade = setTimeout(function() {
                draw(imageAtual);
            }, 20);
        
    }
}

function setLegenda(trabalho, cliente, ano) {
    var targetTrabalho = $("#nomeTrabalho");
    var targetCliente = $("#nomeCliente");
    var targetAno = $("#anoTrabalho");

    if (targetTrabalho.length && trabalho) {
        targetTrabalho.html(trabalho);
        targetTrabalho.show();
    } else {
        targetTrabalho.hide();
    }

    if (targetCliente.length && cliente) {
        targetCliente.html(cliente);
        targetCliente.show();
    } else {
        targetCliente.hide();
    }

    if (targetAno.length && ano) {
        targetAno.html(ano);
        targetAno.show();
    } else {
        targetAno.hide();
    }
    
}

var baseWidth = 1793;
var baseHeight = 1200;
function calcParametros() {

    var scale = canvasHeight / baseHeight;

    widthFinal = baseWidth * scale;

    if (widthFinal < canvasWidth) {
        scale = canvasWidth / baseWidth;
        widthFinal = canvasWidth;
        heightFinal = baseHeight * scale;
    } else {
        heightFinal = canvasHeight;
    }

    xis = (canvasWidth - widthFinal) / 2;
    yp = (canvasHeight - heightFinal) / 2;
    
}
var sources 
function initLoader() {
    sources = [
            ['animacao/Bizu-0.jpg', 'Materiais impressos', 'Clientes diversos', '2008-2011'],
            ['animacao/Bizu-01.jpg', 'Projeto gr&aacute;fico revista Serafina', 'Folha de S. Paulo', '2008'],
            ['animacao/Bizu-1.jpg', 'Sinaliza&ccedil;&atilde;o galeria Fiesp ', 'FILE ', '2011'],
            //['animacao/Bizu-2.jpg', 'Impressos, embalagem e camisetas', 'Clientes diversos', '2007-2011'],
            ['animacao/Bizu-3.jpg', 'Livros e cat&aacute;logos', 'Clientes diversos', '2008-2011'],
            ['animacao/Bizu-4.jpg', 'Jornal mensal para colaboradores', 'Allianz Seguros', '2011'],
            ['animacao/Bizu-5.jpg', 'Comunica&ccedil;&atilde;o visual Avenida Paulista', 'FILE PAI', '2011'],
            ['animacao/Bizu-6.jpg', 'Kit para corretores', 'Allianz Seguros', '2011'],
            ['animacao/Bizu-7.jpg', 'Sinaliza&ccedil;&atilde;o galeria Oi Futuro', 'FILE RIO', '2010'],
            ['animacao/Bizu-8.jpg', 'Bloquinhos de anota&ccedil;&otilde;es', 'BIZU', '2011'],
            ['animacao/Bizu-9.jpg', 'Press Kit Simplicity Event','Philips do Brasil','2008'],
            //['animacao/Bizu-10.jpg', 'Comunica&ccedil;&atilde;o visual Avenida Paulista', 'FILE PAI', '2011'],
            //['animacao/Bizu-13.jpg', 'Cartaz e livreto','Festival M&uacute;sica Nova','2010'],
            ['animacao/Bizu-14.jpg', 'Comunica&ccedil;&atilde;o visual Avenida Paulista', 'FILE PAI', '2011'],
            ['animacao/Bizu-15.jpg', 'Revista para corretores e cartazes comunica&ccedil;&atilde;o interna', 'Allianz Seguros', '2010-2011'],
            ['animacao/Bizu-16.jpg', 'Livro FILE Games RIO','FILE','2009'],
            ['animacao/Bizu-17.jpg', 'Comunica&ccedil;&atilde;o visual Avenida Paulista', 'FILE PAI', '2011'],
            ['animacao/Bizu-19.jpg', '','BIZU, entrada','2011'],
            ['animacao/Bizu-20.jpg', '','BIZU, est&uacute;dio','2010'],
            ['animacao/Bizu-21.jpg', '', 'Fita adesiva com vista da varanda', '2011']];
        
        
    loadImages(sources);
}

function updateLoader() {
    loadedImages++;
    if(loadedImages >= numImages){
        initSlideshow();
    }
}

function pauseSlideShow() {
    clearInterval(controlador);
    controlador = null;
    flag = false;
}

function startSlideShow() {
    if(controlador == null && flag && imagesLoaded) {
        controlador = setInterval(nextImage, 4000);
        flag = true;
    }
}

function resumeSlideShow() {
    flag = true;
    startSlideShow();
}

var currentImageIndex;
var controlador;
var flag = true;
var imagesLoaded = false;
function initSlideshow() {
    currentImageIndex = 0;
    imagesLoaded = true;
    startSlideShow();
}

function nextImage(){
    currentImageIndex++;
    
    if(currentImageIndex >= numImages) currentImageIndex = 0;

    imageAtual = images[currentImageIndex];
    ctx.globalAlpha = 0;
    clearTimeout(timeoutFade);
    draw(imageAtual);
    setLegenda(sources[currentImageIndex][1], sources[currentImageIndex][2], sources[currentImageIndex][3]);
}


$(function() {
    SetupCanvas();
    if (ctx != null) {
        $(window).resize(ResizeCanvas);
    }
    initBackground();
    /*var sources = {
        darthVader: "animacao/_DSC0038.JPG",
        yoda: "animacao/_DSC0039.JPG"
    };

    loadImages(sources, function() {
        //alert("asd");
        ctx.drawImage(images.darthVader, 0, 0);
        ctx.drawImage(images.yoda, 350, 55, 93, 104);
    });*/
});


var thisCanvas, ctx, canvasHeight, canvasWidth;
function SetupCanvas() {
    thisCanvas = $('#myCanvas')[0];

    if (thisCanvas && thisCanvas.getContext) {
        ctx = thisCanvas.getContext('2d');
        ResizeCanvas();
    }
}

function ResizeCanvas() {
    canvasWidth = $(window).width();
    canvasHeight = $(window).height() - 129; //$("header").outerHeight();
    
    calcParametros();
    
    $(thisCanvas).attr("height", canvasHeight);
    $(thisCanvas).attr("width", canvasWidth);

    //ctx.globalCompositeOperation = "lighter";

    if (imageAtual != null) draw(imageAtual);
}

var loadedImages = 0;
var images = new Array();
var numImages = 0;
function loadImages(sources) {
    
    numImages = sources.length;
    
    for (var i = 0; i < numImages; i++) {
        var nova = new Image();
        nova.onload = function() {
            updateLoader();
        };
        nova.src = sources[i][0];
        images.push(nova);
    }
}

