// File: groupcreate-landing.js
// Requires: prototype.js

var GroupLandingController = Class.create();

GroupLandingController.prototype = {
    listSpotlightImages : null,
    timeInterval : 3000,
    handleInterval : null,
    indexVisibleImage : -1,

    initialize : function()
    {
        Event.observe(window, "load", this.onPageLoad.bindAsEventListener(this), false);
    },
    onPageLoad : function(evnt)
    {
        var elt, list;
        // Rotating spotlighted image(s)
        if((elt = $("linkSpotlightThumb")) != null){
            list = elt.select("IMG.spotlightThumb");
            if(list && list.length){
                this.listSpotlightImages = list;
                this.indexVisibleImage = this.findVisibleImagePos();
                this.handleInterval = setInterval(this.rotateImage.bind(this), this.timeInterval);
            }
        }
        if((elt = $("containerLandingBottom")) != null){
            list = elt.select(".imageEnvelope DIV.resultDesc");
            var handleHideDesc = this.showHideDesc_Closure(false).bindAsEventListener(this);
            var handleShowDesc = this.showHideDesc_Closure(true).bindAsEventListener(this);

            for(var i = 0; i < list.length; i++){
                var id = list[i].id;
                id = id.split("_");
                if(id.length == 3){
                    id[1] = "Env";
                    if((elt = $(id.join("_"))) != null){
                        Event.observe(elt, "mouseover", handleShowDesc, false);
                        Event.observe(elt, "mouseout", handleHideDesc, false);
                    }
                    id[1] = "Name";
                    if((elt = $(id.join("_"))) != null){
                        Event.observe(elt, "mouseover", handleShowDesc, false);
                        Event.observe(elt, "mouseout", handleHideDesc, false);
                    }
                }
            }
        }
    },

    showHideDesc_Closure : function(bShow)
    {
        return function(evnt)
        {
            var elt = Event.element(evnt);
            var id = elt.id;
            if(!id){
                elt = Event.findElement(evnt, "DIV");
                id = elt.id;
            }

            id = id.split("_");
            if(id.length == 3){
                id[1] = "Desc";
                if((elt = $(id.join("_"))) != null){
                    if(bShow)
                        Element.show(elt);
                    else
                        Element.hide(elt);
                }
            }
        };
    },
    findVisibleImagePos : function()
    {
        var pos = -1;

        if(this.listSpotlightImages){
            for(var i = 0; i < this.listSpotlightImages.length; i++){
                if(Element.visible(this.listSpotlightImages[i])){
                    pos = i;
                    break;
                }
            }
        }
        return pos;
    },
    /*
    * Spotlighted image rotate function
    */
    rotateImage : function()
    {
        if(this.indexVisibleImage > -1){
            Element.hide(this.listSpotlightImages[this.indexVisibleImage]);
/*
            if(++this.indexVisibleImage >= this.listSpotlightImages.length){
                this.indexVisibleImage = 0;
            }
*/
            this.indexVisibleImage = (this.indexVisibleImage + 1) % this.listSpotlightImages.length;

            Element.show(this.listSpotlightImages[this.indexVisibleImage]);
        }
    }
}

// ************************* Implementation *************************
new GroupLandingController();
