﻿/* **************************************************************
		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 xjs_isApplicationXml = true; // BOOLEAN --> Se Requisições Assincronas devem Retornar XML
var RequestConfig = new objXmlHttpRequestConfig();  // OBJECT 
var XmlHttp = new objXmlHttpRequest(RequestConfig);  // OBJECT 




// 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');

	// Carrega CSS para Safari
	if(xDoc.userBrowser == 'Safari') { xDoc.loadCSS('../../css/browsers/styles-safari.css'); }

	// Se for um Layout Vazado Ajusta Divs
	if(xjs_isLayoutVazado == true) { layoutVazado(); }

	// Aplica Iframe Em Nodes Com a Classe Definida
	if(xDoc.userBrowser == 'IE'&& xDoc.userBrowserVersion == '6'){
		xIEsupport = new XHtmlIESupport('ie6IFrame');
		xIEsupport.iframeNodesParent = xGet.get('div.iFrame');
		xIEsupport.setIframe();
		
		arrLastChilds = new Array();
		indexLC = 0;
		arrLastChilds[indexLC] = xGet.get('#boxMenuPrincipal li:last-child'); indexLC++;
		try { arrLastChilds[indexLC] = xGet.get('.menuAuxiliar ul li:last-child')[0]; indexLC++; } catch(e) { }
		try { tempNode = xGet.get('.boxListaResposta div>ul>li:last-child'); if(tempNode != null)  { arrLastChilds[indexLC] = tempNode; indexLC++; } } catch(e) { }
		try { arrLastChilds[indexLC] = xGet.get('.boxListaNoticias ul li:last-child')[0]; indexLC++; } catch(e) { }
		
		xIEsupport.setLastChildPseudoClass(arrLastChilds);
	}


	/* --- Espaço para Adição de Novos Scripts --- */
	setMenuPrincipal();
	setTableClass();
	setTableProgramacao();
	/* --- // ----------------------------- // --- */

    // 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 --- */
	/* --- // ----------------------------- // --- */


	// 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 setMenuPrincipal() {
	liMenuPrincipal = xGet.get('#boxMenuPrincipal li');

	strSession = xDoc.pageSessionName;
	switch(strSession)
	{
		case 'sobre' : liMenuPrincipal[0].className = 'set'; break;
		case 'equipe' : liMenuPrincipal[1].className = 'set'; setMenuAuxiliar(strSession); break;
		case 'exames' : liMenuPrincipal[2].className = 'set'; break;
		case 'noticias' : liMenuPrincipal[3].className = 'set'; break;
		case 'informativo' : liMenuPrincipal[4].className = 'set'; break;
		case 'mulher' : liMenuPrincipal[5].className = 'set'; setMenuAuxiliar(strSession); break;
		case 'contato' : liMenuPrincipal[6].className = 'set'; setMenuAuxiliar(strSession); break;
	}
};


function setMenuAuxiliar(strSession) {
	strPageName = xDoc.pageNamePage;
	liMenuAuxiliar = xGet.get('.menuAuxiliar li');

	switch(strSession) 
	{
		// Veja Também
		case 'equipe' : liMenuAuxiliar[0].className = 'set'; break;
		case 'contato' : liMenuAuxiliar[2].className += ' set'; break;
		// Veja Mais em Mulher
		case 'mulher' : 
			switch(strPageName) 
			{
				case 'Atividade.aspx' : liMenuAuxiliar[0].className = 'set'; break;
				case 'Programacao.aspx' : liMenuAuxiliar[1].className = 'set'; break;
				case 'Historico.aspx' : liMenuAuxiliar[2].className = 'set'; break;
				case 'Resultados.aspx' : liMenuAuxiliar[3].className = 'set'; break;
				case 'Entidades.aspx' : liMenuAuxiliar[4].className = 'set'; break;
				case 'Palestrantes.aspx' : liMenuAuxiliar[5].className = 'set'; break;
				case 'Premios.aspx' : liMenuAuxiliar[6].className = 'set'; break;
				case 'Premios_Detalhe.aspx' : liMenuAuxiliar[6].className = 'set'; break;
				case 'Fotos_e_Videos.aspx' : liMenuAuxiliar[7].className = 'set'; break;
			}
		break;
		
	}
};



function setTableClass() {
	allTables = xGet.get('.boxTexto table');

	// Havendo Tabelas dentro de .boxTexto
	if(allTables != null) {
		
		// Para Cada Tabela Encontrada
		for(i=0; i<allTables.length; i++) {
			// Resgata Conjunto de TRs
			nodes = allTables[i].getElementsByTagName('tr');

			// Aplica First-Child para IE 6
			if(xDoc.userBrowser == 'IE'&& xDoc.userBrowserVersion == '6'){ xIEsupport.setFirstChildPseudoClass(nodes[0]); }
			
			// Para Cada TR Alem da Primeira aplica Classes Par e Impar
			for(j=1; j<nodes.length; j++) {
				index = j + 1;
				if(index % 2 != 0) { nodes[j].className = 'impar'; }
				else { nodes[j].className = 'par'; }
			}
		}
	}
};




function setTableProgramacao() {
	allTables = xGet.get('.boxProgramacao table');

	// Havendo Tabelas dentro de .boxTexto
	if(allTables != null) {
		
		// Para Cada Tabela Encontrada
		for(i=0; i<allTables.length; i++) {
			// Resgata Conjunto de TRs
			nodes = allTables[i].getElementsByTagName('tr');

			// Para Cada TR Alem da Primeira aplica Classes Par e Impar
			for(j=0; j<nodes.length; j++) {
				index = j + 1;
				if(nodes[j].className == '') {
				    if(index % 2 != 0) { nodes[j].className = 'impar'; }
				    else { nodes[j].className = 'par'; }
				}
			}
		}
	}
};



function setVideoInModal(srcVideo, idTarget) {
	srcVideo = srcVideo.replace('&amp;', '&');
	flashConceitual = new objFlash(srcVideo);
	flashConceitual.setObject('Video', '', 'Radimagem', '559', '300');
	flashConceitual.showFlash(idTarget, true);
};


function setSelectFiltro(obj) {
    vall = obj.value;
    
    if(vall != '') { window.location = xDoc.pageNamePage + '?filtro=' + vall; }
    else { window.location = xDoc.pageNamePage; }
}


function moveTo(index) { window.location = '../exames/Exames.aspx?classe=' + index; };


function sendNewsLetter() {
    
    var formContato = new objFormValidation();

    var isSend = 0;
    formContato.addField(xGet.get('#inputModalNome'), 'isEmpty', 'Nome');
    formContato.addField(xGet.get('#inputModalEmail'), 'isEmail', 'Email');
    formContato.addField(xGet.get('#inputModalFone'), 'isEmpty', 'Fone');
    formContato.addField(xGet.get('#selectModalPais'), 'isSelected', 'Pais');
    
    if(xGet.get('#selectModalPais').value == 'Brasil') {
        formContato.addField(xGet.get('#selectModalEstado'), 'isSelected', 'Estado');
    }

    isOk = formContato.checkForm();    
    
    if(isOk == false) { return false; }
    else {
        strParam = 'save=true';
        strParam += '&nome=' + xGet.get('#inputModalNome').value;
        strParam += '&email=' + xGet.get('#inputModalEmail').value;
        
        if(xGet.get('#radioModalMasculino').checked == true) { strParam += '&genero=m'; }
        else { strParam += '&genero=f'; }
        
        strParam += '&fone=' + xGet.get('#inputModalFone').value;
        strParam += '&pais=' + xGet.get('#selectModalPais').value;
        if(xGet.get('#selectModalPais').value == 'Brasil') {
            strParam += '&estado=' + xGet.get('#selectModalEstado').value;
        }
        
        showHideModal('show', 'divModal', 'ModalNewsletter', strParam);
        
    }
}