function setValsForm() 
{
	document.Compose.Body.value = document.Compose.Body.value;
}

function popUp(URL, opcoes)
{
	day = new Date();
	id = day.getTime();
	var opcoes = String( opcoes );
	var opcoesPadrao = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=,height=,left=,top=';
	
	if( (opcoes == 'undefined') || (opcoes == '') )
	{
		opcoes = opcoesPadrao;
	}
	/* abre a janela */
	eval("page" + id + " = window.open(URL, '" + URL + "', '" + opcoes + "');");
}

function popUpRandom(URL, opcoes)
{
	var day = new Date();
	var id = day.getTime();
	var opcoes = String( opcoes );
	var opcoesPadrao = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=,height=,left=,top=';
	
	if( (opcoes == 'undefined') || (opcoes == '') )
	{
		opcoes = opcoesPadrao;
	}
	/* abre a janela */
	eval("page" + id + " = window.open(URL, '" + id + "', '" + opcoes + "');");
}

function SomenteNumero()
{
	if (window.event.keyCode < 48 || window.event.keyCode > 57) 
	{
        window.event.keyCode=0;
        return false;
	}

	return true;
}

function isIntegerInRange(n, a, b) {
	var num = (n);
	return ((num >= a) && (num <= b));
}

function isMonth(m) {
	return isIntegerInRange(m, 0, 12);
}

function isDay(d, x) {
	return isIntegerInRange(d, 1, x);
}

function isYear(y) {
	var y = String(y);
	return ((y.length == 2) || (y.length == 4));
}

function leapYear(y) {
	if( (y == 2000) || ((y % 4 == 0) && (y % 100 != 0)) )
		return true;
	else
		return false;
}

function lastDayInMonth(m, y) {
	var m = m - 1;
	var last = new Array(12);
	last[0] = 31;
	last[1] = (leapYear(y)) ? 29 : 28;
	last[2] = 31;
	last[3] = 30;
	last[4] = 31;
	last[5] = 30;
	last[6] = 31;
	last[7] = 31;
	last[8] = 30;
	last[9] = 31;
	last[10] = 30;
	last[11] = 31;
	return last[m];
}

function isDate(dt_current, lcid) {
	if(dt_current.length == 0) {
		return true;
	}
	if(lcid == 1046) {
		dt_current = dt_current.substring(3,5) + "/" + dt_current.substring(0,2) + "/" + dt_current.substring(6,10);
	}
	if ((dt_current.length != 10) || (dt_current.substring(2,3) != "/") || (dt_current.substring(5,6) != "/")) {
		return false;
	}
    var intMonth = parseInt(dt_current.substring(0,2), 10);
    var intDay = parseInt(dt_current.substring(3,5), 10);
    var intYear = parseInt(dt_current.substring(6,10), 10);
	var x = lastDayInMonth(intMonth, intYear);
	if ( !isMonth(intMonth) || !isDay(intDay, x) || !isYear(intYear) ) {
		return false;
	}
	return true;
}


function Valida_Data( varCampoData, varNomeData )
{
	var checkstr = "0123456789";
	var DateField = varCampoData;
	var Datevalue = "";
	var DateTemp = "";
	var separator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;

	err = 0;
   	DateValue = DateField.value;

   	/* Delete all chars except 0..9 */
   	for (i = 0; i < DateValue.length; i++) 
	{
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
		{
	     		DateTemp = DateTemp + DateValue.substr(i,1);
	  	}
   	}

	DateValue = DateTemp;

   	/* Always change date to 8 digits - string*/
   	/* if year is entered as 2-digit / always assume 20xx */
   	if (DateValue.length == 6) 
	{
      	DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
	}
   	
	if (DateValue.length != 8) 
	{
      	err = 19;
	}

	/* year is wrong if year = 0000 */
   	year = DateValue.substr(4,4);
	if (year == 0) 
	{
      	err = 20;
   	}

	/* Validation of month*/
   	month = DateValue.substr(2,2);
   	if ((month < 1) || (month > 12)) 
	{
      	err = 21;
   	}

	/* Validation of day*/
   	day = DateValue.substr(0,2);
	if (day < 1) 
	{
     		err = 22;
   	}
   
	/* Validation leap-year / february / day */
   	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) 
	{
      	leap = 1;
   	}
   
	if ((month == 2) && (leap == 1) && (day > 29)) 
	{
      	err = 23;
  	}
   
	if ((month == 2) && (leap != 1) && (day > 28)) 
	{
      	err = 24;
   	}

	/* Validation of other months */
   	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) 
	{
      	err = 25;
   	}
   	
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
	{
      	err = 26;
   	}
   	
	/* if 00 ist entered, no error, deleting the entry */
   	if ((day == 0) && (month == 0) && (year == 00)) 
	{
      	err = 0; day = ""; month = ""; year = ""; separator = "";
   	}
   	
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   	if (err == 0) 
	{
      	DateField.value = day + separator + month + separator + year;
		return true;
  	}
	/* Error-message if err != 0 */
   	else 
	{
	    DateField.select();
		DateField.focus();
		return false;
   	}
}

function Valida_Hora( varCampoHora, varNomeHora )
{
	var checkstr = "0123456789";
	var HourField = varCampoHora;
	var HourValue = "";
	var HourTemp = "";
	var separator = ":";
	var hour;
	var minute;
	var second;
	var err = 0;
	var i;

	err = 0;
   	HourValue = HourField.value;

   	/* Delete all chars except 0..9 */
   	for (i = 0; i < HourValue.length; i++) 
	{
		if (checkstr.indexOf(HourValue.substr(i,1)) >= 0)
		{
	     		HourTemp = HourTemp + HourValue.substr(i,1);
	  	}
   	}

	HourValue = HourTemp;

   	/* Always change hour to 6 digits - string*/
   	
	if (HourValue.length != 6) 
	{
      	err = 19;
	}

	/* hour is wrong if not between 0-24 */
   	hour = HourValue.substr(0,2);
	if ((hour < 0) || (hour > 23)) 
	{
      	err = 20;
   	}

	/* Validation of minutes*/
   	minute = HourValue.substr(2,2);
   	if ((minute < 0) || (minute > 59)) 
	{
      	err = 21;
   	}

	/* Validation of seconds*/
   	second = HourValue.substr(4,2);
	if ((second < 0) || (second > 59)) 
	{
     		err = 22;
   	}
   
  	
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   	if (err == 0) 
	{
      	HourField.value = hour + separator + minute + separator + second;
		return true;
  	}
	/* Error-message if err != 0 */
   	else 
	{
	    HourField.select();
		HourField.focus();
		return false;
   	}
}


function Valida_Correio_Eletronico_testar_mais(email)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
	{
		return true;
	}
	return false;
}


function Valida_Correio_Eletronico( email ) 
{
	var tem_nome = false;
	var esta_vazio = false;
	var tem_tamanho_minimo = false;
	var tem_arroba = false;
	var tem_ponto = false;

	var tem_virgula = false;
	var tem_ponto_e_virgula = false;

	/* 13/dez/2005 cesararnold : verifica se tem <> tags */
	var tem_tag = false;
	var tem_caracter_invalido = false;
	
	if (email=="")
	{
		esta_vazio = true;
	}

	if (email.length>5)
	{
		tem_tamanho_minimo = true;
	}

	if ((email.substr(1,1)!='@') && (email.substr(1,1)!='') && (email.substr(1,1)!=' ') && (email.substr(1,1)!='.') && (email.substr(1,1)!=';') && (email.substr(1,1)!=','))
	{
		tem_nome = true;
	}
	
	if (email.indexOf("@")!=-1)
	{
		tem_arroba = true;
	}
	
	if (email.indexOf(".")!=-1)
	{
		tem_ponto = true;
	}

	if (email.indexOf(",")!=-1)
	{
		tem_virgula = true;
	}
	
	if (email.indexOf(";")!=-1)
	{
		tem_ponto_e_virgula = true;
	}

	/* 13/dez/2005 cesararnold : verifica se tem <> tags */
	if ( (email.indexOf("<")!=-1) || (email.indexOf(">")!=-1) )
	{
		tem_tag = true;
	}
	
	/* 13/dez/2005 cesararnold : verifica se tem caracter invalido */
	if ( (email.indexOf(" ")!=-1) || (email.indexOf("\{")!=-1) || (email.indexOf("\}")!=-1) || (email.indexOf("\[")!=-1) || (email.indexOf("\]")!=-1) || (email.indexOf("\'")!=-1) || (email.indexOf("\"")!=-1) || (email.indexOf("\`")!=-1) || (email.indexOf("\~")!=-1) || (email.indexOf("\!")!=-1) || (email.indexOf("\#")!=-1) || (email.indexOf("\$")!=-1) || (email.indexOf("\%")!=-1) || (email.indexOf("\^")!=-1) || (email.indexOf("\&")!=-1) || (email.indexOf("\*")!=-1) || (email.indexOf("\(")!=-1) || (email.indexOf("\)")!=-1) || (email.indexOf("\-")!=-1) || (email.indexOf("\+")!=-1) || (email.indexOf("\=")!=-1) || (email.indexOf("\|")!=-1) || (email.indexOf("\\")!=-1) )
	{
		tem_caracter_invalido = true;
	}
	
	/* 13/dez/2005 cesararnold : verifica se tem <> tags */
	if (!esta_vazio && tem_tamanho_minimo && tem_nome && tem_arroba && tem_ponto && !tem_virgula && !tem_ponto_e_virgula && !tem_tag && !tem_caracter_invalido)
	{
		return true;
	}
	return false;
}

function reloadPaginaCombo( PaginaParaReload, CodigoDaOpcaoSelecionada )
{
	self.location.href = PaginaParaReload + CodigoDaOpcaoSelecionada ;
}


function Valida_AZ_az_Numero( ValorCampoParaValidar )
{
	var Sinais = "-+";
	var Numeros = "0123456789";
	var Minusculas = "abcçdefghijklmnopqrstuwxyyz";
	var MinusculasAcento = "áéíóúâêîôû";
	var MinusculasTremado = "üö";
	var MinusculasTil = "ãõ";
	var Maiusculas = "ABCÇDEFGHIJKLMNOPQRSTUVWXYZ";
	var MaiusculasAcento = "ÁÉÍÓÚÂÊÎÔÛ";
	var MaiusculasTremado = "ÖÜ";
	var MaiusculasTil = "ÃÕ";

	var Caracter;
	var CaracteresValidos;

	CaracteresValidos  = Numeros;
	CaracteresValidos += Minusculas;
	CaracteresValidos += MinusculasAcento;
	CaracteresValidos += MinusculasTremado;
	CaracteresValidos += MinusculasTil;
	CaracteresValidos += Maiusculas;
	CaracteresValidos += MaiusculasAcento;
	CaracteresValidos += MaiusculasTremado;
	CaracteresValidos += MaiusculasTil;

	/* valida A-Z, a-z, 0..9 */
   	for (i = 0; i < ValorCampoParaValidar.length; i++) 
	{
		Caracter = ValorCampoParaValidar.substr(i,1);
		/* se nao tem os caracteres desejados retorna false */
		if(	CaracteresValidos.indexOf(Caracter) < 0)
		{
			return false;
	  	}
   	}
	return true;
}

/**
 * Essa funcao converte data no formato dd/mm/aaaa para mm/dd/aaaa
 */
function convertDataPt2En(dataPt)
{
	var dataEn = dataPt.substring(3, 5) + '/' + dataPt.substring(0, 2) + '/' + dataPt.substring(6, 10);	
	return dataEn;
}

/**
 * Essa funcao converte data no formato Ingles mm/dd/aaaa para o formato desejado com o separador informado
 */
function convertDataEn2Formato(dataEn, separador, formato)
{	
	var mes = dataEn.substring(0, 2);
	var dia = dataEn.substring(3, 5);
	var ano = dataEn.substring(6, 10);

	if(formato == "ddmmaaaa")
	{
		var data = dia + separador + mes + separador + ano;			
	}
	else if(formato == "mmddaaaa")
	{
		var data = mes + separador + dia + separador + ano;
	}
	else if(formato == "aaaammdd")
	{
		var data = ano + separador + mes + separador + dia;
	}

	return data;
}

/**
 * Essa funcao converte data no formato Portugues dd/mm/aaaa para o formato desejado com o separador informado
 */
function convertDataPt2Formato(dataPt, separador, formato)
{	
	var mes = dataPt.substring(3, 5);
	var dia = dataPt.substring(0, 2);
	var ano = dataPt.substring(6, 10);

	if(formato == "ddmmaaaa")
	{
		var data = dia + separador + mes + separador + ano;			
	}
	else if(formato == "mmddaaaa")
	{
		var data = mes + separador + dia + separador + ano;
	}
	else if(formato == "aaaammdd")
	{
		var data = ano + separador + mes + separador + dia;
	}

	return data;
}

/**
Essa funcao retorna TRUE se a dataInicial for maior que a dataFinal. Senao retorna FALSE.
A dataInicial e a dataFinal devem estar no formato dd/mm/aaaa
*/

function dataInicialEhMaiorQueDataFinal(dataInicial, dataFinal)
{

	var dataInicial = convertDataPt2Formato(dataInicial, '', 'aaaammdd')
	var dataFinal = convertDataPt2Formato(dataFinal, '', 'aaaammdd')

	if(dataInicial > dataFinal)
	{
		return true;
	}
	
	return false;
}

/**
Essa funcao retorna TRUE se a data e hora Inicial for maior que a data e hora Final.
*/
function dataHoraInicialEhMaiorQueDataHoraFinal(dataInicial, horaInicial, minInicial, dataFinal, horaFinal, minFinal)
{
	
	var dataInicial = convertDataPt2Formato(dataInicial, '', 'aaaammdd')
	var dataFinal = convertDataPt2Formato(dataFinal, '', 'aaaammdd')

	var valorInicial = dataInicial + '' + horaInicial + '' + minInicial;
	var valorFinal   = dataFinal + '' + horaFinal + '' + minFinal;

	if(valorInicial > valorFinal)
	{
		return true;
	}
	
	return false;	
}
