var mobileService = new WindowsAzure.MobileServiceClient("https://trivia.azure-mobile.net/", "SCcxevRTMUjDLCijahUwVimoijbAXl75");
var idTrivia = 46; //configurar código trivia
var idCategoria = 0;
var RegistroActual = 0;
var PuntuacionGeneral = 0;
var NumeroPreguntaMaxima = 0;
var preguntaEnCurso = false;
var Aciertos = 0;
var Errores = 0;
var iframe = false;
var tempoAtualizacion = 400; //100
var idioma = window.navigator.userLanguage || window.navigator.language;
var mensajePuntuacionFinal = '';
//$(document).on("pageinit", function () {
$(document).ready(function () {
	
	/*
    if (localStorage.getItem("audiofondo") === null && localStorage.getItem("audiofondoJuego") === null) {
        CambiarSonidoFondo(7);
        CambiarSonido(40);
    } else {
        CambiarSonidoFondo(localStorage.getItem("audiofondo"));
        CambiarSonido(localStorage.getItem("audiofondoJuego"));
    }
    if (localStorage.getItem("audiofondo") > 0) {
        document.getElementById('audiofondo').play();
    }
    
*/
 
	$("#btfinalizar").click(function (event) {
       ElUsuarioFinalizaElJuego();
    });
	
	
 

    $("#jugar").click(function (event) {
        jugar();
    });

   
    $("#btMasTiempo").click(function (event) {
        MasTiempo();
    });
    $("#bt50").click(function (event) {
        CincuentaPorCiento();
    });
    $("#btSaltaPregunta").click(function (event) {
        SaltarPregunta();
    });
    $("#ranking").click(function (event) {
        VerRanking();
    });
    $("#btContinuar").click(function (event) {
        GenerarPreguntas();
    });

    
  ;

    $("#opciones").click(function (event) {
      
        $('#PantallaInicio').hide();
        $('#Ajuste').show();
    });



    $("#cerraIframe").click(function (event) {
        $('#PantallaInicio').hide();
        $('#PantallaJuego').show();
        $('#rankingTela').hide();
        $('#iframeweb').hide();
        $('#wikipediaContenedor').hide();
        $('#pregunta').show();

    });
    
    $("#wikipediabt").click(function (event) {
        $('#PantallaInicio').hide();
        $('#PantallaJuego').hide();
        $('#rankingTela').hide();
        $('#iframeweb').show();
        $('#iframe').html("<iframe class='iframe' src='http://pt.wikipedia.org/wiki/Wikip%C3%A9dia:P%C3%A1gina_principal'></iframe>");       

    });
    
    LocalStorageUsuario();
    document.getElementById('jugador1').value = localStorage.getItem("jugador1");


    $("#respuesta1, #respuesta2 , #respuesta3 , #respuesta4").on("click", function () {
        if (preguntaEnCurso == true) {
            preguntaEnCurso = false;

            if (iframe == true) {
                  $("#wikipediaContenedor").show();
                  $("#pregunta").hide();
            }
          
            
            if (RegistroActual == NumeroPreguntaMaxima) {
                ElUsuarioFinalizaElJuego();
            } else {
                $("#botonesJuego").hide();
                $("#botonesJuegoContinuar").show();
            }

           
            
           
            
           

            if (this.id == "respuesta" + DesOrdenarRespuesta[0]) {
               // document.getElementById('audioPregunta').src = "sonido/aplausos.mp3";
                //document.getElementById('audioPregunta').play();
                $("#textoAnimo").html(localStorage.getItem("jugador1") + " você ganhou ");
                Aciertos++;
                PuntuacionGeneral += parseInt(($("#PuntosEnJuego").html() / 10) * 10);

                $(this).css("color", "#fff");
                $(this).css("backgroundColor", "#006600");
                $(this).css("fontSize", "30px");
                $("#PuntuacionGeneral").html("<span class='labelValor'>Pontos: </span>" + PuntuacionGeneral);
                $("#NumeroPreguntas").html("<span class='labelValor'>Pergunta </span>" + (parseInt(RegistroActual) + 1) + "<span class='labelValor'> de </span>" + NumeroPreguntaMaxima);

            } else {
                $("#PuntuacionGeneral").html("<span class='labelValor'>Pontos: </span>" + PuntuacionGeneral);
                $("#NumeroPreguntas").html("<span class='labelValor'>Pergunta </span>" + (parseInt(RegistroActual) + 1) + "<span class='labelValor'> de </span>" + NumeroPreguntaMaxima);

                $("#respuesta" + DesOrdenarRespuesta[0]).css("color", "#fff");
                $("#respuesta" + DesOrdenarRespuesta[0]).css("backgroundColor", "#006600");
               // document.getElementById('audioPregunta').src = "sonido/abucheo.mp3";
               // document.getElementById('audioPregunta').play();
                $(this).css("color", "#fff");
                $(this).css("backgroundColor", "red");
                Errores++;
                if (PuntuacionGeneral > 30) {
                    PuntuacionGeneral += -30;
					 $("#PuntuacionGeneral").html("<span class='labelValor'>Pontos: </span>" + PuntuacionGeneral);
                    $("#textoAnimo").html(localStorage.getItem("jugador1") + " deixou de ganhar ");

                } else {
                    PuntuacionGeneral = 0;
					 $("#PuntuacionGeneral").html("<span class='labelValor'>Pontos: </span>" + PuntuacionGeneral);
                    $("#textoAnimo").html(localStorage.getItem("jugador1") + " deixou de ganhar ");

                }
               
            }
        }
    });


});

function ActualizarVaribles() {
    NumeroPreguntaMaxima = obj.data.length - 1;
    if (NumeroPreguntaMaxima > 1000) {
        NumeroPreguntaMaxima = 1000;
    }
    listaPregunta = GenerarRandom(0, NumeroPreguntaMaxima, obj.data.length - 1);
    PuntuacionGeneral = 0;
    RegistroActual = 0;
    Aciertos = 0;
    Errores = 0;
    $("#bt50").show();
    $("#btSaltaPregunta").show();
    $("#btMasTiempo").show();

    
    LocalStorageUsuario();
   
  //  $("#ContenedorPregunta").show();
    $("#BtIframeCerrar").hide();
    
    

}

function jugar() {

    CargarCategoria();
    ActualizarVaribles();
    $('#PantallaInicio').hide();
    $('#PantallaJuego').show();
    GenerarPreguntas();
}

function VerRankingOnline() {

    var todoTable = mobileService.getTable('puntuacion').where({ idtrivia: idTrivia }).take(50);

   

    var mytable = "<table cellpadding=\"5\" width=\"100%\"  cellspacing=\"0\"><tbody><tr class=col1>";
    var col = 1;
   


    todoTable.read().done(function (results) {

      
        
        for (var i = 0; i < results.length; i++) {
				
			var pais = results[i].pais;
			pais = pais.replace("-","");
			pais = pais.toLowerCase();
            var urlimg = "img/banderas/" +pais+ ".png";
               mytable += "<td><img src="+urlimg+" width='20' height='15' /></td>";
               mytable += "<td class=rank>" + parseInt(i + 1) + "</td>";
               mytable += "<td>" + results[i].nombre + "</td>";
               mytable += "<td>" + results[i].porcentaje + "%</td>";
               mytable += "<td class=rank>" + results[i].puntos + "</td>";

              

               if (i % 2 == 1) {
                    mytable += "</tr><tr class=col1>";
               } else {
                   mytable += "</tr><tr class=col2>";
               }
               
               
            
            }

        var tituloOnline = "<h2 class=rank>Ranking Online</h2>";
        
        mytable += "</tr></tbody></table>";
        $("#PantallaRanking").append(tituloOnline + mytable);
    
           
       


    });

   
}
function CargarCategoria() {
    if (idCategoria != 0) {
        obj.data = jQuery.grep(obj.data, function (elemento, index) {
            return elemento.idprovincia == idCategoria;
        });
    }
}
function VolverAlInicio() {
    $('#PantallaInicio').show();
    $('#PantallaJuego').hide();
	$("PantallaRanking").html();
	$("#rankingTela").hide();
    $('#Ajuste').hide();
    $('html, body').animate({ scrollTop: 0 }, 1250);
}
function GenerarPreguntas() {
    if (iframe == true) {
        $("#pregunta").show();
        $("#wikipediaContenedor").hide();
    }
    $("#respuesta1, #respuesta2 , #respuesta3 , #respuesta4").show();
    $('#respuesta1, #respuesta2 , #respuesta3 , #respuesta4').on('tap');
    $("#respuesta1").css("color", "#000");
    $("#respuesta1").css("backgroundColor", "#eee");
    $("#respuesta1").css("fontSize", "25px");
    $("#respuesta2").css("color", "#000");
    $("#respuesta2").css("backgroundColor", "#eee");
    $("#respuesta2").css("fontSize", "25px");
    $("#respuesta3").css("color", "#000");
    $("#respuesta3").css("backgroundColor", "#eee");
    $("#respuesta3").css("fontSize", "25px");
    $("#respuesta4").css("color", "#000");
    $("#respuesta4").css("backgroundColor", "#eee");
    $("#respuesta4").css("fontSize", "25px");


    DesOrdenarRespuesta = GenerarRandom(1, 4, 4);
    $("#botonesJuego").show();
    $("#botonesJuegoContinuar").hide();

    $("#pregunta").html(obj.data[listaPregunta[RegistroActual]].pregunta);
    $("#respuesta" + DesOrdenarRespuesta[0]).html(obj.data[listaPregunta[RegistroActual]].resp1);
    $("#respuesta" + DesOrdenarRespuesta[1]).html(obj.data[listaPregunta[RegistroActual]].resp2);
    $("#respuesta" + DesOrdenarRespuesta[2]).html(obj.data[listaPregunta[RegistroActual]].resp3);
    $("#respuesta" + DesOrdenarRespuesta[3]).html(obj.data[listaPregunta[RegistroActual]].resp4);
    $("#PuntuacionGeneral").html("<span class='labelValor'>Pontos: </span>" + PuntuacionGeneral);
    $("#NumeroPreguntas").html("<span class='labelValor'>Pergunta </span>" + (parseInt(RegistroActual) + 1) + "<span class='labelValor'> de </span>" + NumeroPreguntaMaxima);

    preguntaEnCurso = true;
    BarraTiempo.value = 100;
    BarraActualizar();
    RegistroActual++;
 
}
function FinalizarJuego() {

    ListarPuntuacion();
    $.when(VerRankingOnline).done(function (x) {
        VerRankingOnline();
    });
   

   

}

function MasTiempo() {
    barra.value = 100;
    $("#btMasTiempo").hide();

}
function CincuentaPorCiento() {
    $("#respuesta" + DesOrdenarRespuesta[1]).hide();
    $("#respuesta" + DesOrdenarRespuesta[3]).hide();
    $("#bt50").hide();
}

function SaltarPregunta() {
    preguntaEnCurso = false;
    $("#btSaltaPregunta").hide();
    GenerarPreguntas();

}
function GenerarRandom(min, max, real) {
    var arr = [];
    while (arr.length < max) {
        var randNum = Math.floor(Math.random() * (real - min + 1)) + min,
            found = false;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == randNum) {
                found = true;
                break
            }
        }
        if (!found) arr[arr.length] = randNum;
    }
    return arr;
}

function BarraActualizar() {

    if (preguntaEnCurso == true) {
        barra = document.getElementById("BarraTiempo");


        $("#textoAnimoo").html("");

        $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));
        var imprimirNombre = localStorage.getItem("jugador1");

        switch (barra.value) {
            case 0:
                FinalizaElTiempo();
                break;
            case 20:
                $("#BarraTiempo").css("color", "red");
                $("#textoAnimo").html(imprimirNombre + " se acaba o tempo, em jogo " );
                $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));

                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
                break;
            case 45:
                $("#BarraTiempo").css("color", "#D93600");
                $("#textoAnimo").html(imprimirNombre + " já se foi a metade do tempo, em jogo ");
                $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));
                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
                break;
            case 70:
                $("#BarraTiempo").css("color", "#D6AD0C");
                $("#textoAnimo").html(imprimirNombre + " você pode ganhar ");
                $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));
                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
                break;
            case 90:
                $("#BarraTiempo").css("color", "#2693FF");
                 $("#textoAnimo").html(imprimirNombre + " não deixe o tempo passar, em jogo ");
                $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));
                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
                break;
            case 100:
                $("#BarraTiempo").css("color", "#2693FF");
                $("#textoAnimo").html(imprimirNombre + " sejá rápido e ganhe ");
                $("#PuntosEnJuego").html(parseInt((barra.value / 10) * 10));
                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
                break;
            default:
                barra.value -= 0.5;
                setTimeout("BarraActualizar()", tempoAtualizacion);
        }
    }

};

function LocalStorageUsuario() {
    if (localStorage.getItem("jugador1") === null) {
        localStorage.setItem('jugador1', "Jogador 1");
        localStorage.setItem('jugador2', "Jogador 2");
        localStorage.setItem('jugador1puntuacion', 0);
        localStorage.setItem('rankingoffline', '0');
    }
    
    if (localStorage.getItem('jugador1puntuacion') > 0) {
        $("#labelJugador1").html("Bem vindo <a href='#' onclick='ajustes();'>" + localStorage.getItem('jugador1') + "</a>.<br>Preparado para superar os " + localStorage.getItem('jugador1puntuacion') + " pontos?");
    } else {
        $("#labelJugador1").html("Bem vindo <a href='#' onclick='ajustes();'>" + localStorage.getItem('jugador1') + "</a>.<br>Preparado para sua primeira partida?");
    }
    
}
function changeTitle(someNewText) {
    alert(someNewText);
}

function salir(a) {
    console.log("salir");
}
function inicioReset() {
    $('#PantallaInicio').show();
    $('#PantallaJuego').hide();
    $('#inicioReset').hide();
    $('#Ajuste').hide();

    $('html, body').animate({ scrollTop: 0 }, 1250);
  
}


function ElUsuarioFinalizaElJuego() {
    preguntaEnCurso = false;
    categoria = 0;


    $('#PantallaInicio').hide();
    $('#PantallaJuego').hide();
    $('#rankingTela').show();

   
    var newscript = document.createElement('script');
    newscript.type = 'text/javascript';
    newscript.async = true;
    newscript.src = 'data/datos.json';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(newscript);
    

    //document.getElementById('audioPregunta').pause();
    if (RegistroActual > 1) {
        porcentajeAcierto = parseInt(Aciertos * 100 / (RegistroActual - 1));
        if(porcentajeAcierto>100){
            porcentajeAcierto = 100;
        }
    } else {
        porcentajeAcierto = 0;
    }

    if (localStorage.getItem('jugador1puntuacion') < PuntuacionGeneral) {
        localStorage.setItem('jugador1puntuacion', PuntuacionGeneral);
    }

    // IndexDB
    var registro = {};
    registro.nombre = localStorage.getItem('jugador1');
    registro.puntos = PuntuacionGeneral;
    registro.idtrivia = idTrivia;
    registro.pais = idioma;
    registro.numpreguntas = RegistroActual;
    registro.porcentaje = porcentajeAcierto;
    registro.numaciertos = Aciertos;


    var transaction = database.transaction(["puntuacion"], "readwrite");
    var objectStore = transaction.objectStore("puntuacion");

    var request = objectStore.put(registro);

    request.onsuccess = function (event) {

    };

    console.log(registro);

    var mensaje = true;

   
   
    $.when(grabarDatos).done(function (x) {
        var puntuacion = { nombre: localStorage.getItem('jugador1'), puntos: PuntuacionGeneral, idtrivia: idTrivia, pais: idioma, numpreguntas: (parseInt(RegistroActual) + 1), porcentaje: porcentajeAcierto, numaciertos: Aciertos };
        if (PuntuacionGeneral != null && localStorage.getItem('jugador1').length > 1) {
            mobileService.getTable("puntuacion").insert(puntuacion);
        }
        var msg = localStorage.getItem('jugador1') + " você ganhou " + PuntuacionGeneral + " pontos, acertaste um " + porcentajeAcierto + " das perguntas";
        $("#PantallaRanking").html("<h2 class=mensajeFinal>"+msg+"</h2>");
    });
	
	
   

   
    FinalizarJuego();
}

function grabarDatos() {


        
      
}
function VerRanking() {
  
    $('#PantallaInicio').hide();
    $('#PantallaJuego').hide();
    $('#rankingTela').show();
    $("#PantallaRanking").html("");
    ListarPuntuacion();

    VerRankingOnline();
  

}

function CambiarSonidoFondo(valor) {
    document.getElementById('audiofondo').volume = (valor / 100);
    document.getElementById('configurarSonidoFondo').value = valor;
    localStorage.setItem('audiofondo', valor);

}
function CambiarSonido(valor) {
    document.getElementById('audioPregunta').volume = (valor / 100);
    document.getElementById('configurarSonido').value = valor;
    localStorage.setItem('audiofondoJuego', valor);
}

function GrabarUsuario(nuevo1) {
    if (localStorage.getItem("jugador1") === null) {
        localStorage.setItem('jugador1', "Jugador 1");
        localStorage.setItem('jugador1puntuacion', 0);
    } else {
        localStorage.setItem('jugador1', nuevo1);
    }
    $('#PantallaInicio').show();
    $('#Ajuste').hide();

    if (localStorage.getItem('jugador1puntuacion') > 0) {
        $("#labelJugador1").html("Bem vindo <a href='#' onclick='ajustes();'>" + localStorage.getItem('jugador1') + "</a>.<br>Preparado para superar os " + localStorage.getItem('jugador1puntuacion') + " pontos?");
    } else {
        $("#labelJugador1").html("Bem vindo <a href='#' onclick='ajustes();'>" + localStorage.getItem('jugador1') + "</a>.<br>Preparado para sua primeira partida?");
    }
    $('html, body').animate({ scrollTop: 0 }, 1250);

}
function ajustes() {
    $('#PantallaInicio').hide();
    $('#Ajuste').show();
}