var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;
function doEmail(pStr, pFmt)
{
	eval("reEmail = reEmail" + pFmt);
	if (reEmail.test(pStr)) {
		return true;
	} else if (pStr != null && pStr != "") {
		return false;
	}
}

function jsNoNumber(e, campo, tipo) {
	var tecla = (document.all) ? event.keyCode : e.which;
	if ((tecla > 47 && tecla < 58) || (tecla == 8) || (tecla == 9) || (tecla == 0)) {		
		if (tipo=='data'){
			if (((campo.value.length == 2) || (campo.value.length == 5)) && (tecla != 8) && (tecla != 9)){
				campo.value += "/";
			}
		}else if (tipo=='hora'){
			if ((campo.value.length == 2) && (tecla != 8)){
				campo.value += ":";
			}
		}
	}else{
		return false;
	}
}

//Esta função faz com que se o usuário apagar uma das barras da data, ela apaga seu antecessor automaticamente.
//por exemplo: 20/11/2008 ---> o usuário apaga a 2° barra ---->  20/112008 ---> automaticamente se transforma em -------> 20/11
function acertaData(campo){
	var valor = campo.value;
	if ((campo.value.length >= 3) && (valor.charAt(2) != "/")){
		//campo.value = "";
		campo.value = valor.substring(0,2);
	}else{
		if ((campo.value.length >= 6) && (valor.charAt(5) != "/")){
			//campo.value = valor.substring(0,3);
			campo.value = valor.substring(0,5);
		}
	}
}

function trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}

function Verifica_CPF(field) {
	var CPF = field.value; // Recebe o valor digitado no campo
	
	// Verifica se o campo é nulo
	if (CPF == '') {	
	  return false;
	}
	
	// Aqui começa a checagem do CPF
	var POSICAO, I, SOMA, DV, DV_INFORMADO;
	var DIGITO = new Array(10);
	DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
	
	// Desemembra o número do CPF na array DIGITO
	for (I=0; I<=8; I++) {
	  DIGITO[I] = CPF.substr( I, 1);
	}
	
	// Calcula o valor do 10º dígito da verificação
	POSICAO = 10;
	SOMA = 0;
   for (I=0; I<=8; I++) {
	  SOMA = SOMA + DIGITO[I] * POSICAO;
	  POSICAO = POSICAO - 1;
   }
	DIGITO[9] = SOMA % 11;
	if (DIGITO[9] < 2) {
			DIGITO[9] = 0;
	}
	else{
		   DIGITO[9] = 11 - DIGITO[9];
	}
	
	// Calcula o valor do 11º dígito da verificação
	POSICAO = 11;
	SOMA = 0;
   for (I=0; I<=9; I++) {
	  SOMA = SOMA + DIGITO[I] * POSICAO;
	  POSICAO = POSICAO - 1;
   }
	DIGITO[10] = SOMA % 11;
   if (DIGITO[10] < 2) {
		DIGITO[10] = 0;
   }
   else {
		DIGITO[10] = 11 - DIGITO[10];
   }
	
	// Verifica se os valores dos dígitos verificadores conferem
	DV = DIGITO[9] * 10 + DIGITO[10];
	   if (DV != DV_INFORMADO) {
		  field.value = '';
		  field.focus();
		  return false;
	   }
	return true;
}

function verifica_data (aData, input) { 
	dia = (aData.substring(0,2)); 
	separador1 = (aData.substring(2,3));  
	mes = (aData.substring(3,5)); 
	separador2 = (aData.substring(5,6));  
	ano = (aData.substring(6,10)); 

	situacao = ""; 
	if (aData != ""){
		// verifica o dia valido para cada mes 
		if ((!(isNaN(dia))) && (!(isNaN(mes))) && (!(isNaN(ano))) && (separador1 == "/") && (separador2 == "/") && (ano >= 1900)) {
			if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
				situacao = "falsa"; 
			} 

			// verifica se o mes e valido 
			if (mes < 01 || mes > 12 ) { 
				situacao = "falsa"; 
			} 

			// verifica se e ano bissexto 
			if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
				situacao = "falsa"; 
			} 
	
			if ((aData == "") || (aData.length < 10)) { 
				situacao = "falsa"; 
			} 
		}
		else{
			situacao = "falsa"; 
		}
	}
	
	if (situacao == "falsa") { 
		input.focus();
		return false;
	} 
	return true;
}

function campo_Ok(campo){
	campo.style.border = '1px solid black';
}

function verificaHora(aHora){ 
	hrs = (aHora.substring(0,2)); 
	min = (aHora.substring(3,5)); 
				   
	if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){ 
		return false; 
	} 

	if (hrs.length != 2 || min.length != 2){
		return false;		
	}
				   
	if (aHora == "") { 
		return false; 
	} 
	
	return true;
} 

function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}


