function checkMail(address){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		return filter.test(address);
}

function checkPostalCode(name, code){
	if(!name || !code) return true;

	var provincia = new Array("Álava", "Albacete", "Alicante", "Almería", "Asturias", "Ávila", "Badajoz", "Barcelona", "Burgos", "Cáceres", "Cádiz", "Cantabria", "Castellón de la Plana", "Ceuta", "Ciudad Real", "Córdoba", "Coruña, A", "Cuenca", "Girona", "Granada", "Guadalajara", "Guipúzcoa", "Huelva", "Huesca", "Illes Balears", "Jaén", "León", "Lleida", "Lugo", "Madrid", "Málaga", "Melilla", "Murcia", "Navarra", "Ourense", "Palencia", "Palmas, Las", "Pontevedra", "Rioja, La", "Salamanca", "Santa Cruz de Tenerife", "Segovia", "Sevilla", "Soria", "Tarragona", "Teruel", "Toledo", "Valencia", "Valladolid", "Vizcaya", "Zamora", "Zaragoza",
				"Las Palmas", "La Rioja", "Rioja", "A Coruña", "Coruña, La", "La Coruña", "Castellón", "Islas Baleares", "Orense", "Tenerife", "Gerona", "Gipuzkoa", "Bizkaia", "Lérida", "Araba", "Baleares"
			);

	var codPostal = new Array("01", "02", "03", "04", "33", "05", "06", "08", "09", "10", "11", "39", "12", "51", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "07", "23", "24", "25", "27", "28", "29", "52", "30", "31", "32", "34", "35", "36", "26", "37", "38", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50",
				"35", "26", "26", "15", "15", "15", "12", "07", "32", "38", "17", "20", "48", "25", "01", "07"
			);

	for(i = 0; i < provincia.length; i++)
		if(parseTilde(name.toLowerCase()) == parseTilde(provincia[i].toLowerCase()))
			if(code.substring(0, 2) != codPostal[i])
				return false;
	return true;
}

function parseTilde(text){
	text = text.replace(/á/g, "a");
	text = text.replace(/é/g, "e");
	text = text.replace(/í/g, "i");
	text = text.replace(/ó/g, "o");
	text = text.replace(/ú/g, "u");
	return text;
}

function checkForm(form){
	var dot	= "· ";
	var req	= "Debe escribir ";
	var name = " nombre";
	var co	= " de su empresa";
	var e_m	= " correo electrónico";
	var bad	= " no es válido";
	var priv = "Debe aceptar las condiciones de la política de privacidad";
	var cr	= ".\n";

	var msg	= "";

	switch(form.name){
		case "boletin":
			if(!form.email.value)
								msg += dot + req + "su" + e_m + cr;
			else if(!checkMail(form.email.value))
								msg += dot + "Su" + e_m + bad + cr;
			if(!form.nombre.value)			msg += dot + req + "su" + name + cr;
			if(!form.empresa.value)			msg += dot + req + "el" + name + co + cr;
			if(!form.privacidad.checked)		msg += dot + priv + cr;
			break;

		case "empleo":
			if(!form.nombre.value)			msg += dot + req + "su" + name + cr;
			if(!form.apellidos.value)		msg += dot + req + "sus apellidos" + cr;
			if(!form.email.value)
								msg += dot + req + "su" + e_m + cr;
			else if(!checkMail(form.email.value))
								msg += dot + "Su" + e_m + bad + cr;
			break;

		case "contacto":
			if(!form.nombre.value)			msg += dot + req + "su" + name + cr;
			if(!form.empresa.value)			msg += dot + req + "el" + name + co + cr;
			if(!form.email.value)
								msg += dot + req + "su" + e_m + cr;
			else if(!checkMail(form.email.value))
								msg += dot + "Su" + e_m + bad + cr;
			if(	!form.mensaje.value ||
				(form.mensaje.value == "Escriba aquí sus dudas o sugerencias")
			)					msg += dot + req + "un mensaje.\n";
			
			if(!form.privacidad.checked)		msg += dot + priv + cr;
			break;

		case "empresa_persona":
			if(!form.empresa.value)			msg += dot + req + "el" + name + co + cr;
			if(!form.direccion.value)		msg += dot + req + "la dirección" + co + cr;
			if(!form.poblacion.value)		msg += dot + req + "la población" + co + cr;
			if(!form.provincia.value)		msg += dot + req + "la provincia" + co + cr;
			if(!form.codpostal.value)		msg += dot + req + "el código postal" + co + cr;
			if(!checkPostalCode(form.provincia.value, form.codpostal.value))
								msg += dot + "El código postal \"" + form.codpostal.value + "\" no corresponde a la provincia \"" + form.provincia.value + "\"" + cr;
			if(!form.contacto.value)		msg += dot + req + "su" + name + cr;
			if(!form.email.value)
								msg += dot + req + "su" + e_m + cr;
			else if(!checkMail(form.email.value))
								msg += dot + "Su" + e_m + bad + cr;
			if(!form.telefono.value)		msg += dot + req + "su número de teléfono" + cr;
			if(!form.privacidad.checked)		msg += dot + priv + cr;
			break;
	}

	if(msg){
		msg = "Hay errores en el formulario:\n\n" + msg;
		alert(msg);
		return false;
	}
}
