var LOGIN = {};
LOGIN.frRetorno = null;
LOGIN.htmlLogin = '';
LOGIN.htmlForgot = '';
LOGIN.htmlRegistro = '';
LOGIN.htmlInicioSesion = '';
LOGIN.msg = null;
LOGIN.msg2 = null;
LOGIN.deRegistro = null;

LOGIN.templates = new Array();

LOGIN.cargarPlantillas = function() {

	$.ajax({
	    type: 'GET',
        url: '/js/plantillas/login.html',
        async: false,
        success: function(data) {
            html_comentarios = data;
        }
    });

	var plantillas = html_comentarios.split('###');

	LOGIN.templates['login'] = plantillas[0];
	LOGIN.templates['forgot-password'] = plantillas[1];
	LOGIN.templates['registro'] = plantillas[2];
	LOGIN.templates['inicio-sesion'] = plantillas[3];
	LOGIN.templates['cargando'] = plantillas[4];
	LOGIN.templates['fin-sesion'] = plantillas[5];
	
};

LOGIN.registroBox = function() {
	if($('div#registrobox').html() == null) {
		$('div#doc-que').before('<div id="registrobox-trans" ></div><div id="registrobox"><div id="registrobox-contenido"></div></div>');
	}
};

LOGIN.cerrar = function() {
	$('div#registrobox,div#registrobox-trans').remove();
};


LOGIN.login = function(fr) {
	
	if(fr != null) LOGIN.frRetorno = fr;
	
	// Miramos la cookie para saber si enviarle al registro o dejarle en el login
	
	if ($.cookie('recordar') == null && LOGIN.deRegistro == null) {
		LOGIN.registro();
		return;
	}

	LOGIN.registroBox();

	if(LOGIN.htmlLogin == '') {

		var contenido = $('<div></div>');

		var t = $.template(LOGIN.templates['login']);

		contenido.html(t, {
			queid_master: queid_master
		});

		LOGIN.htmlLogin = contenido.html();
	}

	$('div#registrobox-contenido').html(LOGIN.htmlLogin);
	document.frmLogLogeo.email.focus();

	$('div#registrobox-contenido #formLogin-acceder a').click(function() {
		LOGIN.logeo();
	});

	LOGIN.calculaRegistroBox();
	
	// Recordar
	
	if ($.cookie('recordar') != null) {
		
		eval('var recordar = ' + $.cookie('recordar') + ';');
		
		$('#queid_u').val(recordar.email);
		$('#queid_p').val(recordar.pass);
	}
};

LOGIN.forgotPass = function() {
	LOGIN.registroBox();
	if(LOGIN.htmlForgot == '') {

		var contenido = $('<div></div>');

		var t = $.template(LOGIN.templates['forgot-password']);

		contenido.html(t, {});

		LOGIN.htmlForgot = contenido.html();
	}
	$('div#registrobox-contenido').html(LOGIN.htmlForgot);
	document.frmLogForgot.email.focus();
	LOGIN.calculaRegistroBox();
};

LOGIN.registro = function() {
	LOGIN.registroBox();

	if(LOGIN.htmlRegistro == '') {

		var contenido = $('<div></div>');

		var t = $.template(LOGIN.templates['registro']);

		contenido.html(t, {
			queid_master: queid_master
		});

		LOGIN.htmlRegistro = contenido.html();
	}

	$('div#registrobox-contenido').html(LOGIN.htmlRegistro);
	document.formuLog.nombre.focus();
	$('div#registrobox-contenido #formLogin-registro a.btn-form').click(function() {
				LOGIN.nuevo_usuario();
	});
	LOGIN.calculaRegistroBox();
};

LOGIN.inicioSesion = function(email_usuario, retorno) {
	LOGIN.registroBox();
	if(LOGIN.htmlInicioSesion == '') {

		var contenido = $('<div></div>');

		var t = $.template(LOGIN.templates['inicio-sesion']);

		contenido.html(t, {
				email_usuario: email_usuario
			}
		);

		LOGIN.htmlInicioSesion = contenido.html();
	}
	$('div#registrobox-contenido').html(LOGIN.htmlInicioSesion);
	LOGIN.calculaRegistroBox();
	
	retorno();
};

LOGIN.calculaRegistroBox = function() {
	var valor = (($(window).height() - $("#registrobox-contenido").height()) / 2) - 29;
	// si la altura del contenido de registrobox es mayor que la de la ventana
	if (valor > 29) {
		$("#registrobox-contenido").css('top', valor);
	} else {
		//alert("mayor que contenido");
		$("#registrobox").css('position', 'absolute');
		$("#registrobox").height($(document).height());
	}

	$(window).resize(function() {
		var valor = (($(window).height() - $("#registrobox-contenido").height()) / 2) - 29;
		if (valor > 29) {
			$("#registrobox-contenido").css('top', valor);
		} else {
			//alert("mayor que contenido");
			$("#registrobox,#registrobox-trans").css('position', 'absolute');
			$("#registrobox,#registrobox-trans").height($(document).height());
		}
	});
};


LOGIN.emailValido = function(valor) {
	var EmailOk = true;
	var AtSym = valor.indexOf('@');
	var Period = valor.lastIndexOf('.');
	var Space = valor.indexOf(' ');
	var Length = valor.length - 1;
	
	if ((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || (Space  != -1)) {
		  EmailOk = false;
	}
	return EmailOk;
};

LOGIN.reestablecerPass = function() {
	var frm = document.frmLogForgot;
	if(!LOGIN.emailValido(frm.email.value)) {
		$('div#cambio_key #error_datos').show();
	} else {
		$.ajax({type: "POST", url: "/backend/LOGIN.registro.php", data: {accion: 'forgotPass', email: frm.email.value}, async: false, dataType: "json", success:
			function(data) {
				if(data.estado == 'OK') {
					$('.caja-formLogin .formLogin .contenedor #ok_datos').show();
					html = '<div id="ok_datos" class="bocadillo">' + $('.caja-formLogin .formLogin .contenedor #ok_datos').html().replace('##EMAIL##', frm.email.value) + '</div>';
					$('.caja-formLogin .formLogin .contenedor').replaceWith(html);
				}
			}
		});



	}
};

LOGIN.passValida = function(valor) {
	if(valor.length < 5) {
		return false;
	}
	return true;
};

LOGIN.nickValido = function(valor) {
	return true;
};

LOGIN.compruebaNick = function(nick) {

	$.post('/backend/LOGIN.registro.php',
		{
			nick: nick,
			accion: 'usuario'
		},
		function(resp) {

			var div = $('div#error_datos_1');
			
			if (resp.estado == 'KO') {
				div.html(GENERAL.str_replace('(john)', '(' + nick + ')', div.html()));
				div.html(GENERAL.str_replace('()', '(' + nick + ')', div.html()));
				div.show();
			}
			else {

				div.hide();
				div.html(GENERAL.str_replace('(' + nick + ')', '(john)', div.html()));
				div.html(GENERAL.str_replace('()', '(john)', div.html()));
			}
		},
		'json'
	);
};

LOGIN.compruebaEmail = function(nick) {

	$.post('/backend/LOGIN.registro.php',
		{
			nick: nick,
			accion: 'email'
		},
		function(resp) {

			var div = $('div#error_datos_3');

			if (resp.estado == 'KO') {
				div.html(GENERAL.str_replace('(john)', '(' + nick + ')', div.html()));
				div.show();
			}
			else {

				div.hide();
				div.html(GENERAL.str_replace('(' + nick + ')', '(john)', div.html()));
			}
		},
		'json'
	);
};


LOGIN.logeo = function() {
	var frm = document.frmLogLogeo;
	if(!LOGIN.emailValido(frm.email.value)) {
		$('.contenedor').find('div#error_datos_0').show();
		return;
	}
	if(!LOGIN.passValida(frm.pass2.value)) {
		$('.contenedor').find('div#error_datos_1').show();
		return;
	}

	frm.user.value = frm.email.value;
	datosServicio = LOGIN.servicio(frm.pass2.value);
	frm.servicio.value = datosServicio['servicio'];
	frm.time.value = datosServicio['time'];
	frm.hash.value = datosServicio['hash'];
	frm.pass.value = datosServicio['pass'];
	
	var recordar = frm.queid_rec.checked;
	
	$.ajax(
		{
			type: "POST",
			url: "/backend/LOGIN.registro.php",
			data: {
				accion: 'logeo',
				email: frm.email.value,
				pass: frm.pass2.value,
				publi: $('[name=publi]:checked').val()
			},
			async: false,
			dataType: "json",
			success:
				function(data) {
					if(data.estado == 'OK') {
						GENERAL.ajaxPost(
							frm,
							function() {
								
								// cookies
								
								if (recordar) {
									$.cookie('recordar', '{"email": "' + frm.email.value + '", "pass": "' + frm.pass2.value + '"}', { expires: 30, path: '/', domain: '.que.es'})
								}
								
								queid_barra();
								USUARIOS.login();

								// acciones después del login

								$('.avatar-usuario img').attr('src', USUARIOS.sesion.avatar_30);
								
								if (typeof(HERRAMIENTAS) != 'undefined') {
									HERRAMIENTAS.gusta();
									HERRAMIENTAS.visitas();
								}
								
								$('[name=email_remitente]').val(USUARIOS.sesion.email);
								
								$('.qnf_comentario_anonimo').remove();
								$('.qnf_captcha').remove();
								
								if (typeof(CONTENIDO) != 'undefined') {
								
									COMENTARIOSPORTADA.verMasComentarios(0, true);
									
									var adj = $('<div></div>');

									var t = $.template(COMENTARIOSPORTADA.templates['adjuntar']);
								
									adj.html(t, {
										id: GENERAL.str_replace('comentarios-span-', '', $('.qnf_nocomentarios').attr('id')),
										tipo: 'portada'
									});
								
									$('.qnf_nocomentarios > .qn_form > div.clearfix').after(adj.html());
								}
								else {
								
									$('.qn_contenedor_comentarios').each(function() {
										
											var adj = $('<div></div>');

											var t = $.template(COMENTARIOSPORTADA.templates['adjuntar']);
											
											adj.html(t, {
												id: GENERAL.str_replace('comentarios-span-', '', $(this).attr('id')),
												tipo: 'portada'
											});
					
											$('div.adj', $(this)).after(adj.html());
										
										}
									);
								}
								
								var bot_publicar = $('.qnf_boton');
								
								bot_publicar.html('Publicar');
								
								bot_publicar = $('.qnf_boton:not(.qnf_inactivo)');
								
								bot_publicar.css('background-color', '#5683B2');
								bot_publicar.css('border', '1px solid #2E5F88');
								bot_publicar.css('color', '#FFFFFF');
							
								if(LOGIN.frRetorno != null) {
									LOGIN.frRetorno();
								}
							},
							''
						);
						LOGIN.cerrar();
					} else {
						if(LOGIN.msg == null) {
							if(data.msg == 'Acceso no autorizado') {
								data.msg = 'Combinación de correo electrónico/contraseña incorrecta.';
							}
							
							$(".contenedor").eq(0).append('<div class="bocadillo" id="error_datos" style=""><div class="contenido clearfix"><div><span class="esquina"></span><p><strong id="msg_no_aut">' + data.msg + '</strong></p></div></div></div>');
							LOGIN.msg = data.msg;
						}
						//alert(data.msg);
					}

				}
		}
	);
};

LOGIN.nuevo_usuario = function() {

	var frm = document.formuLog;

	if(frm.nombre.value == '') {
		$('.contenedor').find('div#error_datos_0').show();
		return;
	}
	
	if(!LOGIN.emailValido(frm.email.value)) {
		$('.contenedor').find('div#error_datos_3').show();
		return;
	}
	if(!LOGIN.passValida(frm.pass2.value)) {
		$('.contenedor').find('div#error_datos_2').show();
		return;
	}

	if(frm.condiciones.checked == false) {
		$('.contenedor').find('div#error_datos_4').show();
		return;
	} else {
		$('.contenedor').find('div#error_datos_4').hide();
	}

	datosServicio = LOGIN.servicio(frm.pass2.value);
	frm.user.value = frm.email.value;
	frm.pass.value = datosServicio['pass'];
	frm.servicio.value = datosServicio['servicio'];
	frm.time.value = datosServicio['time'];
	frm.hash.value = datosServicio['hash'];
	frm.pass.value = datosServicio['pass'];

	var array = {'servicio':datosServicio['servicio'],'time':datosServicio['time'],'hash':datosServicio['hash'],'id_servicio':datosServicio['servicio'],'id_registro':'2','registro_id_usuario':encodeURIComponent(frm.id_usuario.value),'registro_email_usuario':frm.email.value,'registro_password':datosServicio['pass'],'registro_nombre':encodeURIComponent(frm.nombre.value), 'registro_publi': $('[name=publi]:checked').val(), 'registro_confirmar_condiciones_legales':1, 'registro_express':1};

	vocid_registro(array, 'LOGIN.registroRespuesta');
};

LOGIN.servicio = function(pass) {
	var rtdo = '';
	$.ajax(
		{
			type: "POST",
			url: "/backend/USUARIOS.getServicio.php",
			data: {
				pass: pass
			},
			async: false,
			dataType: "json",
			success:
				function(data) {
					//GENERAL.console(data);
					rtdo = data;
					return rtdo;
				}
		}
	);
	return rtdo;
};

LOGIN.registroRespuesta = function(datos) {
	//GENERAL.console('LOGIN.registroRespuesta');
	//GENERAL.console(datos);
	var frm = document.formuLog;

	if(datos.indexOf('<resp tipo="OK">') >= 0) { // Abro la sesion local
		$.ajax(
			{
				type: "POST",
				url: "/backend/LOGIN.registro.php",
				data: {
					accion: 'alta',
					usuario: frm.id_usuario.value,
					email: frm.email.value,
					time: frm.time.value,
					hash: frm.hash.value
				},
				async: false,
				dataType: "json",
				success:
					function(data) {
						//GENERAL.console(data);
						if(data['estado'] == 'OK') {
						
							USUARIOS.login();
							
							queid_barra();
							
							// acciones después del login

							$('.avatar-usuario img').attr('src', USUARIOS.sesion.avatar_30);
							
							if (typeof(HERRAMIENTAS) != 'undefined') {
								HERRAMIENTAS.gusta();
								HERRAMIENTAS.visitas();
							}
							
							$('[name=email_remitente]').val(USUARIOS.sesion.email);
							
							$('.qnf_comentario_anonimo').remove();
							$('.qnf_captcha').remove();
							
							if (typeof(CONTENIDO) != 'undefined') {
							
								COMENTARIOSPORTADA.verMasComentarios(0, true);
								
								var adj = $('<div></div>');

								var t = $.template(COMENTARIOSPORTADA.templates['adjuntar']);

								adj.html(t, {
									id: GENERAL.str_replace('comentarios-span-', '', $('.qnf_nocomentarios').attr('id')),
									tipo: 'portada'
								});
								
								$('.qnf_nocomentarios > .qn_form > div.clearfix').after(adj.html());
							}
							else {
							
								$('.qn_contenedor_comentarios').each(function() {
									
										var adj = $('<div></div>');

										var t = $.template(COMENTARIOSPORTADA.templates['adjuntar']);

										adj.html(t, {
											id: GENERAL.str_replace('comentarios-span-', '', $(this).attr('id')),
											tipo: 'portada'
										});
								
										$('div.adj', $(this)).after(adj.html());
									
									}
								);
							}
							
							LOGIN.inicioSesion(data['user_email'], function() {
									if(LOGIN.frRetorno != null) {
										LOGIN.frRetorno();
									}
								}
							);
						}
					}
			}
		);

	} else if(datos.indexOf('<msg id="532">') >= 0) {
		if(LOGIN.msg == null) {
			LOGIN.msg = 'El id del usuario ya está registrado';
			$(".contenedor").eq(0).append('<div class="bocadillo" id="error_datos" style=""><div class="contenido clearfix"><div><span class="esquina"></span><p><strong>' + LOGIN.msg + '</strong></p></div></div></div>');
		}

	} else if(datos.indexOf('<msg id="533">') >= 0) {
		if(LOGIN.msg2 == null) {
			LOGIN.msg2 = 'El email especificado ya está registrado';
			$(".contenedor").eq(0).append('<div class="bocadillo" id="error_datos" style=""><div class="contenido clearfix"><div><span class="esquina"></span><p><strong>' + LOGIN.msg2 + '</strong></p></div></div></div>');
		}


	}
};

LOGIN.cerrarSesion = function() {
	
	queid_barra();
	
	if (typeof(HERRAMIENTAS) != 'undefined') { 
		HERRAMIENTAS.gusta(); HERRAMIENTAS.visitas();
	};
	
	$('.qach_compartir').each(function() {
			HERRAMIENTAS.gustaComentarios('', GENERAL.str_replace('compartir-', '', $(this).attr('id')));
		}
	);
	
	$('.avatar-usuario img, a.qc_autor img').each(function() {
			$(this).attr('src', 'http://gente.que.es/avatares/que/resize/30x30/generico.jpg');
		}
	);
	
	if (typeof(CONTENIDO) != 'undefined') {
		COMENTARIOSPORTADA.verMasComentarios(0,1);
	}
	
	var id = GENERAL.str_replace('comentarios-span-', '', $('.qnf_nocomentarios').attr('id'));
	
	$('#adjuntar-' + id).remove();
	
	var adj = $('<div></div>');

	var t = $.template(COMENTARIOSPORTADA.templates['opciones-anonimo']);

	adj.html(t, {
		id: id
	});
		
	$('.qnf_nocomentarios > .qn_form > div.clearfix').after(adj.html());
	
	LOGIN.cerrar();
};

LOGIN.compruebaSesion = function() {
	
	USUARIOS.login();
	
	if (typeof(USUARIOS.sesion.usuario) == 'undefined') {
		
		LOGIN.registroBox();
		
		var contenido = $('<div></div>');

		var t = $.template(LOGIN.templates['fin-sesion']);

		contenido.html(t, {
				enlace_cerrar: "LOGIN.cerrarSesion();"
			}
		);
		
		$('div#registrobox-contenido').html(contenido.html());
		
		LOGIN.calculaRegistroBox();
	}
	else {
		setTimeout('LOGIN.compruebaSesion()', 15 * 1000);
	}
	
};

LOGIN.mensajeCargando = function(mensaje) {
	
	LOGIN.registroBox();
	
	var contenido = $('<div></div>');

	var t = $.template(LOGIN.templates['cargando']);

	contenido.html(t, {
			mensaje: mensaje
		}
	);
	
	$('div#registrobox-contenido').html(contenido.html());
	
	LOGIN.calculaRegistroBox();
};

LOGIN.nombreUsuario = function(nombre) {
	
	nombre = nombre.toLowerCase();
	nombre = GENERAL.str_replace(' ', '', nombre);
	nombre = GENERAL.str_replace('.', '', nombre);
	nombre = GENERAL.strtr(nombre, 'áéíóúñüÁÉÍÓÚÑÜ', 'aeiounuaeiounu');
	
	$('#queid_u').val(nombre);
};

LOGIN.cargarPlantillas();

$(document).ready(function() {
	if ($.cookie('registro') != null) {
		LOGIN.compruebaSesion();
	}
});

