current_thumb = null;

function createlightbox()
{
		var lb = new Element('div', {id : 'lightbox'});
		var lb_img = new Element('img', {id : 'lightbox_img'});
		lb.insert({bottom : lb_img});
		lb.hide();
		$('forLightbox').insert({bottom : lb});
		return lb;
}

function followmouse(ev)
{
		if(Position.within(current_thumb, Event.pointerX(ev), Event.pointerY(ev)))
		{	 
				// Move lightbox
				var lightbox = $('lightbox');
				var margin = 10;
				var mouseOffset = 20;
				var viewX = document.viewport.getWidth() - margin;
				var viewY = document.viewport.getHeight() - margin;
				var viewTop = document.viewport.getScrollOffsets()[1];
				var viewLeft = document.viewport.getScrollOffsets()[0];
				var mouseX = Event.pointerX(ev);
				var mouseY = Event.pointerY(ev);
				var dimX = 600;
				var dimY = 310;

				// keep lightbox to right of mouse if room allows
				if((mouseX - viewLeft + dimX + mouseOffset) < viewX){var left = mouseX + mouseOffset;}else{var left = viewX - dimX ;}
				// keep lightbox below mouse if room allows
				if((mouseY - viewTop) < (viewY / 2)){var top = mouseY + mouseOffset;}else{var top = mouseY - dimY - mouseOffset;}
				Element.setStyle(lightbox, { position : 'absolute', top: top + "px", left : left + "px", zIndex : 100 });
		}		
		else
		{
				// Close lightbox
				$('lightbox').remove();
				Event.stopObserving($('forLightbox') , 'mousemove', followmouse);
				current_thumb = null;
		}		 

}

function showlightbox(thumb, image_url)
{
		if(!current_thumb)
		{		
				var lb = createlightbox();
				var lb_img = $('lightbox_img');
				lb_img.src = image_url;
				lb.show();
				Event.observe($('forLightbox'), 'mousemove', followmouse);
				current_thumb = thumb;
   }
}


