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; 
}


//Funciones de validacion
function valida_email(email)
{
	if (!(/[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/.test(email)))
	{
		return (0);
	}
}

function calcular_edad(fecha)
{ 
    //calculo la fecha de hoy 
    hoy=new Date(); 

    //calculo la fecha que recibo y la descompongo en un array
    var array_fecha = fecha.split("/"); 
	
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length!=3) 
       return false; 

    //compruebo que los ano, mes, dia son correctos 
    var ano; 
    ano = parseInt(array_fecha[2]); 
    if (isNaN(ano)) 
       return false; 

    var mes; 
    mes = parseInt(array_fecha[1]); 
    if (isNaN(mes)) 
       return false; 

    var dia; 
    dia = parseInt(array_fecha[0]); 
    if (isNaN(dia)) 
       return false; 

    //si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano<=99) 
       ano +=1900; 

    //resto los años de las dos fechas 
    edad=hoy.getYear()- ano - 1; //-1 porque no se si ha cumplido años ya este año 

    //si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido 
    if (hoy.getMonth() + 1 - mes < 0) //+ 1 porque los meses empiezan en 0 
	{
	   return edad; 
	}
	
    if (hoy.getMonth() + 1 - mes > 0) 
	{
	   return edad+1; 
	}

    //entonces es que eran iguales. miro los dias 
    //si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido 
    if (hoy.getUTCDate() - dia >= 0) 
       return edad + 1; 
    return edad; 
} 

function eliminaEspacios(cadena)
{
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function validaIngreso(valor)
{
	var reg=/(^[a-zA-Z0-9_.-]{3,12}$)/;
	if(reg.test(valor)) return true;
	else return false;
}

function limpiar() 
{ 
    document.getElementById("div_nombre").innerHTML   = ""; 
	document.getElementById("div_alias").innerHTML    = "";
	document.getElementById("div_correo").innerHTML   = "";
	document.getElementById("div_fecnac").innerHTML   = "";
	document.getElementById("div_paispro").innerHTML  = "";
	document.getElementById("div_conocido").innerHTML = "";
	document.getElementById("div_contra1").innerHTML = "";
	document.getElementById("div_contra2").innerHTML = "";
	document.getElementById("div_sexo").innerHTML = "";
}

function limpiacajas()
{
	document.getElementById("v_nombre").value   = "";
	document.getElementById("v_alias").value    = "";
	document.getElementById("v_correo").value   = "";
	document.getElementById("v_dia").value      = "";
	document.getElementById("v_mes").value      = "";
	document.getElementById("v_anio").value     = "";
	document.getElementById("v_paispro").value  = "";
	document.getElementById("v_conocido").value = "";
	document.getElementById("v_contra1").value  = "";
	document.getElementById("v_contra2").value  = "";
	document.getElementById("div_sexo").innerHTML = "";
}
//Fin funciones de validacion


function nuevoEvento(evento)
{
	//RECEPCION
	if(evento=="ingreso")
	{	
		//divs
		var div_ingreso  = document.getElementById("div_ingreso");
		var div_nombre   = document.getElementById("div_nombre");
		var div_alias	 = document.getElementById("div_alias");
		var div_correo   = document.getElementById("div_correo");
		var div_contra1  = document.getElementById("div_contra1");
		var div_contra2  = document.getElementById("div_contra2");
		var div_sexo  	 = document.getElementById("div_sexo");
		var div_fecnac   = document.getElementById("div_fecnac");
		var div_paispro  = document.getElementById("div_paispro");
		var div_conocido = document.getElementById("div_conocido");
				
		//inputs
		var r_nombre	 = document.getElementById("v_nombre").value;
		var r_alias		 = document.getElementById("v_alias").value;
		var r_correo	 = document.getElementById("v_correo").value;
		var r_contra1	 = document.getElementById("v_contra1").value;
		var r_contra2	 = document.getElementById("v_contra2").value;
		var r_sexo  	 = document.getElementById("v_sexo").value;	
		var r_dia	 	 = document.getElementById("v_dia").value;
		var r_mes	 	 = document.getElementById("v_mes").value;
		var r_anio	 	 = document.getElementById("v_anio").value;
		var r_fecnac	 = r_dia+"/"+r_mes+"/"+r_anio;	
		var r_paispro	 = document.getElementById("v_paispro").value;
		var r_conocido	 = document.getElementById("v_conocido").value;
					
		//boton
		var btn_ingreso	 = document.getElementById("btn_ingreso");
		var textoAccion  = "Enviando...";
		//div_ingreso.innerHTML= '<img src="imagenes/carga.gif">';
	}
	else if(evento=="verificacion")
	{	
		//divs
		var div_alias  = document.getElementById("div_alias");
		
		//inputs
		var r_alias		= document.getElementById("v_alias").value;
		
		//boton
		var btn_alias	= document.getElementById("btn_alias");
		var textoAccion	= "Comprobando...";
		div_alias.innerHTML = '<img src="imagenes/carga.gif">';
	}
	
	
	//PROCESO 
	if(evento=="ingreso")
	{	
		limpiar();
		var errores = 0;
		r_nombre	= eliminaEspacios(r_nombre);
		r_alias		= eliminaEspacios(r_alias);
		r_correo	= eliminaEspacios(r_correo);
		r_contra1   = eliminaEspacios(r_contra1);
		r_contra2   = eliminaEspacios(r_contra2);
		r_sexo   	= eliminaEspacios(r_sexo);	
		r_dia   	= eliminaEspacios(r_dia);
		r_mes   	= eliminaEspacios(r_mes);
		r_anio   	= eliminaEspacios(r_anio);		
		r_paispro	= eliminaEspacios(r_paispro);
		r_conocido	= eliminaEspacios(r_conocido);
			

		//Validaciones
		if(r_nombre=="") 
		{
			div_nombre.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Nombre vacío";
			errores++;
		}
		
		if(r_nombre!="")
		{
			if(r_nombre.length<6) 
			{
				div_nombre.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Nombre debe contener 6 caracteres como mínimo";
				errores++;
			}
		}
		
		if(r_alias=="") 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Alias vacío";
			errores++;
		}
		else if(r_alias.length<3) 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Alias debe tener 3 caracteres como mínimo. Escribe un alias distinto.";
			errores++;
		}
		else if(!validaIngreso(r_alias)) 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Sólo puede contener letras, números, puntos (.), guiones (-) y subrayados (_). No se admiten caracteres especiales ni acentuados ni espacios en blanco";
			errores++;
		}
		
		if(r_correo=="") 
		{
			div_correo.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Correo electrónico vacío";
			errores++;
		}		
		else if(valida_email(r_correo)==0) 
		{
			div_correo.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Escribe tu correo electrónico en el siguiente formato: tunombre@ejemplo.com.";
			errores++;
		}
				
		if(r_contra1=="") 
		{
			div_contra1.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Contraseña vacía";
			errores++;
		}
		else if(r_contra1.length<6)
		{
			div_contra1.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Contraseña debe ser de 6 - 15 caracteres";
			errores++;	
		}
		else if(r_contra1!=r_contra2) 
		{
			div_contra1.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Contraseñas no coinciden";
			errores++;
		}
		
		if(r_contra2=="") 
		{
			div_contra2.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Reescribir Contraseña vacía";
			errores++;
		}
		
		if(r_sexo=="") 
		{
			div_sexo.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Seleccione sexo";
			errores++;
		}
		
		if(r_dia=="" || r_mes=="" || r_anio=="") 
		{
			div_fecnac.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Fecha de Nacimiento incompleta";
			errores++;
		}	
		
		/*if(r_dia!="" && r_mes!="" && r_anio!="") 
		{
			if(r_fecnac!="")
			{
				if(calcular_edad(r_fecnac)<13) 
				{
					div_fecnac.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Tiene que tener 13 años como mínimo";
					errores++;
				}	
			}
		}*/
		
		if(r_paispro=="") 
		{
			div_paispro.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;País vacío";
			errores++;
		}
		
		if(r_conocido=="") 
		{
			div_conocido.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Como nos conoció : vacío";
			errores++;
		}
		
		if(errores == 0)
		{
			limpiacajas();
			btn_ingreso.disabled = true; 
			btn_ingreso.value	 = textoAccion;
			div_ingreso.innerHTML= '<img src="imagenes/carga.gif">';
			
			var ajax=nuevoAjax();
			ajax.open("POST", "registrate_proceso.php5", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.send("v_nombre="+r_nombre+"&accion="+evento+"&v_alias="+r_alias+"&v_correo="+r_correo+"&v_contra1="+r_contra1+"&v_fecnac="+r_fecnac+"&v_paispro="+r_paispro+"&v_conocido="+r_conocido+"&v_sexo="+r_sexo);
			
			ajax.onreadystatechange=function()
			{
				if (ajax.readyState==4)
				{
					btn_ingreso.disabled  = false; 
					btn_ingreso.value     = "Enviar";
					div_ingreso.innerHTML = ajax.responseText;		
				}
			}
		}
	}
	else if(evento=="verificacion")
	{	
		//Elimina espacios en blanco der e izq
		r_alias=eliminaEspacios(r_alias);
		
		//Validaciones
		if(r_alias=="") 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Alias vacío";
		}
		else if(r_alias.length<3) 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Alias debe tener 3 caracteres como mínimo";
		}
		else if(!validaIngreso(r_alias)) 
		{
			div_alias.innerHTML = "<img src='imagenes/icon_error.gif' border='0'>&nbsp;Sólo puede contener letras, números, puntos (.), guiones (-) y subrayados (_). No se admiten caracteres especiales ni acentuados ni espacios en blanco";
		}
		else
		{
			btn_alias.disabled = true; 
			r_alias.disabled   = true;
			r_alias.value	   = textoAccion;
			
			var ajax=nuevoAjax();
			ajax.open("POST", "registrate_proceso.php5", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.send("accion="+evento+"&v_alias="+r_alias);
			
			ajax.onreadystatechange=function()
			{
				if (ajax.readyState==4)
				{
					r_alias.value      = r_alias;
					btn_alias.disabled = false; 
					r_alias.disabled   = false;			
					div_alias.innerHTML=ajax.responseText;		
				}
			}
		}
	}
}
