function VerificaObjeto(obj,obrigatorio,tipo,msg1,msg2) {
	valor = obj.value;	
	if (obrigatorio == true && valor.length == 0) {
		alert(msg1);
		obj.focus();
		return false;
	}
	if (valor.length > 0) {
		
		switch (tipo) {
			case "DDD" : 
				ret = ValidaDDD(valor);
				break;
			case "NUM" : 
				ret = ValidaNumero(valor);
				break;
			case "EMAIL" : 
				ret = ValidaEmail(valor);
				break;
			case "CPF" :
				ret = ValidaCPF(valor);				
				break;
			case "TEL" : 
				ret = ValidaTel(valor);
				break;
			case "DATA" :
				ret = ValidaData(valor);
				break;
			case "LOGIN" :
				ret = ValidaLogin(valor);
				break;
			case "CNPJ"  :
				ret = ValidaCNPJ(valor);
				break;
			case "TAM"  :
				ret = ValidaTAM(valor);
				break;
			case "HORA"  :
				ret = ValidaHora(valor);
				break;
			case "HORA_CHAT"  :
				ret = ValidaHoraChat(valor);
				break;
			case "TEXTO"  :				
				ret = ValidaTexto(valor);
				break;
			case "VALOR"  :
				ret = ValidaValor(valor);
				break;
			default :
				ret = true;
		}
		if (ret == false) {
			alert(msg2);
			obj.focus();
			return false;
		}
	}
	return true;
}

function ValidaDDD(ddd){
	if ((ddd.length<2) || (ddd.substring(0, 1)=='0') || !(ValidaNumero(ddd))){
		return false;
	}
	return true;
}

function ValidaTel_Celular(tel){ 	
	if (  ((tel.value.charAt(0)!='9') && (tel.value.charAt(0)!='8')) || (tel.value.length!=8) || !(ValidaNumero(tel)) ){
		return false;
	}
	return true;
}


function ValidaTel(tel){
	if ((tel.length<8) || (tel.substring(0,1)=='0')  || (tel.substring(0,1)=='1') || !(ValidaNumero(tel))){
		return false;
	}
	return true;
}

function ValidaTel_Fixo(tel){
	if ( ((tel.value.length!=8) && (tel.value.length!=7)) || !(ValidaNumero(tel)) || (tel.value.charAt(0)=='0') ){		
		return false;
	}
	return true;
}


function ValidaTel_0800(tel){	   	
	if (((tel.value.length!=11) && (tel.value.length!=10)) || (tel.value.substring(0,4)!='0800') || !(ValidaNumero(tel))){		
		return false;
	}
	return true;
}



function ValidaValor(num)
{
	for (var i=0;i<num.length;i++) {
		if ((num.charAt(i) < "0") || (num.charAt(i) > "9")) {
			if (num.charAt(i) != ",") {
				return false;
			}
		}
	}
	return true;
}
			
function ValidaTexto(campo)
{
	letras="false";	
	var vetor=new Array("'","´","`");
	var temp;
	for(i=0;i<campo.length;i++)
	{
		temp=campo.substring(i,i+1);
		for (x=0;x<100;x++)
		{
			if (vetor[x]==temp)
			{
				letras="true";
			}
		}
	}
	if (letras=="true") 
	{
		return false;
	}
	return true;
}


function ValidaNumero(num)
{
	for (var i=0;i<num.length;i++) {
		if ((num.charAt(i) < "0") || (num.charAt(i) > "9")) {
			return false;
		}
	}
	return true;
}

function ValidaFloat(num){
	for (var i=0;i<num.length;i++) {
		if (((num.charAt(i) < "0") || (num.charAt(i) > "9")) && ((num.charAt(i) != "."))) {						
			return false;
		}
	}
	
	if (isNaN(parseFloat(num)) || parseFloat(num)<=0)
   	{    		
   		return false;
	}
	return true;
   	
}

function ValidaEmail(email) {

	var BadChars = "*|,\":<>[]{}`\'''';()&$#% "; 
	var GoodChars = "@."; 
	var posarroba = email.indexOf ('@',0); 

	if (email.length < 6) // o email é menor que 6 caracteres 
	{
	   return false; 
	}	

	for (var i = 0; i < email.length; i++) 
	{ 
	  if (BadChars.indexOf(email.charAt(i)) != -1) // Contém caracteres inválidos, badchars 
	  { 
		  return (false); 
	  } 
	} 

	for (var i = 0; i < GoodChars.length; i++) 
	{ 
	  if (email.indexOf(GoodChars.charAt(i)) == -1) // não tem goodchars 
	  { 
	     return false; 
	  } 

	  if (email.indexOf(GoodChars.charAt(i),0) == 0) // começou com goodchars (. ou @) 
	  { 
	     return false; 
	  } 

	  if (email.lastIndexOf(GoodChars.charAt(i)) > email.length-3) //existe menos de 2 caracteres depois do ultimo goodchar 
	  { 
	     return false; 
	  } 
	} 

	if (email.lastIndexOf('@') > email.lastIndexOf('.')) //Não tem ponto depois do arroba 
	{ 
	   return false; 
	} 

	if (email.indexOf ('@.',0) != -1 || email.indexOf ('.@',0) != -1) // . e @ colados 
	{ 
	   return false; 
	} 

	if (email.indexOf ('@',posarroba+1) != -1) // Contém mais de um " @ " 
	{ 
	   return false; 
	} 
	 
	return true;
}

function ValidaCPF(cpf)
{
	var digito1;
	var digito2;
	var pesoCPF = new Array(11, 10, 9, 8, 7, 6, 5, 4, 3, 2);

	if ((cpf == null) || (cpf.length != 11)) 
		return false;

	if (!IsInteger(cpf))
		return false;

	digito1 = calcularDigito(cpf.substring(0,9), pesoCPF);
	digito2 = calcularDigito(cpf.substring(0,9) + digito1, pesoCPF);
	if (cpf == cpf.substring(0,9) + digito1.toString() + digito2.toString())
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ValidaData (data) {
	separador = '/';
	aux = data;
	barras = 0;
	erro = 0;
	dia = 0;
	mes = 0;
	ano = 0;
	eh_barra = 1;

	meses = new Array(12);
	meses = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	
	for (var i=0; (i<aux.length) && (erro==0); i++) {
		if (aux.charAt(i)==separador) {
			if (eh_barra==0) {
				barras++;
				eh_barra = 1;
			}
			else erro = 1;
		}
		else {
			a = parseInt(aux.charAt(i), 10);
			if (isNaN(a)) erro = 1;
			eh_barra = 0;
		}
	}
	if (barras != 2) erro = 1;

	if (erro==0) {
		pos = aux.indexOf(separador);
		pos2 = aux.indexOf(separador, pos+1);
		dia = parseInt(aux.substring(0, pos), 10);
		mes = parseInt(aux.substring(pos+1, pos2), 10);
		ano = parseInt(aux.substring(pos2+1, aux.length), 10);
		if (ano<1900 || ano>2050) erro = 1;
		else {
			if (eh_bissexto(ano)) meses[1] = 29;
			else meses[1] = 28;
			if (mes<1 || mes>12) erro = 1;
			else if (dia<1 || dia>meses[mes-1]) erro = 1;
		}
	}
	if (erro==1) return false;
	return true;
}

function ValidaLogin(campo)
{
	letras="false";
	var vetor=new Array("ç", "Ç", "á", "Á", "à", "À", "ã", "Ã", "â", "Â", "é", "É", "è", "È", "ê", "Ê", "ë", "Ë", "í", "Í", "ì", "Ì", "î", "Î", "ï", "Ï", "ó", "Ó", "ò", "Ò", "ô", "Ô", "ö", "Ö", "õ", "Õ", "ú", "Ú", "ù", "Ù", "ü", "Ü", "û", "Û", "^", "`", "'", "~");
	var temp;
	for(i=0;i<campo.length;i++)
	{
		temp=campo.substring(i,i+1);
		for (x=0;x<100;x++)
		{
			if (vetor[x]==temp)
			{
				letras="true";
			}
		}
	}
	if (letras=="true") 
	{
		return false;
	}
	return true;
}

function eh_bissexto(ano)
{
	if ( ((ano - 1996) % 4) == 0) return true;
	return false;
}

function CriaArray(n) {
	this.length=n
	for (var i=1;i<=n;i++)
		{this[i]=""}
}


function ValidaTAM(campo) {
 with (Math) {
	 w = 0;
	 VerificaDV = "";
	 TAM = campo;
 
	 if (TAM.length != 10) {
	 	return false;
	 }

 	 if (!ValidaNumero(TAM)) { 
		return false;
	 }

	 if (TAM >= 10000000) {
 
		 VtTAM = new CriaArray(TAM.length);

		 for (var i=0;i < TAM.length;i++) {
 			if ((TAM.charAt(i) == "0") || (TAM.charAt(i) == "1") || (TAM.charAt(i) == "2") || (TAM.charAt(i) == "3") || (TAM.charAt(i) == "4") || (TAM.charAt(i) == "5") || (TAM.charAt(i) == "6") || (TAM.charAt(i) == "7") || (TAM.charAt(i) == "8") || (TAM.charAt(i) == "9")) {
		 		VtTAM[w]=parseFloat(TAM.charAt(i));	
		 		w++;
			}
 		}

 		Calculo = (VtTAM[0]*2)+(VtTAM[1]*9)+(VtTAM[2]*8)+(VtTAM[3]*7)+(VtTAM[4]*6)+(VtTAM[5]*5)+(VtTAM[6]*4)+(VtTAM[7]*3)+(VtTAM[8]*2);
 		Resto = Calculo % 10;
 	
		if (((Resto == 0) || (Resto == 1)) && (VtTAM[1] == 0)) {
  			ValDVAux = 0;
 		} else {
  			ValDVAux = 10 - Resto;
  		}

		if (ValDVAux == VtTAM[9]) {
			VerificaDV = "True";
  			}
  			
	} else {
		
		VtTAM = new CriaArray(TAM.length);

		 for (var i=0;i < TAM.length;i++) {
 			if ((TAM.charAt(i) == "0") || (TAM.charAt(i) == "1") || (TAM.charAt(i) == "2") || (TAM.charAt(i) == "3") || (TAM.charAt(i) == "4") || (TAM.charAt(i) == "5") || (TAM.charAt(i) == "6") || (TAM.charAt(i) == "7") || (TAM.charAt(i) == "8") || (TAM.charAt(i) == "9")) {
		 		VtTAM[w]=parseFloat(TAM.charAt(i));	
		 		w++;
			}
 		}

 		Calculo = (VtTAM[2]*1)+(VtTAM[3]*2)+(VtTAM[4]*3)+(VtTAM[5]*4)+(VtTAM[6]*5)+(VtTAM[7]*6)+(VtTAM[8]*7);
 		Resto = Calculo % 7;
 	
		ValDVAux = Resto

		if (ValDVAux == VtTAM[9]) {
			VerificaDV = "True";
  			}
	} 	
 	
 	if (VerificaDV == "True") 
 	{
   		return true;
 	} else {
   		return false;   
 	} 
 }
}

function ValidaCNPJ(cnpj) {

	var digito1;
	var digito2;
	var pesoCNPJ = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
	
	if ((cnpj == null) || (cnpj.length != 14)) 
		return false;

	if (!IsInteger(cnpj)) 
		return false;

	digito1 = calcularDigito(cnpj.substring(0,12), pesoCNPJ);
	digito2 = calcularDigito(cnpj.substring(0,12) + digito1, pesoCNPJ);
	
	if (cnpj == cnpj.substring(0,12) + digito1.toString() + digito2.toString())
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ValidaHora(campo) {
	tam = campo.length;
	
	if (tam != 5 && tam != 8)
		return false;
	
	if (campo.charAt(2) != ":") 
		return false;

	if (tam == 8) 
		if (campo.charAt(5) != ":") 
			return false;

	hora = campo.substring(0, 2);
	minuto = campo.substring(3, 5);

	segundo = "00"
	if (tam == 8) 
		segundo = campo.substring(6, 8);

	if (!ValidaNumero(hora)) return false;
	if (!ValidaNumero(minuto)) return false;
	if (!ValidaNumero(segundo)) return false;

	if (hora > 23) return false;
	if (minuto > 59) return false;
	if (segundo > 59) return false;
}


function ValidaHoraChat(campo) {
	tam = campo.length;
	
	if (tam != 5 && tam != 8)
		return false;
	
	if (campo.charAt(2) != ":") 
		return false;

	if (tam == 8) 
		if (campo.charAt(5) != ":") 
			return false;

	hora = campo.substring(0, 2);
	minuto = campo.substring(3, 5);

	segundo = "00"
	if (tam == 8) 
		segundo = campo.substring(6, 8);

	if (!ValidaNumero(hora)) return false;
	if (!ValidaNumero(minuto)) return false;
	if (!ValidaNumero(segundo)) return false;

	if ((hora != 24) || (minuto != 00) || (segundo !=00)){
		if (hora > 23) return false;
		if (minuto > 59) return false;
		if (segundo > 59) return false;
	}
}



function StringToDate(dateParam) {
	var arr = dateParam.split('/');
	var myDate = new Date(parseFloat(arr[2]), parseFloat(arr[1])-1, parseFloat(arr[0]));
	return myDate;
}

function DateString(data) {
	var arr = dateParam.split('/');
	if (arr[0].length < 2) arr[0] = '0' + arr[0];
	if (arr[1].length < 2) arr[1] = '0' + arr[1];
	return arr[2] + arr[1] + arr[0]
}

function IsInteger(passedVal)
{
	var ValidChars = "0123456789";
	var IsNumber = true;
	var Char;
	if(passedVal == "")
		return false;

	for (i = 0; i < passedVal.length && IsNumber == true; i++)
	{
		Char = passedVal.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}

function calcularDigito(str, peso) 
{
	var soma = 0;
	var digito;
	for (indice=str.length-1, digito; indice >= 0; indice-- ) 
	{
		digito = parseInt(str.substring(indice, indice+1));
		soma += digito*peso[peso.length - str.length + indice];
	}
	soma = 11 - soma % 11;

	if (soma > 9)
	{
		return 0;
	}
	else
	{
		return soma;
	}
}
