/*!
 * miGaleria JavaScript Library v1.0.0
 * juanlcastrom@hotmail.com
 *
 * Copyright (c) 2011 Juan Luis Castro
 * Dual licensed under the MIT and GPL licenses.
 *
 * Ultima Revisión : 2011-04-17
 * Revision: 0002
 */
var GaleriaFotos002 = function(options) {

    // Elementos parametrizables.
    this.contenedor = "body";
    this.ancho = "150px";
    this.alto = "200px";
    this.posx = "0px";
    this.posy = "0px";
    this.borde = "5px solid #88C53F";
    this.tiempoCambio = 1000;
    this.tiempoDevuelta = 1000;
    this.obj = '';
    
    this.anchocuadro = "10px";
    this.altocuadro = "10px";
    this.topcuadro = "400px";
    this.bordecuadro = "2px solid #88C53F";
    
    // Otros elementos.
    this.elementos = 0;
    this.parado = false;

    this.actual =  0;
    this.ltInterval = 0;
    this.lnAncho = 150;

    $.extend(this, options);
    
    $(this.contenedor).css("position","relative");
    $(this.contenedor).css("left",this.posx);
    $(this.contenedor).css("top",this.posy);
    $(this.contenedor).css("border",this.borde);
    $(this.contenedor).css("width",this.ancho);
    $(this.contenedor).css("height",this.alto);
    $(this.contenedor).css("overflow","hidden");

    $(this.contenedor).children('img').css("position","absolute");
    $(this.contenedor).children('img').css("width",this.ancho);
    $(this.contenedor).children('img').css("height",this.alto);


    this.lnAncho = $(this.contenedor).width();

    var n = 0;
    var _ancho = this.lnAncho;

    $(this.contenedor).children('img').each(function()
    {
        $(this).css("left", "0px");
        $(this).css("left",n *(_ancho) +"px");
        n++;
    });

    this.elementos = n;

    for (var i=1; i<=this.elementos; i++ ){
       var lcHTMLDiv = "<div class='EstatusBar' Valor='"+i+"'> </div>";
       $(this.contenedor).append(lcHTMLDiv);
    }

    // Agregando el link de ver.
    $(this.contenedor).append("<a href='#' class='lnkVer'> Ver </a>");
    $(this.contenedor).children(".lnkVer").css("position","absolute");
    $(this.contenedor).children(".lnkVer").css("left","5px");
    $(this.contenedor).children(".lnkVer").css("top",this.topcuadro);
    $(this.contenedor).children(".lnkVer").css("font-family","arial");
    $(this.contenedor).children(".lnkVer").css("font-size","30px");
    $(this.contenedor).children(".lnkVer").css("color","#8BC53F");
    $(this.contenedor).children(".lnkVer").attr("href", $(this.contenedor).children('img').eq(this.actual).attr("enlace") );


    var lnCont = 0;
    var loContenedor = this.contenedor;
    var lnElementos = this.elementos;
    
    $(this.contenedor).children('div').css("position","absolute")
                                      .css("width",this.anchocuadro)
                                      .css("height",this.altocuadro)
                                      .css("top",this.topcuadro)
                                      .css("background-color","#00FF00")
                                      .css("border",this.bordecuadro)
                                      .css("cursor","hand")
    .each(function (){
        if (lnCont==0) $(this).css("background-color","#FFFFFF");
        var lnAncho = $(this).width() + 20;
        var lnComienzo = ($(loContenedor).width() - (lnElementos * lnAncho))/2;
      
        var lnLeft = (lnCont * lnAncho) + lnComienzo ;
        var lcLeft = lnLeft + "px";
        lnCont++;
        
        $(this).css("left",lcLeft);
    });


    $(".EstatusBar").hover(
        function(){$(this).css("border-width","0px");},
        function(){$(this).css("border-width","1px");}
    );
    $(".EstatusBar").click(this,
        function(event){
            var lnActualOld = event.data.actual;
            event.data.actual = parseInt($(this).attr("Valor"))-1;
            var lnActualNew = event.data.actual;
            
            var lnDer = event.data.lnAncho * (lnActualOld-lnActualNew);
            $(event.data.contenedor).children("img").animate({left:'+='+lnDer,opacity:'.5'},0)
                                                    .animate({opacity:'1'},300);

            lnId = event.data.ltInterval;
            clearInterval(lnId);
            var lcFN = event.data.obj+".animar()";
            var lnId = setInterval(lcFN,3000);
            event.data.ltInterval = lnId;

            $(event.data.contenedor).children('div').css("background-color","#00FF00");
            $(event.data.contenedor).children('div').eq(event.data.actual).css("background-color","#FFFFFF");

            // Alimentando el enlace Ver.
            $(event.data.contenedor).children(".lnkVer").attr("href", $(event.data.contenedor).children('img').eq(event.data.actual).attr("enlace") );

        }
    );


    this.animar = function () {
        // alert(this.parado);
        if ( !this.parado ) {
            
             $(this.contenedor).children('div').css("background-color","#00FF00");
            if ( this.actual >= this.elementos-1 )
            {$(this.contenedor).children('div').eq(0).css("background-color","#FFFFFF");}
            else
            {$(this.contenedor).children('div').eq(this.actual+1).css("background-color","#FFFFFF");}

            // Alimentando el enlace Ver.
            $(this.contenedor).children(".lnkVer").attr("href", $(this.contenedor).children('img').eq(this.actual+1).attr("enlace") );


            if ( this.actual >= this.elementos-1 ) {
                this.actual = 0;
                var lnDer = this.lnAncho * (this.elementos - 1);
                    
                $(this.contenedor).children("img").animate({left:'+='+lnDer},this.tiempoCambio);
                // Alimentando el enlace Ver.
                $(this.contenedor).children(".lnkVer").attr("href", $(this.contenedor).children('img').eq(this.actual).attr("enlace") );
                return;
            }

            if (!this.parado) {
                lnId = this.ltInterval;
                clearInterval(lnId);
                var lcFN = this.obj+".animar()";
                
                if (this.actual == 0)
                {$(this.contenedor).children("img").delay(500).animate({left:'-='+this.lnAncho},this.tiempoCambio).delay(500);}
                else 
                {$(this.contenedor).children("img").animate({left:'-='+this.lnAncho},this.tiempoCambio)}

                this.actual +=1;
                
                var lnId = setInterval(lcFN,5000);
                this.ltInterval = lnId;
            }
        }
    }


    this.anima = function(obj) {
        // alert(ltInterval);
        this.obj = obj;
        var lnId = setInterval(this.obj+'.animar()',5000);
        this.ltInterval = lnId;
    }

    this.comenzar = function() {
        this.parado = false;
    }

    this.parar = function() { 
        this.parado = true;
    }
}


