﻿/* -----------------------------------------------------------
		AEON Development Kit [ ADK 1.0 ]
CopyRight		: AEON Digital
Programadora	: Rhianna Cantarelli Schellin
Data			: 17/10/2008 [ Inicio do Projeto ]
Secção			: Bibliotéca Javascript [ 1.0 ]
----------------------------------------------------------- */







/* -----------------------------------------------------------
	Variáveis Públicas 
----------------------------------------------------------- */
var xvar_IDBoxPrincipal = '#boxPrincipal';				// STRING	--> ID do container principal da Tela
var xvar_ResizeDelay = 200;								// INTEGER	--> Delay entre cada Operação do Evento OnResize [milessegundos]
var xvar_OnEndResize = null;							// OBJECT	--> Armazena Eventos para Serem Disparados Ao terminar um Evento OnResize
var xvar_ImgSufixHover = '_hover';						// STRING	--> Sufixo 'hover' das Imagens Cambeáveis
var xvar_ImgSufixNoHover = '_nhover';					// STRING	--> Sufixo 'nohover' das Imagens Cambeáveis
var xvar_NewWindowMimeType = 'doc,docx,xls,xlsx,pdf';	// STRING --> Extensão de Arquivos que Abrirão em outra janela
var xvar_IsIeVersion = 'none';							// INTEGER  --> Se for diferente de 'none' então representará a versão do browser IE




/* -----------------------------------------------------------
	VALIDAÇÃO DE FORMULÁRIOS 

	form_1 = new xDocFormsValidation(formNodeID);
	form_1.CheckForm();

	- Classes de Controle de Validação
	xIsEmpty		- Se Campo está Vazio
	xIsData			- Se é uma Data
	xIsEmail		- Se é um E-mail
	xIsLink			- Se é um Link
	xIsSelected		- Se Select está Selecionado
	xIsRadioSelect	- Se Algum Radio Button da Coleção Selecionado
	xIsCheckSelect	- Se Algum CheckBox da Coleção
	xIsCPF			- Se é um CPF 
	xIsCNPJ			- Se é um CNPJ
----------------------------------------------------------- */
var xvar_LastKeyDown = null;							// INTEGER	--> Código da Ultima tecla Pressionada

// Configuração do Objeto de Validação de Formulários
var xvar_DateSpace = '/';								// Completa a Mascada de data identificando o seu separador
var xvar_DefaultFieldString = '*?*';					// String que será trocada nas mensagens pelo nome do campo
var xvar_DefaultTitleAlert = 'Foram encontrados os seguintes erros:';
var xvar_DefaultEmptyInput = 'O Campo "*?*" deve ser preenchido.';
var xvar_DefaultWrongValue = 'O Campo "*?*" está incorreto.';
var xvar_DefaultNotSelected = 'Escolha uma das Opções do Campo "*?*".';




/* -----------------------------------------------------------
	VARIAVEIS DE COMPONENTES

	TOOLTIP
----------------------------------------------------------- */	
var xvar_IDToolTip = '#ToolTip';						// ID do Node do componente ToolTip
var xvar_ToolTipX = 15;									// Coordenada 'X' de posicionamento
var xvar_ToolTipY = 15;									// Coordenada 'Y' de posicionamento










/* -----------------------------------------------------------
	ONLOAD
----------------------------------------------------------- */
function executeOnLoad() {
	xvar_IsIeVersion = $('html').css('filter');

	AnchorAnimation();
	LinkToAnotherPage();
	SetImgChangeOnOver();
	SetHistoryAnchor();
	SetAnchorModal();
	SetToolTip();


	/* --- Espaço para Adição de Novos Scripts --- */
	if ($.xdoc.section == 'home') {
	    nc = nRandom(1, 4);
	    cName = 'conceitual_0' + nc;
	    $('#boxConceitual').addClass(cName);
	}
	$('.boxListaClientes a span').alignToCenter('y');
	SetAnchorModal2();
	/* --- // ----------------------------- // --- */


	// Se for IE6 Chama Suporte
	if(xvar_IsIeVersion == '6') { ie6Suport(); }

	// Variavel Usada para Concatenar Métodos Adicionados 'On demannd'
	if(onLoadExecuteThis != '') { eval(onLoadExecuteThis); }
};
$(document).ready(executeOnLoad);
var onLoadExecuteThis = '';




/* -----------------------------------------------------------
	Ajustes para IE6
----------------------------------------------------------- */
function ie6Suport() {
	SetHoverSupportForIE6('.bltSubMenu');
	$('.boxTexto table tr:first-child').addClass('first-child');
	$('.boxListaPortfolio div.line div:first-child').addClass('first-child');
	$('.isDocuments .allLine ul li:last-child').addClass('last-child');
};






/* -----------------------------------------------------------	
	ONRESIZE
----------------------------------------------------------- */
function executeOnResize(){ 
	// Só executa Os Scripts Abaixo ao Final de determinado Prazo. Isto evita o excesso de chamadas do IE à Este método
	xvar_OnEndResize = setTimeout('executeOnResizeEnd()', xvar_ResizeDelay);
};
function executeOnResizeEnd() {
    if($('#boxShadow').css('display') == 'block') {
        $('#boxShadow').extendNode('screen', '#boxBottom');
		$.modal.Modal_SetPosition();
    }
	/* --- Espaço para Adição de Novos Scripts --- */
	/* --- // ----------------------------- // --- */

	// Variavel Usada para Concatenar Métodos Adicionados 'On demannd'
	if(onResizeExecuteThis != '') { eval(onResizeExecuteThis); }
	xvar_OnEndResize = null;
};
$(window).resize(executeOnResize);
var onResizeExecuteThis = '';







/* -----------------------------------------------------------	
	ONKEYDOWN
	- Ao final do ato de pressionar uma tecla, o código correspondente
	à mesma fica 'assinado' na variavel 'xvar_LastKeyDown'
----------------------------------------------------------- */
function executeOnKeyDown(e) {
	if (window.event) { xvar_LastKeyDown = window.event.keyCode; }
	else if (e) { xvar_LastKeyDown = e.which; }
};
$(window).keydown(executeOnKeyDown);




















/* -----------------------------------------------------------	
	AJUSTES PARA MODAIS
	- Estas Funções são Executadas assim que o conteudo da requisição assincrona é lido e inserido no DOM.
	- Todas as Funções devem ter o nome composto pelo prefixo "ModalAdjust_" e o nome do tipo de ajuste.
	- Para evocar cada ajuste basta adicionar seus nomes após o atributo 'modal'
	nas declarações 'rel' de cada <a> que faz requisião assincrona.
	Ex: <a href="somepage.htm" rel="modal imagegalery">abrir</a>
----------------------------------------------------------- */
function SetAnchorModal2() {
    allBtn = $('a[rel*="modal"] img');

    for (i = 0; i < allBtn.length; i++) {
        btnSrc = allBtn[i].src;
        if (btnSrc.indexOf('btn_downloads') != -1 || btnSrc.indexOf('btn_galeria_de_fotos') != -1) {
            if (btnSrc.indexOf('.gif') != -1) {
                $(allBtn[i]).mouseover(function() { this.src = this.src.replace('.gif', '_on.gif'); });
                $(allBtn[i]).mouseout(function() { this.src = this.src.replace('_on.gif', '.gif'); });
            }
            else if (btnSrc.indexOf('.png') != -1) {
                $(allBtn[i]).mouseover(function() { this.src = this.src.replace('.png', '_on.png'); });
                $(allBtn[i]).mouseout(function() { this.src = this.src.replace('_on.png', '.png'); });
            }
        }
    }
};



function ModalAdjust_imagegalery() {
	$.modal.aeon_NodeReference = '#modalImagem';
	$.modal.Modal_AnimateShow();
};

function ModalAdjust_downloaddocs() {
    if (xvar_IsIeVersion == '6') { $('#ModalBody .allLine ul li:last-child').addClass('last-child'); }
    $.modal.Modal_SetAndShow();
    LinkToAnotherPage();
};

function ModalAdjust_clientes() { $.modal.Modal_SetAndShow(); };
function ModalAdjust_portfolio() { $.modal.Modal_FadeTransition(); };
function ModalAdjust_mapa() {
    $('#ModalBody').css('width', '620px');
    $.modal.Modal_SetAndShow();     
};
















function sobrecargas_change() {
	var sIndex = document.getElementById('sobrecargas').selectedIndex;			
	var arrSet;

	switch (sIndex) {
	    case 0:
	        arrSet = new Array('');
	        break;
	    case 1:
	        arrSet = new Array('7,28', '8,40', '9,53', '10,66', '12,65', '11,44', '13,33', '11,92', '13,67', '14,99', '15,77', '17,32');
	        break;
	    case 2:
	        arrSet = new Array('6,86', '7,88', '8,92', '10,12', '11,98', '10,98', '12,77', '11,24', '13,23', '14,53', '15,28', '16,77');
	        break;
	    case 3:
	        arrSet = new Array('6,36', '7,45', '8,43', '9,66', '11,41', '10,58', '12,28', '10,65', '12,83', '13,86', '14,84', '16,27');
	        break;
	    case 4:
	        arrSet = new Array('5,87', '7,04', '8,01', '9,27', '10,92', '10,02', '11,84', '10,15', '12,22', '13,22', '14,43', '15,81');
	        break;
	    case 5:
	        arrSet = new Array('5,49', '6,57', '7,65', '8,84', '10,38', '9,51', '11,39', '9,71', '11,70', '12,66', '14,06', '15,40');
	        break;
	    case 6:
	        arrSet = new Array('5,16', '6,18', '7,32', '8,38', '9,84', '9,07', '10,86', '9,33', '11,23', '12,17', '13,73', '15,01');
	        break;
	    case 7:
	        arrSet = new Array('4,89', '5,86', '6,93', '7,98', '9,37', '8,68', '10,40', '8,99', '10,82', '11,73', '13,28', '14,52');
	        break;
	    case 8:
	        arrSet = new Array('4,46', '5,34', '6,32', '7,33', '8,61', '8,04', '9,62', '8,40', '10,12', '10,98', '12,43', '13,59');
	        break;
	    case 9:
	        arrSet = new Array('4,12', '4,94', '5,84', '6,82', '8,01', '7,52', '9,00', '7,92', '9,53', '10,36', '11,72', '12,82');
	        break;
	    case 10:
	        arrSet = new Array('3,85', '4,62', '5,46', '6,40', '7,52', '7,09', '8,49', '7,51', '9,04', '9,83', '11,12', '12,16');
	        break;
	    case 11:
	        arrSet = new Array('3,63', '4,35', '5,14', '6,05', '7,10', '6,72', '8,05', '7,16', '8,62', '9,37', '10,61', '11,60');
	        break;
	    case 12:
	        arrSet = new Array('3,44', '4,12', '4,88', '5,75', '6,75', '6,41', '7,68', '6,85', '8,25', '8,97', '10,16', '11,11');
	        break;
	    case 13:
	        arrSet = new Array('3,28', '3,93', '4,65', '5,49', '6,45', '6,14', '7,35', '6,58', '7,92', '8,62', '9,76', '10,67');
	        break;
	    case 14:
	        arrSet = new Array('3,14', '3,76', '4,45', '5,27', '6,19', '5,90', '7,06', '6,34', '7,63', '8,31', '9,41', '10,29');
	        break;
	    case 15:
	        arrSet = new Array('2,85', '3,42', '4,04', '4,80', '5,64', '5,40', '6,47', '5,34', '7,03', '7,66', '8,67', '9,30');
	        break;
	    case 16:
	        arrSet = new Array('2,63', '3,16', '3,73', '4,45', '5,22', '5,01', '6,00', '5,44', '6,55', '7,14', '8,08', '8,08');
	        break;
	    case 17:
	        arrSet = new Array('2,46', '2,95', '3,48', '4,16', '4,88', '4,70', '5,62', '5,11', '6,16', '6,71', '7,14', '7,14');
	        break;
	    case 18:
	        arrSet = new Array('2,31', '2,77', '3,13', '3,92', '4,55', '4,43', '5,31', '4,84', '5,82', '6,35', '6,40', '6,40');
	        break;
	    case 19:
	        arrSet = new Array('2,09', '2,50', '2,55', '3,54', '3,72', '4,02', '4,81', '4,40', '5,30', '5,30', '5,30', '5,30');
	        break;
	    case 20:
	        arrSet = new Array('1,92', '2,15', '2,15', '3,15', '3,15', '3,70', '4,21', '4,06', '4,85', '4,52', '4,52', '4,52');
	        break;
	    case 21:
	        arrSet = new Array('1,78', '1,86', '1,86', '2,73', '2,73', '3,45', '3,66', '3,79', '4,23', '3,94', '3,94', '3,94');
	        break;
	    case 22:
	        arrSet = new Array('1,63', '1,63', '1,63', '2,40', '2,40', '3,23', '3,23', '3,57', '3,74', '3,49', '3,49', '3,49');
	        break;
	    case 23:
	        arrSet = new Array('1,46', '1,46', '1,46', '2,15', '2,15', '2,90', '2,90', '3,36', '3,36', '3,14', '3,14', '3,14');
	        break;
	    case 24:
	        arrSet = new Array('1,32', '1,32', '1,32', '1,94', '1,94', '2,62', '2,62', '3,05', '3,05', '2,85', '2,85', '2,85');
	        break;
	}

	sVaos = document.getElementById('vaos_livres');
	for (i = 0; i < arrSet.length; i++) {
	    sVaos[i+1].text = arrSet[i];
	}
	sVaos[0].selected = true;

	document.getElementById('designacao').value = '';
	document.getElementById('altura').value = '';
	document.getElementById('largura').value = '';
	document.getElementById('pesom').value = '';
	document.getElementById('pesom2').value = '';
	document.getElementById('concreto').value = '';
};

function vaos_livres_change() {
	if(document.getElementById('sobrecargas').selectedIndex == 0) { 
		alert('Selecione a Sobrecarga'); 
		document.getElementById('vaos_livres')[0].selected = true;
	}
	else {
		var sIndex = document.getElementById('vaos_livres').selectedIndex;			
		var arrSet;
	
		switch(sIndex) {
			case 0:
    			arrSet = new Array('');
	    		break;
			case 1:
		    	arrSet = new Array('L12', '12', '120', '240', '200', '3');
			    break;
			case 2:
			    arrSet = new Array('L12S', '12', '120', '240', '200', '3');
			    break;
			case 3:
			    arrSet = new Array('L12SS', '12', '120', '240', '200', '3');
			    break;
			case 4:
			    arrSet = new Array('L16', '16', '120', '300', '250', '4');
			    break;
			case 5:
			    arrSet = new Array('L16S', '16', '120', '300', '250', '4');
			    break;
			case 6:
			    arrSet = new Array('L20', '20', '120', '370', '310', '5,5');
			    break;
			case 7:
			    arrSet = new Array('L20S', '20', '120', '370', '310', '5,5');
			    break;
			case 8:
			    arrSet = new Array('L24', '24', '120', '500', '420', '6,5');
			    break;
			case 9:
			    arrSet = new Array('L24S', '24', '120', '500', '420', '6,5');
			    break;
			case 10:
			    arrSet = new Array('L28', '28', '120', '510', '425', '8');
			    break;
			case 11:
			    arrSet = new Array('L28S', '28', '120', '510', '425', '8');
			    break;
			case 12:
			    arrSet = new Array('L28SS', '28', '120', '510', '425', '8');
			    break;        }
		
		document.getElementById('designacao').value = arrSet[0];
		document.getElementById('altura').value = arrSet[1];
		document.getElementById('largura').value = arrSet[2];
		document.getElementById('pesom').value = arrSet[3];
		document.getElementById('pesom2').value = arrSet[4];
		document.getElementById('concreto').value = arrSet[5];
	}
};



function SetSWFHome() {
	var flashvars = {};
	var params = {};
	var attributes = {};

	params.wmode = 'transparent';
	swfobject.embedSWF('../../swf/fundo_home.swf', 'targetFlash', '972', '494', '9.0.0', '../../swf/swfObjectExpressInstall.swf', flashvars, params, attributes);
};




function nRandom(numMenor, numMaior) {
    var numPossibilidades = numMaior - numMenor;
    num = Math.random() * numPossibilidades;
    num = Math.floor(num);
    return parseInt(numMenor) + num;
};