function controladorSubmitLogin(){
	$("#formLogin").submit(function(){
		return hacerLogin();
	});
}

function hacerLogin(){
	googleAnalitycs("html/login_init");
	// cargamos el modulo para encriptar en md5
	$.getScript("js/md5.js", function(){
		var passw = $("#login_pass").val();
		var login_user = $("#login_email").val();
		// controlamos que los datos a enviar sean correctos
		if (login_user == "" || passw == "") {
			mensaje = {objeto: {dom: $("#login input:not(.submit)"), iluminar: true}, texto: GEN_todosLosDatosObligatorios.texto, tiempo: GEN_todosLosDatosObligatorios.tiempo};
			aviso(mensaje);
		}else if (!isEmail(login_user)) {
			mensaje = {objeto: {dom: $("#login_email"), iluminar: true}, texto: GEN_notValidEmail.texto, tiempo: GEN_notValidEmail.tiempo};
			aviso(mensaje);
		}else {
			passw = hex_md5(passw);	// codificamos la password para enviarla codificada
			var datos = {user: login_user, pass: passw};
			mostrarCargador($("#login"));
			$.get("php/comprobarLogin.php?action=login", datos, 
				function(datos){
					var mensaje;
					//alert(msg);
					//eval(msg);
					if (datos.respuesta === false) { // usuario no encontrado
						googleAnalitycs("html/login_userNotExists");
						mensaje = {objeto: null, texto: LOGIN_imposibleIniciarSesion.texto, tiempo: LOGIN_imposibleIniciarSesion.tiempo}; 
						aviso(mensaje);
						setTimeout("getLogin()", mensaje.tiempo);
					}else if (datos.respuesta == "notValidEmail"){ // email no valido
						mensaje = {objeto: null, texto: GEN_notValidEmail.texto, tiempo: GEN_notValidEmail.tiempo};
						aviso(mensaje);
						setTimeout("getLogin()", mensaje.tiempo);
					}else{ // existe
						cierraLosDemas($("#login"));
						if (datos.sinTelefono){ // debe darnos su telefono
							cargarAltaTelefono(datos);
						}else{
							googleAnalitycs("html/login_correcto");
							logueado = datos.usu_id;
							getLogin();
						}
					}
			   	}, "json");
		}
				
	});
	return false;
}

function getLogin(){
	mostrarCargador($("#login"));
	var randomnumber = Math.floor(Math.random()*111);
	$.get("php/controlador.php?accion=getLogin&rand="+randomnumber, function(data){
		$("#login").html(data);
		controladorSubmitLogin();
		if($("#section_apuesta").html()!=null){
			getGraficaFormApuesta()
		}
		if($("#section_crack").html()!=null){
			getCracks();
		}
	}, "html");
}

function cargarAltaTelefono(datos){
	googleAnalitycs("html/login_altaTelefono");
	$.get("php/controlador.php?accion=getActTelefono", function(data){
		$("#login").after(data);
		$("#altaTelefono").slideToggle("slow");
		$("#formActTelefono").submit(function(){
			return submitAltaTelefono(datos);
		});
		$("#actTelefono").numeric();
	}, "html");
}

function submitAltaTelefono(datos){
	var tel = $("#actTelefono").val();
	if(tel == ""){
		mensaje = {objeto: {dom: $("#actTelefono"), iluminar: true}, texto: AT_faltanDatos.texto, tiempo: AT_faltanDatos.tiempo};
		aviso(mensaje);
	}else if(!esTelefono(tel)){
		mensaje = {objeto: {dom: $("#actTelefono"), iluminar: true}, texto: GEN_formatoTelefonoIncorrecto.texto, tiempo: GEN_formatoTelefonoIncorrecto.tiempo};
		aviso(mensaje);
	}else{
		var enviar = {user: datos.id, tlf: tel};
		$.get("php/controlador.php?accion=guardarTelefono", enviar, function(datos){
			switch (datos.resultado){
				case 0: // error al actualizar usuario
					mensaje = {objeto: {dom: $("#actTelefono"), iluminar: true}, texto: GEN_errorNoControlado.texto, tiempo: GEN_errorNoControlado.tiempo};
					aviso(mensaje);
				break;
				case 1: // actualizado
					mensaje = {objeto: null, texto: AT_telefonoActualizado.texto, tiempo: AT_telefonoActualizado.tiempo};
					aviso(mensaje);
					$("#altaTelefono").slideToggle("slow", function(){
						$("#altaTelefono").remove();
					});
					setTimeout("getLogin()", mensaje.tiempo);
				break;
				case 3: // faltan datos
					mensaje = {objeto: {dom: $("#actTelefono"), iluminar: true}, texto: AT_faltanDatos.texto, tiempo: AT_faltanDatos.tiempo};
					aviso(mensaje);
				break;
			}
		}, "json");		
	}

	return false;
}

function logOut(){
	googleAnalitycs("html/logout");
	cierraLosDemas($("#logout"));
	mostrarCargador($("#login"));
	$.get("php/controlador.php?accion=logOut");
	getLogin();
	return false;
}

/* Comprobar si un usuario ha iniciado sesion
 se har la peticion a un servicio web del lado del server */
function compruebaLogin(estado){
	$.get("php/comprobarLogin.php", {"action":"comprobarJS"}, function(respuesta){
		if (respuesta.logueado == false){
			debeEstarLogueado();
		}else{
			logueado = respuesta.usu_id
			switch (estado.procedencia){
				case "postComment":
					googleAnalitycs("/html/postCommentForm_init");
					$("#postear").slideToggle("slow", "");
					var dimensiones = getScrollXY(); // obtenemos x e y para controlar donde mover el scroll
					if (dimensiones.y>340){
						$.scrollTo("#titular");
					}
				break;
				case "apuesta":
					hacerApuesta(estado.datos);
				break;
			}
		}
	}, "json");
}

/* Funcion que se llama desde flash una vez que se ha comprobado si un usuario esta logeado */
function debeEstarLogueado(){
	mensaje = {objeto: null, texto: GEN_debeEstarLogueado.texto, tiempo: GEN_debeEstarLogueado.tiempo};
	aviso(mensaje);
	// Los inputs del formulario de login parpadean durante unos segundos
	$("#login input:not(.submit)").colorBlend([{fromColor:"#171616", toColor:"#A7111F", param:"background-color", cycles:6}]);
}

function compruebaLoginFlash(){
	return logueado.toString();
}