Index: /extensions/PwgCarbon_dft/icon/index.php
===================================================================
--- /extensions/PwgCarbon_dft/icon/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/icon/index.php	(revision 18803)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery                                  |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008      Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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: /extensions/PwgCarbon_dft/icon/mimetypes/index.php
===================================================================
--- /extensions/PwgCarbon_dft/icon/mimetypes/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/icon/mimetypes/index.php	(revision 18803)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2012 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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: /extensions/PwgCarbon_dft/images/index.php
===================================================================
--- /extensions/PwgCarbon_dft/images/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/images/index.php	(revision 18803)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2012 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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: /extensions/PwgCarbon_dft/index.php
===================================================================
--- /extensions/PwgCarbon_dft/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/index.php	(revision 18803)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery                                  |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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: /extensions/PwgCarbon_dft/js/columnizer.js
===================================================================
--- /extensions/PwgCarbon_dft/js/columnizer.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/columnizer.js	(revision 18803)
@@ -0,0 +1,119 @@
+/** 
+#  * Copyright (c) 2008 Pasyuk Sergey (www.codeasily.com) 
+#  * Licensed under the MIT License: 
+#  * http://www.opensource.org/licenses/mit-license.php 
+#  *  
+#  * Splits a <ul>/<ol>-list into equal-sized columns. 
+#  *  
+#  * Requirements:  
+#  * <ul> 
+#  * <li>"ul" or "ol" element must be styled with margin</li> 
+#  * </ul> 
+#  *  
+#  * @see http://www.codeasily.com/jquery/multi-column-list-with-jquery 
+#  */  
+jQuery.fn.makeacolumnlists = function(settings){
+	settings = jQuery.extend({
+		cols: 2,				// set number of columns
+		colWidth: 0,			// set width for each column or leave 0 for auto width
+		equalHeight: false, 	// can be false, 'ul', 'ol', 'li'
+		startN: 1				// first number on your ordered list
+	}, settings);
+
+	if(jQuery('> li', this)) {
+		this.each(function(y) {
+			var y=jQuery('.li_container').size(),
+		    	height = 0, 
+		        maxHeight = 0,
+				t = jQuery(this),
+				classN = t.attr('class'),
+				listsize = jQuery('> li', this).size(),
+				percol = Math.ceil(listsize/settings.cols),
+				contW = t.width(),
+				bl = ( isNaN(parseInt(t.css('borderLeftWidth'),10)) ? 0 : parseInt(t.css('borderLeftWidth'),10) ),
+				br = ( isNaN(parseInt(t.css('borderRightWidth'),10)) ? 0 : parseInt(t.css('borderRightWidth'),10) ),
+				pl = parseInt(t.css('paddingLeft'),10),
+				pr = parseInt(t.css('paddingRight'),10),
+				ml = parseInt(t.css('marginLeft'),10),
+				mr = parseInt(t.css('marginRight'),10),
+				col_Width = Math.floor((contW - (settings.cols-1)*(bl+br+pl+pr+ml+mr))/settings.cols);
+			if (settings.colWidth) {
+				col_Width = settings.colWidth; 
+			}
+			var colnum=1,
+				percol2=percol;
+			jQuery(this).addClass('li_cont1').wrap('<div id="li_container' + (++y) + '" class="li_container"></div>');
+			for (var i=0; i<=listsize; i++) {
+				if(i>=percol2) { percol2+=percol; colnum++; }
+				var eq = jQuery('> li:eq('+i+')',this);
+				eq.addClass('li_col'+ colnum);
+				if(jQuery(this).is('ol')){eq.attr('value', ''+(i+settings.startN))+'';}
+			}
+			jQuery(this).css({cssFloat:'left', width:''+col_Width+'px'});
+			for (colnum=2; colnum<=settings.cols; colnum++) {
+				if(jQuery(this).is('ol')) {
+					jQuery('li.li_col'+ colnum, this).appendTo('#li_container' + y).wrapAll('<ol class="li_cont'+colnum +' ' + classN + '" style="float:left; width: '+col_Width+'px;"></ol>');
+				} else {
+					jQuery('li.li_col'+ colnum, this).appendTo('#li_container' + y).wrapAll('<ul class="li_cont'+colnum +' ' + classN + '" style="float:left; width: '+col_Width+'px;"></ul>');
+				}
+			}
+			if (settings.equalHeight=='li') {
+				for (colnum=1; colnum<=settings.cols; colnum++) {
+				    jQuery('#li_container'+ y +' li').each(function() {
+				        var e = jQuery(this);
+				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
+				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
+				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
+				        maxHeight = (height > maxHeight) ? height : maxHeight;
+				    });
+				}
+				for (colnum=1; colnum<=settings.cols; colnum++) {
+					var eh = jQuery('#li_container'+ y +' li');
+			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
+			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
+					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
+			        eh.height(mh);
+				}
+			} else 
+			if (settings.equalHeight=='ul' || settings.equalHeight=='ol') {
+				for (colnum=1; colnum<=settings.cols; colnum++) {
+				    jQuery('#li_container'+ y +' .li_cont'+colnum).each(function() {
+				        var e = jQuery(this);
+				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
+				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
+				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
+				        maxHeight = (height > maxHeight) ? height : maxHeight;
+				    });
+				}
+				for (colnum=1; colnum<=settings.cols; colnum++) {
+					var eh = jQuery('#li_container'+ y +' .li_cont'+colnum);
+			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
+			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
+					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
+			        eh.height(mh);
+				}
+			}
+		    jQuery('#li_container' + y).append('<div style="clear:both; overflow:hidden; height:0px;"></div>');
+		});
+	}
+}
+
+jQuery.fn.uncolumnlists = function(){
+	jQuery('.li_cont1').each(function(i) {
+		var onecolSize = jQuery('#li_container' + (++i) + ' .li_cont1 > li').size();
+		if(jQuery('#li_container' + i + ' .li_cont1').is('ul')) {
+			jQuery('#li_container' + i + ' > ul > li').appendTo('#li_container' + i + ' ul:first');
+			for (var j=1; j<=onecolSize; j++) {
+				jQuery('#li_container' + i + ' ul:first li').removeAttr('class').removeAttr('style');
+			}
+			jQuery('#li_container' + i + ' ul:first').removeAttr('style').removeClass('li_cont1').insertBefore('#li_container' + i);
+		} else {
+			jQuery('#li_container' + i + ' > ol > li').appendTo('#li_container' + i + ' ol:first');
+			for (var j=1; j<=onecolSize; j++) {
+				jQuery('#li_container' + i + ' ol:first li').removeAttr('class').removeAttr('style');
+			}
+			jQuery('#li_container' + i + ' ol:first').removeAttr('style').removeClass('li_cont1').insertBefore('#li_container' + i);
+		}
+		jQuery('#li_container' + i).remove();
+	});
+}
Index: /extensions/PwgCarbon_dft/js/jquery.hoverIntent.minified.js
===================================================================
--- /extensions/PwgCarbon_dft/js/jquery.hoverIntent.minified.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/jquery.hoverIntent.minified.js	(revision 18803)
@@ -0,0 +1,9 @@
+/**
+* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
+* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
+* 
+* @param  f  onMouseOver function || An object with configuration options
+* @param  g  onMouseOut function  || Nothing (use configuration options object)
+* @author    Brian Cherne <brian@cherne.net>
+*/
+(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
Index: /extensions/PwgCarbon_dft/js/lytebox.js
===================================================================
--- /extensions/PwgCarbon_dft/js/lytebox.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/lytebox.js	(revision 18803)
@@ -0,0 +1,1991 @@
+//**************************************************************************************************/
+//	Lytebox v5.5
+//
+//	 Author: Markus F. Hay
+//  Website: http://lytebox.com  (http://dolem.com/lytebox)
+//	   Date: January 26, 2012
+//	License: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/)
+//**************************************************************************************************/
+function Lytebox(bInitialize, aHttp) {
+	/*** Language Configuration ***/
+	
+		// English - configure for your language or customize as needed. 
+		// Note that these values will be seen by users when mousing over buttons.
+		this.label = new Object();
+		this.label['close']		= 'Close (Esc)';
+		this.label['prev'] 		= 'Precédent';	// Previous (left arrow)
+		this.label['next'] 		= 'Suivant'; 		// Next (right arrow)
+		this.label['play'] 		= 'Play (spacebar)';
+		this.label['pause'] 	= 'Pause (spacebar)';
+		this.label['print'] 	= 'Print';
+		this.label['image'] 	= 'Image %1 of %2';		// %1 = active image, %2 = total images
+		this.label['page'] 		= 'Page %1 of %2'; 		// %1 = active page, %2 = total pages
+		
+	
+	/*** Configure Lytebox ***/
+	
+		this.theme   			= (typeof lyteboxTheme !== 'undefined') && /^(black|grey|red|green|blue|gold|orange)$/i.test(lyteboxTheme) ? lyteboxTheme : 'grey'; // themes: black (default), grey, red, green, blue, gold, orange
+		this.roundedBorder		= false; 		// controls whether or not the viewer uses rounded corners (false = square corners)
+		this.innerBorder		= true;			// controls whether to show the inner border around image/html content
+		this.outerBorder		= false;			// controls whether to show the outer grey (or theme) border
+		this.resizeSpeed		= 6;			// controls the speed of the image resizing (1=slowest and 10=fastest)
+		this.maxOpacity			= 90;			// higher opacity = darker overlay, lower opacity = lighter overlay
+		this.borderSize			= 0;			// if you adjust the padding in the CSS, you will need to update this variable -- otherwise, leave this alone...
+
+		this.appendQS			= false;		// if true, will append request_from=lytebox to the QS. Use this with caution as it may cause pages to not render
+		this.fixedPosition		= this.isMobile() ? false : true;	// if true, viewer will remain in a fixed position, otherwise page scrolling will be allowed
+		this.inherit			= true;			// controls whether or not data-lyte-options are inherited from the first link in a grouped set
+		
+		this.__hideObjects		= true;			// controls whether or not objects (such as Flash, Java, etc.) should be hidden when the viewer opens
+		this.__autoResize		= true;			// controls whether or not images should be resized if larger than the browser window dimensions
+		this.__doAnimations		= true;			// controls ALL animation effects (i.e. overlay fade in/out, image resize transition, etc.)
+		this.__animateOverlay	= false;		// controls ONLY the overlay (background darkening) effects, and whether or not to fade in/out
+		this.__forceCloseClick 	= false;		// if true, users are forced to click on the "Close" button when viewing content
+		this.__refreshPage		= false;		// force page refresh after closing Lytebox
+		this.__showPrint		= false;		// true to show print button, false to hide
+		this.__navType			= 3;			// 1 = "Prev/Next" buttons on top left and left
+												// 2 = "Prev/Next" buttons in navigation bar
+												// 3 = navType_1 + navType_2 (show both)
+													
+		// These two options control the position of the title/counter and navigation buttons. Note that for mobile devices,
+		// the title is displayed on top and the navigation on the bottom. This is due to the view area being limited.
+		// You can customize this for non-mobile devices by changing the 2nd condition (: false) to true (: true)
+		this.__navTop			= this.isMobile() ? false : false; // true to show the buttons on the top right, false to show them on bottom right (default)
+		this.__titleTop			= this.isMobile() ? true : false;  // true to show the title on the top left, false to show it on the bottom left (default)
+	
+	
+	/*** Configure HTML Content / Media Viewer Options ***/
+	
+		this.__width			= '100%';		// default width of content viewer
+		this.__height			= '100%';		// default height of content viewer
+		this.__scrolling		= 'auto';		// controls whether or not scrolling is allowed in the content viewer -- options are auto|yes|no
+		this.__loopPlayback		= false;		// controls whether or not embedded media is looped (swf, avi, mov, etc.)
+		this.__autoPlay			= true;			// controls whether or not to autoplay embedded media
+		this.__autoEmbed		= true;			// controls whether or not to automatically embed media in an object tag
+	
+	
+	/*** Configure Slideshow Options ***/
+	
+		this.__slideInterval	= 4000;			// change value (milliseconds) to increase/decrease the time between "slides"
+		this.__showNavigation	= false;		// true to display Next/Prev buttons/text during slideshow, false to hide
+		this.__showClose		= true;			// true to display the Close button, false to hide
+		this.__showDetails		= true;			// true to display image details (caption, count), false to hide
+		this.__showPlayPause	= true;			// true to display pause/play buttons next to close button, false to hide
+		this.__autoEnd			= true;			// true to automatically close Lytebox after the last image is reached, false to keep open
+		this.__pauseOnNextClick	= false;		// true to pause the slideshow when the "Next" button is clicked
+		this.__pauseOnPrevClick = true;			// true to pause the slideshow when the "Prev" button is clicked
+		this.__loopSlideshow	= false;		// true to continuously loop through slides, false otherwise
+	
+	
+	/*** Configure Event Callbacks ***/
+	
+		this.__beforeStart		= '';			// function to call before the viewer starts
+		this.__afterStart		= '';			// function to call after the viewer starts
+		this.__beforeEnd		= '';			// function to call before the viewer ends (after close click)
+		this.__afterEnd			= '';			// function to call after the viewer ends
+	
+		
+	/*** Configure Lytetip (tooltips) Options ***/
+		this.__changeTipCursor 	= true; 		// true to change the cursor to 'help', false to leave default (inhereted)
+		this.__tipDecoration	= 'dotted';		// controls the text-decoration (underline) of the tip link (dotted|solid|none)
+		this.__tipStyle 		= 'classic';	// sets the default tip style if none is specified via data-lyte-options. Possible values are classic, info, help, warning, error
+		this.__tipRelative		= true;			// if true, tips will be positioned relative to the element. if false, tips will be absolutely positioned on the page.
+												// if you are having issues with tooltips not being properly positioned, then set this to false
+
+
+	this.navTypeHash = new Object();
+	this.navTypeHash['Hover_by_type_1'] 	= true;
+	this.navTypeHash['Display_by_type_1'] 	= false;
+	this.navTypeHash['Hover_by_type_2'] 	= false;
+	this.navTypeHash['Display_by_type_2']	= true;
+	this.navTypeHash['Hover_by_type_3'] 	= true;
+	this.navTypeHash['Display_by_type_3'] 	= true;
+	this.resizeWTimerArray		= new Array();
+	this.resizeWTimerCount		= 0;
+	this.resizeHTimerArray		= new Array();
+	this.resizeHTimerCount		= 0;
+	this.changeContentTimerArray= new Array();
+	this.changeContentTimerCount= 0;
+	this.overlayTimerArray		= new Array();
+	this.overlayTimerCount		= 0;
+	this.imageTimerArray		= new Array();
+	this.imageTimerCount		= 0;
+	this.timerIDArray			= new Array();
+	this.timerIDCount			= 0;
+	this.slideshowIDArray		= new Array();
+	this.slideshowIDCount		= 0;
+	this.imageArray	 = new Array();
+	this.slideArray	 = new Array();
+	this.frameArray	 = new Array();
+	this.contentNum = null;
+	this.aPageSize = new Array();
+	this.overlayLoaded = false;
+	this.checkFrame();
+	this.isSlideshow 	= false;
+	this.isLyteframe 	= false;
+	this.tipSet	 		= false;
+	this.ieVersion = this.ffVersion = this.chromeVersion = this.operaVersion = this.safariVersion = -1;
+	this.ie = this.ff = this.chrome = this.opera = this.safari = false;
+	this.setBrowserInfo();
+	this.classAttribute = (((this.ie && this.doc.compatMode == 'BackCompat') || (this.ie && this.ieVersion <= 7)) ? 'className' : 'class');
+	this.classAttribute = (this.ie && (document.documentMode == 8 || document.documentMode == 9)) ? 'class' : this.classAttribute;
+	this.isReady = false;
+	if (bInitialize) {
+		this.http = aHttp;
+		this.bodyOnscroll = document.body.onscroll;
+		if(this.resizeSpeed > 10) { this.resizeSpeed = 10; }
+		if(this.resizeSpeed < 1) { this.resizeSpeed = 1; }
+		var ie8Duration = 2;
+			var isWinXP = (navigator.userAgent.match(/windows nt 5.1/i) || navigator.userAgent.match(/windows nt 5.2/i) ? true : false);
+		this.resizeDuration = (11 - this.resizeSpeed) * (this.ie ? (this.ieVersion >= 9 ? 6 : (this.ieVersion == 8 ? (this.doc.compatMode == 'BackCompat' ? ie8Duration : ie8Duration - 1) : 3)) : 7);
+			this.resizeDuration = this.ff ? (11 - this.resizeSpeed) * (this.ffVersion < 6 ? 3 : (isWinXP ? 6 : 12)) : this.resizeDuration;
+		this.resizeDuration = this.chrome ? (11 - this.resizeSpeed) * 5 : this.resizeDuration;
+		this.resizeDuration = this.safari ? (11 - this.resizeSpeed) * 20 : this.resizeDuration;
+			this.resizeDuration = this.isMobile() ? (11 - this.resizeSpeed) * 2 : this.resizeDuration;
+		if (window.name != 'lbIframe') {
+			this.initialize();
+		}
+	} else {
+		this.http = new Array();
+		if (typeof $ == 'undefined') {
+			$ = function (id) {
+					if ($.cache[id] === undefined) {
+						$.cache[id] = document.getElementById(id) || false;
+					}
+					return $.cache[id];
+				};
+			$.cache = {};
+		}
+	}
+}
+Lytebox.prototype.setBrowserInfo = function() {
+	var ua = navigator.userAgent.toLowerCase();
+	this.chrome = ua.indexOf('chrome') > -1;
+	this.ff = ua.indexOf('firefox') > -1;
+	this.safari = !this.chrome && ua.indexOf('safari') > -1;
+	this.opera = ua.indexOf('opera') > -1;
+	this.ie = /*@cc_on!@*/false;
+	if (this.chrome) {
+		var re = new RegExp("chrome/([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null) {
+			this.chromeVersion = parseInt( RegExp.$1 );
+		}
+	}
+	if (this.ff) {
+		var re = new RegExp("firefox/([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null) {
+			this.ffVersion = parseInt( RegExp.$1 );
+		}
+	}
+	if (this.ie) {
+		var re = new RegExp("msie ([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null) {
+			this.ieVersion = parseInt( RegExp.$1 );
+		}
+	}
+	if (this.opera) {
+		var re = new RegExp("opera/([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null) {
+			this.operaVersion = parseInt( RegExp.$1 );
+		}
+	}
+	if (this.safari) {
+		var re = new RegExp("version/([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null) {
+			this.safariVersion = parseInt( RegExp.$1 );
+		}
+	}
+};
+Lytebox.prototype.initialize = function() {
+	this.updateLyteboxItems();
+	var oBody = this.doc.getElementsByTagName('body').item(0);
+	if (this.doc.$('lbOverlay')) { oBody.removeChild(this.doc.$('lbOverlay')); }
+	if (this.doc.$('lbMain')) {	oBody.removeChild(this.doc.$('lbMain')); }
+	if (this.doc.$('lbLauncher')) { oBody.removeChild(this.doc.$('lbLauncher')); }
+	var oLauncher = this.doc.createElement('a');
+		oLauncher.setAttribute('id','lbLauncher');
+		oLauncher.setAttribute(this.classAttribute, 'lytebox');
+		oLauncher.style.display = 'none';
+		oBody.appendChild(oLauncher);
+	var oOverlay = this.doc.createElement('div');
+		oOverlay.setAttribute('id','lbOverlay');
+		oOverlay.setAttribute(this.classAttribute, this.theme);
+		if (this.ie && (this.ieVersion <= 6 || (this.ieVersion <= 9 && this.doc.compatMode == 'BackCompat'))) {
+			oOverlay.style.position = 'absolute';
+		}
+		oOverlay.style.display = 'none';
+		oBody.appendChild(oOverlay);
+	var oLytebox = this.doc.createElement('div');
+		oLytebox.setAttribute('id','lbMain');
+		oLytebox.style.display = 'none';
+		oBody.appendChild(oLytebox);
+	var oOuterContainer = this.doc.createElement('div');
+		oOuterContainer.setAttribute('id','lbOuterContainer');
+		oOuterContainer.setAttribute(this.classAttribute, this.theme);
+		if (this.roundedBorder) {
+			oOuterContainer.style.MozBorderRadius = '8px';
+			oOuterContainer.style.borderRadius = '8px';
+		}
+		oLytebox.appendChild(oOuterContainer);
+	var oTopContainer = this.doc.createElement('div');
+		oTopContainer.setAttribute('id','lbTopContainer');
+		oTopContainer.setAttribute(this.classAttribute, this.theme);
+		if (this.roundedBorder) {
+			oTopContainer.style.MozBorderRadius = '8px';
+			oTopContainer.style.borderRadius = '8px';
+		}
+		oOuterContainer.appendChild(oTopContainer);
+	var oTopData = this.doc.createElement('div');
+		oTopData.setAttribute('id','lbTopData');
+		oTopData.setAttribute(this.classAttribute, this.theme);
+		oTopContainer.appendChild(oTopData);
+	var oTitleTop = this.doc.createElement('span');
+		oTitleTop.setAttribute('id','lbTitleTop');
+		oTopData.appendChild(oTitleTop);
+	var oNumTop = this.doc.createElement('span');
+		oNumTop.setAttribute('id','lbNumTop');
+		oTopData.appendChild(oNumTop);
+	var oTopNav = this.doc.createElement('div');
+		oTopNav.setAttribute('id','lbTopNav');
+		oTopContainer.appendChild(oTopNav);
+	var oCloseTop = this.doc.createElement('a');
+		oCloseTop.setAttribute('id','lbCloseTop');
+		oCloseTop.setAttribute('title', this.label['close']);
+		oCloseTop.setAttribute(this.classAttribute, this.theme);
+		oCloseTop.setAttribute('href','javascript:void(0)');
+		oTopNav.appendChild(oCloseTop);
+	var oPrintTop = this.doc.createElement('a');
+		oPrintTop.setAttribute('id','lbPrintTop')
+		oPrintTop.setAttribute('title', this.label['print']);
+		oPrintTop.setAttribute(this.classAttribute, this.theme);
+		oPrintTop.setAttribute('href','javascript:void(0)');
+		oTopNav.appendChild(oPrintTop);
+	var oNextTop = this.doc.createElement('a');
+		oNextTop.setAttribute('id','lbNextTop');
+		oNextTop.setAttribute('title', this.label['next']);
+		oNextTop.setAttribute(this.classAttribute, this.theme);
+		oNextTop.setAttribute('href','javascript:void(0)');
+		oTopNav.appendChild(oNextTop);
+	var oPauseTop = this.doc.createElement('a');
+		oPauseTop.setAttribute('id','lbPauseTop');
+		oPauseTop.setAttribute('title', this.label['pause']);
+		oPauseTop.setAttribute(this.classAttribute, this.theme);
+		oPauseTop.setAttribute('href','javascript:void(0)');
+		oPauseTop.style.display = 'none';
+		oTopNav.appendChild(oPauseTop);
+	var oPlayTop = this.doc.createElement('a');
+		oPlayTop.setAttribute('id','lbPlayTop');
+		oPlayTop.setAttribute('title', this.label['play']);
+		oPlayTop.setAttribute(this.classAttribute, this.theme);
+		oPlayTop.setAttribute('href','javascript:void(0)');
+		oPlayTop.style.display = 'none';
+		oTopNav.appendChild(oPlayTop);
+	var oPrevTop = this.doc.createElement('a');
+		oPrevTop.setAttribute('id','lbPrevTop');
+		oPrevTop.setAttribute('title', this.label['prev']);
+		oPrevTop.setAttribute(this.classAttribute, this.theme);
+		oPrevTop.setAttribute('href','javascript:void(0)');
+		oTopNav.appendChild(oPrevTop);
+	var oIframeContainer = this.doc.createElement('div');
+		oIframeContainer.setAttribute('id','lbIframeContainer');
+		oIframeContainer.style.display = 'none';
+		oOuterContainer.appendChild(oIframeContainer);
+	var oIframe = this.doc.createElement('iframe');
+		oIframe.setAttribute('id','lbIframe');
+		oIframe.setAttribute('name','lbIframe')
+		oIframe.setAttribute('frameBorder','0');
+		if (this.innerBorder) {
+			oIframe.setAttribute(this.classAttribute, this.theme);
+		}
+		oIframe.style.display = 'none';
+		oIframeContainer.appendChild(oIframe);
+	var oImageContainer = this.doc.createElement('div');
+		oImageContainer.setAttribute('id','lbImageContainer');
+		oOuterContainer.appendChild(oImageContainer);
+	var oLyteboxImage = this.doc.createElement('img');
+		oLyteboxImage.setAttribute('id','lbImage');
+		if (this.innerBorder) {
+			oLyteboxImage.setAttribute(this.classAttribute, this.theme);
+		}
+		oImageContainer.appendChild(oLyteboxImage);
+	var oLoading = this.doc.createElement('div');
+		oLoading.setAttribute('id','lbLoading');
+		oLoading.setAttribute(this.classAttribute, this.theme);
+		oOuterContainer.appendChild(oLoading);
+	var oBottomContainer = this.doc.createElement('div');
+		oBottomContainer.setAttribute('id','lbBottomContainer');
+		oBottomContainer.setAttribute(this.classAttribute, this.theme);
+		if (this.roundedBorder) {
+			oBottomContainer.style.MozBorderRadius = '8px';
+			oBottomContainer.style.borderRadius = '8px';
+		}
+		oOuterContainer.appendChild(oBottomContainer);
+	var oDetailsBottom = this.doc.createElement('div');
+		oDetailsBottom.setAttribute('id','lbBottomData');
+		oDetailsBottom.setAttribute(this.classAttribute, this.theme);
+		oBottomContainer.appendChild(oDetailsBottom);
+	var oTitleBottom = this.doc.createElement('span');
+		oTitleBottom.setAttribute('id','lbTitleBottom');
+		oDetailsBottom.appendChild(oTitleBottom);
+	var oNumBottom = this.doc.createElement('span');
+		oNumBottom.setAttribute('id','lbNumBottom');
+		oDetailsBottom.appendChild(oNumBottom);
+	var oDescBottom = this.doc.createElement('span');
+		oDescBottom.setAttribute('id','lbDescBottom');
+		oDetailsBottom.appendChild(oDescBottom);
+	var oHoverNav = this.doc.createElement('div');
+		oHoverNav.setAttribute('id','lbHoverNav');
+		oImageContainer.appendChild(oHoverNav);
+	var oBottomNav = this.doc.createElement('div');
+		oBottomNav.setAttribute('id','lbBottomNav');
+		oBottomContainer.appendChild(oBottomNav);
+	var oPrevHov = this.doc.createElement('a');
+		oPrevHov.setAttribute('id','lbPrevHov');
+		oPrevHov.setAttribute('title', this.label['prev']);
+		oPrevHov.setAttribute(this.classAttribute, this.theme);
+		oPrevHov.setAttribute('href','javascript:void(0)');
+		oHoverNav.appendChild(oPrevHov);
+	var oNextHov = this.doc.createElement('a');
+		oNextHov.setAttribute('id','lbNextHov');
+		oNextHov.setAttribute('title', this.label['next']);
+		oNextHov.setAttribute(this.classAttribute, this.theme);
+		oNextHov.setAttribute('href','javascript:void(0)');
+		oHoverNav.appendChild(oNextHov);
+	var oClose = this.doc.createElement('a');
+		oClose.setAttribute('id','lbClose');
+		oClose.setAttribute('title', this.label['close']);
+		oClose.setAttribute(this.classAttribute, this.theme);
+		oClose.setAttribute('href','javascript:void(0)');
+		oBottomNav.appendChild(oClose);
+	var oPrint = this.doc.createElement('a');
+		oPrint.setAttribute('id','lbPrint');
+		oPrint.setAttribute('title', this.label['print']);
+		oPrint.setAttribute(this.classAttribute, this.theme);
+		oPrint.setAttribute('href','javascript:void(0)');
+		oPrint.style.display = 'none';
+		oBottomNav.appendChild(oPrint);
+	var oNext = this.doc.createElement('a');
+		oNext.setAttribute('id','lbNext');
+		oNext.setAttribute('title', this.label['next']);
+		oNext.setAttribute(this.classAttribute, this.theme);
+		oNext.setAttribute('href','javascript:void(0)');
+		oBottomNav.appendChild(oNext);
+	var oPause = this.doc.createElement('a');
+		oPause.setAttribute('id','lbPause');
+		oPause.setAttribute('title', this.label['pause']);
+		oPause.setAttribute(this.classAttribute, this.theme);
+		oPause.setAttribute('href','javascript:void(0)');
+		oPause.style.display = 'none';
+		oBottomNav.appendChild(oPause);
+	var oPlay = this.doc.createElement('a');
+		oPlay.setAttribute('id','lbPlay');
+		oPlay.setAttribute('title', this.label['play']);
+		oPlay.setAttribute(this.classAttribute, this.theme);
+		oPlay.setAttribute('href','javascript:void(0)');
+		oPlay.style.display = 'none';
+		oBottomNav.appendChild(oPlay);
+	var oPrev = this.doc.createElement('a');
+		oPrev.setAttribute('id','lbPrev');
+		oPrev.setAttribute('title', this.label['prev']);
+		oPrev.setAttribute(this.classAttribute, this.theme);
+		oPrev.setAttribute('href','javascript:void(0)');
+		oBottomNav.appendChild(oPrev);
+	var iframes = (this.isFrame && window.parent.frames[window.name].document) ? window.parent.frames[window.name].document.getElementsByTagName('iframe') : document.getElementsByTagName('iframe');
+	for (var i = 0; i < iframes.length; i++) {
+		if (/youtube/i.test(iframes[i].src)) {
+			iframes[i].src += ((/\?/.test(iframes[i].src)) ? '&' : '?') + 'wmode=transparent';
+		}
+	}
+	this.isReady = true;
+};
+Lytebox.prototype.updateLyteboxItems = function() {
+	var anchors = (this.isFrame && window.parent.frames[window.name].document) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a');
+		anchors = (this.isFrame) ? anchors : document.getElementsByTagName('a');
+	var areas = (this.isFrame && window.parent.frames[window.name].document) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area');
+	var lyteLinks = this.combine(anchors, areas);
+	var myLink = relAttribute = revAttribute = classAttribute = dataOptions = dataTip = tipDecoration = tipStyle = tipImage = tipHtml = aSetting = sName = sValue = sExt = aUrl = null;
+	var bImage = bRelative = false;
+	for (var i = 0; i < lyteLinks.length; i++) {
+		myLink = lyteLinks[i];
+		relAttribute = String(myLink.getAttribute('rel'));
+		classAttribute = String(myLink.getAttribute(this.classAttribute));
+		if (myLink.getAttribute('href')) {
+			sType = classAttribute.match(/lytebox|lyteshow|lyteframe/i);
+			sType = this.isEmpty(sType) ? relAttribute.match(/lytebox|lyteshow|lyteframe/i) : sType;
+			dataOptions = String(myLink.getAttribute('data-lyte-options'));
+			dataOptions = this.isEmpty(dataOptions) ? String(myLink.getAttribute('rev')) : dataOptions;
+			aUrl = myLink.getAttribute('href').split('?');
+			sExt = aUrl[0].split('.').pop().toLowerCase();
+			bImage = (sExt == 'png' || sExt == 'jpg' || sExt == 'jpeg' || sExt == 'gif' || sExt == 'bmp');
+			if (sType && sType.length >= 1) {
+				if (this.isMobile() && /youtube/i.test(myLink.getAttribute('href'))) {
+					myLink.target = '_blank';
+				} else if (bImage && (dataOptions.match(/slide:true/i) || sType[0].toLowerCase() == 'lyteshow')) {
+					myLink.onclick = function () { $lb.start(this, true, false); return false; }
+				} else if (bImage) {
+					myLink.onclick = function () { $lb.start(this, false, false); return false; }
+				} else {
+					myLink.onclick = function () { $lb.start(this, false, true); return false; }
+				}
+			}
+			dataTip = String(myLink.getAttribute('data-tip'));
+			dataTip = this.isEmpty(dataTip) ? myLink.getAttribute('title') : dataTip;
+			if (classAttribute.toLowerCase().match('lytetip') && !this.isEmpty(dataTip) && !this.tipsSet) {
+				if (this.__changeTipCursor) { myLink.style.cursor = 'help'; }
+				tipDecoration = this.__tipDecoration;
+				tipStyle = this.__tipStyle;
+				bRelative = this.__tipRelative;
+				if (!this.isEmpty(dataOptions)) {
+					aOptions = dataOptions.split(' ');
+					for (var j = 0; j < aOptions.length; j++) {
+						aSetting = aOptions[j].split(':');
+						sName = (aSetting.length > 1 ? this.trim(aSetting[0]).toLowerCase() : '');
+						sValue = (aSetting.length > 1 ? this.trim(aSetting[1]) : '');
+						switch(sName) {
+							case 'tipstyle':
+								tipStyle = (/classic|info|help|warning|error/.test(sValue) ? sValue : tipStyle); break;
+							case 'changetipcursor':
+								myLink.style.cursor = (/true|false/.test(sValue) ? (sValue == 'true' ? 'help' : '') : myLink.style.cursor); break;
+							case 'tiprelative':
+								bRelative = (/true|false/.test(sValue) ? (sValue == 'true') : bRelative); break;
+							case 'tipdecoration':
+								tipDecoration = (/dotted|solid|none/.test(sValue) ? sValue : tipDecoration); break;
+						}
+					}
+				}
+				if (tipDecoration != 'dotted') {
+					myLink.style.borderBottom = (tipDecoration == 'solid' ? '1px solid' : 'none');
+				}
+				switch(tipStyle) {
+					case 'info': tipStyle = 'lbCustom lbInfo'; tipImage = 'lbTipImg lbInfoImg'; break;
+					case 'help': tipStyle = 'lbCustom lbHelp'; tipImage = 'lbTipImg lbHelpImg'; break;
+					case 'warning': tipStyle = 'lbCustom lbWarning'; tipImage = 'lbTipImg lbWarningImg'; break;
+					case 'error': tipStyle = 'lbCustom lbError'; tipImage = 'lbTipImg lbErrorImg'; break;
+					case 'classic': tipStyle = 'lbClassic'; tipImage = ''; break;
+					default: tipStyle = 'lbClassic'; tipImage = '';
+				}
+				if ((this.ie && this.ieVersion <= 7) || (this.ieVersion == 8 && this.doc.compatMode == 'BackCompat')) {
+					tipImage = '';
+					if (tipStyle != 'lbClassic' && !this.isEmpty(tipStyle)) {
+						tipStyle += ' lbIEFix';
+					}
+				}
+				var aLinkPos = this.findPos(myLink);
+				if ((this.ie && (this.ieVersion <= 6 || this.doc.compatMode == 'BackCompat')) || bRelative) {
+					myLink.style.position = 'relative';
+				}
+				tipHtml = myLink.innerHTML;
+				myLink.innerHTML = '';
+				if ((this.ie && this.ieVersion <= 6 && this.doc.compatMode != 'BackCompat') || bRelative) {
+					myLink.innerHTML = tipHtml + '<span class="' + tipStyle + '">' + (tipImage ? '<div class="' + tipImage + '"></div>' : '') + dataTip + '</span>';
+				} else {
+					myLink.innerHTML = tipHtml + '<span class="' + tipStyle + '" style="left:'+aLinkPos[0]+'px;top:'+(aLinkPos[1]+aLinkPos[2])+'px;">' + (tipImage ? '<div class="' + tipImage + '"></div>' : '') + dataTip + '</span>';
+				}
+				if (classAttribute.match(/lytebox|lyteshow|lyteframe/i) == null) {
+					myLink.setAttribute('title','');
+				}
+			}
+		}
+	}
+	this.tipsSet = true;
+};
+Lytebox.prototype.launch = function(args) {
+	var sUrl = this.isEmpty(args.url) ? '' : String(args.url);
+	var sOptions = this.isEmpty(args.options) ? '' : String(args.options);
+	var sTitle = this.isEmpty(args.title) ? '' : args.title;
+	var sDesc = this.isEmpty(args.description) ? '' : args.description;
+	var bSlideshow = /slide:true/i.test(sOptions);
+	if (this.isEmpty(sUrl)) {
+		return false;
+	}
+	if (!this.isReady) {
+		this.timerIDArray[this.timerIDCount++] = setTimeout("$lb.launch({ url: '" + sUrl + "', options: '" + sOptions + "', title: '" + sTitle + "', description: '" + sDesc + "' })", 100);
+		return;
+	} else {
+		for (var i = 0; i < this.timerIDCount; i++) { window.clearTimeout(this.timerIDArray[i]); }
+	}
+	var aUrl = sUrl.split('?');
+	var sExt = aUrl[0].split('.').pop().toLowerCase();
+	var bImage = (sExt == 'png' || sExt == 'jpg' || sExt == 'jpeg' || sExt == 'gif' || sExt == 'bmp');
+	var oLauncher = this.doc.$('lbLauncher');
+		oLauncher.setAttribute('href', sUrl);
+		oLauncher.setAttribute('data-lyte-options', sOptions);
+		oLauncher.setAttribute('data-title', sTitle);
+		oLauncher.setAttribute('data-description', sDesc);
+	this.updateLyteboxItems();
+	this.start(oLauncher, bSlideshow, (bImage ? false : true));
+};
+Lytebox.prototype.start = function(oLink, bSlideshow, bFrame) {
+	var dataOptions = String(oLink.getAttribute('data-lyte-options'));
+		dataOptions = this.isEmpty(dataOptions) ? String(oLink.getAttribute('rev')) : dataOptions;
+	this.setOptions(dataOptions);
+	this.isSlideshow = (bSlideshow ? true : false);
+	this.isLyteframe = (bFrame ? true : false);
+	this.isPaused=true;
+	if (!this.isEmpty(this.beforeStart)) {
+		var callback = window[this.beforeStart];
+		if (typeof callback === 'function') {
+			if (!callback(this.args)) { return; }
+		}
+	}
+	if (this.ie && this.ieVersion <= 6) { this.toggleSelects('hide'); }
+	if (this.hideObjects) { this.toggleObjects('hide'); }
+	if (this.isFrame && window.parent.frames[window.name].document) {
+		window.parent.$lb.printId = (this.isLyteframe ? 'lbIframe' : 'lbImage');
+	} else {
+		this.printId = (this.isLyteframe ? 'lbIframe' : 'lbImage');
+	}
+	this.aPageSize	= this.getPageSize();
+	var objOverlay	= this.doc.$('lbOverlay');
+	var objBody		= this.doc.getElementsByTagName("body").item(0);
+	objOverlay.style.height = this.aPageSize[1] + "px";
+	objOverlay.style.display = '';
+	this.fadeIn({ id: 'lbOverlay', opacity: (this.doAnimations && this.animateOverlay && (!this.ie || this.ieVersion >= 9) ? 0 : this.maxOpacity) });
+	var anchors = (this.isFrame && window.parent.frames[window.name].document) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a');
+		anchors = (this.isFrame) ? anchors : document.getElementsByTagName('a');
+	var areas = (this.isFrame && window.parent.frames[window.name].document) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area');
+	var lyteLinks = this.combine(anchors, areas);
+	var sType = sExt = aUrl = null;
+	this.frameArray = [];
+	this.frameNum = 0;
+	this.imageArray = [];
+	this.imageNum = 0;
+	this.slideArray = [];
+	this.slideNum = 0;
+	if (this.isEmpty(this.group)) {
+		dataOptions = String(oLink.getAttribute('data-lyte-options'));
+		dataOptions = this.isEmpty(dataOptions) ? String(oLink.getAttribute('rev')) : dataOptions;
+		if (this.isLyteframe) {			
+			this.frameArray.push(new Array(oLink.getAttribute('href'), (!this.isEmpty(oLink.getAttribute('data-title')) ? oLink.getAttribute('data-title') : oLink.getAttribute('title')), oLink.getAttribute('data-description'), dataOptions));
+		} else {
+			this.imageArray.push(new Array(oLink.getAttribute('href'), (!this.isEmpty(oLink.getAttribute('data-title')) ? oLink.getAttribute('data-title') : oLink.getAttribute('title')), oLink.getAttribute('data-description'), dataOptions));
+		}
+	} else {
+		for (var i = 0; i < lyteLinks.length; i++) {
+			var myLink = lyteLinks[i];
+			dataOptions = String(myLink.getAttribute('data-lyte-options'));
+			dataOptions = this.isEmpty(dataOptions) ? String(myLink.getAttribute('rev')) : dataOptions;
+			if (myLink.getAttribute('href') && dataOptions.toLowerCase().match('group:' + this.group)) {
+				sType = String(myLink.getAttribute(this.classAttribute)).match(/lytebox|lyteshow|lyteframe/i);
+				sType = this.isEmpty(sType) ? myLink.getAttribute('rel').match(/lytebox|lyteshow|lyteframe/i) : sType;
+				aUrl = myLink.getAttribute('href').split('?');
+				sExt = aUrl[0].split('.').pop().toLowerCase();
+				bImage = (sExt == 'png' || sExt == 'jpg' || sExt == 'jpeg' || sExt == 'gif' || sExt == 'bmp');
+				if (sType && sType.length >= 1) {
+					if (bImage && (dataOptions.match(/slide:true/i) || sType[0].toLowerCase() == 'lyteshow')) {
+						this.slideArray.push(new Array(myLink.getAttribute('href'), (!this.isEmpty(myLink.getAttribute('data-title')) ? myLink.getAttribute('data-title') : myLink.getAttribute('title')), myLink.getAttribute('data-description'), dataOptions));
+					} else if (bImage) {
+						this.imageArray.push(new Array(myLink.getAttribute('href'), (!this.isEmpty(myLink.getAttribute('data-title')) ? myLink.getAttribute('data-title') : myLink.getAttribute('title')), myLink.getAttribute('data-description'), dataOptions));
+					} else {
+						this.frameArray.push(new Array(myLink.getAttribute('href'), (!this.isEmpty(myLink.getAttribute('data-title')) ? myLink.getAttribute('data-title') : myLink.getAttribute('title')), myLink.getAttribute('data-description'), dataOptions));
+					}
+				}
+			}
+		}
+		if (this.isLyteframe) {
+			this.frameArray = this.removeDuplicates(this.frameArray);
+			while(this.frameArray[this.frameNum][0] != oLink.getAttribute('href')) { this.frameNum++; }
+		} else if (bSlideshow) {
+			this.slideArray = this.removeDuplicates(this.slideArray);
+			try {
+				while(this.slideArray[this.slideNum][0] != oLink.getAttribute('href')) { this.slideNum++; }
+			} catch(e) {
+			}
+		} else {
+			this.imageArray = this.removeDuplicates(this.imageArray);
+			while(this.imageArray[this.imageNum][0] != oLink.getAttribute('href')) { this.imageNum++; }
+		}
+	}
+	this.changeContent(this.isLyteframe ? this.frameNum : (this.isSlideshow ? this.slideNum : this.imageNum));
+};
+Lytebox.prototype.changeContent = function(iContentNum) {
+	this.contentNum = iContentNum;
+	if (!this.overlayLoaded) {
+		this.changeContentTimerArray[this.changeContentTimerCount++] = setTimeout("$lb.changeContent(" + this.contentNum + ")", 250);
+		return;
+	} else {
+		for (var i = 0; i < this.changeContentTimerCount; i++) { window.clearTimeout(this.changeContentTimerArray[i]); }
+	}
+	var sDataLyteOptions = (this.isLyteframe) ? this.frameArray[this.contentNum][3] : (this.isSlideshow ? this.slideArray[this.contentNum][3] : this.imageArray[this.contentNum][3]);
+	if (!this.inherit || /inherit:false/i.test(sDataLyteOptions)) {
+		this.setOptions(String(sDataLyteOptions));
+	} else {
+		var sDataLyteOptions1 = String((this.isLyteframe) ? this.frameArray[0][3] : (this.isSlideshow ? this.slideArray[0][3] : this.imageArray[0][3]));
+		if (this.isLyteframe) {
+			var sWidth = sHeight = null;
+			try { sWidth = sDataLyteOptions.match(/width:\d+(%|px|)/i)[0]; } catch(e) { }
+			try { sHeight = sDataLyteOptions.match(/height:\d+(%|px|)/i)[0]; } catch(e) { }
+			if (!this.isEmpty(sWidth)) {
+				sDataLyteOptions1 = sDataLyteOptions1.replace(/width:\d+(%|px|)/i, sWidth);
+			}
+			if (!this.isEmpty(sHeight)) {
+				sDataLyteOptions1 = sDataLyteOptions1.replace(/height:\d+(%|px|)/i, sHeight);
+			}
+		}
+		this.setOptions(sDataLyteOptions1);
+	}
+	var object = this.doc.$('lbMain');
+		object.style.display = '';
+	var iDivisor = 40;
+	if (this.autoResize && this.fixedPosition) {
+		if (this.ie && (this.ieVersion <= 7 || this.doc.compatMode == 'BackCompat')) {
+			object.style.top = (this.getPageScroll() + (this.aPageSize[3] / iDivisor)) + "px";
+			var ps = (this.aPageSize[3] / iDivisor);
+			this.scrollHandler = function(){
+				$lb.doc.$('lbMain').style.top = ($lb.getPageScroll() + ps) + 'px';
+			}
+			this.bodyOnscroll = document.body.onscroll;
+			if (window.addEventListener) {
+				window.addEventListener('scroll', this.scrollHandler);
+			} else if (window.attachEvent) {
+				window.attachEvent('onscroll', this.scrollHandler);
+			}
+			object.style.position = "absolute";
+		} else {
+			object.style.top = ((this.aPageSize[3] / iDivisor)) + "px";
+			object.style.position = "fixed";
+		}
+	} else {
+		object.style.position = "absolute";
+		object.style.top = (this.getPageScroll() + (this.aPageSize[3] / iDivisor)) + "px";
+	}
+	this.doc.$('lbOuterContainer').style.paddingBottom = '0';
+	if (!this.outerBorder) {
+		this.doc.$('lbOuterContainer').style.border = 'none';
+	} else {
+		this.doc.$('lbOuterContainer').setAttribute(this.classAttribute, this.theme);
+	}
+	if (this.forceCloseClick) {
+		this.doc.$('lbOverlay').onclick = '';
+	} else {
+		this.doc.$('lbOverlay').onclick = function() { $lb.end(); return false; }
+	}
+	this.doc.$('lbMain').onclick = function(e) {
+		var e = e;
+		if (!e) {
+			if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) {
+				e = window.parent.window.event;
+			} else {
+				e = window.event;
+			}
+		}
+		var id = (e.target ? e.target.id : e.srcElement.id);
+		if ((id == 'lbMain') && (!$lb.forceCloseClick)) { $lb.end(); return false; }
+	}
+	this.doc.$('lbPrintTop').onclick = this.doc.$('lbPrint').onclick = function() { $lb.printWindow(); return false; }
+	this.doc.$('lbCloseTop').onclick = this.doc.$('lbClose').onclick = function() { $lb.end(); return false; }
+	this.doc.$('lbPauseTop').onclick = function() { $lb.togglePlayPause("lbPauseTop", "lbPlayTop"); return false; }
+	this.doc.$('lbPause').onclick = function() { $lb.togglePlayPause("lbPause", "lbPlay"); return false; }
+	this.doc.$('lbPlayTop').onclick = function() { $lb.togglePlayPause("lbPlayTop", "lbPauseTop"); return false; }
+	this.doc.$('lbPlay').onclick = function() { $lb.togglePlayPause("lbPlay", "lbPause"); return false; }
+	if (this.isSlideshow && this.showPlayPause && this.isPaused) {
+		this.doc.$('lbPlay').style.display = '';
+		this.doc.$('lbPause').style.display = 'none';
+	}
+	if (this.isSlideshow) {
+		for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); }
+	}
+	if (!this.outerBorder) {
+		this.doc.$('lbOuterContainer').style.border = 'none';
+	} else {
+		this.doc.$('lbOuterContainer').setAttribute(this.classAttribute, this.theme);
+	}
+	var iDecreaseMargin = 10;
+	if (this.titleTop || this.navTop) {
+		this.doc.$('lbTopContainer').style.visibility = 'hidden';
+		iDecreaseMargin += this.doc.$('lbTopContainer').offsetHeight;
+	} else {
+		this.doc.$('lbTopContainer').style.display = 'none';
+	}
+	this.doc.$('lbBottomContainer').style.display = 'none';
+	this.doc.$('lbImage').style.display = 'none';
+	this.doc.$('lbIframe').style.display = 'none';
+	this.doc.$('lbPrevHov').style.display = 'none';
+	this.doc.$('lbNextHov').style.display =  'none';
+	this.doc.$('lbIframeContainer').style.display = 'none';
+	this.doc.$('lbLoading').style.marginTop = '-' + iDecreaseMargin + 'px';
+	this.doc.$('lbLoading').style.display = '';
+	if (this.isLyteframe) {
+		var iframe = $lb.doc.$('lbIframe');
+			iframe.src = 'about:blank';
+		var w = this.trim(this.width);
+		var h = this.trim(this.height);
+		if (/\%/.test(w)) {
+			var percent = parseInt(w);
+			w = parseInt((this.aPageSize[2]-50)*percent/100);
+			w = w+'px';
+		}
+		if (/\%/.test(h)) {
+			var percent = parseInt(h);
+			h = parseInt((this.aPageSize[3]-150)*percent/100);
+			h = h+'px';
+		}
+		if (this.autoResize) {
+			var x = this.aPageSize[2] - 50;
+			var y = this.aPageSize[3] - 150;
+			w = (parseInt(w) > x ? x : w) + 'px';
+			h = (parseInt(h) > y ? y : h) + 'px';
+		}
+		iframe.height = this.height = h;
+		iframe.width = this.width = w;
+		iframe.scrolling = this.scrolling;
+		var oDoc = iframe.contentWindow || iframe.contentDocument;
+		try {
+			if (oDoc.document) {
+				oDoc = oDoc.document;
+			}
+			oDoc.body.style.margin = 0;
+			oDoc.body.style.padding = 0;
+			if (this.ie && this.ieVersion <= 8) {
+				oDoc.body.scroll = this.scrolling;
+				oDoc.body.overflow = this.scrolling = 'no' ? 'hidden' : 'auto';
+			}
+		} catch(e) { }
+		this.resizeContainer(parseInt(this.width), parseInt(this.height));
+	} else {
+		this.imgPreloader = new Image();
+		this.imgPreloader.onload = function() {
+			var imageWidth = $lb.imgPreloader.width;
+			var imageHeight = $lb.imgPreloader.height;
+			if ($lb.autoResize) {
+				var x = $lb.aPageSize[2] - 50;
+				var y = $lb.aPageSize[3] - 150;
+				if (imageWidth > x) {
+					imageHeight = Math.round(imageHeight * (x / imageWidth));
+					imageWidth = x; 
+					if (imageHeight > y) { 
+						imageWidth = Math.round(imageWidth * (y / imageHeight));
+						imageHeight = y; 
+					}
+				} else if (imageHeight > y) { 
+					imageWidth = Math.round(imageWidth * (y / imageHeight));
+					imageHeight = y; 
+					if (imageWidth > x) {
+						imageHeight = Math.round(imageHeight * (x / imageWidth));
+						imageWidth = x;
+					}
+				}
+			}
+			var lbImage = $lb.doc.$('lbImage');
+			lbImage.src = $lb.imgPreloader.src;
+			lbImage.width = imageWidth;
+			lbImage.height = imageHeight;
+			$lb.resizeContainer(imageWidth, imageHeight);
+			$lb.imgPreloader.onload = function() {};
+		}
+		this.imgPreloader.src = (this.isSlideshow ? this.slideArray[this.contentNum][0] : this.imageArray[this.contentNum][0]);
+	}
+};
+Lytebox.prototype.resizeContainer = function(iWidth, iHeight) {
+	this.resizeWidth = iWidth;
+	this.resizeHeight = iHeight;
+	this.wCur = this.doc.$('lbOuterContainer').offsetWidth;
+	this.hCur = this.doc.$('lbOuterContainer').offsetHeight;
+	this.xScale = ((this.resizeWidth  + (this.borderSize * 2)) / this.wCur) * 100;
+	this.yScale = ((this.resizeHeight  + (this.borderSize * 2)) / this.hCur) * 100;
+	var wDiff = (this.wCur - this.borderSize * 2) - this.resizeWidth;
+	var hDiff = (this.hCur - this.borderSize * 2) - this.resizeHeight;
+	this.wDone = (wDiff == 0);
+	if (!(hDiff == 0)) {
+		this.hDone = false;
+		this.resizeH('lbOuterContainer', this.hCur, this.resizeHeight + this.borderSize * 2, this.getPixelRate(this.hCur, this.resizeHeight));
+	} else {
+		this.hDone = true;
+		if (!this.wDone) {
+			this.resizeW('lbOuterContainer', this.wCur, this.resizeWidth + this.borderSize * 2, this.getPixelRate(this.wCur, this.resizeWidth));
+		}
+	}
+	if ((hDiff == 0) && (wDiff == 0)) {
+		if (this.ie){ this.pause(250); } else { this.pause(100); } 
+	}
+	this.doc.$('lbPrevHov').style.height = this.resizeHeight + "px";
+	this.doc.$('lbNextHov').style.height = this.resizeHeight + "px";
+	if (this.hDone && this.wDone) {
+		if (this.isLyteframe) {
+			this.loadContent();
+		} else {
+			this.showContent();
+		}
+	}
+};
+Lytebox.prototype.loadContent = function() {
+	try {
+		var iframe = this.doc.$('lbIframe');
+		var uri = this.frameArray[this.contentNum][0];
+		if (!this.inline && this.appendQS) {
+			uri += ((/\?/.test(uri)) ? '&' : '?') + 'request_from=lytebox';
+		}
+		if (this.autoPlay && /youtube/i.test(uri)) {
+			uri += ((/\?/.test(uri)) ? '&' : '?') + 'autoplay=1';
+		}
+			if (!this.autoEmbed || (this.ff && (uri.match(/.pdf|.mov|.wmv/i)))) {
+			this.frameSource = uri;
+			this.showContent();
+			return;
+		}
+		if (this.ie) {
+			iframe.onreadystatechange = function() {
+				if ($lb.doc.$('lbIframe').readyState == "complete") {
+					$lb.showContent();
+					$lb.doc.$('lbIframe').onreadystatechange = null;
+				}
+			};
+		} else {
+			iframe.onload = function() {
+				$lb.showContent();
+				$lb.doc.$('lbIframe').onload = null;
+			};
+		}
+		if (this.inline || (uri.match(/.mov|.avi|.wmv|.mpg|.mpeg|.swf/i))) {
+			iframe.src = 'about:blank';
+			this.frameSource = '';
+			var sHtml = (this.inline) ? this.doc.$(uri.substr(uri.indexOf('#') + 1, uri.length)).innerHTML : this.buildObject(parseInt(this.width), parseInt(this.height), uri);
+			var oDoc = iframe.contentWindow || iframe.contentDocument;
+			if (oDoc.document) {
+				oDoc = oDoc.document;
+			}
+			oDoc.open();
+			oDoc.write(sHtml);
+			oDoc.close();
+			oDoc.body.style.margin = 0;
+			oDoc.body.style.padding = 0;
+			if (!this.inline) {
+				oDoc.body.style.backgroundColor = '#fff';
+				oDoc.body.style.fontFamily = 'Verdana, Helvetica, sans-serif';
+				oDoc.body.style.fontSize = '0.9em';
+			}
+			this.frameSource = '';
+		} else {
+			this.frameSource = uri;
+			iframe.src = uri;
+		}
+	} catch(e) { }
+};
+Lytebox.prototype.showContent = function() {
+	if (this.isSlideshow) {
+		if(this.contentNum == (this.slideArray.length - 1)) {
+			if (this.loopSlideshow) {
+				this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("$lb.changeContent(0)", this.slideInterval);
+			} else if (this.autoEnd) {
+				this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("$lb.end('slideshow')", this.slideInterval);
+			}
+		} else {
+			if (!this.isPaused) {
+				this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("$lb.changeContent("+(this.contentNum+1)+")", this.slideInterval);
+			}
+		}
+		this.doc.$('lbHoverNav').style.display = (this.ieVersion != 6 && this.showNavigation && this.navTypeHash['Hover_by_type_' + this.navType] ? '' : 'none');
+		this.doc.$('lbCloseTop').style.display = (this.showClose && this.navTop ? '' : 'none');
+		this.doc.$('lbClose').style.display = (this.showClose && !this.navTop ? '' : 'none');
+		this.doc.$('lbBottomData').style.display = (this.showDetails ? '' : 'none');
+		this.doc.$('lbPauseTop').style.display = (this.showPlayPause && this.navTop ? (!this.isPaused ? '' : 'none') : 'none');
+		this.doc.$('lbPause').style.display = (this.showPlayPause && !this.navTop ? (!this.isPaused ? '' : 'none') : 'none');
+		this.doc.$('lbPlayTop').style.display = (this.showPlayPause && this.navTop ? (!this.isPaused ? 'none' : '') : 'none');
+		this.doc.$('lbPlay').style.display = (this.showPlayPause && !this.navTop ? (!this.isPaused ? 'none' : '') : 'none');
+		this.doc.$('lbPrevTop').style.display = (this.navTop && this.showNavigation && this.navTypeHash['Display_by_type_' + this.navType] ? '' : 'none');
+		this.doc.$('lbPrev').style.display = (!this.navTop && this.showNavigation && this.navTypeHash['Display_by_type_' + this.navType] ? '' : 'none');
+		this.doc.$('lbNextTop').style.display = (this.navTop && this.showNavigation && this.navTypeHash['Display_by_type_' + this.navType] ? '' : 'none');
+		this.doc.$('lbNext').style.display = (!this.navTop && this.showNavigation && this.navTypeHash['Display_by_type_' + this.navType] ? '' : 'none');
+	} else {
+		this.doc.$('lbHoverNav').style.display = (this.ieVersion != 6 && this.navTypeHash['Hover_by_type_' + this.navType] && !this.isLyteframe ? '' : 'none');
+		if ((this.navTypeHash['Display_by_type_' + this.navType] && !this.isLyteframe && this.imageArray.length > 1) || (this.frameArray.length > 1 && this.isLyteframe)) {
+			this.doc.$('lbPrevTop').style.display = (this.navTop ? '' : 'none');
+			this.doc.$('lbPrev').style.display = (!this.navTop ? '' : 'none');
+			this.doc.$('lbNextTop').style.display = (this.navTop ? '' : 'none');
+			this.doc.$('lbNext').style.display = (!this.navTop ? '' : 'none');
+		} else {
+			this.doc.$('lbPrevTop').style.display = 'none';
+			this.doc.$('lbPrev').style.display = 'none';
+			this.doc.$('lbNextTop').style.display = 'none';
+			this.doc.$('lbNext').style.display = 'none';
+		}
+		this.doc.$('lbCloseTop').style.display = (this.navTop ? '' : 'none');
+		this.doc.$('lbClose').style.display = (!this.navTop ? '' : 'none');				
+		this.doc.$('lbBottomData').style.display = '';
+		this.doc.$('lbPauseTop').style.display = 'none';
+		this.doc.$('lbPause').style.display = 'none';
+		this.doc.$('lbPlayTop').style.display = 'none';
+		this.doc.$('lbPlay').style.display = 'none';
+	}
+	this.doc.$('lbPrintTop').style.display = (this.showPrint && this.navTop ? '' : 'none');
+	this.doc.$('lbPrint').style.display = (this.showPrint && !this.navTop ? '' : 'none');
+	this.updateDetails();
+	this.doc.$('lbLoading').style.display = 'none';
+	this.doc.$('lbImageContainer').style.display = (this.isLyteframe ? 'none' : '');
+	this.doc.$('lbIframeContainer').style.display = (this.isLyteframe ? '' : 'none');
+	if (this.isLyteframe) {
+		if (!this.isEmpty(this.frameSource)) {
+			this.doc.$('lbIframe').src = this.frameSource;
+		}
+		this.doc.$('lbIframe').style.display = '';
+		this.fadeIn({ id: 'lbIframe', opacity: (this.doAnimations && (!this.ie || this.ieVersion >= 9) ? 0 : 100) });
+	} else {
+		this.doc.$('lbImage').style.display = '';
+		this.fadeIn({ id: 'lbImage', opacity: (this.doAnimations && (!this.ie || this.ieVersion >= 9) ? 0 : 100) });
+		this.preloadNeighborImages();
+	}
+	if (!this.isEmpty(this.afterStart)) {
+		var callback = window[this.afterStart];
+		if (typeof callback === 'function') {
+			callback(this.args);
+		}
+	}
+};
+Lytebox.prototype.updateDetails = function() {
+	var sTitle = (this.isSlideshow ? this.slideArray[this.contentNum][1] : (this.isLyteframe ? this.frameArray[this.contentNum][1] : this.imageArray[this.contentNum][1]));
+	var sDesc  = (this.isSlideshow ? this.slideArray[this.contentNum][2] : (this.isLyteframe ? this.frameArray[this.contentNum][2] : this.imageArray[this.contentNum][2]));
+	if (this.ie && this.ieVersion <= 7 || (this.ieVersion >= 8 && this.doc.compatMode == 'BackCompat')) {
+		this.doc.$(this.titleTop ? 'lbTitleBottom' : 'lbTitleTop').style.display = 'none';
+		this.doc.$(this.titleTop ? 'lbTitleTop' : 'lbTitleBottom').style.display = (this.isEmpty(sTitle) ? 'none' : 'block');
+	}
+	this.doc.$('lbDescBottom').style.display = (this.isEmpty(sDesc) ? 'none' : '');
+	this.doc.$(this.titleTop ? 'lbTitleTop' : 'lbTitleBottom').innerHTML = (this.isEmpty(sTitle) ? '' : sTitle);
+	this.doc.$(this.titleTop ? 'lbTitleBottom' : 'lbTitleTop').innerHTML = '';
+	this.doc.$(this.titleTop ? 'lbNumBottom' : 'lbNumTop').innerHTML = '';
+	this.updateNav();
+	if (this.titleTop || this.navTop) {
+		this.doc.$('lbTopContainer').style.display = 'block';
+		this.doc.$('lbTopContainer').style.visibility = 'visible';
+	} else {
+		this.doc.$('lbTopContainer').style.display = 'none';
+	}
+	var object = (this.titleTop ? this.doc.$('lbNumTop') : this.doc.$('lbNumBottom'));
+	if (this.isSlideshow && this.slideArray.length > 1) {
+		object.innerHTML = this.label['image'].replace('%1', this.contentNum + 1).replace('%2', this.slideArray.length);
+	} else if (this.imageArray.length > 1 && !this.isLyteframe) {
+		object.innerHTML = this.label['image'].replace('%1', this.contentNum + 1).replace('%2', this.imageArray.length);
+	} else if (this.frameArray.length > 1 && this.isLyteframe) {
+		object.innerHTML = this.label['page'].replace('%1', this.contentNum + 1).replace('%2', this.frameArray.length);
+	} else {
+		object.innerHTML = '';
+	}
+	var bAddSpacer = !(this.titleTop || (this.isEmpty(sTitle) && this.isEmpty(object.innerHTML)));
+	this.doc.$('lbDescBottom').innerHTML = (this.isEmpty(sDesc) ? '' : (bAddSpacer ? '<br style="line-height:0.6em;" />' : '') + sDesc);
+	var iNavWidth = 0;
+	if (this.ie && this.ieVersion <= 7 || (this.ieVersion >= 8 && this.doc.compatMode == 'BackCompat')) {
+		iNavWidth = 39 + (this.showPrint ? 39 : 0) + (this.isSlideshow && this.showPlayPause ? 39 : 0);
+		if ((this.isSlideshow && this.slideArray.length > 1 && this.showNavigation && this.navType != 1) ||
+			(this.frameArray.length > 1 && this.isLyteframe) ||
+			(this.imageArray.length > 1 && !this.isLyteframe && this.navType != 1)) {
+				iNavWidth += 39*2;
+		}
+	}
+	this.doc.$('lbBottomContainer').style.display = (!(this.titleTop && this.navTop) || !this.isEmpty(sDesc) ? 'block' : 'none');
+	if (this.titleTop && this.navTop) {
+		if (iNavWidth > 0) {
+			this.doc.$('lbTopNav').style.width = iNavWidth + 'px';
+		}
+		this.doc.$('lbTopData').style.width = (this.doc.$('lbTopContainer').offsetWidth - this.doc.$('lbTopNav').offsetWidth - 15) + 'px';
+		if (!this.isEmpty(sDesc)) {
+			this.doc.$('lbDescBottom').style.width = (this.doc.$('lbBottomContainer').offsetWidth - 15) + 'px';
+		}
+	} else if ((!this.titleTop || !this.isEmpty(sDesc)) && !this.navTop) {
+		if (iNavWidth > 0) {
+			this.doc.$('lbBottomNav').style.width = iNavWidth + 'px';
+		}
+		this.doc.$('lbBottomData').style.width = (this.doc.$('lbBottomContainer').offsetWidth - this.doc.$('lbBottomNav').offsetWidth - 15) + 'px';
+		this.doc.$('lbDescBottom').style.width = this.doc.$('lbBottomData').style.width;
+	}
+	this.fixBottomPadding();
+	this.aPageSize = this.getPageSize();
+	var iMainTop = parseInt(this.doc.$('lbMain').style.top);
+	if ((this.ie && this.ieVersion <= 7) || (this.ieVersion >= 8 && this.doc.compatMode == 'BackCompat')) {
+		iMainTop = (this.ie ? parseInt(this.doc.$('lbMain').style.top) - this.getPageScroll() : parseInt(this.doc.$('lbMain').style.top));
+	}
+	var iOverlap = (this.doc.$('lbOuterContainer').offsetHeight + iMainTop) - this.aPageSize[3];
+	var iDivisor = 40;
+	if (iOverlap > 0 && this.autoResize && this.fixedPosition) {
+		if (this.ie && (this.ieVersion <= 7 || this.doc.compatMode == 'BackCompat')) {
+			document.body.onscroll = this.bodyOnscroll;
+			if (window.removeEventListener) {
+				window.removeEventListener('scroll', this.scrollHandler);
+			} else if (window.detachEvent) {
+				window.detachEvent('onscroll', this.scrollHandler);
+			}
+		}
+		this.doc.$('lbMain').style.position = "absolute";
+		this.doc.$('lbMain').style.top = (this.getPageScroll() + (this.aPageSize[3] / iDivisor)) + "px";
+	}
+};
+Lytebox.prototype.updateNav = function() {
+	if (this.isSlideshow) {
+		if (this.contentNum != 0) {
+			if (this.navTypeHash['Display_by_type_' + this.navType] && this.showNavigation) {
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme);
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').style.display = '';
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() {
+					if ($lb.pauseOnPrevClick) { $lb.togglePlayPause($lb.navTop ? 'lbPauseTop' : 'lbPause', $lb.navTop ? 'lbPlayTop' : 'lbPlay'); }
+					$lb.changeContent($lb.contentNum - 1); return false;
+				}
+			}
+			if (this.navTypeHash['Hover_by_type_' + this.navType]) {
+				var object = this.doc.$('lbPrevHov');
+				object.style.display = '';
+				object.onclick = function() {
+					if ($lb.pauseOnPrevClick) { $lb.togglePlayPause($lb.navTop ? 'lbPauseTop' : 'lbPause', $lb.navTop ? 'lbPlayTop' : 'lbPlay'); }
+					$lb.changeContent($lb.contentNum - 1); return false;
+				}
+			}
+		} else {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) {
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme + 'Off');
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() { return false; }
+			}
+		}
+		if (this.contentNum != (this.slideArray.length - 1) && this.showNavigation) {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) {
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme);
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').style.display = '';
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() {
+					if ($lb.pauseOnNextClick) { $lb.togglePlayPause($lb.navTop ? 'lbPauseTop' : 'lbPause', $lb.navTop ? 'lbPlayTop' : 'lbPlay'); }
+					$lb.changeContent($lb.contentNum + 1); return false;
+				}
+			}
+			if (this.navTypeHash['Hover_by_type_' + this.navType]) {
+				var object = this.doc.$('lbNextHov');
+				object.style.display = '';
+				object.onclick = function() {
+					if ($lb.pauseOnNextClick) { $lb.togglePlayPause($lb.navTop ? 'lbPauseTop' : 'lbPause', $lb.navTop ? 'lbPlayTop' : 'lbPlay'); }
+					$lb.changeContent($lb.contentNum + 1); return false;
+				}
+			}
+		} else {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) { 
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme + 'Off');
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() { return false; }
+			}
+		}
+	} else if (this.isLyteframe) {
+		if(this.contentNum != 0) {
+			this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme);
+			this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').style.display = '';
+			this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() {
+				$lb.changeContent($lb.contentNum - 1); return false;
+			}
+		} else {
+			this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme + 'Off');
+			this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() { return false; }
+		}
+		if(this.contentNum != (this.frameArray.length - 1)) {
+			this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme);
+			this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').style.display = '';
+			this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() {
+				$lb.changeContent($lb.contentNum + 1); return false;
+			}
+		} else {
+			this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme + 'Off');
+			this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() { return false; }
+		}
+	} else {
+		if(this.contentNum != 0) {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) {
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme);
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').style.display = '';
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() {
+					$lb.changeContent($lb.contentNum - 1); return false;
+				}
+			}
+			if (this.navTypeHash['Hover_by_type_' + this.navType]) {
+				var object2 = this.doc.$('lbPrevHov');
+				object2.style.display = '';
+				object2.onclick = function() {
+					$lb.changeContent($lb.contentNum - 1); return false;
+				}
+			}
+		} else {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) {
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').setAttribute(this.classAttribute, this.theme + 'Off');
+				this.doc.$(this.navTop ? 'lbPrevTop' : 'lbPrev').onclick = function() { return false; }
+			}
+		}
+		if(this.contentNum != (this.imageArray.length - 1)) {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) {
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme);
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').style.display = '';
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() {
+					$lb.changeContent($lb.contentNum + 1); return false;
+				}
+			}
+			if (this.navTypeHash['Hover_by_type_' + this.navType]) {
+				var object2 = this.doc.$('lbNextHov');
+				object2.style.display = '';
+				object2.onclick = function() {
+					$lb.changeContent($lb.contentNum + 1); return false;
+				}
+			}
+		} else {
+			if (this.navTypeHash['Display_by_type_' + this.navType]) { 
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').setAttribute(this.classAttribute, this.theme + 'Off');
+				this.doc.$(this.navTop ? 'lbNextTop' : 'lbNext').onclick = function() { return false; }
+			}
+		}
+	}
+	this.enableKeyboardNav();
+};
+Lytebox.prototype.fixBottomPadding = function() {
+	if (!((this.ieVersion == 7 || this.ieVersion == 8 || this.ieVersion == 9) && this.doc.compatMode == 'BackCompat') && this.ieVersion != 6) {
+		var titleHeight = this.doc.$('lbTopContainer').offsetHeight + 5;
+		var offsetHeight = (titleHeight == 5 ? 0 : titleHeight) + this.doc.$('lbBottomContainer').offsetHeight;
+		this.doc.$('lbOuterContainer').style.paddingBottom = (offsetHeight + 5) + 'px';
+	}
+};
+Lytebox.prototype.enableKeyboardNav = function() { document.onkeydown = this.keyboardAction; };
+Lytebox.prototype.disableKeyboardNav = function() { document.onkeydown = ''; };
+Lytebox.prototype.keyboardAction = function(e) {
+	var keycode = key = escape = null;
+	keycode	= (e == null) ? event.keyCode : e.which;
+	key		= String.fromCharCode(keycode).toLowerCase();
+	escape  = (e == null) ? 27 : e.DOM_VK_ESCAPE;
+	if ((key == 'x') || (key == 'c') || (keycode == escape || keycode == 27)) {
+		parent.$lb.end();
+	} else if (keycode == 32 && $lb.isSlideshow && $lb.showPlayPause) {
+		if ($lb.isPaused) {
+			$lb.togglePlayPause($lb.navTop ? 'lbPlayTop' : 'lbPlay', $lb.navTop ? 'lbPauseTop' : 'lbPause');
+		} else {
+			$lb.togglePlayPause($lb.navTop ? 'lbPauseTop' : 'lbPause', $lb.navTop ? 'lbPlayTop' : 'lbPlay');
+		}
+		return false;
+	} else if (key == 'p' || keycode == 37) {
+		if ($lb.isSlideshow) {
+			if($lb.contentNum != 0) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum - 1);
+			}
+		} else if ($lb.isLyteframe) {
+			if($lb.contentNum != 0) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum - 1);
+			}
+		} else {
+			if($lb.contentNum != 0) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum - 1);
+			}
+		}
+	} else if (key == 'n' || keycode == 39) {
+		if ($lb.isSlideshow) {
+			if($lb.contentNum != ($lb.slideArray.length - 1)) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum + 1);
+			}
+		} else if ($lb.isLyteframe) {
+			if($lb.contentNum != ($lb.frameArray.length - 1)) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum + 1);
+			}
+		} else {
+			if($lb.contentNum != ($lb.imageArray.length - 1)) {
+				$lb.disableKeyboardNav();
+				$lb.changeContent($lb.contentNum + 1);
+			}
+		}
+	}
+};
+Lytebox.prototype.preloadNeighborImages = function() {
+	if (this.isSlideshow) {
+		if ((this.slideArray.length - 1) > this.contentNum) {
+			var preloadNextImage = new Image();
+				preloadNextImage.src = this.slideArray[this.contentNum + 1][0];
+		}
+		if (this.contentNum > 0) {
+			var preloadPrevImage = new Image();
+				preloadPrevImage.src = this.slideArray[this.contentNum - 1][0];
+		}
+	} else {
+		if ((this.imageArray.length - 1) > this.contentNum) {
+			var preloadNextImage = new Image();
+				preloadNextImage.src = this.imageArray[this.contentNum + 1][0];
+		}
+		if (this.contentNum > 0) {
+			var preloadPrevImage = new Image();
+				preloadPrevImage.src = this.imageArray[this.contentNum - 1][0];
+		}
+	}
+};
+Lytebox.prototype.togglePlayPause = function(sHideId, sShowId) {
+	if (this.isSlideshow && (sHideId == 'lbPauseTop' || sHideId == 'lbPause')) {
+		for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); }
+	}
+	this.doc.$(sHideId).style.display = 'none';
+	this.doc.$(sShowId).style.display = '';
+	if (sHideId == 'lbPlayTop' || sHideId == 'lbPlay') {
+		this.isPaused = false;
+		if (this.contentNum == (this.slideArray.length - 1)) {
+			if (this.loopSlideshow) {
+				this.changeContent(0);
+			} else if (this.autoEnd) {
+				this.end();
+			}
+		} else {
+			this.changeContent(this.contentNum + 1);
+		}
+	} else {
+		this.isPaused = true;
+	}
+};
+Lytebox.prototype.end = function(sCaller) {
+	var closeClick = (sCaller == 'slideshow' ? false : true);
+	if (this.isSlideshow && this.isPaused && !closeClick) { return; }
+	if (!this.isEmpty(this.beforeEnd)) {
+		var callback = window[this.beforeEnd];
+		if (typeof callback === 'function') {
+			if (!callback(this.args)) { return; }
+		}
+	}
+	this.disableKeyboardNav();
+	document.body.onscroll = this.bodyOnscroll;
+	if (this.refreshPage) {
+		var uri_href = top.location.href;
+		var reg=/\#.*$/g;
+		uri_href=uri_href.replace(reg, "");
+		top.location.href = uri_href;
+		return;
+	}
+	this.doc.$('lbMain').style.display = 'none';
+	this.fadeOut({ id: 'lbOverlay', opacity: (this.doAnimations && this.animateOverlay && (!this.ie || this.ieVersion >= 9) ? this.maxOpacity : 0), speed: 5, display: 'none' });
+	this.toggleSelects('visible');
+	if (this.hideObjects) { this.toggleObjects('visible'); }
+	this.doc.$('lbOuterContainer').style.width = '200px';
+	this.doc.$('lbOuterContainer').style.height = '200px';
+	if (this.inline && this.safari) {
+		var iframe = this.doc.$('lbIframe');
+		var oDoc = iframe.contentWindow || iframe.contentDocument;
+		if (oDoc.document) {
+			oDoc = oDoc.document;
+		}
+		oDoc.open();
+		oDoc.write('<html><head></head><body></body></html>');
+		oDoc.close();
+	}
+	if (this.isSlideshow) {
+		for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); }
+		this.isPaused = false;
+	}
+	if (!this.isEmpty(this.afterEnd)) {
+		var callback = window[this.afterEnd];
+		if (typeof callback === 'function') {
+			callback(this.args);
+		}
+	}
+};
+Lytebox.prototype.checkFrame = function() {
+	if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0) && window.name != 'lbIframe') {
+		this.isFrame = true;
+		this.doc = parent.document;
+	} else {
+		this.isFrame = false;
+		this.doc = document;
+	}
+	this.doc.$ = this.doc.getElementById;
+};
+Lytebox.prototype.getPixelRate = function(iCurrent, iDim) {
+	var diff = (iDim > iCurrent) ? iDim - iCurrent : iCurrent - iDim;
+	if (diff >= 0 && diff <= 100) { return (100 / this.resizeDuration); }
+	if (diff > 100 && diff <= 200) { return (150 / this.resizeDuration); }
+	if (diff > 200 && diff <= 300) { return (200 / this.resizeDuration); }
+	if (diff > 300 && diff <= 400) { return (250 / this.resizeDuration); }
+	if (diff > 400 && diff <= 500) { return (300 / this.resizeDuration); }
+	if (diff > 500 && diff <= 600) { return (350 / this.resizeDuration); }
+	if (diff > 600 && diff <= 700) { return (400 / this.resizeDuration); }
+	if (diff > 700) { return (450 / this.resizeDuration); }
+};
+Lytebox.prototype.fadeIn = function(args) {
+	var sId = this.isEmpty(args.id) ? '' : args.id;
+	var iSpeed = (this.isEmpty(args.speed) ? 5 : (parseInt(args.speed) > 5 ? 5 : parseInt(args.speed)));
+		iSpeed = isNaN(iSpeed) ? 5 : iSpeed;
+	var iOpacity = this.isEmpty(args.opacity) ? 0 : parseInt(args.opacity);
+		iOpacity = isNaN(iOpacity) ? 0 : iOpacity;
+	var sDisplay = this.isEmpty(args.display) ? '' : args.display;
+	var sVisibility = this.isEmpty(args.visibility) ? '' : args.visibility;
+	var oElement = this.doc.$(sId);
+	var iIncrement = iSpeed;
+	if (/lbImage|lbIframe|lbOverlay|lbBottomContainer|lbTopContainer/.test(sId)) {
+		iIncrement = this.ff ? (this.ffVersion >= 6 ? 2 : 5) : (this.safari ? 3 : (this.ieVersion <= 8 ? 10 : 5));
+		iIncrement = this.isMobile() ? 20 : iIncrement;
+		iIncrement = (sId == 'lbOverlay' ? iIncrement * 2 : iIncrement);
+		iIncrement = (sId == 'lbIframe' ? 100 : iIncrement);
+	} else if (this.ieVersion == 7 || this.ieVersion == 8) {
+		iIncrement = 10;
+	}
+	oElement.style.opacity = (iOpacity / 100);
+	oElement.style.filter = "alpha(opacity=" + (iOpacity) + ")";
+	if (iOpacity >= 100 && (sId == 'lbImage' || sId == 'lbIframe')) {
+		try { oElement.style.removeAttribute("filter"); } catch(e) {}
+		this.fixBottomPadding();
+	} else if (iOpacity >= this.maxOpacity && sId == 'lbOverlay') {
+		for (var i = 0; i < this.overlayTimerCount; i++) { window.clearTimeout(this.overlayTimerArray[i]); }
+		this.overlayLoaded = true;
+		return;
+	} else if (iOpacity >= 100 && (sId == 'lbBottomContainer' || sId == 'lbTopContainer')) {
+		try { oElement.style.removeAttribute("filter"); } catch(e) {}
+		for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); }
+		this.doc.$('lbOverlay').style.height = this.aPageSize[1] + "px";
+	} else if (iOpacity >= 100) {
+		for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); }
+	} else {
+		if (sId == 'lbOverlay') {
+			this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("$lb.fadeIn({ id: '" + sId + "', opacity: " + (iOpacity + iIncrement) + ", speed: " + iSpeed + " })", 1);
+		} else {
+			this.imageTimerArray[this.imageTimerCount++] = setTimeout("$lb.fadeIn({ id: '" + sId + "', opacity: " + (iOpacity + iIncrement) + ", speed: " + iSpeed + " })", 1);
+		}
+	}
+};
+Lytebox.prototype.fadeOut = function(args) {
+	var sId = this.isEmpty(args.id) ? '' : args.id;
+	var iSpeed = (this.isEmpty(args.speed) ? 5 : (parseInt(args.speed) > 5 ? 5 : parseInt(args.speed)));
+		iSpeed = isNaN(iSpeed) ? 5 : iSpeed;
+	var iOpacity = this.isEmpty(args.opacity) ? 100 : parseInt(args.opacity);
+		iOpacity = isNaN(iOpacity) ? 100 : iOpacity;
+	var sDisplay = this.isEmpty(args.display) ? '' : args.display;
+	var sVisibility = this.isEmpty(args.visibility) ? '' : args.visibility;
+	var oElement = this.doc.$(sId);
+	if (this.ieVersion == 7 || this.ieVersion == 8) {
+		iSpeed *= 2;
+	}
+	oElement.style.opacity = (iOpacity / 100);
+	oElement.style.filter = "alpha(opacity=" + iOpacity + ")";
+	if (iOpacity <= 0) {
+		try {
+			if (!this.isEmpty(sDisplay)) {
+				oElement.style.display = sDisplay;
+			}
+			if (!this.isEmpty(sVisibility)) {
+				oElement.style.visibility = sVisibility;
+			}
+		} catch(err) { }
+		if (sId == 'lbOverlay') {
+			this.overlayLoaded = false;
+			if (this.isLyteframe) {
+				this.doc.$('lbIframe').src = 'about:blank';
+				this.initialize();
+			}
+		} else {
+			for (var i = 0; i < this.timerIDCount; i++) { window.clearTimeout(this.timerIDArray[i]); }
+		}
+	} else if (sId == 'lbOverlay') {
+		this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("$lb.fadeOut({ id: '" + sId + "', opacity: " + (iOpacity - (iSpeed * 2)) + ", speed: " + iSpeed + ", display: '" + sDisplay + "', visibility: '" + sVisibility + "' })", 1);
+	} else {
+		this.timerIDArray[this.timerIDCount++] = setTimeout("$lb.fadeOut({ id: '" + sId + "', opacity: " + (iOpacity - iSpeed) + ", speed: " + iSpeed + ", display: '" + sDisplay + "', visibility: '" + sVisibility + "' })", 1);
+	}
+};
+Lytebox.prototype.resizeW = function(sId, iCurrentW, iMaxW, iPixelRate, iSpeed) {
+	var object = this.doc.$(sId);
+	var newW = (this.doAnimations ? iCurrentW : iMaxW);
+	object.style.width = (newW) + "px";
+	if (newW < iMaxW) {
+		newW += (newW + iPixelRate >= iMaxW) ? (iMaxW - newW) : iPixelRate;
+	} else if (newW > iMaxW) {
+		newW -= (newW - iPixelRate <= iMaxW) ? (newW - iMaxW) : iPixelRate;
+	}
+	this.resizeWTimerArray[this.resizeWTimerCount++] = setTimeout("$lb.resizeW('" + sId + "', " + newW + ", " + iMaxW + ", " + iPixelRate + ", " + (iSpeed) + ")", iSpeed);
+	if (parseInt(object.style.width) == iMaxW) {
+		this.wDone = true;
+		for (var i = 0; i < this.resizeWTimerCount; i++) { window.clearTimeout(this.resizeWTimerArray[i]); }
+		if (this.isLyteframe) {
+			this.loadContent();
+		} else {
+			this.showContent();
+		}
+	}
+};
+Lytebox.prototype.resizeH = function(sId, iCurrentH, iMaxH, iPixelRate, iSpeed) {
+	var object = this.doc.$(sId);
+	var newH = (this.doAnimations ? iCurrentH : iMaxH);
+	object.style.height = (newH) + "px";
+	if (newH < iMaxH) {
+		newH += (newH + iPixelRate >= iMaxH) ? (iMaxH - newH) : iPixelRate;
+	} else if (newH > iMaxH) {
+		newH -= (newH - iPixelRate <= iMaxH) ? (newH - iMaxH) : iPixelRate;
+	}
+	this.resizeHTimerArray[this.resizeHTimerCount++] = setTimeout("$lb.resizeH('" + sId + "', " + newH + ", " + iMaxH + ", " + iPixelRate + ", " + (iSpeed+.02) + ")", iSpeed+.02);
+	if (parseInt(object.style.height) == iMaxH) {
+		this.hDone = true;
+		for (var i = 0; i < this.resizeHTimerCount; i++) { window.clearTimeout(this.resizeHTimerArray[i]); }
+		this.resizeW('lbOuterContainer', this.wCur, this.resizeWidth + this.borderSize * 2, this.getPixelRate(this.wCur, this.resizeWidth));
+	}
+};
+Lytebox.prototype.getPageScroll = function() {
+	if (self.pageYOffset) {
+		return this.isFrame ? parent.pageYOffset : self.pageYOffset;
+	} else if (this.doc.documentElement && this.doc.documentElement.scrollTop){
+		return this.doc.documentElement.scrollTop;
+	} else if (document.body) {
+		return this.doc.body.scrollTop;
+	}
+};
+Lytebox.prototype.getPageSize = function() {
+	var xScroll, yScroll, windowWidth, windowHeight;
+	if (window.innerHeight && window.scrollMaxY) {
+		xScroll = this.doc.scrollWidth;
+		yScroll = (this.isFrame ? parent.innerHeight : self.innerHeight) + (this.isFrame ? parent.scrollMaxY : self.scrollMaxY);
+	} else if (this.doc.body.scrollHeight > this.doc.body.offsetHeight){
+		xScroll = this.doc.body.scrollWidth;
+		yScroll = this.doc.body.scrollHeight;
+	} else {
+		xScroll = this.doc.getElementsByTagName("html").item(0).offsetWidth;
+		yScroll = this.doc.getElementsByTagName("html").item(0).offsetHeight;
+		xScroll = (xScroll < this.doc.body.offsetWidth) ? this.doc.body.offsetWidth : xScroll;
+		yScroll = (yScroll < this.doc.body.offsetHeight) ? this.doc.body.offsetHeight : yScroll;
+	}
+	if (self.innerHeight) {
+		windowWidth = (this.isFrame) ? parent.innerWidth : self.innerWidth;
+		windowHeight = (this.isFrame) ? parent.innerHeight : self.innerHeight;
+	} else if (document.documentElement && document.documentElement.clientHeight) {
+		windowWidth = this.doc.documentElement.clientWidth;
+		windowHeight = this.doc.documentElement.clientHeight;
+		windowWidth = (windowWidth == 0) ? this.doc.body.clientWidth : windowWidth;
+		windowHeight = (windowHeight == 0) ? this.doc.body.clientHeight : windowHeight;
+	} else if (document.body) {
+		windowWidth = this.doc.getElementsByTagName("html").item(0).clientWidth;
+		windowHeight = this.doc.getElementsByTagName("html").item(0).clientHeight;
+		windowWidth = (windowWidth == 0) ? this.doc.body.clientWidth : windowWidth;
+		windowHeight = (windowHeight == 0) ? this.doc.body.clientHeight : windowHeight;
+	}
+	var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll;
+	var pageWidth = (xScroll < windowWidth) ? windowWidth : xScroll;
+	return new Array(pageWidth, pageHeight, windowWidth, windowHeight);
+};
+Lytebox.prototype.toggleObjects = function(sState) {
+	var objects = this.doc.getElementsByTagName("object");
+	for (var i = 0; i < objects.length; i++) {
+		objects[i].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+	}
+	var embeds = this.doc.getElementsByTagName("embed");
+	for (var i = 0; i < embeds.length; i++) {
+		embeds[i].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+	}
+	if (this.isFrame) {
+		for (var i = 0; i < parent.frames.length; i++) {
+			try {
+				objects = parent.frames[i].window.document.getElementsByTagName("object");
+				for (var j = 0; j < objects.length; j++) {
+					objects[j].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+				}
+			} catch(e) {}
+			
+			try {
+				embeds = parent.frames[i].window.document.getElementsByTagName("embed");
+				for (var j = 0; j < embeds.length; j++) {
+					embeds[j].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+				}
+			} catch(e) {}
+		}
+	}
+};
+Lytebox.prototype.toggleSelects = function(sState) {
+	var selects = this.doc.getElementsByTagName("select");
+	for (var i = 0; i < selects.length; i++ ) {
+		selects[i].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+	}
+	if (this.isFrame) {
+		for (var i = 0; i < parent.frames.length; i++) {
+			try {
+				selects = parent.frames[i].window.document.getElementsByTagName("select");
+				for (var j = 0; j < selects.length; j++) {
+					selects[j].style.visibility = (sState == "hide") ? 'hidden' : 'visible';
+				}
+			} catch(e) {}
+		}
+	}
+};
+Lytebox.prototype.pause = function(iMillis) {
+	var now = new Date();
+	var exitTime = now.getTime() + iMillis;
+	while (true) {
+		now = new Date();
+		if (now.getTime() > exitTime) { return; }
+	}
+};
+Lytebox.prototype.combine = function(aAnchors, aAreas) {
+	var lyteLinks = [];
+	for (var i = 0; i < aAnchors.length; i++) {
+		lyteLinks.push(aAnchors[i]);
+	}
+	for (var i = 0; i < aAreas.length; i++) {
+		lyteLinks.push(aAreas[i]);
+	}
+	return lyteLinks;
+};
+Lytebox.prototype.removeDuplicates = function (aArray) {
+	var aNew = new Array();
+	o:for(var i = 0, n = aArray.length; i < n; i++) {
+		for(var x = 0, y = aNew.length; x < y; x++) {
+			if (aNew[x][0].toLowerCase() == aArray[i][0].toLowerCase()) { continue o; }
+		}
+		aNew[aNew.length] = aArray[i];
+	}
+	return aNew;
+};
+Lytebox.prototype.printWindow = function () {
+	var w = this.isLyteframe ? 800 : this.imgPreloader.width + 20;
+	var h = this.isLyteframe ? 600 : this.imgPreloader.height + 20;
+	var left = parseInt((screen.availWidth/2) - (w/2));
+	var top = parseInt((screen.availHeight/2) - (h/2));
+	var wOpts = "width=" + w + ",height=" + h + ",left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top + "directories=0,location=0,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=0,toolbar=0";
+	var d = new Date();
+	var wName = 'Print' + d.getTime();
+	var wUrl = document.getElementById(this.printId).src;
+	this.wContent = window.open(wUrl, wName, wOpts);
+	this.wContent.focus();
+	var t = setTimeout("$lb.printContent()",1000);
+};
+Lytebox.prototype.printContent = function() {
+	try {
+		if (this.wContent.document.readyState == 'complete') {
+			this.wContent.print();
+			this.wContent.close();
+			this.wContent = null;
+		} else {
+			var t = setTimeout("$lb.printContent()",1000);
+		}
+	} catch(e) { }
+};
+Lytebox.prototype.setOptions = function(sOptions) {
+	this.args = '';
+	this.group = '';
+	this.inline = false;
+	this.hideObjects = this.__hideObjects;
+	this.autoResize = this.__autoResize;
+	this.doAnimations = this.__doAnimations;
+	this.animateOverlay = this.__animateOverlay;
+	this.forceCloseClick = this.__forceCloseClick;
+	this.refreshPage = this.__refreshPage;
+	this.showPrint = this.__showPrint;
+	this.navType = this.__navType;
+	this.titleTop = this.__titleTop;
+	this.navTop = this.__navTop;
+	this.beforeStart = this.__beforeStart;
+	this.afterStart = this.__afterStart
+	this.beforeEnd = this.__beforeEnd;
+	this.afterEnd = this.__afterEnd;
+	this.scrolling = this.__scrolling;
+	this.width = this.__width;
+	this.height = this.__height;
+	this.loopPlayback = this.__loopPlayback;
+	this.autoPlay = this.__autoPlay;
+	this.autoEmbed = this.__autoEmbed;
+	this.slideInterval = this.__slideInterval;
+	this.showNavigation = this.__showNavigation;
+	this.showClose = this.__showClose;
+	this.showDetails = this.__showDetails;
+	this.showPlayPause = this.__showPlayPause;
+	this.autoEnd = this.__autoEnd;
+	this.pauseOnNextClick = this.__pauseOnNextClick;
+	this.pauseOnPrevClick = this.__pauseOnPrevClick;
+	this.loopSlideshow = this.__loopSlideshow;
+	
+	var sName = sValue = '';
+	var aSetting = null;
+	var aOptions = sOptions.split(' ');
+	for (var i = 0; i < aOptions.length; i++) {
+		aSetting = aOptions[i].split(':');
+		sName = (aSetting.length > 1 ? this.trim(aSetting[0]).toLowerCase() : '');
+		sValue = (aSetting.length > 1 ? this.trim(aSetting[1]): '');
+		switch(sName) {
+			case 'group':			this.group = (sName == 'group' ? (!this.isEmpty(sValue) ? sValue.toLowerCase() : '') : ''); break;
+			case 'hideobjects':		this.hideObjects = (/true|false/.test(sValue) ? (sValue == 'true') : this.__hideObjects); break;
+			case 'autoresize':		this.autoResize = (/true|false/.test(sValue) ? (sValue == 'true') : this.__autoResize); break;
+			case 'doanimations':	this.doAnimations = (/true|false/.test(sValue) ? (sValue == 'true') : this.__doAnimations); break;
+			case 'animateoverlay':	this.animateOverlay = (/true|false/.test(sValue) ? (sValue == 'true') : this.__animateOverlay); break;
+			case 'forcecloseclick':	this.forceCloseClick = (/true|false/.test(sValue) ? (sValue == 'true') : this.__forceCloseClick); break;
+			case 'refreshpage':		this.refreshPage = (/true|false/.test(sValue) ? (sValue == 'true') : this.__refreshPage); break;
+			case 'showprint':		this.showPrint = (/true|false/.test(sValue) ? (sValue == 'true') : this.__showPrint); break;
+			case 'navtype':			this.navType = (/[1-3]{1}/.test(sValue) ? parseInt(sValue) : this.__navType); break;
+			case 'titletop':		this.titleTop = (/true|false/.test(sValue) ? (sValue == 'true') : this.__titleTop); break;
+			case 'navtop':			this.navTop = (/true|false/.test(sValue) ? (sValue == 'true') : this.__navTop); break;
+			case 'beforestart':		this.beforeStart = (!this.isEmpty(sValue) ? sValue : this.__beforeStart); break;
+			case 'afterstart':		this.afterStart = (!this.isEmpty(sValue) ? sValue : this.__afterStart); break;
+			case 'beforeend':		this.beforeEnd = (!this.isEmpty(sValue) ? sValue : this.__beforeEnd); break;
+			case 'afterend':		this.afterEnd = (!this.isEmpty(sValue) ? sValue : this.__afterEnd); break;
+			case 'args': 			this.args = (!this.isEmpty(sValue) ? sValue : ''); break;
+			case 'scrollbars':		this.scrolling = (/auto|yes|no/.test(sValue) ? sValue : this.__scrolling); break;
+			case 'scrolling':		this.scrolling = (/auto|yes|no/.test(sValue) ? sValue : this.__scrolling); break;
+			case 'width':			this.width = (/\d(%|px|)/.test(sValue) ? sValue : this.__width); break;
+			case 'height':			this.height = (/\d(%|px|)/.test(sValue) ? sValue : this.__height); break;
+			case 'loopplayback':	this.loopPlayback = (/true|false/.test(sValue) ? (sValue == 'true') : this.__loopPlayback); break;
+			case 'autoplay':		this.autoPlay = (/true|false/.test(sValue) ? (sValue == 'true') : this.__autoPlay); break;
+			case 'autoembed':		this.autoEmbed = (/true|false/.test(sValue) ? (sValue == 'true') : this.__autoEmbed); break;
+			case 'inline':			this.inline = (/true|false/.test(sValue) ? (sValue == 'true') : false);
+			case 'slideinterval':	this.slideInterval = (/\d/.test(sValue) ? parseInt(sValue) : this.__slideInterval); break;
+			case 'shownavigation':	this.showNavigation = (/true|false/.test(sValue) ? (sValue == 'true') : this.__showNavigation); break;
+			case 'showclose':		this.showClose = (/true|false/.test(sValue) ? (sValue == 'true') : this.__showClose); break;
+			case 'showdetails':		this.showDetails = (/true|false/.test(sValue) ? (sValue == 'true') : this.__showDetails); break;
+			case 'showplaypause':	this.showPlayPause = (/true|false/.test(sValue) ? (sValue == 'true') : this.__showPlayPause); break;
+			case 'autoend':			this.autoEnd = (/true|false/.test(sValue) ? (sValue == 'true') : this.__autoEnd); break;
+			case 'pauseonnextclick': this.pauseOnNextClick = (/true|false/.test(sValue) ? (sValue == 'true') : this.__pauseOnNextClick); break;
+			case 'pauseonprevclick': this.pauseOnPrevClick = (/true|false/.test(sValue) ? (sValue == 'true') : this.__pauseOnPrevClick); break;
+			case 'loopslideshow':	this.loopSlideshow = (/true|false/.test(sValue) ? (sValue == 'true') : this.__loopSlideshow); break;
+		}
+	}
+};
+	Lytebox.prototype.buildObject = function(w, h, url) {
+	var object = '';
+	var classId = '';
+	var codebase = '';
+	var pluginsPage = '';
+	var auto = this.autoPlay ? 'true' : 'false';
+	var loop = this.loopPlayback ? 'true' : 'false';
+	var type = url.match(/.mov|.avi|.wmv|.mpg|.mpeg|.swf/i);
+	switch(type[0]) {
+	case '.mov':
+			codebase = 'http://www.apple.com/qtactivex/qtplugin.cab';
+			pluginsPage = 'http://www.apple.com/quicktime/';
+			classId = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
+			object 	= '<object classid="' + classId + '" width="' + w + '" height="' + h + '" codebase="' + codebase + '">'
+					+ '<param name="src" value="' + url + '">'
+					+ '<param name="autoplay" value="' + auto + '">'
+					+ '<param name="loop" value="' + loop + '">'
+					+ '<param name="controller" value="true">'
+					+ '<embed src="' + url + '" width="' + w + '" height="' + h + '" autoplay="' + auto + '" loop="' + loop + '" controller="true" pluginspage="' + pluginsPage + '"></embed>'
+					+ '</object>';
+			if (this.getQuicktimeVersion() <= 0) {
+				object	= '<div style="padding:1em;">'
+						+ '<h2>QUICKTIME PLAYER</h2>'
+						+ '<p>Content on this page requires a newer version of QuickTime. Please click the image link below to download and install the latest version.</p>'
+						+ '<p><a href="http://www.apple.com/quicktime/" target="_blank"><img src="http://images.apple.com/about/webbadges/images/qt7badge_getQTfreeDownload.gif" alt="Get QuickTime" border="0" /></a></p>'
+						+ '</div>';
+			}
+			break;
+		case '.avi':
+		case '.mpg':
+		case '.mpeg':
+		case '.wmv':
+			classId = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';			
+			object 	= '<object classid="' + classId + '" width="' + w + '" height="' + h + '" codebase="' + codebase + '">'
+					+ '<param name="src" value="' + url + '">'
+					+ '<param name="autoplay" value="' + auto + '">'
+					+ '<param name="loop" value="' + loop + '">'
+					+ '<param name="controller" value="true">'
+					+ '<object type="video/quicktime" data="' + url + '" width="' + w + '" height="' + h + '">'
+					+ '<param name="controller" value="false">'
+					+ '<param name="autoplay" value="' + auto + '">'
+					+ '<param name="loop" value="' + loop + '">'
+					+ '</object>' 
+					+ '</object>';
+			break;
+		case '.swf':
+			classId = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
+			object 	= '<object classid="' + classId + '" width="' + w + '" height="' + h + '" codebase="' + codebase + '">'
+					+ '<param name="movie" value="' + url + '">'
+					+ '<param name="quality" value="high">'
+					+ '<param name="wmode" value="opaque">'
+					+ '<!--[if !IE]>-->'
+					+ '<object type="application/x-shockwave-flash" data="' + url + '" width="' + w + '" height="' + h + '">'
+					+ '<!--<![endif]-->'
+					+ '<param name="quality" value="high">'
+					+ '<param name="wmode" value="opaque">'
+					+ '<div style="padding:1em;">'
+					+ '<h2>FLASH PLAYER</h2>'
+					+ '<p>Content on this page requires a newer version of Adobe Flash Player. Please click the image link below to download and install the latest version.</p>'
+					+ '<p><a href="http://www.adobe.com/go/getflashplayer" target="_blank"><img src="http://www.adobe.com/macromedia/style_guide/images/160x41_Get_Flash_Player.jpg" alt="Get Adobe Flash player" border="0" /></a></p>'
+					+ '</div>'
+					+ '<!--[if !IE]>-->'
+					+ '</object>'
+					+ '<!--<![endif]-->'
+					+ '</object>';
+			break;
+	}
+	return object;
+};
+Lytebox.prototype.getQuicktimeVersion = function() {
+	var agent = navigator.userAgent.toLowerCase(); 
+	var version = -1;
+	if (navigator.plugins != null && navigator.plugins.length > 0) {
+		for (i=0; i < navigator.plugins.length; i++ ) {
+			var plugin = navigator.plugins[i];
+			if (plugin.name.indexOf('QuickTime') > -1) {
+				version = parseFloat(plugin.name.substring(18));
+			}
+		}
+	} else if (this.autoEmbed && agent.indexOf('msie') != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf('win') != -1 && agent.indexOf('16bit') == -1) {
+		var control = null;
+		try {
+			control = new ActiveXObject('QuickTime.QuickTime');
+		} catch (e) { }
+		if (control) {
+			isInstalled = true;
+		}			
+		try {
+			control = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck');
+		} catch (e) { return; }
+		if (control) {
+			isInstalled = true;
+			version = control.QuickTimeVersion.toString(16);
+			version = version.substring(0, 1) + '.' + version.substring(1, 3);
+			version = parseInt(version);
+		}
+	}
+	return version;
+};
+Lytebox.prototype.findPos = function(el) {
+	if (this.ie && this.doc.compatMode == 'BackCompat') {
+		return [0, 16, 12];
+	}
+	var left = 0;
+	var top = 0;
+	var height = 0;
+	height = el.offsetHeight + 6;
+	if (el.offsetParent) {
+		do {
+			left += el.offsetLeft;
+			top += el.offsetTop;
+		} while (el = el.offsetParent);
+	}
+	return [left, top, height];
+};
+Lytebox.prototype.isMobile = function() {
+	var ua = navigator.userAgent;
+	return (ua.match(/ipad/i) != null)
+		|| (ua.match(/ipod/i) != null)
+		|| (ua.match(/iphone/i) != null)
+		|| (ua.match(/android/i) != null)
+		|| (ua.match(/opera mini/i) != null)
+		|| (ua.match(/blackberry/i) != null)
+		|| (ua.match(/(pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/i) != null)
+		|| (ua.match(/(iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile)/i) != null)
+		|| (ua.match(/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |sonyericsson|samsung|240x|x320|vx10|nokia|sony cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|psp|treo)/i) != null);
+};
+Lytebox.prototype.validate = function(args) {
+	var reTest = sName = '';
+	var bValid = false;
+	var oElement = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	var sInput = this.isEmpty(args.value) ? '' : String(args.value);
+	var sType = this.isEmpty(args.type) ? '' : String(args.type).toLowerCase();
+	var sRegex = this.isEmpty(args.regex) ? '' : args.regex;
+	var sCCType = (/visa|mc|amex|diners|discover|jcb/.test(args.ccType) ? args.ccType : '');
+	var sImageType = this.isEmpty(args.imageType) ? '' : String(args.imageType.toLowerCase());
+	var iMin = (/^\d+$/.test(args.min) ? parseInt(args.min) : 0);
+	var iMax = (/^\d+$/.test(args.max) ? parseInt(args.max) : 0);
+	var bInclusive = args.inclusive ? true : (/true|false/.test(args.inclusive) ? (args.inclusive == 'true') : true);
+	var bAllowComma = args.allowComma ? true : (/true|false/.test(args.allowComma) ? (args.allowComma == 'true') : true);
+	var bAllowWhitespace = args.allowWhiteSpace ? true : (/true|false/.test(args.allowWhiteSpace) ? (args.allowWhiteSpace == 'true') : true);
+	if ((this.isEmpty(sInput) && this.isEmpty(oElement)) || (this.isEmpty(sType) && this.isEmpty(sRegex))) {
+		return false;
+	}
+	var sInput = this.isEmpty(sInput) ? oElement.value : sInput;
+	if (!this.isEmpty(sRegex)) {
+		bValid = sRegex.test(sInput);
+	} else {
+		switch(sType) {
+			case 'alnum':
+				bValid = (bAllowWhitespace ? /^[a-z0-9\s]+$/i.test(sInput) : /^[a-z0-9]+$/i.test(sInput)); break;
+			case 'alpha':
+				bValid = (bAllowWhitespace ? /^[a-z\s]+$/i.test(sInput) : /^[a-z]+$/i.test(sInput)); break;
+			case 'between':
+				var iInput = bAllowComma ? parseInt(sInput.replace(/\,/g,'')) : parseInt(sInput);
+				bValid = (bInclusive ? (iInput >= iMin && iInput <= iMax) : (iInput > iMin && iInput < iMax)); break;
+			case 'ccnum':
+				if (this.isEmpty(sCCType)) {
+					bValid = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/.test(sInput); break;
+				} else {
+					switch(sCCType) {
+						case 'visa':
+							bValid = /^4[0-9]{12}(?:[0-9]{3})?$/.test(sInput); break;
+						case 'mc':
+							bValid = /^5[1-5][0-9]{14}$/.test(sInput); break;
+						case 'amex':
+							bValid = /^3[47][0-9]{13}$/.test(sInput); break;
+						case 'diners':
+							bValid = /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/.test(sInput); break;
+						case 'discover':
+							bValid = /^6(?:011|5[0-9]{2})[0-9]{12}$/.test(sInput); break;
+						case 'jcb':
+							bValid = /^(?:2131|1800|35\d{3})\d{11}$/.test(sInput); break;
+						default:
+							bValid = false;
+					}
+				}
+			case 'date':
+				var date = new Date(sInput);
+				bValid = !(date.toString() == 'NaN' || date.toString() == 'Invalid Date'); break;
+			case 'digits':
+				bValid = /^\d+$/.test(sInput); break;
+			case 'email':
+				bValid = /^([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+$/i.test(sInput); break;
+			case 'float':
+				bValid = /^[-+]?[0-9]*\.?[0-9]+$/.test(bAllowComma ? sInput.replace(/\,/g,'') : sInput); break;
+			case 'image':
+				if (this.isEmpty(sImageType)) {
+					bValid = /^(png|jpg|jpeg|gif)$/i.test(sInput.split('.').pop()); break;
+				} else {
+					bValid = (sInput.split('.').pop().toLowerCase().match(sImageType) ? true : false); break;
+				}
+			case 'int':
+			case 'integer':
+				bValid = /^[-+]?\d+$/.test(sInput.replace(/\,/g,'')); break;
+			case 'len':
+			case 'length':
+				bValid = (iMin == iMax) ? (sInput.length == iMin) : (sInput.length >= iMin && sInput.length <= iMax); break;
+			case 'phone':
+				bValid = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/.test(sInput); break;
+			case 'notempty':
+				bValid = !this.isEmpty(sInput); break;
+			case 'ssn':
+				bValid = /^[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}$/.test(sInput); break;
+			case 'url':
+				bValid = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»""'']))/i.test(sInput); break;
+			case 'zip':
+				bValid = /^\d{5}$|^\d{5}-\d{4}$/.test(sInput); break;
+		}
+	}
+	return bValid;
+};
+Lytebox.prototype.ajax = function(args) {
+	var iIndex = this.http.length;
+	var oRequest = this.getRequestObject();
+	this.http[iIndex] = oRequest;
+	var oHttpArgs = args;
+	oHttpArgs.index = iIndex;
+	oHttpArgs.method = !(/get|post/i.test(oHttpArgs.method)) ? 'get' : oHttpArgs.method;
+	oHttpArgs.cache = !(/true|false/.test(oHttpArgs.cache)) ? true : (oHttpArgs.cache == 'true' || oHttpArgs.cache);
+	if (!this.isEmpty(oHttpArgs.timeout) && (/^\d+$/.test(oHttpArgs.timeout))) {
+		oHttpArgs.timerId = setTimeout("$lb.http["+iIndex+"].abort()", oHttpArgs.timeout);
+	}
+	oRequest.onreadystatechange = function() {
+		return function() {
+			if (oRequest.readyState == 4 && oRequest.status == 200) {
+				if (document.getElementById(oHttpArgs.updateId)) {
+					try {
+						document.getElementById(oHttpArgs.updateId).innerHTML = oRequest.responseText;
+					} catch(e) { alert(e.description ); };
+				}
+				if (typeof oHttpArgs.success === 'function') {
+					oHttpArgs.success(oRequest);
+				}
+				window.clearTimeout(oHttpArgs.timerId);
+				$lb.http[oHttpArgs.index] = null;
+			} else if (oRequest.readyState == 4 && oRequest.status != 200) {
+				if (typeof oHttpArgs.fail === 'function') {
+					oHttpArgs.fail(oRequest);
+				}
+				window.clearTimeout(oHttpArgs.timerId);
+				$lb.http[oHttpArgs.index] = null;
+			}
+		} (oRequest, oHttpArgs);
+	}
+	if (oHttpArgs.method.toLowerCase() == 'post') {
+		var oForm = document.getElementById(oHttpArgs.form);
+		var bStripTags = !(/true|false/.test(args.stripTags)) ? false : (args.stripTags == 'true' || args.stripTags);
+		var sParams = (oForm == null ? this.serialize({ name: oHttpArgs.form, stripTags: bStripTags }) : this.serialize({ element: oForm, stripTags: bStripTags }));
+		var sTimestamp = (!oHttpArgs.cache ? ((/\&/.test(sParams)) ? '&' : '') + new Date().getTime() : '');
+		oRequest.open('post', oHttpArgs.url, true);
+		oRequest.setRequestHeader('Content-type','application/x-www-form-urlencoded');
+		oRequest.send(sParams + sTimestamp);
+	} else {
+		var sTimestamp = (!oHttpArgs.cache ? ((/\?/.test(oHttpArgs.url)) ? '&' : '?') + new Date().getTime() : '');
+		oRequest.open('get', oHttpArgs.url  + sTimestamp, true);
+		oRequest.send();
+	}
+};
+Lytebox.prototype.serialize = function(args) {
+	var sParams = sValue = '';
+	var bStripTags = !(/true|false/.test(args.stripTags)) ? false : (args.stripTags == 'true' || args.stripTags);
+	var oElements = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	if (oElements == null) {
+		for (var i = 0; i < document.forms.length; i++) {
+			if (document.forms[i].name == args.name) {
+				oElements = document.forms[i].elements;
+			}
+		}
+	}
+	for (var i = 0; i < oElements.length; i++) {
+		if ((oElements[i].type == 'checkbox' && !oElements[i].checked) ||
+			(oElements[i].type == 'radio' && !oElements[i].checked) ||
+			(oElements[i].disabled) || (oElements[i].name == '') || (oElements[i].type == 'reset')) {
+			continue;
+		}
+		if (oElements[i].type == 'select-multiple') {
+			for (var j = 0; j < oElements[i].options.length; j++) {
+				if (oElements[i].options[j].selected == true) {
+					sParams += (sParams == '' ? '' : '&') + oElements[i].name + '=' + encodeURIComponent(oElements[i].options[j].value);
+				}
+			}
+		} else {
+			sValue = bStripTags ? this.stripTags({ value: oElements[i].value }) : oElements[i].value;
+			sParams += (sParams == '' ? '' : '&') + oElements[i].name + '=' + encodeURIComponent(sValue);
+		}
+	}
+	return sParams;
+};
+Lytebox.prototype.getRequestObject = function () {
+	var oReq = null;
+	if (window.XMLHttpRequest) {
+		try { oReq = new XMLHttpRequest(); } catch (e) { }
+	} else if (typeof ActiveXObject != 'undefined') {
+		try {
+			oReq = new ActiveXObject("Msxml2.XMLHTTP");
+		} catch (e) {
+			try { oReq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
+		}
+	}
+	return oReq;
+};
+Lytebox.prototype.isEmpty = function(args) {
+	var sValue = '';
+	try {
+		sValue = this.isEmpty(args.value) ? args : args.value;
+	} catch(e) {
+		sValue = args;
+	}
+	return (this.trim(sValue) == '' || sValue == 'null' || sValue == null || typeof(sValue) == 'undefined');
+};
+Lytebox.prototype.stripTags = function(args) {
+	var oElement = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	if (!this.isEmpty(oElement)) {
+		oElement.value = String(oElement.value).replace(/(<([^>]+)>)/ig, '');
+	} else {
+		var sValue = '';
+		try {
+			sValue = this.isEmpty(args.value) ? args : args.value;
+		} catch(e) {
+			sValue = args;
+		}
+		return (this.trim(sValue) == '[object Object]') ? '' : String(sValue).replace(/(<([^>]+)>)/ig, '');
+	}
+};
+Lytebox.prototype.trim = function(args) {
+	var sValue = '';
+	try {
+		sValue = this.isEmpty(args.value) ? args : args.value;
+	} catch(e) {
+		sValue = args;
+	}
+	return String(sValue).replace(/^\s+|\s+$/g, '');
+};
+Lytebox.prototype.capitalize = function (args) {
+	return String(args.value ? args.value : args).replace( /(^|\s)([a-z])/g , function(m,p1,p2){return p1+p2.toUpperCase();});
+};
+Lytebox.prototype.hasClass = function (args) {
+	var sClass = this.isEmpty(args.name) ? '' : args.name;
+	var oElement = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	return new RegExp('(\\s|^)' + sClass + '(\\s|$)').test(oElement.className);
+};
+Lytebox.prototype.addClass = function (args) {
+	var sClass = this.isEmpty(args.name) ? '' : args.name;
+	var oElement = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	var aClasses = sClass.split(' ');
+	for (var i = 0; i < aClasses.length; i++) {
+		if (!this.hasClass({ element: oElement, name: aClasses[i] })) {
+			oElement.className += ' ' + aClasses[i];
+		}
+	}
+};
+Lytebox.prototype.removeClass = function (args) {
+	var sClass = this.isEmpty(args.name) ? '' : args.name;
+	var oElement = this.isEmpty(args.id) ? (this.isEmpty(args.element) ? null : args.element) : document.getElementById(args.id);
+	var aClasses = sClass.split(' ');
+	for (var i = 0; i < aClasses.length; i++) {
+		if (this.hasClass({ element: oElement, name: aClasses[i] })) {
+			oElement.className = oElement.className.replace(new RegExp('(\\s|^)' + aClasses[i] + '(\\s|$)'), ' ').replace(/\s+/g, ' ').replace(/^\s|\s$/, '');
+		}
+	}
+};
+if (window.addEventListener) {
+	window.addEventListener("load", initLytebox, false);
+} else if (window.attachEvent) {
+	window.attachEvent("onload", initLytebox);
+} else {
+	window.onload = function() {initLytebox();}
+}
+function initLytebox() { myLytebox = $lb = new Lytebox(true, $lb.http); }
+myLytebox = $lb = new Lytebox(false);
Index: /extensions/PwgCarbon_dft/js/menu.js
===================================================================
--- /extensions/PwgCarbon_dft/js/menu.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/menu.js	(revision 18803)
@@ -0,0 +1,116 @@
+/*
+ * jQuery Mega Drop Down Menu script by Soh Tanaka
+ * http://www.sohtanaka.com/web-design/mega-drop-downs-w-css-jquery/
+ * 
+ */
+$(document).ready(function(){
+		
+	function megaHoverOver(){
+		$(this).find(".sub").stop().fadeTo('slow', 1).show();
+			
+	}
+	
+	function megaHoverOut(){
+	 $(this).find(".sub").stop().fadeTo('slow', 0, function() {
+		  $(this).hide();
+	  });
+	}
+	
+
+	var configSub = {
+		 sensitivity: 2,		// number = sensitivity threshold (must be 1 or higher)    
+		 interval: 0, 			// number = milliseconds for onMouseOver polling interval    
+		 over: megaHoverOver,   // function = onMouseOver callback (REQUIRED)    
+		 timeout: 0, 			// number = milliseconds delay before onMouseOut    
+		 out: megaHoverOut 		// function = onMouseOut callback (REQUIRED)    
+	};
+
+	$("ul#topnav li .sub").css({'opacity':'0'});
+	$("ul#topnav li").hoverIntent(configSub);
+	
+	var configSwitch = {
+		 sensitivity: 2,		// number = sensitivity threshold (must be 1 or higher)    
+		 interval: 0, 			// number = milliseconds for onMouseOver polling interval    
+		 over: switchBoxOver,   // function = onMouseOver callback (REQUIRED)    
+		 timeout: 0, 			// number = milliseconds delay before onMouseOut    
+		 out: switchBoxOut 		// function = onMouseOut callback (REQUIRED)    
+	};
+
+	function switchBoxOver(){
+		$(this).find(".switchBox").stop().fadeTo('slow', 1).show();
+			
+	}
+	
+	function switchBoxOut(){
+	 $(this).find(".switchBox").stop().fadeTo('slow', 0, function() {
+		  $(this).hide();
+	  });
+	}
+	$("ul.categoryActions li").hoverIntent(configSwitch);
+
+	
+	// Delete the border for the last li of the submenu
+	$("ul#topnav .sub ul li:last-child a").css("border", "none");
+
+	/*other menubar script*/
+	//open form login menu
+	$(".cl_wrapper").next("div").hide();
+
+	
+	$(".cl_wrapper").hover(function(){
+	
+		if($(this).next("div").is(":hidden")){
+			$(this).next("div").fadeTo('fast', 1);
+			$(this).addClass('activate');
+			$(this).next("div").attr(":visible")
+		}
+	});
+		
+	
+	$(".cl_wrapper").click(function(){
+		if($(this).next("div").is(":visible")){
+		$(this).next("div").fadeTo('slow', 0, function(){$(this).hide()});
+		$(this).removeClass('activate'); 
+		$(this).next("div").attr(":hidden")
+		}
+	});
+
+	$(".close").click(function(){
+		if($("#loger").is(":visible")){
+			$("#loger").fadeTo('fast', 0, function(){$(this).hide()});
+			$(".cl_wrapper").removeClass('activate');
+			$("#loger").attr(":hidden");
+		}
+	});
+	
+	$(".cc_wrapper").click(function(){
+		if($(this).next("div").is(":visible")){
+			$(this).next("div").fadeTo('slow', 0, function(){$(this).hide()});
+			$(this).removeClass('activate'); 
+			$(this).next("div").attr(":hidden")
+		}
+	});
+	
+	$(".cc_wrapper").click(function(){
+		if($(this).next("div").is(":hidden")){
+			$(this).next("div").fadeTo('fast', 1);
+			$(this).addClass('activate');
+			$(this).next("div").attr(":visible")
+		}
+	});
+	
+		$(".close").click(function(){
+		if($("#loger").is(":visible")){
+			$("#loger").fadeTo('fast', 0, function(){$(this).hide()});
+			$(".cc_wrapper").removeClass('activate');
+			$("#loger").attr(":hidden");
+		}
+	});
+	
+	
+	
+
+
+	// make column menubar_categorie
+	$('.mcol').makeacolumnlists({cols:4, colWidth:155, equalHeight: true, startN: 1});
+});
Index: /extensions/PwgCarbon_dft/js/reflection.js
===================================================================
--- /extensions/PwgCarbon_dft/js/reflection.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/reflection.js	(revision 18803)
@@ -0,0 +1,84 @@
+/*!
+	reflection.js for jQuery v1.1
+	(c) 2006-2011 Christophe Beyls <http://www.digitalia.be>
+	MIT-style license.
+*/
+
+(function($) {
+
+$.fn.extend({
+	reflect: function(options) {
+		options = $.extend({
+			height: 1/3,
+			opacity: 0.5
+		}, options);
+
+		return this.unreflect().each(function() {
+			var img = this;
+			if (/^img$/i.test(img.tagName)) {
+				function doReflect() {
+					var imageWidth = img.width, imageHeight = img.height, reflection, reflectionHeight, wrapper, context, gradient;
+					reflectionHeight = Math.floor((options.height > 1) ? Math.min(imageHeight, options.height) : imageHeight * options.height);
+
+					reflection = $("<canvas />")[0];
+					if (reflection.getContext) {
+						context = reflection.getContext("2d");
+						try {
+							$(reflection).attr({width: imageWidth, height: reflectionHeight});
+							context.save();
+							context.translate(0, imageHeight-1);
+							context.scale(1, -1);
+							context.drawImage(img, 0, 0, imageWidth, imageHeight);
+							context.restore();
+							context.globalCompositeOperation = "destination-out";
+
+							gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);
+							gradient.addColorStop(0, "rgba(255, 255, 255, " + (1 - options.opacity) + ")");
+							gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
+							context.fillStyle = gradient;
+							context.rect(0, 0, imageWidth, reflectionHeight);
+							context.fill();
+						} catch(e) {
+							return;
+						}
+					} else {
+						if (!$.browser.msie) return;
+						reflection = $("<img />").attr("src", img.src).css({
+							width: imageWidth,
+							height: imageHeight,
+							marginBottom: reflectionHeight - imageHeight,
+							filter: "FlipV progid:DXImageTransform.Microsoft.Alpha(Opacity=" + (options.opacity * 100) + ", FinishOpacity=0, Style=1, StartX=0, StartY=0, FinishX=0, FinishY=" + (reflectionHeight / imageHeight * 100) + ")"
+						})[0];
+					}
+					$(reflection).css({display: "block", border: 0});
+
+					wrapper = $(/^a$/i.test(img.parentNode.tagName) ? "<span />" : "<div />").insertAfter(img).append([img, reflection])[0];
+					wrapper.className = img.className;
+					$.data(img, "reflected", wrapper.style.cssText = img.style.cssText);
+					$(wrapper).css({width: imageWidth, height: imageHeight + reflectionHeight, overflow: "hidden"});
+					img.style.cssText = "display: block; border: 0px";
+					img.className = "reflected";
+				}
+
+				if (img.complete) doReflect();
+				else $(img).load(doReflect);
+			}
+		});
+	},
+
+	unreflect: function() {
+		return this.unbind("load").each(function() {
+			var img = this, reflected = $.data(this, "reflected"), wrapper;
+
+			if (reflected !== undefined) {
+				wrapper = img.parentNode;
+				img.className = wrapper.className;
+				img.style.cssText = reflected;
+				$.removeData(img, "reflected");
+				wrapper.parentNode.replaceChild(img, wrapper);
+			}
+		});
+	}
+});
+
+})(jQuery);
Index: /extensions/PwgCarbon_dft/js/tinyscrollbar.js
===================================================================
--- /extensions/PwgCarbon_dft/js/tinyscrollbar.js	(revision 18803)
+++ /extensions/PwgCarbon_dft/js/tinyscrollbar.js	(revision 18803)
@@ -0,0 +1,4 @@
+
+/*tinyscrollbar*/
+(function(a){function b(b,c){function w(a){if(!(g.ratio>=1)){o.now=Math.min(i[c.axis]-j[c.axis],Math.max(0,o.start+((k?a.pageX:a.pageY)-p.start)));n=o.now*h.ratio;g.obj.css(l,-n);j.obj.css(l,o.now)}return false}function v(b){a(document).unbind("mousemove",w);a(document).unbind("mouseup",v);j.obj.unbind("mouseup",v);document.ontouchmove=j.obj[0].ontouchend=document.ontouchend=null;return false}function u(b){if(!(g.ratio>=1)){var b=b||window.event;var d=b.wheelDelta?b.wheelDelta/120:-b.detail/3;n-=d*c.wheel;n=Math.min(g[c.axis]-f[c.axis],Math.max(0,n));j.obj.css(l,n/h.ratio);g.obj.css(l,-n);b=a.event.fix(b);b.preventDefault()}}function t(b){p.start=k?b.pageX:b.pageY;var c=parseInt(j.obj.css(l));o.start=c=="auto"?0:c;a(document).bind("mousemove",w);document.ontouchmove=function(b){a(document).unbind("mousemove");w(b.touches[0])};a(document).bind("mouseup",v);j.obj.bind("mouseup",v);j.obj[0].ontouchend=document.ontouchend=function(b){a(document).unbind("mouseup");j.obj.unbind("mouseup");v(b.touches[0])};return false}function s(){j.obj.bind("mousedown",t);j.obj[0].ontouchstart=function(a){a.preventDefault();j.obj.unbind("mousedown");t(a.touches[0]);return false};i.obj.bind("mouseup",w);if(c.scroll&&this.addEventListener){e[0].addEventListener("DOMMouseScroll",u,false);e[0].addEventListener("mousewheel",u,false)}else if(c.scroll){e[0].onmousewheel=u}}function r(){j.obj.css(l,n/h.ratio);g.obj.css(l,-n);p["start"]=j.obj.offset()[l];var a=m.toLowerCase();h.obj.css(a,i[c.axis]);i.obj.css(a,i[c.axis]);j.obj.css(a,j[c.axis])}function q(){d.update();s();return d}var d=this;var e=b;var f={obj:a(".viewport",b)};var g={obj:a(".overview",b)};var h={obj:a(".scrollbar",b)};var i={obj:a(".track",h.obj)};var j={obj:a(".thumb",h.obj)};var k=c.axis=="x",l=k?"left":"top",m=k?"Width":"Height";var n,o={start:0,now:0},p={};this.update=function(a){f[c.axis]=f.obj[0]["offset"+m];g[c.axis]=g.obj[0]["scroll"+m];g.ratio=f[c.axis]/g[c.axis];h.obj.toggleClass("disable",g.ratio>=1);i[c.axis]=c.size=="auto"?f[c.axis]:c.size;j[c.axis]=Math.min(i[c.axis],Math.max(0,c.sizethumb=="auto"?i[c.axis]*g.ratio:c.sizethumb));h.ratio=c.sizethumb=="auto"?g[c.axis]/i[c.axis]:(g[c.axis]-f[c.axis])/(i[c.axis]-j[c.axis]);n=a=="relative"&&g.ratio<=1?Math.min(g[c.axis]-f[c.axis],Math.max(0,n)):0;n=a=="bottom"&&g.ratio<=1?g[c.axis]-f[c.axis]:isNaN(parseInt(a))?n:parseInt(a);r()};return q()}a.tiny=a.tiny||{};a.tiny.scrollbar={options:{axis:"y",wheel:40,scroll:true,size:"auto",sizethumb:"auto"}};a.fn.tinyscrollbar=function(c){var c=a.extend({},a.tiny.scrollbar.options,c);this.each(function(){a(this).data("tsb",new b(a(this),c))});return this};a.fn.tinyscrollbar_update=function(b){return a(this).data("tsb").update(b)};})(jQuery)
+
Index: /extensions/PwgCarbon_dft/language/fr_FR/description.txt
===================================================================
--- /extensions/PwgCarbon_dft/language/fr_FR/description.txt	(revision 18803)
+++ /extensions/PwgCarbon_dft/language/fr_FR/description.txt	(revision 18803)
@@ -0,0 +1,1 @@
+Gère le thème PwgCarbon.
Index: /extensions/PwgCarbon_dft/language/fr_FR/index.php
===================================================================
--- /extensions/PwgCarbon_dft/language/fr_FR/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/language/fr_FR/index.php	(revision 18803)
@@ -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();
+?>
Index: /extensions/PwgCarbon_dft/language/fr_FR/theme.lang.php
===================================================================
--- /extensions/PwgCarbon_dft/language/fr_FR/theme.lang.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/language/fr_FR/theme.lang.php	(revision 18803)
@@ -0,0 +1,8 @@
+<?php
+$lang['There are no comments'] = 'Il n\'y a aucun commentaire';
+$lang['set as category representative'] = 'faire de cette photo la représentante de sa catégorie';
+$lang['delete this image from your favorites'] = 'Supprimer cette image de vos favorites';
+$lang['add this image to your favorites'] = 'Ajouter cette image à vos favorites';
+$lang['Login'] = 'Connexion';
+
+?>
Index: /extensions/PwgCarbon_dft/language/index.php
===================================================================
--- /extensions/PwgCarbon_dft/language/index.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/language/index.php	(revision 18803)
@@ -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();
+?>
Index: /extensions/PwgCarbon_dft/local_head.tpl
===================================================================
--- /extensions/PwgCarbon_dft/local_head.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/local_head.tpl	(revision 18803)
@@ -0,0 +1,16 @@
+
+
+
+<!--[if lt IE 7]>
+	<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/default/fix-ie5-ie6.css">
+<![endif]-->
+<!--[if IE 7]>
+	<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/default/fix-ie7.css">
+<![endif]-->
+<link rel="stylesheet" type="text/css" media="print" href="{$ROOT_URL}themes/default/print.css">
+
+
+
+
+
+{combine_script id='reflection' load='header' require='jquery' path='themes/PwgCarbon_dft/js/reflection.js'}
Index: /extensions/PwgCarbon_dft/template/footer.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/footer.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/footer.tpl	(revision 18803)
@@ -0,0 +1,53 @@
+				</div> <!-- page_content2 -->
+			</div> <!-- page_content1 -->
+		</div> <!-- page_content -->			
+	</div> <!--the_page -->		
+					
+			
+			
+			
+			<div id="footer">
+				
+
+				<div id="copyright">
+				
+						{if isset($debug.TIME) }
+							 {'Page generated in'|@translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|@translate} {$debug.SQL_TIME}) -
+						{/if}
+
+						{* Please, do not remove this copyright. If you really want to,
+						  contact us on http://piwigo.org to find a solution on how
+						  to show the origin of the script...*}
+
+						{'Powered by'|@translate}
+						<a href="{$PHPWG_URL}" class="Piwigo">
+							<span class="Piwigo">Piwigo</span>
+						</a>
+						{$VERSION}
+						{if isset($CONTACT_MAIL)}
+							- {'Contact'|@translate}
+							<a href="mailto:{$CONTACT_MAIL}?subject={'A comment on your site'|@translate|@escape:url}">{'Webmaster'|@translate}</a>
+						{/if}
+{get_combined_scripts load='footer'}
+						{if isset($footer_elements)}
+							{foreach from=$footer_elements item=v}
+								{$v}
+							{/foreach}
+						{/if}
+
+					
+							{if isset($debug.QUERIES_LIST)}
+								<div id="debug">
+									{$debug.QUERIES_LIST}
+								</div>
+							{/if}
+							
+				
+				</div> <!-- copyright -->
+<div id="bg_th_right"></div>
+			</div> <!-- footer -->
+
+
+</body>
+</html>
+
Index: /extensions/PwgCarbon_dft/template/header.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/header.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/header.tpl	(revision 18803)
@@ -0,0 +1,114 @@
+﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}">
+<meta name="generator" content="Piwigo (aka PWG), see piwigo.org">
+{if isset($meta_ref) } 
+{if isset($INFO_AUTHOR)}
+<meta name="author" content="{$INFO_AUTHOR|@strip_tags:false|@replace:'"':' '}">
+{/if}
+{if isset($related_tags)}
+<meta name="keywords" content="{foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}{$tag.name}{/foreach}">
+{/if}
+{if isset($COMMENT_IMG)}
+<meta name="description" content="{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}{if isset($INFO_FILE)} - {$INFO_FILE}{/if}">
+{else}
+<meta name="description" content="{$PAGE_TITLE}{if isset($INFO_FILE)} - {$INFO_FILE}{/if}">
+{/if}
+{/if}
+
+{if (isset($REVERSE) and $REVERSE and $PAGE_TITLE == l10n('Home'))}
+<title>{$GALLERY_TITLE} | {$PAGE_TITLE}</title>{else}
+<title>{$PAGE_TITLE} | {$GALLERY_TITLE}</title>{/if}
+<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
+
+<link rel="start" title="{'Home'|@translate}" href="{$U_HOME}" >
+<link rel="search" title="{'Search'|@translate}" href="{$ROOT_URL}search.php" >
+{if isset($first.U_IMG)   }<link rel="first" title="{'First'|@translate}" href="{$first.U_IMG}" >{/if}
+{if isset($previous.U_IMG)}<link rel="prev" title="{'Previous'|@translate}" href="{$previous.U_IMG}" >{/if}
+{if isset($next.U_IMG)    }<link rel="next" title="{'Next'|@translate}" href="{$next.U_IMG}" >{/if}
+{if isset($last.U_IMG)    }<link rel="last" title="{'Last'|@translate}" href="{$last.U_IMG}" >{/if}
+{if isset($U_UP)          }<link rel="up" title="{'Thumbnails'|@translate}" href="{$U_UP}" >{/if}
+
+{get_combined_css}
+{foreach from=$themes item=theme}
+{if $theme.load_css}
+{combine_css path="themes/`$theme.id`/theme.css" order=-10}
+{/if}
+{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if}
+{/foreach}
+
+
+{if isset($U_PREFETCH)}<link rel="prefetch" href="{$U_PREFETCH}">{/if}
+{if isset($U_CANONICAL)}<link rel="canonical" href="{$U_CANONICAL}">{/if}
+
+{if not empty($page_refresh)    }<meta http-equiv="refresh" content="{$page_refresh.TIME};url={$page_refresh.U_REFRESH}">{/if}
+
+{get_combined_scripts load='header'}
+<!--[if lt IE 7]>
+<script type="text/javascript" src="{$ROOT_URL}themes/default/js/pngfix.js"></script>
+<![endif]-->
+
+{combine_script id="jquery" load="footer"}
+
+{if not empty($head_elements)}
+	{foreach from=$head_elements item=elt}{$elt}
+	{/foreach}
+{/if}
+{combine_script id='menu' load='header' require='jquery' path='themes/PwgCarbon_dft/js/menu.js'}
+{combine_script id='hoverIntent' load='header' require='jquery' path='themes/PwgCarbon_dft/js/jquery.hoverIntent.minified.js'}
+{combine_script id='columnizer' load='header' require='jquery' path='themes/PwgCarbon_dft/js/columnizer.js'}
+</head>
+
+
+<html>
+
+
+
+<body id="{$BODY_ID}">
+
+{if $BODY_ID != 'thePicturePage' and $BODY_ID != 'theAdminPage' }
+{if !empty($PLUGIN_HEADER_ACTIONS)}{$PLUGIN_HEADER_ACTIONS}{/if}
+
+
+
+	{if not empty($header_msgs)}
+		<div class="header_msgs">
+			{foreach from=$header_msgs item=elt}
+			{$elt}<br>
+			{/foreach}
+		</div>
+	{/if}
+	
+<div id="header_bgDef">
+
+			<div id="Header">
+					<div id="header-content">
+						<div id="logo"></div>
+						<div id="theHeader">{$PAGE_BANNER}</div>
+					</div>
+			</div>		
+		
+	
+</div>
+	
+	<div id="headertransi">
+		<div id="headertransiH"></div>
+		<div id="headertransiB"></div>
+	</div>
+
+	<div id="the_page">
+		<div id="bg_th_left"></div>
+
+	{if isset($theSwiftHeader)}{$theSwiftHeader}{/if}
+		{if not empty($header_notes)}
+			<div class="header_notes">
+				{foreach from=$header_notes item=elt}
+					<p>{$elt}</p>
+				{/foreach}
+			</div>
+		{/if}
+	{/if}	
+		<div id="page_content">
+			<div id="page_content1">
+				<div id="page_content2">
Index: /extensions/PwgCarbon_dft/template/index.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/index.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/index.tpl	(revision 18803)
@@ -0,0 +1,161 @@
+{$MENUBAR}
+{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
+
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+
+<div class="titrePage{if isset($chronology.TITLE)} calendarTitleBar{/if}">
+	<ul class="categoryActions">
+{if !empty($image_orders)}
+		<li>{strip}<a id="sortOrderLink" title="{'Sort order'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-sort">&nbsp;</span><span class="pwg-button-text">{'Sort order'|@translate}</span>
+		</a>
+		<div id="sortOrderBox" class="switchBox">
+			<div class="switchBoxTitle">{'Sort order'|@translate}</div>
+			{foreach from=$image_orders item=image_order name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
+			{if $image_order.SELECTED}
+			<span>&#x2714; </span>{$image_order.DISPLAY}
+			{else}
+			<span style="visibility:hidden">&#x2714; </span><a href="{$image_order.URL}" rel="nofollow">{$image_order.DISPLAY}</a>
+			{/if}
+			{/foreach}
+		</div>
+
+		{/strip}</li>
+{/if}
+{if !empty($image_derivatives)}
+		<li>{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-sizes">&nbsp;</span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
+		</a>
+		<div id="derivativeSwitchBox" class="switchBox">
+			<div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
+			{foreach from=$image_derivatives item=image_derivative name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
+			{if $image_derivative.SELECTED}
+			<span>&#x2714; </span>{$image_derivative.DISPLAY}
+			{else}
+			<span style="visibility:hidden">&#x2714; </span><a href="{$image_derivative.URL}" rel="nofollow">{$image_derivative.DISPLAY}</a>
+			{/if}
+			{/foreach}
+		</div>
+
+		{/strip}</li>
+{/if}
+
+{if isset($favorite)}
+		<li><a href="{$favorite.U_FAVORITE}" title="{'delete all photos from your favorites'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-favorite-del">&nbsp;</span><span class="pwg-button-text">{'delete all photos from your favorites'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_CADDIE)}
+		<li><a href="{$U_CADDIE}" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-caddie-add">&nbsp;</span><span class="pwg-button-text">{'Caddie'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_EDIT)}
+		<li><a href="{$U_EDIT}" title="{'Edit album'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-category-edit">&nbsp;</span><span class="pwg-button-text">{'Edit'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_SEARCH_RULES)}
+		{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+		<li><a href="{$U_SEARCH_RULES}" onclick="popuphelp(this.href); return false;" title="{'Search rules'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-help">&nbsp;</span><span class="pwg-button-text">(?)</span>
+		</a></li>
+{/if}
+{if isset($U_SLIDESHOW)}
+		<li>{strip}<a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-slideshow">&nbsp;</span><span class="pwg-button-text">{'slideshow'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_FLAT)}
+		<li>{strip}<a href="{$U_MODE_FLAT}" title="{'display all photos in all sub-albums'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-category-view-flat">&nbsp;</span><span class="pwg-button-text">{'display all photos in all sub-albums'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_NORMAL)}
+		<li>{strip}<a href="{$U_MODE_NORMAL}" title="{'return to normal view mode'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-category-view-normal">&nbsp;</span><span class="pwg-button-text">{'return to normal view mode'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_POSTED)}
+		<li>{strip}<a href="{$U_MODE_POSTED}" title="{'display a calendar by posted date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-calendar">&nbsp;</span><span class="pwg-button-text">{'Calendar'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_CREATED)}
+		<li>{strip}<a href="{$U_MODE_CREATED}" title="{'display a calendar by creation date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-camera-calendar">&nbsp;</span><span class="pwg-button-text">{'Calendar'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
+	</ul>
+
+	<h2>{$TITLE}</h2>
+
+
+
+{if isset($chronology_views)}
+<div class="calendarViews">{'View'|@translate}:
+	<select onchange="document.location = this.options[this.selectedIndex].value;">
+		{foreach from=$chronology_views item=view}
+		<option value="{$view.VALUE}"{if $view.SELECTED} selected="selected"{/if}>{$view.CONTENT}</option>
+		{/foreach}
+	</select>
+</div>
+{/if}
+
+{if isset($chronology.TITLE)}
+<h2 class="calendarTitle">{$chronology.TITLE}</h2>
+{/if}
+
+</div>{* <!-- titrePage --> *}
+
+{if isset($errors) or not empty($infos)}
+{include file='infos_errors.tpl'}
+{/if}
+{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
+
+{if !empty($category_search_results)}
+<div style="font-size:16px;margin:10px 16px">{'Album results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
+	<em><strong>
+	{foreach from=$category_search_results item=res name=res_loop}
+	{if !$smarty.foreach.res_loop.first} &mdash; {/if}
+	{$res}
+	{/foreach}
+	</strong></em>
+</div>
+{/if}
+
+{if !empty($tag_search_results)}
+<div style="font-size:16px;margin:10px 16px">{'Tag results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
+	<em><strong>
+	{foreach from=$tag_search_results item=res name=res_loop}
+	{if !$smarty.foreach.res_loop.first} &mdash; {/if}
+	{$res}
+	{/foreach}
+	</strong></em>
+</div>
+{/if}
+
+{if isset($FILE_CHRONOLOGY_VIEW)}
+{include file=$FILE_CHRONOLOGY_VIEW}
+{/if}
+
+{if !empty($CONTENT_DESCRIPTION)}
+<div class="additional_info">
+	{$CONTENT_DESCRIPTION}
+</div>
+{/if}
+
+{if !empty($CATEGORIES)}{$CATEGORIES}{/if}
+{if !empty($THUMBNAILS)}
+<ul class="thumbnails" id="thumbnails">
+{$THUMBNAILS}
+</ul>
+{/if}
+
+{if !empty($navbar)}{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+{if !empty($PLUGIN_INDEX_CONTENT_END)}{$PLUGIN_INDEX_CONTENT_END}{/if}
+</div>{* <!-- content --> *}
+{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if}
+
Index: /extensions/PwgCarbon_dft/template/mainpage_categories.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/mainpage_categories.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/mainpage_categories.tpl	(revision 18803)
@@ -0,0 +1,71 @@
+{html_style}
+
+{if $derivative_params->max_width() > 440}
+.content UL.thumbnailCategories LI {ldelim}	width:100%; }  
+.illustration {ldelim} margin-left: auto;
+	margin-right: auto; display: table; float: none;}
+{else}
+{if $derivative_params->max_width() > 290}
+.content UL.thumbnailCategories LI {ldelim}	width:49.7%;}  
+.thumbnailCategory{ldelim}min-height: {$derivative_params->max_height()*1.33}px;
+width:{$derivative_params->max_width()+5}px;}
+
+{else}
+.content UL.thumbnailCategories LI {ldelim}	width:33.2%; }   
+{/if}
+{/if}
+{if $derivative_params->max_width() > 600}
+.thumbLegend {ldelim}font-size: 130%}
+{else}
+{if $derivative_params->max_width() > 400}
+.thumbLegend {ldelim}font-size: 110%}
+{else}
+.thumbLegend {ldelim}font-size: 90%}
+{/if}
+{/if}
+{/html_style}
+
+
+
+<ul class="thumbnailCategories">
+{foreach from=$category_thumbnails item=cat name=cat_loop}
+	<li class="{if $smarty.foreach.comment_loop.index is odd}odd{else}even{/if}">
+		<div class="thumbnailCategory">
+			<div class="illustration">
+			<a href="{$cat.URL}">
+				
+				<img class="thumbnail" src="{$pwg->derivative_url($derivative_params, $cat.representative.src_image)}" alt="{$cat.TN_ALT}" title="{$cat.NAME|@replace:'"':' '|@strip_tags:false} - {'display this album'|@translate}">
+				{footer_script}{literal}
+				jQuery(function($) {
+					$(".thumbnail").reflect({height:0.3,opacity:0.3});
+				});
+				{/literal}{/footer_script}
+			</a>
+									<div class="description">
+			<span class="thumbLegend">
+				<h3>
+					<a href="{$cat.URL}">{$cat.NAME}</a>
+					{if !empty($cat.icon_ts)}
+					<img title="{$cat.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent{if $cat.icon_ts.IS_CHILD_DATE}_by_child{/if}.png" alt="(!)">
+					{/if}
+				</h3>
+				
+				{if isset($cat.INFO_DATES) }
+				<p class="dates">{$cat.INFO_DATES}</p>
+				{/if}
+				<p class="Nb_images">{$cat.CAPTION_NB_IMAGES}</p>
+				{if not empty($cat.DESCRIPTION)}
+				<p>{$cat.DESCRIPTION}</p>
+				{/if}
+				
+			</span>
+			</div>
+
+			
+
+			
+			</div>
+		</div>
+	</li>
+{/foreach}
+</ul>
Index: /extensions/PwgCarbon_dft/template/menubar.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar.tpl	(revision 18803)
@@ -0,0 +1,33 @@
+
+
+<div id=nav_wrapper>	
+
+		
+	<div id="menu" >
+		<ul id="topnav">	
+				{foreach from=$blocks key=id item=block}
+					<span id="{$id}">
+						{if not empty($block->template)}
+						{include file=$block->template|@get_extent:$id }
+						{else}
+						{$block->raw_content}
+						{/if}
+					</span>
+				{/foreach}
+		</ul>
+		
+				<div id="search">
+					<form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch" onsubmit="return this.q.value!='' && this.q.value!=qsearch_prompt;">
+						<p style="margin:0;padding:0"{*this <p> is for html validation only - does not affect positioning*}>
+							<input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" />
+							<input type="submit" value=" " id="go"/>	
+						</p>
+					</form>
+				<script type="text/javascript">var qsearch_prompt="{'Quick search'|@translate|@escape:'javascript'}"; document.getElementById('qsearchInput').value=qsearch_prompt;</script>
+				</div>
+			</div>
+		</div>
+
+
+
+
Index: /extensions/PwgCarbon_dft/template/menubar_categories.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_categories.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_categories.tpl	(revision 18803)
@@ -0,0 +1,57 @@
+<span id="menu_start">
+		<a href="{$block->data.U_CATEGORIES}">{'Albums'|@translate}</a>
+</span>
+
+
+<li class="liSub" >
+
+	<span class="dd_wrapper">{'Categories'|@translate}</span>
+	
+		<div class="sub" style="opacity: 0; display: none; width:700px;">
+		{assign var='ref_level' value=0}
+			<div id="menu_cat_act">
+				<div id="nbImg">
+			<p class="totalImages">{$pwg->l10n_dec('%d image', '%d images', $block->data.NB_PICTURE)}</p>
+				</div>
+				<div id="filter">
+					{if isset($U_START_FILTER)}
+						<a href="{$U_START_FILTER}" class="pwg-state-default pwg-button menubarFilter" title="{'display only recently posted photos'|@translate}" rel="nofollow">
+						<span class="pwg-icon pwg-icon-filter"> </span>
+						</a>
+					{/if}
+					{if isset($U_STOP_FILTER)}
+					<a href="{$U_STOP_FILTER}" class="pwg-state-default pwg-button menubarFilter" title="{'return to the display of all photos'|@translate}"><span class="pwg-icon pwg-icon-filter-del"> </span></a>
+					{/if}
+				</div>
+
+			</div>
+				
+				
+{foreach from=$block->data.MENU_CATEGORIES item=cat}
+{if $cat.LEVEL > $ref_level}
+<ul class="mcol">
+{else}
+
+		</li>
+			{'</ul></li>'|@str_repeat:$ref_level-$cat.LEVEL}
+		  {/if}
+		   <li {if $cat.SELECTED}class="selected"{/if}class="level{$cat.LEVEL}">
+		   <a href="{$cat.URL}" {if $cat.IS_UPPERCAT}rel="up"{/if} title="{$cat.TITLE}" >{$cat.NAME}   [{$cat.count_images}] </a>
+		  {assign var='ref_level' value=$cat.LEVEL}
+		{/foreach}
+	{'</li></ul>'|@str_repeat:$ref_level}	
+
+		{if isset($block->data.U_UPLOAD)}
+		
+	<ul>
+		
+			<li>
+				<a href="{$block->data.U_UPLOAD}">{'Upload a picture'|@translate}</a>
+			</li>
+
+	</ul>
+		
+	{/if}
+		
+
+		</div>
Index: /extensions/PwgCarbon_dft/template/menubar_identification.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_identification.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_identification.tpl	(revision 18803)
@@ -0,0 +1,80 @@
+{if isset($U_LOGIN)}
+<li class="liSub">
+	<span class="cl_wrapper">{'Identification'|@translate}</span> 
+		<div id="loger">
+			<div class="close">
+			</div> 
+						
+			<form method="post" action="{$U_LOGIN}" id="quickconnect">
+			<div id="log">
+			<div>
+			<label for="username">{'Username'|@translate}</label><br>
+			<input type="text" autocomplete="{if ($PwgCarbon.menuident)==1}off{else}on{/if}" name="username" id="username" value="" style="width:100%">
+			</div>
+			
+			<div>
+			<label for="password">{'Password'|@translate}</label>
+			<br>
+			<input type="password" name="password" id="password" style="width:100%">
+			</div>
+			
+			{if $AUTHORIZE_REMEMBERING}
+			<div><label for="remember_me">
+			{'Auto login'|@translate}
+			<input type="checkbox" name="remember_me" id="remember_me" value="1">
+			</label>
+			{/if}
+			</div>
+			<div id="go">
+			<input type="hidden" name="redirect" value="{$smarty.server.REQUEST_URI|@urlencode}">
+			<input class="submit" type="submit" name="login" value="{'Login'|@translate}">
+			</div>
+			</div>
+			<ul>
+				{if isset($U_REGISTER)}
+				<li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow">{'Register'|@translate}</a></li>
+				{/if}
+
+				<li><a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" rel="nofollow">{'Forgot your password?'|@translate}</a></li>
+			</ul>
+
+			
+
+			</form>
+		</div>
+</li>
+	
+	{else}
+	
+<li class="liSub">
+
+<span class="dd_wrapper">{'Identification'|@translate}</span>
+					<div style="opacity: 0; display: none;" class="sub">
+
+	{if isset($USERNAME)}
+	<p>{'Hello'|@translate}&nbsp;{$USERNAME}&nbsp;!</p>
+	{/if}
+
+	<ul>
+	{if isset($U_REGISTER)}
+	<li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow">{'Register'|@translate}</a></li>
+	{/if}
+
+	{if isset($U_LOGIN)}
+	<li><a href="{$U_LOGIN}" rel="nofollow">{'Login'|@translate}</a></li>
+	{/if}
+
+	{if isset($U_LOGOUT)}
+	<li><a href="{$U_LOGOUT}">{'Logout'|@translate}</a></li>
+	{/if}
+
+	{if isset($U_PROFILE)}
+	<li><a href="{$U_PROFILE}" title="{'customize the appareance of the gallery'|@translate}">{'Customize'|@translate}</a></li>
+	{/if}
+
+	{if isset($U_ADMIN)}
+	<li><a href="{$U_ADMIN}" title="{'available for administrators only'|@translate}">{'Administration'|@translate}</a></li>
+	{/if}
+	</ul>
+</li>
+	{/if}
Index: /extensions/PwgCarbon_dft/template/menubar_links.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_links.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_links.tpl	(revision 18803)
@@ -0,0 +1,22 @@
+	<li class="liSub">
+
+<span class="dd_wrapper">{'Links'|@translate}</span>
+	<div class="sub" style="opacity: 0; display: none; " >
+	<ul>
+		{foreach from=$block->data item=link}
+			<li>
+				<a href="{$link.URL}" class="external" 
+					{if isset($link.new_window) } onclick="window.open(this.href, '{$link.new_window.NAME}','{$link.new_window.FEATURES}'); return false;"{/if}
+				>
+				{$link.LABEL}
+				</a>
+			</li>
+		{/foreach}
+	</ul>
+</div>
+</li>
+
+
+
+
+
Index: /extensions/PwgCarbon_dft/template/menubar_menu.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_menu.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_menu.tpl	(revision 18803)
@@ -0,0 +1,17 @@
+
+		<li class="liSub">
+		<span class="dd_wrapper">{'Menu'|@translate}</span>
+<div style="opacity: 0; display: none; " class="sub">
+
+
+
+	<ul>
+	{foreach from=$block->data item=link}
+		{if is_array($link)}
+			<li><a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a></li>
+		{/if}
+	{/foreach}
+	</ul>
+</div>
+</li>
+
Index: /extensions/PwgCarbon_dft/template/menubar_specials.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_specials.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_specials.tpl	(revision 18803)
@@ -0,0 +1,16 @@
+	<li class="liSub">
+
+			<span class="dd_wrapper">{'Specials'|@translate}</span>
+
+	<div class="sub" style="opacity: 0; display: none; " >
+
+		<ul>
+		{foreach from=$block->data item=link}
+			<li>
+			<a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a>
+			</li>
+		{/foreach}
+		</ul>
+
+	</div>
+	</li>
Index: /extensions/PwgCarbon_dft/template/menubar_tags.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/menubar_tags.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/menubar_tags.tpl	(revision 18803)
@@ -0,0 +1,25 @@
+<li class="liSub">
+
+<span class="dd_wrapper">{'Related tags'|@translate}</span>
+	<div class="sub" style="opacity: 0; display: none; " >
+
+	<div id="menuTagCloud">
+		{foreach from=$block->data item=tag}
+		<span>
+			<a class="tagLevel{$tag.level}"
+			{if isset($tag.U_ADD)}
+				href="{$tag.U_ADD}"
+				title="{$pwg->l10n_dec('%d image is also linked to current tags', '%d images are also linked to current tags', $tag.counter)}"
+				rel="nofollow"
+				style= "color: black ; text-shadow: none; ">+
+			{else}
+				href="{$tag.URL}"
+				title="{'See images linked to this tag only'|@translate}"
+				style= "color: black ; text-shadow: none; ">
+			{/if}
+				{$tag.name}</a></span>
+{* ABOVE there should be no space between text, </a> and </span> elements to avoid IE8 bug https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=366567 *}
+		{/foreach}
+	</div>
+</div>
+</li>
Index: /extensions/PwgCarbon_dft/template/picture.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/picture.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/picture.tpl	(revision 18803)
@@ -0,0 +1,409 @@
+{* Example of resizeable *}
+{*
+{include file='include/autosize.inc.tpl'}
+*}
+
+{combine_script id='tinyscrollbar' load='header' require='jquery' path='themes/PwgCarbon_dft/js/tinyscrollbar.js'}
+
+{if isset($MENUBAR)}{$MENUBAR}{/if}
+{if isset($errors)}
+<div class="errors">
+  <ul>
+    {foreach from=$errors item=error}
+    <li>{$error}</li>
+    {/foreach}
+  </ul>
+</div>
+{/if}
+
+
+
+{if isset($infos)}
+<div class="infos">
+  <ul>
+    {foreach from=$infos item=info}
+    <li>{$info}</li>
+    {/foreach}
+  </ul>
+</div>
+{/if}
+
+{if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if}
+
+<div id="imageHeaderBar">
+  <div class="browsePath">
+    {$SECTION_TITLE}
+    {$LEVEL_SEPARATOR}{$current.TITLE}
+  </div>
+  <div class="imageNumber"> {$PHOTO}</div>
+
+</div>
+
+
+
+<div id="theImage">
+
+
+	<div id="imgContainer">
+
+{$ELEMENT_CONTENT}
+	
+
+	{if !empty($navbar)}{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+	
+	{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
+
+</div>
+	
+	{if isset($COMMENT_COUNT)}
+	<div id="comments">	
+
+
+		{if $COMMENT_COUNT > 0}
+			<h3>{$pwg->l10n_dec('%d comment', '%d comments',$COMMENT_COUNT)}</h3>
+		{else}
+			<H3>{'There are no comments'|@translate}</h3> 
+		{/if}
+
+{if isset($comment_add)}
+<div id="adcomm">	
+<p>{'Add a comment'|@translate}</p>
+	<form method="post" action="{$comment_add.F_ACTION}" class="filter" id="addComment">
+		<fieldset>
+			
+			{if $comment_add.SHOW_AUTHOR}
+				<label>{'Author'|@translate}<input type="text" name="author"></label>
+			{/if}
+				<label class="addcom"><textarea name="content" id="contentid" rows="6" cols="100">{$comment_add.CONTENT}</textarea></label>
+				<input type="hidden" name="key" value="{$comment_add.KEY}">
+				<input type="submit" value="{'Submit'|@translate}">
+		</fieldset>
+	</form>
+</div>
+{/if}
+		
+		{if isset($comments)}
+			<div id="pictcomm">
+				<div id="scrollbar1">
+					<div class="scrollbar">
+						<div class="track">
+							<div class="thumb">
+								<div class="end">
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="viewport">
+						 <div class="overview">	
+						{include file='comment_list.tpl'}
+						</div>
+					</div>
+				</div>	
+			</div>
+		{/if}
+		
+
+
+</div>
+{/if}{*comments*}
+{footer_script}{literal}
+$(document).ready(function(){
+	$('#scrollbar1').tinyscrollbar( {sizethumb: 10 , size:100 });	
+});
+{/literal}{/footer_script}
+<!--slideshow-->
+{if isset($U_SLIDESHOW_STOP) }
+<p>
+  [ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
+</p>
+{/if}
+
+
+
+
+
+
+
+
+<div class="panel">
+
+<div id="imageToolBar">
+<div class="actionButtons">
+{if count($current.unique_derivatives)>1}
+{footer_script require='jquery'}{literal}
+function changeImgSrc(url,typeSave,typeMap)
+{
+	var theImg = document.getElementById("theMainImage");
+	if (theImg)
+	{
+		theImg.removeAttribute("width");theImg.removeAttribute("height");
+		theImg.src = url;
+		theImg.useMap = "#map"+typeMap;
+	}
+	jQuery('#derivativeSwitchBox .switchCheck').css('visibility','hidden');
+	jQuery('#derivativeChecked'+typeSave).css('visibility','visible');
+	document.cookie = 'picture_deriv='+typeSave+';path={/literal}{$COOKIE_PATH}{literal}';
+}
+jQuery("#derivativeSwitchLink").click(function() {
+	var elt = jQuery("#derivativeSwitchBox");
+	elt.css("left", Math.min( jQuery(this).offset().left, jQuery(window).width() - elt.outerWidth(true) - 5))
+		.toggle();
+});
+jQuery("#derivativeSwitchBox").on("mouseleave click", function() {
+	jQuery(this).hide();
+});
+{/literal}{/footer_script}
+{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+  <span class="pwg-icon pwg-icon-sizes">&nbsp;</span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
+</a>
+<div id="derivativeSwitchBox" class="switchBox">
+  <div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
+  {foreach from=$current.unique_derivatives item=derivative key=derivative_type}
+  <span class="switchCheck" id="derivativeChecked{$derivative_type}"{if $derivative->get_type() ne $current.selected_derivative->get_type()} style="visibility:hidden"{/if}>&#x2714; </span>
+  <a href="javascript:changeImgSrc('{$derivative->get_url()|@escape:javascript}','{$derivative_type}','{$derivative->get_type()}')">
+    {$derivative->get_type()|@translate}<span class="derivativeSizeDetails"> ({$derivative->get_size_hr()})</span>
+  </a><br>
+  {/foreach}
+  {if isset($U_ORIGINAL)}
+  <a href="javascript:phpWGOpenWindow('{$U_ORIGINAL}','xxx','scrollbars=yes,toolbar=no,status=no,resizable=yes')" rel="nofollow">{'Original'|@translate}</a>
+  {/if}
+</div>
+{/strip}
+{/if}
+{strip}{if isset($U_SLIDESHOW_START)}
+	<a href="{$U_SLIDESHOW_START}" title="{'slideshow'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-slideshow"> </span><span class="pwg-button-text">{'slideshow'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($U_METADATA)}
+	<a href="{$U_METADATA}" title="{'Show file metadata'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-camera-info"> </span><span class="pwg-button-text">{'Show file metadata'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($current.U_DOWNLOAD)}
+	<a href="{$current.U_DOWNLOAD}" title="{'Download this file'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-save"> </span><span class="pwg-button-text">{'Download'|@translate}</span>
+	</a>
+{/if}{/strip}
+{if isset($PLUGIN_PICTURE_ACTIONS)}{$PLUGIN_PICTURE_ACTIONS}{/if}
+{strip}{if isset($favorite)}
+	<a href="{$favorite.U_FAVORITE}" title="{if $favorite.IS_FAVORITE}{'delete this photo from your favorites'|@translate}{else}{'add this photo to your favorites'|@translate}{/if}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-favorite-{if $favorite.IS_FAVORITE}del{else}add{/if}"> </span><span class="pwg-button-text">{'Favorites'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($U_SET_AS_REPRESENTATIVE)}
+	<a href="{$U_SET_AS_REPRESENTATIVE}" title="{'set as album representative'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-representative"> </span><span class="pwg-button-text">{'representative'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($U_ADMIN)}
+	<a href="{$U_ADMIN}" title="{'Modify information'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-edit"> </span><span class="pwg-button-text">{'Edit'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($U_CADDIE)}{*caddie management BEGIN*}
+{footer_script}
+{literal}function addToCadie(aElement, rootUrl, id)
+{
+if (aElement.disabled) return;
+aElement.disabled=true;
+var y = new PwgWS(rootUrl);
+y.callService(
+	"pwg.caddie.add", {image_id: id} ,
+	{
+		onFailure: function(num, text) { alert(num + " " + text); document.location=aElement.href; },
+		onSuccess: function(result) { aElement.disabled = false; }
+	}
+	);
+}{/literal}
+{/footer_script}
+	<a href="{$U_CADDIE}" onclick="addToCadie(this, '{$ROOT_URL}', {$current.id}); return false;" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+		<span class="pwg-icon pwg-icon-caddie-add"> </span><span class="pwg-button-text">{'Caddie'|@translate}</span>
+	</a>
+{/if}{/strip}{*caddie management END*}
+</div>
+</div>{*<!-- imageToolBar -->*}
+
+<table id="standard" class="infoTable" summary="{'Some info about this picture'|@translate}">
+{if $display_info.author}
+  <tr>
+    <td class="label">{'Author'|@translate}</td>
+    <td class="value">{if isset($INFO_AUTHOR)}{$INFO_AUTHOR}{else}{'N/A'|@translate}{/if}</td>
+{/if}
+{if $display_info.created_on}
+    <td class="label">{'Created on'|@translate}</td>
+    <td class="value">{if isset($INFO_CREATION_DATE)}{$INFO_CREATION_DATE}{else}{'N/A'|@translate}{/if}</td>
+  </tr>
+{/if}
+  
+{if $display_info.posted_on}
+  <tr >
+    <td class="label">{'Posted on'|@translate}</td>
+    <td class="value">{$INFO_POSTED_DATE}</td>
+{/if}
+{if $display_info.dimensions}
+    <td class="label">{'Dimensions'|@translate}</td>
+    <td class="value">{if isset($INFO_DIMENSIONS)}{$INFO_DIMENSIONS}{else}{'N/A'|@translate}{/if}</td>
+  </tr>
+{/if}
+
+{if $display_info.file}
+  <tr>
+    <td class="label">{'File'|@translate}</td>
+    <td class="value">{$INFO_FILE}</td>
+{/if}
+{if $display_info.filesize}
+    <td class="label">{'Filesize'|@translate}</td>
+    <td class="value">{if isset($INFO_FILESIZE)}{$INFO_FILESIZE}{else}{'N/A'|@translate}{/if}</td>
+  </tr>
+{/if}
+  
+{if $display_info.tags}
+  <tr>
+    <td class="label">{'Tags'|@translate}</td>
+    <td class="value">
+      {if isset($related_tags)}
+        {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}
+        <a href="{$tag.URL}">{$tag.name}</a>{/foreach}
+      {/if}
+    </td>
+{/if}
+{if $display_info.categories}
+    <td class="label">{'Categories'|@translate}</td>
+    <td class="value">
+      {if isset($related_categories)}
+      <ul>
+        {foreach from=$related_categories item=cat}
+        <li>{$cat}</li>
+        {/foreach}
+      </ul>
+      {/if}
+    </td>
+  </tr>
+{/if}
+  
+{if $display_info.visits}
+  <tr>
+    <td class="label">{'Visits'|@translate}</td>
+    <td class="value">{$INFO_VISITS}</td>
+ 
+{/if}
+
+{if $display_info.rating_score and isset($rate_summary)}
+	
+		<td class="label">{'Rating score'|@translate}</td>
+		<td class="value" id="ratingSummary">
+		{if $rate_summary.count}
+			{$rate_summary.score}({assign var='rate_text' value='%d rates'|@translate}{$pwg->sprintf($rate_text, $rate_summary.count)})
+			{else}
+			{'no rate'|@translate}
+		{/if}
+		</td> 
+	</tr>
+{/if}
+<tr height="24px">
+{if isset($rating)}
+		<td colspan="2" class="label" >
+			<span id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</span>
+		</td>
+		<td colspan="2" class="value">
+			<form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
+			<div>&nbsp;
+			{foreach from=$rating.marks item=mark name=rate_loop}
+			{if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
+			  <input type="button" name="rate" value="{$mark}" class="rateButtonSelected" title="{$mark}">
+			{else}
+			  <input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}">
+			{/if}
+			{/foreach}
+			{strip}{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+			{combine_script id='rating' load='async' require='core.scripts' path='themes/default/js/rating.js'}
+			{footer_script}
+				var _pwgRatingAutoQueue = _pwgRatingAutoQueue||[];
+				_pwgRatingAutoQueue.push( {ldelim}rootUrl: '{$ROOT_URL}', image_id: {$current.id},
+					onSuccess : function(rating) {ldelim}
+						var e = document.getElementById("updateRate");
+						if (e) e.innerHTML = "{'Update your rating'|@translate|@escape:'javascript'}";
+						e = document.getElementById("ratingScore");
+						if (e) e.innerHTML = rating.score;
+						e = document.getElementById("ratingCount");
+						if (e) e.innerHTML = "({'%d rates'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
+					{rdelim}{rdelim} );
+			{/footer_script}
+			{/strip}
+			</div>
+			</form>
+		</td>
+	</tr>
+{/if}
+
+{if $display_info.privacy_level and isset($available_permission_levels) }
+	<tr id="Privacy">
+		<td colspan="2" class="label">{'Who can see this photo?'|@translate}</td>
+		<td colspan="2" class="value"> 
+<script type="text/javascript">
+{literal}function setPrivacyLevel(selectElement, rootUrl, id, level)
+{
+selectElement.disabled = true;
+var y = new PwgWS(rootUrl);
+y.callService(
+	"pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
+	{
+		method: "POST",
+		onFailure: function(num, text) { selectElement.disabled = false; alert(num + " " + text); },
+		onSuccess: function(result) { selectElement.disabled = false; }
+	}
+	);
+}{/literal}
+</script>
+	<select onchange="setPrivacyLevel(this, '{$ROOT_URL|@escape:'javascript'}', {$current.id}, this.options[selectedIndex].value)">
+		{foreach from=$available_permission_levels item=label key=level}
+		<option label="{$label}" value="{$level}"{if $level == $current.level} selected="selected"{/if}>{$label}</option>
+		{/foreach}
+	</select>
+	</td></tr>
+{/if}
+
+</table>
+
+{if isset($metadata)}
+<table id="Metadata" class="infoTable2" summary="{'Some more (technical) info about this picture'|@translate}">
+{foreach from=$metadata item=meta}
+  <tr>
+    <th colspan="2">{$meta.TITLE}</th>
+  </tr>
+  {foreach from=$meta.lines item=value key=label}
+  <tr>
+    <td class="label">{$label}</td>
+    <td class="value">{$value}</td>
+  </tr>
+  {/foreach}
+{/foreach}
+</table>
+{/if}
+
+</div> <!-- PANEL -->
+
+<a class="trigger" href="#">infos</a>
+{footer_script}{literal}
+$(document).ready(function(){
+	$(".trigger").click(function(){
+		$(".panel").toggle("fast");
+		$(this).toggleClass("active");
+		return false;
+	});
+});
+{/literal}{/footer_script}
+
+
+</div>{*image*}
+
+
+
+
+
+{if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if}
+
+
+
+</div>
Index: /extensions/PwgCarbon_dft/template/picture_content.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/picture_content.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/picture_content.tpl	(revision 18803)
@@ -0,0 +1,39 @@
+<div id="imgContent">
+	
+
+	<img src="{$current.selected_derivative->get_url()}" {$current.selected_derivative->get_size_htm()} alt="{$ALT_IMG}" id="theMainImage"  title="{if isset($COMMENT_IMG)}{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}{else}{$current.TITLE|@replace:'"':' '} - {$ALT_IMG}{/if}">
+
+	
+
+{if $DISPLAY_NAV_THUMB}
+	<div class="navThumbs">
+		
+			<a class="navThumb" id="thumbPrevHov" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" rel="prev">
+		{if isset($previous)}
+		<img class="linkPrev" src="{$previous.derivatives.square->get_url()}" alt="{$previous.TITLE}">
+		
+			</a>
+		{/if}
+		{if isset($next)}
+			<a class="navThumb" id="thumbNextHov" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" rel="next">
+				<img class="linkNext" src="{$next.derivatives.square->get_url()}" alt="{$next.TITLE}">
+			</a>
+		{/if}
+	</div>
+
+{else}
+	<div id="imgHoverNav">
+		{if isset($previous)}
+		<a id="imgPrevHov" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" alt="{$previous.TITLE}">
+		</a>
+		{/if}
+
+		{if isset($next)}
+		<a id="imgNextHov" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" alt="{$next.TITLE}">
+		</a>
+		{/if}
+	</div>
+
+{/if}
+
+</div>
Index: /extensions/PwgCarbon_dft/template/picture_nav_buttons.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/picture_nav_buttons.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/picture_nav_buttons.tpl	(revision 18803)
@@ -0,0 +1,124 @@
+<div class="navigationButtons">
+<div id="groupbuttons">
+{if $DISPLAY_NAV_BUTTONS or isset($slideshow)}
+{if isset($slideshow)}
+{if isset($slideshow.U_INC_PERIOD)}
+	<a href="{$slideshow.U_INC_PERIOD}" title="{'Reduce diaporama speed'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-clock-minus">&nbsp;</span><span class="pwg-button-text">{'Reduce diaporama speed'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button">
+		<span class="pwg-icon pwg-icon-clock-minus">&nbsp;</span><span class="pwg-button-text">{'Reduce diaporama speed'|@translate}</span>
+	</span>
+{/if}
+{if isset($slideshow.U_DEC_PERIOD)}
+	<a href="{$slideshow.U_DEC_PERIOD}" title="{'Accelerate diaporama speed'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-clock-plus">&nbsp;</span><span class="pwg-button-text">{'Accelerate diaporama speed'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button">
+		<span class="pwg-icon pwg-icon-clock-plus">&nbsp;</span><span class="pwg-button-text">{'Accelerate diaporama speed'|@translate}</span>
+	</span>
+{/if}
+{/if}
+{if isset($slideshow.U_START_REPEAT)}
+	<a href="{$slideshow.U_START_REPEAT}" title="{'Repeat the slideshow'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-repeat-play">&nbsp;</span><span class="pwg-button-text">{'Repeat the slideshow'|@translate}</span>
+	</a>
+{/if}
+{if isset($slideshow.U_STOP_REPEAT)}
+	<a href="{$slideshow.U_STOP_REPEAT}" title="{'Not repeat the slideshow'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-repeat-stop">&nbsp;</span><span class="pwg-button-text">{'Not repeat the slideshow'|@translate}</span>
+	</a>
+{/if}
+{strip}{if isset($first)}
+	<a href="{$first.U_IMG}" title="{'First'|@translate} : {$first.TITLE}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-arrowstop-w">&nbsp;</span><span class="pwg-button-text">{'First'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button">
+		<span class="pwg-icon pwg-icon-arrowstop-w">&nbsp;</span><span class="pwg-button-text">{'First'|@translate}</span>
+	</span>
+{/if}{/strip}
+{strip}{if isset($previous)}
+	<a href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-arrow-w">&nbsp;</span><span class="pwg-button-text">{'Previous'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button">
+		<span class="pwg-icon pwg-icon-arrow-w">&nbsp;</span><span class="pwg-button-text">{'Previous'|@translate}</span>
+	</span>
+{/if}{/strip}
+{if isset($slideshow.U_START_PLAY)}
+	<a href="{$slideshow.U_START_PLAY}" title="{'Play of slideshow'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-play">&nbsp;</span><span class="pwg-button-text">{'Play of slideshow'|@translate}</span>
+	</a>
+{/if}
+{if isset($slideshow.U_STOP_PLAY)}
+	<a href="{$slideshow.U_STOP_PLAY}" title="{'Pause of slideshow'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-pause">&nbsp;</span><span class="pwg-button-text">{'Pause of slideshow'|@translate}</span>
+	</a>
+{/if}
+{strip}{if isset($U_UP) and !isset($slideshow)}
+	<a href="{$U_UP}" title="{'Thumbnails'|@translate}" class="pwg-state-default pwg-button">
+		<span class="pwg-icon pwg-icon-arrow-n">&nbsp;</span><span class="pwg-button-text">{'Thumbnails'|@translate}</span>
+	</a>
+{/if}{/strip}
+{strip}{if isset($next)}
+	<a href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" class="pwg-state-default pwg-button pwg-button-icon-right">
+		<span class="pwg-icon pwg-icon-arrow-e">&nbsp;</span><span class="pwg-button-text">{'Next'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button pwg-button-icon-right">
+		<span class="pwg-icon pwg-icon-arrow-e">&nbsp;</span><span class="pwg-button-text">{'Next'|@translate}</span>
+	</span>
+{/if}{/strip}
+{strip}{if isset($last)}
+	<a href="{$last.U_IMG}" title="{'Last'|@translate} : {$last.TITLE}" class="pwg-state-default pwg-button pwg-button-icon-right">
+		<span class="pwg-icon pwg-icon-arrowstop-e"></span><span class="pwg-button-text">{'Last'|@translate}</span>
+	</a>
+{else}
+	<span class="pwg-state-disabled pwg-button pwg-button-icon-right">
+		<span class="pwg-icon pwg-icon-arrowstop-e">&nbsp;</span><span class="pwg-button-text">{'Last'|@translate}</span>
+	</span>
+{/if}{/strip}
+{/if}
+</div>
+</div>
+
+{strip}
+{footer_script}
+document.onkeydown = function(e){ldelim}
+	e=e||window.event;
+	if (e.altKey) return true;
+	var target=e.target||e.srcElement;
+	if (target && target.type) return true;{* an input editable element *}
+	var keyCode=e.keyCode||e.which, docElem=document.documentElement, url;
+	switch(keyCode){ldelim}
+{if isset($next)}
+	case 63235: case 39: if (e.ctrlKey || docElem.scrollLeft==docElem.scrollWidth-docElem.clientWidth)url="{$next.U_IMG}"; break;
+{/if}
+{if isset($previous)}
+	case 63234: case 37: if (e.ctrlKey || docElem.scrollLeft==0)url="{$previous.U_IMG}"; break;
+{/if}
+{if isset($first)}
+	{* Home *}case 36: if (e.ctrlKey)url="{$first.U_IMG}"; break;
+{/if}
+{if isset($last)}
+	{* End *}case 35: if (e.ctrlKey)url="{$last.U_IMG}"; break;
+{/if}
+{if isset($U_UP) and !isset($slideshow)}
+	{* Up *}case 38: if (e.ctrlKey)url="{$U_UP}"; break;
+{/if}
+{if isset($slideshow.U_START_PLAY)}
+	{* Pause *}case 32: url="{$slideshow.U_START_PLAY}"; break;
+{/if}
+{if isset($slideshow.U_STOP_PLAY)}
+	{* Play *}case 32: url="{$slideshow.U_STOP_PLAY}"; break;
+{/if}
+	}
+	if (url) {ldelim}window.location=url.replace("&amp;","&"); return false;}
+	return true;
+}
+{/footer_script}
+{/strip}
Index: /extensions/PwgCarbon_dft/template/thumbnails.tpl
===================================================================
--- /extensions/PwgCarbon_dft/template/thumbnails.tpl	(revision 18803)
+++ /extensions/PwgCarbon_dft/template/thumbnails.tpl	(revision 18803)
@@ -0,0 +1,66 @@
+{if !empty($thumbnails)}{strip}
+{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
+{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
+{*define_derivative name='derivative_params' width=160 height=90 crop=true*}
+{html_style}
+{*Set some sizes according to maximum thumbnail width and height*}
+
+.thumbnails .wrap2{ldelim}
+	height: {$derivative_params->max_height()+3}px;
+}
+{if $derivative_params->max_width() > 600}
+.thumbLegend {ldelim}font-size: 130%}
+{else}
+{if $derivative_params->max_width() > 400}
+.thumbLegend {ldelim}font-size: 110%}
+{else}
+.thumbLegend {ldelim}font-size: 90%}
+{/if}
+{/if}
+{/html_style}
+
+
+
+{foreach from=$thumbnails item=thumbnail}
+{assign var=derivative value=$pwg->derivative($derivative_params, $thumbnail.src_image)}
+	<li>
+	<span class="wrap1">
+		<span class="wrap2">
+		<div class="thumbnail">		
+			<a href="{$thumbnail.URL}">
+				<img class="thumbnail" src="{$derivative->get_url()}" alt="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}">
+				{footer_script}{literal}
+				jQuery(function($) {
+					$(".thumbnail").reflect({height:0.3,opacity:0.3});
+				});
+				{/literal}{/footer_script}
+			</a>
+			{if $SHOW_THUMBNAIL_CAPTION }
+			<div class=description>
+				<span class="thumbLegend">
+						<span class="thumbName">{$thumbnail.NAME}</span>
+						{if !empty($thumbnail.icon_ts)}
+							<img title="{$thumbnail.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent.png" alt="(!)">
+						{/if}
+					{if isset($thumbnail.NB_COMMENTS)}
+						<span class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments">
+							<br>
+							{$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)}
+						</span>
+					{/if}
+					{if isset($thumbnail.NB_HITS)}
+						<span class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits">
+							<br>
+							{$pwg->l10n_dec('%d hit', '%d hits',$thumbnail.NB_HITS)}
+						</span>
+					{/if}
+				</span>
+			</div>
+			</div>				
+		</span>
+		{/if}
+	</span>
+	</li>
+
+{/foreach}{/strip}
+{/if}
Index: /extensions/PwgCarbon_dft/theme.css
===================================================================
--- /extensions/PwgCarbon_dft/theme.css	(revision 18803)
+++ /extensions/PwgCarbon_dft/theme.css	(revision 18803)
@@ -0,0 +1,1119 @@
+
+
+html {
+    height: 100%;
+}
+
+BODY {
+    background-image: url("images/background/bg1.png");
+    background-color: #FFD11D;
+    padding: 0px;
+    margin: 0px;
+    min-width: 800px;
+    width: 100%;
+    color: #FFD11D;
+}
+
+H1, H3, INPUT.rateButtonSelected {
+    color: #FFFFFF;
+}
+
+A, INPUT.rateButton {
+    color: #FFFFFF;
+    border: medium none;
+    text-decoration: none;
+}
+
+A:hover {
+    color: #C2C2C2;
+    text-decoration: none;
+    border-bottom: medium none;
+}
+
+FIELDSET {
+    border: 0px none;
+    background: url("images/bg_content.png") repeat scroll 0px 0px transparent;
+}
+
+INPUT[type="submit"], INPUT[type="reset"] {
+    cursor: pointer;
+    background: -moz-linear-gradient(center top , #555555, #2C2C2C) repeat scroll 0% 0% transparent;
+    margin: 0px 5px;
+    padding-bottom: 4px;
+    min-width: 150px;
+    width: auto;
+    height: 25px;
+    text-align: center;
+    color: #C5C5C5;
+    border-radius: 8px 8px 8px 8px;
+    text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.2);
+    box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5), 0px -1px 0px rgba(255, 255, 255, 0.4);
+}
+
+INPUT[type="submit"]:hover, INPUT[type="reset"]:hover {
+    color: #222222;
+    background: -moz-linear-gradient(center top , #777777, #333333) repeat scroll 0% 0% transparent;
+}
+
+INPUT[type="submit"]:active, INPUT[type="reset"]:active {
+    color: #000000;
+    background: -moz-linear-gradient(center top , #555555, #2C2C2C) repeat scroll 0% 0% transparent;
+    box-shadow: 1px 1px 10px #000000 inset, 0px 1px 0px rgba(255, 255, 255, 0.4);
+}
+
+INPUT[type="text"], INPUT[type="password"], INPUT[type="file"] {
+    margin: 0px 5px;
+    padding: 0px;
+    background: none repeat scroll 0px 0px #FFFFFF;
+    min-width: 150px;
+    width: auto;
+    height: 22px;
+    border: 0px none;
+    color: #000000 ! important;
+    border-radius: 3px 3px 3px 3px;
+}
+
+INPUT[type="text"]:hover, INPUT[type="password"]:hover, INPUT[type="file"]:hover, SELECT:hover {
+    background: -moz-linear-gradient(right center , #FFFFFF 20%, #E5E5E5 80%) repeat scroll 0% 0% transparent;
+}
+
+SELECT.categoryList:hover {
+    background: none repeat scroll 0px 0px #FFFFFF;
+}
+
+SELECT {
+    margin: 0px 5px;
+    padding: 0px;
+    background: none repeat scroll 0px 0px #FFFFFF;
+    min-width: 150px;
+    width: auto;
+    height: 22px;
+    border: 0px none;
+    color: #000000 ! important;
+    border-radius: 3px 0px 0px 3px;
+}
+
+LEGEND {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 110%;
+    margin-top: 25px;
+}
+
+.properties LI {
+    list-style: none outside none;
+}
+
+/*======================================================Header======================================================*/
+#header_bgDef {
+    padding-top: 30px;
+    background-image: url("images/background/bg4.png");
+    background-color: #FFD11D;
+    height: 140px;
+    width: inherit;
+}
+
+#Header {
+    background-image: url("images/bg_header.png");
+    background-repeat: repeat-x;
+    z-index: 10;
+    display: block;
+}
+
+#header-content {
+    position: relative;
+    width: 92%;
+    margin-left: auto;
+    margin-right: auto;
+}
+
+#theHeader {
+    display: block;
+    position: absolute;
+    right: 20px;
+}
+
+#logo {
+    background: url("images/piwigo_org_logo.png") no-repeat scroll 0% 0% transparent;
+    width: 500px;
+    display: block;
+    position: absolute;
+    height: 100px;
+    margin-top: 20px;
+}
+
+#headertransi {
+    background: none repeat scroll 0px 0px #FFD11D;
+    height: 12px;
+}
+
+#headertransiH {
+    background-image: url("images/htransi.png");
+    background-repeat: repeat-x;
+    height: 10px;
+}
+
+#headertransiB {
+    height: 2px;
+    background-image: url("images/btransi.png");
+    background-repeat: repeat;
+}
+
+/*======================================================Content======================================================*/
+#the_page {
+    z-index: 100;
+    width: 100%;
+    height: 0px;
+}
+
+#bg_th_left {
+    background-image: url("images/theme/sprite_theme_left.png");
+    background-position: 0px 0px;
+    width: 400px;
+    height: 400px;
+    float: left;
+    position: absolute;
+    z-index: -999;
+}
+
+.content .titrePage {
+    position: relative;
+}
+
+.categoryActions {
+    float: none;
+    display: block;
+    position: absolute;
+    right: 10px;
+}
+
+#page_content {
+    z-index: 100000;
+    background: url("images/border_rigth.png") repeat-y scroll 0px 0px transparent;
+    min-width: 680px;
+    width: 80%;
+    height: auto;
+    min-height: 530px;
+    margin: 2px auto 30px;
+}
+
+#page_content1 {
+    background: url("images/bg_content.png") repeat scroll 0px 0px transparent;
+    margin-left: 2px;
+}
+
+#page_content2 {
+    background: url("images/border_rigth.png") repeat-y scroll right center transparent;
+    padding-top: 10px;
+    min-height: 500px;
+    padding-bottom: 20px;
+}
+
+.content {
+    margin-left: 5px;
+    margin-right: 5px;
+    margin-bottom: 30px;
+    height: auto;
+    padding-top: 50px;
+}
+
+H2 {
+    color: #FFFFFF;
+    background-image: url("images/border_dt.png");
+    background-repeat: repeat-x;
+    background-position: center bottom;
+    height: 25px;
+    margin: 0px 5px 5px;
+    padding: 5px 0px 0px;
+}
+
+#fullTagCloud {
+    background: url("images/bg_content.png") repeat scroll 0px 0px transparent;
+    min-height: 500px;
+}
+
+.switchBox {
+    background-color: gray;
+    z-index: 1000;
+    margin-top: 30px;
+}
+
+#sortOrderBox {
+    width: 250px;
+}
+
+/*======================================================icon======================================================*/
+.pwg-icon {
+    background-image: url("../default/s26/outline_ffffff.png");
+}
+
+A:hover .pwg-icon {
+    background-image: url("../default/s26/outline_808080.png");
+}
+
+.pwg-icon-filter {
+    background-image: url("../default/s26/outline_005e89.png");
+}
+
+/*======================================================Thumbnail page======================================================*/
+.thumbnailCategory {
+    margin-left: auto;
+    margin-right: auto;
+}
+
+.illustration {
+    position: relative;
+}
+
+.content ul.thumbnails .wrap1 {
+    display: inline-block;
+    margin: 20px 20px 5px;
+    text-align: center;
+    vertical-align: top;
+}
+
+.content UL.thumbnails .wrap2 {
+    height: 140px;
+}
+
+.content UL.thumbnails .wrap2 A {
+    margin-top: 10px;
+}
+
+.thumbnail *:before {
+    content: "";
+}
+
+.thumbnail {
+    position: relative;
+}
+
+.thumbnail .description, .thumbnailCategory DIV.description {
+    height: 80px;
+    padding-top: 0px;
+    background: none repeat scroll 0px 0px #000000;
+    overflow: hidden;
+    color: #FFFFFF;
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    z-index: 100;
+    opacity: 0;
+    -moz-transition: bottom 1s ease 0s, width 1s ease 0s, opacity 1s ease 0s;
+    width: 100%;
+}
+
+.thumbnail:hover .description, .thumbnailCategory:hover DIV.description {
+    background: none repeat scroll 0px 0px #000000;
+    opacity: 0.65;
+    -moz-transition: bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
+}
+
+.thumbnails SPAN.thumbLegend {
+    height: 80px;
+}
+
+/*======================================================Footer======================================================*/
+#footer {
+    background-repeat: no-repeat;
+    background-position: right center;
+    width: 100%;
+    bottom: 0px;
+    height: 400px;
+    position: fixed;
+    top: 100%;
+    margin: -400px auto 0px;
+    z-index: -999;
+}
+
+#bg_th_right {
+    background-image: url("images/theme/sprite_theme_right.png");
+    background-position: 0px 0px;
+    width: 400px;
+    height: 400px;
+    float: right;
+}
+
+#copyright {
+    position: relative;
+    background-color: transparent;
+    text-align: left;
+    padding-left: 30px;
+    margin-bottom: 0px;
+    float: left;
+    height: 20px;
+    padding-top: 380px;
+}
+
+/*======================================================Menu======================================================*/
+#menubar {
+    width: 24em;
+    margin-left: 0px;
+}
+
+#menubar UL {
+    list-style-type: none;
+    list-style-position: inside;
+    padding: 0px 0px 0px 2px;
+}
+
+#menubar a, #menubar dt, div#menubar dl:hover dd, div#menubar ul li:hover ul, div#menubar ul ul li:hover ul, div#menubar ul ul ul li:hover ul, div#menubar ul ul ul ul li:hover ul, div#menubar ul ul ul ul ul li:hover ul {
+    display: block;
+}
+
+input:focus {
+    outline-style: none;
+}
+
+#menubar p {
+    color: #757575;
+}
+
+#menu {
+    color: #FFFFFF;
+    height: 30px;
+    line-height: 30px;
+    padding: 0px;
+    text-decoration: none;
+    text-shadow: 0px 0px 2px #000000;
+    text-transform: uppercase;
+}
+
+#nav_wrapper {
+    position: absolute;
+    height: 30px;
+    min-width: 800px;
+    width: 100%;
+    margin: auto;
+    background: url("images/menu/back_nav.png") repeat-x scroll 0px 0px transparent;
+    z-index: 1000;
+    top: 0px;
+    left: 0px;
+}
+
+span#menu_start {
+    background: url("images/menu/li_border.png") no-repeat scroll right top transparent;
+    float: left;
+    display: block;
+    height: 30px;
+    width: 85px;
+}
+
+span#menu_start a {
+    background: url("images/menu/home_nav.png") no-repeat scroll left top transparent;
+    width: 52px;
+    height: 30px;
+    text-indent: -9999px;
+    padding: 0px;
+    margin: 0px 20px 0px 25px;
+    display: block;
+    line-height: 46px;
+}
+
+span#menu_start a:hover {
+    background-position: left -30px;
+}
+
+span#menu_start a:active {
+    background-position: left -60px;
+}
+
+ul#topnav {
+    background: url("images/menu/li_border.png") no-repeat scroll right top transparent;
+    margin: 0px;
+    padding: 0px 2px 0px 0px;
+    list-style: none outside none;
+    height: 30px;
+    position: relative;
+    z-index: 999;
+    display: inline-block;
+}
+
+ul#topnav .liSub {
+    float: left;
+    position: relative;
+    background: url("images/menu/li_border.png") no-repeat scroll right top transparent;
+    padding-right: 2px;
+}
+
+ul#topnav span dt {
+    padding: 0px 16px;
+}
+
+ul#topnav span dt:hover {
+    background: url("images/menu/back_nav_hover.png") repeat-x scroll 0px 0px transparent;
+}
+
+#menuTagCloud a {
+    color: #000000;
+    text-decoration: none;
+    text-shadow: none;
+    z-index: 200;
+}
+
+.sub p {
+    color: #4C4C4C;
+    font-size: 13px;
+    text-shadow: none;
+    text-transform: none;
+}
+
+ul#topnav li .sub, ul#topnav li #loger {
+    position: absolute;
+    top: 30px;
+    background: none repeat scroll 0px 0px #FFFFFF;
+    padding: 5px 8px 10px;
+    float: left;
+    max-width: 100em;
+    min-width: 200px;
+    display: none;
+    max-height: 500px;
+    overflow: auto;
+    border-bottom-right-radius: 10px;
+    border-bottom-left-radius: 10px;
+    box-shadow: 0px 0px 5px #5A5A5A;
+    z-index: 0;
+}
+
+.level2, .level3, .level4, .level5 {
+    border: medium none ! important;
+}
+
+ul#topnav li .sub {
+    z-index: 100;
+}
+
+#quickconnect {
+    width: 225px;
+}
+
+.mcol {
+    width: 100%;
+}
+
+.menubarFilter {
+    margin: 0px;
+}
+
+#menu_cat_act {
+    border-bottom: 1px solid #CBCBCB;
+    margin-bottom: 5px;
+    height: 30px;
+}
+
+#filter {
+    width: 26px;
+    height: 26px;
+    background: none repeat scroll 0px 0px transparent;
+    padding-left: 2px;
+}
+
+#nbImg {
+    height: 30px;
+    float: right;
+    line-height: 10px;
+}
+
+ul#topnav li .sub ul, ul#topnav #loger ul {
+    list-style: none outside none;
+    margin: 0px 5px 0px 8px;
+    padding: 0px;
+}
+
+ul#topnav .sub ul li, ul#topnav #loger ul li, ul#topnav .sub #menuTagCloud div {
+    width: 95%;
+    color: #757575;
+    background: none repeat scroll 0px 0px transparent;
+    font-size: 10px;
+    margin-bottom: 2px;
+    border: 1px solid #CBCBCB;
+    border-radius: 10px 10px 10px 10px;
+}
+
+ul#topnav .sub ul li.selected {
+    text-decoration: none;
+    border: 1px solid #CBCBCB;
+    border-radius: 10px 10px 10px 10px;
+}
+
+ul#topnav .sub ul li.selected a, ul#topnav .sub ul li.selected a:hover {
+    color: #4C4C4C;
+    text-decoration: none;
+    border: medium none;
+}
+
+ul#topnav .sub ul li.selected a {
+    background: url("images/menu/navlist_arrow_hover.png") no-repeat scroll 0px 5px transparent;
+}
+
+ul#topnav .sub ul .level1 li, ul#topnav .sub ul .level1 li .selected {
+    border: medium none;
+    background-image: none;
+}
+
+ul#topnav .sub ul li a, ul#topnav #loger ul li a {
+    float: none;
+    text-indent: 0px;
+    height: auto;
+    background: url("images/menu/navlist_arrow.png") no-repeat scroll 0px 5px transparent;
+    margin: 0px 8px;
+    display: block;
+    text-decoration: none;
+    color: #757575;
+    font-size: 1.1em;
+    text-shadow: none;
+    text-transform: none;
+    line-height: 17px;
+    padding: 0px 0px 0px 12px;
+}
+
+ul#topnav .sub ul li a:hover, ul#topnav .sub #menuTagCloud div a:hover {
+    color: #4C4C4C;
+    background: url("images/menu/navlist_arrow_hover.png") no-repeat scroll 0px 5px transparent;
+    text-decoration: underline;
+}
+
+span.dd_wrapper, span.cl_wrapper, span.cc_wrapper, span dt {
+    float: left;
+    padding: 0px 16px 6px;
+}
+
+li.liSub:hover span.dd_wrapper, li.liSub:hover span.cl_wrapper, .activate {
+    z-index: 100;
+    background: url("images/menu/back_nav_hover.png") repeat-x scroll 0px 0px transparent;
+    color: #C2C2C2;
+    padding: 0px 16px 6px;
+    text-shadow: none;
+}
+
+li.liSub:hover span.cc_wrapper {
+    color: #8F8F8F;
+}
+
+.close {
+    cursor: pointer;
+    height: 16px;
+    width: 16px;
+    background: url("images/menu/close.png") no-repeat scroll 0px 0px transparent;
+    float: right;
+}
+
+.close:hover {
+    background: url("images/menu/close.png") no-repeat scroll 0px -16px transparent;
+}
+
+.sub {
+    max-width: 600px;
+}
+
+#search {
+    position: absolute;
+    width: 240px;
+    right: 0px;
+    margin-top: 4px;
+    height: 22px;
+    display: inline-block;
+}
+
+#quicksearch {
+    float: left;
+    width: 240px;
+}
+
+#quicksearch input[type="text"] {
+    float: left;
+    background: url("images/menu/search.png") no-repeat scroll left top transparent;
+    width: 172px;
+    height: 22px;
+    padding: 0px 0px 0px 4px;
+    margin: 0px 1px 0px 0px;
+    border: 0px none;
+    font-size: 13px;
+    color: #CCCCCC ! important;
+    min-width: 0px;
+}
+
+#quicksearch input[type="text"]:hover {
+    background-position: left bottom;
+}
+
+#quicksearch input[type="submit"] {
+    float: left;
+    padding: 0px;
+    border: 0px none;
+    height: 22px;
+    width: 23px;
+    background: url("images/menu/search.png") no-repeat scroll right top transparent;
+    font-size: 13px;
+    cursor: pointer;
+    min-width: 0px;
+    margin-left: 2px;
+    border-radius: 0px 0px 0px 0px;
+    box-shadow: none;
+}
+
+#quicksearch input[type="submit"]:hover {
+    background-position: right bottom;
+}
+
+#loger {
+    line-height: 25px;
+    width: 220px;
+    position: absolute;
+    top: 30px;
+    background: none repeat scroll 0px 0px #FFFFFF;
+    padding: 10px;
+    float: left;
+    max-width: 100em;
+    min-width: 200px;
+    display: none;
+    z-index: 0;
+}
+
+#loger p {
+    color: #000000;
+    margin-bottom: 20px;
+    text-shadow: none;
+}
+
+#log {
+    color: #000000;
+    text-transform: none;
+    text-shadow: none;
+    margin-bottom: 20px;
+}
+
+ul#topnav li .sub ul#loged {
+    width: 200px;
+}
+
+#log INPUT[type="password"] {
+    border: 0px none;
+    height: 22px;
+    background: url("images/menu/password.png") no-repeat scroll left top transparent;
+    width: 175px;
+}
+
+#log INPUT[type="password"]:hover {
+    background-position: left bottom;
+}
+
+#log INPUT[type="text"] {
+    border: 0px none;
+    height: 22px;
+    background: url("images/menu/user.png") no-repeat scroll left top transparent;
+    width: 175px;
+}
+
+#log INPUT[type="text"]:hover {
+    background-position: left bottom;
+}
+
+#go INPUT[type="submit"] {
+    color: transparent;
+    border: 0px none;
+    height: 32px;
+    width: 64px;
+    min-width: inherit;
+    background: url("images/menu/go.png") no-repeat scroll left top transparent;
+    margin-left: 65px;
+    margin-top: 20px;
+    box-shadow: none;
+    text-shadow: none;
+}
+
+#go INPUT[type="submit"]:hover {
+    background-position: left bottom;
+}
+
+#topnav dt a:hover {
+    color: #C2C2C2;
+}
+
+/*=========================================picture======================================================*/
+#thePicturePage #page_content {
+    display: table;
+}
+
+#thePicturePage #page_content1 {
+    padding-left: 20px;
+}
+
+#thePicturePage #page_content2 {
+    padding-right: 20px;
+}
+
+#theImage > IMG {
+    margin-top: 20px;
+    margin-bottom: 20px;
+    position: relative;
+}
+
+#imageHeaderBar {
+    margin: 0px 0px 20px;
+    padding: 50px 0px 0px;
+}
+
+#groupbuttons {
+    margin: auto;
+    width: 200px;
+}
+
+#slideshow #groupbuttons {
+    width: 30px;
+}
+
+#imgContainer {
+    position: relative;
+    margin-left: auto;
+    margin-right: auto;
+    text-align: left;
+}
+
+#imgContent {
+    position: relative;
+    display: table;
+    margin: auto;
+}
+
+.navThumbs, #imgHoverNav {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    height: 100%;
+    width: 100%;
+    z-index: 10;
+}
+
+#imgHoverNav a {
+    outline: medium none;
+}
+
+#imgPrevHov, #imgNextHov, #thumbPrevHov, #thumbNextHov {
+    width: 48%;
+    height: 100%;
+    display: block;
+    border: medium none ! important;
+    opacity: 0;
+    position: relative;
+}
+
+#imgPrevHov {
+    left: 0px;
+    float: left;
+    margin-left: 3px;
+    background: url("images/picture/imgPrevHover.png") no-repeat scroll left 45% transparent;
+}
+
+#imgNextHov {
+    right: 0px;
+    float: right;
+    margin-right: 3px;
+    background: url("images/picture/imgNextHover.png") no-repeat scroll right 45% transparent;
+}
+
+#thumbPrevHov {
+    left: 0px;
+    float: left;
+    background: none repeat scroll 0px 0px transparent;
+}
+
+#thumbNextHov {
+    right: 0px;
+    float: right;
+    background: none repeat scroll 0px 0px transparent;
+}
+
+#imgPrevHov:hover, #imgNextHov:hover, #thumbPrevHov:hover, #thumbNextHov:hover {
+    opacity: 1;
+}
+
+.linkPrev {
+    position: absolute;
+    left: -80px;
+    top: 40%;
+}
+
+.linkNext {
+    position: absolute;
+    right: -80px;
+    top: 40%;
+}
+
+.imageNumber {
+    text-align: right;
+    margin-right: 20px;
+}
+
+/*=========================================comment on picture page======================================================*/
+#comments {
+    overflow-y: auto;
+    overflow-x: hidden;
+    width: 880px;
+    margin: auto;
+    text-align: left;
+    padding-bottom: 40px;
+}
+
+#pictcomm {
+    margin-bottom: 50px;
+    width: 99%;
+    height: 190px;
+    background: none repeat scroll 0px 0px #7F7E7E;
+    float: left;
+}
+
+.commentElement {
+    background: url("images/bg_content.png") repeat scroll 0px 0px transparent;
+    margin-bottom: 20px;
+    padding-bottom: 10px;
+}
+
+.filter {
+    margin-bottom: 50px;
+}
+
+#pictcomm ul {
+    list-style-type: none;
+}
+
+.even, .odd {
+    color: #FFFFFF;
+}
+
+.odd {
+    padding-top: 10px;
+}
+
+.thumbnailCategories1 {
+    padding: 0px;
+}
+
+.thumbnailCategories1 LI {
+    width: 100%;
+    float: none;
+    margin: 0px;
+    padding: 0px;
+}
+
+.author, .date {
+    color: #C5C5C5;
+}
+
+#adcomm {
+    margin-bottom: 30px;
+}
+
+.addcom {
+    float: none ! important;
+    margin-right: 0px ! important;
+}
+
+#addComment FIELDSET {
+    margin: 0px;
+    padding: 0px;
+    border: medium none;
+    background: none repeat scroll 0px 0px transparent;
+}
+
+#contentid {
+    border: medium none;
+    background: none repeat scroll 0px 0px #7F7E7E;
+    margin: 0px auto 20px;
+}
+
+#comcontent {
+    width: 750px;
+    padding-left: 5px;
+    padding-top: 5px;
+}
+
+#scrollbar1 {
+    width: 97%;
+    margin: 5px 0px 10px;
+}
+
+#scrollbar1 .viewport {
+    height: 170px;
+    overflow: hidden;
+    position: relative;
+}
+
+#scrollbar1 .overview {
+    list-style: none outside none;
+    position: absolute;
+    left: 0px;
+    top: 0px;
+    padding: 0px;
+    margin: 0px;
+    width: 96%;
+}
+
+#scrollbar1 .scrollbar {
+    background: url("images/picture/bg-scrollbar-track-y1.png") no-repeat scroll 0px 0px transparent;
+    position: relative;
+    float: right;
+    width: 6px;
+    margin-top: 40px;
+}
+
+#scrollbar1 .track {
+    background: url("images/picture/bg-scrollbar-end-y1.png") no-repeat scroll 0px 100% transparent;
+    height: 100%;
+    width: 3px;
+    position: relative;
+    padding: 0px 1px;
+}
+
+#scrollbar1 .thumb {
+    background: url("images/picture/bg-scrollbar-thumb-y1.png") no-repeat scroll 50% 50% transparent;
+    height: 0px;
+    width: 15px;
+    cursor: pointer;
+    overflow: hidden;
+    position: absolute;
+    top: 0px;
+    left: -6px;
+}
+
+#scrollbar1 .thumb .end {
+    overflow: hidden;
+    height: 5px;
+    width: 3px;
+}
+
+#scrollbar1 .disable {
+    display: none;
+}
+
+/*======================================================panel on picture page======================================================*/
+.panel {
+    position: fixed;
+    top: 115px;
+    left: 0px;
+    display: none;
+    border: 1px solid #111111;
+    border-top-right-radius: 20px;
+    border-bottom-right-radius: 20px;
+    min-width: 330px;
+    height: auto;
+    padding: 10px 30px 30px 20px;
+    z-index: 100;
+    background: none repeat scroll 0px 0px rgba(0, 0, 0, 0.7);
+}
+
+.panel p {
+    margin: 0px 0px 15px;
+    padding: 0px;
+    color: #CCCCCC;
+}
+
+a.trigger {
+    position: fixed;
+    text-decoration: none;
+    top: 130px;
+    left: 0px;
+    font-size: 14px;
+    letter-spacing: -1px;
+    font-family: verdana,helvetica,arial,sans-serif;
+    color: #FFFFFF;
+    padding: 10px 30px 10px 5px;
+    font-weight: 700;
+    background: url("images/picture/plus.png") no-repeat scroll 85% 55% #333333;
+    border: 1px solid #444444;
+    border-top-right-radius: 15px;
+    border-bottom-right-radius: 15px;
+    display: block;
+    z-index: 100000;
+}
+
+a.trigger:hover {
+    background-color: #222222;
+}
+
+a.active.trigger {
+    background: url("images/picture/minus.png") no-repeat scroll 85% 55% #222222;
+}
+
+.columns {
+    clear: both;
+    width: 330px;
+    padding: 0px 0px 20px;
+    line-height: 22px;
+}
+
+.colleft {
+    float: left;
+    width: 130px;
+    line-height: 22px;
+}
+
+.colright {
+    float: right;
+    width: 130px;
+    line-height: 22px;
+}
+
+.panel ul li {
+    list-style-type: none;
+}
+
+.panel ul {
+    padding: 0px;
+    margin: 0px;
+}
+
+.panel .value {
+    padding-right: 5px;
+}
+
+.rateButtonStarFull {
+    background: url("icon/rating-stars.gif") no-repeat scroll -16px center transparent;
+    width: 16px;
+}
+
+.rateButtonStarEmpty {
+    background: url("icon/rating-stars.gif") no-repeat scroll 0px center transparent;
+    width: 16px;
+}
+
+#rating {
+    margin: 5px 0px;
+}
+
+#imageToolBar {
+    margin: 50px 0px 20px;
+    text-align: left;
+}
+
+#imageToolBar li {
+    list-style-type: none;
+}
+
+TABLE#standard, TABLE#Metadata {
+    font-size: 80%;
+}
+
+.infoTable .label, .infoTable2 .label {
+    text-align: left;
+}
+
+.infoTable .value a, .infoTable .value, .infoTable2 .value a, .infoTable2 .value {
+    color: silver;
+}
+
+TABLE#Metadata th {
+    font-size: 120%;
+    color: #FFFFFF;
+    padding-bottom: 10px;
+    text-align: left;
+}
+
+.panel .switchBox {
+    top: 60px;
+}
+
+/*======================================================plugin======================================================*/
+.contact-form-content {
+    background: url("images/bg_content.png") repeat scroll 0px 0px transparent;
+}
Index: /extensions/PwgCarbon_dft/themeconf.inc.php
===================================================================
--- /extensions/PwgCarbon_dft/themeconf.inc.php	(revision 18803)
+++ /extensions/PwgCarbon_dft/themeconf.inc.php	(revision 18803)
@@ -0,0 +1,39 @@
+<?php
+/*
+Theme Name: PwgCarbon_dft
+Version: 1.0
+Description: theme PwgCarbon_dft pour Piwigo.
+Theme URI:
+Author: Miklfe
+Author URI: 
+*/
+
+
+
+load_language('theme.lang', PHPWG_THEMES_PATH.'PwgCarbon_dft/');
+
+				
+$themeconf = array(
+	'name'						=> 'PwgCarbon_dft',
+	'parent'					=> 'default',
+	'load_parent_css' 			=> true,
+	'load_parent_local_head'	=> false,
+	'local_head'  				=> 'local_head.tpl',
+	'icon_dir' 					=> 'themes/PwgCarbon_dft/icon/',
+	);
+
+
+
+add_event_handler('get_categories_menu_sql_where', 'mic_get_categories_menu_sql_where', EVENT_HANDLER_PRIORITY_NEUTRAL, 3 );
+
+function mic_get_categories_menu_sql_where($where){	
+	global $page;
+		$where = '1';
+	return $where;
+}
+
+
+
+  
+  
+?>
