var HEADER_HEIGHT = 81;
var showHeader = true;

function getGET() {
    var get;
    if( typeof get === "undefined" ){
        get = {};
        var loc = document.location.href;
        if(loc.indexOf('?')>0)
        {
            var getString = loc.split('?')[1];
            var GET = getString.split('&');
            for(var i = 0, l = GET.length; i < l; i++){
                var tmp = GET[i].split('=');
                get[ tmp[0] ] = unescape( decodeURI(tmp[1]) );
            }
        }
        return get;
    }
    else{
        return get;
    }
}

if ( getGET().showHeader === "false" ) {
    showHeader = false;
}
// showHeader = false;


var isAndroid = navigator.userAgent.match(/Android/i) != null;
var isiOS = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)/i) != null;
var isIE = $.browser.msie;
var isMoz = $.browser.mozilla;
var isOp = $.browser.opera;
var version = parseInt($.browser.version);
var tooltext = "";

// AleDdebug
// isAndroid = true;
var isMobile = (isiOS || isAndroid);
// #AleDdebug

var click = (('ontouchend' in window)) ? 'touchend' : 'click';

$(document).ready(function() {
    if (typeof(config_json) == "undefined") {
        if (typeof(config_xml) == "undefined") {
            if (typeof(cat_xml) == "undefined") {
                config_xml = data_xml
            } 
            else {
                config_xml = cat_xml
            }
        }
        if ($(config_xml).find('primaria').text() == '1') {
            $('body').addClass('infantil');
        }
        else {
            $('body').addClass('secundaria');
        }
        if ($(config_xml).find('imprimir_btn').text() == '0') {
            $("#imprimir").removeClass("notdisabled");
            $("#imprimir").unbind('click');
        }
    } 
    else {
        if (config_json.primaria == '1') {
            $('body').addClass('infantil');
        }
        else {
            $('body').addClass('secundaria');
        }
        if (config_json.imprimir_btn == '0') {
            $("#imprimir").removeClass("notdisabled");
            $("#imprimir").unbind('click');
        }
    }
});

$(".tool").live("mouseover", function(e) {
    tooltext = $(this).data().title;
    if ( ! $(this).hasClass("notdisabled") ) {
        $(".tooltip").hide()
    }
});

if (typeof ims == "undefined") {
    var ims = {
        test: function() {
            console.log("ims existe")
        }
    }
}

$(window).load(function() {
    introduce_retorno()
});

$(window).resize(function() {
    if ( typeof editable == "undefined" ) {
        ims.interfaz.resize();
    }
});

ims.interfaz = {
    sound: true,
    widthLimit: 1024,
    heightLimit: 636,
    iecompatible: true,
    ie8compatible: true,
    Mp3Mp4compatible: true,
    zoomRatio: 1,
    audios: [],

    primeraInicializacion: true,

    init: function() {
        if ((!isMobile && isIE) || (!this.Mp3Mp4compatible)) {
            if ((!this.Mp3Mp4compatible) || (!this.iecompatible) || (version <= 7) || ((version == 8) && !this.ie8compatible)) {
                $("body").append('<div class="changeBrowser">Este recurso no es compatible con esta versión de navegador. Le recomendamos usar la ultima versión de Chrome o Safari.<br />Copie el siguiente enlace en su navegador para ver el recurso:<br /><br />' + $(location).attr('href') + '</div>');
                $(".ui-page").remove();
                $("*").css({
                    '-webkit-user-select': 'auto',
                    '-khtml-user-select': 'auto',
                    '-moz-user-select': 'auto',
                    '-o-user-select': 'auto',
                    'user-select': 'auto'
                });
                $("body").css({
                    'background-color': '#78c3ed'
                });
                $(".changeBrowser").css({
                    'background-color': '#ffffff',
                    'width': '800px',
                    'margin': '50px auto 0px auto',
                    'padding': '20px',
                    'overflow': 'auto'
                });
                throw "stop execution";
            }
        }
       $("body").append('<div id="limit"><div id="carcasa"><div id="fondo"></div><div id="overall"></div><div id="content"><div id="visor"><div id="pregunta"></div><div style="clear:both;"></div></div><div id="bottombar"><div id="left"></div><div id="center"></div><div id="right"></div></div></div></div></div>');

        //noHeader
        if ( this.primeraInicializacion ){
            if ( isMobile && showHeader ) {
                
                $("body").addClass('tabletconv');

                if ( isAndroid ) {
                    
                    $("body").addClass('positionbar');
                    $("body").addClass('isAndroid');

                    this.widthLimit = 1091;
                    this.heightLimit = 600;
                }
            } 
            this.primeraInicializacion = false;
            if( !showHeader ){
                this.heightLimit = this.heightLimit - HEADER_HEIGHT;
            }
        }
        
        if( showHeader ){
            $("#content").prepend('<div id="header"><div class="sprite background logo"></div></div>');
        }
        else {
            $("body").addClass('tabletconv');
            $("body").addClass('noHeader');
        }

        ims.interfaz.resize();
        ims.interfaz.showTooltips();
        
        $("body").css('background-color', '#cccccc');
        $("body").css('overflow', 'hidden');

        $("#limit").css('background-color', '#ffffff');
        $("#limit").css("width", this.widthLimit + "px");
        $("#limit").css("height", this.heightLimit + "px");

        // if( typeof editable == "undefined" ){
        //     $("#limit").css('margin', 'auto');
        //     $("#limit").css("margin-top", Math.round( ( $(window).height() - this.heightLimit) / 2) );
        // }

        // $("#carcasa").css("width", this.widthLimit + "px");
        // $("#carcasa").css("height", this.heightLimit + "px");

        // $("#content").css("width", this.widthLimit + "px");
        // $("#content").css("height", this.heightLimit + "px");
        
        //NOTA.- Algunos estilos se modifican por atributos HTML, otros por CSS, y al final todos son estáticos, por lo que se podrían incluir en la inicialización del CSS
        // y dejarse de hacer esto...
        $("#fondo").width( $("#content").width() );
        $("#fondo").height( $("#content").height() );
        
        $("#overall").width( $("#content").width() );
        $("#overall").height( $("#content").height() );
    },

    resize: function() {

        var a = $(document).width();
        var b = $(document).height();
        var c = $(window).width();
        var d = $(window).height();

        if ( typeof editable == "undefined" ) {
            
            if (isMobile) {
                if ( (a / this.widthLimit) <= (d / this.heightLimit) ) {
                    ims.interfaz.zoomRatio = (c - 2) / this.widthLimit
                } 
                else {
                    ims.interfaz.zoomRatio = (d - 2) / this.heightLimit
                }
            }
            else {
                if ((a < this.widthLimit) || (b < this.heightLimit)) {
                    if ((a / this.widthLimit) <= ((b - 4) / this.heightLimit)) {
                        ims.interfaz.zoomRatio = c / this.widthLimit
                    } else {
                        ims.interfaz.zoomRatio = d / this.heightLimit
                    }
                }
            }
            if (ims.interfaz.zoomRatio != 1) {
                $("#limit").css({
                    "zoom": ims.interfaz.zoomRatio,
                    "-moz-transform": "scale(" + ims.interfaz.zoomRatio + ")"
                })
            }
            // $("#limit").css("margin-top", Math.round(((d - 2) - (this.heightLimit * ims.interfaz.zoomRatio)) / 2));
            // $("#limit").css("margin-left", "auto")
        }
    },
    getSkin: function() {
        return this.skin
    },
    getSubSkin: function() {
        return this.subSkin
    },
    addButton: function(a, b, c, d) {
        if (d == '' || !(d)) {
            // console.log("La variable tooltip no puede estar vacia");
            //d = "·";
        } else{
            if (b == '' || !(b)) {
                console.log("Especifique la capa")
            } else {
                if ((b != "left") && (b != "right") && (b != "left2") && (b != "right2")) {
                    console.log("Capa no válida. Use \"left\" o \"right\"")
                } else {
                    var e = "<div id=\"" + a + "\" class=\"button_" + b + " " + "sprite" + " " + "background" + " " + c + " " + "tool\" title=\"" + d + "\"></div>";
                    $("#" + b).append(e);
                    if (!isMobile) {
                        $("#" + a).tooltip()
                    }
                }
            }
        }
    },
    enable: function(a) {
        $("#" + a).addClass("notdisabled")
    },
    disable: function(a) {
        $("#" + a).removeClass("notdisabled")
    },
    disableIE: function() {
        this.iecompatible = false
    },
    disableIE8: function() {
        this.ie8compatible = false
    },
    disableMp3Mp4: function() {
        this.Mp3Mp4compatible = false
    },
    bind: function(a, b) {
        $("#" + a).unbind('click');
        if (!(b) || b == '') {
            console.log("El parámetro funcion está vacio o no existe")
        } else {
            $("#" + a).bind("click", function() {
                eval(b)
            })
        }
    },
    setTitle: function(a) {
        if (!(a) || a == '') {
            console.log("El parámetro title está vacio o no existe")
        } else {
            $("#header").prepend(a)
        }
    },
    showTooltips: function() {
        $("#left").bind('mousemove', function(e) {
            $(".tooltip").mouseenter(function() {
                $(this).hide()
            });
            $('.tooltip').css({
                left: e.pageX,
                top: e.pageY - 45
            })
        });
        $("#right").bind('mousemove', function(e) {
            var b = false;
            $(".tooltip").each(function(a) {
                if ($(this).text() == tooltext) {
                    if (!b) {
                        $('.tooltip').css({
                            left: e.pageX - 400,
                            top: e.pageY - 80
                        });
                        $('.tooltip').css({
                            left: e.pageX - $(this).width(),
                            top: e.pageY - 45
                        });
                        b = true
                    }
                }
            });
            $(".tooltip").mouseenter(function() {
                $(this).css({
                    left: parseInt($(this).css("left")) - 400,
                    top: parseInt($(this).css("top")) - 80
                })
            })
        })
    },
    addPopup: function(a, b) {
        var c = '<div id="pop_' + a + '" class="pop_up" style="left:' + ($('#content').width() - ($('#content').width() / 2)) / 2 + 'px;top:' + ($('#content').height() - ($('#content').height() / 2)) / 2 + 'px;"><div id=close_' + a + ' class="pop_up_close sprite background"></div><div id="content_' + a + '" class="pop_up_content"></div></div>';
        $("#content").append(c);
        ims.interfaz.enable(b);
        ims.interfaz.bind(b, "$('#pop_" + a + "').fadeIn('slow');");
        ims.interfaz.bind('close_' + a + '', '$(\'#pop_' + a + '\').fadeOut(\'slow\');');
        $("#pop_" + a).css({
            "padding": "15px 0px 35px 20px"
        })
    },
    showResults: function(a) {
        a = a.replace("<p>", "").replace("</p>", "").split("/");
        var b = '';
        if (a[1].length > 2) b = ' style="font-size: 20px;"';
        $("#center").append("<p" + b + ">" + a[0] + "<span class='marc'> / " + a[1] + "</span></p>");
        $("#center").show("")
    },
    setSound: function(a, b) {
        if (isIE && version <= 8) {
            this.audios[a] = b;
            return
        } else {
            $("body").append('<audio class="imsAudio" id="' + a + '" name="' + a + '" src="' + b + '" preload="auto"></audio>')
        }
    },
    playSound: function(a) {
        $(".imsAudio").each(function() {
            if ($(this)[0].currentTime != 0) {
                $(this)[0].pause();
                $(this)[0].currentTime = 0;
            }
        });
        if ( this.sound ) {
            if ( isIE && version <= 8 ) {
                $( "body" ).append( '<bgsound src="' + this.audios[a] + '"  AUTOSTART="TRUE"></bgsound>' );
                return
            };
            $("#" + a)[0].play();
        }
    },
    pauseSound: function(a) {
        $("#" + a)[0].pause()
    },
    enableSound: function() {
        this.sound = true
    },
    disableSound: function() {
        this.sound = false
    },
    setWidthLimit: function(a) {
        this.widthLimit = a
    },
    setHeightLimit: function(a) {
        this.heightLimit = a
    },
    centradoVertical: function(a, b) {
        var c = 0;
        var p = 0;
        $('.' + b).each(function(i) {
            c = c + $(this).height() + parseInt($(this).css('padding-top')) + parseInt($(this).css('padding-bottom')) + parseInt($(this).css('border-width')) * 2;
            p = i + 1
        });
        var d = ($('#' + a).height() - c) / (p + 1);
        $('.' + b).css('margin-top', d)
    },
    showStars: function(d) {
        var e = new Array();
        for (var n = 0; n <= 5; n++) {
            var f = "st_" + d.attr("id") + "_" + n;
            var g = parseInt(d.offset().left - $("#visor").offset().left),
                myY = parseInt(d.offset().top - $("#visor").offset().top);
            var h = $("<div/>").addClass("stars").attr("id", f).css({
                top: myY,
                left: g
            });
            e.push(f);
            $("#visor").append(h)
        }
        var j = 0,
            mLeft = 0,
            index = 0,
            second = false;
        $.each(e, function(i, a) {
            var b = $("#" + a);
            index++;
            if (index <= 3 && second == false) {
                var c = index + "0";
                j = parseInt(b.css("top")) - parseInt(c);
                b.css("left", parseInt(b.css("left")) + d.width());
                mLeft = parseInt(b.css("left")) + parseInt(c)
            } else {
                if (index > 3) {
                    index = 0;
                    second = true
                }
                var c = index + "0";
                j = parseInt(b.css("top")) - parseInt(c);
                mLeft = parseInt(b.css("left")) - parseInt(c)
            }
            b.animate({
                top: j,
                left: mLeft,
                opacity: "0.25"
            }, 1000, function() {
                $(".stars").remove()
            })
        })
    }
};
