﻿/* **************************************************************
		INICIAR OBJETOS E VARIAVEIS PRINCIPAIS
************************************************************** */



// Objetos Básicos
var xGet = new XHtmlGet(); // OBJECT 
var xDoc = new XHtmlDocument(); // OBJECT 
var xIEsupport = null; // OBJECT 
// Requisições Assíncronas
var RequestConfig = new objXmlHttpRequestConfig();  // OBJECT 
var XmlHttp = new objXmlHttpRequest(RequestConfig);  // OBJECT 
var xjs_isApplicationXml = true; // BOOLEAN --> Se Requisições Assincronas devem Retornar XML


// Configuração dos Objetos e Eventos
var xjs_IDPrincipal = 'divPrincipal'; // STRING --> ID do container principal da Tela
var xjs_isLayoutVazado = false; // BOOLEAN --> Use 'true' Para Layouts Vazados, configure a function 
var xjs_resizeDelay = 200; // INTEGER --> Delay entre cada Operação do Evento OnResize [milessegundos]
var xjs_onEndResize = null; // Variavel de Cotrole do Evento OnResize
var xjs_newWindowMimeType = 'doc,docx,xls,xlsx,pdf'; // STRING --> Extensão de Arquivos que Abrirão em outra janela


// PlugIn Flash Player
var xjs_isFlashSuport = xDoc.isFlashPlayer(); // BOOLEAN -> Se Há ou Não Suporte ao Flash no Browser
var xjs_GetFlashLink = document.createElement('a');
	xjs_GetFlashLink.href = 'http://www.adobe.com/go/getflash/';
	xjs_GetFlashLink.innerHTML = 'Get Adobe Flash Player';


// Layout - Modal
var xjs_isModalOpen = false; // BOOLEAN --> Se Modal está Aberto Ou Não
var xjs_IDModalOpen = null; // STRING --> Nome da ID do Modal que Está Aberto no Momento
var xjs_ModalOnLoadH = 100; // INTEGER --> Altura Padrão Minima Para o Modal
var xjs_ModalOnLoadW = 200; // INTEGER --> Largura Padrão Minimo Para o Modal
var xjs_ModalY = 'middle'; // 'middle' ou INTEGER --> Distancia que o Modal deve ser Colocado do Topo
var xjs_ModalX = 'middle'; // 'middle' ou INTEGER --> Distancia que o Modal deve ser Colocado da Esquerda
var xjs_ModalErrorMessage = 'Aconteceu um erro ao carregar esta janela e ela será fechada';
var xjs_isModalDebug = true; // BOOLEAN --> se true, mostra mensagens técnicas de erro.



/* **************************************************************
	FORMULÁRIOS 

	- Métodos de Validação
	isEmpty			- Se Input está Vazio
	isData			- Se é uma Data
	isEmail			- Se é um E-mail
	isLink			- Se é um Link
	isSelected		- Se Select está Selecionado
	isRadioSelect	- Se Algum Radio Button da Coleção
	isCheckSelect	- Se Algum CheckBox da Coleção
	isCPF			- Se é um CPF 
	isCNPJ			- Se é um CNPJ
************************************************************** */
var xjs_LastKeyDown = null; // INTEGER -> Armazena Código da Última Tecla Pressionada Pelo Usuário
var xjs_isMonitoreEnter = false; // BOOLEAN --> Se Tecla Enter Está Sendo Moniturada [se true, dispara evento definido]
var xjs_isExecuteOnEnter = false; // BOOLEAN -> Se Enter Deve Ou Não Disparar Evento Pré Definido ExecuteOnEnter


// Configuração do Objeto de Validação de Formulários
var xjs_DateSpace = '.'; // Completa a Mascada de data identificando o seu separador
var xjs_DefaultFieldString = '*?*'; // String que será trocada nas mensagens pelo nome do campo
var xjs_DefaultTitleAlert = 'Foram encontrados os seguintes erros:';
var xjs_DefaultEmptyInput = 'O Campo *?* deve ser preenchido.';
var xjs_DefaultWrongValue = 'O Campo *?* está incorreto.';
var xjs_DefaultNotSelected = 'Escolha uma das Opções do Campo *?*.';











/* **************************************************************
	ONLOAD
- Seta thisPage com propriedades da Pagina atual
- Adiciona Links Externos
- Adiciona Evento Link Hover
- Se browser for IE Anexa Javascripts Auxiliares
************************************************************** */
function executeOnLoad(){
	xDoc.InitiUserAgentInformation(); // Resgata Informações do User Agent
	xDoc.InitiPageInformation(); // Resgata Informações da Pagina Atual
	xDoc.GetPageDimensions(xjs_IDPrincipal); // Resgata Informações das Dimensões da Tela Atual
	xDoc.docIsLoad = true; // Informa que o Documento foi Carregado Completamente
	xDoc.setTargetBlank();
	xDoc.setImgChangeOnOver('xDoc');

	// Se for um Layout Vazado Ajusta Divs
	if(xjs_isLayoutVazado == true) { layoutVazado(); }


	/* --- Espaço para Adição de Novos Scripts --- */
	/* --- // ----------------------------- // --- */

    // Variavel Usada para Concatenar Métodos Adicionados 'On demannd'
	if(onLoadExecuteThis != '') { eval(onLoadExecuteThis); }
};
onload = executeOnLoad;
var onLoadExecuteThis = '';




/* **************************************************************
	ONRESIZE
- Atualiza propriedades da Pagina atual
- Se modal estiver aberto, redimensiona a 'sombra' e respectivo	iframe(IE6)
************************************************************** */
function executeOnResize(){ 
	if(xjs_onEndResize == null) { 
		xDoc.GetPageDimensions('divPrincipal');
		// Só executa Os Scripts Abaixo ao Final de determinado Prazo. Isto evita o excesso de chamadas do IE à Este método
		xjs_onEndResize = setTimeout('executeOnResizeEnd()', xjs_resizeDelay);
	}
};
/* Adicione aqui Ações a Serem Executadas ao Final do OnResize */ 
function executeOnResizeEnd() {
	// Se for um Layout Vazado Ajusta Divs
	if(xjs_isLayoutVazado == true) { layoutVazado(); }
	// Se modal está Aberto, reposiciona Shadow e o Próprio Modal
	if(xjs_isModalOpen == true) { showHideShadow('show'); setModalCoords(); }
	// Recalcula Dimensão de Iframe Em Nodes Com a Classe Definida
	//if(xDoc.userBrowser == 'IE'&& xDoc.userBrowserVersion == '6'){ xIEsupport.resizeIframes(); }
	

	/* --- Espaço para Adição de Novos Scripts --- */
	setFlashPosition();
	/* --- // ----------------------------- // --- */


	// Variavel Usada para Concatenar Métodos Adicionados 'On demannd'
	if(onResizeExecuteThis != '') { eval(onResizeExecuteThis); }
	xjs_onEndResize = null;
};
onresize = executeOnResize;
var onResizeExecuteThis = '';





/* **************************************************************
	ONKEYDOWN
	- Ao final do ato de pressionar uma tecla, o código correspondente
	à mesma fica 'assinado' na variavel 'xDoc.lastKeyDown'
************************************************************** */
function executeOnKeyDown(e) {
	xDoc.getKeyCode(e);
	if(xjs_isExecuteOnEnter == true && xjs_LastKeyDown == 13){ ExecuteOnEnter(); }
};
document.onkeydown = executeOnKeyDown;





/* **************************************************************
	ONKEYPRESS
- Inibe o Som Produzido pelo IE ao Pressionar Enter
************************************************************** */
function executeOnKeyPress() {
    if(xjs_isMonitoreEnter == true){ if(xDoc.userBrowser == 'IE' && xjs_LastKeyDown == 13) { return false; } }
};
document.onkeypress = executeOnKeyPress;





/* **************************************************************
	ONMOUSEDOWN
- Percebe quando o Mouse for Clicado
************************************************************** */
function executeOnMouseDown() {};
document.onmousedown = executeOnMouseDown;





/* **************************************************************
	ONMOUSEUP
- Percebe quando o Mouse for Clicado
************************************************************** */
function executeOnMouseUp() {};
//document.onmouseup = executeOnMouseUp;















/* **************************************************************
Declaração de javascripts especifícos
************************************************************** */
function setFlashPosition() {
    divF = xGet.get('#divFlash');
    xDoc.setNodePosition(divF, 'CenterV', '', '');
};


function fadeButtons(strInOut) {
    nodepag = xGet.get('#divPaginacao');
    if (strInOut == 'in') { xGet.DisplayBlock(); }
    else if (strInOut == 'out') { xGet.DisplayNone(); }
};


function setImageOnLoad() {
    imgAtual = document.getElementById('imgModal');
    imgH = imgAtual.clientHeight;

    // Seta Imagem Centralmente no Eixo Vertical
    topImage = (540 - imgH) / 2;
    imgAtual.style.top = topImage + 'px';

    imgAtual.style.visibility = 'visible';
    // Seta Altura dos Botões da Paginação
    dif = ((522 - imgH) / 2);
    nTop = imgH + dif - 5;
    nodepag = document.getElementById('divPaginacao');
    nodepag.style.top = nTop + 'px';
};


/* **************************************************************
                        Scripts para Slide
************************************************************** */
var moveAction = null;
var windowSlide = 770; // Largura total da janela de Slide
var picsW = 68; // Largura total visivel das Imagens
var picsH = 66; // Altura total visival das Imagens
var picsMargin = 10; // Margem entre cada Imagem



function showHideSlide(obj, target) {
    hideAllSlides();
    obj.className = 'set';
    document.getElementById(target).style.display = 'block';
    setWSlides();
};

function hideAllSlides() {
    allH2 = xGet.get('#divGaleria ul li h2');
    for (i = 0; i < allH2.length; i++) { allH2[i].className = 'unset'; }

    allSlides = xGet.get('#divGaleria ul li .boxSlide');
    for (i = 0; i < allSlides.length; i++) { allSlides[i].style.display = 'none'; }
};

function setWSlides() {
    allSlides = xGet.get('#divGaleria ul li .slide');
    for (i = 0; i < allSlides.length; i++) {
        getAllImages = allSlides[i].getElementsByTagName('img');
        allSlides[i].style.width = ((getAllImages.length * (picsW + picsMargin))) + 'px';
    }

    allImages = xGet.get('#divGaleria ul li .slide div img');
    for (i = 0; i < allImages.length; i++) {
        imgH = allImages[i].height;
        imgW = allImages[i].width;


        if (imgH < picsH && picsW < imgW) { }
        else {
            difH = imgH - picsH;
            difW = imgW - picsW;
            topo = 0;
            left = 0;

            if (difH > 0) { topo = (difH / 2) * -1; }
            else { topo = (difH / 2) * -1; }

            if (difW > 0) { left = (difW / 2) * -1; }
            else { left = parseInt((difW / 2) * -1); }

            allImages[i].style.top = topo + 'px';
            allImages[i].style.left = left + 'px';
        }
    }
};




function slideToLeft(idName) {
    if (moveAction == null) {
        obj = document.getElementById(idName); moveAction = setInterval("slideMove(obj, 'left')", 5); 
    }
};
function slideToRight(idName) {
    if (moveAction == null) {
        obj = document.getElementById(idName); moveAction = setInterval("slideMove(obj, 'right')", 5); 
    }
};
function stopSlide() { clearInterval(moveAction); moveAction = null; };


function slideMove(obj, side) {
    atualLeft = obj.style.left.replace('px', '');

    if (side == 'left') {
        atualLeft = atualLeft - 5;
        slideW = obj.style.width.replace('px', '');
        maxL = slideW - windowSlide;
        if (maxL < 0) { atualLeft = 0; }
        else if (atualLeft < (maxL * -1)) { atualLeft = (maxL * -1); }
    }
    else if (side == 'right') {
        atualLeft++; atualLeft++; atualLeft++; atualLeft++; atualLeft++;
        if (atualLeft > 0) { atualLeft = 0; }
    }

    obj.style.left = atualLeft + 'px';
};
