/*
 * GLOBAIS
 */
var GSSI 					= new ClassGSSI();
var GSSI_VELOCIDADE_FADE	= 500; /* velocidade do efeito de fadeIn, em milisegundos */
var GSSI_VELOCIDADE_SLIDE	= 200; /* velocidade do efeito de slide, em milisegundos */
var GSSI_MAXIMO_CARACTERES	= 400; /* maximo que pode ser digitado no textarea de fale conosco */

/*
 * CLASSE GSSI
 * Classe que tem como único objetivo outras classes
 */
function ClassGSSI(){

	// geral
	this.geral = new ClassGeral();
	
	// abas
	this.abaImprimir = new ClassAbaImprimir();
	this.abaPDF = new ClassAbaPDF();
	this.abaEmail = new ClassAbaEmail();
	this.abaCitar = new ClassAbaCitar();
	this.abas = new ClassAbas();
	this.abaCompartilhar = new ClassAbaCompartilhar();
	this.carregarFlash = new ClassCarregarFlash();

	// paginas
	this.home = new ClassHome();
	this.artigo = new ClassArtigo();
	this.hidratacao = new ClassHidratacao();
	this.boxAcompanhe = new ClassBoxAcompanhe();
	this.cadastro = new ClassCadastro();
	this.fale = new ClassFale();	
	this.ferramenta = new ClassFerramenta();
	this.sobreTour = new ClassSobreTour();
	this.carregaSobreMundo = new ClassSobreMundo();
	this.sobreHist = new ClassSobreHist();
	this.autoCompleate = new ClassAutoCompleate();
}



//Valida os campos de qualquer formulario de cadastro
//adicione o atributo 'required="true"' no INPUT a ser validado
function validaCampos() {
	var sucesso = true;
	
	sucesso &= validaTipoCampo("input");
	sucesso &= validaTipoCampo("select");
	sucesso &= validaTipoCampo("textarea");
	
	return sucesso;
}

function validaTipoCampo(fieldType){
	var sucesso = true;
	
	var fields = $(fieldType).get();
	alert("teste");
	
	for (var i=0; i < fields.length; i++) {
		
		var field = $("#"+fields[i].id);
		var fieldValue = field.val();
		fieldValue = fieldValue.replace(/^\s+/, '');
		fieldValue = fieldValue.replace(/\s+$/, '');
		
		// valida @
		if(field.attr("name")=="email")
		{
			fieldValue = (fieldValue.indexOf("@")==-1 ? null : fieldValue);
		}
		
		if (field.attr("required") == "true" && (fieldValue == null || fieldValue == "") ) {
			sucesso = false;
			field.addClass("erro");
		}
	}
	return sucesso
}

/*
 * CLASSE GERAL
 * Classe que agrupa métodos de categorias variadas
 */
function ClassGeral() {
 	// metodos publicos
	this.init = init;
	this.imprimir = imprimir;
	this.alternarMaisOpcoes = alternarMaisOpcoes;

	// Metodo que chama outros metodos de inicializacao do site
	function init() {
		try {
			// inicializa contador de caracteres
			GSSI.fale.contarCaracteres();

			// definicao de quais links chamam o lightbox
			$('#linkFale').simpleDialog();
			$('#linkCadastro').simpleDialog();
			$('.linkCadastroExtra').simpleDialog();
			$('#linkFaleFooter').simpleDialog();
			$('#linkCadastroFooter').simpleDialog();
			$('#linkCadastroExtraId').simpleDialog();
			$('#linkRecomendaPrincipal').simpleDialog();
			$('#linkRecomenda').simpleDialog();
			
		} catch (e) {
			//alert('Erro ao iniciar javascript: ' + e.description);
		}
	}
	
	// envia artigo alterado para a impressora
	function imprimir() {
		window.print();
	}
	
	// oculta/exibe aba de filtragem de busca
	function alternarMaisOpcoes () {
		$("#myslidemenu").toggleClass("hide");
		$("#BordaMenu").toggleClass("hide");
		$("#searchText").toggleClass("exibeBorda");
		$("#botoesheadermenu").toggleClass("exibeBorda");
		$("#subMenuBusca").toggleClass("hide");
		$("#subMenuBuscaBordaDireita").toggleClass("hide");
		$("#subMenuBuscaBordaEsquerda").toggleClass("hide");
	}

}

/*
 * CLASSE HOME
 * Agrupamento dos metodos relacionados com a home
 */
function ClassHome () {

}

/*
 * CLASSE CADASTRO
 * Agrupamento dos metodos relacionados com cadastro do usuario
 */
function ClassCadastro () {

	// metodos publicos
	this.enviar = enviar;

	// envia dados do usuario para validacao 
	function enviar () {
		var sucesso = validaCampos();	
		if(!document.getElementById("fc_deseja").checked && !document.getElementById("fc_naoDeseja").checked)
		{			
				sucesso = false;
				$('#lblDeseja').addClass("erro");
				$('#lblNaoDeseja').addClass("erro");			
		}

		if(!document.getElementById("fc_masculino").checked && !document.getElementById("fc_feminino").checked)
		{			
				sucesso = false;
				$('#lblSexoM').addClass("erro");
				$('#lblSexoF').addClass("erro");			
		}	
		if (sucesso) {
			document.formCadastro.submit();
			window.parent.$("#frameCadastro").removeClass("erro");
			window.parent.$("#frameCadastro").addClass("sucesso");			
			$("#cadastro .antes").hide();
			$("#cadastro .depois").fadeIn(GSSI_VELOCIDADE_FADE);
		} else {
			window.parent.$("#frameCadastro").addClass("erro");		
			$("#cadastro .mensagem.erro").fadeOut(GSSI_VELOCIDADE_FADE/4).fadeIn(GSSI_VELOCIDADE_FADE);
		}

	}		
}

/*
 * CLASSE FALE
 * Agrupamento dos metodos relacionados com o fale conosco
 */
function ClassFale () {

	// metodos publicos
	this.enviar = enviar;
	this.contarCaracteres = contarCaracteres;

	// envia dados do usuario para validacao 
	function enviar () {

		var sucesso = validaCampos();	
		if(!document.getElementById("fc_deseja").checked && !document.getElementById("fc_naoDeseja").checked)
		{			
				sucesso = false;
				$('#lblDeseja').addClass("erro");
				$('#lblNaoDeseja').addClass("erro");			
		}

		if(!document.getElementById("fc_masculino").checked && !document.getElementById("fc_feminino").checked)
		{			
				sucesso = false;
				$('#lblSexoM').addClass("erro");
				$('#lblSexoF').addClass("erro");			
		}		
		if (sucesso) {
			document.formCadastro.submit();
			window.parent.$("#frameFale").removeClass("erro");
			window.parent.$("#frameFale").addClass("sucesso");			
			//$("#fsucesso").show();
			$("#fale .antes").hide();
			$("#fale .depois").fadeIn(GSSI_VELOCIDADE_FADE);
		} else {
			window.parent.$("#frameFale").addClass("erro");		
			$("#fale .mensagem.erro").fadeOut(GSSI_VELOCIDADE_FADE/4).fadeIn(GSSI_VELOCIDADE_FADE);
		}
	}

	// informa quantos caracteres ainda podem ser digitados
	function contarCaracteres() {
		try {
			var digitado = $("#ffc_mensagem").val().length;
			var faltam = GSSI_MAXIMO_CARACTERES - digitado;
			$("#fale li.mensagem .dica em").html(faltam);
			if (faltam < 0) {
				$("#fale li.mensagem .dica em").addClass("negativo");
			}  else {
				$("#fale li.mensagem .dica em").removeClass("negativo");
			}
		} catch (e) {}
	}
}

/*
 * CLASSE ABA IMPRIMIR
 * Agrupamento dos metodos relacionados com a aba imprimir
 */
function ClassAbaImprimir () {

	// metodos publicos
	this.imprimir = imprimir;

	function imprimir (artigoId) {
		window.open("/artigo/"+artigoId+"?impressao=true");
	}
}

/*
 * CLASSE ABA PDF
 * Agrupamento dos metodos relacionados com a aba pdf
 */
function ClassAbaPDF () {

	// metodos publicos
	this.salvar = salvar;

	// salva o pdf 
	function salvar (artigoId) {
		window.open("/generatePdfServlet?execute=generatePDF&artigoId=" + artigoId);
	}		
}


/*
 * CLASSE ABA EMAIL
 * Agrupamento dos metodos relacionados com a aba de email
 */
function ClassAbaEmail () {

	// metodos publicos
	this.enviar = enviar;
	this.alternarAmigo = alternarAmigo;
	this.abrirAbaEmail = abrirAbaEmail;
	
	function abrirAbaEmail()
	{		
		if(document.getElementById("area_email").style.display == "block")
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_email").style.display = "none";
			
		}
		else
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_email").style.display = "block";
			document.getElementById("li_email").className = "email  active";
		}		
	}
	
	// alternar campos do amigo
	function alternarAmigo () {
		if ($("#feae_check").attr("checked")) {
			window.parent.$("#frameAbaEmail").addClass("amigoInvisivel");			
			$("#abaEmail .dadosAmigo").hide();
		} else {
			window.parent.$("#frameAbaEmail").removeClass("amigoInvisivel");
			$("#abaEmail .dadosAmigo").show(); /* neste caso, o fadeIn fica torto no ie8 */ 
		}
	}
	
	// enviar artigo por email
	function enviar () {
		var sucesso = validaCampos();
		if (sucesso) {
			document.formEnviarArtigoEmail.submit();
			window.parent.$("#frameAbaEmail").removeClass("erro");			
			window.parent.$("#frameAbaEmail").addClass("sucesso");
			$("#abaEmail .antes").hide();
			$("#abaEmail .depois").show();
			$("#abaEmail .depois .caso_sucesso").fadeIn(GSSI_VELOCIDADE_FADE);
		} else {
			window.parent.$("#frameAbaEmail").addClass("erro");			
			$("#abaEmail .caso_erro").fadeOut(GSSI_VELOCIDADE_FADE / 4).fadeIn(GSSI_VELOCIDADE_FADE);
		}
	
	}

	function sucesso() {
		window.parent.$("#frameAbaEmail").removeClass("erro");			
		window.parent.$("#frameAbaEmail").addClass("sucesso");
		$("#abaEmail .antes").hide();
		$("#abaEmail .depois").show();
		$("#abaEmail .depois .caso_sucesso").fadeIn(GSSI_VELOCIDADE_FADE);
	}

	function erro() {
		window.parent.$("#frameAbaEmail").addClass("erro");			
		$("#abaEmail .caso_erro").fadeOut(GSSI_VELOCIDADE_FADE / 4);
		$("#abaEmail .caso_erro").fadeIn(GSSI_VELOCIDADE_FADE);
	}
}


function ClassAbas()
{
	this.escondeAbas = escondeAbas;
	
	function escondeAbas()
	{
		document.getElementById("area_email").style.display = "none";
		document.getElementById("area_citar").style.display = "none";
		document.getElementById("area_compartilhar").style.display = "none";
		
		document.getElementById("li_email").className = "email";
		document.getElementById("li_citar").className = "citar";
		document.getElementById("li_compartilhar").className = "compartilhar";
	}
}

function ClassAbaCompartilhar()
{
	this.abrirAbaCompartilhar = abrirAbaCompartilhar;
	
	function abrirAbaCompartilhar()
	{		
		if(document.getElementById("area_compartilhar").style.display == "block")
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_compartilhar").style.display = "none";
			
		}
		else
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_compartilhar").style.display = "block";
			document.getElementById("li_compartilhar").className = "compartilhar  active";
		}		
	}
}

/*
 * CLASSE CITAR
 * Agrupamento dos metodos relacionados com a aba "como citar"
 */
function ClassAbaCitar () {

	// metodos publicos
	this.copiar = copiar;
	this.abrirAbaCitar = abrirAbaCitar;
	
	function abrirAbaCitar()
	{		
		if(document.getElementById("area_citar").style.display == "block")
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_citar").style.display = "none";
			
		}
		else
		{
			GSSI.abas.escondeAbas();
			document.getElementById("area_citar").style.display = "block";
			document.getElementById("li_citar").className = "citar  active";
		}		
	}
	
	// copia citacao para a área de transferência
	function copiar () {
		var sucesso		= false;
		var areaTemp	= $("#artigos #area_de_transferencia")[0];
		var textarea	= $("#artigos div.citar textarea.citacao")[0];
		
		try {
			// copia do textarea para o clipboard
			textarea.focus();
			textarea.select();
			textarea.createTextRange().execCommand("Copy");

			// copia do clipboard para o input hidden
			areaTemp.createTextRange().execCommand('Paste');
			
			// compara ambos para ver se o clipboard realmente foi alterado
			if (areaTemp.value == textarea.value) {
				sucesso = true;
			} else {
				sucesso = false;
			}
			
		} catch (e) {
			sucesso = false;
		}
		if (sucesso) {
			$("#artigos div.citar .caso_sucesso").fadeOut(GSSI_VELOCIDADE_FADE / 4);
			$("#artigos div.citar .caso_sucesso").fadeIn(GSSI_VELOCIDADE_FADE);
		} else {
			$("#artigos div.citar div.citacao").hide();
			$("#artigos div.citar textarea.citacao").addClass("visivel");
			textarea.select();
			$("#artigos div.citar .caso_erro").fadeOut(GSSI_VELOCIDADE_FADE / 4);
			$("#artigos div.citar .caso_erro").fadeIn(GSSI_VELOCIDADE_FADE);
		}
		
	}

}

/*
 * CLASSE ARTIGO
 * Agrupamento dos metodos relacionados com artigos 
 */
function ClassArtigo () {

	// metodos publicos
	this.variarFonte = variarFonte;
	
	// atributos privados
	var _textoTamanho = 4;

	// aumenta ou diminui a fonte do texto
	function variarFonte(opcao){
		var textoTamanhoAntes = _textoTamanho;
		_textoTamanho = (opcao == "+") ? _textoTamanho + 1 : _textoTamanho - 1;   
		
		// se chegou no limite
		if (_textoTamanho > 7 || _textoTamanho < 1) {
			_textoTamanho = textoTamanhoAntes;
			return; 
		}
		
		// remove classe anterior e aplica nova classe
		$("body").toggleClass("textoTamanho" + textoTamanhoAntes);
		$("body").toggleClass("textoTamanho" + _textoTamanho);

	}
	
}

/*
 * CLASSE HIDRATACAO
 * Agrupamento dos metodos relacionados com hidratacao 
 */
function ClassHidratacao () {

	// metodos publicos
	this.manipularFiltro = manipularFiltro;

	// exibe ou oculta barra de filtro
	function manipularFiltro(){
		$("#hidratacao .filtro").toggleClass("encolhido");
		$("#hidratacao .filtro .ocultavel").slideToggle(GSSI_VELOCIDADE_SLIDE);
	}
	
}

/*
 * CLASSE BOX ACOMPANHE
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassBoxAcompanhe () {
	
	// metodos publicos
	this.enviar = enviar;
	
	// envia email
	function enviar(){
		
		var sucesso = validaCampos();

		if (sucesso) {
			document.formAcompanharEmail.submit();
			window.parent.$("#frameBoxAcompanhe").removeClass("erro");
			window.parent.$("#frameBoxAcompanhe").addClass("sucesso");			
			$("#boxAcompanhe .erro").hide();
			$("#boxAcompanhe .antes").hide();
			$("#boxAcompanhe .depois").fadeIn(GSSI_VELOCIDADE_FADE);
		} else {
			window.parent.$("#frameBoxAcompanhe").addClass("erro");		
			$("#boxAcompanhe .mensagem.erro").fadeOut(GSSI_VELOCIDADE_FADE/4).fadeIn(GSSI_VELOCIDADE_FADE);
		}
	}
}

/**
 * Alteração de estado e atualização de combo com cidades..
 * @return
 */
function changeUF() {
	document.formCadastro.execute.value = 'findCidades';
	document.formCadastro.submit();
}

/**
 * Submit de busca.
 * @return
 */
function submitMainForm() {
	window.location.href='/busca/' + document.mainSearchForm.searchText.value;
}

/**
 * Submit de busca.
 * @return
 */
function submitFormBuscaVazia() {
	window.location.href='/busca/' + document.formBuscaVazia.searchText.value;
}

/**
 * Submit de busca.
 * @return
 */
function submitFormBuscaAvancada() {
	var url = '/busca';
	url += '/' + document.advancedSearchForm.searchText.value;
	document.advancedSearchForm.action = url;
	document.advancedSearchForm.submit();
}

function submitFormBuscaHeader() {
	var url = '/busca';
	url += '/' + document.formBusca.searchText.value;
	document.formBusca.action = url;
	document.formBusca.submit();
}

function goPage(page) {
	document.advancedSearchForm.currentPage.value = page;
	document.advancedSearchForm.submit();
}

function goPageSection(page) {
	document.formFiltro.page.value = page;
	document.formFiltro.submit();
}

/*
 * CLASSE FERRAMENTAS
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassFerramenta () {
	
	this.carregaTour = carregaTour;
	
	function carregaTour(area, linkArea)
	{
		escondeAreas();
		$(area).show();
		$(linkArea).addClass("ativo");	
		
	}
	
	function escondeAreas()
	{
		$("#ferramentasTour #boxBoca").hide();
		$("#ferramentasTour #boxEstomago").hide();
		$("#ferramentasTour #boxRins").hide();
		$("#ferramentasTour #boxPulmoes").hide();
		$("#ferramentasTour #boxMusculos").hide();
		$("#ferramentasTour #boxCerebro").hide();
		$("#ferramentasTour #boxPele").hide();
		
		$("#ferramentasTour #linkBoca").removeClass("ativo");
		$("#ferramentasTour #linkEstomago").removeClass("ativo");
		$("#ferramentasTour #linkRins").removeClass("ativo");
		$("#ferramentasTour #linkPulmoes").removeClass("ativo");
		$("#ferramentasTour #linkMusculos").removeClass("ativo");
		$("#ferramentasTour #linkCerebro").removeClass("ativo");
		$("#ferramentasTour #linkPele").removeClass("ativo");
	}
}

/*
 * CLASSE Sobre Tour
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassSobreTour () {
	
	this.carregaTour = carregaTour;
	
	function carregaTour(area)
	{
		escondeAreas();
		$(area).show();	
		
	}
	
	function escondeAreas()
	{
		$("#sobreTour #Esporte").hide();
		$("#sobreTour #Pesquisadores").hide();
		$("#sobreTour #Fisiologia").hide();
		$("#sobreTour #Quimica").hide();
		$("#sobreTour #Rendimento").hide();
		$("#sobreTour #Sensorial").hide();
	}
	this.carregaMenu = carregaMenu;
	
	
	function carregaMenu(area, menuarea)
	{
		EscondeMenu();
		$(area).removeClass("hid");	
		$(menuarea).addClass("ativar");
		
	}
	
	function EscondeMenu()
	{
		$("#hidPesquisadores").addClass("hid");
		$("#hidEsporte").addClass("hid");
		$("#hidFisiologia").addClass("hid");
		$("#hidQuimica").addClass("hid");
		$("#hidRendimento").addClass("hid");
		$("#hidSensorial").addClass("hid");
		
		$("#divMenuPesquisadores").removeClass("ativar");
		$("#divMenuEsporte").removeClass("ativar");
		$("#divMenuFisiologia").removeClass("ativar");
		$("#divMenuQuimica").removeClass("ativar");
		$("#divMenuRendimento").removeClass("ativar");
		$("#divMenuSensorial").removeClass("ativar");
			
	}
}




/*
 * CLASSE Auto Compleate
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassAutoCompleate () {
	
	this.buscar = buscar;
	this.effectiveSearch = effectiveSearch;
	
	var currentSelectedURL = "";
	var timerId = 0;
	var m3_u = (location.protocol == 'https:' ? 'https://'+getHost() : 'http://'+getHost()); 
	var basicUrl = m3_u + "/";  
	var chave;
	
	
	function getHost() {
		var url = window.location.href;	
		var host = url.split('//')[1];	
		url = host.split('/');
		host = url[0];
		return host;
	}
	
	function buscar(param, keyEvent) {
	    var key = (keyEvent == null ? 0 : keyEvent.keyCode);
	   chave = param;
	    
	   // KEY_ENTER
	   if (key == 13 && param != ""){
	     searchParams = param;
	     selectAutoCompleteItem();
	     return;
	   }

	   // KEY_UP || KEY_DOWN
	   if (param.length > 3 && (key == 38 || key == 40)){
	      moveAutoCompleteSelection(key);
	   
	   } else if (key == 27){
	        //$('query').value = '';
	    		$('results').innerHTML = '';
	        $('results').style.visibility = 'hidden';
	        lastParam = '';
	        currentSelectedURL = "";
	        currentSelectPos = -1;
	        return;
	   
	   } else {
	    	clearTimeout (timerId);
	      timerId = setTimeout("GSSI.autoCompleate.effectiveSearch('"+param+"')", 500);
	   }
	}
	
	function selectAutoCompleteItem(){
	    if (currentSelectPos == -1){
	       currentSelectedURL = "/suggestion?word="+ searchParams;
	    }
	    document.location.href = currentSelectedURL;
	}
	

	function moveAutoCompleteSelection(key) {
	    var searchInput = $('query');
	    currentSelectedURL = "";
	    var acSearch = $('acSearchResults');
	    if (acSearch == null) return;

	    var searchResults = acSearch.getElementsByTagName('span');
	    var resultsLength = searchResults.length;
	   
	    if (key == 38){
	       currentSelectPos = currentSelectPos - 1;
	       if (currentSelectPos < 0){
	          currentSelectPos = -1;
	          searchInput.value = searchParams;
	          searchResults[0].parentNode.parentNode.parentNode.parentNode.style.background = defaultItemBGColor;
	          return;
	       }
	    } else if (key == 40){
	       currentSelectPos = currentSelectPos + 1;
	       if (currentSelectPos >= resultsLength){
	          currentSelectPos = resultsLength - 1;
	       }
	    }
	  
	    for (i=0; i<resultsLength; i++) {
	    
	        var resultElem = searchResults[i];
	        
	        var searchRootNode = resultElem.parentNode.parentNode.parentNode.parentNode;
	        
	        if (resultElem != null) { 

	           if (i == currentSelectPos) {
	           
	              var elemLinks = resultElem.getElementsByTagName('a');

	              if (elemLinks != null) {
	                  var link = elemLinks[0];
	                  
	                  if (link.id == 'search_movieTitleLink'){
	                      currentSelectedURL = link.href;
	                      searchInput.value = link.innerHTML;
	                      searchRootNode.style.background = selectedItemBGColor;
	                  }
	              }

	           } else {
	              searchRootNode.style.background = defaultItemBGColor;
	           }
	       }
	    }

	}
	
	function effectiveSearch(param) {
		var qty = 5; 

		param = param.replace(/^\s+|\s+$/g,""); 
		if (param.length > 0){ 

		  searchParams = param;

			var url = "/suggestion?word="+encodeURIComponent(param); 

			var client = new XMLHttpRequest();

			if (window.XMLHttpRequest) {
				client = new XMLHttpRequest();
			} else if (window.ActiveXObject) {
				client = new ActiveXObject("Microsoft.XMLHTTP");
			}
			client.onreadystatechange = handler;
			client.open('GET', url);
			client.send("");
		} else {
			document.getElementById('results').innerHTML = '';
	        document.getElementById('results').style.visibility = 'hidden';
			lastParam = '';
			currentSelectedURL = "";
			currentSelectPos = -1;
		}
	}
	
	function handler() {
		
		 if(this.readyState == 4 && this.status == 200) {
			
		  if(this.responseText != null)
		  {
			  var xml = this.responseText;
			 
				if (xml) 
				{																
					document.getElementById('results').innerHTML = '';
			        document.getElementById('results').style.visibility = 'hidden';
			        
					parseXML(xml);
				} 
				else 
				{
					document.getElementById('results').innerHTML = '';
			        document.getElementById('results').style.visibility = 'hidden';
				  lastParam = '';
				}
		  
		 } else if (this.readyState == 4 && this.status != 200) {
		  // fetched the wrong page or network error...
		 // alert('erro');
		 }
		}
	}


	function parseXML(xml) {
	  try {
	  //Internet Explorer
	    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	    xmlDoc.async="false";
	    xmlDoc.loadXML(xml);
	   
	  } catch(e) {
	     try {
	    //Firefox, Mozilla, Opera, etc.
	      parser=new DOMParser();
	      xmlDoc=parser.parseFromString(xml,"text/xml");
	      
	     } catch(e) {

	      return;
	     }
	  }

	  var item = xmlDoc.getElementsByTagName("Item");
	  var searchResults = "";
	  for (var i=0; i < item.length; i++)
	  { 
	    var elemUrl = item[i].getElementsByTagName("Url")[0].childNodes[0];
	    var elemText = item[i].getElementsByTagName("Text")[0].childNodes[0];
	    
		var url = "";
		var text = "";
		var image = "";
		var description = "";
		try {
		  url = elemUrl.nodeValue;
		} catch (e) {}
		try {
		  text = elemText.nodeValue;
		} catch (e) {}
	
		
			if(url != "" && text != "")
			{
				text = text.replace(chave,"<span style='font: bold; color: #1F5F4A;'>" + chave + "</span>");				
				searchResults = searchResults + "<li><a id='search_movieTitleLink' href='"+ url +"'>"+ text + "</li>";
			}
		}
	  	
		if (searchResults == ""){
			document.getElementById('results').innerHTML = "";
			document.getElementById('results').style.visibility = 'hidden';
			lastParam = '';
			
			if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
				var ieversion=new Number(RegExp.$1);
				
				if (/MSIE 7.0/.test(navigator.userAgent))					
					document.getElementById('myslidemenu').style.zIndex = -1;
			}
		} else {

			document.getElementById('results').innerHTML = searchResults;
			 document.getElementById('results').style.visibility = 'visible';
			 			 		
			if (/MSIE 7.0/.test(navigator.userAgent))					
				document.getElementById('myslidemenu').style.zIndex = -1;
		}
	}
}


//Valida os campos de qualquer formulario de cadastro
//adicione o atributo 'required="true"' no INPUT a ser validado
function validaCampos() {
	var sucesso = true;
	
	sucesso &= validaTipoCampo("input");
	sucesso &= validaTipoCampo("select");
	sucesso &= validaTipoCampo("textarea");
	
	return sucesso;
}

function validaTipoCampo(fieldType){
	var sucesso = true;
	
	var fields = $(fieldType).get();
	
	for (var i=0; i < fields.length; i++) {
		var field = $("#"+fields[i].id);
		var fieldValue = field.val();
		fieldValue = fieldValue.replace(/^\s+/, '');
		fieldValue = fieldValue.replace(/\s+$/, '');
		
		// alteração validacao de email
		if(field.attr("name")=="email")
			fieldValue = (fieldValue.indexOf("@")==-1 ? null : fieldValue);
		
		if (field.attr("required") == "true" && (fieldValue == null || fieldValue == "") ) {
			sucesso = false;
			field.addClass("erro");
		}
	}
	return sucesso;
}

/*
 * CLASSE Sobre Tour
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassSobreHist () {
	
	this.Anterior = Anterior;
	this.Proximo = Proximo;
	this.CarregaConteudo = CarregaConteudo;
	
	function Anterior()
	{
		
		if(document.getElementById("ano85A93").className == "show")
		{
			EscondeAno()
			document.getElementById("ano09").className = "show";
		}
		else if(document.getElementById("ano94A00").className == "show")
		{
			EscondeAno()
			document.getElementById("ano85A93").className = "show";
		}
		else if(document.getElementById("ano01A07").className == "show")
		{
			EscondeAno()
			document.getElementById("ano94A00").className = "show";
		}
		else if(document.getElementById("ano09").className == "show")
		{
			EscondeAno()
			document.getElementById("ano01A07").className = "show";
		}
	}
	
	function Proximo()
	{		
		if(document.getElementById("ano85A93").className == "show")
		{
			EscondeAno()
			document.getElementById("ano94A00").className = "show";
		}
		else if(document.getElementById("ano94A00").className == "show")
		{
			EscondeAno()
			document.getElementById("ano01A07").className = "show";
		}
		else if(document.getElementById("ano01A07").className == "show")
		{
			EscondeAno()
			document.getElementById("ano09").className = "show";
		}
		else if(document.getElementById("ano09").className == "show")
		{
			EscondeAno()
			document.getElementById("ano85A93").className = "show";
		}
		
		
	}
	
	function EscondeAno()
	{
		document.getElementById("ano85A93").className = "hide";
		document.getElementById("ano94A00").className = "hide";
		document.getElementById("ano01A07").className = "hide";
		document.getElementById("ano09").className = "hide";
	}
	
	function CarregaConteudo(ano)
	{
		EscondeTextoAno();
		
		var liAno = "li" + ano;
		var pAno = "p" + ano;
		var valor = document.getElementById(pAno);
		document.getElementById("historia").innerHTML = "<p>" + valor.innerHTML + "</p>";
		
		document.getElementById(liAno).className = "ativo";	
	}
	
	function EscondeTextoAno()
	{
			
		document.getElementById("li1985").className = "";
		document.getElementById("li1988").className = "";
		document.getElementById("li1989").className = "";
		document.getElementById("li1990").className = "";
		document.getElementById("li1991").className = "";
		document.getElementById("li1992").className = "";
		document.getElementById("li1993").className = "";
		document.getElementById("li1994").className = "";
		document.getElementById("li1995").className = "";
		document.getElementById("li1996").className = "";
		document.getElementById("li1997").className = "";
		document.getElementById("li1998").className = "";
		document.getElementById("li1999").className = "";
		document.getElementById("li2000").className = "";
		document.getElementById("li2001").className = "";
		document.getElementById("li2002").className = "";
		document.getElementById("li2003").className = "";
		document.getElementById("li2004").className = "";
		document.getElementById("li2005").className = "";
		document.getElementById("li2006").className = "";
		document.getElementById("li2007").className = "";
		document.getElementById("li2009").className = "";

	}
}


/*
 * CLASSE Sobre Mundo
 * Agrupamento dos metodos relacionados com o box acompanhe
 */
function ClassSobreMundo () {
	
	this.carregaSobreMundo = carregaSobreMundo;
	this.mostraArea		   = mostraArea;
	this.escondeAreas = escondeAreas;
	
	function carregaSobreMundo()
	{
		escondeAreas();
	}

	function mostraArea(area, coordX, coordY){
		var area = $(area);
	
		escondeAreas();
		
		//var coordX = parseFloat($("#coord #x").val()) -155;
		//var coordY = parseFloat($("#coord #y").val()) -15;
		
		
		
		if(/MSIE 6.0/.test(navigator.userAgent))	
		{
			area.css("position", "absolute");
			area.css("z-index",100);
			area.css("left", coordX+"px");
			area.css("top", coordY+"px");
		}
		else
		{
			area.css("float", "right");
			area.css("z-index",100);
			area.css("margin-right", coordX+"px");
			area.css("margin-top", coordY+"px");
		}
		
		area.show();		
	}
	
	function escondeAreas()
	{	
		$("#sobreMundo #linkEUA").hide();
		$("#sobreMundo #linkMexico").hide();
		$("#sobreMundo #linkBrasil").hide();
		$("#sobreMundo #linkAsia").hide();
	}
	
}

function ClassCarregarFlash() {

	this.carregaVideo = carregaVideo;
	this.carregaFlash = carregaFlash;
	this.carregaFlashBody = carregaFlashBody;

	function carregaVideo(caminhoVideo, conteiner)
	{
		var so = new SWFObject("swf/player_video.swf", "player_video", "280", "270", "9", "#FFFFFF");
		so.useExpressInstall('expressinstall.swf');
		so.addParam("menu", "true");
		so.addParam("quality", "high");
		so.addParam("align", "middle");
		so.addParam("scale", "showall");
		so.addParam("wmode", "transparent");
		so.addParam("allowfullscreen", "false");
		so.addParam("menu", "true");
		so.addVariable("srcVideo", caminhoVideo);
		so.write(conteiner);	
	}
	
	function carregaFlashBody(caminhoFlash, conteiner, width, height)
	{		
		var so = new SWFObject("/swf/body_tour_2.swf", "body_tour", width, height, "9", "#000000");
		so.useExpressInstall('expressinstall.swf');
		so.addParam("menu", "true");
		so.addParam("quality", "high");
		so.addParam("align", "middle");
		so.addParam("scale", "showall");
		so.addParam("wmode", "transparent");
		so.addParam("allowfullscreen", "false");
		so.addParam("menu", "false");
		so.addVariable("srcFLV", caminhoFlash);
		so.write(conteiner);
	}
	
	function carregaFlash(caminhoFlash, conteiner, width, height)
	{
		var so = new SWFObject(caminhoFlash, "preloader", width, height, "9", "#000000");
		so.useExpressInstall('expressinstall.swf');
		so.addParam("menu", "true");
		so.addParam("quality", "high");
		so.addParam("align", "middle");
		so.addParam("scale", "showall");
		so.addParam("wmode", "transparent");
		so.addParam("allowfullscreen", "false");
		so.addParam("play","true");		
		so.write(conteiner);	
	}
	
	
}

function GaleriaImgEventos(){

	$.getJSON("/json/eventos.js", function(json){
	
		var l        = $('#thumbs ul'),
			obj      = new Array(),
			url      = location.href.split('/'),
			id_event = url[url.length-2],			html     = '',
			j_length = json.galerias.length;

		
		for(var i=0; i<j_length; i++) json.galerias[i].id==id_event ? obj=json.galerias[i].imgs : '';

		for(var x=0; x<obj.length; x++){
			html += '<li>'+
					'<a href="/img/eventos/' + id_event + '/zoom/' + obj[x] + '.jpg" title="Clique para ampliar">'+
					'<img src="/img/eventos/' + id_event + '/thumb/' + obj[x] + '.jpg" alt="' + obj[x] + '" width="115" height="76" />'+
					'</a>'+
					'</li>';

		};
		
		l.html(html);
		events();
	});

	var events = function(){
		var z        = $('#zoom'),
			l        = $('#thumbs ul'),
			t        = $('#thumbs ul li'),
			q_t      = $('#thumbs ul li').size(),
			h_t      = t.height()+10;
			p        = $('a[rel="prev_thumb"]'),
			n        = $('a[rel="next_thumb"]'),
			obj_a    = new Array();
			limite   = parseInt($('#thumbs ul li').size()-3),
			cont     = 0;

		p.css('opacity',0.4);
			
		n.click(function(){
			if(cont!=limite){
				p.css('opacity')==0.4 ? p.css('opacity',1) : '';
				l.animate({top: '-='+h_t+'px'}, 300);
				cont++;
			}else{
				$(this).css('opacity',0.4);
				return false;
			};
			return false;
		});

		/* desce lista */
		p.click(function(){
			if(cont!=0){
				n.css('opacity')==0.4 ? n.css('opacity',1) : '' ;
				l.animate({top: '+='+h_t+'px'}, 300);
				cont--;
			}else{
				$(this).css('opacity',0.4);
				return false;
			};
			return false;
		});
		
		/* primeiro zoom */
		z.attr('src',$('#thumbs ul li:eq(0) a').attr('href'));
		
		/* chama zoom */
		for(var a=0; a<q_t; a++){
			$('#thumbs ul li:eq('+a+') a').click(function(){
				var h = $(this).attr('href');					
				z.attr('src',h);
				return false;
			});
		};
	};
};
//FIM DA  GALERIA


/**
* Inicializa as funções assim que os elementos (DOM) são carregados
* @author André Machado <andre.machado@agenciaclick.com.br>
*/
jQuery(function() {GSSI.geral.init();});