function Verifica(idCampo, NomeCampo, exibeAlert){
	voltaClass(idCampo);
	if( idCampo.value.length < 1 || isTipo(idCampo)==false ){
		Alerta(idCampo, NomeCampo, exibeAlert);
		return false;
	}else{
		return true;
	}
}

function Alerta(idCampo, NomeCampo, exibeAlert){
	if(idCampo.type.lastIndexOf('select') != -1){
		idCampo.onclick = function() { voltaClass(this); };
	}else{
		idCampo.onkeydown = function() { voltaClass(this); };
	}
	idCampo.className = idCampo.className + ' verificarCampo';
	if (exibeAlert){ alert("Preencha corretamente o campo "+ NomeCampo ); }
	idCampo.focus();
}

function voltaClass(obj){
	obj.className = obj.className.replace('verificarCampo', '');
}

function isTipo(obj){
	//http://www.mhavila.com.br/topicos/web/valform.html
	var reTipo = obj.getAttribute("tipo");
	var regExp = "";
	
	if (reTipo != ""){
		switch (reTipo) {
		   case "numerico" :  	regExp = /^\d+$/; break;
		   case "decimal_PT" :	regExp = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/; break;
		   case "decimal_EN" :  regExp = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/; break;
		   case "moeda" :		regExp = /^\d{1,3}(\.\d{3})*\,\d{2}$/; break;
		   case "data" :		regExp = /^((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}$/; break;
		   case "hora" :		regExp = /^([0-1]\d|2[0-3]):[0-5]\d$/;  break;
		   case "email" :		regExp = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/; break;
		   case "cep" :			regExp = /^((^\d{5}$)|(^\d{8}$))|(^\d{5}-\d{3}$)/; break;
		   case "CPF" :			return isCpf(obj.value); break;
		   case "CNPJ" :		return isCnpj(obj.value); break;
		   case "CpfCnpj" :		return isCpfCnpj(obj.value); break;
		}
	}
	if(regExp != ""){ return regExp.test(obj.value); }
}

//////////////////////////////////////////////////////////////////////////
// Para usar validação de CNPJ ou CPF, lnkar o arquivo CpfCnpj.js
//////////////////////////////////////////////////////////////////////////

function MascaraCpfCnpj(obj){
	if( isCpf(obj.value) ){
		obj.value=formatCpfCnpj(obj.value, true, false);
	}
	else{
		if( isCnpj(obj.value) ){
			obj.value=formatCpfCnpj(obj.value, true, true);	}
	}
}