/**
 * Informações sobre este arquivo
 *
 * Arquivo: janelaAnimada.js
 *
 * Responsável por armazenar o programa da Janela Animada.
 *
 * Este arquivo faz parte do sistema MrCMS
 *
 * Nota: Este arquivo não é opensource, não pode ser alterado sem o consentimento do autor, não pode ser distribuído e utilizado fora de um sistema produzido por: Murilo Rocha :: Internet & Serviços.
 *
 * @author Murilo Rocha <contato@murilorocha.com.br>
 * @copyright Copyright (C) 2009, Murilo Rocha :: Internet & Serviços
 * @link http://www.murilorocha.com.br
 * @version 1.0
 */

// Variáveis globais do script
var divFundo = null;
var divInterno = null;
// Realiza a chamada dos blocos que compõe a janela
function chamaJanela()
{
    var mensagemPadrao;
    var imagemPadrao;
    /* Abaixo - Mensagem e imagem padrão da janela */
    mensagemPadrao = 'Carregando...'; // Mensagem
    imagemPadrao = 'modelos/padrao/imagens/carregando.gif'; // Imagem
    /* Acima - Mensagem e imagem padrão da janela */
    document.write('<div id="janelaFundo"><div id="janelaInterna"><div id="tituloInterna"><p id="tituloJanelaInterna"></p><a class="botaoFecharJanela" tabindex="1" href="javascript:fechaInterno();"></a></div><img id="imagemInterna" src="'+ imagemPadrao +'" title="'+ mensagemPadrao +'" alt="'+ mensagemPadrao +'"><p id="descricaoImagemJanela"></p></div></div>');
}
// Realiza os procedimentos iniciais para abertura da janela
function abreJanela(tituloJanela,imagemJanela,descricaoImagem)
{
    // Pré-carrega as imagens de fechamento da janela
    img1= new Image(); 
    img1.src="modelos/padrao/imagens/fechar_n.jpg";
    img2= new Image(); 
    img2.src="modelos/padrao/imagens/fechar_h.jpg";
    // Inicia as variáveis para início da janela
    divInterno = document.getElementById('janelaInterna');
    divFundo = document.getElementById('janelaFundo');
    divInterno.style.display = 'none';  
    divFundo.style.display = 'block';
    divFundo.style.height = '0px'; 
    divInterno.style.height = '0px';
    document.getElementById('descricaoImagemJanela').style.display = 'none';  
    document.getElementById('imagemInterna').style.display = 'none';
    document.getElementById('tituloInterna').style.display = 'block';   
    document.getElementById('imagemInterna').src = imagemJanela;
    document.getElementById('imagemInterna').alt = tituloJanela;
    document.getElementById('imagemInterna').title = tituloJanela;
    document.getElementById('tituloJanelaInterna').innerHTML = tituloJanela;
	document.getElementById('descricaoImagemJanela').innerHTML = descricaoImagem;
	document.body.style.overflow='hidden';
    document.body.scroll = 'no';
    // Inicia a função de abertura do fundo principal
    abreFundo();
}
// Realiza a exibição do bloco do fundo de maneira animada e a chamada do bloco interno
function abreFundo()
{
    var alturaMaxima;
    var tempoAberturaFundo;
    var tempoChamadaInterna;
    var quantidadeAumento;
    /* Abaixo - Variáveis de controle do bloco do fundo e interno */
    alturaMaxima = 100; // Altura máxima em porcentagem
    tempoAberturaFundo = 20; // Tempo em milissegundos para abrir o fundo
    tempoChamadaInterna = 1000; // Tempo em milissegundos para chamar o bloco interno
    quantidadeAumento = 1; // Numero da porcentagem que será exibida a cada chamada da função
    /* Acima - Variáveis de controle do bloco do fundo e interno */
    if(parseInt(divFundo.style.height) < alturaMaxima)
    {
        divFundo.style.height = parseInt(divFundo.style.height)+quantidadeAumento+'%';
        setTimeout(abreFundo,tempoAberturaFundo);
    }
    else
    {
        setTimeout(janelaInterna,tempoChamadaInterna);
    }  
}
// Realiza a chamada da exibição e animação do bloco interno
function janelaInterna()
{
    divInterno.style.display = 'block';
    abreInterno();
}
// Realiza a exibição de maneira animada do bloco interno
function abreInterno()
{
    var alturaMaxima;
    var tempoAbertura;
    var quantidadeAumento;
    /* Abaixo - Variáveis de controle do bloco interno */
    alturaMaxima = 570; // Altura máxima em pixels
    tempoAbertura = 25; // Tempo em milissegundos para abrir o bloco
    quantidadeAumento = 10; // Numero da porcentagem que será exibida a cada chamada da função
    /* Acima - Variáveis de controle do bloco interno */
    if(parseInt(divInterno.style.height) < alturaMaxima)
    {
        divInterno.style.height = parseInt(divInterno.style.height)+quantidadeAumento+'px';
        setTimeout(abreInterno,tempoAbertura);
    }
    else
    {
        document.getElementById('imagemInterna').style.display = 'block';
		document.getElementById('descricaoImagemJanela').style.display = 'block';
    }
}
// Realiza a animação de fechamento do bloco interno e chama o fechamento do bloco externo
function fechaInterno()
{
    var alturaMinima;
    var tempoFechamento;
    var quantidadeDiminuicao;
    /* Abaixo - Variáveis de controle do bloco interno */
    alturaMinima = 0; // Altura mínima em pixels
    tempoFechamento = 25; // Tempo em milissegundos para fechar o bloco
    quantidadeDiminuicao = 10; // Numero da porcentagem que será fechada a cada chamada da função
    /* Acima - Variáveis de controle do bloco interno */
    document.getElementById('imagemInterna').style.display = 'none';
    document.getElementById('tituloInterna').style.display = 'none';
	document.getElementById('descricaoImagemJanela').style.display = 'none';
    if(parseInt(divInterno.style.height) > alturaMinima)
    {
        divInterno.style.height = parseInt(divInterno.style.height)-quantidadeDiminuicao+'px';
        setTimeout(fechaInterno,tempoFechamento);
    }
    else
    {
        divInterno.style.display = 'none';
        fechaFundo();
    }
}
// Realiza o fechamento do bloco do fundo
function fechaFundo()
{
    var alturaMinima;
    var tempoFechamentoFundo;
    var quantidadeDiminuicao;
    /* Abaixo - Variáveis de controle do bloco do fundo */
    alturaMinima = 0; // Altura mínima em porcentagem
    tempoFechamentoFundo = 20; // Tempo em milissegundos para fechar o fundo
    quantidadeDiminuicao = 1; // Numero da porcentagem que será fechada a cada chamada da função
    /* Acima - Variáveis de controle do bloco do fundo */
    if(parseInt(divFundo.style.height) > alturaMinima)
    {
        divFundo.style.height = parseInt(divFundo.style.height)-quantidadeDiminuicao+'%';
        setTimeout(fechaFundo,tempoFechamentoFundo);
    }
    else
    {
        divFundo.style.display = 'none';
		document.body.style.overflow='visible';
        document.body.scroll = 'yes';
    }  
}
