function clearInput(el){
	if(el instanceof Array)
		for(var i=0;i<el.length;i++)
			clearInput(el[i])
	el=document.getElementById(el)
	if(el&&el.tagName.toLowerCase()=='form'){
		var a=el.getElementsByTagName('*')
		for(var i in a){
			if(a[i].value){
				if(!a[i].defaultValue)a[i].defaultValue=a[i].value
				a[i].onfocus=function(){if(this.value==this.defaultValue)this.value=''}
				a[i].onblur=function(){if(this.value=='')this.value=this.defaultValue}
			}			
			if((a[i].rel)&&(/(reset)/.test(a[i].rel)))a[i].onclick=function(){el[this.rel]();return false}
			if((a[i].rel)&&(/(submit)/.test(a[i].rel)))a[i].onclick=function(){enviarFormulario('envio.php','contact_form');return false}
		}
	}
}

function enviarFormulario(url, formid) {
	if (check()) {
		var peticion = creaAjax();
		var f = document.getElementById(formid);
		var longitudFormulario = f.elements.length;
		var cadenaFormulario = "";
		var sepCampos;
		sepCampos = "";
		for (var i=0; i <= f.elements.length-1; i++) {
		cadenaFormulario += sepCampos + f.elements[i].name + '=' + encodeURI(f.elements[i].value);
		sepCampos="&";
		}
		peticion.open("POST", url, true);
		peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
		peticion.onreadystatechange = function () {
			if (peticion.readyState == 4) {
				alert("Su formulario se ha enviado correctamente.\n\nIntentaremos responderle lo antes posible. Muchas gracias.");
				f.nombre.value = "Nombre";
				f.email.value = "Correo electrónico";
				f.mensaje.value = "Mensaje";
			}
		}
		peticion.send(cadenaFormulario);
	}
}


function check() {
	f = document.contact_form;
	error = 0;
	msg = "";
	campo = "";
	if ((f.mensaje.value==" " || f.mensaje.value=="Mensaje")) {
		error = 1;
		msg = "Debe introducir un mensaje.";
		campo = "mensaje";
	}
	if (f.email.value!="") {
		var b=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/;
		if (b.test(f.email.value)=="") {
			error  = 1;
			msg = "Debe introducir un correo electrónico válido.";
			campo = "email";
		}
	}
	if ((f.nombre.value==" " || f.nombre.value=="Nombre")) {
		error = 1;
		msg = "Debe introducir un nombre propio o de empresa.";
		campo = "nombre";
	}
	if (error) {
		alert ("Error en el formulario.\n\n · " + msg);
		f.elements[campo].select();
		return false;
	} else return true;
}

function creaAjax() {
	var XHR = false;
	
	try {
		XHR = new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e1) {
		try {
			XHR = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e2) {
			XHR = false;
		}
	}
	
	if (!XHR && (typeof XMLHttpRequest != 'undefined' || window.XMLHttpRequest)) XHR = new XMLHttpRequest();
	
	return XHR;
}
