formContacto 	= new Array('name', 'email', 'comments');
formQuote 		= new Array('name', 'email');
formOrder		= new Array('phone', 'mail', 'billing_name', 'billing_lname', 'billing_address', 
							'billing_city', 'billing_state', 'billing_zipcode');

function ValidarForm(fields, validaMail, campoMail, form) {
	campos = fields;
	msg = "";
	error = 0;
	GeneralError = 0;
	caracteresExtranios = new Array("!", "|", "·", "#", "$", "~", 
								   "%", "€", "&", "¬", "/", "(", 
								   ")", "?", "'", "¡", "¿", "ç", 
								   "Ç","}","`", "^","[","*","]",
								   "´","{","¨",",",";"," ");
	for(i=0;i<document.getElementById(form).elements.length;i++) {
		if(document.getElementById(form).elements[i].type == "text" || 
		document.getElementById(form).elements[i].type == "textarea") {
			cadenaActual = document.getElementById(form).elements[i].value;
			newCadena = cadenaActual.replace("=","[igual]");
			newCadena = cadenaActual.replace("\"","&quot;");
			newCadena = cadenaActual.replace("\'","&quot;");
			newCadena = cadenaActual.replace(">","&gt;");
			newCadena = cadenaActual.replace("<","&lt;");
			document.getElementById(form).elements[i].value = newCadena;
		}
	}
	for(i=0;i<campos.length;i++) {
		if(document.getElementById(campos[i]).value == "") {
			GeneralError++;
			msg += campos[i] + "\n";
		}
	}
	if(GeneralError > 0) {
		alert(msg + "fields, can't be null");
		return true;
	}
	if(validaMail == true) {
		if(document.getElementById(campoMail).value.indexOf('@') < 2) {
			//falta la @ o está en un lugar incorrecto
			error++;
		}
		if(document.getElementById(campoMail).length < 7) {
			//cantidad de caracteres inferior al mínimo aceptable
			error++;
		}
		for(i=0;i<caracteresExtranios.length;i++) {
			if(document.getElementById(campoMail).value.indexOf(caracteresExtranios[i]) != -1) {
				//email contiene caracteres extraños
				error++;
			}
		}
		if(document.getElementById(campoMail).value.indexOf('.') < 5) {
			//falta el . o está en un lugar incorrecto
			error++;
		}
		arroba = document.getElementById(campoMail).value.split("@");
		if(arroba.length != 2) {
			//no hay arroba o hay más de una
			error++;
		}
		if(error > 0) {
			alert("The e-mail entered in the e-mail field, is not a valid e-mail address.\nPlease, try again.");
			document.getElementById(campoMail).focus();
		}
	}
	if(GeneralError == 0 && error == 0) {
		document.getElementById(form).submit();
	}
}