function validaForm(form)
{
	var email =form.email;
	var confirma_email =form.confirma_email; 
	if(form.email.value == form.confirma_email.value)
	{
		if(!valida(form)){
			return(false);
		}
	}
	else{			
		alert('A confirmação do email não está correta!');
		return(false);			
	}
}

function valida(form){
				
	for (i=0;i<form.length;i++)
	{
		var obg = form[i].obrigatorio;
		if (obg==1)
		{
			if (form[i].value == "")
			{
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
			else if(form[i].value == "0")
			{
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
		}
	}
	return true
}

function checarEmail(email){
	var valor = email.value;
	if (valor != ""){
	    if(valor.indexOf("@") == -1 || valor.indexOf(".") == -1 || valor == ""){
	    	alert("Insira um e-mail valido!");
	    	email.focus();
	    	
	    }
	}
}

function AbrirLink(url){
	if (url!=null){
	window.open(url);
	}
}

function SomenteNumero(e)
{ 
	var key;

	if (window.event) 
	{
		key = event.keyCode;
	}
	else
	{ 
		key = e.which;
	}

	if(key > 47 && key < 58 || key == 8 || key == 0)
	{
		return; 
	}
	else
	{
		if(window.event)
		{
			window.event.returnValue = null; 
		}
		else 
		{
			e.preventDefault();
		}
	}
}

function Mascara(src, mask) 
{
	 var i = src.value.length;
	 var saida = mask.substring(0,1);
	 var texto = mask.substring(i)
	 if (texto.substring(0,1) != saida) 
	 {
		  src.value += texto.substring (0,1);
	 }
}

function maxLength(textAreaField, limit) {
	if (textAreaField.value.length > limit) {
		alert("Numero de caracteres excedeu o limite em "+(textAreaField.value.length-limit)+" caracter(es)");
		textAreaField.focus();
	}
}

function validaIntervaloDatas(inicio, fim)
{
	var dataMinima = fgSplitString(inicio.value, '/');
	var dataMaxima = fgSplitString(fim.value, '/');
	
	var dataMin = new Date();
	var dataMax = new Date();
	
	var mesMin = dataMinima[1] -1;
	var mesMax = dataMaxima[1] -1;
	
	dataMin.setFullYear(dataMinima[2],mesMin,dataMinima[0]);
	dataMax.setFullYear(dataMaxima[2],mesMax,dataMaxima[0]);
	
	if(dataMin > dataMax)
	{
		alert('ATENCAO: Data minima maior que data maxima!')
		return(false);
	}	
	  return(true);	
}

function validaPeriodoDatas(inicio, fim, numDias)
{
	var dataMinima = fgSplitString(inicio.value, '/');
	var dataMaxima = fgSplitString(fim.value, '/');

	var dataMin = new Date();
	var dataMax = new Date();

	var mesMin = dataMinima[1] -1;
	var mesMax = dataMaxima[1] -1;

	dataMin.setFullYear(dataMinima[2],mesMin,dataMinima[0]);
	dataMax.setFullYear(dataMaxima[2],mesMax,dataMaxima[0]);

	var one_day=1000*60*60*24
	var dias = new Date(); 
	dias = dataMax - dataMin;
	dias = dias / one_day;
	if(dias > numDias)
	{
		alert('ATENCAO: Para utilizar um intervalo de datas superior a '+numDias+ ' dias, é necessário informar outro campo de filtro.');
		return(false);
	}	
	  return(true);	
}

/*
 * '[======================================================================================
 * '[= Nome : fgSplitString '[= Descrição : Divide a string por um separador
 * dado, retornando um array com os valores. '[= Entrada : psString - String a
 * ser dividida '[= psDivider - Divisor '[= Saida : Array com os items '[=
 * Exemplo : aryRetorno = fgSplitString(text16.value, "/"); '[= OBS :
 * '[======================================================================================
 */
function fgSplitString(psString, psDivider)
{
	/*
	 * * Conta o número de ocorrências do separador para saber quantos elementos
	 * terá o Array.
	 */
	var liOccurs = 0;
	
	for (var liCount = 0; liCount < (psString.length - psDivider.length); liCount++)	
		if (psString.substr(liCount, psDivider.length) == psDivider)
			liOccurs++;
			
	/*
	 * * Cria o array
	 */
	var laRet = new Array(liOccurs);
	var lsAux = '';
	
	liCount  = 0;
	liOccurs = 0;
	do
	{
		if (psString.substr(liCount, psDivider.length) == psDivider)
		{
			liCount += psDivider.length;
			laRet[liOccurs++] = lsAux;
			lsAux = '';
		}
		
		lsAux += psString.charAt(liCount++);
	}
	while (liCount < psString.length);
	
	laRet[liOccurs++] = lsAux;
	
	return (laRet);
}

/*
'[======================================================================================
'[= Nome		: fgIsDate
'[= Descrição	: Verifica se uma string é uma data válida
'[= Entrada		: psData - String de data no formato DD/MM/YYYY
'[= Saida		: True  - se a string for uma data
'[=				  False - caso contrário
'[= Exemplo		: if(fgIsDate(text13.value))
'[= OBS			: Para utilizar esta função é necessário a inclusão do genericoFuncoes.js
'[======================================================================================
*/
function fgIsDate(psData)
{
	
	var laDiasMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var laData    = fgSplitString(psData, '/');

	/*
	 * * Se não houver três partes a data é considerada inválida
	 */
	if (laData.length != 3)
		return false;
	
	/*
	 * * A string é dividida em três partes : * * laData[0] - Dia * laData[1] -
	 * Mês * laData[2] - Ano
	 */

	/*
	 * * Verifica se o mes está no intervalo [1,12]
	 */
	if (!(laData[1] >= 1 && laData[1] <= 12))
		return false;

	/*
	 * * Se o ano não tiver 4 digitos, é invalida
	 */
	if (laData[2].length != 4) 
		return false;

	/*
	 * * Se for ano bissexto, o Limite p/ o mes de Fevereiro é 29 dias
	 */
	if (Math.floor(laData[2] / 4) * 4 == laData[2]) 
		laDiasMes[1] = 29;
	
	
	/*
	 * * Se o dia estiver fora do limite para o mes dado, é invalida
	 */
	if (!((laData[0] >= 1) && (laData[0] <= laDiasMes[laData[1] - 1])))
		return (false);

	/*
	 * * Finalmente, se chegou até aqui, é uma data válida
	 */
	return (true);
}

/*
 * '[================================================================================================
 * '[= Nome : fgFormataValidaData '[= Descrição : Formata a data no formato
 * DD/MM/YYYY ou MM/YYYY '[= Entrada : obj '[= Saida : data formatada '[=
 * Exemplo : <INPUT id=text9 name=text9 onblur="fgFormataValidaData(this)"> '[=
 * '[= OBS : Para utilizar esta função é necessário a inclusão do
 * genericoFuncoes.js
 * '[================================================================================================
 */
function fgFormataValidaData(obj)
{
	
	var lsData = obj.value;
	var lsAux  = '';
	
	/*
	 * * Deixa só os números
	 */
	for (var liPos = 0; liPos < lsData.length; liPos++)
		if (!isNaN(lsData.charAt(liPos)))
			lsAux += lsData.charAt(liPos);

	/*
	 * * Se não tiver sido digitado nada, retorna
	 */
	if (lsAux.length == 0)
		return;

	/*
	 * * Verifica se tem todos os digitos necessários
	 */
	if ((lsAux.length != 8) && (lsAux.length != 6) && (lsAux.length != 4))
	{
		alert('Data Incorreta.');
		obj.value = '';
		obj.focus();
		return (false);
	}
	
	/*
	 * * Divide os números nos componentes de data
	 */
	switch (lsAux.length)
	{
		case 8 : // DD/MM/YYYY
		{
			var lsDia = lsAux.substr(0, 2);
			var lsMes = lsAux.substr(2, 2);
			var lsAno = lsAux.substr(4, 4);
	
			lsAux = lsDia + '/' + lsMes + '/' + lsAno;
	
			/*
			 * * Verifica se é uma data válida
			 */
			if (!fgIsDate(lsAux))
			{
				alert('Data Incorreta.');
				obj.value = '';
				obj.focus();
				return (false);
			}

			break;
		}
		
		case 6 : // MM/YYYY
		{
		    var lsMes = lsAux.substr(0, 2);
		    var lsAno = lsAux.substr(2, 4);
	
		    lsAux = lsMes + '/' + lsAno;
	
		    /*
			 * * Verifica se é o mês é válido
			 */
		    if (lsMes < '01' || lsMes > '12')
		    {
			    alert('Data Incorreta.');
			    obj.value = '';
			    obj.focus();
			    return (false);
		    }
			
			break;
		}
		
		case 4 : // YYYY
		{
			/*
			 * * Verifica se é o ano é válido
			 */
			if (lsAux < '1900')
			{
				alert('Data Incorreta.');
				obj.value = '';
				obj.focus();
				return (false);
			}
		}
	}
	
	/*
	 * * Retorna a Data formatada
	 */
	obj.value = lsAux;
	return (true);

}

function imprimirDiv(urlBase,divName)
{
	var WinPrint = window.open('','newwin','toolbar=no,status=no,scrollbars=no,width=550,height=800');
	var allDivTags = document.getElementsByTagName("div");
	var divTagContent;
	var stylesPath = urlBase+'/system/modules/br.gov.turismo.dadosfatos/resources/css/';
	
	for(var i=0; i < allDivTags.length; i++){
		if(  allDivTags[i].className == divName){
			divTagContent = allDivTags[i];
			 break;
			}
	}

	with (WinPrint.document) {
	write('<html>');
	write('<head>' + 
		'<link rel="stylesheet" type="text/css" href="'+stylesPath+'mtur_print.css" />'+
		'<link rel="stylesheet" type="text/css" href="'+stylesPath+'mtur_geral.css" />'+
		'<link rel="stylesheet" type="text/css" href="'+stylesPath+'mtur_interna.css" />'+
		'<link rel="stylesheet" type="text/css" href="'+stylesPath+'mtur_dados_fatos.css" />'+
		'</head>');
	write('<body style="background:#FFF;" onload="print();">');
	write('<div class="printArea">');
	write(divTagContent.innerHTML);
	write('</div>');
	write('</body>');
	write('</html>');
	close();
	focus();
	}
}

var homeBusca = false;

function digitadoBusca(){
	homeBusca=true;
}


function validaBuscaHome(){
	if(homeBusca){
		return true
	}else{
		alert('Favor digitar algum valor para busca.')
		return false
	}
}

function limpaCampoSimples(campo){	
	if(campo.value == campo.title)
		campo.value = '';
	campo.className = 'text valido';
}
function checaCampo(campo){	
	while(campo.value.indexOf(' ') == 0){
		campo.value = campo.value.substring(1, campo.value.length);
	}
	if((campo.value == '') || (campo.value.toLowerCase() == campo.title.toLowerCase())){
		campo.value = campo.title;
		campo.className = tiraString(campo.className,'valido');
	}
}
function tiraString(campo,string){
	string = ' '+string;
	if (campo.indexOf(string)>0){
		campo = campo.substring(0, campo.indexOf(string));
	}
	return campo;
}

function abrePopup(){
	document.getElementById('siteSombra').style.height= document.body.clientHeight+'px';
	document.getElementById('siteSombra').style.display = 'block';
	document.getElementById('sitePopup').style.display = 'block';
}

function fechaPopup(botao){

	document.getElementById('siteSombra').style.display = '';
	document.getElementById('sitePopup').style.display = '';
}

function validaEnviaAmigo(form){
	
	for (i=0;i<form.length;i++)
	{
		
		var obg = form[i].obrigatorio;
		if (obg==1)
		{
			if(form[i].value == "seu nome*")
			{				
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
			else if(form[i].value == "seu e-mail*")
			{				
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
			else if(form[i].value == "nome do destinatário*")
			{				
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
			else if(form[i].value == "e-mail do destinatário*")
			{				
				var nome = form[i].descricao
				alert("O campo " + nome + " é obrigatório.")
				form[i].focus();
				return false
			}
			
		}
	}
	return true
}

function pop(strURL){
	window.open (strURL, "Envie",
	"location=0,status=0,scrollbars=0,width=380,resizable=0,height=370");
}

/*
 * '[======================================================================================
 * '[= Nome : atualizarDataHora '[= Descrição : Atualiza a data e hora na página
 * '[= Entrada : id - id da área no html que receberá a data e hora '[= tempo -
 * tempo de atualização '[= formato - código que identifica o formato de retorno
 * '[= idioma - em que idioma retorna a data '[= flag_retorno - se é para
 * retornar na chamada no método '[= '[= Saida : String data e hora formatados
 * '[= Exemplo : Este é o método que deve ser chamado. Com um exemplo html
 * abaixo onde a data é obtida no carregamento '[= da página e depois a cada
 * 1000 milisegundos. '[= <body onload='atualizarDataHora("datahora", 1000)'>
 * '[= <div id="datahora"></div> '[= </body> '[= Outro exemplo: '[=
 * <p class="data" id="idDataHora"><script type="text/javascript">
 * atualizarDataHora("idDataHora", 1000, false); </script></p> '[= OBS :
 * '[======================================================================================
 */

function construirArray(qtdElementos){
	this.length = qtdElementos
}

    var	arrayDia = new construirArray(7);
	arrayDia[0] = "Domingo";
	arrayDia[1] = "Segunda-Feira";
	arrayDia[2] = "Ter&ccedil;a-Feira";
	arrayDia[3] = "Quarta-Feira";
	arrayDia[4] = "Quinta-Feira";
	arrayDia[5] = "Sexta-Feira";
	arrayDia[6] = "S&aacute;bado";

	var arrayMes = new construirArray(12);
	arrayMes[0] = "Janeiro";
	arrayMes[1] = "Fevereiro";
	arrayMes[2] = "Mar&ccedil;o";		
	arrayMes[3] = "Abril";
	arrayMes[4] = "Maio";
	arrayMes[5] = "Junho";
	arrayMes[6] = "Julho";
	arrayMes[7] = "Agosto";
	arrayMes[8] = "Setembro";
	arrayMes[9] = "Outubro";
	arrayMes[10] = "Novembro";
	arrayMes[11] = "Dezembro";

function formatarRetornoDataHora(diaSemana, dia, mes, ano, hora, minuto, segundo, formato, idioma){
	retorno = "";
	// Crie outras condições por idioma e, dentro de cada idioma trate os
	// formatos.
	if(idioma=="pt_BR"){
		if (formato==0){
			retorno += "&nbsp; "+ hora + ":" + minuto + ":" + segundo + " ";
		} else if (formato==1){
			retorno += "&nbsp;&nbsp;" + diaSemana + ", " + dia + " de " + mes + " de " + ano;
		}
	}
	return retorno;
}

function getMesExtenso(mes){
	return this.arrayMes[mes];
}


function getDiaExtenso(dia){
	return this.arrayDia[dia];
}


function atualizarDataHora(id, tempo, formato, idioma, flag_retorno){
	dataAtual = new Date();
	dia = dataAtual.getDate();
	diaSemana = getDiaExtenso(dataAtual.getDay());
	mes = getMesExtenso(dataAtual.getMonth());
	ano = dataAtual.getFullYear();
    hora = dataAtual.getHours();
    minuto = dataAtual.getMinutes();
    segundo = dataAtual.getSeconds();

    retorno = formatarRetornoDataHora(diaSemana, dia, mes, ano, hora, minuto, segundo, formato, idioma);
    
	// Aqui é impresso a data e hora no ID passado como parametro
    if (id!=null){
    	document.getElementById(id).innerHTML = retorno;
    }
    
    // Ou retorna ou chama novamente por tempo
    if (flag_retorno){
    	return retorno;
    }else {
    	setTimeout('atualizarDataHora("'+id+'",'+tempo+','+formato+',"'+idioma+'",'+flag_retorno+')', tempo);
    }
}

function GetXmlHttpObject()
{ 
	var objXMLHttp=null
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{		
		try 
		{
			objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
		catch (e) 
		{
            try 
            {
            	objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }

	}
	return objXMLHttp
}


var xmlHttp;
function PreencheComboEdicao(ano,path)
{ 
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		alert ("Este browser não suporta HTTP Request");	
		return false;
	
	}

	var url="../../../system/modules/br.gov.turismo.dadosfatos/templates/conjunturaEconomica/conjuntura_economica_comboEdicao.jsp"
	url=url+"?ano="+ano
	url=url+"&path="+path
	url=url+"&sid="+Math.random()
	xmlHttp.onreadystatechange=stateChangedEdicao 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}
function stateChangedEdicao() 
{ 	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("comboEdicao").innerHTML=xmlHttp.responseText 
	} 
}

function PreencheComboAno(edicao,path)
{ 
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		alert ("Este browser não suporta HTTP Request");	
		return false;
	
	}

	var url="../../../system/modules/br.gov.turismo.dadosfatos/templates/conjunturaEconomica/conjuntura_economica_comboAno.jsp"
	url=url+"?edicao="+edicao
	url=url+"&path="+path
	url=url+"&sid="+Math.random()
	xmlHttp.onreadystatechange=stateChangedAno
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}
function stateChangedAno() 
{ 	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("comboAno").innerHTML=xmlHttp.responseText 
	} 
}

