function validarEmail(mail){
    //do a basic check for null, zero-length string, ".", "@",
    //and the absence of spaces
    if (mail == null || mail.length == 0 ||
        mail.indexOf(".") == -1 ||
        mail.indexOf("@") == -1 ||
        mail.indexOf(" ") != -1){
        alert("Comprueba que tu email sea correcto");
       
        return false;
    }
	else return true;
}
function validarCondicion(cond){
    //do a basic check for null, zero-length string, ".", "@",
    //and the absence of spaces
    if (cond == false ){
        alert("Debe aceptar las condiciones de registro para poder continuar.");
       
        return false;
    }
	else return true;
}
function validarClave(pw1,pw2) {
var invalid = " "; // Invalid character is a space
var minLength = 4; // Minimum length
var long1 = pw1.length;
// check for a value in both fields.
if (pw1 == '' || pw2 == '') {
alert('Escriba la contraseña dos veces.');
return false;
}
// check for minimum length
if (long1 < minLength) {
alert('Su contraseña debe tener al menos ' + minLength + ' caracteres de largo. Pruebe de nuevo.');
return false;
}
// check for spaces
if ( pw1.indexOf(invalid) != -1) {
alert("Los espacios no están permitidos.");
return false;
}
else {
if (pw1 != pw2) {
alert ("No ha escrito la misma contraseña dos veces. Pruebe de nuevo.");
return false;
}
else {
return true;
      }
  }
}


function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	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)
{
	/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
	valido, FALSE en caso contrario */
	var reg=/(^[a-zA-Z0-9._@ ]{4,40}$)/;
	if(reg.test(valor)) return true;
	else return false;
}

function nuevoEvento(evento)
{
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("error");

	// koko
	var divVerificado=document.getElementById("demoDer");
	var divRegistrado=document.getElementById("demo");



	// k

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="ingreso")
	{
		var input=document.getElementById("ingreso");
		
		//koko
		var inputClave=document.getElementById("ing_clave");
		var inputClave2=document.getElementById("ing_clave2");
		var clave=inputClave.value;
		var clave2=inputClave2.value;

		var inputCategoria=document.getElementById("user_categoria");
		var inputEmail=document.getElementById("user_email");
		var inputUrl=document.getElementById("user_url");
		var inputTelefono=document.getElementById("user_telefono");
		var inputCiudad=document.getElementById("user_ciudad");
		var inputProvincia=document.getElementById("user_provincia");

		var inputCondicion=document.getElementById("condicion");

		// k
		
		// Boton presionado
		var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		var valor=input.value;
		var user_categoria=inputCategoria.value;
		var user_email=inputEmail.value;
		var user_url=inputUrl.value;
		var user_telefono=inputTelefono.value;
		var user_ciudad=inputCiudad.value;
		var user_provincia=inputProvincia.value;
		var valorCond=inputCondicion.checked;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Ingresando...";
		
		valor=eliminaEspacios(valor);
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
		if(!validarEmail(user_email) || !validarCondicion(valorCond)) 
		{
			divMensaje.innerHTML="Compruebe su e-mail y acepte las condiciones de registro";
		}
		else
		{
			//if(!validarCondicion(valorCond)) 
			//	{
			//divMensaje.innerHTML="Acepte las condiciones";			
			//}
			
			// Deshabilito inputs y botones para evitar dobles ingresos
			boton.disabled=true; input.disabled=true;  clave.disabled=true;  clave2.disabled=true;  
			input.value=textoAccion;
		
			// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
			var ajax=nuevoAjax();
			ajax.open("POST", "lib/comprobar_disponibilidad_proceso.php", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.send(evento+"="+valor+"&clave="+clave+"&clave2="+clave2+"&user_categoria="+user_categoria+"&user_email="+user_email+"&user_url="+user_url+"&user_telefono="+user_telefono+"&user_ciudad="+user_ciudad+"&user_provincia="+user_provincia);
			ajax.onreadystatechange=function()
				{
					if (ajax.readyState==4)
					{
					// Habilito nuevamente botones e inputs
					input.value="";
					boton.disabled=false; input.disabled=false; clave.disabled=false;  clave2.disabled=false; 
					// Muestro el mensaje enviado desde el servidor
				
					//koko
			
					divRegistrado.innerHTML=ajax.responseText;
				
				// koko
					}
				}
		}
	}
	else
	{
		var inputClave=document.getElementById("clave");
		var inputClave2=document.getElementById("clave2");
		var clave=inputClave.value;
		var clave2=inputClave2.value;
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
		
		valor=eliminaEspacios(valor);
		// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
		if(!validaIngreso(valor)) 
		{
			divMensaje.innerHTML="Compruebe que la longitud del usuario es de al menos 4 caracteres y que son alfanum&eacute;ricos";
		}
		else if(!validarClave(clave,clave2) ){
			divMensaje.innerHTML="Compruebe que la longitud es de al menos 4 caracteres y que la confirmaci&oacute;n de la clave es adecuada";
		}

		else
		{

			// Deshabilito inputs y botones para evitar dobles ingresos
			boton.disabled=true; input.disabled=true;  clave.disabled=true;  clave2.disabled=true;  
			input.value=textoAccion;
		
			// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
			var ajax=nuevoAjax();
			ajax.open("POST", "lib/comprobar_disponibilidad_proceso.php", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.send(evento+"="+valor+"&clave="+clave+"&clave2="+clave2);
			ajax.onreadystatechange=function()
				{
					if (ajax.readyState==4)
						{
						// Habilito nuevamente botones e inputs
						input.value="";
						boton.disabled=false; input.disabled=false; clave.disabled=false;  clave2.disabled=false; 
						// Muestro el mensaje enviado desde el servidor
				
						divVerificado.innerHTML=ajax.responseText;
						divMensaje.innerHTML=" ";
						}
						
				}
		}
	}
	
}

function actualizar(evento)
{
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("error");


	var divVerificado=document.getElementById("principal");

	if(evento=="perfil")
	{
		var inputUsuario=document.getElementById("usuario");
		var inputOcupacion=document.getElementById("user_ocupacion");
		var inputCategoria=document.getElementById("user_categoria");
		var inputEmail=document.getElementById("user_email");
		var inputUrl=document.getElementById("user_url");
		var inputTelefono=document.getElementById("user_telefono");
		var inputCiudad=document.getElementById("user_ciudad");
		var inputProvincia=document.getElementById("user_provincia");

		// k
		
		// Boton presionado
		var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		var usuario=inputUsuario.value;
		var user_ocupacion=inputOcupacion.value;
		var user_categoria=inputCategoria.value;
		var user_email=inputEmail.value;
		var user_url=inputUrl.value;
		var user_telefono=inputTelefono.value;
		var user_ciudad=inputCiudad.value;
		var user_provincia=inputProvincia.value;

		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Ingresando...";

	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
		if(!validarEmail(user_email)) 
		{
			divMensaje.innerHTML="Compruebe que su e-mail sea correcto";
		}
 
		else
		{

			// Deshabilito inputs y botones para evitar dobles ingresos

			user_provincia.value=textoAccion;
		

			var ajax=nuevoAjax();
			ajax.open("POST", "lib/actualizar.php", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.send(evento+"=perfil&usuario="+usuario+"&user_ocupacion="+user_ocupacion+"&user_categoria="+user_categoria+"&user_email="+user_email+"&user_url="+user_url+"&user_telefono="+user_telefono+"&user_ciudad="+user_ciudad+"&user_provincia="+user_provincia);
			ajax.onreadystatechange=function()
				{
					if (ajax.readyState==4)
					{
			
					divVerificado.innerHTML=ajax.responseText;
				
					}
				}
		}
	}
}


