/********************************************
 * Name: Lightbox.js
 * Author: Rob Griffiths
 * Email: r.griffiths@bigroominternet.co.uk
 *******************************************/
$E = YAHOO.util.Event;
$D = YAHOO.util.Dom;
$ = $D.get;

YAHOO.namespace('enlarge');
YAHOO.enlarge = function() {
    
    var $L = new YAHOO.widget.Panel("lightbox",
                    { 
                        modal: true,
                        fixedcenter: false,
                        underlay: "shadow", 
                        draggable: false, 
                        constraintoviewport:false, 
                        close: false, 
                        zindex: 200,
                        context: ['content', 'tl','tl'] ,
                        width:'552px',
                        y: 83,
                        effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5 }
                    } 
                );
    
    return {
        lightbox : $L,
    
        init : function() {
            var elements = $D.getElementsByClassName('enlarge');
            
            var imageElements = $D.getElementsByClassName('var-thumb');
            var enlargeLink = $('enlarge');
            
            this.numberOfImages = imageElements.length;
            
            this.lightboxImages = new Array();
            $E.removeListener(enlargeLink, 'click', this.show);
            
            for(i=0;i<imageElements.length;i++) {
            	//var key = $D.generateId(imageElements[i],'image-');
                this.lightboxImages[i] = new Image;
                this.lightboxImages[i].src = imageElements[i].parentNode.href;
                this.lightboxImages[i].title = 'image-'+i;
            }
            
            if(YAHOO.enlarge.lightboxImages.length == 0) {
            	enlargeLink = $('enlarge');
            	this.lightboxImages[0] = new Image;
                this.lightboxImages[0].src = enlargeLink;
                this.lightboxImages[0].title = 'image-0';
            }
//            if(YAHOO.enlarge.lightboxImages.length == 0) {
//            	var currentImage = new Image;
//            	currentImage.src = targ;
//            	currentImage.title = 'image-0';
//            }
            
            $E.on(enlargeLink, '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
            
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
				targ = targ.parentNode;
				
            selectedKey = this.title.substr(this.title.length-1,1);
            hasImagesClass = '';
           
            if(YAHOO.enlarge.lightboxImages.length == 0) {
            	var currentImage = new Image;
            	currentImage.src = targ;
            	currentImage.title = 'image-0';
            	hasImagesClass = ' class="single"';
            } else {
            	var currentImage = YAHOO.enlarge.lightboxImages[selectedKey];
            }
            
            if(YAHOO.enlarge.lightboxImages.length == 1) {
            	hasImagesClass = ' class="single"';
            }
            
            generatedHtml = '<div id="image-nav"' + hasImagesClass + '><a id="previous-image2" href="#">previous</a><a id="next-image2" href="#">next</a> <span>View other styles</span><a id="hide-lightbox" href="#">Close Window</a></div><br style="clear:both" />';
            generatedHtml += '<img id="'+currentImage.title+'" src="'+currentImage.src+'" width="'+currentImage.width+'" height="'+currentImage.height+'" /><br style="clear:both" />';
            YAHOO.enlarge.lightbox.setBody(generatedHtml);          
            YAHOO.enlarge.lightbox.render(document.body);
            YAHOO.enlarge.lightbox.show();                
                
            $E.on('hide-lightbox', 'click', YAHOO.enlarge.hideLightbox, YAHOO.enlarge, true);
            $E.on('next-image2', 'click', YAHOO.enlarge.showNext);
            $E.on('previous-image2', 'click', YAHOO.enlarge.showNext);
        },
        
        showNext : function(e) {
            $E = YAHOO.util.Event;
            $D = YAHOO.util.Dom;
            $ = $D.get;
            
            $E.stopEvent(e);
            
            var imgElement = this.parentNode.parentNode.childNodes[2];
            var newKey = -1;
            var numOfImages = YAHOO.enlarge.numberOfImages;
            
            if(this.id == 'previous-image2') {
            	newKey = parseInt(imgElement.id.substr(imgElement.id.length-1,1)) - 1;
            } else {
            	newKey = parseInt(imgElement.id.substr(imgElement.id.length-1,1)) + 1;
            }
            
            if(newKey < numOfImages && newKey != -1) {
				var currentImage = YAHOO.enlarge.lightboxImages[newKey]; //3
				imgElement.src = currentImage.src;
				imgElement.width = currentImage.width;
				imgElement.height = currentImage.height;
				imgElement.id = 'image-'+newKey;
            }
        },
        
        hideLightbox : function(e) {
            $E.stopEvent(e);
            this.lightbox.hide();
        }
    };
}();

//YAHOO.util.Event.on(window, 'load', YAHOO.enlarge.init, YAHOO.enlarge, true);
$E.onDOMReady(YAHOO.enlarge.init, '', YAHOO.enlarge);
