Index: /extensions/Float/admin/admin.inc.php
===================================================================
--- /extensions/Float/admin/admin.inc.php	(revision 18804)
+++ /extensions/Float/admin/admin.inc.php	(revision 18804)
@@ -0,0 +1,53 @@
+<?php
+load_language('theme.lang', PHPWG_THEMES_PATH.'Float/');
+
+
+if (isset($_POST['default']))
+{
+  $params  = array(							
+						'bg_float'			=> '#FFA800',
+						'bd_float'			=> '#4F4F4F',
+						'title_float'		=> '#4F4F4F',
+
+					);
+  
+  conf_update_param('Float', pwg_db_real_escape_string(serialize($params)));
+
+  array_push($page['infos'], l10n('Your configuration settings are saved'));
+
+  load_conf_from_db();
+}
+
+
+if (isset($_POST['submit']))
+{
+  $params  = array(	
+					'bg_float'			=> $_POST['bg_float'],
+					'bd_float'			=> $_POST['bd_float'],
+					'title_float'		=> $_POST['title_float'],
+
+					);
+  
+  conf_update_param('Float', 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['Float']));
+
+$template->assign(array(
+						'selected_bg_float'			=> $params['bg_float'],
+						'selected_bd_float'			=> $params['bd_float'],
+						'selected_title_float'		=> $params['title_float'],
+						));
+
+
+
+$template->set_filenames(array('theme_admin_content' => dirname(__FILE__) . '/admin.tpl'));
+$template->assign('options', unserialize($conf['Float']));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content');
+ ?>
Index: /extensions/Float/admin/admin.tpl
===================================================================
--- /extensions/Float/admin/admin.tpl	(revision 18804)
+++ /extensions/Float/admin/admin.tpl	(revision 18804)
@@ -0,0 +1,47 @@
+{html_head}
+	<script type="text/javascript" src="themes/Float/admin/js/farbtastic.js" ></script>
+	<script type="text/javascript" src="themes/default/js/ui/minified/jquery.ui.slider.min.js"></script>
+
+    <link rel="stylesheet" href="themes/Float/admin/theme.css" />
+{/html_head}
+	
+	
+	
+<div class="titrePage">
+<h2>Float</h2>
+</div>
+
+<form action="" method="post">
+
+<fieldset>
+	<legend>{'Color of theme'|@translate}</legend>
+	  <div id="textcolor">
+	  <div class="form-item"><label>Background color:</label><input type="text" name="bg_float" class="colorwell" value="{$selected_bg_float}" /></div>
+	  <div class="form-item"><label>Color picture of cardre:</label><input type="text" name="bd_float" class="colorwell" value="{$selected_bd_float}" /></div>
+	  <div class="form-item"><label>Color title:</label><input type="text" name="title_float" class="colorwell" value="{$selected_title_float}" /></div>
+	  <p><input type="submit" name="default" value="{'Default'|@translate}" ></p>
+	  </div>
+
+	  <div id="picker"></div>
+</fieldset>  
+{footer_script}{literal}
+  $(document).ready(function() {
+    var f = $.farbtastic('#picker');
+    var p = $('#picker').css('opacity', 1);
+    var selected;
+    $('.colorwell')
+      .each(function () { f.linkTo(this); $(this).css('opacity', 1); })
+      .focus(function() {
+        if (selected) {
+          $(selected).css('opacity', 1).removeClass('colorwell-selected');
+        }
+        f.linkTo(this);
+        p.css('opacity', 1);
+        $(selected = this).css('opacity', 1).addClass('colorwell-selected');
+      });
+  });
+{/literal}{/footer_script}
+<p><input type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+</form>
+
+
Index: /extensions/Float/admin/index.php
===================================================================
--- /extensions/Float/admin/index.php	(revision 18804)
+++ /extensions/Float/admin/index.php	(revision 18804)
@@ -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/Float/admin/js/farbtastic.js
===================================================================
--- /extensions/Float/admin/js/farbtastic.js	(revision 18804)
+++ /extensions/Float/admin/js/farbtastic.js	(revision 18804)
@@ -0,0 +1,345 @@
+/**
+ * Farbtastic Color Picker 1.2
+ * © 2008 Steven Wittens
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+jQuery.fn.farbtastic = function (callback) {
+  $.farbtastic(this, callback);
+  return this;
+};
+
+jQuery.farbtastic = function (container, callback) {
+  var container = $(container).get(0);
+  return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
+}
+
+jQuery._farbtastic = function (container, callback) {
+  // Store farbtastic object
+  var fb = this;
+
+  // Insert markup
+  $(container).html('<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>');
+  var e = $('.farbtastic', container);
+  fb.wheel = $('.wheel', container).get(0);
+  // Dimensions
+  fb.radius = 84;
+  fb.square = 100;
+  fb.width = 194;
+
+  // Fix background PNGs in IE6
+  if (navigator.appVersion.match(/MSIE [0-6]\./)) {
+    $('*', e).each(function () {
+      if (this.currentStyle.backgroundImage != 'none') {
+        var image = this.currentStyle.backgroundImage;
+        image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
+        $(this).css({
+          'backgroundImage': 'none',
+          'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
+        });
+      }
+    });
+  }
+
+  /**
+   * Link to the given element(s) or callback.
+   */
+  fb.linkTo = function (callback) {
+    // Unbind previous nodes
+    if (typeof fb.callback == 'object') {
+      $(fb.callback).unbind('keyup', fb.updateValue);
+    }
+
+    // Reset color
+    fb.color = null;
+
+    // Bind callback or elements
+    if (typeof callback == 'function') {
+      fb.callback = callback;
+    }
+    else if (typeof callback == 'object' || typeof callback == 'string') {
+      fb.callback = $(callback);
+      fb.callback.bind('keyup', fb.updateValue);
+      if (fb.callback.get(0).value) {
+        fb.setColor(fb.callback.get(0).value);
+      }
+    }
+    return this;
+  }
+  fb.updateValue = function (event) {
+    if (this.value && this.value != fb.color) {
+      fb.setColor(this.value);
+    }
+  }
+
+  /**
+   * Change color with HTML syntax #123456
+   */
+  fb.setColor = function (color) {
+    var unpack = fb.unpack(color);
+    if (fb.color != color && unpack) {
+      fb.color = color;
+      fb.rgb = unpack;
+      fb.hsl = fb.RGBToHSL(fb.rgb);
+      fb.updateDisplay();
+    }
+    return this;
+  }
+
+  /**
+   * Change color with HSL triplet [0..1, 0..1, 0..1]
+   */
+  fb.setHSL = function (hsl) {
+    fb.hsl = hsl;
+    fb.rgb = fb.HSLToRGB(hsl);
+    fb.color = fb.pack(fb.rgb);
+    fb.updateDisplay();
+    return this;
+  }
+
+  /////////////////////////////////////////////////////
+
+  /**
+   * Retrieve the coordinates of the given event relative to the center
+   * of the widget.
+   */
+  fb.widgetCoords = function (event) {
+    var x, y;
+    var el = event.target || event.srcElement;
+    var reference = fb.wheel;
+
+    if (typeof event.offsetX != 'undefined') {
+      // Use offset coordinates and find common offsetParent
+      var pos = { x: event.offsetX, y: event.offsetY };
+
+      // Send the coordinates upwards through the offsetParent chain.
+      var e = el;
+      while (e) {
+        e.mouseX = pos.x;
+        e.mouseY = pos.y;
+        pos.x += e.offsetLeft;
+        pos.y += e.offsetTop;
+        e = e.offsetParent;
+      }
+
+      // Look for the coordinates starting from the wheel widget.
+      var e = reference;
+      var offset = { x: 0, y: 0 }
+      while (e) {
+        if (typeof e.mouseX != 'undefined') {
+          x = e.mouseX - offset.x;
+          y = e.mouseY - offset.y;
+          break;
+        }
+        offset.x += e.offsetLeft;
+        offset.y += e.offsetTop;
+        e = e.offsetParent;
+      }
+
+      // Reset stored coordinates
+      e = el;
+      while (e) {
+        e.mouseX = undefined;
+        e.mouseY = undefined;
+        e = e.offsetParent;
+      }
+    }
+    else {
+      // Use absolute coordinates
+      var pos = fb.absolutePosition(reference);
+      x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
+      y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
+    }
+    // Subtract distance to middle
+    return { x: x - fb.width / 2, y: y - fb.width / 2 };
+  }
+
+  /**
+   * Mousedown handler
+   */
+  fb.mousedown = function (event) {
+    // Capture mouse
+    if (!document.dragging) {
+      $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
+      document.dragging = true;
+    }
+
+    // Check which area is being dragged
+    var pos = fb.widgetCoords(event);
+    fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
+
+    // Process
+    fb.mousemove(event);
+    return false;
+  }
+
+  /**
+   * Mousemove handler
+   */
+  fb.mousemove = function (event) {
+    // Get coordinates relative to color picker center
+    var pos = fb.widgetCoords(event);
+
+    // Set new HSL parameters
+    if (fb.circleDrag) {
+      var hue = Math.atan2(pos.x, -pos.y) / 6.28;
+      if (hue < 0) hue += 1;
+      fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
+    }
+    else {
+      var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
+      var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
+      fb.setHSL([fb.hsl[0], sat, lum]);
+    }
+    return false;
+  }
+
+  /**
+   * Mouseup handler
+   */
+  fb.mouseup = function () {
+    // Uncapture mouse
+    $(document).unbind('mousemove', fb.mousemove);
+    $(document).unbind('mouseup', fb.mouseup);
+    document.dragging = false;
+  }
+
+  /**
+   * Update the markers and styles
+   */
+  fb.updateDisplay = function () {
+    // Markers
+    var angle = fb.hsl[0] * 6.28;
+    $('.h-marker', e).css({
+      left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
+      top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
+    });
+
+    $('.sl-marker', e).css({
+      left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
+      top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
+    });
+
+    // Saturation/Luminance gradient
+    $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
+
+    // Linked elements or callback
+    if (typeof fb.callback == 'object') {
+      // Set background/foreground color
+      $(fb.callback).css({
+        backgroundColor: fb.color,
+        color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
+      });
+
+      // Change linked value
+      $(fb.callback).each(function() {
+        if (this.value && this.value != fb.color) {
+          this.value = fb.color;
+        }
+      });
+    }
+    else if (typeof fb.callback == 'function') {
+      fb.callback.call(fb, fb.color);
+    }
+  }
+
+  /**
+   * Get absolute position of element
+   */
+  fb.absolutePosition = function (el) {
+    var r = { x: el.offsetLeft, y: el.offsetTop };
+    // Resolve relative to offsetParent
+    if (el.offsetParent) {
+      var tmp = fb.absolutePosition(el.offsetParent);
+      r.x += tmp.x;
+      r.y += tmp.y;
+    }
+    return r;
+  };
+
+  /* Various color utility functions */
+  fb.pack = function (rgb) {
+    var r = Math.round(rgb[0] * 255);
+    var g = Math.round(rgb[1] * 255);
+    var b = Math.round(rgb[2] * 255);
+    return '#' + (r < 16 ? '0' : '') + r.toString(16) +
+           (g < 16 ? '0' : '') + g.toString(16) +
+           (b < 16 ? '0' : '') + b.toString(16);
+  }
+
+  fb.unpack = function (color) {
+    if (color.length == 7) {
+      return [parseInt('0x' + color.substring(1, 3)) / 255,
+        parseInt('0x' + color.substring(3, 5)) / 255,
+        parseInt('0x' + color.substring(5, 7)) / 255];
+    }
+    else if (color.length == 4) {
+      return [parseInt('0x' + color.substring(1, 2)) / 15,
+        parseInt('0x' + color.substring(2, 3)) / 15,
+        parseInt('0x' + color.substring(3, 4)) / 15];
+    }
+  }
+
+  fb.HSLToRGB = function (hsl) {
+    var m1, m2, r, g, b;
+    var h = hsl[0], s = hsl[1], l = hsl[2];
+    m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
+    m1 = l * 2 - m2;
+    return [this.hueToRGB(m1, m2, h+0.33333),
+        this.hueToRGB(m1, m2, h),
+        this.hueToRGB(m1, m2, h-0.33333)];
+  }
+
+  fb.hueToRGB = function (m1, m2, h) {
+    h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
+    if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
+    if (h * 2 < 1) return m2;
+    if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
+    return m1;
+  }
+
+  fb.RGBToHSL = function (rgb) {
+    var min, max, delta, h, s, l;
+    var r = rgb[0], g = rgb[1], b = rgb[2];
+    min = Math.min(r, Math.min(g, b));
+    max = Math.max(r, Math.max(g, b));
+    delta = max - min;
+    l = (min + max) / 2;
+    s = 0;
+    if (l > 0 && l < 1) {
+      s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
+    }
+    h = 0;
+    if (delta > 0) {
+      if (max == r && max != g) h += (g - b) / delta;
+      if (max == g && max != b) h += (2 + (b - r) / delta);
+      if (max == b && max != r) h += (4 + (r - g) / delta);
+      h /= 6;
+    }
+    return [h, s, l];
+  }
+
+  // Install mousedown handler (the others are set on the document on-demand)
+  $('*', e).mousedown(fb.mousedown);
+
+    // Init color
+  fb.setColor('#000000');
+
+  // Set linked elements/callback
+  if (callback) {
+    fb.linkTo(callback);
+  }
+}
Index: /extensions/Float/admin/maintain.inc.php
===================================================================
--- /extensions/Float/admin/maintain.inc.php	(revision 18804)
+++ /extensions/Float/admin/maintain.inc.php	(revision 18804)
@@ -0,0 +1,29 @@
+<?php
+
+function theme_activate($id, $version, &$errors)
+	{
+	global $conf;
+
+	if (!isset($conf['Float']))
+		{
+		$config = array(
+						'bg_float'			=> '#FFA800',
+						'bd_float'			=> '#4F4F4F',
+						'title_float'		=> '#4F4F4F',
+						);
+		  
+		$query = "
+	INSERT INTO " . CONFIG_TABLE . " (param,value,comment)
+	VALUES ('Float' , '".pwg_db_real_escape_string(serialize($config))."' , 'Float theme parameters');";
+
+		pwg_query($query);
+		}
+	}
+
+function theme_deactivate()
+	{
+    $query = "DELETE FROM " . CONFIG_TABLE . " WHERE param='Float';";
+	pwg_query($query);
+	}
+
+?>
Index: /extensions/Float/admin/theme.css
===================================================================
--- /extensions/Float/admin/theme.css	(revision 18804)
+++ /extensions/Float/admin/theme.css	(revision 18804)
@@ -0,0 +1,26 @@
+.ui-slider{color:#383838;border-radius:8px 8px 8px 8px;position:relative;text-align:left;width:450px}
+.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:449px}
+.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:449px;height:30px;text-align:center;font-size:20px}
+INPUT[type="text"]{border:2px inset #EFEFEF;border-radius:8px;background:#EDEDED;height:30px;width:100px;color:#000;margin-bottom:10px}
+INPUT[type="text"]:active{border:2px inset #8f8f8f}
+#picker{border:1px solid #000;border-radius:5px;padding:20px; width:195px; float:left}
+#textcolor{margin:50px 40px 0 0;width:300px;float:left}
+.form-item{text-align:right}
+.farbtastic{position:relative}
+.farbtastic *{position:absolute;cursor:crosshair}
+.farbtastic,.farbtastic .wheel{width:195px;height:195px}
+.farbtastic .color,.farbtastic .overlay{top:47px;left:47px;width:101px;height:101px}
+.farbtastic .wheel{background:url(images/wheel.png) no-repeat;width:195px;height:195px}
+.farbtastic .overlay{background:url(images/mask.png) no-repeat}
+.farbtastic .marker{width:17px;height:17px;margin:-8px 0 0 -8px;overflow:hidden;background:url(images/marker.png) no-repeat}
+.colorwell{border:2px solid #fff;width:6em;text-align:center;cursor:pointer}
+body .colorwell-selected{font-weight:bold}
+
Index: /extensions/Float/float.php
===================================================================
--- /extensions/Float/float.php	(revision 18804)
+++ /extensions/Float/float.php	(revision 18804)
@@ -0,0 +1,15 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $conf, $template;
+  $params = array_merge(unserialize($conf['Float']));
+
+  
+  $template->block_html_head('', '
+<style media="screen" type="text/css">
+body{background:'.$params['bg_float'].'}
+.content .titrePage, .thumbContent{background:'.$params['bd_float'].'}
+#theHeader p, #theHeader h1{color:'.$params['title_float'].'}
+</style>
+', $smarty, $repeat);
+?>
Index: /extensions/Float/index.php
===================================================================
--- /extensions/Float/index.php	(revision 18804)
+++ /extensions/Float/index.php	(revision 18804)
@@ -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/Float/js/masonry.min.js
===================================================================
--- /extensions/Float/js/masonry.min.js	(revision 18804)
+++ /extensions/Float/js/masonry.min.js	(revision 18804)
@@ -0,0 +1,10 @@
+/**
+ * Vanilla Masonry v1.0.02
+ * Dynamic layouts for the flip-side of CSS Floats
+ * http://vanilla-masonry.desandro.com
+ *
+ * Licensed under the MIT license.
+ * Copyright 2011 David DeSandro
+ */
+(function(a,b){function r(a,b){if(!!a){this.element=a,this.options={};for(var c in r.defaults)this.options[c]=r.defaults[c];for(c in b)this.options[c]=b[c];this._create(),this.build()}}function q(a,b,c){a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&(a.detachEvent("on"+b,a[b+c]),a[b+c]=null,a["e"+b+c]=null)}function p(b,c,d){b.addEventListener?b.addEventListener(c,d,!1):b.attachEvent&&(b["e"+c+d]=d,b[c+d]=function(){b["e"+c+d](a.event)},b.attachEvent("on"+c,b[c+d]))}function o(a,b,c){var d=b!=="height",e=d?a.offsetWidth:a.offsetHeight,f=d?"Left":"Top",g=d?"Right":"Bottom",h=j(a),i=parseFloat(h["padding"+f])||0,k=parseFloat(h["padding"+g])||0,l=parseFloat(h["border"+f+"Width"])||0,o=parseFloat(h["border"+g+"Width"])||0,p=h["margin"+f],q=h["margin"+g],r,s;m||(p=n(a,h,p),q=n(a,h,q)),r=parseFloat(p)||0,s=parseFloat(q)||0;if(e>0)c?e+=r+s:e-=i+k+l+o;else{e=h[b];if(e<0||e==null)e=a.style[b]||0;e=parseFloat(e)||0,c&&(e+=i+k+r+s+l+o)}return e}function n(a,b,c){if(c.indexOf("%")===-1)return c;var d=a.style,e=d.width,f;d.width=c,f=b.width,d.width=e;return f}function e(a){return new RegExp("(^|\\s+)"+a+"(\\s+|$)")}"use strict";var c=a.document,d="classList"in c.createElement("div"),f=d?function(a,b){return a.classList.contains(b)}:function(a,b){return e(b).test(a.className)},g=d?function(a,b){a.classList.add(b)}:function(a,b){f(a,b)||(a.className=a.className+" "+b)},h=d?function(a,b){a.classList.remove(b)}:function(a,b){a.className=a.className.replace(e(b)," ")},i=c.defaultView,j=i&&i.getComputedStyle?function(a){return i.getComputedStyle(a,null)}:function(a){return a.currentStyle},k=c.getElementsByTagName("body")[0],l=c.createElement("div");l.style.marginTop="1%",k.appendChild(l);var m=j(l).marginTop!=="1%";k.removeChild(l);var s=["position","height"];r.defaults={isResizable:!0,gutterWidth:0,isRTL:!1,isFitWidth:!1},r.prototype={_getBricks:function(a){var b;for(var c=0,d=a.length;c<d;c++)b=a[c],b.style.position="absolute",g(b,"masonry-brick"),this.bricks.push(b)},_create:function(){this.reloadItems();var b=this.element.style;this._originalStyle={};for(var c=0,d=s.length;c<d;c++){var e=s[c];this._originalStyle[e]=b[e]||""}this.element.style.position="relative",this.horizontalDirection=this.options.isRTL?"right":"left",this.offset={};var f=j(this.element),h=this.options.isRTL?"paddingRight":"paddingLeft";this.offset.y=parseFloat(f.paddingTop)||0,this.offset.x=parseFloat(f[h])||0,this.isFluid=this.options.columnWidth&&typeof this.options.columnWidth=="function";var i=this;setTimeout(function(){g(i.element,"masonry")}),this.options.isResizable&&p(a,"resize",function(){i._handleResize()})},build:function(a){this._getColumns(),this._reLayout(a)},_getColumns:function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,b=o(a,"width");this.columnWidth=this.isFluid?this.options.columnWidth(b):this.options.columnWidth||o(this.bricks[0],"width",!0)||b,this.columnWidth+=this.options.gutterWidth,this.cols=Math.floor((b+this.options.gutterWidth)/this.columnWidth),this.cols=Math.max(this.cols,1)},reloadItems:function(){this.bricks=[],this._getBricks(this.element.children)},_reLayout:function(a){var b=this.cols;this.colYs=[];while(b--)this.colYs.push(0);this.layout(this.bricks,a)},layout:function(a,b){var c,d,e,f,g,h,i;for(var j=0,k=a.length;j<k;j++){c=a[j];if(c.nodeType!==1)continue;d=Math.ceil(o(c,"width",!0)/(this.columnWidth+this.options.gutterWidth)),d=Math.min(d,this.cols);if(d===1)i=this.colYs;else{e=this.cols+1-d,i=[];for(h=0;h<e;h++)g=this.colYs.slice(h,h+d),i[h]=Math.max.apply(Math,g)}var l=Math.min.apply(Math,i);for(var m=0,n=i.length;m<n;m++)if(i[m]===l)break;c.style.top=l+this.offset.y+"px",c.style[this.horizontalDirection]=this.columnWidth*m+this.offset.x+"px";var p=l+o(c,"height",!0),q=this.cols+1-n;for(h=0;h<q;h++)this.colYs[m+h]=p}var r={};this.element.style.height=Math.max.apply(Math,this.colYs)+"px";if(this.options.isFitWidth){var s=0;j=this.cols;while(--j){if(this.colYs[j]!==0)break;s++}this.element.style.width=(this.cols-s)*this.columnWidth-this.options.gutterWidth+"px"}b&&b.call(a)},_handleResize:function(){function b(){a.resize(),a._resizeTimeout=null}var a=this;this._resizeTimeout&&clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(b,100)},resize:function(){var a=this.cols;this._getColumns(),(this.isFluid||this.cols!==a)&&this._reLayout()},reload:function(a){this.reloadItems(),this.build(a)},appended:function(a,b,c){var d=this,e=function(){d._appended(a,c)};if(b){var f=o(this.element,"height")+"px";for(var g=0,h=a.length;g<h;g++)a[g].style.top=f;setTimeout(e,1)}else e()},_appended:function(a,b){this._getBricks(a),this.layout(a,b)},destroy:function(){var b;for(var c=0,d=this.bricks.length;c<d;c++)b=this.bricks[c],b.style.position="",b.style.top="",b.style.left="",h(b,"masonry-brick");var e=this.element.style;d=s.length;for(c=0;c<d;c++){var f=s[c];e[f]=this._originalStyle[f]}h(this.element,"masonry"),this.resizeHandler&&q(a,"resize",this.resizeHandler)}},r.getWH=o,a.Masonry=r})(window);
+
Index: /extensions/Float/local_head.tpl
===================================================================
--- /extensions/Float/local_head.tpl	(revision 18804)
+++ /extensions/Float/local_head.tpl	(revision 18804)
@@ -0,0 +1,5 @@
+	<!--[if lt IE 8]>
+		<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/elegant/fix-ie7.css">
+	<![endif]-->
+	
+{combine_script id='jquery.masonry.min' require='jquery' path='themes/Float/js/masonry.min.js' load='footer'}
Index: /extensions/Float/template/index.tpl
===================================================================
--- /extensions/Float/template/index.tpl	(revision 18804)
+++ /extensions/Float/template/index.tpl	(revision 18804)
@@ -0,0 +1,221 @@
+{$MENUBAR}
+{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
+
+
+<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
+
+<div class="titrePage{if isset($chronology.TITLE)} calendarTitleBar{/if}">
+	<ul class="categoryActions">
+{if !empty($image_orders)}
+		<li>{strip}<a id="sortOrderLink" title="{'Sort order'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-sort">&nbsp;</span><span class="pwg-button-text">{'Sort order'|@translate}</span>
+		</a>
+		<div id="sortOrderBox" class="switchBox">
+			<div class="switchBoxTitle">{'Sort order'|@translate}</div>
+			{foreach from=$image_orders item=image_order name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
+			{if $image_order.SELECTED}
+			<span>&#x2714; </span>{$image_order.DISPLAY}
+			{else}
+			<span style="visibility:hidden">&#x2714; </span><a href="{$image_order.URL}" rel="nofollow">{$image_order.DISPLAY}</a>
+			{/if}
+			{/foreach}
+		</div>
+		{/strip}</li>
+{/if}
+{if !empty($image_derivatives)}
+		<li>{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-sizes">&nbsp;</span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
+		</a>
+		<div id="derivativeSwitchBox" class="switchBox">
+			<div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
+			{foreach from=$image_derivatives item=image_derivative name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
+			{if $image_derivative.SELECTED}
+			<span>&#x2714; </span>{$image_derivative.DISPLAY}
+			{else}
+			<span style="visibility:hidden">&#x2714; </span><a href="{$image_derivative.URL}" rel="nofollow">{$image_derivative.DISPLAY}</a>
+			{/if}
+			{/foreach}
+		</div>
+		{/strip}</li>
+{/if}
+
+
+{if isset($favorite)}
+		<li><a href="{$favorite.U_FAVORITE}" title="{'delete all photos from your favorites'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-favorite-del">&nbsp;</span><span class="pwg-button-text">{'delete all photos from your favorites'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_CADDIE)}
+		<li><a href="{$U_CADDIE}" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-caddie-add">&nbsp;</span><span class="pwg-button-text">{'Caddie'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_EDIT)}
+		<li><a href="{$U_EDIT}" title="{'Edit album'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-category-edit">&nbsp;</span><span class="pwg-button-text">{'Edit'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_SEARCH_RULES)}
+		{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+		<li><a href="{$U_SEARCH_RULES}" onclick="popuphelp(this.href); return false;" title="{'Search rules'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-help">&nbsp;</span><span class="pwg-button-text">(?)</span>
+		</a></li>
+{/if}
+{if isset($U_SLIDESHOW)}
+		<li>{strip}<a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-slideshow">&nbsp;</span><span class="pwg-button-text">{'slideshow'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_FLAT)}
+		<li>{strip}<a href="{$U_MODE_FLAT}" title="{'display all photos in all sub-albums'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-category-view-flat">&nbsp;</span><span class="pwg-button-text">{'display all photos in all sub-albums'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_NORMAL)}
+		<li>{strip}<a href="{$U_MODE_NORMAL}" title="{'return to normal view mode'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-category-view-normal">&nbsp;</span><span class="pwg-button-text">{'return to normal view mode'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_POSTED)}
+		<li>{strip}<a href="{$U_MODE_POSTED}" title="{'display a calendar by posted date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-calendar">&nbsp;</span><span class="pwg-button-text">{'Calendar'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if isset($U_MODE_CREATED)}
+		<li>{strip}<a href="{$U_MODE_CREATED}" title="{'display a calendar by creation date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
+			<span class="pwg-icon pwg-icon-camera-calendar">&nbsp;</span><span class="pwg-button-text">{'Calendar'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
+
+
+
+
+	</ul>
+
+
+
+
+
+
+
+
+
+
+<h2>{$TITLE}</h2>
+
+
+
+
+
+
+
+{if isset($chronology_views)}
+<div class="calendarViews">{'View'|@translate}:
+	<select onchange="document.location = this.options[this.selectedIndex].value;">
+		{foreach from=$chronology_views item=view}
+		<option value="{$view.VALUE}"{if $view.SELECTED} selected="selected"{/if}>{$view.CONTENT}</option>
+		{/foreach}
+	</select>
+</div>
+{/if}
+
+
+{if isset($chronology.TITLE)}
+<h2 class="calendarTitle">{$chronology.TITLE}</h2>
+{/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>{* <!-- titrePage --> *}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{if isset($errors) or not empty($infos)}
+{include file='infos_errors.tpl'}
+{/if}
+{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
+
+
+
+{if !empty($category_search_results)}
+<div style="font-size:16px;margin:10px 16px">{'Album results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
+	<em><strong>
+	{foreach from=$category_search_results item=res name=res_loop}
+	{if !$smarty.foreach.res_loop.first} &mdash; {/if}
+	{$res}
+	{/foreach}
+	</strong></em>
+</div>
+{/if}
+
+
+
+
+{if !empty($tag_search_results)}
+<div style="font-size:16px;margin:10px 16px">{'Tag results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
+	<em><strong>
+	{foreach from=$tag_search_results item=res name=res_loop}
+	{if !$smarty.foreach.res_loop.first} &mdash; {/if}
+	{$res}
+	{/foreach}
+	</strong></em>
+</div>
+{/if}
+
+
+
+
+
+{if isset($FILE_CHRONOLOGY_VIEW)}
+{include file=$FILE_CHRONOLOGY_VIEW}
+{/if}
+
+
+{if !empty($CONTENT_DESCRIPTION)}
+<div class="additional_info">
+	{$CONTENT_DESCRIPTION}
+</div>
+{/if}
+
+
+
+
+{if !empty($CATEGORIES)}{$CATEGORIES}{/if}
+{if !empty($THUMBNAILS)}
+
+{$THUMBNAILS}
+
+{/if}
+
+
+{if !empty($navbar)}{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+{if !empty($PLUGIN_INDEX_CONTENT_END)}{$PLUGIN_INDEX_CONTENT_END}{/if}
+</div>{* <!-- content --> *}
+{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if}
+
+
+
Index: /extensions/Float/template/mainpage_categories.tpl
===================================================================
--- /extensions/Float/template/mainpage_categories.tpl	(revision 18804)
+++ /extensions/Float/template/mainpage_categories.tpl	(revision 18804)
@@ -0,0 +1,66 @@
+{html_style}
+
+{if $derivative_params->max_width() > 600}
+.thumbLegend {ldelim}font-size: 130%}
+{else}
+{if $derivative_params->max_width() > 400}
+.thumbLegend {ldelim}font-size: 110%}
+{else}
+.thumbLegend {ldelim}font-size: 90%}
+{/if}
+{/if}
+{/html_style}
+
+<div class="thumbContent">
+
+<div id="container" >
+
+{foreach from=$category_thumbnails item=cat name=cat_loop}
+	<div class="box photo colMainpage">
+	<li class="{if $smarty.foreach.comment_loop.index is odd}odd{else}even{/if}">
+		<div class="thumbnailCategory">
+			<div class="illustration">
+				<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}">
+			<a href="{$cat.URL}">
+				<div class="description">
+						<div class="text">
+					<h2>
+						{$cat.NAME}
+						{if !empty($cat.icon_ts)}
+						<img title="{$cat.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent{if $cat.icon_ts.IS_CHILD_DATE}_by_child{/if}.png" alt="(!)">
+						{/if}
+					</h2>
+				
+							{if isset($cat.INFO_DATES) }
+							<p class="dates">{$cat.INFO_DATES}</p>
+							{/if}
+							<p class="Nb_images">{$cat.CAPTION_NB_IMAGES}</p>
+							{if not empty($cat.DESCRIPTION)}
+							<p>{$cat.DESCRIPTION}</p>
+							{/if}
+					</div>
+				</div>
+			</a>
+			</div>
+		</div>
+	</li>
+	</div>
+{/foreach}
+
+
+</div>
+{footer_script require='jquery'}{literal}
+			window.onload = function() {
+			  var wall1 = new Masonry( document.getElementById('container'), {
+				gutterWidth: 10,
+				isFitWidth: true,
+			  });
+				var wall2 = new Masonry( document.getElementById('containerThumb'), {
+				gutterWidth: 10,
+				isFitWidth: true,
+			  });
+
+			};
+{/literal}{/footer_script}
+</div>
+
Index: /extensions/Float/template/thumbnails.tpl
===================================================================
--- /extensions/Float/template/thumbnails.tpl	(revision 18804)
+++ /extensions/Float/template/thumbnails.tpl	(revision 18804)
@@ -0,0 +1,105 @@
+{if !empty($thumbnails)}{strip}
+
+{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
+{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
+{*define_derivative name='derivative_params' width=160 height=90 crop=true*}
+{html_style}
+{*Set some sizes according to maximum thumbnail width and height*}
+
+{if $derivative_params->max_width() >= 1008}
+.col{ldelim}width:95%}
+{elseif $derivative_params->max_width() >= 792}
+.col{ldelim}width:49%}
+{elseif $derivative_params->max_width() >= 576}
+.col{ldelim}width:40%}
+{elseif $derivative_params->max_width() >= 500}
+.col{ldelim}width:32%}
+{elseif $derivative_params->max_width() >= 480}
+.col{ldelim}width:24%}
+{elseif $derivative_params->max_width() >= 380}
+.col{ldelim}width:19%}
+{else}
+.col{ldelim}width:15%}
+{/if}
+
+
+
+
+.thumbnails .wrap2{ldelim}
+	height: {$derivative_params->max_height()+3}px;
+}
+{if $derivative_params->max_width() > 600}
+.thumbLegend {ldelim}font-size: 130%}
+{else}
+{if $derivative_params->max_width() > 400}
+.thumbLegend {ldelim}font-size: 110%}
+{else}
+.thumbLegend {ldelim}font-size: 90%}
+{/if}
+{/if}
+{/html_style}
+
+<div class="thumbContent">
+<div id="containerThumb" class="clearfix">
+
+{foreach from=$thumbnails item=thumbnail}
+	<div class="box photo col">
+
+{assign var=derivative value=$pwg->derivative($derivative_params, $thumbnail.src_image)}
+
+	<li class="thumbs">
+		<div class="thumbnail">		
+			<div class="illustration">
+				<img class="thumbnail" src="{$derivative->get_url()}" alt="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}">
+			{if $SHOW_THUMBNAIL_CAPTION }
+			<a href="{$thumbnail.URL}">
+				<div class="description">
+				<div class="text">
+					<span class="thumbLegend">
+							<span class="thumbName">{$thumbnail.NAME}</span>
+							{if !empty($thumbnail.icon_ts)}
+								<img title="{$thumbnail.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent.png" alt="(!)">
+							{/if}
+						{if isset($thumbnail.NB_COMMENTS)}
+							<span class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments">
+								<br>
+								{$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)}
+							</span>
+						{/if}
+						{if isset($thumbnail.NB_HITS)}
+							<span class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits">
+								<br>
+								{$pwg->l10n_dec('%d hit', '%d hits',$thumbnail.NB_HITS)}
+							</span>
+						{/if}
+					</span>
+				</div>
+				</div>
+			</a>
+			</div>
+		</div>
+
+
+		{/if}
+	</li>
+	</div>
+{/foreach}
+
+{/strip}
+{/if}
+</div>		
+{footer_script require='jquery'}{literal}
+			window.onload = function() {
+			  var wall1 = new Masonry( document.getElementById('container'), {
+				gutterWidth: 10,
+				isFitWidth: true
+			  });
+				var wall2 = new Masonry( document.getElementById('containerThumb'), {
+				gutterWidth: 10,
+				isFitWidth: true
+			  });
+
+			};
+{/literal}{/footer_script}
+</div>
+
Index: /extensions/Float/theme.css
===================================================================
--- /extensions/Float/theme.css	(revision 18804)
+++ /extensions/Float/theme.css	(revision 18804)
@@ -0,0 +1,69 @@
+BODY{background:#FFA200;color:#FFF}
+A, INPUT.rateButton{color:#6F6F6F}
+H2 {background:none;padding:8px 0 0 10px}
+
+/*======================================================Header======================================================*/
+#header_bgDef{background-image:none;background-color:transparent}
+#header-content{margin-right:auto}
+#theHeader{left:20px;text-align:left;padding-top: 20px}
+#theHeader h1{text-align:left;color:#6F6F6F;font-size:2.5em}
+#headertransi{background:none}
+#headertransiH{background-image:none}
+#headertransiB{background-image:none}
+#bg_th_left{background-image:none}
+#logo{background:none}
+
+/*======================================================Content======================================================*/
+.content .titrePage{background:none repeat scroll 0% 0% #6F6F6F;border-radius:5px 5px 5px 5px;margin-bottom:20px;border: 1px solid #3F3F3F}
+.content .titrePage a{color: #FFF}
+.content .titrePage a:hover{color:#C2C2C2}
+.categoryActions{top:5px}
+#page_content{background:none;max-width:none;min-width:900px}
+#page_content1{background:none}
+#page_content2{background:none}
+.switchBox {color:#FFA200}
+.thumbContent{width:98%;border-radius:5px 5px 5px 5px;background:#6F6F6F;border:1px solid #3F3F3F;padding:1%;margin-top:10px}
+
+/*======================================================Thumbnail/categorie page======================================================*/
+.thumbnail .description, .thumbnailCategory DIV.description{height:100%}
+.thumbnail:hover .description, .thumbnailCategory:hover DIV.description{background:url("images/pattern.png");-moz-transition:bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s}
+.thumbnailCategories LI{width:auto;display:inline-block;float:none}
+.illustration{margin:0}
+.thumbs{margin: 10px 0}
+.text{background:none repeat scroll 0px 0px rgba(0, 0, 0, 0.9)}
+.text img{height:24px;width:24px!important}
+.description H2{text-align:center;font-size:250%;color: #FFF;margin:20px 0;padding:5px}
+.description P{font-size:120%;padding:5px}
+#bg_th_right{background-image:none}
+#imageHeaderBar{background:#6F6F6F;border-radius:5px 5px 5px 5px;margin-bottom: 20px;border:1px solid #3F3F3F;margin-top:50px;font-size:120%;padding:10px 0 0;height:26px}
+#imageHeaderBar a{color:#fff}
+#imageHeaderBar a:hover{color:#c2c2c2}
+.even, .odd, .thumbs{list-style: none outside none}
+
+/*======================================================Menu======================================================*/
+#menu{height:40px;padding: 5px 0 0}
+#menu a{color:#FFF}
+#menu a:hover{color:#C2C2C2}
+ul#topnav span dt:hover{background-image:none}
+#nav_wrapper{min-width:1000px;background:#6F6F6F;height:40px;border-bottom: 1px solid #3F3F3F}
+span#menu_start{background:none}
+span#menu_start a{background:url("images/menu/home_w.png") no-repeat scroll left top transparent;height:32px}
+span#menu_start a:hover{background-position:left -32px}
+ul#topnav {background:none}
+ul#topnav .liSub{background:none}
+.sub p{color: #2C2C2C}
+ul#topnav li .sub, ul#topnav li #loger{top:35px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;box-shadow: 0px 0px 10px #5A5A5A;background:#6F6F6F}
+ul#topnav .sub ul li a, ul#topnav #loger ul li a{color: #FFF}
+li.liSub:hover span.dd_wrapper, li.liSub:hover span.cl_wrapper, .activate{background:none}
+#quicksearch input[type="text"]{background: none repeat scroll 0% 0% #3F3F3F}
+#quicksearch input[type="submit"]{background: url("images/menu/search.png") repeat}
+
+/*======================================================Panel======================================================*/
+.panel .switchBox{top:60px}
+.panel .switchBox a{color: #FFA200}
+
+/*======================================================Vanilla======================================================*/
+#container,#containerThumb{padding:5px;margin-bottom:20px;clear:both;margin-left:auto;margin-right:auto}
+.box li{list-style: none outside none}
+.box img{display:block;margin-left:auto;margin-right:auto}
+.col img{width:100%}
Index: /extensions/Float/themeconf.inc.php
===================================================================
--- /extensions/Float/themeconf.inc.php	(revision 18804)
+++ /extensions/Float/themeconf.inc.php	(revision 18804)
@@ -0,0 +1,29 @@
+<?php
+/*
+Theme Name: Float
+Version: 1.0.0
+Description: Piwigo theme.
+Theme URI: 
+Author: Miklfe
+Author URI: http://piwigo.org
+*/
+$themeconf = array(
+  'name'  => 'Float',
+  'parent' => 'PwgCarbon_dft',
+  'local_head'  => 'local_head.tpl'
+);
+
+
+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('loc_end_page_header', 'load_Float' );
+
+
+function load_Float(){include('float.php');}
+?>
