
// ----------------------------------------------------
// Definición de funciones

var texto_loading_blanco = "<div class=\"ajax_loader\"><div class=\"ajax_loader_imagen\"><img src=\"../images/ajax_loader_blanco.gif\" alt=\"Cargando...\"></div><div class=\"ajax_loader_texto\">Cargando...</div><div class=\"clear\"></div></div>";


// ----------------------------------------------------
// Registro de usuario

function registroAvatarElegir(num) {
	for (var i=1; i<=avatares_num; i++) {
		if (i == num) {
			$("#avatar_predefinido_"+i+" a").css("background-color", "#ffffff");
		} else {
			$("#avatar_predefinido_"+i+" a").css("background", "none");
		}
	}
	$("#form_avatar").val(num);
}

function registroEnviar() {
	var campos = {
		form_nombre: {obligatorio: true, validacion: validarUsername, txt: "User alias"}, 
		form_password: {obligatorio: true, validacion: null, txt: "Password"}, 
		form_repetir_password: {obligatorio: true, validacion: validarPassword, txt: "Password"}, 
		form_email: {obligatorio: true, validacion: null, txt: "Email"}, 
		form_repetir_email: {obligatorio: true, validacion: validarEmails, txt: "Email"}, 
		form_ciudad: {obligatorio: true, validacion: null, txt: "City"}, 
		form_pais: {obligatorio: true, validacion: null, txt: "Country"}, 
		form_nombre_completo: {obligatorio: true, validacion: null, txt: "Name and surname"}, 
		form_direccion: {obligatorio: true, validacion: null, txt: "Dirección Postal"}, 
		form_telefono: {obligatorio: true, validacion: validarTelefono, txt: "Telephone"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return;
	} else {
		document.formulario.submit();
	}
}

// ----------------------------------------------------
// Login

function loginEnviar() {
	var campos = {
		form_usuario: {obligatorio: true, validacion: null, txt: "User"}, 
		form_password: {obligatorio: true, validacion: null, txt: "Password"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return false;
	} else {
		return true;
	}
}

// ----------------------------------------------------
// Generar nueva contraseña

function passEnviar() {
	var campos = {
		form_email: {obligatorio: true, validacion: validarEmail, txt: "E-mail"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return;
	} else {
		document.formulario.submit();
	}
}

function loginError(msg) {
	var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
	$("#jqmContenido").html(msg + botonera);
	avisoMostrar();
	return false;
}

// ----------------------------------------------------
// Invitar a un amigo

function invitarEnviar() {
	var campos = {
		form_direcciones: {obligatorio: true, validacion: null, txt: "Emails os your friends"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return;
	} else {
		document.formulario.submit();
	}
}

// ----------------------------------------------------
// Ficha de Usuario

function buscadorEnviar() {
	var campos = {
		form_busqueda: {obligatorio: true, validacion: validarBusqueda, txt: "Search"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return false;
	} else {
		return true;
	}
}

function editarEnviar() {
	var campos = {
		form_password: {obligatorio: false, validacion: null, txt: "Password"}, 
		form_repetir_password: {obligatorio: false, validacion: validarPassword, txt: "Password"}, 
		form_ciudad: {obligatorio: true, validacion: null, txt: "City"}, 
		form_pais: {obligatorio: true, validacion: null, txt: "Country"}, 
		form_nombre_completo: {obligatorio: true, validacion: null, txt: "Name and surname"}, 
		form_direccion: {obligatorio: true, validacion: null, txt: "Postal address"}, 
		form_telefono: {obligatorio: true, validacion: validarTelefono, txt: "Telephone"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return;
	} else {
		document.formulario.submit();
	}
}

// ----------------------------------------------------
// Contacto

function contactoEnviar() {
	var campos = {
		form_nombre: {obligatorio: true, validacion: null, txt: "Name"}, 
		form_email: {obligatorio: true, validacion: validarEmail, txt: "E-mail"}, 
		form_texto: {obligatorio: true, validacion: null, txt: "Text"}
	};
	
	var validacion = validar(campos);
	
	if (validacion != "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html(validacion + botonera);
		avisoMostrar();
		return;
	} else {
		document.formulario.submit();
	}
}

// ----------------------------------------------------
// Campeonato

function campeonatoTimerIniciar() {
	campeonatoTimer();
	setInterval("campeonatoTimer()", 1000);
}

function campeonatoTimer() {
	if (timer <= 0) {
		$("#cuenta_atras").html("Campeonato finalizado");
		return;
	}
	var salida = "";
	var t = timer;
	// Días
	var dias = Math.floor(t / 86400);
	salida += (dias > 0) ? (dias == 1) ? "<strong>1</strong> d&iacute;a : " : "<strong>" + dias + "</strong> days : " : "";
	t -= (dias * 86400);
	// Horas
	var horas = Math.floor(t / 3600);
	salida += (horas < 10) ? (horas == 1) ? "<strong>01</strong> hora : " : "<strong>0" + horas + "</strong> horas : " : "<strong>" + horas + "</strong> hours : ";
	t -= (horas * 3600);
	// Minutos
	var minutos = Math.floor(t / 60);
	salida += (minutos < 10) ? (minutos == 1) ? "<strong>01</strong> minuto : " : "<strong>0" + minutos + "</strong> minutos : " : "<strong>" + minutos + "</strong> minutes : ";
	t -= (minutos * 60);
	// Segundos
	salida += (t < 10) ? (t == 1) ? "<strong>01</strong> segundo" : "<strong>0" + t + "</strong> segundos" : "<strong>" + t + "</strong> seconds";
	// Salida
	$("#cuenta_atras").html(salida);
	timer--;
}

function bloquearLinks(ev) {
	alert("You cannot leave the present play until you finalize it.\n If you have initiated a play and you leave the page without finalizing it the spent credit not it you will be able to recover.");
	return false;
}

function campeonatoBloquear() {
	$("a").bind("click", bloquearLinks);
}

function campeonatoDesbloquear() {
	$("a").unbind("click", bloquearLinks);
}

function campeonatoActualizarCreditos(creditos) {
	$("#creditos_usuario").html(creditos);
	campeonatoBloquear();
}

// ----------------------------------------------------
// Funciones de Comunidad

function comunidadDesafioListadoCargar(pagina) {
	$("#desafios_listado").html("<div class=\"contenedor_listado_comunidad\">" + texto_loading_blanco + "</div>");
	if (pagina == undefined) {
		$("#desafios_listado").load("comunidad_desafios.php");
	} else {
		$("#desafios_listado").load("comunidad_desafios.php?pagina=" + pagina);
	}
}

function comunidadDesafioListadoOrdenar(criterio, orden) {
	$("#desafios_listado").html("<div class=\"contenedor_listado_comunidad\">" + texto_loading_blanco + "</div>");
	$("#desafios_listado").load("comunidad_desafios.php?criterio="+criterio+"&orden="+orden);
}

function comunidadDesafioCancelar(desafio) {
	var botonera = "<div class=\"jqmConfirm\"><a href=\"comunidad_desafio_cancelar.php?d=" + desafio + "\" title=\"Aceptar\" class=\"jqmConfirmSi\"><span>Aceptar</span></a><a href=\"javascript:avisoOcultar();\" title=\"Cancelar\" class=\"jqmConfirmNo\"><span>Cancelar</span></a><div class=\"clear\"></div></div>";
	$("#jqmContenido").html("<p><strong>Are you sure to cancel this challenge?</strong></p>" + botonera);
	avisoMostrar();
}

function desafioActualizarCreditos(creditos) {
	$("#creditos_usuario").html(creditos);
}

// ----------------------------------------------------
// Funciones de Usuario

function contactoAdd(usuario) {
	$("#contacto_add").css("background", "none");
	$("#contacto_add").html("<div style=\"background:url(../images/ajax_loader_verde1.gif) 0px 2px no-repeat;padding-left:28px;padding-top:2px;font-size:9px;color:#ffffff;\">A&ntilde;adiendo... por favor, espera</div>");
	$("#contacto_add").load("comunidad_contacto_add.php?u=" + usuario);
}

function contactoBorrarConfirmar(contacto) {
	var botonera = "<div class=\"jqmConfirm\"><a href=\"javascript:contactoBorrar('" + contacto + "');\" title=\"Aceptar\" class=\"jqmConfirmSi\"><span>Aceptar</span></a><a href=\"javascript:avisoOcultar();\" title=\"Cancelar\" class=\"jqmConfirmNo\"><span>Cancel</span></a><div class=\"clear\"></div></div>";
	$("#jqmContenido").html("<p><strong>Are you sure you want delete this contact?</strong></p>" + botonera);
	avisoMostrar();
}

function contactoBorrar(contacto) {
	avisoOcultar();
	$("#usuario_contactos_listado").html("<div class=\"usuario_cargando\">" + texto_loading_blanco + "</div>");
	$("#usuario_contactos_listado").load("comunidad_contacto_borrar.php?c=" + contacto);
}

function mensajeRedactar(usuario, usuario_nombre) {
	var cuerpo = "<div id=\"msg_enviar_div\" class=\"msg_enviar\">";
	cuerpo += "<form name=\"form_msg_enviar\" action=\"comunidad_mensaje_enviar.php\" method=\"post\">";
	cuerpo += "<div class=\"msg_enviar_titulo\">Send message</div>";
	cuerpo += "<div class=\"msg_enviar_para\"><label>To:</label><span>" + usuario_nombre + "</span><div class=\"clear\"></div></div>";
	cuerpo += "<div class=\"msg_enviar_asunto\"><label>Subject:</label><input type=\"text\" name=\"msg_asunto\" id=\"form_msg_asunto\" maxlength=\"255\" /><div class=\"clear\"></div></div>";
	cuerpo += "<div class=\"msg_enviar_texto\"><label>Text:</label><textarea name=\"msg_texto\" id=\"form_msg_texto\"></textarea><div class=\"clear\"></div></div>";
	cuerpo += "<div class=\"msg_enviar_leyenda\">You have left 1000 characters</div>";
	cuerpo += "<div class=\"clear\"></div>";
	cuerpo += "</form>";
	cuerpo += "</div>";
	var botonera = "<div class=\"jqmEnviar\"><a href=\"javascript:mensajeEnviar('" + usuario + "');\" title=\"Enviar\"><span>Enviar</span></a></div>";
	$("#jqmContenido").html(cuerpo + botonera);
	$("#form_msg_texto").keyup(function() {
		var len = $("#form_msg_texto").val().length;
		var chars = 1000 - len;
		if (chars >= 0) {
			$(".msg_enviar_leyenda").html("You have left " + chars + " characters");
		} else {
			$(".msg_enviar_leyenda").html("You have gone " + (-chars) + " characters");
		}
	});
	avisoMostrar();
}

function mensajeEnviar(usuario) {
	if ($("#form_msg_asunto").val() == "") {
		alert("You must indicate a subject of the message");
	} else if ($("#form_msg_texto").val() == "") {
		alert("You must indicate a text of the message");
	} else {
		var datos = new Object();
		datos.usuario = usuario;
		datos.asunto = $("#form_msg_asunto").val();
		datos.texto = $("#form_msg_texto").val();
		$("#jqmContenido").html("<div style=\"height:20px;background:url(../images/ajax_loader_verde2.gif) 0px 2px no-repeat;padding-left:28px;padding-top:5px;font-size:12px;color:#ffffff;\">Sending message... please wait</div>");
		$("#jqmContenido").load("comunidad_mensaje_enviar.php", datos);
	}
}

function mensajeLeer(mensaje) {
	var cuerpo = "<div style=\"height:20px;background:url(../images/ajax_loader_verde2.gif) 0px 2px no-repeat;padding-left:28px;padding-top:5px;font-size:12px;color:#ffffff;\">Loading message... please wait</div>";
	var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:mensajeLeerCerrar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
	$("#jqmContenido").html(cuerpo + botonera);
	avisoMostrar();
	$("#jqmContenido").load("comunidad_mensaje_leer.php?m=" + mensaje);
}

function mensajeLeerCerrar() {
	avisoOcultar();
	usuarioMensajesListadoCargar();
}

function mensajeResponder(mensaje) {
	var cuerpo = "<div style=\"height:20px;background:url(../images/ajax_loader_verde2.gif) 0px 2px no-repeat;padding-left:28px;padding-top:5px;font-size:12px;color:#ffffff;\">Loading message... please wait</div>";
	var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:mensajeLeerCerrar();\" title=\"Aceptar\"><span>Accept</span></a></div>";
	$("#jqmContenido").html(cuerpo + botonera);
	avisoMostrar();
	$("#jqmContenido").load("comunidad_mensaje_responder.php?m=" + mensaje);
}

function mensajeResponderEnviar(mensaje) {
	if ($("#form_msg_texto").val() == "") {
		alert("You must indicate a text of the answer");
	} else {
		var datos = new Object();
		datos.mensaje = mensaje;
		datos.texto = $("#form_msg_texto").val();
		$("#jqmContenido").html("<div style=\"height:20px;background:url(../images/ajax_loader_verde2.gif) 0px 2px no-repeat;padding-left:28px;padding-top:5px;font-size:12px;color:#ffffff;\">Sending answer... please wait</div>");
		$("#jqmContenido").load("comunidad_mensaje_responder_enviar.php", datos);
	}
}

function mensajeBorrarConfirmar(mensaje) {
	var botonera = "<div class=\"jqmConfirm\"><a href=\"javascript:mensajeBorrar('" + mensaje + "');\" title=\"Aceptar\" class=\"jqmConfirmSi\"><span>Aceptar</span></a><a href=\"javascript:avisoOcultar();\" title=\"Cancelar\" class=\"jqmConfirmNo\"><span>Cancell</span></a><div class=\"clear\"></div></div>";
	$("#jqmContenido").html("<p><strong>&iquest;Est&aacute;s seguro de querer borrar este mensaje?</strong></p>" + botonera);
	avisoMostrar();
}

function mensajeBorrar(mensaje) {
	avisoOcultar();
	$("#usuario_mensajes_listado").html("<div class=\"usuario_cargando\">" + texto_loading_blanco + "</div>");
	$("#usuario_mensajes_listado").load("comunidad_mensaje_borrar.php?m=" + mensaje);
}

function usuarioDesafiosListadoCargar(pagina) {
	$("#usuario_desafios_listado").html("<div class=\"usuario_cargando\">" + texto_loading_blanco + "</div>");
	if (pagina == undefined) {
		$("#usuario_desafios_listado").load("usuario_ficha_desafios.php");
	} else {
		$("#usuario_desafios_listado").load("usuario_ficha_desafios.php?pagina=" + pagina);
	}
}

function usuarioContactosListadoCargar() {
	$("#usuario_contactos_listado").html("<div class=\"usuario_cargando\">" + texto_loading_blanco + "</div>");
	$("#usuario_contactos_listado").load("usuario_ficha_contactos.php");
}

function usuarioMensajesListadoCargar() {
	$("#usuario_mensajes_listado").html("<div class=\"usuario_cargando\">" + texto_loading_blanco + "</div>");
	$("#usuario_mensajes_listado").load("usuario_ficha_mensajes.php");
}

function mensajesConfig() {
	document.config_mensajes.submit();
}

// ----------------------------------------------------
// Compras

function comprarSMSValidar() {
	if (document.form_sms.sms_codigo.value == "") {
		var botonera = "<div class=\"jqmAceptar\"><a href=\"javascript:avisoOcultar();\" title=\"Aceptar\"><span>Aceptar</span></a></div>";
		$("#jqmContenido").html("You must indicate the code that you have received in your mobile" + botonera);
		avisoMostrar();
		return false;
	}
	return true;
}

// ----------------------------------------------------
// Funciones de apoyo a validación

// Validación general
function validar(campos) {
	
	validarCamposReiniciar(campos);
	
	var faltan = new Array();
	var incorrectos = new Array();
	for (var campo in campos) {
		var props = campos[campo];
		if ($("#"+campo).length > 0) {
			var valor = $("#"+campo).val();
			if (props.obligatorio && valor == "") {
				faltan.push(campo);
			}
			if (props.validacion != null) {
				var valid = props.validacion(valor);
				if (valid != "") {
					incorrectos.push({campo: campo, txt: "<span>" + props.txt + "</span> (" + valid + ")"});
				}
			}
		}
	}
	var texto = "";
	if (faltan.length > 0) {
		validarCamposMarcar(faltan);
		$("#"+faltan[0]).focus();
		texto += "<p><strong>You have not filled up all the necessary fields.</strong></p>";
	}
	
	if (incorrectos.length > 0) {
		if (faltan.length > 0) {
			texto += "<p>&nbsp;</p><p><strong>Even there is incorrect fields.</strong></p>";
		} else {
			texto += "<p><strong>There are incorrect fields.</strong></p>";
		}
		texto += "<p>Please, corrects the following fields to continue:</p><ul>";
		validarCamposMarcar(incorrectos);
		for (var c=0; c<incorrectos.length; c++) {
			var campo = incorrectos[c].campo;
			var txt = incorrectos[c].txt;
			texto += "<li>" + txt + "</li>";
		}
		texto += "</ul>";
	}
	return texto;
}

function validarCamposReiniciar(listado) {
	for (var campo in listado) {
		$("#"+campo).css("background", "url(../images/fondo_campo.png) left top");
	}
}

function validarCamposMarcar(listado) {
	for (var c=0; c<listado.length; c++) {
		var campo = listado[c];
		if (campo instanceof Object) {
			$("#"+campo.campo).css("background", "url(../images/fondo_campo_error.png) left top");
		} else {
			$("#"+campo).css("background", "url(../images/fondo_campo_error.png) left top");
		}
	}
}

// Nombre de usuario
function validarUsername(v) {
	var salida = "";
	if (v != "") {
		if (v.length < 5 || v.length > 16) {
			salida += "it must have betwen 5 and 16 characters";
		} else if (!validarCaracteres(v, "0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ_-")) {
			salida += "letters, numbers and scripts are only admitted";
		}
	}
	return salida;
}

// Teléfono
function validarTelefono(v) {
	var salida = "";
	if (v != "") {
		if (v.length < 9 || v.length > 15) {
			salida += "it must have 9 numbers at least";
		} else if (!validarCaracteres(v, "0123456789")) {
			salida += "numbers are only admitted";
		}
	}
	return salida;
}

// Contraseña
function validarPassword(v) {
	var salida = "";
	var v1 = $("#form_password").val();
	var v2 = $("#form_repetir_password").val();
	if (v1 != "") {
		if (v1.length < 6 || v1.length > 32) {
			salida += "it must have betwen 6 and 32 characters";
		} else if (!validarCaracteres(v1, "0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ_-")) {
			salida += "letters, numbers and scripts are only admitted";
		} else if (v1 != v2) {
			salida += "you have not repeated the password correctly";
		}
	}
	return salida;
}

// E-mail
function validarEmail(v) {
	var salida = "";
	if (v != "") {
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(v)) {
			salida += "incorrect";
		}
	}
	return salida;
}
function validarEmails(v) {
	var salida = "";
	var v1 = $("#form_email").val();
	var v2 = $("#form_repetir_email").val();
	if (v1 != "") {
		if (validarEmail(v1) != "") {
			salida += "incorrect format";
		} else if (v1 != v2) {
			salida += "you have not repeated the email correctly";
		}
	}
	return salida;
}

// Búsqueda
function validarBusqueda(v) {
	var salida = "";
	if (v != "") {
		if (v.length < 4) {
			salida += "la palabra a buscar es demasiado corta";
		}
	}
	return salida;
}

// Caracteres
function validarCaracteres(v, validos) {
	for (i=0; i<v.length; i++) {
		var car = v.charAt(i);
		if (validos.indexOf(car) == -1) {
			return false;
		}
	}
	return true;
}

// ----------------------------------------------------
// Mensajes

function avisoMostrar() { $("#alert").jqmShow(); }
function avisoOcultar() { $("#alert").jqmHide(); }
