Index: /extensions/Slim/Slim.php
===================================================================
--- /extensions/Slim/Slim.php	(revision 18811)
+++ /extensions/Slim/Slim.php	(revision 18811)
@@ -0,0 +1,28 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $conf, $template;
+	$params = array_merge(unserialize($conf['Slim']));
+	
+	
+	
+	
+if ($params['color_theme'] == 2 )
+		{
+		$template->block_html_head('', '
+<link rel="stylesheet" type="text/css" href="themes/Slim/theme_black.css">
+
+		', $smarty, $repeat);
+		};
+if ($params['color_theme'] == 3 )
+		{
+		$template->block_html_head('', '
+<link rel="stylesheet" type="text/css" href="themes/Slim/theme_grey.css">
+
+		', $smarty, $repeat);
+		};
+
+
+		
+		
+?>
Index: /extensions/Slim/admin/admin.inc.php
===================================================================
--- /extensions/Slim/admin/admin.inc.php	(revision 18811)
+++ /extensions/Slim/admin/admin.inc.php	(revision 18811)
@@ -0,0 +1,33 @@
+<?php
+load_language('theme.lang', PHPWG_THEMES_PATH.'Slim/');
+
+
+if (isset($_POST['submit']))
+{
+  $params  = array(	
+					'style_slim'		=> $_POST['style_slim'],
+					'color_theme'		=> $_POST['color_theme']
+					);
+  
+  conf_update_param('Slim', pwg_db_real_escape_string(serialize($params)));
+
+  array_push($page['infos'], l10n('Your configuration settings are saved'));
+
+  load_conf_from_db();
+}
+
+
+
+$params = array_merge(unserialize($conf['Slim']));
+
+$template->assign(array(
+						'selected_style_slim'	=> $params['style_slim'],
+						'selected_color_theme'	=> $params['color_theme']
+						));
+
+
+
+$template->set_filenames(array('theme_admin_content' => dirname(__FILE__) . '/admin.tpl'));
+$template->assign('options', unserialize($conf['Slim']));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content');
+ ?>
Index: /extensions/Slim/admin/admin.tpl
===================================================================
--- /extensions/Slim/admin/admin.tpl	(revision 18811)
+++ /extensions/Slim/admin/admin.tpl	(revision 18811)
@@ -0,0 +1,102 @@
+{html_head}
+	<script type="text/javascript" src="themes/default/js/ui/minified/jquery.ui.slider.min.js"></script>
+    <link rel="stylesheet" href="themes/Slim/admin/theme.css" />
+
+<style media="screen" type="text/css">
+	{literal}
+		H3.ima{	color:#000;	font-size:15px;}	
+		H3.imanoir{	color:#fff; font-size:15px;}
+		tr.ton{	margin:10px;}	
+		td.check{text-align:center;}	
+		td.imag{text-align:right; width:100px; height:25px;	vertical-align:bottom; line-height: 1px;}
+	{/literal}
+</style>
+{/html_head}
+	
+	
+	
+<div class="titrePage">
+<h2>Slim</h2>
+</div>
+
+<form action="" method="post">
+
+
+
+<fieldset>
+<legend>{'Slim Color'|@translate}</legend>
+
+<div id="option">
+	<div class="switcher">
+	<div class="opt">
+	Slim
+	</div>
+	<div class="opt">
+	Slim_L
+	</div>
+	<div class="opt">
+	Slim_XL
+	</div>
+	
+            <div>
+                <input type="text" class="range min-1 max-3" name="style_slim" value="{$selected_style_slim}" />
+            </div>
+	</div>
+
+	<div class="switcher">
+	<div class="opt">
+	Whith
+	</div>
+	<div class="opt">
+	Black
+	</div>
+	<div class="opt">
+	Grey
+	</div>
+	
+			<div>
+                <input type="text" class="range min-1 max-3" name="color_theme" value="{$selected_color_theme}" />
+            </div>
+</div>
+
+{footer_script}{literal}
+jQuery(function($){
+    
+    $('.range').each(function(){
+       var cls      = $(this).attr('class');  
+       var matches  = cls.split(/([a-zA-Z]+)\-([0-9]+)/g);
+       var elem     = $(this).parent(); 
+       var options  = {}; 
+       var input    = elem.find('input'); 
+       elem.append('<div class="uirange"></div>');
+       
+       for(i in matches){
+           i = i * 1; 
+           if(matches[i] == 'min'){
+               options.min  = matches[i+1]*1;
+           } 
+           if(matches[i] == 'max'){
+               options.max  = matches[i+1]*1;
+           } 
+       }
+       
+       options.slide = function(event, ui){
+           elem.find('label span').empty().append(ui.value);
+           input.val(ui.value);
+       }
+       options.value = input.val(); 
+       options.range = 'min';
+       elem.find('.uirange').slider(options); 
+       
+       elem.find('label span').empty().append(input.val()); 
+       input.hide(); 
+    });
+    
+});
+
+{/literal}{/footer_script}
+
+</fieldset>
+<p><input type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+</form>
+
Index: /extensions/Slim/admin/index.php
===================================================================
--- /extensions/Slim/admin/index.php	(revision 18811)
+++ /extensions/Slim/admin/index.php	(revision 18811)
@@ -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/Slim/admin/maintain.inc.php
===================================================================
--- /extensions/Slim/admin/maintain.inc.php	(revision 18811)
+++ /extensions/Slim/admin/maintain.inc.php	(revision 18811)
@@ -0,0 +1,28 @@
+<?php
+
+function theme_activate($id, $version, &$errors)
+	{
+	global $conf;
+
+	if (!isset($conf['Slim']))
+		{
+		$config = array(
+						'style_slim'		=> '1',
+						'color_theme'   	=> '1'
+						);
+		  
+		$query = "
+	INSERT INTO " . CONFIG_TABLE . " (param,value,comment)
+	VALUES ('Slim' , '".pwg_db_real_escape_string(serialize($config))."' , 'Slim theme parameters');";
+
+		pwg_query($query);
+		}
+	}
+
+function theme_deactivate()
+	{
+    $query = "DELETE FROM " . CONFIG_TABLE . " WHERE param='Slim';";
+	pwg_query($query);
+	}
+
+?>
Index: /extensions/Slim/admin/theme.css
===================================================================
--- /extensions/Slim/admin/theme.css	(revision 18811)
+++ /extensions/Slim/admin/theme.css	(revision 18811)
@@ -0,0 +1,11 @@
+.ui-slider{color:#383838;border-radius:8px 8px 8px 8px;position:relative;text-align:left;width:600px}
+.ui-slider .ui-slider-handle{border: 1px solid #D7DEF0;background:url("images/bouton_slide.png") repeat-x scroll 50% 50% transparent;font-weight:bold;color:#4C3000;position:absolute;z-index:2;cursor:default;height:26px;width:299px}
+.ui-slider .ui-slider-range{position:absolute;z-index:1}
+.ui-slider-horizontal{height:30px}
+.ui-slider-horizontal .ui-slider-handle{border-radius:8px}
+.ui-slider-horizontal .ui-slider-range{top:0;height:100%}
+.ui-slider-horizontal .ui-slider-range-min{left:0}
+.ui-slider-horizontal .ui-slider-range-max{right:0}
+.switcher input{display:none}
+.switcher {border:2px inset #EFEFEF;border-radius:8px;background:#EDEDED;height:30px;width:900px;color:#000;position:relative;margin-bottom:40px}
+.opt{float:left;border-right:1px solid #FFF;width:299px;height:30px;text-align:center;font-size:20px}
Index: /extensions/Slim/icon/index.php
===================================================================
--- /extensions/Slim/icon/index.php	(revision 18811)
+++ /extensions/Slim/icon/index.php	(revision 18811)
@@ -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/Slim/icon/mimetypes/index.php
===================================================================
--- /extensions/Slim/icon/mimetypes/index.php	(revision 18811)
+++ /extensions/Slim/icon/mimetypes/index.php	(revision 18811)
@@ -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/Slim/images/index.php
===================================================================
--- /extensions/Slim/images/index.php	(revision 18811)
+++ /extensions/Slim/images/index.php	(revision 18811)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2011 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/Slim/index.php
===================================================================
--- /extensions/Slim/index.php	(revision 18811)
+++ /extensions/Slim/index.php	(revision 18811)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2011 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/Slim/js/columnizer.js
===================================================================
--- /extensions/Slim/js/columnizer.js	(revision 18811)
+++ /extensions/Slim/js/columnizer.js	(revision 18811)
@@ -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/Slim/js/jquery.hoverIntent.minified.js
===================================================================
--- /extensions/Slim/js/jquery.hoverIntent.minified.js	(revision 18811)
+++ /extensions/Slim/js/jquery.hoverIntent.minified.js	(revision 18811)
@@ -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/Slim/js/jquery.jcarousel.min.js
===================================================================
--- /extensions/Slim/js/jquery.jcarousel.min.js	(revision 18811)
+++ /extensions/Slim/js/jquery.jcarousel.min.js	(revision 18811)
@@ -0,0 +1,16 @@
+/*!
+ * jCarousel - Riding carousels with jQuery
+ *   http://sorgalla.com/jcarousel/
+ *
+ * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Built on top of the jQuery library
+ *   http://jquery.com
+ *
+ * Inspired by the "Carousel Component" by Bill Scott
+ *   http://billwscott.com/carousel/
+ */
+
+(function(g){var q={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"<div></div>",buttonPrevHTML:"<div></div>",buttonNextEvent:"click",buttonPrevEvent:"click", buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},m=!1;g(window).bind("load.jcarousel",function(){m=!0});g.jcarousel=function(a,c){this.options=g.extend({},q,c||{});this.autoStopped=this.locked=!1;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===void 0)this.options.rtl=(g(a).attr("dir")||g("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical? this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f<d.length;f++)if(d[f].indexOf("jcarousel-skin")!=-1){g(a).removeClass(d[f]);b=d[f];break}a.nodeName.toUpperCase()=="UL"||a.nodeName.toUpperCase()=="OL"?(this.list=g(a),this.clip=this.list.parents(".jcarousel-clip"),this.container=this.list.parents(".jcarousel-container")):(this.container=g(a),this.list=this.container.find("ul,ol").eq(0),this.clip=this.container.find(".jcarousel-clip"));if(this.clip.size()===0)this.clip= this.list.wrap("<div></div>").parent();if(this.container.size()===0)this.container=this.clip.wrap("<div></div>").parent();b!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+b+'"></div>');this.buttonPrev=g(".jcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=g(this.options.buttonPrevHTML).appendTo(this.container);this.buttonPrev.addClass(this.className("jcarousel-prev"));this.buttonNext= g(".jcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext=g(this.options.buttonNextHTML).appendTo(this.container);this.buttonNext.addClass(this.className("jcarousel-next"));this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"}); !this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,b=this.list.children("li"),e=this;if(b.size()>0){var h=0,i=this.options.offset;b.each(function(){e.format(this,i++);h+=e.dimension(this,j)});this.list.css(this.wh,h+100+"px");if(!c||c.size===void 0)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display", "block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.resizeTimer&&clearTimeout(e.resizeTimer);e.resizeTimer=setTimeout(function(){e.reload()},100)};this.options.initCallback!==null&&this.options.initCallback(this,"init");!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):this.setup()};var f=g.jcarousel;f.fn=f.prototype={jcarousel:"0.2.8"};f.fn.extend=f.extend=g.extend;f.fn.extend({setup:function(){this.prevLast= this.prevFirst=this.last=this.first=null;this.animating=!1;this.tail=this.resizeTimer=this.timer=null;this.inTail=!1;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null;this.animate(a,!1);g(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize);this.options.setupCallback!==null&&this.options.setupCallback(this)}},reset:function(){this.list.empty();this.list.css(this.lt, "0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=!1;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(f){b+=a.dimension(this, c);f+1<a.first&&(d=b)});this.list.css(this.wh,b+"px");this.list.css(this.lt,-d+"px")}this.scroll(this.first,!1)},lock:function(){this.locked=!0;this.buttons()},unlock:function(){this.locked=!1;this.buttons()},size:function(a){if(a!==void 0)this.options.size=a,this.locked||this.buttons();return this.options.size},has:function(a,c){if(c===void 0||!c)c=a;if(this.options.size!==null&&c>this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0}, get:function(a){return g(">.jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,p=g(c);if(b.length===0)for(var j,e=f.intval(a),b=this.create(a);;){if(j=this.get(--e),e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}else d=this.dimension(b);p.get(0).nodeName.toUpperCase()=="LI"?(b.replaceWith(p),b=p):b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);p=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible): null;d=this.dimension(b,p)-d;a>0&&a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))-d+"px");this.list.css(this.wh,f.intval(this.list.css(this.wh))+d+"px");return b},remove:function(a){var c=this.get(a);if(c.length&&!(a>=this.first&&a<=this.last)){var b=this.dimension(c);a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+b+"px");c.remove();this.list.css(this.wh,f.intval(this.list.css(this.wh))-b+"px")}},next:function(){this.tail!==null&&!this.inTail?this.scrollTail(!1): this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!==null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.tail!==null&&this.inTail?this.scrollTail(!0):this.scroll((this.options.wrap=="both"||this.options.wrap=="first")&&this.options.size!==null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(!this.locked&&!this.animating&&this.tail){this.pauseAuto();var c=f.intval(this.list.css(this.lt)), c=!a?c-this.tail:c+this.tail;this.inTail=!a;this.prevFirst=this.first;this.prevLast=this.last;this.animate(c)}},scroll:function(a,c){!this.locked&&!this.animating&&(this.pauseAuto(),this.animate(this.pos(a),c))},pos:function(a,c){var b=f.intval(this.list.css(this.lt));if(this.locked||this.animating)return b;this.options.wrap!="circular"&&(a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a);for(var d=this.first>a,g=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(g): this.get(this.last),e=d?g:g-1,h=null,i=0,k=!1,l=0;d?--e>=a:++e<a;){h=this.get(e);k=!h.length;if(h.length===0&&(h=this.create(e).addClass(this.className("jcarousel-item-placeholder")),j[d?"before":"after"](h),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size)))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)));j=h;l=this.dimension(h);k&&(i+=l);if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<= this.options.size)))b=d?b+l:b-l}for(var g=this.clipping(),m=[],o=0,n=0,j=this.get(a-1),e=a;++o;){h=this.get(e);k=!h.length;if(h.length===0){h=this.create(e).addClass(this.className("jcarousel-item-placeholder"));if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))}j=h;l=this.dimension(h);if(l===0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting..."); this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size?m.push(h):k&&(i+=l);n+=l;if(n>=g)break;e++}for(h=0;h<m.length;h++)m[h].remove();i>0&&(this.list.css(this.wh,this.dimension(this.list)+i+"px"),d&&(b-=i,this.list.css(this.lt,f.intval(this.list.css(this.lt))-i+"px")));i=a+o-1;if(this.options.wrap!="circular"&&this.options.size&&i>this.options.size)i=this.options.size;if(e>i){o=0;e=i;for(n=0;++o;){h=this.get(e--);if(!h.length)break;n+=this.dimension(h);if(n>=g)break}}e=i-o+ 1;this.options.wrap!="circular"&&e<1&&(e=1);if(this.inTail&&d)b+=this.tail,this.inTail=!1;this.tail=null;if(this.options.wrap!="circular"&&i==this.options.size&&i-o+1>=1&&(d=f.intval(this.get(i).css(!this.options.vertical?"marginRight":"marginBottom")),n-d>g))this.tail=n-g-d;if(c&&a===this.options.size&&this.tail)b-=this.tail,this.inTail=!0;for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=i;return b},animate:function(a,c){if(!this.locked&& !this.animating){this.animating=!0;var b=this,d=function(){b.animating=!1;a===0&&b.list.css(b.lt,0);!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last<b.options.size||b.last==b.options.size&&b.tail!==null&&!b.inTail)&&b.startAuto();b.buttons();b.notify("onAfterAnimation");if(b.options.wrap=="circular"&&b.options.size!==null)for(var c=b.prevFirst;c<=b.prevLast;c++)c!==null&&!(c>=b.first&&c<=b.last)&&(c<1||c>b.options.size)&&b.remove(c)}; this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,a+"px"),d();else{var f=!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},d={duration:this.options.animation,easing:this.options.easing,complete:d};if(g.isFunction(this.options.animationStepCallback))d.step=this.options.animationStepCallback;this.list.animate(f,d)}}},startAuto:function(a){if(a!==void 0)this.options.auto=a;if(this.options.auto===0)return this.stopAuto();if(this.timer===null){this.autoStopped= !1;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=!0},pauseAuto:function(){if(this.timer!==null)window.clearTimeout(this.timer),this.timer=null},buttons:function(a,c){if(a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last<this.options.size),!this.locked&&(!this.options.wrap||this.options.wrap=="first")&&this.options.size!==null&& this.last>=this.options.size))a=this.tail!==null&&!this.inTail;if(c==null&&(c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1))c=this.tail!==null&&this.inTail;var b=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext), this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev), c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[c?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b,null,c);this.buttonNextState= a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst<this.first?"next":"prev";this.callback("itemLoadCallback",a,c);this.prevFirst!==this.first&&(this.callback("itemFirstInCallback",a,c,this.first),this.callback("itemFirstOutCallback",a,c,this.prevFirst));this.prevLast!==this.last&&(this.callback("itemLastInCallback",a,c,this.last),this.callback("itemLastOutCallback",a,c,this.prevLast));this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst, this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(a,c,b,d,f,j,e){if(!(this.options[a]==null||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var h=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(g.isFunction(h)){var i=this;if(d===void 0)h(i,b,c);else if(f===void 0)this.get(d).each(function(){h(i,this,d,b,c)});else for(var a=function(a){i.get(a).each(function(){h(i,this,a,b,c)})},k=d;k<=f;k++)k!== null&&!(k>=j&&k<=e)&&a(k)}}},create:function(a){return this.format("<li></li>",a)},format:function(a,c){for(var a=g(a),b=a.get(0).className.split(" "),d=0;d<b.length;d++)b[d].indexOf("jcarousel-")!=-1&&a.removeClass(b[d]);a.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")}, dimension:function(a,c){var b=g(a);if(c==null)return!this.options.vertical?b.outerWidth(!0)||f.intval(this.options.itemFallbackDimension):b.outerHeight(!0)||f.intval(this.options.itemFallbackDimension);else{var d=!this.options.vertical?c-f.intval(b.css("marginLeft"))-f.intval(b.css("marginRight")):c-f.intval(b.css("marginTop"))-f.intval(b.css("marginBottom"));g(b).css(this.wh,d+"px");return this.dimension(b)}},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-f.intval(this.clip.css("borderLeftWidth"))- f.intval(this.clip.css("borderRightWidth")):this.clip[0].offsetHeight-f.intval(this.clip.css("borderTopWidth"))-f.intval(this.clip.css("borderBottomWidth"))},index:function(a,c){if(c==null)c=this.options.size;return Math.round(((a-1)/c-Math.floor((a-1)/c))*c)+1}});f.extend({defaults:function(a){return g.extend(q,a||{})},intval:function(a){a=parseInt(a,10);return isNaN(a)?0:a},windowLoaded:function(){m=!0}});g.fn.jcarousel=function(a){if(typeof a=="string"){var c=g(this).data("jcarousel"),b=Array.prototype.slice.call(arguments, 1);return c[a].apply(c,b)}else return this.each(function(){var b=g(this).data("jcarousel");b?(a&&g.extend(b.options,a),b.reload()):g(this).data("jcarousel",new f(this,a))})}})(jQuery);
Index: /extensions/Slim/js/lytebox.js
===================================================================
--- /extensions/Slim/js/lytebox.js	(revision 18811)
+++ /extensions/Slim/js/lytebox.js	(revision 18811)
@@ -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		= 5;			// 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 = 200;
+	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] - 10;
+				var y = $lb.aPageSize[3] - 60;
+				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/Slim/js/menu.js
===================================================================
--- /extensions/Slim/js/menu.js	(revision 18811)
+++ /extensions/Slim/js/menu.js	(revision 18811)
@@ -0,0 +1,88 @@
+/*
+ * 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('fast', 1).show();
+			
+	}
+	
+	function megaHoverOut(){
+	 $(this).find(".sub").stop().fadeTo('fast', 0, function() {
+		  $(this).hide();
+	  });
+	}
+
+
+	var config = {
+		 sensitivity: 1,		// 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(config);
+	
+
+	// 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")
+		}
+	});
+	
+	
+	// make column menubar_categorie
+	$('.mcol').makeacolumnlists({cols:4, colWidth:155, equalHeight: true, startN: 1});
+	
+	
+
+});
Index: /extensions/Slim/language/fr_FR/description.txt
===================================================================
--- /extensions/Slim/language/fr_FR/description.txt	(revision 18811)
+++ /extensions/Slim/language/fr_FR/description.txt	(revision 18811)
@@ -0,0 +1,1 @@
+﻿fichier de langue du thème Slim
Index: /extensions/Slim/language/fr_FR/index.php
===================================================================
--- /extensions/Slim/language/fr_FR/index.php	(revision 18811)
+++ /extensions/Slim/language/fr_FR/index.php	(revision 18811)
@@ -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/Slim/language/fr_FR/theme.lang.php
===================================================================
--- /extensions/Slim/language/fr_FR/theme.lang.php	(revision 18811)
+++ /extensions/Slim/language/fr_FR/theme.lang.php	(revision 18811)
@@ -0,0 +1,4 @@
+<?php
+$lang['You don\'t have access to the administration site'] = 'Vous n\'avez pas accés à l\'administration du site';
+$lang['Sub-album'] = 'Sous album';
+?>
Index: /extensions/Slim/language/index.php
===================================================================
--- /extensions/Slim/language/index.php	(revision 18811)
+++ /extensions/Slim/language/index.php	(revision 18811)
@@ -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/Slim/local_head.tpl
===================================================================
--- /extensions/Slim/local_head.tpl	(revision 18811)
+++ /extensions/Slim/local_head.tpl	(revision 18811)
@@ -0,0 +1,23 @@
+{php}
+	global $Slim;
+	$this->assign( 'Slim', $Slim );
+{/php}
+
+	<!--[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]-->
+	{combine_css path="themes/default/print.css" order=-10}
+
+
+{if (($Slim.style_slim)!=3)}
+{combine_script id='lytebox' load='header' require='jquery' path='themes/Slim/js/lytebox.js'}
+{/if}
+
+{if (($Slim.style_slim)!=1)}
+{combine_script id='menu' load='header' require='jquery' path='themes/Slim/js/menu.js'}
+{combine_script id='hoverIntent' load='header' require='jquery' path='themes/Slim/js/jquery.hoverIntent.minified.js'}
+{combine_script id='columnizer' load='header' require='jquery' path='themes/Slim/js/columnizer.js'}
+{/if}
Index: /extensions/Slim/template/about.tpl
===================================================================
--- /extensions/Slim/template/about.tpl	(revision 18811)
+++ /extensions/Slim/template/about.tpl	(revision 18811)
@@ -0,0 +1,26 @@
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+  <div class="titrePage">
+    <ul class="categoryActions">
+      <li><a href="{$U_HOME}" title="{'Home'|@translate}" class="pwg-state-default pwg-button">
+        <span class="pwg-icon pwg-icon-home">&nbsp;</span><span class="pwg-button-text">{'Home'|@translate}</span>
+      </a></li>
+    </ul>
+    <h2>{'About'|@translate}</h2>
+  </div>
+ </div>
+  <div id="piwigoAbout">
+  {$ABOUT_MESSAGE}
+  {if isset($THEME_ABOUT) }
+  <ul>
+   <li>{$THEME_ABOUT}</li>
+  </ul>
+  {/if}
+  {if not empty($about_msgs)}
+    {foreach from=$about_msgs item=elt}
+    {$elt}
+    {/foreach}
+  {/if}
+  </div>
+</div>
Index: /extensions/Slim/template/comments.tpl
===================================================================
--- /extensions/Slim/template/comments.tpl	(revision 18811)
+++ /extensions/Slim/template/comments.tpl	(revision 18811)
@@ -0,0 +1,93 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+
+{if ($Slim.style_slim)==3}
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+<div class="titrePage">
+	<ul class="categoryActions">
+	</ul>
+	<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'User comments'|@translate}</h2>
+</div>
+</div>
+{include file='infos_errors.tpl'}
+
+<form class="filter" action="{$F_ACTION}" method="get">
+
+  <fieldset>
+    <legend>{'Filter'|@translate}</legend>
+
+    <label>{'Keyword'|@translate}<input type="text" name="keyword" value="{$F_KEYWORD}"></label>
+
+    <label>{'Author'|@translate}<input type="text" name="author" value="{$F_AUTHOR}"></label>
+
+    <label>
+      {'Album'|@translate}
+      <select name="cat">
+        <option value="0">------------</option>
+        {html_options options=$categories selected=$categories_selected}
+      </select>
+    </label>
+
+    <label>
+      {'Since'|@translate}
+      <select name="since">
+        {html_options options=$since_options selected=$since_options_selected}
+      </select>
+    </label>
+
+  </fieldset>
+
+  <fieldset>
+
+    <legend>{'Display'|@translate}</legend>
+
+    <label>
+      {'Sort by'|@translate}
+      <select name="sort_by">
+        {html_options options=$sort_by_options selected=$sort_by_options_selected}
+      </select>
+    </label>
+
+    <label>
+      {'Sort order'|@translate}
+      <select name="sort_order">
+        {html_options options=$sort_order_options selected=$sort_order_options_selected}
+      </select>
+    </label>
+
+    <label>
+      {'Number of items'|@translate}
+      <select name="items_number">
+        {html_options options=$item_number_options selected=$item_number_options_selected}
+      </select>
+    </label>
+
+  </fieldset>
+
+  <p><input type="submit" value="{'Filter and display'|@translate}"></p>
+
+</form>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+{if isset($comments)}
+<div id="comments">
+	{include file='comment_list.tpl' comment_derivative_params=$derivative_params}
+</div>
+{/if}
+
+</div> <!-- content -->
+
+{else}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+
+
+{/if}
Index: /extensions/Slim/template/header.tpl
===================================================================
--- /extensions/Slim/template/header.tpl	(revision 18811)
+++ /extensions/Slim/template/header.tpl	(revision 18811)
@@ -0,0 +1,90 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+
+<!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 not empty($page_refresh)    }<meta http-equiv="refresh" content="{$page_refresh.TIME};url={$page_refresh.U_REFRESH}">{/if}
+
+
+<!--[if lt IE 7]>
+<script type="text/javascript" src="{$ROOT_URL}themes/default/js/pngfix.js"></script>
+<![endif]-->
+
+{if not empty($head_elements)}
+	{foreach from=$head_elements item=elt}{$elt}
+	{/foreach}
+{/if}
+
+{get_combined_scripts load='header'}	
+
+
+{combine_script id='jquery.jcarousel' load='header' require='jquery' path='themes/Slim/js/jquery.jcarousel.min.js'}
+</head>
+
+
+<body id="{$BODY_ID}">
+
+
+
+
+
+{if not empty($header_msgs)}
+<div class="header_msgs">
+	{foreach from=$header_msgs item=elt}
+	{$elt}<br>
+	{/foreach}
+</div>
+{/if}
+
+{if $BODY_ID != 'thePicturePage'}
+<div id="theHeader">{$PAGE_BANNER}</div>
+{/if}
+{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}
Index: /extensions/Slim/template/identification.tpl
===================================================================
--- /extensions/Slim/template/identification.tpl	(revision 18811)
+++ /extensions/Slim/template/identification.tpl	(revision 18811)
@@ -0,0 +1,90 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)!=1}
+{$MENUBAR}
+{/if}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+{if ($Slim.style_slim)==1}
+<a href="{$U_HOME}"><img src="themes/Slim/images/home.png" height="32px" width="32px"></a>
+{/if}
+
+<div id="infoBlock">
+<div class="titrePage">
+	<ul class="categoryActions">
+	</ul>
+	{if ($Slim.style_slim)==1}
+	<h2>Administration</h2>
+	{else}
+	<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Identification'|@translate}</h2>
+	{/if}
+</div>
+</div>
+{include file='infos_errors.tpl'}
+
+<form action="{$F_LOGIN_ACTION}" method="post" name="login_form" class="properties">
+  <fieldset>
+    <div class="fielTit"><h2>{'Connection settings'|@translate}</h2></div>
+
+    <ul>
+      <li>
+        <span class="property">
+          <label for="username">{'Username'|@translate}</label>
+        </span>
+        <input tabindex="1" class="login" type="text" name="username" id="username" size="25" maxlength="40">
+      </li>
+
+      <li>
+        <span class="property">
+          <label for="password">{'Password'|@translate}</label>
+        </span>
+        <input tabindex="2" class="login" type="password" name="password" id="password" size="25" maxlength="25">
+      </li>
+
+
+
+{if ($Slim.style_slim)!=1}
+      {if $authorize_remembering }
+      <li>
+        <span class="property">
+          <label for="remember_me">{'Auto login'|@translate}</label>
+        </span>
+        <input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1">
+      </li>
+      {/if}
+    </ul>
+	<p>
+{if isset($U_REGISTER)}
+		<a href="{$U_REGISTER}" title="{'Register'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-register">&nbsp;</span><span>{'Register'|@translate}</span>
+		</a>
+{/if}
+</p>
+<p>
+{if isset($U_LOST_PASSWORD)}
+		<a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-lost-password">&nbsp;</span><span>{'Forgot your password?'|@translate}</span>
+		</a>
+{/if}
+	</p>
+	
+{/if}
+  </fieldset>
+
+
+
+  <p>
+    <input type="hidden" name="redirect" value="{$U_REDIRECT|@urlencode}">
+    <input tabindex="4" type="submit" name="login" value="{'Submit'|@translate}">
+  </p>
+
+	
+
+
+</form>
+
+<script type="text/javascript"><!--
+document.login_form.username.focus();
+//--></script>
+
+</div> <!-- content -->
+
Index: /extensions/Slim/template/index.tpl
===================================================================
--- /extensions/Slim/template/index.tpl	(revision 18811)
+++ /extensions/Slim/template/index.tpl	(revision 18811)
@@ -0,0 +1,178 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)!=1}
+{$MENUBAR}
+{/if}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+{if ($Slim.style_slim)==1}
+{if !empty($THUMBNAILS)}
+<div id="home">
+<a href="{$U_HOME}"><img src="themes/Slim/images/home.png" height="32px" width="32px"></a>
+</div>
+<div class="titrePage">
+<div id="infoBlock">
+{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
+<h2>
+{$cat_name}
+</h2>
+{/if}
+{else}
+<div class="titrePage">
+<div id="infoBlock">
+
+<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>
+		{footer_script require='jquery'}{literal}
+jQuery("#sortOrderLink").click(function() {
+	var elt = jQuery("#sortOrderBox");
+	elt.css("left", Math.min( jQuery(this).offset().left, jQuery(window).width() - elt.outerWidth(true) - 5))
+		.css("top", jQuery(this).offset().top + jQuery(this).outerHeight(true))
+		.toggle();
+});
+jQuery("#sortOrderBox").on("mouseleave", function() {
+	jQuery(this).hide();
+});
+		{/literal}{/footer_script}
+		{/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}
+{/if}
+		</div>{* <!-- titrePage --> *}
+		
+		
+</div>{* <!-- infoBlock --> *}
+
+
+{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($THUMBNAILS)}
+	<ul class="thumbnails" id="thumbnails">
+		{$THUMBNAILS}
+	</ul>
+{/if}
+
+{if empty($THUMBNAILS)}
+	{if !empty($CATEGORIES)}
+		{$CATEGORIES}
+	{/if}
+{/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/Slim/template/mainpage_categories.tpl
===================================================================
--- /extensions/Slim/template/mainpage_categories.tpl	(revision 18811)
+++ /extensions/Slim/template/mainpage_categories.tpl	(revision 18811)
@@ -0,0 +1,51 @@
+<div id="carouselcat">
+
+<div id="wrap">
+	  <ul id="carousel" class="jcarousel-skin-cat">
+
+		{foreach from=$category_thumbnails item=cat}
+
+
+			<li>
+					<div class="illustration">
+						<a href="{$cat.URL}">
+							<img 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}" min-width="{$derivative_params->max_width()}" height="{$derivative_params->max_height()-22}"/>
+						</a>
+					</div>
+					
+					<div class="CatMPdescription">
+						
+							<h3>
+								<a href="{$cat.URL}">{$cat.NAME}</a>
+							</h3>
+							<div>
+							{$cat.CAPTION_NB_IMAGES}
+							</div>	
+					</div>
+			</li>
+		{/foreach}
+	</ul>
+{footer_script}{literal}
+function mycarousel_initCallback(carousel)
+{
+    // Pause autoscrolling if the user moves with the cursor over the clip.
+    carousel.clip.hover(function() {
+        carousel.stopAuto();
+    }, function() {
+        carousel.startAuto();
+    });
+};
+
+jQuery(document).ready(function() {
+    jQuery('#carousel').jcarousel({
+    	auto: 1,
+		wrap: 'circular',
+		scroll: 2,
+		animation: 2000,
+		initCallback: mycarousel_initCallback,
+		
+    });
+});
+{/literal}{/footer_script}
+</div>
+</div>
Index: /extensions/Slim/template/menubar.tpl
===================================================================
--- /extensions/Slim/template/menubar.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar.tpl	(revision 18811)
@@ -0,0 +1,35 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+{if ($Slim.style_slim)!=1}
+
+{if !empty($blocks) }
+<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>
+{/if}
+{/if}
+
+
Index: /extensions/Slim/template/menubar_categories.tpl
===================================================================
--- /extensions/Slim/template/menubar_categories.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_categories.tpl	(revision 18811)
@@ -0,0 +1,59 @@
+	<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="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/Slim/template/menubar_identification.tpl
===================================================================
--- /extensions/Slim/template/menubar_identification.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_identification.tpl	(revision 18811)
@@ -0,0 +1,94 @@
+{if isset($U_LOGIN)}
+<li class="liSub">
+
+	{*
+	<span class="dd_wrapper">{'Identification'|@translate}</span> 
+	<div class="sub">
+	------option1: le menu se referme quand on perd le hover: problème avec l'auto-completion des navigateurs, pour corriger: attribuer la valeur off à autocomplet de l'input username ------*}
+	
+	
+	
+	
+	<span class="cl_wrapper">{'Identification'|@translate}</span> 
+		<div id="loger">
+			<div class="close">
+			</div> 
+	{*------option2:le menu identification se referme en cliquant l'onglet ou la croix fermer------*}
+	
+	{*<span class="cc_wrapper">{'Identification'|@translate}</span> 
+		<div id="loger">
+			<div class="close">
+			</div> 	
+	------option3:le menu souvre au click et autocomplete est on-----*}
+
+
+	<form method="post" action="{$U_LOGIN}" id="quickconnect">
+			<div id="log">
+			<div class="contenLog">
+			<label for="username">{'Username'|@translate}</label>
+			<input type="text" autocomplete="on" name="username" id="username" value="" style="width:100%">
+			</div>
+			
+			<div class="contenLog">
+			<label for="password">{'Password'|@translate}</label>
+			<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/Slim/template/menubar_links.tpl
===================================================================
--- /extensions/Slim/template/menubar_links.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_links.tpl	(revision 18811)
@@ -0,0 +1,22 @@
+	<li class="liSub">
+
+<span class="dd_wrapper">{'Links'|@translate}</span>
+	<div class="sub">
+	<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/Slim/template/menubar_menu.tpl
===================================================================
--- /extensions/Slim/template/menubar_menu.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_menu.tpl	(revision 18811)
@@ -0,0 +1,17 @@
+
+		<li class="liSub">
+		<span class="dd_wrapper">{'Menu'|@translate}</span>
+<div 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/Slim/template/menubar_specials.tpl
===================================================================
--- /extensions/Slim/template/menubar_specials.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_specials.tpl	(revision 18811)
@@ -0,0 +1,16 @@
+	<li class="liSub">
+
+			<span class="dd_wrapper">{'Specials'|@translate}</span>
+
+	<div class="sub">
+
+		<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/Slim/template/menubar_tags.tpl
===================================================================
--- /extensions/Slim/template/menubar_tags.tpl	(revision 18811)
+++ /extensions/Slim/template/menubar_tags.tpl	(revision 18811)
@@ -0,0 +1,23 @@
+<li class="liSub">
+
+<span class="dd_wrapper">{'Related tags'|@translate}</span>
+	<div class="sub">
+
+	<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">+
+			{else}
+				href="{$tag.URL}"
+				title="{'See images linked to this tag only'|@translate}">
+			{/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/Slim/template/nbm.tpl
===================================================================
--- /extensions/Slim/template/nbm.tpl	(revision 18811)
+++ /extensions/Slim/template/nbm.tpl	(revision 18811)
@@ -0,0 +1,34 @@
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+	<div class="titrePage">
+		<ul class="categoryActions">
+      <li><a href="{$U_HOME}" title="{'Home'|@translate}" class="pwg-state-default pwg-button">
+        <span class="pwg-icon pwg-icon-home">&nbsp;</span><span class="pwg-button-text">{'Home'|@translate}</span>
+      </a></li>
+    </ul>
+		<h2>{'Notification'|@translate}</h2>
+	</div>
+</div>
+
+  {if not empty($errors)}
+  <div class="errors">
+    <ul>
+      {foreach from=$errors item=error}
+      <li>{$error}</li>
+      {/foreach}
+    </ul>
+  </div>
+  {/if}
+
+  {if not empty($infos)}
+  <div class="infos">
+    <ul>
+      {foreach from=$infos item=info}
+      <li>{$info}</li>
+      {/foreach}
+    </ul>
+  </div>
+  {/if}
+
+</div>
Index: /extensions/Slim/template/notification.tpl
===================================================================
--- /extensions/Slim/template/notification.tpl	(revision 18811)
+++ /extensions/Slim/template/notification.tpl	(revision 18811)
@@ -0,0 +1,39 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{html_head} 
+<link rel="alternate" type="application/rss+xml" title="{'Photos only RSS feed'|@translate}" href="{$U_FEED_IMAGE_ONLY}"> 
+<link rel="alternate" type="application/rss+xml" title="{'Complete RSS feed (photos, comments)'|@translate}" href="{$U_FEED}"> 
+{/html_head} 
+
+{if ($Slim.style_slim)==1}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+  <div class="titrePage">
+    
+    <h2>{'Notification'|@translate}</h2>
+  </div>
+</div>
+  <div class="notification">
+  <p>{'The RSS notification feed provides notification on news from this website : new photos, updated albums, new comments. Use a RSS feed reader.'|@translate}</p>
+
+  <dl>
+    <dt>
+      <a href="{$U_FEED_IMAGE_ONLY}">{'Photos only RSS feed'|@translate}</a><br><br>
+    </dt>
+    <dt>
+      <a href="{$U_FEED}">{'Complete RSS feed (photos, comments)'|@translate}</a>
+    </dt>
+  </dl>
+  </div>
+</div>
+{/if}
Index: /extensions/Slim/template/password.tpl
===================================================================
--- /extensions/Slim/template/password.tpl	(revision 18811)
+++ /extensions/Slim/template/password.tpl	(revision 18811)
@@ -0,0 +1,76 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)==1}
+
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+  <div class="titrePage">
+  <div id="infoBlock">
+    <ul class="categoryActions">
+    </ul>
+
+    <h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{$title}</h2>
+  </div>
+</div>
+{include file='infos_errors.tpl'}
+
+{if $action ne 'none'}
+<form id="lostPassword" action="{$form_action}?action={$action}{if isset($key)}&amp;key={$key}{/if}" method="post">
+  <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
+
+  {if $action eq 'lost'}
+  <div class="message">{'Please enter your username or email address.'|@translate} {'You will receive a link to create a new password via email.'|@translate}</div>
+
+  <p>
+    <label>
+      {'Username or email'|@translate}
+      <br>
+      <input type="text" id="username_or_email" name="username_or_email" size="40" maxlength="40"{if isset($username_or_email)} value="{$username_or_email}"{/if}>
+    </label>
+  </p>
+
+  <p class="bottomButtons"><input type="submit" name="submit" value="{'Change my password'|@translate}"></p>
+  {elseif $action eq 'reset'}
+
+  <div class="message">{'Hello'|@translate} <em>{$username}</em>. {'Enter your new password below.'|@translate}</div>
+
+  <p>
+    <label>
+      {'New password'|@translate}
+      <br>
+      <input type="password" name="use_new_pwd" id="use_new_pwd" value="">
+    </label>
+  </p>
+
+  <p>
+    <label>
+      {'Confirm Password'|@translate}
+      <br>
+      <input type="password" name="passwordConf" id="passwordConf" value="">
+    </label>
+  </p>
+
+  <p class="bottomButtons"><input type="submit" name="submit" value="{'Submit'|@translate}"></p>
+  {/if}
+
+</form>
+{/if} {* $action ne 'none' *}
+
+<script type="text/javascript">
+{if $action eq 'lost'}
+{literal}try{document.getElementById('username_or_email').focus();}catch(e){}{/literal}
+{elseif $action eq 'reset'}
+{literal}try{document.getElementById('use_new_pwd').focus();}catch(e){}{/literal}
+{/if}
+</script>
+
+</div> <!-- content -->
+{/if}
Index: /extensions/Slim/template/picture.tpl
===================================================================
--- /extensions/Slim/template/picture.tpl	(revision 18811)
+++ /extensions/Slim/template/picture.tpl	(revision 18811)
@@ -0,0 +1,394 @@
+{* Example of resizeable *}
+{*
+{include file='include/autosize.inc.tpl'}
+*}
+
+
+{if isset($MENUBAR)}{$MENUBAR}{/if}
+<div id="content" {if isset($MENUBAR)}class="contentWithMenu"{/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">
+  <h2>
+    {$SECTION_TITLE}
+    {$LEVEL_SEPARATOR}{$current.TITLE}
+</h2>
+  </div>
+  <div class="imageNumber"> &nbsp{$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 (!isset($comment_add) && ($COMMENT_COUNT == 0))}class="noCommentContent"{else}class="commentContent"{/if}><div id="commentsSwitcher"></div>
+	<h3>{$pwg->l10n_dec('%d comment', '%d comments',$COMMENT_COUNT)}</h3>
+
+	<div id="pictureComments">
+		{if isset($comment_add)}
+		<div id="commentAdd">
+			<h4>{'Add a comment'|@translate}</h4>
+			<form method="post" action="{$comment_add.F_ACTION}" id="addComment">
+				{if $comment_add.SHOW_AUTHOR}
+					<p><label for="author">{'Author'|@translate} :</label></p>
+					<p><input type="text" name="author" id="author" value="{$comment_add.AUTHOR}"></p>
+					<p><label for="contentid">{'Comment'|@translate} :</label></p>
+				{/if}
+				<p><textarea name="content" id="contentid" rows="8" cols="100">{$comment_add.CONTENT}</textarea></p>
+				<p><input type="hidden" name="key" value="{$comment_add.KEY}">
+					<input type="submit" value="{'Submit'|@translate}"></p>
+			</form>
+		</div>
+		{/if}
+		{if isset($comments)}
+		<div id="pictureCommentList">
+			{if (($COMMENT_COUNT > 2) || !empty($navbar))}
+				<div id="pictureCommentNavBar">
+					{if $COMMENT_COUNT > 2}
+						<a href="{$COMMENTS_ORDER_URL}#comments" rel="nofollow" class="commentsOrder">{$COMMENTS_ORDER_TITLE}</a>
+					{/if}
+					{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+				</div>
+			{/if}
+			{include file='comment_list.tpl'}
+		</div>
+		{/if}
+		<div style="clear:both"></div>
+	</div>
+
+</div>
+{/if}{*comments*}
+
+
+<!--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/Slim/template/picture_content.tpl
===================================================================
--- /extensions/Slim/template/picture_content.tpl	(revision 18811)
+++ /extensions/Slim/template/picture_content.tpl	(revision 18811)
@@ -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/Slim/template/picture_nav_buttons.tpl
===================================================================
--- /extensions/Slim/template/picture_nav_buttons.tpl	(revision 18811)
+++ /extensions/Slim/template/picture_nav_buttons.tpl	(revision 18811)
@@ -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/Slim/template/profile.tpl
===================================================================
--- /extensions/Slim/template/profile.tpl	(revision 18811)
+++ /extensions/Slim/template/profile.tpl	(revision 18811)
@@ -0,0 +1,25 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)==1}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+<div class="titrePage">
+	<ul class="categoryActions">
+	</ul>
+	<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Profile'|@translate}</h2>
+</div>
+</div>
+{include file='infos_errors.tpl'}
+
+{$PROFILE_CONTENT}
+</div> <!-- content -->
+{/if}
Index: /extensions/Slim/template/register.tpl
===================================================================
--- /extensions/Slim/template/register.tpl	(revision 18811)
+++ /extensions/Slim/template/register.tpl	(revision 18811)
@@ -0,0 +1,82 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)==1}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+<div id="registerPage">
+
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+<div class="titrePage">
+	<ul class="categoryActions">
+	</ul>
+	<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Registration'|@translate}</h2>
+</div>
+</div>
+
+{include file='infos_errors.tpl'}
+
+<form method="post" action="{$F_ACTION}" class="properties" name="register_form">
+  <fieldset>
+    <div class="fielTit"><h2>{'Enter your personnal informations'|@translate}</div></h2>
+
+    <ul>
+      <li>
+        <span class="property">
+          <label for="login">* {'Username'|@translate}</label>
+        </span>
+        <input type="text" name="login" id="login" value="{$F_LOGIN}" >
+      </li>
+      <li>
+        <span class="property">
+          <label for="password">* {'Password'|@translate}</label>
+        </span>
+        <input type="password" name="password" id="password" >
+      </li>
+      <li>
+        <span class="property">
+          <label for="password_conf">* {'Confirm Password'|@translate}</label>
+        </span>
+        <input type="password" name="password_conf" id="password_conf" >
+      </li>
+      <li>
+        <span class="property">
+          <label for="mail_address">{if $obligatory_user_mail_address}* {/if}{'Email address'|@translate}</label>
+        </span>
+        <input type="text" name="mail_address" id="mail_address" value="{$F_EMAIL}" >
+      {if not $obligatory_user_mail_address}
+        ({'useful when password forgotten'|@translate})
+      {/if}
+      </li>
+      <li>
+        <span class="property">
+          <label for="send_password_by_mail">{'Send my connection settings by email'|@translate}</label>
+        </span>
+        <input type="checkbox" name="send_password_by_mail" id="send_password_by_mail" value="1" checked="checked">
+      </li>
+    </ul>
+
+  </fieldset>
+
+  <p class="bottomButtons">
+		<input type="hidden" name="key" value="{$F_KEY}" >
+    <input class="submit" type="submit" name="submit" value="{'Register'|@translate}">
+    <input class="submit" type="reset" value="{'Reset'|@translate}">
+  </p>
+
+</form>
+
+<script type="text/javascript"><!--
+document.register_form.login.focus();
+//--></script>
+
+</div> <!-- content -->
+</div> <!-- registerPage -->
+{/if}
Index: /extensions/Slim/template/search.tpl
===================================================================
--- /extensions/Slim/template/search.tpl	(revision 18811)
+++ /extensions/Slim/template/search.tpl	(revision 18811)
@@ -0,0 +1,135 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)==1}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+	<div class="titrePage">
+		<ul class="categoryActions">
+			{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+			<li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}" class="pwg-state-default pwg-button">
+				<span class="pwg-icon pwg-icon-help">&nbsp;</span><span class="pwg-button-text">{'Help'|@translate}</span>
+			</a></li>
+		</ul>
+		<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Search'|@translate}</h2>
+	</div>
+</div>
+{include file='infos_errors.tpl'}
+
+
+<form class="filter" method="post" name="search" action="{$F_SEARCH_ACTION}">
+<fieldset>
+  <legend>{'Filter'|@translate}</legend>
+  <label>{'Search for words'|@translate}
+    <input type="text" style="width: 300px" name="search_allwords" size="30">
+  </label>
+  <ul>
+    <li><label>
+      <input type="radio" name="mode" value="AND" checked="checked">{'Search for all terms'|@translate}
+    </label></li>
+    <li><label>
+      <input type="radio" name="mode" value="OR">{'Search for any term'|@translate}
+    </label></li>
+  </ul>
+  <label>{'Search for Author'|@translate}
+    <input type="text" style="width: 300px" name="search_author" size="30">
+  </label>
+</fieldset>
+
+{if isset($TAG_SELECTION)}
+<fieldset>
+  <legend>{'Search tags'|@translate}</legend>
+  {$TAG_SELECTION}
+  <label><span><input type="radio" name="tag_mode" value="AND" checked="checked"> {'All tags'|@translate}</span></label>
+  <label><span><input type="radio" name="tag_mode" value="OR"> {'Any tag'|@translate}</span></label>
+</fieldset>
+{/if}
+
+<fieldset>
+  <legend>{'Search by date'|@translate}</legend>
+  <ul>
+    <li><label>{'Kind of date'|@translate}</label></li>
+    <li><label>
+      <input type="radio" name="date_type" value="date_creation" checked="checked">{'Creation date'|@translate}
+    </label></li>
+    <li><label>
+      <input type="radio" name="date_type" value="date_available">{'Post date'|@translate}
+    </label></li>
+  </ul>
+  <ul>
+    <li><label>{'Date'|@translate}</label></li>
+    <li>
+      <select id="start_day" name="start_day">
+          <option value="0">--</option>
+        {section name=day start=1 loop=32}
+          <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$START_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
+        {/section}
+      </select>
+      <select id="start_month" name="start_month">
+        {html_options options=$month_list selected=$START_MONTH_SELECTED}
+      </select>
+      <input id="start_year" name="start_year" type="text" size="4" maxlength="4" >
+      <input id="start_linked_date" name="start_linked_date" type="hidden" size="10" disabled="disabled">
+    </li>
+    <li>
+      <a class="date_today" href="#" onClick="document.search.start_day.value={$smarty.now|date_format:"%d"};document.search.start_month.value={$smarty.now|date_format:"%m"};document.search.start_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
+    </li>
+  </ul>
+  <ul>
+    <li><label>{'End-Date'|@translate}</label></li>
+    <li>
+      <select id="end_day" name="end_day">
+          <option value="0">--</option>
+        {section name=day start=1 loop=32}
+          <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$END_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
+        {/section}
+      </select>
+      <select id="end_month" name="end_month">
+        {html_options options=$month_list selected=$END_MONTH_SELECTED}
+      </select>
+      <input id="end_year" name="end_year" type="text" size="4" maxlength="4" >
+      <input id="end_linked_date" name="end_linked_date" type="hidden" size="10" disabled="disabled">
+    </li>
+    <li>
+      <a class="date_today" href="#" onClick="document.search.end_day.value={$smarty.now|date_format:"%d"};document.search.end_month.value={$smarty.now|date_format:"%m"};document.search.end_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
+    </li>
+  </ul>
+</fieldset>
+
+<fieldset>
+  <legend>{'Search in albums'|@translate}</legend>
+  <label>{'Albums'|@translate}
+    <select class="categoryList" name="cat[]" multiple="multiple" >
+      {html_options options=$category_options selected=$category_options_selected}
+    </select>
+  </label>
+  <ul>
+    <li><label>{'Search in sub-albums'|@translate}</label></li>
+    <li><label>
+      <input type="radio" name="subcats-included" value="1" checked="checked">{'Yes'|@translate}
+    </label></li>
+    <li><label>
+      <input type="radio" name="subcats-included" value="0">{'No'|@translate}
+    </label></li>
+  </ul>
+</fieldset>
+<p>
+  <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}">
+  <input class="submit" type="reset" value="{'Reset'|@translate}">
+</p>
+</form>
+<script type="text/javascript"><!--
+document.search.search_allwords.focus();
+//--></script>
+
+</div> <!-- content -->
+{/if}
Index: /extensions/Slim/template/tags.tpl
===================================================================
--- /extensions/Slim/template/tags.tpl	(revision 18811)
+++ /extensions/Slim/template/tags.tpl	(revision 18811)
@@ -0,0 +1,71 @@
+{php}	global $Slim;	$this->assign( 'Slim', $Slim );{/php}
+
+{if ($Slim.style_slim)==1}
+{php}
+header("Refresh: 2; index.php" );
+{/php}
+
+<div>
+<h3>{'You are not authorized to access the requested page'|@translate}</h3>
+</div>
+{else}
+
+{$MENUBAR}
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+<div id="infoBlock">
+<div class="titrePage">
+	<ul class="categoryActions">
+{if $display_mode == 'letters'}
+		<li><a href="{$U_CLOUD}" title="{'show tag cloud'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-cloud">&nbsp;</span><span class="pwg-button-text">{'cloud'|@translate}</span>
+		</a></li>
+{/if}
+{if $display_mode == 'cloud'}
+		<li><a href="{$U_LETTERS}" title="{'group by letters'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-letters">&nbsp;</span><span class="pwg-button-text">{'letters'|@translate}</span>
+		</a></li>
+{/if}
+	</ul>
+	<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Tags'|@translate}</h2>
+</div>
+</div>
+{include file='infos_errors.tpl'}
+
+{if isset($tags)}
+	{if $display_mode == 'cloud'}
+	<div id="fullTagCloud">
+		{foreach from=$tags item=tag}
+		<span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}">{$tag.name}</a></span>
+		{/foreach}
+	</div>
+	{/if}
+
+  {if $display_mode == 'letters'}
+  <table>
+    <tr>
+      <td valign="top">
+    {foreach from=$letters item=letter}
+  <fieldset class="tagLetter">
+    <div class="fielTit"><h2>{$letter.TITLE}</div></h2>
+    <table class="tagLetterContent">
+      {foreach from=$letter.tags item=tag}
+      <tr class="tagLine">
+        <td><a href="{$tag.URL}" title="{$tag.name}">{$tag.name}</a></td>
+        <td class="nbEntries">{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}</td>
+      </tr>
+      {/foreach}
+    </table>
+  </fieldset>
+      {if isset($letter.CHANGE_COLUMN) }
+      </td>
+      <td valign="top">
+      {/if}
+    {/foreach}
+      </td>
+    </tr>
+  </table>
+  {/if}
+{/if}
+
+</div> <!-- content -->
+{/if}
Index: /extensions/Slim/template/thumbnails.tpl
===================================================================
--- /extensions/Slim/template/thumbnails.tpl	(revision 18811)
+++ /extensions/Slim/template/thumbnails.tpl	(revision 18811)
@@ -0,0 +1,98 @@
+{php}
+    global $page, $template;
+    $template->assign('cat_name', $page['category']['name']);
+	
+	global $Slim;	$this->assign( 'Slim', $Slim );
+{/php}
+
+
+<div id="carouselthumb">
+<div id="wrap">
+<ul id="carousel" class="jcarousel-skin-cat">
+		{if !empty($category_thumbnails)}
+		
+		{foreach from=$category_thumbnails item=cat}
+
+
+			<li>
+					<div class="illustration">
+						<a href="{$cat.URL}">
+							<img 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}" min-width="{$derivative_params->max_width()}" height="{$derivative_params->max_height()}"/>
+						</a>
+					</div>
+					
+						
+						<div class="CatMPdescription">
+							<h3>
+								<a href="{$cat.URL}">{$cat.NAME}</a>
+							</h3>
+							<div>
+							{$cat.CAPTION_NB_IMAGES}
+							</div>	
+						</div>
+			</li>
+		{/foreach}{/if}
+
+
+	{foreach from=$thumbnails item=thumbnail}
+	{assign var=derivative value=$pwg->derivative($derivative_params, $thumbnail.src_image)}
+			<li>
+				<div class="iIllustration">
+					<a href="{if ($Slim.style_slim)!=3}{$thumbnail.path}" class="lytebox" rev="slide:true group:name showNavigation:true navType:1 slideInterval:6000"{else}{$thumbnail.URL}"{/if} title="{$thumbnail.NAME|strip_tags:false|replace:'\'':'&#39;'|replace:'"':'&quot;'}">
+					<img class="thumbnail" src="{$derivative->get_url()}" alt="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}" min-width="{$derivative_params->max_width()}" height="{$derivative_params->max_height()}"/>
+						
+						{if $SHOW_THUMBNAIL_CAPTION }
+							<div class="CatMPdescription">
+								<H3>
+									{$thumbnail.NAME}
+									
+									{if !empty($thumbnail.icon_ts)}
+										<img title="{$thumbnail.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent.png" alt="(!)">
+									{/if}
+								</h3>
+								{if isset($thumbnail.NB_COMMENTS) or isset($thumbnail.NB_HITS)}
+								<div>
+									{if isset($thumbnail.NB_COMMENTS)}
+										<p class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments">
+										{$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)}
+										</p>
+									{/if}
+									{if isset($thumbnail.NB_HITS)}
+										<p class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits">
+										{$pwg->l10n_dec('%d hit', '%d hits',$thumbnail.NB_HITS)}
+										</p>
+									{/if}
+								</div>
+								{/if}
+							</div>
+						{/if}
+					</a>	
+				</div>	
+			</li>
+	{/foreach}
+</ul>
+{footer_script}{literal}
+function mycarousel_initCallback(carousel)
+{
+    // Pause autoscrolling if the user moves with the cursor over the clip.
+    carousel.clip.hover(function() {
+        carousel.stopAuto();
+    }, function() {
+        carousel.startAuto();
+    });
+};
+
+jQuery(document).ready(function() {
+    jQuery('#carousel').jcarousel({
+    	auto: 0,
+		wrap: 'circular',
+		scroll: 2,
+		initCallback: mycarousel_initCallback,
+		
+    });
+});
+
+{/literal}{/footer_script}
+
+</div>
+</div>
Index: /extensions/Slim/theme.css
===================================================================
--- /extensions/Slim/theme.css	(revision 18811)
+++ /extensions/Slim/theme.css	(revision 18811)
@@ -0,0 +1,198 @@
+BODY{background:url("images/texture.png")}
+BODY,H1,H3,INPUT.rateButtonSelected,H2,#menubar DT{color:#666}
+FIELDSET,INPUT,SELECT,TEXTAREA,.content .thumbnailCategory,.thumbnails .wrap2{background:#EFEFEF;border-radius:5px;border:1px solid #afafaf}
+LEGEND{font-style:normal;font-weight:700;margin-top:25px;border-top:1px solid #afafaf;line-height:25px}
+SELECT{width:178px;font-size:13px;border-radius:5px 0 0 5px;background:#DFDFDF;height:22px;margin:0 1px 0 0;padding:0 0 0 4px}
+.filter{background:#EFEFEF;border-radius:5px;border:1px solid #afafaf;margin-top:20px}
+INPUT[type="text"],INPUT[type="password"],INPUT[type="button"],INPUT[type="file"]{width:172px;font-size:13px;border-radius:5px;height:20px;background:#DFDFDF;margin:0 1px 0 0;padding:0 0 0 4px}
+INPUT[type="text"]:hover,INPUT[type="password"]:hover,INPUT[type="button"]:hover,INPUT[type="file"]:hover,SELECT:hover{background-image:-moz-linear-gradient(left center , #DFDFDF 46%, #EFEFEF 82%)}
+INPUT[type="submit"],INPUT[type="reset"]{padding-bottom:4px;width:auto;height:25px;text-align:center;border-radius:8px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.2);color:#666}
+INPUT[type="submit"]:hover,INPUT[type="reset"]:hover{background:-moz-linear-gradient(center top , #DFDFDF, #EFEFEF);color:#AFAFAF}
+A, INPUT.rateButton{color:#666;text-decoration:none;border:none}
+#go INPUT[type="submit"]{width:140px;margin:10px 20px 20px}
+#quicksearch INPUT[type="submit"]{border:none;height:22px;width:23px;background:url("images/menu/search.png") no-repeat;font-size:13px;cursor:pointer;float:right;margin-left:2px;border-radius:0}
+A:hover{color:#8F8F8F;border:none}
+.commentsList{overflow:inherit}
+#theHeader{text-align:left;padding-left:100px;padding-top:50px;position:relative}
+#theHeader H1{display:inline-block;text-align:left;font-size:280%;margin:0}
+#theHeader p{display:inline-block;font-size:130%;position:absolute;right:40px;bottom:0}
+#content{margin:0 40px}
+.content H2{margin:3px 0 0}
+#infoBlock,#imageHeaderBar{background:rgba(239, 239, 239, 1);border-radius:3px;box-shadow:0 1px 1px rgba(0, 0, 0, 0.4) inset, 0 1px rgba(255, 255, 255, 0.4)}
+.switchBox{background:#5f5f5f}
+#imageHeaderBar{width:auto;height:20px;margin:40px 50px 20px;padding:10px}
+#imageHeaderBar H2{background-image:none;border:none}
+.imageNumber{text-align:right}
+.message{color:#FFF;background:#666}
+.description{margin-left:20px;padding-bottom:10px}
+#home{padding-bottom:20px}
+.logcontener{Background:#EFEFEF;border:1px solid #afafaf;border-radius:5px;margin-top:40px}
+.logcontener SPAN.property{width:100%}
+.filter UL, .filter LABEL{float:none;margin-left:10px;margin-right:5px}
+
+/*=========================================icon======================================================*/
+.pwg-icon{background-image:url("../default/s26/outline_808080.png")}
+A:hover .pwg-icon{background-image:url("../default/s26/outline_808060.png")}
+.pwg-icon-filter{background-image:url("../default/s26/outline_005e89.png")}
+
+/*=========================================categorie page======================================================*/
+.illustration{border-radius:7px;position:relative;margin-right:10px;float:none}
+.illustration img{display:block;border-radius:7px;margin:0 auto}
+.content .additional_info{text-align:left;padding-bottom:20px;padding-left:25px}
+.CatMPdescription h3{background:transparent;margin:5px 30px 0 0}
+.CatMPdescription{text-align:left;position:relative;z-index:100}
+.CatMPdescription div{position:absolute;bottom:40px;width:180px;background:#FFF;overflow:hidden;color:#666;left:0;opacity:0;-moz-transition:bottom 1s ease 0s, width 1s ease 0s, opacity 1s ease 0s;border-radius:10px 10px 10px 10px;border:1px solid gray;padding:0 5px 5px;margin-left:5px}
+.CatMPdescription:hover div{background:#FFF;border-radius:10px 10px 10px 10px;border:1px solid gray;-moz-transition:bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;opacity:1;padding:0 5px 5px}
+.CatMPdescription div p{margin:0}
+/*=========================================footer======================================================*/
+#copyright a{color:#B3B3B3}
+#copyright a:hover{color:gray;border:none}
+#copyright{font-size:12px;position:fixed;bottom:0;right:10px}
+
+/*=========================================menu======================================================*/
+img, ul#topnav .sub ul .level1 li,ul#topnav .sub ul .level1 li .selected{border:medium none}
+#menubar{width:24em;margin-left:0}
+#menubar DL,.header_notes{background:#FFF}
+#menubar UL{list-style-type:none;list-style-position:inside;padding:0 0 0 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}
+#nav_wrapper{position:absolute;top:0;left:0;height:24px;min-width:800px;width:100%;z-index:1000;;background:#EFEFEF;margin:auto;padding-top:6px}
+span#menu_start{float:left;display:block;height:30px;width:85px;background:none;margin-top:-6px}
+span#menu_start a{width:52px;height:30px;text-indent:-9999px;display:block;line-height:46px;background:url("images/home_w.png") no-repeat left top;margin:0 20px 0 25px;padding:0}
+span#menu_start a:hover{background-position:left -32px}
+ul#topnav{list-style:none;height:0;position:relative;z-index:999;width:600px;margin:0;padding:0}
+ul#topnav li{float:left;position:relative;background:none;margin:0;padding:0}
+.sub p{color:#4C4C4C;font-size:13px}
+ul#topnav li .sub,ul#topnav li #loger{position:absolute;top:24px;left:8px;float:left;max-width:100em;min-width:200px;display:none;z-index:0;max-height:500px;overflow:auto;background:#FFF;border:1px solid #C8C8C8;border-radius:0 0 10px 10px;opacity:0.5;padding:5px 8px 10px}
+ul#topnav li .sub{z-index:100}
+.mcol{width:100%}
+.menubarFilter{margin:0}
+#menu_cat_act{border-bottom:1px solid #CBCBCB;margin-bottom:5px;height:30px}
+#filter{width:26px;height:26px;background:none;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:0 5px 0 8px;padding:0}
+ul#topnav .sub ul li,ul#topnav #loger ul li,ul#topnav .sub #menuTagCloud div{color:#757575;background:none;font-size:10px;margin-bottom:2px;border:1px solid #CBCBCB;border-radius:10px 10px 10px 10px;width:95%}
+ul#topnav .sub ul li.selected{font-size:10px;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:none}
+ul#topnav .sub ul li.selected a{background:url("images/menu/navlist_arrow_hover.png") no-repeat0 5px}
+ul#topnav .sub ul li a,ul#topnav #loger ul li a{float:none;text-indent:0;height:auto;display:block;text-decoration:none;color:#757575;font-size:1.1em;text-shadow:none;text-transform:none;line-height:17px;z-index:200;margin:0 8px;padding:0 0 0 10px}
+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 0 5px transparent;text-decoration:underline}
+span.dd_wrapper,span.cl_wrapper,span.cc_wrapper{float:left;margin-right:16px;padding:0 8px 6px}
+li.liSub:hover span.dd_wrapper,li.liSub:hover span.cl_wrapper,li.liSub:hover span.cc_wrapper,.activate{z-index:100;text-shadow:none;color:#C8C8C8;padding:0 8px 6px}
+.close{height:16px;width:16px;background:url("images/menu/close.png") no-repeat;float:right}
+.close:hover{background:url("images/menu/close.png") no-repeat 0 -16px}
+.contenLog{height:40px}
+#search{position:absolute;width:240px;right:0;margin-top:-2px;height:22px}
+#quicksearch{float:left;width:220px}
+#quickconnect DIV{margin-bottom:8px}
+
+/*=========================================picture page======================================================*/
+/*____panel___*/
+.panel{position:absolute;left:0;display:none;border:1px solid #111;border-top-right-radius:20px;border-bottom-right-radius:20px;width:auto;min-width:330px;height:auto;z-index:10000;background:rgba(0, 0, 0, 0.7);top:25%;color:#EFEFEF;padding:10px 30px 30px 20px}
+.panel p{color:#EFEFEF;margin:0 0 15px;padding:0}
+a.trigger{position:absolute;text-decoration:none;left:0;font-size:14px;letter-spacing:-1px;font-family:verdana,helvetica,arial,sans-serif;color:#FFF;font-weight:700;background:url("images/picture/plus.png") no-repeat 85% 55% #333;border:1px solid #444;border-top-right-radius:15px;border-bottom-right-radius:15px;display:block;z-index:100000;top:26%;padding:10px 30px 10px 5px}
+a.trigger:hover{background-color:#222}
+a.active.trigger{background:url("images/picture/minus.png") no-repeat 85% 55% #222}
+.panel ul li,#imageToolBar li,#pictcomm ul{list-style-type:none}
+.panel ul{margin:0;padding:0}
+.panel .value{padding-right:5px}
+.panel a{color:#EFEFEF}
+#rateForm input{width:22px}
+#rateForm input:hover{background:url("icon/rating-stars.png") no-repeat -20px center}
+.rateButtonStarFull{background:url("icon/rating-stars.png") no-repeat -20px center;width:20px}
+.rateButtonStarEmpty{background:url("icon/rating-stars.png") no-repeat 0 center;width:20px}
+#rating{margin:5px 0}
+.infoTable a:hover{text-decoration:underline}
+TABLE#standard,TABLE#Metadata{font-size:80%;margin-left:0;margin-bottom:30px}
+.infoTable .label,.infoTable2 .label{text-align:left}
+#imageToolBar{height:auto;padding-left:120px;margin-bottom:40px;text-align:left}
+#imageToolBar A:hover{color:#FFCF3D;text-decoration:underline}
+
+/*___content___*/
+#imgContainer{position:relative;margin-left:auto;margin-right:auto;text-align:left}
+#imgContent{position:relative;display:table;margin:auto}
+.navThumbs,#imgHoverNav{position:absolute;top:0;left:0;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:0;float:left;margin-left:3px;background:url("images/picture/imgPrevHover.png") no-repeat left 45%}
+#imgNextHov{right:0;float:right;margin-right:3px;background:url("images/picture/imgNextHover.png") no-repeat scroll right 45%}
+#thumbPrevHov{left:0;float:left}
+#thumbNextHov{right:0;float:right}
+#imgPrevHov:hover,#imgNextHov:hover,#thumbPrevHov:hover,#thumbNextHov:hover{opacity:1}
+.linkPrev{position:absolute;left:-80px;top:40%}
+.linkNext{position:absolute;right:-80px;top:40%}
+#groupbuttons{width:200px;margin:auto}
+
+/*___comment___*/
+#comments{padding:0 0 40px;text-align:left}
+#commentAdd,#pictureCommentList{width:48%}
+#pictureCommentList li{margin-top:20px}
+.commentElement{width:100%;margin:10px 0 0;padding:0}
+.commentElement .illustration{float:left;margin:10px}
+#pictcomm{margin-bottom:50px;width:99%;height:190px;background:#7F7E7E;float:left}
+.even,.odd{color:#666;border:1px solid #C1C1C1}
+.odd{padding-top:10px}
+.thumbnailCategories1{padding:0}
+.thumbnailCategories1 LI{width:100%;float:none;margin:0;padding:0}
+.author,.date{color:#C5C5C5}
+#adcomm{margin-bottom:30px}
+.addcom{float:none !important;margin-right:0 !important}
+#addComment FIELDSET{margin:0;padding:0}
+.content .commentElement .description{height:auto !important}
+#contentid{border:medium none;background:#7F7E7E;margin:0 auto 20px}
+#comcontent{width:750px;padding-left:5px;padding-top:5px}
+.comment .com{height:auto;width:auto;color:#000}
+#commentAdd input[type="text"],#comments TEXTAREA{width:auto;height:auto}
+#comments TEXTAREA{padding:4px}
+#editComment{height:auto}
+
+/*=========================================carousel======================================================*/
+#carousel{min-width:10000px}
+.jcarousel-item a:hover{border-bottom:none}
+.jcarousel-list li,.jcarousel-item{float:left;list-style:none}
+.jcarousel-container-horizontal .jcarousel-clip,.jcarousel-skin-cat .jcarousel-list li{position:relative}
+.jcarousel-skin-cat .jcarousel-container{border:1px solid rgba(0,0,0,0.5);border-radius:8px;background:rgba(0,0,0,0.25);box-shadow:0 2px 6px rgba(0,0,0,0.5),inset 0 1px rgba(255,255,255,0.3),inset 0 2px rgba(255,255,255,0.2),inset 0 10px 20px rgba(255,255,255,0.25),inset 0 -15px 30px rgba(0,0,0,0.3)}
+.jcarousel-skin-cat{padding:40px}
+.jcarousel-container-horizontal{padding:30px 7px}
+.jcarousel-skin-cat .jcarousel-clip{overflow:hidden}
+.jcarousel-skin-cat .jcarousel-item:hover,.jcarousel-skin-cat .jcarousel-item:focus{border-color:gray}
+.jcarousel-skin-cat .jcarousel-item-horizontal{margin-left:0;margin-right:7px;list-style:none}
+.jcarousel-skin-cat .jcarousel-direction-rtl .jcarousel-item-horizontal{margin-left:7px;margin-right:0}
+.jcarousel-skin-cat .jcarousel-next-horizontal{position:absolute;right:20px;width:32px;cursor:pointer;top:0;height:100%;background:url("images/next-horizontal.png") no-repeat 0 50%}
+.jcarousel-skin-cat .jcarousel-direction-rtl .jcarousel-next-horizontal{left:5px;right:auto;background:url("images/prev-horizontal.png")}
+.jcarousel-skin-cat .jcarousel-prev-horizontal{position:absolute;left:20px;width:32px;cursor:pointer;height:100%;background:url("images/prev-horizontal.png") no-repeat 0 50%;top:0}
+.jcarousel-skin-cat .jcarousel-direction-rtl .jcarousel-prev-horizontal{left:auto;right:5px;background:url("images/next-horizontal.png")}
+.jcarousel-skin-cat .jcarousel-next-horizontal:hover,.jcarousel-skin-cat .jcarousel-next-horizontal:focus,.jcarousel-skin-cat .jcarousel-prev-horizontal:hover,.jcarousel-skin-cat .jcarousel-prev-horizontal:focus{background-position:-32px 50%}
+.jcarousel-skin-cat .jcarousel-next-horizontal:active,.jcarousel-skin-cat .jcarousel-prev-horizontal:active{background-position:-64px 50%}
+.jcarousel-skin-cat .jcarousel-next-disabled-horizontal,.jcarousel-skin-cat .jcarousel-next-disabled-horizontal:hover,.jcarousel-skin-cat .jcarousel-next-disabled-horizontal:focus,.jcarousel-skin-cat .jcarousel-next-disabled-horizontal:active,.jcarousel-skin-cat .jcarousel-prev-disabled-horizontal,.jcarousel-skin-cat .jcarousel-prev-disabled-horizontal:hover,.jcarousel-skin-cat .jcarousel-prev-disabled-horizontal:focus,.jcarousel-skin-cat .jcarousel-prev-disabled-horizontal:active{cursor:default;background-position:-96px 0}
+
+/*=========================================Lytebox======================================================*/
+#lbOverlay{position:fixed;top:0px;left:0px;z-index:99997;width:100%;height:100%;background:#000}
+#lbMain{position:absolute;left:0px;width:100%;z-index:99998;text-align:center;line-height:0;isplay:-moz-inline-stack}
+#lbMain a img{border:1px solid #FFF}
+#lbOuterContainer{position:relative;background:transparent;width:200px;height:200px;margin:0px auto;border:2px solid #CCC}
+#lbTopContainer,#lbBottomContainer{font:0.9em/1.4em Verdana,Helvetica,sans-serif;background:transparent;width:100%;overflow:hidden;margin:0px auto;padding:0px;position:relative;z-index:14;display:none}
+#lbTopContainer{overflow:hidden;margin-top:5px}
+#lbImage,#lbIframe{border:1px solid #CCC}
+#lbImageContainer,#lbIframeContainer{z-index: 12}
+#lbLoading{height:100%;width:100%;margin-top:-10px;background:url("images/Lytebox/loading.gif") no-repeat center center}
+#lbHoverNav{position:absolute;top:0px;left:0px;height:100%;width:100%;z-index:10}
+#lbImageContainer > #lbHoverNav{left:0px}
+#lbHoverNav a{outline: medium none}
+#lbPrevHov{width:48%;height:100%;background:url("images/Lytebox/blank.gif") no-repeat 0% 0%;display:block;left:0px;float:left;margin-left:3px;border:medium none !important}
+#lbPrevHov:hover,#lbPrevHov:visited{background:url("images/Lytebox/prev_t.png") no-repeat left 45%}
+#lbNextHov{width:48%;height:100%;background:url("images/Lytebox/blank.gif") no-repeat 0% 0%;display:block;right:0px;margin-right:3px;border:medium none !important;float: right}
+#lbNextHov:hover,#lbNextHov:visited{background: url("images/Lytebox/next_t.png") no-repeat right 45%}
+#lbTopData,#lbBottomData{float:left;text-align:left;padding-left: 10px}
+#lbBottomData{padding-bottom:0.5em;color:#FFF}
+#lbTopNav,#lbBottomNav{float:right;text-align:right;padding-right:10px;padding-top:10px}
+#lbNumTop,#lbNumBottom{font-style:italic}
+#lbDescBottom{display:block}
+#lbTitleTop,#lbTopNav{margin-top:0.3em}
+#lbTitleTop,#lbTitleBottom{display:block;font-weight:bold}
+#lbClose,#lbCloseTop{width:10px;height:10px;float:right;margin:0px 0px 1px 8px;border:medium none !important;background:url("images/Lytebox/close.png") no-repeat 0% 0%}
+#lbPrint,#lbPrintTop{width:26px;height:28px;float:right;margin:0px 0px 1px 8px;border:medium none !important;background:url("images/Lytebox/print.png") no-repeat 0% 0%}
+#lbPlay,#lbPlayTop{width:10px;height:10px;float:right;margin:0px 0px 1px 8px;border:medium none !important;background:url("images/Lytebox/play.png") no-repeat 0% 0%}
+#lbPause,#lbPauseTop{width:10px;height:10px;float:right;margin:0px 0px 1px 8px;border:medium none !important;background:url("images/Lytebox/pause.png") no-repeat 0% 0%}
+#lbClose,#lbPrint,#lbPlay,#lbPause{margin:0px 0px 6px 8px}
Index: /extensions/Slim/theme_black.css
===================================================================
--- /extensions/Slim/theme_black.css	(revision 18811)
+++ /extensions/Slim/theme_black.css	(revision 18811)
@@ -0,0 +1,17 @@
+BODY{background-color:#000}
+#menubar DL,#imageToolBar,.header_notes {background-color:#000}
+.logcontener{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}
+BODY,H1,H3,INPUT.rateButtonSelected,H2,#menubar DT{color:#fff}
+A,INPUT.rateButton{color:#fff}
+FIELDSET,.content .thumbnailCategory,.thumbnails .wrap2{background-color:#3F3F3F;border:1px solid #696969}
+#nav_wrapper{background:none repeat scroll 0 0 #3f3f3f;border-bottom:1px solid #696969}
+.illustration img{border:1px solid #696969}
+.filter{background-color:#3f3f3f;border-radius:5px 5px 5px 5px;border:1px solid #696969}
+.panel{background:none repeat scroll 0 0 rgba(255, 255, 255, 0.8);color:#4f4f4f}
+.panel a{color:#6f6f6f}
+.panel a:hover{color:#4f4f4f}
+a.trigger{background-color:#3f3f3f}
+a.trigger:hover{background-color:#6f6f6f}
+a.active.trigger{background-color:#6f6f6f}
+#infoBlock,#imageHeaderBar{background:none repeat scroll 0 0 rgba(0, 0, 0, 0.35);border: 1px solid #262626;border-radius:3px;box-shadow:0 1px 3px rgba(0, 0, 0, 0.7)inset,0 1px 0 rgba(0, 0, 0, 0.65),0 2px 0 rgba(255, 255, 255, 0.2)}
+.contenLog{color:#000}
Index: /extensions/Slim/theme_grey.css
===================================================================
--- /extensions/Slim/theme_grey.css	(revision 18811)
+++ /extensions/Slim/theme_grey.css	(revision 18811)
@@ -0,0 +1,4 @@
+BODY{background-color:#cfcfcf}
+#nav_wrapper,#infoBlock,#imageHeaderBar,.header_notes{background-color:#bfbfbf}
+.jcarousel-skin-cat .jcarousel-container{background:none repeat scroll 0 0 rgba(200, 200, 200, 0.35)}
+
Index: /extensions/Slim/themeconf.inc.php
===================================================================
--- /extensions/Slim/themeconf.inc.php	(revision 18811)
+++ /extensions/Slim/themeconf.inc.php	(revision 18811)
@@ -0,0 +1,71 @@
+<?php
+/*
+Theme Name: Slim
+Version: 1.0
+Description: Slim.
+Theme URI: 
+Author: Miklfe
+Author URI: 
+*/
+
+
+	global $conf, $user, $Slim;
+
+$themeconf = array(
+	'name'  		=> 'Slim',
+	'parent' 		=> 'default',
+	'local_head'	=> 'local_head.tpl',
+
+
+);
+
+
+
+$Slim = array_merge( unserialize( $conf['Slim'] ), (array)$Slim );
+
+
+
+add_event_handler('loc_begin_index', 'modify_nb_thumbnail_page');
+function modify_nb_thumbnail_page()
+{
+global $user, $page;
+	$user['nb_image_page']=999;
+	$page['nb_image_page']=999;
+
+}
+
+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;
+}
+
+if($user['theme']=='Slim'){
+add_event_handler('loc_end_page_header', 'load_Slim' );
+
+function load_Slim()
+{
+global $user, $page; 
+if($page['body_id']=='theAdminPage' )
+{}
+else{
+if($user['theme']=='Slim')
+		{include('Slim.php');}
+		
+	}
+}
+
+
+if($Slim['style_slim']=='2')
+{
+   add_event_handler('blockmanager_apply', 'sans_comm' );
+   function sans_comm( $menu_ref_arr )
+{
+    $menu = & $menu_ref_arr[0];
+	$block = $menu->get_block( 'mbMenu' );
+	unset( $block->data['comments'] );
+}
+}
+}
+?>
