﻿var altura_minima_centro = 0;
var animandome = 0;
var ancho_div_movil;
var alto_div_movil_expand;
var previo_cinta = 0;
var indice_cinta = 0;
var previo_selector = 0;
var indice_selector = 0;
var indice_seleccionado = 0;
var velocidad_anima = 500; // Milisegundos
var velocidad_anima_cinta = 200;
var auto_moviendose = true;
var sentido_auto_move = 1; // 1 o -1

function anima_altura_pie(altura) {
    animandome += 1;
    if (altura < altura_minima_centro) altura = altura_minima_centro;
    $('#marco_centro').animate({ height: altura }, velocidad_anima, function() { animandome -= 1; });
}

function clickar(param, tipo) {
    try {
        clearTimeout(contador);
    }
    catch (Error){
    }
    if (!animandome) {
        if (tipo != 'expositor') {
            $('#div_selector').css('visibility', 'hidden');
        }
        else {
            $('#div_selector').css('visibility', 'visible');
        }

        if (tipo == 'lista_expositores') {
            /**/auto_moviendose = false;
            previo_cinta = 0;
            indice_cinta = 0;
            $('#div_pie_movil').css("left", "0px");
            $('#div_pie_movil').css("width", "935px");
            anima_altura_pie(alto_div_movil_expand - 101);
            animandome += 1;
            $('#div_pie').animate({ height: alto_div_movil_expand }, velocidad_anima, function() { animandome -= 1; });
        }
        else {
            animandome += 1;
            $('#div_pie_movil').css("width", ancho_div_movil);
            $('#div_pie').animate({ height: 95 }, velocidad_anima, function() {
                animandome -= 1;
            });

            if (tipo == 'expositor') {
                /**/auto_moviendose = false;
                anim_crossFade($("#div_sup"), "expositores/PanelExpositor.aspx?nombre=" + param + " #imagen_sup", velocidad_anima);
                anim_crossFade($("#div_centro"), "expositores/PanelExpositor.aspx?nombre=" + param + " #cuerpo", velocidad_anima);
            }
            else {
                /**/auto_moviendose = true;

                switch (param) {
                    case 'gamefest':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        // UPDATED BY Vicente 26/09/2011
                        //anim_fadeInOut($("#div_centro"), "/inicio/inicio.html", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/inicio/inicio.aspx", velocidad_anima);
                        // END UPDATED BY Vicente 26/09/2011
                        break;
                    case 'comollegar':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/comollegar/comollegar.html", velocidad_anima);
                        break;
                    case 'venta':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/entradas/entradas.aspx", velocidad_anima);
                        break;
                    case 'prensa_acreditacion':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/Acreditacion.aspx", velocidad_anima);
                        break;
                    case 'expo_privado':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/expositores/ZonaExpositores.aspx", velocidad_anima);
                        break;
                    case 'prensa_sala':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/NotasPrensa2.aspx", velocidad_anima);
                        break;
                    case 'prensa_descarga':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/Descargas.aspx", velocidad_anima);
                        break;
                    case 'agenda':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/agenda/agenda.aspx", velocidad_anima);
                        break;
                    case 'legal':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/legal/legal.html", velocidad_anima);
                        break;
                    case 'prensa_ballmer':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/AcreditacionConferencia.aspx", velocidad_anima);
                        break;
                    case 'expo_extra':
                        window.location = "extranet/default.aspx";
                        break;
                    case 'prensa_materialgrafico':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/Material.aspx", velocidad_anima);
                        break;
                    case 'prensa_fotos':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/Fotos.aspx", velocidad_anima);
                        break;
                    case 'prensa_videos':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/prensa/Videos.aspx", velocidad_anima);
                        break;
                    case 'halcon':
                        anim_crossFade($("#div_sup"), "cabecera.aspx?imagen=rnd_" + Math.floor(Math.random() * 9) + ".jpg #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "/entradas/Halcon.aspx", velocidad_anima);
                        break;
                    default:
                        anim_crossFade($("#div_sup"), "DatosDinamicos.aspx?ID=" + param + " #imagen_sup", velocidad_anima);
                        anim_fadeInOut($("#div_centro"), "DatosDinamicos.aspx?ID=" + param + " #cuerpo", velocidad_anima);
                        break;
                }
            }
        }
    }
};

function anim_fadeInOut(div_destino, url_origen, tiempo) {
    animandome += 1;
    div_destino.animate({ opacity: 0 }, tiempo / 2, function() {
        div_destino.load(url_origen, function() {
            if (div_destino.attr("id") == "div_centro") anima_altura_pie(div_destino.height());
            div_destino.animate({ opacity: 1 }, tiempo / 2, function() {
                animandome -= 1;
            });
        });
    });
};

function anim_fromRight(div_destino, url_origen, tiempo) {
    animandome += 1;
    var div_cont = div_destino.clone().attr("id", div_destino.attr("id") + "_Cont");
    div_destino.css("left", "0px").css("top", "0px");
    var div_aux = div_destino.clone().attr("id", div_destino.attr("id") + "_aux");
    div_destino.parent().prepend(div_cont.prepend(div_destino));
    div_destino.parent().prepend(div_aux
                        .css("left", div_destino.css("width"))
                        .css("z-index", "1")
                        .load(url_origen, function() {

                            if (div_destino.attr("id") == "div_centro") anima_altura_pie(div_aux.height());
                            div_aux.animate({
                                left: 0
                            }, tiempo, function() {
                                var id_temp = div_destino.attr("id");
                                div_destino.remove();
                                div_aux.attr("id", id_temp)
                                       .css("z-index", "0");
                                div_cont.parent().prepend(div_aux.css("left", div_cont.css("left")).css("top", div_cont.css("top")));
                                div_cont.remove();
                                animandome -= 1;
                            });
                        })
    );

};

function anim_crossFade(div_destino, url_origen, tiempo) {
    animandome += 1;
    var div_aux = div_destino.clone().attr("id", div_destino.attr("id") + "_aux");
    div_destino.parent().prepend(div_aux
                        .css("opacity", "0")
                        .css("z-index", "1")
                        .load(url_origen, function() {
                            if (div_destino.attr("id") == "div_centro") anima_altura_pie(div_aux.height());
                            div_aux.animate({
                                opacity: 1
                            }, tiempo, function() {
                                var id_temp = div_destino.attr("id");
                                div_destino.remove();
                                div_aux.attr("id", id_temp)
                                       .css("z-index", "0");
                                animandome -= 1;
                            });
                        })
    );
                    };

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}

$(function() {
    var lista_expositores = [
                            "microsoft",
                            "sega",
                            "nintendo",
                            "sony",
                            "ea",
                            "ubi",
                            "thq",
                            "activision", 
                            "konami",
                            "take2",
                            "koch",
                            "bandai",
                            "logitech",
                            "nostromo",
                            "madcatz",
                            "abysse",
                            "blade",
                            "retro",
                            "plantronics",
			    "devir",
                            //"axel",
                            "fox",
                            "game",
                            "warner",
                            //"digitalbros",
                            //"ardistel",
                            //"adese",
                            //"indeca",
                            "gamelab",
			    "lg"
                            ];

    var elementos_visibles = 5;
    var escalon = parseInt($('#div_pie_quieto').width() / elementos_visibles) + 1;


    inicia_automove();
    var sec = getParameterByName("sec");
    if (sec == '') sec = 'gamefest';
    clickar(sec, 'seccion');

    $('#div_pie_movil').offset({ top: $('#div_pie_movil').offset().top, left: $('#div_pie_movil').offset().left }); //Hack para que "funcione" el movimiento, si no el primer click fracasa.

    $('#div_selector').css("left", (escalon - 138) / 2).css('visibility', 'hidden'); //el calculo de [[  $('#div_selector').width()  ]] fallaba en chrome / safari.
    $('#btn_pie_izq').css('visibility', 'hidden');
    $('#btn_pie_der').css('visibility', 'visible');

    //Creo un Div(ID, table-cell, width, align, cursor) con una Imagen dentro para cada elemento del array de proveedores.
    ancho_div_movil = escalon * lista_expositores.length;
    alto_div_movil_expand = ((Math.ceil(lista_expositores.length / elementos_visibles)) * 91);
    $('#div_pie_movil').css("width", ancho_div_movil);
    $.each(lista_expositores,
           function(intIndex, objValue) {
               $('#div_pie_movil').append($('<div></div>').attr("id", "div_tn_" + intIndex).attr("class", "div_thumbnail").css("width", escalon).append('<img src="expositores/imagenes/logos/' + objValue + '.png" />'));
               $('#div_tn_' + intIndex).click(function(event) {
                   if (!animandome) {
                       posiciona(intIndex, objValue);
                   }
               });
           });

    function posiciona(i, nombre) {
        clickar(nombre, 'expositor');
        indice_seleccionado = i;
        indice_cinta = elementos_visibles - indice_seleccionado - 3;
        while (indice_cinta < (elementos_visibles - lista_expositores.length)) indice_cinta++;
        while (indice_cinta > 0) indice_cinta--;
        indice_selector = i + indice_cinta;
        mueve_cinta();
        coloca_selector();
    };

    function coloca_selector() {
        $('#div_selector').css('visibility', 'visible').animate({
            left: '+=' + ((indice_selector - previo_selector) * escalon)
        }, velocidad_anima_cinta, function() {
            //Animación Completa.
        });
        previo_selector = indice_selector;
    };

    function mueve_cinta() {
        $('#div_pie_movil').animate({
            left: '+=' + ((indice_cinta - previo_cinta) * escalon)
        }, velocidad_anima_cinta, function() {
            //Animación Completa.
        });
        previo_cinta = indice_cinta;
        visibilidad_flechas();
    };

    function fluye_cinta(salto_px) {
        if (sentido_auto_move == 1) $('#div_pie_movil').css("left", ($('#div_pie_movil').position().left - salto_px));
        else if (sentido_auto_move == -1) $('#div_pie_movil').css("left", ($('#div_pie_movil').position().left + salto_px));
        indice_cinta = $('#div_pie_movil').position().left / escalon;
        previo_cinta = indice_cinta;
        visibilidad_flechas();
    };

    function inicia_automove() {
        var contador_mover = setInterval(function() {
            if (auto_moviendose) {
                if (sentido_auto_move == 1) {
                    if (indice_cinta <= elementos_visibles - lista_expositores.length) sentido_auto_move = -1;
                }
                else if (sentido_auto_move == -1) {
                    if (indice_cinta >= 0) sentido_auto_move = 1;
                }
                fluye_cinta(1);
            }
        }, 50);
    }; /// Y como lo paramos!???

    function visibilidad_flechas() {

        if (indice_cinta == 0 && $('#btn_pie_izq').css("visibility") == 'visible') $('#btn_pie_izq').css('visibility', 'hidden');
        else if (indice_cinta != 0 && $('#btn_pie_izq').css("visibility") == 'hidden') $('#btn_pie_izq').css('visibility', 'visible');

        if (indice_cinta == elementos_visibles - lista_expositores.length && $('#btn_pie_der').css("visibility") == 'visible') $('#btn_pie_der').css('visibility', 'hidden');
        else if (indice_cinta != elementos_visibles - lista_expositores.length && $('#btn_pie_der').css("visibility") == 'hidden') $('#btn_pie_der').css('visibility', 'visible');
    }

    $("#btn_pie_izq").click(function(event) {
        if (!animandome) {
            if (indice_seleccionado > 0) posiciona(indice_seleccionado - 1, lista_expositores[indice_seleccionado - 1]);
        }
    });

    $("#btn_pie_der").click(function(event) {
        if (!animandome) {
            if (indice_seleccionado < lista_expositores.length - 1) posiciona(indice_seleccionado + 1, lista_expositores[indice_seleccionado + 1]);
        }
    });

});


