function validaEmail(correo) {
    //Valida el email
    var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
    if (filter.test(correo)) {
        return true;
    } else {
        return false;
    }
}

function validaForm(f) {
    //Valida los campos del formulario
    var msg = "";
    if (f.elements['nombre'].value == "") {msg += "- Debe rellenar el campo \"Nombre / Empresa\".\n";}
    if (f.elements['correo'].value == "") {msg += "- Debe rellenar el campo \"Email\".\n";}
        else {if (validaEmail(f.elements['correo'].value) == false) {msg += "- El email debe ser v\u00e1lido.\n";}}
    if (f.elements['asunto'].value == "") {msg += "- Debe rellenar el campo \"Asunto\".\n";}
    if (f.elements['comentarios'].value == "") {msg += "- Debe escribir un mensaje.\n";}

    return msg;
}

function enviar(f) {
    //Valida el formulario
    var msg = validaForm(f);
    //Si el formulario no es válido muestra un alert con los errores encontrados, en caso contrario envia el correo.
    if (msg != "") {
        alert(msg);
    } else {
	var vars = 'nombre=' + f.elements['nombre'].value;
	vars += '&correo=' + f.elements['correo'].value;
	vars += '&telefono=' + f.elements['telefono'].value;
	vars += '&asunto=' + f.elements['asunto'].value;
	vars += '&comentarios=' + f.elements['comentarios'].value;

	//GET
	if (window.XMLHttpRequest) {
		var req = new XMLHttpRequest();
		req.open("GET", 'scripts/mail.php?' + vars, false);
		req.send(null);
	} else if (window.ActiveXObject) {
		var req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.open("GET", 'scripts/mail.php?' + vars, false);
			req.send();
		}
	}

	//Maneja el resultado
	var enviado = false;
	if(req.status==200)
		if(req.responseText == '')
			enviado = true;
		if(enviado) {
		f.reset(); //Borra los campos del formulario
		alert('El mensaje se ha enviado correctamente.');
	} else {
		alert('No se ha podido enviar el mensaje, por favor int\u00e9ntelo de nuevo.');
	}
    }
}
