/* FUNCIONES GLOBALES*/

	/* Crea objeto Ajax*/
	function nuevoAjax(){
		var xmlhttp=false;
		try {
			xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try	{
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(E) { xmlhttp=false; }
		}
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
		return xmlhttp;
	}

	/* Comprueba si el parámetro es una dirección de email*/
	function isEmail(valor){
		var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
		if (valor.length == 0 ) return false;
		if (filter.test(valor))
			return true;
		else
			return false;
	}

	function isNick(valor){
		var filter=/^[a-zçÇñÑ][a-z0-9_\-\.çÇñÑ·]+$/;
		if (valor.length == 0 ) return false;
		if (filter.test(valor))
			return true;
		else
			return false;
	}
	function isURL(valor){
		var filter=/^(http|https|ftp):\/\/[a-zA-Z0-9-. ]+\..+$/;
		if (valor.length == 0 ) return false;
		if (filter.test(valor))
			return true;
		else
			return false;
	}

/* Valida formulario y lo envía mediante submit o ajax */
function validar(archivo, form, obligatorio){
	var Formulario = document.getElementById(form);
	var longitudFormulario = Formulario.elements.length;
    var cadenaFormulario = ""
    var sepCampos ="";
	var info="";
	var oblig = obligatorio.split('-');
	for (i = 0; i <  Formulario.elements.length; i++) {
		switch (oblig[i]){
			case '1': // Campo obligatorio
				if (Formulario.elements[i].value == "")
					info = "Todos los datos marcados con * son obligatorios. Rell&eacute;nalos correctamente por favor.<br />";
				break;
			case '2': // Campo repetición de contraseña
				
				if(Formulario.elements[i-1].value != Formulario.elements[i].value)
					info = "Los campos contrase&ntilde;a no coinciden. Rell&eacute;nalos correctamente por favor.<br />";
				break;
			case '3': // Campo e-mail
				if(!(isEmail(Formulario.elements[i].value)))
					info =  "Introduce una direcci&oacute;n de e-mail valida<br />";
				break;
			case '4': // Campo nick
				if(!(isNick(Formulario.elements[i].value)))
					info = "El nick contiene caracteres no validos como may&uacute;sculas, tildes o no empieza por una letra";
				break;
			case '5': // Campo url
				if (Formulario.elements[i].value != ""){
					if(!(isURL(Formulario.elements[i].value))){
						info = "El formato de la p&aacute;gina no es correcto. Utiliza un formato http://www.dominio.ext";
					}
				}
		}
		cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
  	   	sepCampos="&";
	}

	if(info!=""){
		document.getElementById("resultado").innerHTML= info;
		return false;
	}
	if(archivo!=''){
		ajax=nuevoAjax();
		ajax.open("POST", archivo, true);
		ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');

		ajax.onreadystatechange=function(){
			if (ajax.readyState==1){
				document.getElementById("resultado").innerHTML="Enviando...";
			}
			if (ajax.readyState==4){
				if(ajax.responseText.substring(0,5) != 'ERROR'){
					Formulario.style.display = "none";
					Formulario.reset();
				}
				document.getElementById("resultado").innerHTML= ajax.responseText;
			}
		}
		ajax.send(cadenaFormulario+"&ajax=1");
	}else{
		Formulario.submit();
	}
}
/* Envía por get una serie de parámetros */
function enviarAjaxGet(archivo, capa, cadenaGet){
	var resultado = document.getElementById(capa);
	if(cadenaGet.search('del=1') == -1)
		confirmacion = true;
	else var confirmacion = confirm("Seguro que es eso lo que quieres hacer?");//Preguntamos si esta seguro de realizar la accion
	if(confirmacion){
		ajax=nuevoAjax();
		ajax.open("get", archivo+"?"+cadenaGet+"&ajax=1", true);
		ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
	
		ajax.onreadystatechange=function(){
			if (ajax.readyState==1){
				resultado.innerHTML="Procesando...";
			}
			if (ajax.readyState==4){
				resultado.innerHTML= ajax.responseText;
			}
		}
		ajax.send(null);
	}
}