function fnBorrarHistorialNavegacion(){
    var cantPag = App.getStack().length - 1;
    App.removeFromStack(0,App.getStack().length - 1);
}

function fnMostrarMensaje(titulo, descripcion){
    App.dialog({
        title        : titulo,
        text         : descripcion,
        okButton     : 'Aceptar'
    }, function (tryAgain) { });
}


App.controller('pgPrincipal', function (page) {
    $(page)
        .find('#login')
        .on('click', function () {
        App.load('pgLogin');
    });
    $(page)
        .find('#logout')
        .on('click', function () {
        App.dialog({
            title        : 'Aviso',
            text         : '¿Está seguro de salir?',
            okButton     : 'Aceptar',
            cancelButton : 'Cancelar'
        }, function (tryAgain) {
            if (tryAgain) {
                fnLogout();
            }
        });
    });
    $(page)
        .find('#crear')
        .on('click', function () {
        App.load('pgCrearCuenta');
    });
    $(page)
        .find('#escaner')
        .on('click', function () {
        fnEscanerQR();
    });
    $(page)
        .find('#mensajes')
        .on('click', function () {
        App.load('pgMensajes');
    });
    $(page)
        .find('#puntos')
        .on('click', function () {
        App.load('pgPuntos');
    });
    $(page)
        .find('#negocios')
        .on('click', function () {
        App.load('pgNegocios');
    });
    $(page)
        .find('#perfil')
        .on('click', function () {
        if(MePremioData.perfil.id != ""){
            App.load('pgPerfil');
        }
        else{
            App.load('pgLogin');
        }
    });
    $(page)
        .find('#terminosCondiciones')
        .on('click', function () {
        App.load('pgTerminos');
    });
    $(page)
        .find('#politica')
        .on('click', function () {
        App.load('pgPrivacidad');
    });

    /*
    Método que ayuda a verificar la cantidad de mensajes ya leídos, 
    y como resultado mostrar el número de mensajes no leídos     */
    $(page).on('appShow', function () {
        
        fnVerificarMePremioData();
        
        var mensajesLeidos = localStorage.getItem(idMensajes).split('|');
        numMensajes = MePremioData.mensajes.length;
        if(numMensajes > 0){
            for(var i=0; i < MePremioData.mensajes.length; i++){
                for(var x = 0; x < mensajesLeidos.length; x++){
                    if(mensajesLeidos[x] == MePremioData.mensajes[i].llave){
                        numMensajes--;
                    }
                }
            }
            if(numMensajes > 0){
                $(page).find('.notificacion').css('display','initial');
                $(page).find('.notificacion').text(numMensajes);
            }
            else{
                $(page).find('.notificacion').css('display','none');
            }
        }
        else{
            $(page).find('.notificacion').css('display','none');
        }
        /*Verifica si hay datos del usuario logueado*/
        if(MePremioData.perfil.id != ""){
            $("#logueado").html(MePremioData.perfil.nombre);
            $("#crear").css('display','none');
            $("#login").css('display','none');
            $("#logueado").css('display','table');
            $("#logout").css('display','table');
        }
        else{
            $("#crear").css('display','table');
            $("#login").css('display','table');
            $("#logueado").css('display','none');
            $("#logout").css('display','none');
        }
    });
    $(page).on('appReady', function () {
        getStatus();
    });
});

App.controller('pgLogin', function(page) {
    $(page)
        .find('#btnEnviar')
        .on('click', function () {
        var correo = $("#correo").val();
        var pass = $("#contrasenia").val();

        if(correo && pass){
            //Verificar conexion a internet
            if(!fnVerficarConexion()){
                fnObtenerJSON(correo,pass);
                if(MePremioData.perfil.id != ""){
                    App.load('pgPrincipal');
                    fnBorrarHistorialNavegacion();
                }
                else{
                    fnMostrarMensaje('Mensaje','Verifica tus datos o Visita mePremio.com para obtener ayuda.');
                }
            }
            else{
                fnMostrarMensaje('Aviso','Verifique su conexión a internet.');
            }
        }
        else{
            fnMostrarMensaje('Mensaje','Introduce tu usuario y contraseña');
        }
    });
});

App.controller('pgCrearCuenta', function(page) {
    $(page)
        .find('#btnRegistrar')
        .on('click', function () {
        fnRegistro();
    });
    $(page).on('appShow', function () {
        $("#dtBox").DateTimePicker({
            minDate: '1970-01-01',
            maxDate: new Date().toJSON().slice(0,10)
        });
    });
});

App.controller('pgEscanerLike', function(page, data) {
    var data =  data;
    
    ganados = data.puntos_ticket;
    adicionales = data.puntos_actividad;
    
    likeUrl = data.like.url;
    
    $(page)
        .find('#btnLike')
        .on('click', function () {
        fnFbShare();
    });
    $(page)
        .find('#btnFBenviar')
        .on('click', function () {
        fnEnviarFB();
    });
    $(page)
        .find('#btnLoginFB')
        .on('click', function () {
        fnLoginFB();
    });
    
    $(page).on('appShow', function () {
        window.plugins.spinnerDialog.show(null, "Verificando sesión\nde Facebook...");
        $("#infLike").css("visibility","visible");
        $("#imgLike").attr("src",data.like.image);
        $("#infLikeTitle").html(data.like.title);
        $("#infLikeDescripcion").html(data.like.description);
        $("#msjEscanerLike").html("Ya ganaste "+ ganados +" punto"+ ls(ganados) +"\ndale compartir y gana "+ adicionales +" más:");
        facebookConnectPlugin.getLoginStatus( // Verificar si esta loguedo o no
            function (response) {
                var conectado = JSON.stringify(response);
                conectado = $.parseJSON(conectado);

                if(conectado.status == "connected"){
                    $("#btnLike").css("display","table");
                    $("#btnLoginFB").css("display","none");
                }
                else{
                    $("#btnLoginFB").css("display","table");
                }
                window.plugins.spinnerDialog.hide();
            },
            function (response) {
                window.plugins.spinnerDialog.hide();
                fnMostrarMensaje('Error','Ocurrió un error al verificar la sesión. Inténtalo más tarde.');
            }
        );
    });
});

App.controller('pgEscanerPreguntas', function(page, data) {
    var data = data;
    
    $(page)
        .find('#btnPreguntasenviar')
        .on('click', function () {
        fnEnviarRespuestas();
    });
    $(page).on('appShow', function () {
        var ganados = data.puntos_ticket;
        var adicionales = data.puntos_actividad;

        var respuestas = JSON.parse(data.pregunta.respuestas);
        var verbo = "opinando";
        for(var i in respuestas){
            if(!respuestas[i].correcta){
                verbo = "contestando correctamente";
                break;
            }
        }
        
        $("#msjEscanerPreg").html("Ya ganaste "+ganados+" punto"+ls(ganados)+", gana "+adicionales+" más "+verbo+":");
        $("#EscanerPregunta").html(data.pregunta.pregunta);

        var j = 0;
        var html = "";
        for(var i in respuestas){
            html+= '<input type="radio" name="preguntas" value="'+ j +'" id="pregunta-'+ i +'" class="css-checkbox" /><label for="pregunta-'+ i +'" class="css-label">'+ i +' '+ respuestas[i].respuesta +'</label><br>';
            j++;
        }

        $("#respuestas").html(html);
    });
});

App.controller('pgMensajes', function(page) {
    $(page).on('appShow', function () {
        fnMensajes();
    });
});

App.controller('pgMensaje', function(page,index) {
    
    var indice = index.indice;
    
    $(page).on('appShow', function () {
        $("#sobreMensaje"+indice).attr('src','');
        var mensaje = MePremioData.mensajes[indice];
        var mensajesLeidos = localStorage.getItem(idMensajes);
        var mensaArray = mensajesLeidos.split('|');
        
        if(mensaArray.indexOf(mensaje.llave) === -1){
            mensajesLeidos+= mensaje.llave + '|';
            localStorage.setItem(idMensajes,mensajesLeidos);
        }
        
        var contenido = "<h1 style='color: #7B7777'>"+ mensaje.asunto +"</h1>";
        contenido+=	  "<hr style='background: #000;margin-bottom: 15px;'>";
        contenido+=	  mensaje.html;

        contenido+= "<hr style='background: #000;margin-top: 15px;'>";
        contenido+= "<div style='color: #7B7777;font-size:14px;font-weight:bold;text-align:right;'>CODIGO: "+ mensaje.llave +"</div>";
        if(mensaje.vigencia){
            contenido+= "<div style='color: #7B7777;font-size:14px;font-weight:bold;text-align:right;'>VIGENCIA: "+ mensaje.vigencia +"</div>";
        }

        var re = /%path%0000/gi;
        var str = contenido;
        var newstr = str.replace(re, "http://mepremio.com/uploads/00/00/");

        $("#mostrarMensaje").html(newstr); 
    });
});

App.controller('pgPuntos', function(page) {
    $(page).on('appShow', function () {
        var puntosNegocios = "";
        var imagen = "";
        if(MePremioData.perfil.id != ""){
            if(MePremioData.puntos.length < 1){
                $("#msjPuntos").html("<p>No has ganado puntos, ¡escanea un QR mePremio para ganar!");
            }
            else{
                $("#msjPuntos").html("");
                for(var i = 0; i < MePremioData.puntos.length; i++){
                    var caducidad = "";
                    if(MePremioData.puntos[i].saldo > 0){
                        caducidad = "Próxima caducidad: " + formatoCaducidad(MePremioData.puntos[i].caducidad);
                    }
                    else{
                        caducidad = "";
                    }
                    imagen = fnObtenerImagen(MePremioData.descargas,MePremioData.puntos[i].negocio);
                    puntosNegocios+= '<div class="puntos"><div style="text-align: center;margin-bottom: 5px;"><img width="50%" src="'+ imagen +'"></div><div class="pts">'+ MePremioData.puntos[i].saldo +'</div><div style="margin-top: -35px;float: right;"><img id="start" src="img/star.png"><img id="start" src="img/star.png"><img id="start" src="img/star.png"><img id="start" src="img/star.png"><img id="start" src="img/star.png"></div><hr><div><div style="font-size: 20px;" class="pts">Puntos</div><div style="margin-top: -24px;float: right;font-size: 20px;" class="pts">Lealtad</div><div class="caducidad">'+ caducidad +'</div></div></div>';
                }
                $("#listaPuntos").html(puntosNegocios);
            }
        }
        else{
            $("#msjPuntos").html("<p>No hay datos.</p><p>Conéctate para descargarlos.</p>");
        }
    });
});

App.controller('pgNegocios', function(page) {
    $(page).on('appShow', function () {
        var html = "";
        var imagen = "";
        if(!(MePremioData.negocios.length > 0)){
            $("#msjNegocios").html('No hay datos. Conéctate para descargarlos');
        }
        else{
            $("#msjNegocios").html('');
            for(var i = 0; i < MePremioData.negocios.length; i++){
                var infNegocio = MePremioData.negocios[i];
                imagen = fnObtenerImagen(MePremioData.descargas,infNegocio.id);
                html+= '<div class="puntos" style="cursor: pointer;" id="negocio-'+ MePremioData.negocios[i].id +'"><div style="text-align: center;margin-bottom: 5px;"><img width="50%" src="'+ imagen +'" onclick="fnAbrirNegocio('+ MePremioData.negocios[i].id +')"></div></div>';
            }
            $("#listaNegocios").html(html);
        }
    });
});

App.controller('pgNegociosInfo', function(page, index) {
    var infoNegocio = index.indice;

    $(page).on('appShow', function () {
        var listaSurcursales = "";
        var imagen = "";
        for(var i = 0; i < MePremioData.negocios.length; i++){
            var uno = parseInt(infoNegocio);
            var dos = parseInt(MePremioData.negocios[i].id);
            if(uno == dos){
                imagen = fnObtenerImagen(MePremioData.descargas,infoNegocio);
                $("#imgNegocioInfo").attr('src',imagen);
                listaSurcursales = fnListaSucursales(MePremioData.negocios[i]);
                $("#listaSurcursales").html(listaSurcursales);
                fnBasesSucursal(MePremioData.negocios[i]);
            }
        }
    });
});

App.controller('pgPerfil', function(page) {
    $(page)
        .find('#btnLogout')
        .on('click', function () {
        App.dialog({
            title        : 'Aviso',
            text         : '¿Está seguro de salir?',
            okButton     : 'Aceptar',
            cancelButton : 'Cancelar'
        }, function (tryAgain) {
            if (tryAgain) {
                fnLogout();
            }
        });
    });
    $(page).on('appShow', function () {
        if(MePremioData.perfil.id != ""){
            $("#qrUsuario").attr('src',MePremioData.descargas[0].url);
            $("#nombrePerfil").html(MePremioData.perfil.nombre);
            $("#correoPerfil").html(MePremioData.perfil.correo);
        }
    });
});

try {
    App.restore();
} catch (err) {
    App.load('pgPrincipal');
}