var url_files = "";

var tamanoLetra = 30;
var tamanoRow = 30;
var matrizMarginTop = 35;

var correct = 0;
var total = 0;

var maxAltoMatriz = 0;
var maxAnchoMatriz = 0;

var url_gen = "";

var accionSeleccion = false;
var actividadCorregida = false;
var selecciones = [];

var configJson = {};

var palabrasSeleccionadas = [];

if ( typeof datosConfiguracion == "undefined" ){
    datosConfiguracion = {};
    datosConfiguracion.interfaz = "primaria";
}
var NRD = {
    configuracion: {
        interfaz: datosConfiguracion.interfaz
        //"secundaria"
    }
};

$(document).ready( function(){
    if ( typeof editable !== "undefined" && editable ){
        $("body").addClass( "editorSgo" );
    }
    initNRD();
    initWindowListener();
    $( "#loader" ).remove();
});
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function loadNRD() {
    loadFondo();
    loadHeader();
    loadBottombarButtons();
    cargarMatrizLetras();
    // aki falta algo...
    var enunciado = $(config_xml).find("enunciado").text();
    var enunciado = configJson.ES.pregunta.enunciado;
    $("#visor").prepend( '<div id="pregunta" class="pregunta"></div>' );
    enunciado = sanitizeXMLp( enunciado );
    $("#pregunta").append( enunciado );
    
}

function cargarMatrizLetras(){

    correct = 0;
    total = 0;
    maxAltoMatriz = 0;
    maxAnchoMatriz = 0;
    accionSeleccion = false;
    actividadCorregida = false;
    selecciones = [];
    palabrasSeleccionadas = [];

    $("#visor").append('<div id="matriz" style="position: relative; display: none; margin: 10px auto 20px auto;"></div>');
    var y = 0;
    $(config_xml).find( "fila" ).each( function(){
        // var letras = $(this).text().split(",");
        var letras = $(this).text().split(","); // .replace( "<!--[CDATA[", "").replace( "]]-->", "").split(",");
        var x = 0;
        for ( var len = letras.length; x < len ; x++ ) {
            $("#matriz").append('<div id="letra_'+ x +'_'+ y +'" class="letra" style="top:'+ y*tamanoLetra +'px; left:'+ x*tamanoLetra +'px; ">'+ letras[x] +'</div>');
            if ( x > maxAnchoMatriz && letras[x] != "" ){
                maxAnchoMatriz = x;
            }
        }
        y++;
        if ( y > maxAltoMatriz ){
            maxAltoMatriz = y;
        }
    });
    // $("#matriz").css( "top", $("#header").outerHeight(true) + $("#pregunta").outerHeight(true) );
    $("#matriz").css( "display", "block" );
    $("#matriz").width( y*tamanoLetra ).height( y*tamanoLetra );

    if ( isMobile ) {

        $(".letra").bind( 'click' , function() {
            if ( !accionSeleccion && !actividadCorregida ){
                accionSeleccion = {};
                var letraOrigen = letraObj( $(this) );
                accionSeleccion.letraOrigen  = letraOrigen;
                // alert( letraOrigen.x +":"+ letraOrigen.y );
                $(this).addClass("firstclick");
            }
            else {
                var letraDestino = letraObj( $(this) );
                if ( accionSeleccion.letraOrigen.id != letraDestino.id ) {
                    accionSeleccion.lastLetra = letraDestino;
                    // var miSeleccion = {
                    //     letraOrigen: accionSeleccion.letraOrigen,
                    //     letraDestino: accionSeleccion.letraDestino
                    // };
                    repintarSeleccion( true );
                }
                else {
                    var textoConfirmacion = configJson.ES.palabras.eliminar[0] || "confirm delete !?";
                    if ( confirm( textoConfirmacion ) ){
                        console.log( "como son la misma letra será que quiere borrar" );
                        var _palabraAborrar = false;
                        var _letraAborrar = "#"+$(this)[0].id;
                        console.log( $(this) )
                        console.log( "quieres borrar una palabra que tenga la letra "+ _letraAborrar );
                        for ( var i = 0, len = palabrasSeleccionadas.length; i < len; i++ ){
                            if ( palabrasSeleccionadas[i].letra == _letraAborrar ){
                                _palabraAborrar = palabrasSeleccionadas[i].palabra
                            }
                        }
                        console.log( "esta palabra es "+ _palabraAborrar );
                        var _accionSeleccion = accionSeleccion;
                        selecciones.splice( selecciones.indexOf( _accionSeleccion ) , 1 );
                        $( _palabraAborrar ).remove();
                        var _palabrasAborrar = [];
                        for ( var i = 0, len = palabrasSeleccionadas.length; i < len; i++ ){
                            if ( palabrasSeleccionadas[i].palabra == _palabraAborrar ){
                                _palabrasAborrar.push( palabrasSeleccionadas[i] );
                            }
                        }
                        for ( var i = 0, len = _palabrasAborrar.length; i < len; i++ ){
                            palabrasSeleccionadas.splice( palabrasSeleccionadas.indexOf( _palabrasAborrar[i] ) , 1 );
                        }
                        if ( selecciones.length > 0 ){
                            enableButton("comprobar");
                            enableButton("reiniciar");
                        }
                        else{
                            disableButton("comprobar");
                            disableButton("reiniciar");
                        }
                    }
                }
                $(".firstclick").removeClass("firstclick");
                accionSeleccion = false;
            }
        });

    }
    else {
        $(".letra").mousedown( function(e){
            if ( !accionSeleccion && !actividadCorregida){
                accionSeleccion = {};
                var letraOrigen = letraObj( $(this) );
                accionSeleccion.letraOrigen  = letraOrigen;
                accionSeleccion.lastLetra = letraOrigen;
                // console.log( "origen", letraOrigen );
                repintarSeleccion( false );
            }
        });
        $(".letra").mousemove( function(e){
            if ( accionSeleccion && !actividadCorregida ){
                var letraActual = letraObj( $(this) );
                if ( accionSeleccion.lastLetra.id != letraActual.id ){
                    accionSeleccion.lastLetra = letraActual;
                    // console.log( "change", letraActual );
                    repintarSeleccion( false );
                }
            }
        });
        $(".letra").mouseup( function(e){
            if ( accionSeleccion && !actividadCorregida ){
                var letraDestino = letraObj( $(this) );
                // accionSeleccion.letraDestino = letraDestino;
                // console.log( "destino", letraDestino )
                // selecciones.push( accionSeleccion );
                repintarSeleccion( true );
                accionSeleccion = false;
            }
        });
        $(document).mouseup( function(e){
            if ( accionSeleccion && !actividadCorregida ){
                accionSeleccion = false;
                $("#seleccionActual").remove();
            }
        });
    }
}

// var idRespuestas = 0;
function repintarSeleccion( marcar ){

    var origen  = accionSeleccion.letraOrigen;
    var actual  = accionSeleccion.lastLetra;
    
    var vector = {};
    vector.x = actual.x - origen.x;
    vector.y = actual.y - origen.y;
    
    vector.phi = vector.x / vector.y;
    vector.long = Math.max( Math.abs(vector.x), Math.abs(vector.y) ) ;
    
    // var longitud = (vector.long+1)*tamanoLetra;
    // alert( "oX:"+origen.x+" oY:"+origen.y );

    var altura = 26;
    var giro;

    if ( Math.abs( vector.phi ) > 2 ){
        vector.phix = vector.x > 0 ? 1 : (-1) ;
        vector.phiy = 0;
        if ( vector.phix > 0 ){
            giro = 0;
        }
        else{
            giro = 180;
        }
        actual.x = parseInt( origen.x ) + vector.long * vector.phix
        actual.y = origen.y;
    }
    else if ( Math.abs( vector.phi ) < 0.5  ){
        vector.phix = 0;
        vector.phiy = vector.y > 0 ? 1 : (-1) ;
        if ( vector.phiy > 0 ){
            giro = 90;
        }
        else{
            giro = 270;
        }
        actual.x = origen.x;
        actual.y = parseInt( origen.y ) + vector.long * vector.phiy;
    }
    else {
        vector.phix = vector.x > 0 ? 1 : (-1) ;
        vector.phiy = vector.y > 0 ? 1 : (-1) ;
        // longitud = Math.round( longitud*Math.sqrt( 2 ) - 12 );
        if( vector.phix == 1 && vector.phiy == 1 ){
            giro = 45;
        }
        else if( vector.phix == 1 ){
            giro = 315;
        } 
        else if( vector.phiy == 1 ){
            giro = 135;
        }
        else{
            giro = 225;
        }
        actual.x = parseInt( origen.x ) + vector.long * vector.phix
        actual.y = parseInt( origen.y ) + vector.long * vector.phiy;
    }
    if ( actual.x < 0 ){
        actual.y = parseInt( actual.y ) + vector.phiy * actual.x;
        actual.x = 0;
    }
    if ( actual.y < 0 ){
        actual.x = parseInt( actual.x ) + vector.phix * actual.y;
        actual.y = 0;
    }
    if ( actual.x > maxAnchoMatriz ){
        // console.log( "a", actual );
        actual.y = actual.y - vector.phiy * ( actual.x - maxAnchoMatriz );
        actual.x = maxAnchoMatriz;
        // console.log( "a!", actual );
    }
    if ( actual.y >= maxAltoMatriz ){
        // console.log( "b", actual );
        actual.x = actual.x - vector.phix * ( actual.y - maxAltoMatriz + 1 );
        actual.y = maxAltoMatriz - 1;
        // console.log( "!b", actual );
    }
    vector.x = actual.x - origen.x;
    vector.y = actual.y - origen.y;
    vector.phi = vector.x / vector.y;
    vector.long = Math.max( Math.abs(vector.x), Math.abs(vector.y) ) ;
    var longitud = (vector.long+1)*tamanoLetra - 2;
    if ( vector.phiy*vector.phix != 0 ){
        longitud = Math.round( longitud*Math.sqrt( 2 ) - 12 );
    }
    var margenIzqCalc = parseInt( origen.x*30 );
    if ( giro == 90 || giro == 270 ){
        margenIzqCalc += 1;
    }
    var margenSupCalc = parseInt( origen.y*30 );
    if ( giro == 45 ) {
    }
    else if ( giro == 135 ){
        margenSupCalc += 1;
    }
    else if ( giro == 225 ){
        margenSupCalc += 1;
    }
    else if ( giro == 315 ){
    }
    // console.log( "vector", vector.x, vector.y );
    if ( vector.x == 0 && vector.y == 0 ){
        margenSupCalc += 2;
    }
    if ( !marcar ){
        if ( !$("#seleccionActual").length  ){
            $("#matriz").append( '<div id="seleccionActual"></div>' );
        }
        $( "#seleccionActual" ).css({
            "position": "absolute",
            "height": altura+"px",
            "width": longitud+"px",
            "top": margenSupCalc+"px",
            "left": margenIzqCalc+"px",
            "transform-origin": "15px "+ parseInt( altura/2 )+"px",
            "-ms-transform-origin": "15px "+ parseInt( altura/2 )+"px",
            "-webkit-transform-origin": "15px "+ parseInt( altura/2 )+"px",
            "-ms-transform": "rotate("+giro+"deg)",/*" translate("+positionString+")", *//* IE 9 */
            "-webkit-transform": "rotate("+giro+"deg)", /*translate("+positionString+")",*/ /* Chrome, Safari, Opera */
            "transform": "rotate("+giro+"deg)", /*translate("+positionString+")"*/
            "border-radius": "15px 15px 15px 15px",
            "-moz-border-radius": "15px 15px 15px 15px",
            "-webkit-border-radius": "15px 15px 15px 15px",
            "z-index": "-200",
            // "border": "0px solid #000000",
            // "background-color": "rgba( 251, 199, 59, .5)"
            "border": "2px solid darkorange",
            "background-color": "orange",
            "opacity": "0.4"
        });   
    }
    else {

        if ( isiOS ){
            if ( giro == 90 ){
                margenIzqCalc -= longitud/2 - altura/2;
                margenSupCalc += longitud/2 - altura/2;
            }
            if( giro == 270 ){
                margenIzqCalc -= longitud/2 - altura/2;
                margenSupCalc -= longitud/2 - altura/2;   
            }
            if ( giro == 180 ){
                margenIzqCalc -= longitud - altura;
            }
            if ( giro == 45 ) {
                margenIzqCalc = margenIzqCalc - longitud/2 + (vector.long+1)*tamanoLetra/2 -2;
                margenSupCalc = margenSupCalc - altura/2 + (vector.long+1)*tamanoLetra/2 -2;
            }
            else if ( giro == 135 ){
                margenIzqCalc = margenIzqCalc - longitud/2 - (vector.long-1)*tamanoLetra/2 -2;
                margenSupCalc = margenSupCalc - altura/2 + (vector.long+1)*tamanoLetra/2 -2;
            }
            else if ( giro == 225 ){
                margenIzqCalc = margenIzqCalc - longitud/2 - (vector.long-1)*tamanoLetra/2 -2;
                margenSupCalc = margenSupCalc - altura/2 - (vector.long-1)*tamanoLetra/2 -2;
            }
            else if ( giro == 315 ){
                margenIzqCalc = margenIzqCalc - longitud/2 + (vector.long+1)*tamanoLetra/2 -2 ;
                margenSupCalc = margenSupCalc - altura/2 - (vector.long-1)*tamanoLetra/2 -2;
            }
        }

        $("#seleccionActual").remove();
        accionSeleccion.letraDestino = actual;
        var valido = validarPalabraSeleccionada( origen, actual );
        if ( valido ){

            selecciones.push( accionSeleccion );

            for ( var i = 0; i <= vector.long; i++ ){
                palabrasSeleccionadas.push({
                   letra: "#letra_"+( parseInt(origen.x)+i*vector.phix)+"_"+( parseInt(origen.y)+i*vector.phiy),
                   palabra: "#seleccion_"+origen.id+"_"+actual.id
                });

                if ( !isMobile ){
                    $( "#letra_"+(origen.x+i*vector.phix)+"_"+(origen.y+i*vector.phiy) ).on( "dblclick", { letra: "#letra_"+(origen.x+i*vector.phix)+"_"+(origen.y+i*vector.phiy), accion: accionSeleccion }, function( event ){
                        var textoConfirmacion = configJson.ES.palabras.eliminar[0] || "confirm delete !?";
                        if ( confirm( textoConfirmacion ) ){
                            console.log( "quieres borrar una palabra que tenga la letra "+ event.data.letra );
                            var _palabraAborrar = false;
                            var _letraAborrar = event.data.letra;
                            for ( var i = 0, len = palabrasSeleccionadas.length; i < len; i++ ){
                                if ( palabrasSeleccionadas[i].letra == _letraAborrar ){
                                    _palabraAborrar = palabrasSeleccionadas[i].palabra
                                }
                            }
                            console.log( "esta palabra es "+ _palabraAborrar );
                            var _accionSeleccion = event.data.accion;
                            selecciones.splice( selecciones.indexOf( _accionSeleccion ) , 1 );
                            $( _palabraAborrar ).remove();
                            var _palabrasAborrar = [];
                            for ( var i = 0, len = palabrasSeleccionadas.length; i < len; i++ ){
                                if ( palabrasSeleccionadas[i].palabra == _palabraAborrar ){
                                    _palabrasAborrar.push( palabrasSeleccionadas[i] );
                                }
                            }
                            for ( var i = 0, len = _palabrasAborrar.length; i < len; i++ ){
                                palabrasSeleccionadas.splice( palabrasSeleccionadas.indexOf( _palabrasAborrar[i] ) , 1 );
                            }
                            if ( selecciones.length > 0 ){
                                enableButton("comprobar");
                                enableButton("reiniciar");
                            }
                            else{
                                disableButton("comprobar");
                                disableButton("reiniciar");
                            }
                        }
                    });
                }
            }

            $("#matriz").append( '<div id="seleccion_'+origen.id+"_"+actual.id+'" class="palabraSeleccionada"></div>' );
            if ( !isiOS ){
                $( "#seleccion_"+origen.id+"_"+actual.id ).css({
                    "transform-origin": "15px "+parseInt( altura/2 )+"px",
                    "-ms-transform-origin": "15px "+parseInt( altura/2 )+"px",
                    "-webkit-transform-origin": "15px "+parseInt( altura/2 )+"px"
                });
            }
            $( "#seleccion_"+origen.id+"_"+actual.id ).css({
                "position": "absolute",
                "height": altura+"px",
                "width": longitud+"px",
                "top": margenSupCalc+"px",
                "left": margenIzqCalc+"px",
                //"transform-origin": "15px "+parseInt( altura/2 )+"px",
                "-ms-transform": "rotate("+giro+"deg)",/*" translate("+positionString+")", *//* IE 9 */
                "-webkit-transform": "rotate("+giro+"deg)", /*translate("+positionString+")",*/ /* Chrome, Safari, Opera */
                "transform": "rotate("+giro+"deg)", /*translate("+positionString+")"*/
                "border-radius": "15px 15px 15px 15px",
                "-moz-border-radius": "15px 15px 15px 15px",
                "-webkit-border-radius": "15px 15px 15px 15px",
                "z-index": "-300",
                "border": "2px solid darkorange",
                "background-color": "orange",
                "opacity": "1"
            });   
        }
        // else {
        //     // console.log( configJson );
        //     var textoConfirmacion = configJson.ES.palabras.eliminar[0] || "confirm delete !?";
        //     if ( confirm( textoConfirmacion ) ){
        //         $( "#seleccion_"+origen.id+"_"+actual.id ).remove();
        //         $( "#seleccion_"+actual.id+"_"+origen.id ).remove();
        //         selecciones.splice( selecciones.indexOf( accionSeleccion ) , 1 );
        //     }
        //     else{
        //     }
        // }
    }
    if ( selecciones.length > 0 ){
        enableButton("comprobar");
        enableButton("reiniciar");
    }
    else{
        disableButton("comprobar");
        disableButton("reiniciar");
    }
}

function validarPalabraSeleccionada( origen, destino ){
    if ( origen == destino ){
        return false;
    }
    // console.log( origen, destino );
    for ( var i = 0; i < selecciones.length ; i++ ){
        var resOrigenX = selecciones[i].letraOrigen.x;
        var resOrigenY = selecciones[i].letraOrigen.y;
        var resDestinoX = selecciones[i].letraDestino.x;
        var resDestinoY = selecciones[i].letraDestino.y;
        var palabraOrigenX = origen.x;
        var palabraOrigenY = origen.y;
        var palabraDestinoX = destino.x;
        var palabraDestinoY = destino.y;
        var okDerecho = palabraOrigenX == resOrigenX && palabraOrigenY == resOrigenY && palabraDestinoX == resDestinoX && palabraDestinoY == resDestinoY;
        var okReves = palabraOrigenX == resDestinoX && palabraOrigenY == resDestinoY && palabraDestinoX == resOrigenX && palabraDestinoY == resOrigenY;
        if ( okDerecho || okReves ){
            return false;
        }
    }
    return true;
}

function pintarSoluciones( obj ){

    var origen  = {};
    var actual = {};
    
    origen.id = obj.attr("inix")+"_"+obj.attr("iniy");
    origen.x = obj.attr("inix");
    origen.y = obj.attr("iniy");
    actual.id = obj.attr("finx")+"_"+obj.attr("finy");
    actual.x = obj.attr("finx");
    actual.y = obj.attr("finy");
    
    var vector = {};
    
    vector.x = actual.x - origen.x;
    vector.y = actual.y - origen.y;
    vector.phi = vector.x / vector.y;
    vector.long = Math.max( Math.abs(vector.x), Math.abs(vector.y) ) + 1 ;

    var longitud = vector.long*tamanoLetra - 2;
    var altura = 26;
    var giro;

    if ( Math.abs( vector.phi ) > 2 ){
        vector.phix = vector.x > 0 ? 1 : (-1) ;
        vector.phiy = 0;
        if ( vector.phix > 0 ){
            giro = 0;
        }
        else{
            giro = 180;
        }
    }
    else if ( Math.abs( vector.phi ) < 0.5  ){
        vector.phix = 0;
        vector.phiy = vector.y > 0 ? 1 : (-1) ;
        if ( vector.phiy > 0 ){
            giro = 90;
        }
        else{
            giro = 270;
        }
    }
    else {
        vector.phix = vector.x > 0 ? 1 : (-1) ;
        vector.phiy = vector.y > 0 ? 1 : (-1) ;
        longitud = Math.round( longitud*Math.sqrt( 2 ) - 12 );
        if( vector.phix == 1 && vector.phiy == 1 ){
            giro = 45;
        }
        else if( vector.phix == 1 ){
            giro = 315;
        } 
        else if( vector.phiy == 1 ){
            giro = 135;
        }
        else{
            giro = 225;
        }
    }

    var margenIzqCalc = parseInt( origen.x*30 );
    if ( giro == 90 || giro == 270 ){
        margenIzqCalc += 1;
    }
    var margenSupCalc = parseInt( origen.y*30 );
    if ( giro == 45 ) {
    }
    else if ( giro == 135 ){
        margenSupCalc += 1;
    }
    else if ( giro == 225 ){
        margenSupCalc += 1;
    }
    else if ( giro == 315 ){
    }

//    if ( isiOS ){
//        if ( giro == 90 ){
//            margenIzqCalc -= longitud/2 - altura/2;
//            margenSupCalc += longitud/2 - altura/2;
//        }
//        if( giro == 270 ){
//            margenIzqCalc -= longitud/2 - altura/2;
//            margenSupCalc -= longitud/2 - altura/2;   
//        }
//        if ( giro == 180 ){
//            margenIzqCalc -= longitud - altura;
//        }
//        if ( giro == 45 ) {
//            margenIzqCalc = margenIzqCalc - longitud/2 + (vector.long+1)*tamanoLetra/2 -altura/2;
//            margenSupCalc = margenSupCalc - altura/2 + (vector.long+1)*tamanoLetra/2 -altura/2;
//        }
//        else if ( giro == 135 ){
//            margenIzqCalc = margenIzqCalc - longitud/2 - (vector.long-1)*tamanoLetra/2 +altura/2;
//            margenSupCalc = margenSupCalc - altura/2 + (vector.long+1)*tamanoLetra/2 -altura/2;
//        }
//        else if ( giro == 225 ){
//            margenIzqCalc = margenIzqCalc - longitud/2 - (vector.long-1)*tamanoLetra/2 +altura/2;
//            margenSupCalc = margenSupCalc - altura/2 - (vector.long-1)*tamanoLetra/2 +altura/2;
//        }
//        else if ( giro == 315 ){
//            margenIzqCalc = margenIzqCalc - longitud/2 + (vector.long+1)*tamanoLetra/2 -altura/2 ;
//            margenSupCalc = margenSupCalc - altura/2 - (vector.long-1)*tamanoLetra/2 +altura/2;
//        }
//    }
        
    $("#matriz").append( '<div id="seleccion_'+origen.id+'_'+actual.id+'" class="jsSeleccion"></div>' );
        $( "#seleccion_"+origen.id+'_'+actual.id ).css({
            "position": "absolute",
            "height": altura+"px",
            "width": longitud+"px",
            "top": margenSupCalc+"px",
            "left": margenIzqCalc+"px",
            "transform-origin": "15px "+parseInt( altura/2 )+"px",
            "-ms-transform-origin": "15px "+parseInt( altura/2 )+"px",
            "-webkit-transform-origin": "15px "+parseInt( altura/2 )+"px",
            "-ms-transform": "rotate("+giro+"deg)",/*" translate("+positionString+")", *//* IE 9 */
            "-webkit-transform": "rotate("+giro+"deg)", /*translate("+positionString+")",*/ /* Chrome, Safari, Opera */
            "transform": "rotate("+giro+"deg)", /*translate("+positionString+")"*/
            "border-radius": "15px 15px 15px 15px",
            "-moz-border-radius": "15px 15px 15px 15px",
            "-webkit-border-radius": "15px 15px 15px 15px",
            "z-index": "-300",
            "border": "2px solid darkgreen",
            "background-color": "green",
        });   
}

function letraObj( obj ){
    var id = obj.get(0).id;
    var x = id.split("_")[1];
    var y = id.split("_")[2];
    return {
        id: id,
        x: x,
        y: y
    }
}

// function prevPage() {
//     accionSeleccion = false;
//     selecciones = [];
//     actividadCorregida = false;
//     $(".stars").remove();
//     $(".tooltip").remove("");
//     $("#limit").remove("");
//     ims.interfaz.init();
//     var element = $("#visor").jScrollPane().data().jsp;
//     element.destroy();
//     $("#overall").hide();
//     inicializar();
//     scroll();
//     retornar();
// }

// function nextPage() {
//     $("#overall").show();
//     $(".tooltip").remove("");
//     $("#limit").remove("");
//     ims.interfaz.init();
//     var element = $("#visor").jScrollPane().data().jsp;
//     element.destroy();
//     cargar_actividad();
//     scroll();
//     retornar();
// }

// function retornar(){
//  introduce_retorno();
// }

// function reload() {
//     // location.reload();
//     $(".firstClick").removeClass("firstClick");
//     $(".palabraSeleccionada").remove();
//     // $(".letra").css({
//     //     "background-color": "white"
//     // });
//     $(".jsSeleccion").remove();
//     $("#comprobar").addClass("notdisabled");
//     $("#center").html("");
//     accionSeleccion = false;
//     selecciones = [];
//     actividadCorregida = false;
// }

// function mute() {
//     $('.tooltip').hide();
//     $('#silenciar').attr('title', $(config_xml).find("silenciar").text());
//     $('#silenciar').removeClass('silenciar');
//     $('#silenciar').addClass('silenciar_on');
//     $('#silenciar').tooltip();
//     ims.interfaz.bind("silenciar", "play()");
//     ims.interfaz.disableSound();
// }

// function play() {
//     $('.tooltip').hide();
//     $('#silenciar').attr('title', $(config_xml).find("silenciar").text());
//     $('#silenciar').removeClass('silenciar_on');
//     $('#silenciar').addClass('silenciar');
//     $('#silenciar').tooltip();
//     ims.interfaz.bind("silenciar", "mute()");
//     ims.interfaz.enableSound();
// }

function comprobar() {
    total = 0;
    correct = 0;
    if ( !actividadCorregida && !$("#comprobar").hasClass("disabled") ) {
        $(".firstClick").removeClass("firstClick");
        actividadCorregida = true;
        if ( $(config_xml).find("ES > solucion").find("texto1").text().length !== 0 ) {
            if ( inmediastudio.TRAZA.mostrarSolucion ){ 
                enableButton("clave");
            }
        }
        disableButton("comprobar");
        if ( inmediastudio.TRAZA.mostrarSolucion ) { 
            // enableButton("versolucion");
        }
        else {
            disableButton("reiniciar");
            disableButton("anterior");
        }
        for( var i = 0 ; i < selecciones.length ; i++ ){
            var respuestaOK = false;
            var miId = selecciones[i].letraOrigen.id+"_"+selecciones[i].letraDestino.id;
            var resOrigenX = selecciones[i].letraOrigen.x;
            var resOrigenY = selecciones[i].letraOrigen.y;
            var resDestinoX = selecciones[i].letraDestino.x;
            var resDestinoY = selecciones[i].letraDestino.y;
            $(config_xml).find("palabra").each( function(){
                var palabraOrigenX = $(this).attr("inix");
                var palabraOrigenY = $(this).attr("iniy");
                var palabraDestinoX = $(this).attr("finx");
                var palabraDestinoY = $(this).attr("finy");
                var okDerecho = palabraOrigenX == resOrigenX && palabraOrigenY == resOrigenY && palabraDestinoX == resDestinoX && palabraDestinoY == resDestinoY;
                var okReves = palabraOrigenX == resDestinoX && palabraOrigenY == resDestinoY && palabraDestinoX == resOrigenX && palabraDestinoY == resOrigenY; 
                if ( okDerecho || okReves ){ 
                    respuestaOK = true;
                    correct++;
                }
            });
            if ( inmediastudio.TRAZA.mostrarSolucion ){ 
                if ( respuestaOK ){
                    $( "#seleccion_"+miId ).css({
                        "background-color": "green",
                        "border": "2px solid darkgreen"
                    });
                    showStars( $( "#seleccion_"+miId ) );
                }
                else {
                    $( "#seleccion_"+miId ).css({
                        "background-color": "red",
                        "border": "2px solid darkred"
                    });
                }
            }
        }
        total = $(config_xml).find("palabra").length;
        if ( inmediastudio.TRAZA.mostrarSolucion ){ 
            $(".selected").addClass("noCheck").removeClass("selected");
        }
        if (ims.interfaz.skin == "musica") {
            showResults(correct +" / "+ total);
        }
        else {
            showResults("<p>" + correct + " / " + total + "</p>");
        }
        if( correct > 9 ){
            $("#center p").css('font-size','20px');
        }
        if ( inmediastudio.TRAZA.guardarRespuesta ){ 
            inmediastudio.RESULTADOS.guardarPuntuacion( correct/total );
        }
        if (correct === total) {
            var sound = "rGood";
        }
        else {
            var sound = "rBad";
            if ( inmediastudio.TRAZA.mostrarSolucion ) { 
                enableButton("versolucion");
            }
        }
        if ( inmediastudio.TRAZA.mostrarSolucion ){ 
            ims.interfaz.playSound( sound );
        }
        enableButton("reiniciar");
    }
}

function versolucion() {
    if( !$("#versolucion").hasClass('disabled') ){
        $(".palabraSeleccionada").remove();
        $(".stars").remove();
        $("#center").html("");
        $(".row").height( 0 );
        $(config_xml).find("palabra").each( function (){
            $(".noCheck").removeClass("noCheck");
            pintarSoluciones( $(this) );
            showStars( $("#letra_"+$(this).attr("inix")+"_"+$(this).attr("iniy") ) );
        });
        if ( !$("#versolucion").hasClass("disabled") ) {
            var sound = "good";
            ims.interfaz.playSound(sound);
        }
        disableButton('versolucion');
        enableButton('reiniciar');
    } 
}
