/*/////////////////////////////////////////
//retira os espaços                       /
//Semelhante a funcao trim do asp         /
//Exe: valor.trim();                      /
/////////////////////////////////////////*/
String.prototype.trim = function(){
	var vlr;
	vlr = this;
	for(var x=0;x<(vlr.length)*500;x++){
		vlr = vlr.replace(' ','');
	};
	return vlr;
};

/*//////////////////////////////////////////////////////////
//verifica a existencia de caracteres especiais            /
//Exe: caracteresEspeciais(Valor)  [true/false]            /
//////////////////////////////////////////////////////////*/
function caracteresEspeciais(Valor){
	var reTipo;
	reTipo = /^[\w-]*$/;
	return reTipo.test(Valor);
};

/////////////////////////////////////////////////////////////////////////////
//valida cpf                                                                /
//ValidaCpf('cpf')  [true/false]                                            /
/////////////////////////////////////////////////////////////////////////////
function ValidaCpf(cpf){
	var numeros, digitos, soma, i, resultado, digitos_iguais;
	cpf = cpf.replace( "/", "" );
	cpf = cpf.replace( "/", "" );
	cpf = cpf.replace( ",", "" );
	cpf = cpf.replace( ".", "" );
	cpf = cpf.replace( ".", "" );
	cpf = cpf.replace( ".", "" );
	cpf = cpf.replace( ".", "" );
	cpf = cpf.replace( "-", "" );
	cpf = cpf.replace( "-", "" );
	cpf = cpf.replace( "-", "" );
	cpf = cpf.replace( "-", "" );
	cpf = cpf.replace( "-", "" );
	digitos_iguais = 1;
	if (cpf.length < 11)
		return false;
	for (i = 0; i < cpf.length - 1; i++)
		if (cpf.charAt(i) != cpf.charAt(i + 1)){
			digitos_iguais = 0;
			break;
		}
	if (!digitos_iguais){
		numeros = cpf.substring(0,9);
		digitos = cpf.substring(9);
		soma = 0;
		for (i = 10; i > 1; i--)
			soma += numeros.charAt(10 - i) * i;
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(0))
			return false;
			numeros = cpf.substring(0,10);
			soma = 0;
		for (i = 11; i > 1; i--)
			soma += numeros.charAt(11 - i) * i;
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(1))
			return false;
			return true;
	}else{
		return false;
	}
}

/////////////////////////////////////////////////////////////////////////////
//valida cnpj                                                               /
//ValidaCnpj('cnpj')  [true/false]                                          /
/////////////////////////////////////////////////////////////////////////////
function ValidaCnpj(cnpj){
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
	cnpj = cnpj.replace( "/", "" );
	cnpj = cnpj.replace( "/", "" );
	cnpj = cnpj.replace( ",", "" );
	cnpj = cnpj.replace( ".", "" );
	cnpj = cnpj.replace( ".", "" );
	cnpj = cnpj.replace( ".", "" );
	cnpj = cnpj.replace( ".", "" );
	cnpj = cnpj.replace( "-", "" );
	digitos_iguais = 1;
	if (cnpj.length < 14 && cnpj.length < 15)
		return false;
	for (i = 0; i < cnpj.length - 1; i++)
		if (cnpj.charAt(i) != cnpj.charAt(i + 1)){
			digitos_iguais = 0;
			break;
		}
	if (!digitos_iguais){
		tamanho = cnpj.length - 2
		numeros = cnpj.substring(0,tamanho);
		digitos = cnpj.substring(tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--){
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
				pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(0))
			return false;
		tamanho = tamanho + 1;
		numeros = cnpj.substring(0,tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--){
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
				pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(1))
			  return false;
		return true;
	}else{
		return false;
	}
}

/////////////////////////////////////////////////////////////////////////////
//valida data                                                               /
//ValidaData('data')  [true/false]                                          /
/////////////////////////////////////////////////////////////////////////////
function ValidaData(data){
	var erro, hoje, anoAtual, barras
	erro=0;
	hoje = new Date();
	anoAtual = hoje.getFullYear();
	barras = data.split("/");
	
	if (barras.length == 3){
		dia = barras[0];
		mes = barras[1];
		ano = barras[2];
		resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= (anoAtual+100) && ano >= 1890));
		if (!resultado){
			return false;
		}else{
			return true;
		}
	} else {
		return false;
	}
}

/////////////////////////////////////////////////////////////////////////////
//Valida_('TPdigitos','2121')                   [apenas digitos]            /
//Valida_('TPdecimalPt','221,21')               [apenas decimal brasil]     /
//Valida_('TPdecimalEn','221.21')               [apenas decimal americano]  /
//Valida_('TPmoeda','1.221,21')                 [apenas valor monetário]    /
//Valida_('TPdata','05/12/2007')                [apenas valor de data]      /
//Valida_('TPemail','asda@adsad.aas')           [apenas valor de email]     /
//--------------------------------------------------------------------------/
// retorna valores [true/false]                                             /
/////////////////////////////////////////////////////////////////////////////
function Valida_(tipo,valor){
	valor = valor.trim();
	if (valor.length > 0){
		if (tipo == 'TPdigitos'){
			var reTipo = /^\d+$/;
		}else if(tipo == 'TPdecimalPt'){
			var reTipo = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
		}else if(tipo == 'TPdecimalEn'){
			var reTipo = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
		}else if(tipo == 'TPmoeda'){
			var reTipo = /^\d{1,3}(\.\d{3})*\,\d{2}$/;
		}else if(tipo == 'TPdata'){
			preValor = valor.split(' ');
			valor = preValor[0];
			var reTipo = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
		}else if(tipo == 'TPhora'){
			var reTipo = /^([01]?[0-9]|2[0-3]):[0-5]?[0-9]$/;
		}else if(tipo == 'TPemail'){
			var reTipo = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
		}else if(tipo == 'TPCep'){
			var reTipo = /\d{5}\-\d{3}/;
		}

		return reTipo.test(valor);
	}else{
		return false;
	}
}

function ValidaPlaca(v){
	strPattern = "([A-Z]{3}-[0-9]{4})"
	strOptions = ""
	var oREGEXP = new RegExp(strPattern,strOptions);
	return oREGEXP.test(v)
}

/*///////////////////////////////////////////////////////////////////////////
//valida vazio, minimo, máximo                                              /
//Coloque o nome do formulario caso seja radio ou check                     /
//ValidaVazio('form','campo')               [true(não vazio)/false(vazio)]  /
//ValidaVazio('','campo')                   [true(não vazio)/false(vazio)]  /
//ValidaVazio('','campo',8,15)                                              /
///////////////////////////////////////////////////////////////////////////*/
function ValidaVazio(formulario,campo,mini,maxi){
	var elemento = document.getElementById(campo);
	var valor, RadioCheck, val
	var reTipo = /^\d+$/;
	var erro = 0
	
	if (elemento){
		if(!elemento.type){
			/*pega o conteúdo do div/span*/
			valor = elemento.innerHTML;
			if(valor.length > 0){
				if(reTipo.test(mini)){
					if(valor.length < mini){
						erro = 1;
					};
				};
				if(reTipo.test(maxi)){
					if(valor.length > maxi){
						erro = 1;
					};
				};
				valor = valor.trim();
				if(!valor.length > 0){
					erro = 1;
				};
			}else{
				erro = 1;
			};
		}else{
			/* pega o valor dos elementos de formulário exceto [radio,check]*/
			if((elemento.type != 'checkbox')&&(elemento.type != 'radio')){
				valor = elemento.value;
				if(valor.length > 0){
					if(reTipo.test(mini)){
						if(valor.length < mini){
							erro = 1;
						};
					};
					if(reTipo.test(maxi)){
						if(valor.length > maxi){
							erro = 1;
						};
					};
					valor = valor.trim();
					if(!valor.length > 0){
						erro = 1;
					};
				}else{
					erro = 1;
				};
			/* pega o valor dos elemento [radio,check] */
			}else{
				var valor;
				RadioCheck = document.forms[formulario].elements[campo];
				if(RadioCheck){
					var radioLength = RadioCheck.length;
					if(!radioLength){
						if(RadioCheck.checked){
							valor = RadioCheck.value + ',' + valor;
						};
					};
					for(var i = 0; i < radioLength; i++){
						if(RadioCheck[i].checked){
							valor = RadioCheck[i].value + ',' + valor;
						};
					};
				};
				if(!valor){
					erro = 1;
				};
			};
		};
	}else{
		erro = 1;
	};
	
	/*verifica o resultado*/
	if(erro==0){
		return true;
	}else{
		return false;
	};
}
