/********************************************
* 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 thumbTotal;
	var current = 0;

	var $L = new YAHOO.widget.Panel("lightbox",
	{
		modal: true,
		fixedcenter: false,
		underlay: "shadow",
		draggable: false,
		context:['container','tl','tl'],
		constraintoviewport:true,
		close: false,
		width:'769px',
		y:200,
		zindex: 200,
		effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5 }
	}
	);

	return {
		lightbox : $L,

		init : function() {
			var elements = $D.getElementsByClassName('enlarge');
			YAHOO.enlarge.thumbTotal = elements.length-1;
			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);
			}

			var autoplay = $('autoplay').title;
			if (autoplay == "yes") {
				var geckoPos = navigator.userAgent.toLowerCase().indexOf('gecko');
                            if(geckoPos > 0) {
				YAHOO.util.Event.on(window, 'load', YAHOO.enlarge.showAuto, YAHOO.enlarge, true);
                            } else {
                                setTimeout(YAHOO.enlarge.showAuto(), 1300);
                           }
			}
		},

		showAuto : function() {

			$E = YAHOO.util.Event;
			$D = YAHOO.util.Dom;
			$ = $D.get;
			//$E.stopEvent(e); //stop the link's true location
			//alert('hello');
			var currentImage = YAHOO.enlarge.lightboxImages['image-0'];

			YAHOO.enlarge.lightbox.setHeader('<a id="hide-lightbox" href="#"><img src="'+baseUrl+'site/img/close.gif" alt="close" width="60" height="17" /></a>');
			YAHOO.enlarge.lightbox.setBody('<img src="'+currentImage.src+'" width="'+currentImage.width+'" height="'+currentImage.height+'" />');
			YAHOO.enlarge.lightbox.setFooter('<a id="previous" title="previous" href="#">previous</a><a id="next" title="next" href="#">next</a><br style="clear:both" />');
			YAHOO.enlarge.lightbox.render(document.body);

			//waitFor(currentImage);

			YAHOO.enlarge.lightbox.show();

			$E.on('hide-lightbox', 'click', YAHOO.enlarge.hideLightbox, YAHOO.enlarge, true);
			$E.on('previous', 'click', YAHOO.enlarge.changeImage, YAHOO.enlarge, true);
			$E.on('next', 'click', YAHOO.enlarge.changeImage, YAHOO.enlarge, true);

			YAHOO.enlarge.current = 0;
		},

		show : function(e) {
			$E = YAHOO.util.Event;
			$D = YAHOO.util.Dom;
			$ = $D.get;
			$E.stopEvent(e); //stop the link's true location
			targ = YAHOO.enlarge.resolveTarget(e);

			var currentImage = YAHOO.enlarge.lightboxImages[this.id];

			YAHOO.enlarge.lightbox.setHeader('<a id="hide-lightbox" href="#"><img src="'+baseUrl+'site/img/close.gif" alt="close" width="60" height="17" /></a>');
			YAHOO.enlarge.lightbox.setBody('<img src="'+currentImage.src+'" width="'+currentImage.width+'" height="'+currentImage.height+'" />');
			YAHOO.enlarge.lightbox.setFooter('<a id="previous" title="previous" href="#">previous</a><a id="next" title="next" href="#">next</a><br style="clear:both" />');
			YAHOO.enlarge.lightbox.render(document.body);
			YAHOO.enlarge.lightbox.show();

			$E.on('hide-lightbox', 'click', YAHOO.enlarge.hideLightbox, YAHOO.enlarge, true);
			$E.on('previous', 'click', YAHOO.enlarge.changeImage, YAHOO.enlarge, true);
			$E.on('next', 'click', YAHOO.enlarge.changeImage, YAHOO.enlarge, true);

			imageRef = this.id.substr(6);
			YAHOO.enlarge.current = parseInt(imageRef);
		},

		changeImage : function(e) {
			$E.stopEvent(e);
			//targ = YAHOO.enlarge.resolveTarget(e);
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
			targ = targ.parentNode;
			//alert(targ.id);
			if (targ.id == "next") {
				if(YAHOO.enlarge.current < YAHOO.enlarge.thumbTotal) {
					YAHOO.enlarge.current = YAHOO.enlarge.current+1;
				}

			} else if (targ.id == "previous") {
				if(YAHOO.enlarge.current > 0) {
					YAHOO.enlarge.current = YAHOO.enlarge.current-1;
				}
			}

			var currentImage = YAHOO.enlarge.lightboxImages['image-'+YAHOO.enlarge.current];

			YAHOO.enlarge.lightbox.setBody('<img src="'+currentImage.src+'" width="'+currentImage.width+'" height="'+currentImage.height+'" />');
		},

		resolveTarget : function(e) {
			//do a bit of IE friendly stuff
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
			targ = targ.parentNode;

			return targ.parentNode;
		},

		hideLightbox : function(e) {
			$E.stopEvent(e);
			this.lightbox.hide();
		}
	};
}();

function waitFor(img){
	if(!img.complete){
		imgWait=setTimeout('waitFor('+img+')', 250);
	}
}

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

YAHOO.util.Event.onDOMReady(function(){
var autoplay = $('autoplay').title;
if (autoplay == "yes") {
YAHOO.util.Event.on(window, 'load', YAHOO.enlarge.showAuto, YAHOO.enlarge, true);
}
})
