function formCampoColor(campo){
    if(campo.className == undefined){
        campo.className = " highLight";
    }else{
        a = campo.className.split(" highLight");
        campo.className += (a.length > 1) ? a[0] : " highLight";
    }
	campo.onkeyup = function(){ formCampoColorRevert(campo); }
}

function formCampoColorRevert(campo){
        a = campo.className.split(" highLight");
        campo.className = (a.length > 1) ? campo[0] : "";
}

function validaForm(form, sendForm){

    var alertError   = "O(s) Campo(s) abaixo está(ão) preenchido(s) incorretamente:\n\n";
    var invalidField = new Array();
    var formAlerts   = new Array(
                        "",
                        "vazio",
                        "incorreto ou vazio"
                      );

    for(i=0; i < form.length; i++){
        value     = form[i].value;
        field     = form[i].getAttribute("field");

        if(field == null) continue;

        if(field.split(":").length > 1){
            fieldSplt = field.split(":");
            field    = fieldSplt[0];
            required = fieldSplt[1];
        }else{
            required = true;
        }

        //Validação de Texto
        if(field == "text"){
        	if(value == ""){
                a = invalidField.length
                invalidField[a] = new Array();
                invalidField[a]["field"] = form[i];
                invalidField[a]["alert"] = formAlerts[1];
            }
        }

        //Validação de E-Mail
        if(field == "mail"){
            var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        	if(!filter.test(value)){
                a = invalidField.length
                invalidField[a] = new Array();
                invalidField[a]["field"] = form[i];
                invalidField[a]["alert"] = formAlerts[2];
            }
        }

        //Validação de Telefone
        if(field == "phone"){
            var filter = /^(\+\d)*\s*(\(\d{2,3}\)\s*)*\d{4}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;
        	if(!filter.test(value) && (required == "false" && value != "")){
                a = invalidField.length
                invalidField[a] = new Array();
                invalidField[a]["field"] = form[i];
                invalidField[a]["alert"] = formAlerts[2];
            }
        }

    }

    if(invalidField.length > 0){
        for(i = 0; i < invalidField.length; i++){
            if(i == 0) invalidField[i]["field"].focus();
            invalidField[i]["field"].value = "";

            formCampoColor(invalidField[i]["field"]);
            alertError += "   - "+invalidField[i]["field"].name+" : "+ invalidField[i]["alert"]+"\n";
        }
        alert(alertError);
    }else{
		if(!sendForm){
			alert('Não foi possível enviar o e-mail');
		}else if(sendForm == 'sendSajax'){
			content = "";
			for(i=0; i < form.length-1; i++){
				content += form[i].value+"@||@";
			}
			x_sendMail(content, returnMail);
		}else{
			form.submit();
		}
    }
}

function returnMail(returnString){
	(returnString == "ERRO") ? alert("Não foi possível enviar!") : alert("Mensagem enviada!");
}