$(document).ready(function(){
	LoginBar.ready();
	if($('body').attr('class') === 'registro_usuario')
		FanForm.ready();
		
	if($('body').attr('class') === 'registro_promocion'){
		FanPage.ready();
		TicketForm.ready();
	}
	if($('body').attr('class') === 'fans' || $('body').attr('class') === 'promocion')
		FanPage.ready();
	
	if($('body').attr('class') === 'juego promocion')
		FanPage.ready();
});

var LoginBar = {
	ready : function(){
		var dataString = 'model=page&action=get_session';
		$.post('webservices/do.php', dataString,LoginBar.getSession, 'json');
		$('#mini-form-submit').click(LoginBar.login);
		$('#mini-form-logout').click(LoginBar.logout);
	},
	login : function(e){
		e.preventDefault();
		var $login = $('#mini-form-app');
		var dataString = 'model=user&action=login&';
		
		dataString += $login.serialize();
		$login[0].reset();
		$.post('webservices/do.php', dataString, LoginBar.loginResponse, 'json');
	},
	
	logout : function(e){
		e.preventDefault();
		var dataString = 'model=user&action=logout';
		$.post('webservices/do.php', dataString, LoginBar.logoutResponse, 'json');
	},
	getSession : function(result){
		if(result.success){
			$('#mini-form-name').html(result.data);
			$('#mini-form-visitor').hide();
			$('#mini-form-user').show();
		}
	},
	loginResponse : function(result){
		if(result.success){
		//alert(FanForm.getUrlVars()['from']);
		if(FanForm.getUrlVars()['from'] == "phpTrivia.php"){
		location.href="phpTrivia.php";
		}else{
			location.href="fans.html";
			}
		/*
			$('#mini-form-name').html(result.data);
			$('#mini-form-visitor').slideUp();
			$('#mini-form-user').slideDown();
		*/}else{
			console.log(result.error);
		}
	},
	logoutResponse : function(result){
		if(result.success){
			location.reload(true);
		}else{
			console.log(result.error);
		}
	}
}

var FanPage = {
	ready : function(){
		var dataString = 'model=page&action=get_session';
		$.post('webservices/do.php', dataString, FanPage.getSession, 'json');
	},
	getURL : function() {
		var uri = new Object();
		uri.dir = location.href.substring(0, location.href.lastIndexOf('\/'));
		uri.dom = uri.dir; if (uri.dom.substr(0,7) == 'http:\/\/') uri.dom = uri.dom.substr(7);
		uri.path = ''; var pos = uri.dom.indexOf('\/'); if (pos > -1) {uri.path = uri.dom.substr(pos+1); uri.dom = uri.dom.substr(0,pos);}
		uri.page = location.href.substring(uri.dir.length+1, location.href.length+1);
		pos = uri.page.indexOf('?');if (pos > -1) {uri.page = uri.page.substring(0, pos);}
		pos = uri.page.indexOf('#');if (pos > -1) {uri.page = uri.page.substring(0, pos);}
		uri.ext = ''; pos = uri.page.indexOf('.');if (pos > -1) {uri.ext =uri.page.substring(pos+1); uri.page = uri.page.substr(0,pos);}
		uri.file = uri.page;
		if (uri.ext != '') uri.file += '.' + uri.ext;
		if (uri.file == '') uri.page = 'index';
		uri.args = location.search.substr(1).split("?");
		return uri;
	},
	getSession : function(result){
		if(result.success){
			if($('body').attr('class') === 'juego promocion'){
				Game.ready();
			}else{
				var dataString = 'model=page&action=get_session_ticket';
				$.post('webservices/do.php', dataString, FanPage.getSessionTicket, 'json');
			}
		}else{
			self.location.href="signin.html?from="+FanPage.getURL().file;
		}
	},
	getSessionTicket : function(result){
		if(result.success){
			if($('body').attr('class') === 'promocion'){
				console.log('con ticket');
				$('div#has').css('display','block');
				$('p#nick').text(result.data.nickname);
				$('p#points').text(result.data.puntos);
				$('p#games').text(result.data.juegos);
			}
			if($('body').attr('class') === 'registro_promocion'){
				if(result.data.available){
					console.log('con ticket');
					self.location.href="juego_promocion.html";
				}
			}
		}else{
			if($('body').attr('class') === 'promocion'){
				console.log('sin ticket');
				$('div#hasnt').css('display','block');
			}
		}
	}
}

var FanForm = {
	id : 0,
	ready : function(){
		//if(FanForm.getUrlVars()['from'] == "home_promocion.html" || FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			if(FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			$('#Signin').css('display','none');
			$('#Promo-Signin').css('display','block');
			$('#plogin').submit(FanForm.login);
			$('#pregistro').submit(FanForm.register);
		}
		else{
			$('#flogin').submit(FanForm.login);
			$('#fregistro').submit(FanForm.register);
		}
		$('a.olvide').click(FanForm.olvide);
	},
	getUrlVars : function(){
    	var vars = [], hash;
    	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    	for(var i = 0; i < hashes.length; i++)
    	{
        	hash = hashes[i].split('=');
        	vars.push(hash[0]);
        	vars[hash[0]] = hash[1];
    	}
    	return vars;
	},
	olvide : function(e){
		e.preventDefault();
		var top = $(window).height()/2 - $('#Pop').height()/2;
		var left = $(window).width()/2 - $('#Pop').width()/2;
		$('#Recover').css({'left':left,'top':top});
		$('#Recover').fadeIn();
		$('#Recover #recover-form').submit(FanForm.recover);
	},
	recover :  function(e){
		e.preventDefault();
		var dataString = 'model=user&action=recover&';
		dataString += $('#recover-form').serialize();
		$.post('webservices/do.php', dataString, FanForm.recoverResponse, 'json');
	},
	login : function(e){
		e.preventDefault();
		//if(FanForm.getUrlVars()['from'] == "home_promocion.html" || FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			if(FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			var $login = $('#plogin');
		}else{
			var $login = $('#flogin');
		}
		var dataString = 'model=user&action=login&';
		
		dataString += $login.serialize();
		$.post('webservices/do.php', dataString, FanForm.loginResponse, 'json');
	},
	register :function(e){
		e.preventDefault();
		//if(FanForm.getUrlVars()['from'] == "home_promocion.html" || FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			if(FanForm.getUrlVars()['from'] == "juego_promocion.html" || FanForm.getUrlVars()['from'] == "registro_promocion.html"){
			if($("input[name=pgroup]:checked").val()!='1'){
				Pop.show('Debes aceptar los términos y condiciones');
				return;
			}
			if(!$("#promoacepta-padre").is(':checked')){
				Pop.show('Te debe autorizar un tutor');
				return;
			}
			var $registro = $('#pregistro');
		}else{
			if($("input[name=fgroup]:checked").val()!='1'){
				Pop.show('Debes aceptar los términos y condiciones');
				return;
			}
			if(!$("#acepta-padre").is(':checked')){
				Pop.show('Un Tutor debe aceptar tu participación');
				return;
			}
			var $registro = $('#fregistro');
		}
		var dataString = 'model=user&action=register&';
		dataString += $registro.serialize();
		$.post('webservices/do.php', dataString, FanForm.registerResponse, 'json');
	},
	logout : function(e){
		e.preventDefault();
		var dataString = 'model=user&action=logout';
		$.post('webservices/do.php', dataString, FanForm.logoutResponse, 'json');
	},
	recoverResponse : function(result){
		if(result.success){
			$('#Recover #recover-before').fadeOut(500);
			$('#Recover #recover-after').fadeIn(500);
			$('#Recover #recover-cerrar').click(function(e){
				e.preventDefault();
				$('#Recover').fadeOut();
			});
		}else{
			$('#Recover').fadeOut();
			Pop.show(result.error);
		}
	},
	loginResponse : function(result){
		if(result.success){
			self.location.href=FanForm.getUrlVars()['from'];
		}else{
			Pop.show(result.error);
		}
	},
	registerResponse : function(result){
		if(result.success){
			Congrats.show();
		}else{
			Pop.show(result.error);
		}
	},
	logoutResponse : function(result){
		if(result.success){
			self.location.href="index.html";
		}else{
			console.log(result.error);
		}
	}
}

var TicketForm = {
	ready : function(){
		if(TicketForm.getUrlVars()['from'] == 'juego_promocion.html'){
			$('#NoTicket').css('display', 'none');
		}
		$('#fecha_compra').focusin(TicketForm.cleanField);
		$('#hora_compra').focusin(TicketForm.cleanField);
		$('#fecha_compra').focusout(TicketForm.fillField);
		$('#hora_compra').focusout(TicketForm.fillField);
		$('#registro_ticket').submit(TicketForm.register);
	},
	getUrlVars : function(){
    	var vars = [], hash;
    	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    	for(var i = 0; i < hashes.length; i++)
    	{
        	hash = hashes[i].split('=');
        	vars.push(hash[0]);
        	vars[hash[0]] = hash[1];
    	}
    	return vars;
	},
	cleanField : function(e){
		if($(e.currentTarget).val() === 'DD-MM-AA' || $(e.currentTarget).val() === '00:00:00')
			$(e.currentTarget).val('');
	},
	fillField : function(e){
		switch($(e.currentTarget).attr('id')){
			case 'fecha_compra':
				if($(e.currentTarget).val() === '')
					$(e.currentTarget).val('DD-MM-AA');
				break;
			case 'hora_compra':
				if($(e.currentTarget).val() === '')
					$(e.currentTarget).val('00:00:00');
				break;
		}
	},
	register :function(e){
		var $registro = $('#registro_ticket');
		var dataString = 'model=ticket&action=register&';
		e.preventDefault();
		
		dataString += $registro.serialize();
		$.post('webservices/do.php', dataString, TicketForm.registerResponse, 'json');
	},
	registerResponse : function(result){
		if(result.success){
			console.log('Mandar a juego de promocion');
			self.location.href="juego_promocion.html";
		}else{
			console.log(result.error);
		}
	}
}

var Game = {
	ready : function(){
		var dataString = 'model=game&action=requestGame';
		$.post('webservices/do.php', dataString, Game.getReady, 'json');
	},
	getReady : function(result){
		if(!result.success){
			self.location.href="registro_promocion.html?from=juego_promocion.html";
		}
	}
}

var Congrats = {
	show : function(){
		var top = $(window).height()/2 - $('#Congrats').height()/2;
		var left = $(window).width()/2 - $('#Congrats').width()/2;
		$('#Congrats').css({'left':left,'top':top});
		$('#Congrats').fadeIn();
		$('#Congrats #congrats-cerrar').click(Congrats.hide);
	},
	hide : function(e){
		e.preventDefault();
		self.location.href=FanForm.getUrlVars()['from'];
	}
}

var Pop = {
	show : function(text){
		var top = $(window).height()/2 - $('#Pop').height()/2;
		var left = $(window).width()/2 - $('#Pop').width()/2;
		$('#Pop').css({'left':left,'top':top});
		$('#Pop p').text(text);
		$('#Pop').fadeIn();
		$('#Pop #pop-close').click(Pop.hide);
	},
	hide : function(e){
		e.preventDefault();
		$("#Pop").fadeOut();
	}
}
