Index: /extensions/lightbox/admin/admin.php
===================================================================
--- /extensions/lightbox/admin/admin.php	(revision 4620)
+++ /extensions/lightbox/admin/admin.php	(revision 4621)
@@ -59,5 +59,5 @@
 {
   if (is_dir($path . '/' . $node)
-    and is_file($path . '/' . $node . '/theme.css'))
+    and is_file($path . '/' . $node . '/colorbox.css'))
   {
     array_push($themes, $node);
Index: tensions/lightbox/colorbox.css
===================================================================
--- /extensions/lightbox/colorbox.css	(revision 4620)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#colorbox, #modalBackgroundOverlay, #modalWrap{position:absolute; top:0; left:0; z-index:9999;}
-#modalBackgroundOverlay{position:fixed; width:100%; height:100%;}
-#colorbox{overflow:hidden; padding:1px; margin-top:-1px; margin-left:-1px;}/*padding fixes a ghosting issue in IE7, the negative margin compensates */
-	#modalWrap{width:9000px; height:9000px;}
-		#modalContent, #borderTopLeft, #borderTopCenter, #borderTopRight, #borderBottomLeft, #borderBottomCenter, #borderBottomRight, #borderMiddleLeft, #borderMiddleRight {float:left; height:0; width:0; overflow:hidden;}
-		#borderMiddleLeft, #borderBottomLeft{clear:left;}
-		#modalContent{position:relative; overflow:visible;}
-			#contentTitle{margin:0;}
-			#modalClose, #contentPrevious, #contentNext{outline:none; cursor:pointer; border:0; margin:0;}
-			#modalLoadedContent{overflow:auto; width:0; height:0;}
-			#modalLoadedContent iframe{display:block; width:100%; height:100%; border:0;}
-			#modalLoadedContent embed{display:block; border:0;}/* Display:block removes the line-height gap embedded content */
-			#modalLoadingOverlay{position:absolute; width:100%; height:100%; top:0; left:0;}
Index: /extensions/lightbox/jquery.colorbox.js
===================================================================
--- /extensions/lightbox/jquery.colorbox.js	(revision 4620)
+++ /extensions/lightbox/jquery.colorbox.js	(revision 4621)
@@ -1,315 +1,752 @@
-/*
-	ColorBox v1.1.6 - a full featured, light-weight, customizable lightbox based on jQuery 1.3
-	(c) 2009 Jack Moore - www.colorpowered.com - jack@colorpowered.com
-	Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
-*/
-
-/* Line 173 modified for Piwigo */
-
-(function($){
-var settings, loadedWidth, loadedHeight, interfaceHeight, interfaceWidth, index, related, loadingElement, $modal, modalWrap, $loadingOverlay, $overlay, $modalContent, $loaded, $close, $borderTopCenter, $borderMiddleLeft, $borderMiddleRight, $borderBottomCenter;
-function setModalOverlay(){
-	$overlay.css({"position":"absolute", width:$(window).width(), height:$(window).height(), top:$(window).scrollTop(), left:$(window).scrollLeft()});
-}
-function keypressEvents(e){
-	if(e.keyCode == 37){
-		e.preventDefault();
-		$(document).unbind('keydown', keypressEvents);
-		$("a#contentPrevious").click();
-	} else if(e.keyCode == 39){
-		e.preventDefault();
-		$(document).unbind('keydown', keypressEvents);
-		$("a#contentNext").click();
+// ColorBox v1.3.5 - a full featured, light-weight, customizable lightbox based on jQuery 1.3
+// c) 2009 Jack Moore - www.colorpowered.com - jack@colorpowered.com
+// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+
+(function ($) {
+	// Shortcuts (to increase compression)
+	var colorbox = 'colorbox',
+	hover = 'hover',
+	TRUE = true,
+	FALSE = false,
+	cboxPublic,
+	isIE = !$.support.opacity,
+	isIE6 = isIE && !window.XMLHttpRequest,
+
+	// Event Strings (to increase compression)
+	cbox_open = 'cbox_open',
+	cbox_load = 'cbox_load',
+	cbox_complete = 'cbox_complete',
+	cbox_cleanup = 'cbox_cleanup',
+	cbox_closed = 'cbox_closed',
+	cbox_resize = 'resize.cbox_resize',
+
+	// Cached jQuery Object Variables
+	$overlay,
+	$cbox,
+	$wrap,
+	$content,
+	$topBorder,
+	$leftBorder,
+	$rightBorder,
+	$bottomBorder,
+	$related,
+	$window,
+	$loaded,
+	$loadingBay,
+	$loadingOverlay,
+	$loadingGraphic,
+	$title,
+	$current,
+	$slideshow,
+	$next,
+	$prev,
+	$close,
+
+	// Variables for cached values or use across multiple functions
+	interfaceHeight,
+	interfaceWidth,
+	loadedHeight,
+	loadedWidth,
+	element,
+	bookmark,
+	index,
+	settings,
+	open,
+	active,
+	
+	// ColorBox Default Settings.	
+	// See http://colorpowered.com/colorbox for details.
+	defaults = {
+		transition: "elastic",
+		speed: 350,
+		width: FALSE,
+		height: FALSE,
+		innerWidth: FALSE,
+		innerHeight: FALSE,
+		initialWidth: "400",
+		initialHeight: "400",
+		maxWidth: FALSE,
+		maxHeight: FALSE,
+		scalePhotos: TRUE,
+		scrolling: TRUE,
+		inline: FALSE,
+		html: FALSE,
+		iframe: FALSE,
+		photo: FALSE,
+		href: FALSE,
+		title: FALSE,
+		rel: FALSE,
+		opacity: 0.9,
+		preloading: TRUE,
+		current: "image {current} of {total}",
+		previous: "previous",
+		next: "next",
+		close: "close",
+		open: FALSE,
+		overlayClose: TRUE,
+		
+		slideshow: FALSE,
+		slideshowAuto: TRUE,
+		slideshowSpeed: 2500,
+		slideshowStart: "start slideshow",
+		slideshowStop: "stop slideshow",
+		
+		onOpen: FALSE,
+		onLoad: FALSE,
+		onComplete: FALSE,
+		onCleanup: FALSE,
+		onClosed: FALSE
+	};
+	
+	// ****************
+	// HELPER FUNCTIONS
+	// ****************
+		
+	// Convert % values to pixels
+	function setSize(size, dimension) {
+		dimension = dimension === 'x' ? $window.width() : $window.height();//document.documentElement.clientWidth : document.documentElement.clientHeight;
+		return (typeof size === 'string') ? Math.round((size.match(/%/) ? (dimension / 100) * parseInt(size, 10) : parseInt(size, 10))) : size;
 	}
-}
-function clearLoading(){
-	if($("#colorboxInlineTemp").length > 0){
-		$loaded.children().insertAfter("#colorboxInlineTemp");
+
+	// Checks an href to see if it is a photo.
+	// There is a force photo option (photo: true) for hrefs that cannot be matched by this regex.
+	function isImage(url) {
+		url = $.isFunction(url) ? url.call(element) : url;
+		return settings.photo || url.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i);
 	}
-	if(loadingElement){$(loadingElement).remove();}
-}
-
-// Convert % values to pixels
-function setSize(size, dimension){
-	return (typeof size == 'string') ? (size.match(/%/) ? (dimension/100)*parseInt(size, 10) : parseInt(size, 10)) : size;
-}
-
-/*
-  Initialize the modal: store common calculations, preload the interface graphics, append the html.
-  This preps colorbox for a speedy open when clicked, and lightens the burdon on the browser by only
-  having to run once, instead of each time colorbox is opened.
-*/
-$(function(){//jQuery shortcut for $(document).ready(function(){});
-	$("body").append(
-		$overlay = $('<div id="modalBackgroundOverlay" />').hide(), 
-		$modal = $('<div id="colorbox" />').css("opacity", 0)
-	);
-
-	$('<div id="modalWrap" />').appendTo($modal).append(
-		$('<div><div id="borderTopLeft" /><div id="borderTopCenter" /><div id="borderTopRight" /></div>'),
-		$borderMiddleLeft = $('<div id="borderMiddleLeft" />'),
-		$modalContent = $('<div id="modalContent" />'),
-		$borderMiddleRight = $('<div id="borderMiddleRight" />'),
-		$('<div><div id="borderBottomLeft" /><div id="borderBottomCenter" /><div id="borderBottomRight" /></div>')
-	);
-	$modalContent.append(
-		//loaded is filled with temporary HTML to allow the CSS backgrounds for those elements to load before ColorBox is actually called.
-		$loaded = $('<div id="modalLoadedContent"><a id="contentNext" href="#"></a><a id="contentPrevious" href="#"></a><span id="contentCurrent"></span><span id="contentTitle"></span><div id="preloadPrevious"></div><div id="preloadNext"></div><div id="preloadClose"></div></div>'), 
-		$loadingOverlay = $('<div id="modalLoadingOverlay" />'),
-		$close = $('<a id="modalClose" href="#"></a>')
-	);
-
-	$(document).bind("keydown.colorClose", function(e){
-		if (e.keyCode == 27) {
-			e.preventDefault();
-			$.fn.colorbox.close();
-		}
-	});
-
-	$close.click(function(event){
-		event.preventDefault();
-		$.fn.colorbox.close();
-	});
-
-	$borderTopCenter = $("#borderTopCenter");
-	$borderBottomCenter = $("#borderBottomCenter");
-
-	interfaceHeight = $borderTopCenter.height()+$borderBottomCenter.height()+$modalContent.outerHeight(true) - $modalContent.height();//Subtraction needed for IE6
-	interfaceWidth = $borderMiddleLeft.width()+$borderMiddleRight.width()+$modalContent.outerWidth(true) - $modalContent.width();
-
-	loadedHeight = $loaded.outerHeight(true);
-	loadedWidth = $loaded.outerWidth(true);
-
-	$loaded.empty();
-	$modal.css({"padding-bottom":interfaceHeight,"padding-right":interfaceWidth}).hide();//the padding removes the need to do size conversions during the animation step.
-
-	//Archaic rollover code because IE8 is a piece of shit.  Hopefully they'll fix their css-rollover bug so the following code can be removed.
-	$("#contentPrevious, #contentNext, #modalClose").live('mouseover', function(){$(this).addClass("hover");});
-	$("#contentPrevious, #contentNext, #modalClose").live('mouseout', function(){$(this).removeClass("hover");});
-});
-
-$.fn.colorbox = function(settings, callback) {
-
-	function modalPosition(mWidth, mHeight, speed, loadedCallback){
 	
-		var winHeight = document.documentElement.clientHeight;
-		var posTop = winHeight/2 - mHeight/2;
-		var posLeft = document.documentElement.clientWidth/2 - mWidth/2;
-		//keeps the box from expanding to an inaccessible area offscreen.
-		if(mHeight > winHeight){posTop -=(mHeight - winHeight);}
-		if(posTop < 0){posTop = 0;} 
-		if(posLeft < 0){posLeft = 0;}
+	// Assigns functions results to their respective settings.  This allows functions to be used to set ColorBox options.
+	function process() {
+		for (var i in settings) {
+			if ($.isFunction(settings[i]) && i.substring(0, 2) !== 'on') { // checks to make sure the function isn't one of the callbacks, they will be handled at the appropriate time.
+			    settings[i] = settings[i].call(element);
+			}
+		}
+	}
+
+	function launch(elem) {
+		
+		element = elem;
+		
+		settings = $(element).data(colorbox);
+		
+		process(); // Convert functions to their returned values.
+		
+		var rel = settings.rel || element.rel;
+		
+		if (rel && rel !== 'nofollow') {
+			$related = $('.cboxElement').filter(function () {
+				var relRelated = $(this).data(colorbox).rel || this.rel;
+				return (relRelated === rel);
+			});
+			index = $related.index(element);
+			
+			// Check direct calls to ColorBox.
+			if (index < 0) {
+				$related = $related.add(element);
+				index = $related.length - 1;
+			}
+		} else {
+			$related = $(element);
+			index = 0;
+		}
+		
+		if (!open) {
+			open = TRUE;
+			
+			active = TRUE; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
+			
+			bookmark = element;
+			
+			bookmark.blur(); // Remove the focus from the calling element.
+			
+			// Set Navigation Key Bindings
+			$().bind("keydown.cbox_close", function (e) {
+				if (e.keyCode === 27) {
+					e.preventDefault();
+					cboxPublic.close();
+				}
+			}).bind("keydown.cbox_arrows", function (e) {
+				if ($related.length > 1) {
+					if (e.keyCode === 37) {
+						e.preventDefault();
+						$prev.click();
+					} else if (e.keyCode === 39) {
+						e.preventDefault();
+						$next.click();
+					}
+				}
+			});
+			
+			if (settings.overlayClose) {
+				$overlay.css({"cursor": "pointer"}).one('click', cboxPublic.close);
+			}
+			
+			$.event.trigger(cbox_open);
+			if (settings.onOpen) {
+				settings.onOpen.call(element);
+			}
+			
+			$overlay.css({"opacity": settings.opacity}).show();
+			
+			// Opens inital empty ColorBox prior to content being loaded.
+			settings.w = setSize(settings.initialWidth, 'x');
+			settings.h = setSize(settings.initialHeight, 'y');
+			cboxPublic.position(0);
+			
+			if (isIE6) {
+				$window.bind('resize.cboxie6 scroll.cboxie6', function () {
+					$overlay.css({width: $window.width(), height: $window.height(), top: $window.scrollTop(), left: $window.scrollLeft()});
+				}).trigger("scroll.cboxie6");
+			}
+		}
+		
+		$current.add($prev).add($next).add($slideshow).add($title).hide();
+		
+		$close.html(settings.close).show();
+		
+		cboxPublic.slideshow();
+		
+		cboxPublic.load();
+	}
+
+	// ****************
+	// PUBLIC FUNCTIONS
+	// Usage format: $.fn.colorbox.close();
+	// Usage from within an iframe: parent.$.fn.colorbox.close();
+	// ****************
 	
-		posTop+=$(window).scrollTop();
-		posLeft+=$(window).scrollLeft();
-	
-		mWidth = mWidth - interfaceWidth;
-		mHeight = mHeight - interfaceHeight;
-
-		function modalDimensions(that){
-			$modalContent[0].style.width = $borderTopCenter[0].style.width = $borderBottomCenter[0].style.width = that.style.width;
-			$modalContent[0].style.height = $borderMiddleLeft[0].style.height = $borderMiddleRight[0].style.height = that.style.height;
-		}
-
-		$modal.animate({height:mHeight, width:mWidth, top:posTop, left:posLeft}, {duration: speed,
+	cboxPublic = $.fn.colorbox = function (options, callback) {
+		var $this = this;
+		
+		if (!$this.length) {
+			if ($this.selector === '') { // empty selector means a direct call, ie: $.fn.colorbox();
+				$this = $($this);
+				options.open = TRUE;
+			} else { // else the selector didn't match anything, and colorbox should go ahead and return.
+				return this;
+			}
+		}
+		
+		$this.each(function () {
+			var data = $.extend({}, $(this).data(colorbox) ? $(this).data(colorbox) : defaults, options);
+			
+			$(this).data(colorbox, data).addClass("cboxElement");
+			
+			if (callback) {
+				$(this).data(colorbox).onComplete = callback;
+			}
+		});
+		
+		if (options && options.open) {
+			launch($this);
+		}
+		
+		return this;
+	};
+
+	// Initialize ColorBox: store common calculations, preload the interface graphics, append the html.
+	// This preps colorbox for a speedy open when clicked, and lightens the burdon on the browser by only
+	// having to run once, instead of each time colorbox is opened.
+	cboxPublic.init = function () {
+		
+		// jQuery object generator to save a bit of space
+		function $div(id) {
+			return $('<div id="cbox' + id + '"/>');
+		}
+		
+		// Create & Append jQuery Objects
+		$window = $(window);
+		$cbox = $('<div id="colorbox"/>');
+		$overlay = $div("Overlay").hide();
+		$wrap = $div("Wrapper");
+		$content = $div("Content").append(
+			$loaded = $div("LoadedContent").css({width: 0, height: 0}),
+			$loadingOverlay = $div("LoadingOverlay"),
+			$loadingGraphic = $div("LoadingGraphic"),
+			$title = $div("Title"),
+			$current = $div("Current"),
+			$slideshow = $div("Slideshow"),
+			$next = $div("Next"),
+			$prev = $div("Previous"),
+			$close = $div("Close")
+		);
+		$wrap.append( // The 3x3 Grid that makes up ColorBox
+			$('<div/>').append(
+				$div("TopLeft"),
+				$topBorder = $div("TopCenter"),
+				$div("TopRight")
+			),
+			$('<div/>').append(
+				$leftBorder = $div("MiddleLeft"),
+				$content,
+				$rightBorder = $div("MiddleRight")
+			),
+			$('<div/>').append(
+				$div("BottomLeft"),
+				$bottomBorder = $div("BottomCenter"),
+				$div("BottomRight")
+			)
+		).children().children().css({'float': 'left'});
+		
+		$loadingBay = $("<div style='position:absolute; top:0; left:0; width:9999px; height:0;'/>");
+		
+		$('body').prepend($overlay, $cbox.append($wrap, $loadingBay));
+				
+		if (isIE) {
+			$cbox.addClass('cboxIE');
+			if (isIE6) {
+				$overlay.css('position', 'absolute');
+			}
+		}
+		
+		// Add rollover event to navigation elements
+		$content.children()
+		.addClass(hover)
+		.mouseover(function () { $(this).addClass(hover); })
+		.mouseout(function () { $(this).removeClass(hover); });
+		
+		// Cache values needed for size calculations
+		interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(TRUE) - $content.height();//Subtraction needed for IE6
+		interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(TRUE) - $content.width();
+		loadedHeight = $loaded.outerHeight(TRUE);
+		loadedWidth = $loaded.outerWidth(TRUE);
+		
+		// Setting padding to remove the need to do size conversions during the animation step.
+		$cbox.css({"padding-bottom": interfaceHeight, "padding-right": interfaceWidth}).hide();
+		
+		// Setup button & key events.
+		$next.click(cboxPublic.next);
+		$prev.click(cboxPublic.prev);
+		$close.click(cboxPublic.close);
+		
+		// Adding the 'hover' class allowed the browser to load the hover-state
+		// background graphics.  The class can now can be removed.
+		$content.children().removeClass(hover);
+		
+		$('.cboxElement').live('click', function (e) {
+			if (e.button !== 0 && typeof e.button !== 'undefined') {// checks to see if it was a non-left mouse-click.
+				return TRUE;
+			} else {
+				launch(this);			
+				return FALSE;
+			}
+		});
+	};
+
+	cboxPublic.position = function (speed, loadedCallback) {
+		var
+		animate_speed,
+		winHeight = $window.height(),
+		// keeps the top and left positions within the browser's viewport.
+		posTop = Math.max(winHeight - settings.h - loadedHeight - interfaceHeight,0)/2 + $window.scrollTop(),
+		posLeft = Math.max(document.documentElement.clientWidth - settings.w - loadedWidth - interfaceWidth,0)/2 + $window.scrollLeft();
+		
+		// setting the speed to 0 to reduce the delay between same-sized content.
+		animate_speed = ($cbox.width() === settings.w+loadedWidth && $cbox.height() === settings.h+loadedHeight) ? 0 : speed;
+		
+		// this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
+		// but it has to be shrank down around the size of div#colorbox when it's done.  If not,
+		// it can invoke an obscure IE bug when using iframes.
+		$wrap[0].style.width = $wrap[0].style.height = "9999px";
+		
+		function modalDimensions (that) {
+			// loading overlay size has to be sure that IE6 uses the correct height.
+			$topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = that.style.width;
+			$loadingGraphic[0].style.height = $loadingOverlay[0].style.height = $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = that.style.height;
+		}
+		
+		$cbox.dequeue().animate({width:settings.w+loadedWidth, height:settings.h+loadedHeight, top:posTop, left:posLeft}, {duration: animate_speed,
 			complete: function(){
+				modalDimensions(this);
+				
+				active = FALSE;
+				
+				// shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
+				$wrap[0].style.width = (settings.w+loadedWidth+interfaceWidth) + "px";
+				$wrap[0].style.height = (settings.h+loadedHeight+interfaceHeight) + "px";
+				
 				if (loadedCallback) {loadedCallback();}
-				modalDimensions(this);
-				if ($.browser.msie && $.browser.version < 7) {setModalOverlay();}
 			},
 			step: function(){
-				modalDimensions(this);		
+				modalDimensions(this);
 			}
 		});
-	}
-	var preloads = [];
-	function preload(){
-		if(settings.preloading !== false && related.length>1 && related[index].href.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(.*))?$/i)){
-			var previous, next;
-			previous = index > 0 ? related[index-1].href : related[related.length-1].href;
-			next = index < related.length-1 ? related[index+1].href : related[0].href;
-			return [$("<img />").attr("src", next), $("<img />").attr("src", previous)];
-		}
-		return false;
-	}
+	};
+
+	cboxPublic.resize = function (object) {
+		if(!open){ return; }
+		
+		var topMargin,
+		prev,
+		prevSrc,
+		next,
+		nextSrc,
+		photo,
+		timeout,
+		speed = settings.transition==="none" ? 0 : settings.speed;
+		
+		$window.unbind(cbox_resize);
+		
+		if(!object){
+			timeout = setTimeout(function(){ // timer allows IE to render the dimensions before attempting to calculate the height
+				var $child = $loaded.wrapInner("<div style='overflow:auto'></div>").children(); // temporary wrapper to get an accurate estimate of just how high the total content should be.
+				settings.h = $child.height();
+				$loaded.css({height:settings.h});
+				$child.replaceWith($child.children()); // ditch the temporary wrapper div used in height calculation
+				cboxPublic.position(speed);
+			}, 1);
+			return;
+		}
+		
+		$loaded.remove();
+		$loaded = $('<div id="cboxLoadedContent"/>').html(object);
+		
+		function getWidth(){
+			settings.w = settings.w || $loaded.width();
+			settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
+			return settings.w;
+		}
+		function getHeight(){
+			settings.h = settings.h || $loaded.height();
+			settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
+			return settings.h;
+		}
+		
+		$loaded.hide()
+		.appendTo($loadingBay)// content has to be appended to the DOM for accurate size calculations.  Appended to an absolutely positioned element, rather than BODY, which avoids an extremely brief display of the vertical scrollbar in Firefox that can occur for a small minority of websites.
+		.css({width:getWidth(), overflow:settings.scrolling ? 'auto' : 'hidden'})
+		.css({height:getHeight()})// sets the height independently from the width in case the new width influences the value of height.
+		.prependTo($content);
+		
+		$('#cboxPhoto').css({cssFloat:'none'});// floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
+		
+		// Hides SELECT elements in IE6 because they would otherwise sit on top of the overlay.
+		if (isIE6) {
+			$('select:not(#colorbox select)').filter(function(){
+				return this.style.visibility !== 'hidden';
+			}).css({'visibility':'hidden'}).one(cbox_cleanup, function(){
+				this.style.visibility = 'inherit';
+			});
+		}
+				
+		function setPosition (s) {
+			cboxPublic.position(s, function(){
+				if (!open) { return; }
+				
+				if (isIE) {
+					//This fadeIn helps the bicubic resampling to kick-in.
+					if( photo ){$loaded.fadeIn(100);}
+					//IE adds a filter when ColorBox fades in and out that can cause problems if the loaded content contains transparent pngs.
+					$cbox[0].style.removeAttribute("filter");
+				}
+				
+				//Waited until the iframe is added to the DOM & it is visible before setting the src.
+				//This increases compatability with pages using DOM dependent JavaScript.
+				if(settings.iframe){
+					$loaded.append("<iframe id='cboxIframe'" + (settings.scrolling ? " " : "scrolling='no'") + " name='iframe_"+new Date().getTime()+"' frameborder=0 src='"+(settings.href || element.href)+"' " + (isIE ? "allowtransparency='true'" : '') + " />");
+				}
+				
+				$loaded.show();
+				
+				$title.html(settings.title || element.title);
+				
+				$title.show();
+				
+				if ($related.length>1) {
+					$current.html(settings.current.replace(/\{current\}/, index+1).replace(/\{total\}/, $related.length)).show();
+					$next.html(settings.next).show();
+					$prev.html(settings.previous).show();
+					
+					if(settings.slideshow){
+						$slideshow.show();
+					}
+				}
+				
+				$loadingOverlay.hide();
+				$loadingGraphic.hide();
+				
+				$.event.trigger(cbox_complete);
+				if (settings.onComplete) {
+					settings.onComplete.call(element);
+				}
+				
+				if (settings.transition === 'fade'){
+					$cbox.fadeTo(speed, 1, function(){
+						if(isIE){$cbox[0].style.removeAttribute("filter");}
+					});
+				}
+				
+				$window.bind(cbox_resize, function(){
+					cboxPublic.position(0);
+				});
+			});
+		}
+		
+		if((settings.transition === 'fade' && $cbox.fadeTo(speed, 0, function(){setPosition(0);})) || setPosition(speed)){}
+		
+		// Preloads images within a rel group
+		if (settings.preloading && $related.length>1) {
+			prev = index > 0 ? $related[index-1] : $related[$related.length-1];
+			next = index < $related.length-1 ? $related[index+1] : $related[0];
+			nextSrc = $(next).data(colorbox).href || next.href;
+			prevSrc = $(prev).data(colorbox).href || prev.href;
+			
+			if(isImage(nextSrc)){
+				$('<img />').attr('src', nextSrc);
+			}
+			
+			if(isImage(prevSrc)){
+				$('<img />').attr('src', prevSrc);
+			}
+		}
+	};
+
+	cboxPublic.load = function () {
+		var href, img, setResize, resize = cboxPublic.resize;
+		
+		active = TRUE;
+		
+		/*
+		 
+		// I decided to comment this out because I can see it causing problems as users
+		// really should just set the dimensions on their IMG elements instead,
+		// but I'm leaving the code in as it may be useful to someone.
+		// To use, uncomment the function and change 'if(textStatus === "success"){ resize(this); }'
+		// to 'if(textStatus === "success"){ preload(this); }'
+		
+		// Preload loops through the HTML to find IMG elements and loads their sources.
+		// This allows the resize method to accurately estimate the dimensions of the new content.
+		function preload(html){
+			var
+			$ajax = $(html),
+			$imgs = $ajax.find('img'),
+			x = $imgs.length;
+			
+			function loadloop(){
+				var img = new Image();
+				x = x-1;
+				if(x >= 0){
+					img.onload = loadloop;
+					img.src = $imgs[x].src;
+				} else {
+					resize($ajax);
+				}
+			}
+			
+			loadloop();
+		}
+		*/
+		
+		element = $related[index];
+		
+		settings = $(element).data(colorbox);
+		
+		//convert functions to static values
+		process();
+		
+		$.event.trigger(cbox_load);
+		if (settings.onLoad) {
+			settings.onLoad.call(element);
+		}
+		
+		// Evaluate the height based on the optional height and width settings.
+		settings.h = settings.height ?
+				setSize(settings.height, 'y') - loadedHeight - interfaceHeight :
+				settings.innerHeight ?
+					setSize(settings.innerHeight, 'y') :
+					FALSE;
+		settings.w = settings.width ?
+				setSize(settings.width, 'x') - loadedWidth - interfaceWidth :
+				settings.innerWidth ?
+					setSize(settings.innerWidth, 'x') :
+					FALSE;
+		
+		// Sets the minimum dimensions for use in image scaling
+		settings.mw = settings.w;
+		settings.mh = settings.h;
+		
+		// Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
+		// If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
+		if(settings.maxWidth){
+			settings.mw = setSize(settings.maxWidth, 'x') - loadedWidth - interfaceWidth;
+			settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
+		}
+		if(settings.maxHeight){
+			settings.mh = setSize(settings.maxHeight, 'y') - loadedHeight - interfaceHeight;
+			settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
+		}
+		
+		href = settings.href || $(element).attr("href");
+		
+		$loadingOverlay.show();
+		$loadingGraphic.show();
+		
+		if (settings.inline) {
+			// Inserts an empty placeholder where inline content is being pulled from.
+			// An event is bound to put inline content back when ColorBox closes or loads new content.
+			$('<div id="cboxInlineTemp" />').hide().insertBefore($(href)[0]).bind(cbox_load+' '+cbox_cleanup, function(){
+				$(this).replaceWith($loaded.children());
+			});
+			resize($(href));
+		} else if (settings.iframe) {
+			// IFrame element won't be added to the DOM until it is ready to be displayed,
+			// to avoid problems with DOM-ready JS that might be trying to run in that iframe.
+			resize(" ");
+		} else if (settings.html) {
+			resize(settings.html);
+		} else if (isImage(href)){
+			img = new Image();
+			img.onload = function(){
+				var percent;
+				
+				img.onload = null;
+				
+				img.id = 'cboxPhoto';
+				
+				$(img).css({margin:'auto', border:'none', display:'block', cssFloat:'left'});
+				
+				if(settings.scalePhotos){
+					setResize = function(){
+						img.height -= img.height * percent;
+						img.width -= img.width * percent;	
+					};
+					if(settings.mw && img.width > settings.mw){
+						percent = (img.width - settings.mw) / img.width;
+						setResize();
+					}
+					if(settings.mh && img.height > settings.mh){
+						percent = (img.height - settings.mh) / img.height;
+						setResize();
+					}
+				}
+				
+				if (settings.h) {
+					img.style.marginTop = Math.max(settings.h - img.height,0)/2 + 'px';
+				}
+				
+				resize(img);
+				
+				if($related.length > 1){
+					$(img).css({cursor:'pointer'}).click(cboxPublic.next);
+				}
+				
+				if(isIE){
+					img.style.msInterpolationMode='bicubic';
+				}
+			};
+			img.src = href;
+		} else {
+			$('<div />').appendTo($loadingBay).load(href, function(data, textStatus){
+				if(textStatus === "success"){
+					resize(this);
+				} else {
+					resize($("<p>Request unsuccessful.</p>"));
+				}
+			});
+		}
+	};
+
+	// Navigates to the next page/image in a set.
+	cboxPublic.next = function () {
+		if(!active){
+			index = index < $related.length-1 ? index+1 : 0;
+			cboxPublic.load();
+		}
+	};
 	
-	function contentNav(){
-		$loadingOverlay.show();
-		if($(this).attr("id") == "contentPrevious"){
-			index = index > 0 ? index-1 : related.length-1;
-		} else {
-			index = index < related.length-1 ? index+1 : 0;
-		}
-		loadModal(related[index].href, related[index].title);
-		return false;
-	}
-	
-	function centerModal (object, contentInfo){
-		if($modal.data("open")!==true){ return false; }
-
-		var speed = settings.transition=="none" ? 0 : settings.transitionSpeed;
-		$loaded.remove();
-		$loaded = $(object);
-	
-		$loaded.hide()
-		.appendTo('body')
-		.css({width:(settings.fixedWidth)?settings.fixedWidth - loadedWidth - interfaceWidth:$loaded.width()}).css({height:(settings.fixedHeight)?settings.fixedHeight - loadedHeight - interfaceHeight:$loaded.height()})
-		.attr({id:"modalLoadedContent"})
-		.append(contentInfo)
-		.prependTo($modalContent);
-
-		if($("#modalPhoto").length > 0 && settings.fixedHeight){
-			var topMargin = (parseInt($loaded[0].style.height, 10) - parseInt($("#modalPhoto")[0].style.height, 10))/2;
-			$("#modalPhoto").css({marginTop:(topMargin > 0?topMargin:0)});
-		}
-	
-		function setPosition(s){
-			modalPosition(parseInt($loaded[0].style.width, 10)+loadedWidth+interfaceWidth, parseInt($loaded[0].style.height, 10)+loadedHeight+interfaceHeight, s, function(){
-				if($modal.data("open")!==true){
-					return false;
-				}
-				$loaded.show();
-				$loadingOverlay.hide();
-				$(document).bind('keydown', keypressEvents);
-				if (callback) {
-					callback(related[index]); /* ----- PIWIGO MODIFICATION ----- */
-				}
-				if (settings.transition === "fade"){
-					$modal.animate({"opacity":1}, speed);
-				}
-				return true;
+	cboxPublic.prev = function () {
+		if(!active){
+			index = index > 0 ? index-1 : $related.length-1;
+			cboxPublic.load();
+		}
+	};
+
+	cboxPublic.slideshow = function () {
+		var stop, timeOut, className = 'cboxSlideshow_';
+		
+		$slideshow.bind(cbox_closed, function(){
+			$slideshow.unbind();
+			clearTimeout(timeOut);
+			$cbox.removeClass(className+"off"+" "+className+"on");
+		});
+		
+		function start(){
+			$slideshow
+			.text(settings.slideshowStop)
+			.bind(cbox_complete, function(){
+				timeOut = setTimeout(cboxPublic.next, settings.slideshowSpeed);
+			})
+			.bind(cbox_load, function(){
+				clearTimeout(timeOut);	
+			}).one("click", function(){
+				stop();
+				$(this).removeClass(hover);
 			});
-		}
-		if (settings.transition == "fade") {
-			$modal.animate({"opacity":0}, speed, function(){setPosition(0);});
-		} else {
-			setPosition(speed);
-		}
-		var preloads = preload();
-		return true;
-	}
-	
-	function loadModal(href, title){
-		clearLoading();
-		var contentInfo = "<p id='contentTitle'>"+title+"</p>";
-		if(related.length>1){
-			contentInfo += "<span id='contentCurrent'> " + settings.contentCurrent + "</span>";
-			contentInfo = contentInfo.replace(/\{current\}/, index+1).replace(/\{total\}/, related.length);
-			contentInfo += "<a id='contentPrevious' href='#'>"+settings.contentPrevious+"</a><a id='contentNext' href='#'>"+settings.contentNext+"</a> ";
-		}
-		if (settings.inline) {
-			loadingElement = $('<div id="colorboxInlineTemp" />').hide().insertBefore($(href)[0]);
-			centerModal($(href).wrapAll("<div />").parent(), contentInfo);
-		} else if (settings.iframe) {
-			centerModal($("<div><iframe name='iframe_"+new Date().getTime()+" 'frameborder=0 src =" + href + "></iframe></div>"), contentInfo);//timestamp to prevent caching.
-		} else if (href.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(.*))?$/i)){
-			loadingElement = new Image();
-			loadingElement.onload = function(){
-				loadingElement.onload = null;
-				centerModal($("<div />").css({width:this.width, height:this.height}).append($(this).css({width:this.width, height:this.height, display:"block", margin:"auto"}).attr('id', 'modalPhoto')), contentInfo);
-				if(related.length > 1){
-					$(this).css({cursor:'pointer'}).click(contentNav);
-				}
-			};
-			loadingElement.src = href;
-		}else {
-			loadingElement = $('<div />').load(href, function(data, textStatus){
-				if(textStatus == "success"){
-					centerModal($(this), contentInfo);
-				} else {
-					centerModal($("<p>Request unsuccessful.</p>"));
-				}
+			$cbox.removeClass(className+"off").addClass(className+"on");
+		}
+		
+		stop = function(){
+			clearTimeout(timeOut);
+			$slideshow
+			.text(settings.slideshowStart)
+			.unbind(cbox_complete+' '+cbox_load)
+			.one("click", function(){
+				start();
+				timeOut = setTimeout(cboxPublic.next, settings.slideshowSpeed);
+				$(this).removeClass(hover);
 			});
-		}
-	}
-
-	settings = $.extend({}, $.fn.colorbox.settings, settings);
-	
-	$(this).unbind("click.colorbox").bind("click.colorbox", function () {
-		if(settings.fixedWidth){ settings.fixedWidth = setSize(settings.fixedWidth, document.documentElement.clientWidth);}
-		if(settings.fixedHeight){ settings.fixedHeight = setSize(settings.fixedHeight, document.documentElement.clientHeight);}
-		if (this.rel && 'nofollow' != this.rel) {
-			related = $("a[rel='" + this.rel + "']");
-			index = $(related).index(this);
-		}
-		else {
-			related = $(this);
-			index = 0;
-		}
-
-		if ($modal.data("open") !== true) {
-			$(document).bind('keydown', keypressEvents);
-			$close.html(settings.modalClose);
-			$overlay.css({"opacity": settings.bgOpacity}).show();
-			$modal.data("open", true).css({"opacity":1});
-
-			modalPosition(setSize(settings.initialWidth, document.documentElement.clientWidth), setSize(settings.initialHeight, document.documentElement.clientHeight), 0);
-
-			if ($.browser.msie && $.browser.version < 7) {
-				$(window).bind("resize scroll", setModalOverlay);
-			}
-		}
-
-		loadModal(settings.href ? settings.href : related[index].href, settings.title ? settings.title : related[index].title);
-		$("a#contentPrevious, a#contentNext").die().live("click", contentNav);
-
-		if(settings.overlayClose!==false){
-			$overlay.css({"cursor":"pointer"}).click(function(){$.fn.colorbox.close();});
-		}
-		return false;
-	});
-
-	if(settings.open!==false && $modal.data("open")!==true){
-		$(this).triggerHandler('click.colorbox');
-	}
-
-	return this.each(function() { 
-	});
-};
-
-//public function for closing colorbox.  To use this within an iframe use the following format: parent.$.fn.colorbox.close();
-$.fn.colorbox.close = function(){
-
-	$('#contentTitle').remove();
-	clearLoading();
-	$overlay.css({cursor:"auto"}).fadeOut("fast");
-	$modal.stop(true, false).removeData("open").fadeOut("fast", function(){
-		$loaded.remove();
-	});
-	$(document).unbind('keydown', keypressEvents);
-	$(window).unbind('resize scroll', setModalOverlay);
-	return false;
-};
-
-/*
-	ColorBox Default Settings.
-	
-	The colorbox() function takes one argument, an object of key/value pairs, that are used to initialize the modal.
-	
-	Please do not change these settings here, instead overwrite these settings when attaching the colorbox() event to your anchors.
-	Example (Global)	: $.fn.colorbox.settings.transition = "fade"; //changes the transition to fade for all colorBox() events proceeding it's declaration.
-	Example (Specific)	: $("a[href='http://www.google.com']").colorbox({fixedWidth:"90%", fixedHeight:"450px", iframe:true});
-*/
-$.fn.colorbox.settings = {
-	transition : "elastic", // Transition types: "elastic", "fade", or "none".
-	transitionSpeed : 350, // Sets the speed of the fade and elastic transitions, in milliseconds.
-	initialWidth : "400", // Set the initial width of the modal, prior to any content being loaded.
-	initialHeight : "400", // Set the initial height of the modal, prior to any content being loaded.
-	fixedWidth : false, // Set a fixed width for div#loaded.  Example: "500px"
-	fixedHeight : false, // Set a fixed height for div#modalLoadedContent.  Example: "500px"
-	inline : false, // Set this to the selector of inline content to be displayed.  Example "#myHiddenDiv" or "body p".
-	iframe : false, // If 'true' specifies that content should be displayed in an iFrame.
-	href : false, // This can be used as an alternate anchor URL for ColorBox to use, or can be used to assign a URL for non-anchor elments such as images or form buttons.
-	title : false, // This can be used as an alternate anchor title.
-	bgOpacity : 0.85, // The modalBackgroundOverlay opacity level. Range: 0 to 1.
-	preloading : true, // Allows for preloading of 'Next' and 'Previous' content in a shared relation group (same values for the 'rel' attribute), after the current content has finished loading.  Set to 'false' to disable.
-	contentCurrent : "image {current} of {total}", // the format of the contentCurrent information
-	contentPrevious : "previous", // the anchor text for the previous link in a shared relation group (same values for 'rel').
-	contentNext : "next", // the anchor text for the next link in a shared relation group (same 'rel' attribute').
-	modalClose : "close", // the anchor text for the close link.  Esc will also close the modal.
-	open : false, //Automatically opens ColorBox. (fires the click.colorbox event without waiting for user input).
-	overlayClose : true  //If true, enables closing ColorBox by clicking on the background overlay.
-};
-
-})(jQuery);
-
+			$cbox.removeClass(className+"on").addClass(className+"off");
+		};
+		
+		if(settings.slideshow && $related.length>1){
+			if(settings.slideshowAuto){
+				start();
+			} else {
+				stop();
+			}
+		}
+	};
+
+	// Note: to use this within an iframe use the following format: parent.$.fn.colorbox.close();
+	cboxPublic.close = function () {
+		
+		$.event.trigger(cbox_cleanup);
+		if (settings.onCleanup) {
+			settings.onCleanup.call(element);
+		}
+		
+		open = FALSE;
+		$().unbind("keydown.cbox_close keydown.cbox_arrows");
+		$window.unbind(cbox_resize+' resize.cboxie6 scroll.cboxie6');
+		$overlay.css({cursor: 'auto'}).fadeOut('fast');
+		
+		$cbox
+		.stop(TRUE, FALSE)
+		.fadeOut('fast', function () {
+			$loaded.remove();
+			$cbox.css({'opacity': 1});
+			
+			try{
+				bookmark.focus();
+			} catch (er){
+				// do nothing
+			}
+			
+			$.event.trigger(cbox_closed);
+			if (settings.onClosed) {
+				settings.onClosed.call(element);
+			}
+		});
+	};
+
+	// A method for fetching the current element ColorBox is referencing.
+	// returns a jQuery object.
+	cboxPublic.element = function(){ return $(element); };
+
+	cboxPublic.settings = defaults;
+
+	// Initializes ColorBox when the DOM has loaded
+	$(cboxPublic.init);
+
+}(jQuery));
Index: /extensions/lightbox/language/en_UK/description.txt
===================================================================
--- /extensions/lightbox/language/en_UK/description.txt	(revision 4621)
+++ /extensions/lightbox/language/en_UK/description.txt	(revision 4621)
@@ -0,0 +1,1 @@
+Display pictures in a lightbox.
Index: /extensions/lightbox/language/fr_FR/description.txt
===================================================================
--- /extensions/lightbox/language/fr_FR/description.txt	(revision 4621)
+++ /extensions/lightbox/language/fr_FR/description.txt	(revision 4621)
@@ -0,0 +1,1 @@
+Affiche les images dans une lightbox.
Index: /extensions/lightbox/lightbox.php
===================================================================
--- /extensions/lightbox/lightbox.php	(revision 4620)
+++ /extensions/lightbox/lightbox.php	(revision 4621)
@@ -10,9 +10,5 @@
 $template->func_known_script(array('id'=>'colorbox', 'src'=>get_root_url().'plugins/lightbox/jquery.colorbox.js'), $smarty);
 $template->block_html_head('', '
-<link rel="stylesheet" href="'.get_root_url().'plugins/lightbox/colorbox.css" type="text/css" media="screen">
-<link rel="stylesheet" href="'.get_root_url().'plugins/lightbox/theme/'.$params['theme'].'/theme.css" type="text/css" media="screen">
-<!--[if IE]>
-  <link type="text/css" media="screen" rel="stylesheet" href="'.get_root_url().'plugins/lightbox/theme/'.$params['theme'].'/theme-ie.css" title="example" />
-<![endif]-->
+<link rel="stylesheet" href="'.get_root_url().'plugins/lightbox/theme/'.$params['theme'].'/colorbox.css" type="text/css" media="screen">
 <script type="text/javascript">
 $(document).ready(function(){
@@ -21,15 +17,15 @@
 });
 $(".thumbnails a").colorbox({
-  contentCurrent: "",
+  current: "",
   transition: "'.$params['transition'].'",
-  transitionSpeed: "'.$params['transition_speed'].'",
+  speed: "'.$params['transition_speed'].'",
   initialWidth: "'.(!empty($params['initial_width']) ? $params['initial_width'] : $config_default['initial_width']).'",
   initialHeight: "'.(!empty($params['initial_height']) ? $params['initial_height'] : $config_default['initial_height']).'",
-  fixedWidth: '.(!empty($params['fixed_width']) ? '"'.$params['fixed_width'].'"' : 'false').',
-  fixedHeight: '.(!empty($params['fixed_height']) ? '"'.$params['fixed_height'].'"' : 'false').'
+  width: '.(!empty($params['fixed_width']) ? '"'.$params['fixed_width'].'"' : 'false').',
+  height: '.(!empty($params['fixed_height']) ? '"'.$params['fixed_height'].'"' : 'false').'
   },
-  function(img) { 
+  function() { 
     $.post("'.get_root_url().'plugins/lightbox/save_history.php", {
-      imgid:   img.id,
+      imgid:   this.id,
       catid:   "'.@$page['category']['id'].'",
       section: "'.@$page['section'].'",
Index: /extensions/lightbox/main.inc.php
===================================================================
--- /extensions/lightbox/main.inc.php	(revision 4620)
+++ /extensions/lightbox/main.inc.php	(revision 4621)
@@ -2,5 +2,5 @@
 /*
 Plugin Name: Lightbox
-Version: 2.0.c
+Version: auto
 Description: Display pictures in a lightbox.
 Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=280
Index: /extensions/lightbox/theme/clear/colorbox.css
===================================================================
--- /extensions/lightbox/theme/clear/colorbox.css	(revision 4621)
+++ /extensions/lightbox/theme/clear/colorbox.css	(revision 4621)
@@ -0,0 +1,64 @@
+/*
+    ColorBox Core Style
+    The following rules are the styles that are consistant between themes.
+    Avoid changing this area to maintain compatability with future versions of ColorBox.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative; overflow:hidden;}
+#cboxLoadedContent{overflow:auto;}
+#cboxLoadedContent iframe{display:block; width:100%; height:100%; border:0;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+
+/* 
+    Example user style
+    The following rules are ordered and tabbed in a way that represents the
+    order/nesting of the generated HTML, so that the structure easier to understand.
+*/
+#cboxOverlay{background:url(images/overlay.png) 0 0 repeat;}
+#colorbox{}
+    #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) -100px 0 no-repeat;}
+    #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) -129px 0 no-repeat;}
+    #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) -100px -29px no-repeat;}
+    #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) -129px -29px no-repeat;}
+    #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
+    #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
+    #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
+    #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
+    #cboxContent{background:#fff;}
+        #cboxLoadedContent{margin-bottom:28px;}
+        #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
+        #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
+        #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
+        #cboxPrevious{position:absolute; bottom:0; left:0px; background:url(images/controls.png) -75px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
+        #cboxPrevious.hover{background-position:-75px -25px;}
+        #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) -50px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
+        #cboxNext.hover{background-position:-50px -25px;}
+        #cboxLoadingOverlay{background:url(images/loading_background.png) center center no-repeat;}
+        #cboxLoadingGraphic{background:url(images/loading.gif) center center no-repeat;}
+        #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) -25px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
+        #cboxClose.hover{background-position:-25px -25px;}
+
+/*
+    The following fixes png-transparency for IE6.  
+    It is also necessary for png-transparency in IE7 & IE8 to avoid 'black halos' with the fade transition
+    
+    Since this method does not support CSS background-positioning, it is incompatible with CSS sprites.
+    Colorbox preloads navigation hover classes to account for this.
+    
+    !! Important Note: AlphaImageLoader src paths are relative to the HTML document,
+    while regular CSS background images are relative to the CSS document.
+*/
+.cboxIE #cboxTopLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderTopLeft.png, sizingMethod='scale');}
+.cboxIE #cboxTopCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderTopCenter.png, sizingMethod='scale');}
+.cboxIE #cboxTopRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderTopRight.png, sizingMethod='scale');}
+.cboxIE #cboxBottomLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderBottomLeft.png, sizingMethod='scale');}
+.cboxIE #cboxBottomCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderBottomCenter.png, sizingMethod='scale');}
+.cboxIE #cboxBottomRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderBottomRight.png, sizingMethod='scale');}
+.cboxIE #cboxMiddleLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderMiddleLeft.png, sizingMethod='scale');}
+.cboxIE #cboxMiddleRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/internet_explorer/borderMiddleRight.png, sizingMethod='scale');}
+
+#cboxTitle a {color:#222; border-bottom: 0 none;}
Index: tensions/lightbox/theme/clear/images/index.php
===================================================================
--- /extensions/lightbox/theme/clear/images/index.php	(revision 4620)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | PhpWebGallery - a PHP based picture gallery                           |
-// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
-// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
-// +-----------------------------------------------------------------------+
-// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
-// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
-// | last modifier : $Author: rub $
-// | revision      : $Revision: 1912 $
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify  |
-// | it under the terms of the GNU General Public License as published by  |
-// | the Free Software Foundation                                          |
-// |                                                                       |
-// | This program is distributed in the hope that it will be useful, but   |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
-// | General Public License for more details.                              |
-// |                                                                       |
-// | You should have received a copy of the GNU General Public License     |
-// | along with this program; if not, write to the Free Software           |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA.                                                                  |
-// +-----------------------------------------------------------------------+
-
-// Recursive call
-$url = '../';
-header( 'Request-URI: '.$url );
-header( 'Content-Location: '.$url );
-header( 'Location: '.$url );
-exit();
-?>
Index: tensions/lightbox/theme/clear/theme-ie.css
===================================================================
--- /extensions/lightbox/theme/clear/theme-ie.css	(revision 4620)
+++ 	(revision )
@@ -1,15 +1,0 @@
-/*
-	The following fixes png-transparency for IE6.  
-	It is also necessary for png-transparency to cooperate with the fade transition in IE7 & IE8
-	
-	Since this does not support background-positioning, it is incompatible with CSS sprites.  
-	Colorbox preloads the 'previous', 'next', 'close' hover-states to account for this.
-*/
-#borderTopLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderTopLeft.png, sizingMethod='scale');}
-#borderTopCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderTopCenter.png, sizingMethod='scale');}
-#borderTopRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderTopRight.png, sizingMethod='scale');}
-#borderBottomLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderBottomLeft.png, sizingMethod='scale');}
-#borderBottomCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderBottomCenter.png, sizingMethod='scale');}
-#borderBottomRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderBottomRight.png, sizingMethod='scale');}
-#borderMiddleLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderMiddleLeft.png, sizingMethod='scale');}
-#borderMiddleRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/clear/images/borderMiddleRight.png, sizingMethod='scale');}
Index: tensions/lightbox/theme/clear/theme.css
===================================================================
--- /extensions/lightbox/theme/clear/theme.css	(revision 4620)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/* 
-	ColorBox example user style
-	These rules are ordered and tabbed in a way that represents the order/nesting of the generated HTML, 
-	in hope that this will make the relationship easier to understand. Thanks, jack@colorpowered.com
-*/
-#modalBackgroundOverlay{background:url(images/stripe.png) 0 0 repeat;}
-
-#colorbox{}
-	#borderTopLeft{width:21px; height:21px; background:url(images/borderTopLeft.png) 0 0 no-repeat;}
-	#borderTopCenter{height:21px; background:url(images/borderTopCenter.png) 0 0 repeat-x;}
-	#borderTopRight{width:21px; height:21px; background:url(images/borderTopRight.png) 0 0 no-repeat;}
-	#borderBottomLeft{width:21px; height:21px; background:url(images/borderBottomLeft.png) 0 0 no-repeat;}
-	#borderBottomCenter{height:21px; background:url(images/borderBottomCenter.png) 0 0 repeat-x;}
-	#borderBottomRight{width:21px; height:21px; background:url(images/borderBottomRight.png) 0 0 no-repeat;}
-	#borderMiddleLeft{width:21px; background:url(images/borderMiddleLeft.png) 0 0 repeat-y;}
-	#borderMiddleRight{width:21px; background:url(images/borderMiddleRight.png) 0 0 repeat-y;}
-	#modalContent{background:#fff;}
-		#modalLoadedContent{margin-bottom:28px;}
-			#contentTitle{position:absolute; bottom:3px; left:0; text-align:center; width:100%; background:#fff; font-weight:bold; color:#949494;}
-			#contentCurrent{position:absolute; bottom:3px; left:58px; font-weight:bold; color:#949494;}
-			#contentPrevious{position:absolute; bottom:0; left:0px; background:url(images/controls.png) -25px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
-			#contentPrevious:hover, #contentPrevious.hover{background-position:-25px -25px;}
-			#contentNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) 0px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
-			#contentNext:hover, #contentNext.hover{background-position:0px -25px;}
-		#modalLoadingOverlay{background:url(images/loading.gif) center center no-repeat #fff;}
-		#modalClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) -50px 0px no-repeat; width:25px; height:25px; text-indent:-9999px;}
-		#modalClose:hover, #modalClose.hover{background-position:-50px -25px;}
-
-#contentTitle a {color:#949494; border-bottom: 0 none;}
Index: /extensions/lightbox/theme/dark/colorbox.css
===================================================================
--- /extensions/lightbox/theme/dark/colorbox.css	(revision 4621)
+++ /extensions/lightbox/theme/dark/colorbox.css	(revision 4621)
@@ -0,0 +1,38 @@
+/*
+    ColorBox Core Style
+    The following rules are the styles that are consistant between themes.
+    Avoid changing this area to maintain compatability with future versions of ColorBox.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxLoadedContent iframe{display:block; width:100%; height:100%; border:0;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+
+/* 
+    ColorBox example user style
+    The following rules are ordered and tabbed in a way that represents the
+    order/nesting of the generated HTML, so that the structure easier to understand.
+*/
+#cboxOverlay{background:#000;}
+
+#colorbox{}
+    #cboxContent{margin-top:20px;}
+        #cboxLoadedContent{background:#000; padding:5px;}
+        #cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;}
+        #cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;}
+        #cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;}
+        #cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) top left no-repeat; width:28px; height:65px; text-indent:-9999px;}
+        #cboxPrevious.hover{background-position:bottom left;}
+        #cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) top right no-repeat; width:28px; height:65px; text-indent:-9999px;}
+        #cboxNext.hover{background-position:bottom right;}
+        #cboxLoadingOverlay{background:#000;}
+        #cboxLoadingGraphic{background:url(images/loading.gif) center center no-repeat;}
+        #cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) top center no-repeat; width:38px; height:19px; text-indent:-9999px;}
+        #cboxClose.hover{background-position:bottom center;}
+        
+#cboxTitle a {color:#fff; border-bottom: 0 none;}
Index: tensions/lightbox/theme/dark/images/index.php
===================================================================
--- /extensions/lightbox/theme/dark/images/index.php	(revision 4620)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | PhpWebGallery - a PHP based picture gallery                           |
-// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
-// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
-// +-----------------------------------------------------------------------+
-// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
-// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
-// | last modifier : $Author: rub $
-// | revision      : $Revision: 1912 $
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify  |
-// | it under the terms of the GNU General Public License as published by  |
-// | the Free Software Foundation                                          |
-// |                                                                       |
-// | This program is distributed in the hope that it will be useful, but   |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
-// | General Public License for more details.                              |
-// |                                                                       |
-// | You should have received a copy of the GNU General Public License     |
-// | along with this program; if not, write to the Free Software           |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA.                                                                  |
-// +-----------------------------------------------------------------------+
-
-// Recursive call
-$url = '../';
-header( 'Request-URI: '.$url );
-header( 'Content-Location: '.$url );
-header( 'Location: '.$url );
-exit();
-?>
Index: tensions/lightbox/theme/dark/theme-ie.css
===================================================================
--- /extensions/lightbox/theme/dark/theme-ie.css	(revision 4620)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/*
-	The following fixes png-transparency for IE6 only.
-	
-	Since IE does not support background-positioning with filters, it is incompatible with CSS sprites.  
-	Colorbox preloads the 'previous', 'next', 'close' hover-states to account for this.
-*/
-* html #contentPrevious{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/previous.png, sizingMethod='crop');}
-* html #contentPrevious:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/previousHover.png, sizingMethod='scale');}
-* html #contentNext{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/next.png, sizingMethod='crop');}
-* html #contentNext:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/nextHover.png, sizingMethod='scale');}
-* html #modalClose{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/close.png, sizingMethod='crop');}
-* html #modalClose:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/dark/images/closeHover.png, sizingMethod='scale');}
-
-/* 
-	Because IE does not support CSS sprites while using the filter attribute 
-	this area is for declaring hover-state backgrounds so they can be preloaded
-*/
-* html #preloadPrevious{background-image:url(plugins/lightbox/theme/dark/images/previousHover.png);}
-* html #preloadNext{background-image:url(plugins/lightbox/theme/dark/images/nextHover.png);}
-* html #preloadClose{background-image:url(plugins/lightbox/theme/dark/images/closeHover.png);}
Index: tensions/lightbox/theme/dark/theme.css
===================================================================
--- /extensions/lightbox/theme/dark/theme.css	(revision 4620)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/* 
-	ColorBox example user style
-	These rules are ordered and tabbed in a way that represents the order/nesting of the generated HTML, 
-	in hope that this will make the relationship easier to understand. Thanks, jack@colorpowered.com
-*/
-#modalBackgroundOverlay{background:#000;}
-
-#colorbox{}
-	#modalContent{background:#000; margin-top:20px;}
-		#modalLoadedContent{background:#000; border:10px solid #000;}
-			#contentTitle{position:absolute; top:-20px; left:0; color:#fff;}
-			#contentCurrent{display:none;}
-			#contentPrevious{position:absolute; top:50%; left:10px; margin-top:-41px; background:url(images/controls.png) top left no-repeat; width:38px; height:81px; text-indent:-9999px;}
-			#contentPrevious:hover, #contentPrevious.hover{background-position:bottom left;}
-			#contentNext{position:absolute; top:50%; right:10px; margin-top:-41px; background:url(images/controls.png) top right no-repeat; width:38px; height:81px; text-indent:-9999px;}
-			#contentNext:hover, #contentNext.hover{background-position:bottom right;}
-		#modalLoadingOverlay{background:url(images/loading.gif) center center no-repeat #000;}
-		#modalClose{position:absolute; top:10px; right:10px; display:block; background:url(images/controls.png) top center no-repeat; width:47px; height:24px; text-indent:-9999px;}
-		#modalClose:hover, #modalClose.hover{background-position:bottom center;}
-
-#contentTitle a {color:#fff; border-bottom: 0 none;}
Index: /extensions/lightbox/theme/grey/colorbox.css
===================================================================
--- /extensions/lightbox/theme/grey/colorbox.css	(revision 4621)
+++ /extensions/lightbox/theme/grey/colorbox.css	(revision 4621)
@@ -0,0 +1,43 @@
+/*
+    ColorBox Core Style
+    The following rules are the styles that are consistant between themes.
+    Avoid changing this area to maintain compatability with future versions of ColorBox.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative; overflow:visible;}
+#cboxLoadedContent{overflow:auto;}
+#cboxLoadedContent iframe{display:block; width:100%; height:100%; border:0;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+
+/* 
+    ColorBox example user style
+    The following rules are ordered and tabbed in a way that represents the
+    order/nesting of the generated HTML, so that the structure easier to understand.
+*/
+#cboxOverlay{background:#fff;}
+
+#colorbox{}
+    #cboxContent{margin-top:32px;}
+        #cboxLoadedContent{background:#000; padding:1px;}
+        #cboxLoadingGraphic{background:url(images/loading.gif) center center no-repeat;}
+        #cboxLoadingOverlay{background:#000;}
+        #cboxTitle{position:absolute; top:-22px; left:0; color:#000;}
+        #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;}
+        #cboxSlideshow, #cboxPrevious, #cboxNext, #cboxClose{text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(images/controls.png) 0 0 no-repeat;}
+        #cboxPrevious{background-position:0px 0px; right:44px;}
+        #cboxPrevious.hover{background-position:0px -25px;}
+        #cboxNext{background-position:-25px 0px; right:22px;}
+        #cboxNext.hover{background-position:-25px -25px;}
+        #cboxClose{background-position:-50px 0px; right:0;}
+        #cboxClose.hover{background-position:-50px -25px;}
+        .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;}
+        .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;}
+        .cboxSlideshow_on #cboxSlideshow.hover{background-position:-100px -25px;}
+        .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;}
+        .cboxSlideshow_off #cboxSlideshow.hover{background-position:-75px -25px;}
+
+#cboxTitle a {color:#222; border-bottom: 0 none;}
Index: tensions/lightbox/theme/grey/images/index.php
===================================================================
--- /extensions/lightbox/theme/grey/images/index.php	(revision 4620)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | PhpWebGallery - a PHP based picture gallery                           |
-// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
-// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
-// +-----------------------------------------------------------------------+
-// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
-// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
-// | last modifier : $Author: rub $
-// | revision      : $Revision: 1912 $
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify  |
-// | it under the terms of the GNU General Public License as published by  |
-// | the Free Software Foundation                                          |
-// |                                                                       |
-// | This program is distributed in the hope that it will be useful, but   |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
-// | General Public License for more details.                              |
-// |                                                                       |
-// | You should have received a copy of the GNU General Public License     |
-// | along with this program; if not, write to the Free Software           |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA.                                                                  |
-// +-----------------------------------------------------------------------+
-
-// Recursive call
-$url = '../';
-header( 'Request-URI: '.$url );
-header( 'Content-Location: '.$url );
-header( 'Location: '.$url );
-exit();
-?>
Index: tensions/lightbox/theme/grey/theme-ie.css
===================================================================
--- /extensions/lightbox/theme/grey/theme-ie.css	(revision 4620)
+++ 	(revision )
@@ -1,23 +1,0 @@
-/*
-	The following fixes png-transparency for IE6.  
-	It is also necessary for png-transparency to cooperate with the fade transition in IE7 & IE8
-	
-	Since IE does not support background-positioning with filters, it is incompatible with CSS sprites.
-	Colorbox preloads the 'previous', 'next', 'close' hover-states to account for this.
-*/
-#contentPrevious{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/previous.png, sizingMethod='crop');}
-#contentPrevious:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/previousHover.png, sizingMethod='scale');}
-#contentNext{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/next.png, sizingMethod='crop');}
-#contentNext:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/nextHover.png, sizingMethod='scale');}
-#modalClose{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/close.png, sizingMethod='crop');}
-#modalClose:hover{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=plugins/lightbox/theme/grey/images/closeHover.png, sizingMethod='scale');}
-
-/* 
-	Because IE does not support CSS sprites while using the filter attribute 
-	this area is for declaring hover-state backgrounds so they can be preloaded
-*/
-#preloadPrevious{background-image:url(plugins/lightbox/theme/grey/images/previousHover.png);}
-#preloadNext{background-image:url(plugins/lightbox/theme/grey/images/nextHover.png);}
-#preloadClose{background-image:url(plugins/lightbox/theme/grey/images/closeHover.png);}
-
-#contentTitle {font-family: Verdana,Arial,san-serrif;}
Index: tensions/lightbox/theme/grey/theme.css
===================================================================
--- /extensions/lightbox/theme/grey/theme.css	(revision 4620)
+++ 	(revision )
@@ -1,21 +1,0 @@
-/* 
-	ColorBox example user style
-	These rules are ordered and tabbed in a way that represents the order/nesting of the generated HTML, 
-	in hope that this will make the relationship easier to understand. Thanks, jack@colorpowered.com
-*/
-#modalBackgroundOverlay{background:#fff;}
-
-#colorbox{}
-	#modalContent{margin-top:32px;}
-		#modalLoadedContent{background:#000; padding:2px;}
-			#contentTitle{position:absolute; top:-22px; left:0; color:#000; font-weight:bold;}
-			#contentCurrent{display:none;}
-			#contentPrevious{width:29px; height:32px; display:block; text-indent:-9999px; position:absolute; top:-32px; right:60px; background:url(images/buttons.png) left top no-repeat;}
-			#contentPrevious:hover{background-position:left bottom;}
-			#contentNext{width:29px; height:32px; display:block; text-indent:-9999px; position:absolute; top:-32px; right:28px; background:url(images/buttons.png) right top no-repeat;}
-			#contentNext:hover{background-position:right bottom;}
-		#modalLoadingOverlay{background:url(images/loading.gif) center center no-repeat #000;}
-		#modalClose{position:absolute; top:-32px; right:0px; display:block; background:url(images/buttons.png) -29px 0 no-repeat; width:26px; height:32px; text-indent:-9999px;}
-		#modalClose:hover{background-position:-29px -31px; cursor:pointer;}
-    
-#contentTitle a {color:#000; border-bottom: 0 none;}
Index: /extensions/lightbox/theme/grey2/colorbox.css
===================================================================
--- /extensions/lightbox/theme/grey2/colorbox.css	(revision 4621)
+++ /extensions/lightbox/theme/grey2/colorbox.css	(revision 4621)
@@ -0,0 +1,52 @@
+/*
+    ColorBox Core Style
+    The following rules are the styles that are consistant between themes.
+    Avoid changing this area to maintain compatability with future versions of ColorBox.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative; overflow:visible;}
+#cboxLoadedContent{overflow:auto;}
+#cboxLoadedContent iframe{display:block; width:100%; height:100%; border:0;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+
+/* 
+    ColorBox example user style
+    The following rules are ordered and tabbed in a way that represents the
+    order/nesting of the generated HTML, so that the structure easier to understand.
+*/
+#cboxOverlay{background:#000;}
+
+#colorbox{}
+    #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) 0 0 no-repeat;}
+    #cboxTopCenter{height:14px; background:url(images/border.png) top left repeat-x;}
+    #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) -36px 0 no-repeat;}
+    #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) 0 -32px no-repeat;}
+    #cboxBottomCenter{height:43px; background:url(images/border.png) bottom left repeat-x;}
+    #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) -36px -32px no-repeat;}
+    #cboxMiddleLeft{width:14px; background:url(images/controls.png) -175px 0 repeat-y;}
+    #cboxMiddleRight{width:14px; background:url(images/controls.png) -211px 0 repeat-y;}
+    #cboxContent{background:#fff;}
+        #cboxLoadedContent{margin-bottom:5px;}
+        #cboxLoadingOverlay{background:url(images/loading_background.png) center center no-repeat;}
+        #cboxLoadingGraphic{background:url(images/loading.gif) center center no-repeat;}
+        #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
+        #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
+        
+        #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(images/controls.png) 0px 0px no-repeat; width:23px; height:23px; text-indent:-9999px;}
+        #cboxPrevious{left:0px; background-position: -51px -25px;}
+        #cboxPrevious.hover{background-position:-51px 0px;}
+        #cboxNext{left:27px; background-position:-75px -25px;}
+        #cboxNext.hover{background-position:-75px 0px;}
+        #cboxClose{right:0; background-position:-100px -25px;}
+        #cboxClose.hover{background-position:-100px 0px;}
+        
+        .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
+        .cboxSlideshow_on #cboxSlideshow.hover{background-position:-150px 0px;}
+        .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
+        .cboxSlideshow_off #cboxSlideshow.hover{background-position:-125px 0px;}
+
+#cboxTitle a {color:#555; border-bottom: 0 none;}
Index: /extensions/lightbox/theme/grey2/index.html
===================================================================
--- /extensions/lightbox/theme/grey2/index.html	(revision 4621)
+++ /extensions/lightbox/theme/grey2/index.html	(revision 4621)
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<title>ColorBox Examples</title>
+		<style type="text/css">
+			body{font:12px/1.2 Verdana, Arial, san-serrif; padding:0 10px;}
+			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
+			h2{font-size:13px; margin:15px 0 0 0;}
+		</style>
+		<link type="text/css" media="screen" rel="stylesheet" href="colorbox.css" />
+		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
+		<script type="text/javascript" src="../colorbox/jquery.colorbox.js"></script>
+		<script type="text/javascript">
+			$(document).ready(function(){
+				//Examples of how to assign the ColorBox event to elements
+				$("a[rel='example1']").colorbox();
+				$("a[rel='example2']").colorbox({transition:"fade"});
+				$("a[rel='example3']").colorbox({transition:"none", width:"75%", height:"75%"});
+				$("a[rel='example4']").colorbox({slideshow:true});
+				$(".example5").colorbox();
+				$(".example6").colorbox({iframe:true, innerWidth:425, innerHeight:344});
+				$(".example7").colorbox({width:"80%", height:"80%", iframe:true});
+				$(".example8").colorbox({width:"50%", inline:true, href:"#inline_example1"});
+				$(".example9").colorbox({
+					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
+					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
+					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
+					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
+					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
+				});
+				
+				//Example of preserving a JavaScript event for inline calls.
+				$("#click").click(function(){ 
+					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
+					return false;
+				});
+			});
+		</script>
+	</head>
+	<body>
+		<h1>ColorBox Demonstration</h1>
+		<h2>Elastic Transition</h2>
+		<p><a href="../content/ohoopee1.jpg" rel="example1" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+		<p><a href="../content/ohoopee2.jpg" rel="example1" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+		<p><a href="../content/ohoopee3.jpg" rel="example1" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+		
+		<h2>Fade Transition</h2>
+		<p><a href="../content/ohoopee1.jpg" rel="example2" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
+		<p><a href="../content/ohoopee2.jpg" rel="example2" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+		<p><a href="../content/ohoopee3.jpg" rel="example2" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+		
+		<h2>No Transition + fixed width and height (75% of screen size)</h2>
+		<p><a href="../content/ohoopee1.jpg" rel="example3"  title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+		<p><a href="../content/ohoopee2.jpg" rel="example3"  title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+		<p><a href="../content/ohoopee3.jpg" rel="example3"  title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+		
+		<h2>Slideshow</h2>
+		<p><a href="../content/ohoopee1.jpg" rel="example4"  title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
+		<p><a href="../content/ohoopee2.jpg" rel="example4"  title="On the Ohoopee as a child">Grouped Photo 2</a></p>
+		<p><a href="../content/ohoopee3.jpg" rel="example4"  title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
+		
+		<h2>Other Content Types</h2>
+		<p><a class='example5' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
+		<p><a class='example5' href="../content/flash.html" title="Royksopp: Remind Me">Flash / Video (Ajax/Embedded)</a></p>
+		<p><a class='example6' href="http://www.youtube.com/v/617ANIA5Rqs" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
+		<p><a class='example7' href="http://google.com">Outside Webpage (Iframe)</a></p>
+		<p><a class='example8' href="#">Inline HTML</a></p>
+		
+		<h2>Demonstration of using callbacks</h2>
+		<p><a class='example9' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
+		
+		<!-- This contains the hidden content for inline calls -->
+		<div style='display:none'>
+			<div id='inline_example1' style='padding:10px; background:#fff;'>
+			<p><strong>This content comes from a hidden element on this page.</strong></p>
+			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.<br />
+			<a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
+			
+			<p><strong>If you try to open a new ColorBox while it is already open, it will update itself with the new content.</strong></p>
+			<p>Updating Content Example:<br />
+			<a class="example5" href="../content/flash.html">Click here to load new content</a></p>
+			</div>
+		</div>
+	</body>
+</html>
Index: /extensions/lightbox/theme/grey2/index.php
===================================================================
--- /extensions/lightbox/theme/grey2/index.php	(revision 4621)
+++ /extensions/lightbox/theme/grey2/index.php	(revision 4621)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
