	this.toString = function() {
		return "validador";
	};

	function validaTelefone( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");
		if (campo.value.length != 14) {
        	notificaErro( campo.id );
        	mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido !", campo, form);
        	return false;
        } else {
        	retornaCor( campo );
        	return true;
        }
	}
	
	function validaEmail( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");
		var reEmail = /^(([\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}\]))[;,]{1})+$/;
		var oEmail = campo.value;
		// O ; é necessário no final do email, então, se o usuário não colocar, é inserido um para validação.
		if (oEmail.substring(oEmail.length-1) != ";" && oEmail.substring(oEmail.length-1) != ","){
			oEmail += ";";
		}
		if ( !reEmail.test( oEmail ) ){
        	notificaErro( campo.id );
        	mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido. Quando mais de um e-mail, separar com 'vírgula (,)'.", campo, form);
        	return false;
		}else{
            retornaCor( campo );
            return true;
		}
	}

	function validaData( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");
        var dataER = ("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
        var retorno = false;
        if (!campo.value.match(dataER)){
        	retorno = true;
        }
        if (campo.value.length != 10) {
        	retorno = true;
        }
        if (retorno == true) {
      		notificaErro( campo.id );
      		mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido !", campo, form);
      		return false;
        } else {
        	retornaCor( campo );
        	return true;
        }
	}   

	function validaCep( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");	
		if (campo.value.length != 10) {
			notificaErro( campo.id );
            mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido !", campo, form);
            return false;
		}else{
			retornaCor( campo );
            return true;
		}
	}

	function validaCpf( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");
		// Contando com os caracteres especiais.
		if (campo.value.length != 14) {
			notificaErro( campo.id );
			mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido !", campo, form);
			return false;
		} else {
			retornaCor( campo );
			return true;
		}
	}
 
	function validaCnpj( campo, form ){
		var nomeCampo = $("#"+campo.id).attr("nomeCampo");
		// Contando com os caracteres especiais.
		if (campo.value.length != 18) {
			notificaErro( campo.id );
			mostraMensagem("O campo <strong>"+nomeCampo+"</strong> &eacute; inv&aacute;lido !", campo, form);
			return false;
		}else{
			retornaCor( campo );
			return true;
		}
	}

  	function toString() {
		return "funcoesValidaCliente";
	}

	function validaForm( thisform ){
		var form = document.getElementById( thisform );
		for(var i=0; i<form.length; i++){
			var campo = form.elements[i];

			if( campo.type == "text" ) {
				if (campo.getAttribute("obrigatorio") == "s" && (campo.value == null || campo.value == "")) {
					notificaErro(campo.id);
					var nomeCampo = campo.getAttribute("nomeCampo");
					mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form);
					return false;
				} else if (campo.getAttribute("mascara") == "telefone" && !(campo.value == null || campo.value == "")) {
					if (!validaTelefone( campo, form )){
						return false;
					}
				} else if (campo.getAttribute("mascara") == "email" && !(campo.value == null || campo.value == "")) {
					if (!validaEmail( campo, form )){
						return false;
					}
				} else if (campo.getAttribute("mascara") == "data" && !(campo.value == null || campo.value == "")) {
					if (!validaData( campo, form )){
						return false;
					}
				} else if (campo.getAttribute("mascara") == "cep" && !(campo.value == null || campo.value == "")) {
					if (!validaCep( campo, form )){
						return false;
					}
				} else if (campo.getAttribute("mascara") == "cpf" && !(campo.value == null || campo.value == "")) {
					if (!validaCpf( campo, form )){
						return false;
					}
				} else if (campo.getAttribute("mascara") == "cnpj" && !(campo.value == null || campo.value == "")) {
					if (!validaCnpj( campo, form )){
						return false;
					}
				} else {
					retornaCor( campo );
					$("#msg_"+campo.id).hide();
				}
			}else{
				if(campo.type=="select-one"){
					if ( campo.getAttribute("obrigatorio") == "s" && (campo.value == null || campo.value == "" || campo.value=="TipoResp" || campo.value=="0") ) {
						notificaErro( campo.id );
						var nomeCampo = campo.getAttribute("nomeCampo");
						mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form );
						return false;
					}else{
						retornaCor( campo );
					}
				}else if (campo.type=="radio"){
					if ( campo.getAttribute("obrigatorio") == "s" && campo.checked == false ) {
						notificaErro( campo.id );
						var nomeCampo = campo.getAttribute("nomeCampo");
						mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form );
						return false;
					}
				}else if (campo.type=="checkbox"){
					if ( campo.getAttribute("obrigatorio") == "s" && campo.checked == false ) {
						notificaErro( campo.id );
						var nomeCampo = campo.getAttribute("nomeCampo");
						mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form );
						return false;
					}
				}else if (campo.type=="textarea"){
					if ( campo.getAttribute("obrigatorio") == "s" && (campo.value == null || campo.value == "") ) {
						notificaErro( campo.id );
						var nomeCampo = campo.getAttribute("nomeCampo");
						mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form );
						return false;
					}else{
						retornaCor( campo );
					}
				}else if (campo.type=="password"){
					if ( campo.getAttribute("obrigatorio") == "s" && (campo.value == null || campo.value == "") ) {
						notificaErro( campo.id );
						var nomeCampo = campo.getAttribute("nomeCampo");
						mostraMensagem("O campo <strong>" + nomeCampo + " </strong>&eacute; obrigat&oacute;rio!", campo, form );
						return false;
					}else{
						retornaCor( campo );
					}
				}
			}
			$("#msg_"+campo.id).hide();
		}
        return true;
	}
	
  	var backgroundColor;
    var color;
  
    function notificaErro( idElemento ){
    	var oElemento = document.getElementById(idElemento);
    	backgroundColor = oElemento.style.backgroundColor;
    	color = oElemento.style.color;
    	oElemento.style.backgroundColor = "#F2F2F2"; //"#FFFFCC"; 
    	oElemento.style.color = "#FF0000";
    	oElemento.focus();
    }

    function retornaCor( oElemento ){
	    backgroundColor = oElemento.style.backgroundColor = "";
	    color = oElemento.style.color = "";
	    oElemento.style.backgroundColor = backgroundColor ; //"#FFFFFF"; //
	    oElemento.style.color = color; //"#858495";
	    $("#divMensagem").hide();
    }

    function mostraMensagem( msg, divMsg, form ) {
    	escondeMensagens( form, divMsg );
    	$("#msg_"+divMsg.id).html( msg );
    	$("#msg_"+divMsg.id).show();
    	$("#divMensagem").html( msg );
    	$("#divMensagem").show();
    }
	
	function formataDataParaServidor( data ) {
		var data = data.replace("/","-");
		data = data.replace("/", "-");
		dataComoArray = data.split("-");
		var dataFinal = dataComoArray[2] +"-"+ dataComoArray[1]+"-"+ dataComoArray[0]; 	
		alert(dataFinal);
	}

	function formataDataParaCliente( data ) {
		var data = data.replace("-","/");
		data = data.replace("-", "/");
		dataComoArray = data.split("/");
		var dataFinal = dataComoArray[2] +"/"+ dataComoArray[1]+"/"+ dataComoArray[0]; 	
		alert(dataFinal);
	}
	
	function escondeMensagens( form, campo ){
		for(var i=0; i< form.length; i++){
			var umCampo = form.elements[i];
			if (( umCampo.type == "text" || umCampo.type == "select-one") && umCampo.id != campo.id ) {
				$("#msg_"+umCampo.id).hide();
			}
		}
	}