/********************************************
 * Name: Lightbox.js
 * Author: Rob Griffiths
 * Email: r.griffiths@bigroominternet.co.uk
 *******************************************/

YAHOO.namespace('enlarge');
YAHOO.enlarge = function() {
    $E = YAHOO.util.Event;
    $D = YAHOO.util.Dom;
    $ = $D.get;
    
    var $L = new YAHOO.widget.Panel("lightbox",
                    { 
                        modal: false,
                        fixedcenter: true,
                        underlay: "shadow", 
                        draggable: false, 
                        constraintoviewport:true, 
                        close: false, 
                        zindex: 200,
                        effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5 }
                    } 
                );
    
    return {
        lightbox : $L,
    
        init : function() {
            var elements = $D.getElementsByClassName('enlarge');
            this.lightboxImages = new Array();
            
            for(i=0;i<elements.length;i++) {
                var key = $D.generateId(elements[i],'image-');
                
                this.lightboxImages[key] = new Image;
                this.lightboxImages[key].src = elements[i];
                
                $E.on(elements[i], 'click', this.show);
            }
        },

        show : function(e) {
            $E = YAHOO.util.Event;
            $D = YAHOO.util.Dom;
            $ = $D.get;
        
            
            $E.stopEvent(e); //stop the link's true location
            var currentImage = YAHOO.enlarge.lightboxImages[this.id];

            YAHOO.enlarge.lightbox.setBody('<img src="'+currentImage.src+'" width="'+currentImage.width+'" height="'+currentImage.height+'" /><a id="hide-lightbox" href="#">close</a>');
            YAHOO.enlarge.lightbox.render('container');
            YAHOO.enlarge.lightbox.show();                
                
            $E.on('hide-lightbox', 'click', YAHOO.enlarge.hideLightbox, YAHOO.enlarge, true);
        },
        
        hideLightbox : function(e) {
            $E.stopEvent(e);
            this.lightbox.hide();
        }
    };
}();

YAHOO.util.Event.onDOMReady(YAHOO.enlarge.init, '', YAHOO.enlarge);