Index: /extensions/Slide/Slide.php
===================================================================
--- /extensions/Slide/Slide.php	(revision 26888)
+++ /extensions/Slide/Slide.php	(revision 26889)
@@ -61,9 +61,23 @@
 if($withEC)
 	{
-	//$template->func_combine_css(array('path'=>'plugins/EasyCaptcha/template/drag.css'));
-	//$template->func_combine_css(array('path'=>'plugins/EasyCaptcha/template/tictac.css'));
+	$template->func_combine_css(array('path'=>'plugins/EasyCaptcha/template/drag.css'));
+	$template->func_combine_css(array('path'=>'plugins/EasyCaptcha/template/tictac.css'));
 	$params = $conf['EasyCaptcha'];
-	$EasyCaptcha_data = json_encode($params);
+	$EasyCaptcha_data = array(
+		"bd1"	 		=> $params['drag']['bd1'],
+		"bd2"	 		=> $params['drag']['bd2'],
+		"bg1"	 		=> $params['drag']['bg1'],
+		"bg2"	 		=> $params['drag']['bg2'],
+		"size"	 		=> $params['drag']['size'],
+		"obj"	 		=> $params['drag']['obj'],
+		"nb"	 		=> $params['drag']['nb'],
+		"txt"	 		=> $params['drag']['txt'],
+		"sel"	 		=> $params['drag']['sel'],
+		"tictacsize"	=> $params['tictac']['size'],
+		);
+		
+	$EasyCaptcha_data = json_encode($EasyCaptcha_data);
 	$template->assign('slideEasyCaptcha', $EasyCaptcha_data);
+
 	array_push($plug_act, 'EasyCaptcha');
 };
Index: tensions/Slide/fix-ie8.css
===================================================================
--- /extensions/Slide/fix-ie8.css	(revision 26888)
+++ 	(revision )
@@ -1,4 +1,0 @@
-#sld_tab, #sld_tabdent{
-	filter:					progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-	width:					300px;
-	
Index: tensions/Slide/js/columnizer.min.js
===================================================================
--- /extensions/Slide/js/columnizer.min.js	(revision 26888)
+++ 	(revision )
@@ -1,1 +1,0 @@
-jQuery.fn.makeacolumnlists=function(e){e=jQuery.extend({cols:2,colWidth:0,equalHeight:false,startN:1},e);if(jQuery("> li",this)){this.each(function(t){var t=jQuery(".li_container").size(),n=0,r=0,i=jQuery(this),s=i.attr("class"),o=jQuery("> li",this).size(),u=Math.ceil(o/e.cols),a=i.width(),f=isNaN(parseInt(i.css("borderLeftWidth"),10))?0:parseInt(i.css("borderLeftWidth"),10),l=isNaN(parseInt(i.css("borderRightWidth"),10))?0:parseInt(i.css("borderRightWidth"),10),c=parseInt(i.css("paddingLeft"),10),h=parseInt(i.css("paddingRight"),10),p=parseInt(i.css("marginLeft"),10),d=parseInt(i.css("marginRight"),10),v=Math.floor((a-(e.cols-1)*(f+l+c+h+p+d))/e.cols);if(e.colWidth){v=e.colWidth}var m=1,g=u;jQuery(this).addClass("li_cont1").wrap('<div id="li_container'+ ++t+'" class="li_container"></div>');for(var y=0;y<=o;y++){if(y>=g){g+=u;m++}var b=jQuery("> li:eq("+y+")",this);b.addClass("li_col"+m);if(jQuery(this).is("ol")){b.attr("value",""+(y+e.startN))+""}}jQuery(this).css({cssFloat:"left",width:""+v+"px"});for(m=2;m<=e.cols;m++){if(jQuery(this).is("ol")){jQuery("li.li_col"+m,this).appendTo("#li_container"+t).wrapAll('<ol class="li_cont'+m+" "+s+'" style="float:left; width: '+v+'px;"></ol>')}else{jQuery("li.li_col"+m,this).appendTo("#li_container"+t).wrapAll('<ul class="li_cont'+m+" "+s+'" style="float:left; width: '+v+'px;"></ul>')}}if(e.equalHeight=="li"){for(m=1;m<=e.cols;m++){jQuery("#li_container"+t+" li").each(function(){var e=jQuery(this);var t=isNaN(parseInt(e.css("borderTopWidth"),10))?0:parseInt(e.css("borderTopWidth"),10);var i=isNaN(parseInt(e.css("borderBottomWidth"),10))?0:parseInt(e.css("borderBottomWidth"),10);n=e.height()+parseInt(e.css("paddingTop"),10)+parseInt(e.css("paddingBottom"),10)+t+i;r=n>r?n:r})}for(m=1;m<=e.cols;m++){var w=jQuery("#li_container"+t+" li");var E=isNaN(parseInt(w.css("borderTopWidth"),10))?0:parseInt(w.css("borderTopWidth"),10);var S=isNaN(parseInt(w.css("borderBottomWidth"),10))?0:parseInt(w.css("borderBottomWidth"),10);mh=r-(parseInt(w.css("paddingTop"),10)+parseInt(w.css("paddingBottom"),10)+E+S);w.height(mh)}}else if(e.equalHeight=="ul"||e.equalHeight=="ol"){for(m=1;m<=e.cols;m++){jQuery("#li_container"+t+" .li_cont"+m).each(function(){var e=jQuery(this);var t=isNaN(parseInt(e.css("borderTopWidth"),10))?0:parseInt(e.css("borderTopWidth"),10);var i=isNaN(parseInt(e.css("borderBottomWidth"),10))?0:parseInt(e.css("borderBottomWidth"),10);n=e.height()+parseInt(e.css("paddingTop"),10)+parseInt(e.css("paddingBottom"),10)+t+i;r=n>r?n:r})}for(m=1;m<=e.cols;m++){var w=jQuery("#li_container"+t+" .li_cont"+m);var E=isNaN(parseInt(w.css("borderTopWidth"),10))?0:parseInt(w.css("borderTopWidth"),10);var S=isNaN(parseInt(w.css("borderBottomWidth"),10))?0:parseInt(w.css("borderBottomWidth"),10);mh=r-(parseInt(w.css("paddingTop"),10)+parseInt(w.css("paddingBottom"),10)+E+S);w.height(mh)}}jQuery("#li_container"+t).append('<div style="clear:both; overflow:hidden; height:0px;"></div>')})}};jQuery.fn.uncolumnlists=function(){jQuery(".li_cont1").each(function(e){var t=jQuery("#li_container"+ ++e+" .li_cont1 > li").size();if(jQuery("#li_container"+e+" .li_cont1").is("ul")){jQuery("#li_container"+e+" > ul > li").appendTo("#li_container"+e+" ul:first");for(var n=1;n<=t;n++){jQuery("#li_container"+e+" ul:first li").removeAttr("class").removeAttr("style")}jQuery("#li_container"+e+" ul:first").removeAttr("style").removeClass("li_cont1").insertBefore("#li_container"+e)}else{jQuery("#li_container"+e+" > ol > li").appendTo("#li_container"+e+" ol:first");for(var n=1;n<=t;n++){jQuery("#li_container"+e+" ol:first li").removeAttr("class").removeAttr("style")}jQuery("#li_container"+e+" ol:first").removeAttr("style").removeClass("li_cont1").insertBefore("#li_container"+e)}jQuery("#li_container"+e).remove()})}
Index: /extensions/Slide/js/jquery.columnizer.js
===================================================================
--- /extensions/Slide/js/jquery.columnizer.js	(revision 26889)
+++ /extensions/Slide/js/jquery.columnizer.js	(revision 26889)
@@ -0,0 +1,639 @@
+// version 1.6.0
+// http://welcome.totheinter.net/columnizer-jquery-plugin/
+// created by: Adam Wulf @adamwulf, adam.wulf@gmail.com
+
+(function($){
+
+ $.fn.columnize = function(options) {
+
+
+	var defaults = {
+		// default width of columns
+		width: 400,
+		// optional # of columns instead of width
+		columns : false,
+		// true to build columns once regardless of window resize
+		// false to rebuild when content box changes bounds
+		buildOnce : false,
+		// an object with options if the text should overflow
+		// it's container if it can't fit within a specified height
+		overflow : false,
+		// this function is called after content is columnized
+		doneFunc : function(){},
+		// if the content should be columnized into a 
+		// container node other than it's own node
+		target : false,
+		// re-columnizing when images reload might make things
+		// run slow. so flip this to true if it's causing delays
+		ignoreImageLoading : true,
+		// should columns float left or right
+		columnFloat : "left",
+		// ensure the last column is never the tallest column
+		lastNeverTallest : false,
+		// (int) the minimum number of characters to jump when splitting
+		// text nodes. smaller numbers will result in higher accuracy
+		// column widths, but will take slightly longer
+		accuracy : false,
+		// don't automatically layout columns, only use manual columnbreak
+		manualBreaks : false,
+		// previx for all the CSS classes used by this plugin
+		// default to empty string for backwards compatibility
+		cssClassPrefix : ""
+	};
+	options = $.extend(defaults, options);
+
+	if(typeof(options.width) == "string"){
+		options.width = parseInt(options.width,10);
+		if(isNaN(options.width)){
+			options.width = defaults.width;
+		}
+	}
+		
+	/**
+	 * appending a text node to a <table> will
+	 * cause a jquery crash.
+	 * so wrap all append() calls and revert to
+	 * a simple appendChild() in case it fails
+	 */
+	function appendSafe($target, $elem){
+		try{
+			$target.append($elem);
+		}catch(e){
+			$target[0].appendChild($elem[0]);
+		}
+	}
+
+    return this.each(function() {
+		var $inBox = options.target ? $(options.target) : $(this);
+		var maxHeight = $(this).height();
+		var $cache = $('<div></div>'); // this is where we'll put the real content
+		var lastWidth = 0;
+		var columnizing = false;
+		var manualBreaks = options.manualBreaks;
+		var cssClassPrefix = defaults.cssClassPrefix;
+		if(typeof(options.cssClassPrefix) == "string"){
+			cssClassPrefix = options.cssClassPrefix;
+		}
+
+
+		var adjustment = 0;
+
+		appendSafe($cache, $(this).contents().clone(true));
+
+		// images loading after dom load
+		// can screw up the column heights,
+		// so recolumnize after images load
+		if(!options.ignoreImageLoading && !options.target){
+			if(!$inBox.data("imageLoaded")){
+				$inBox.data("imageLoaded", true);
+				if($(this).find("img").length > 0){
+					// only bother if there are
+					// actually images...
+					var func = function($inBox,$cache){ return function(){
+							if(!$inBox.data("firstImageLoaded")){
+								$inBox.data("firstImageLoaded", "true");
+								appendSafe($inBox.empty(), $cache.children().clone(true));
+								$inBox.columnize(options);
+							}
+						};
+					}($(this), $cache);
+					$(this).find("img").one("load", func);
+					$(this).find("img").one("abort", func);
+					return;
+				}
+			}
+		}
+
+		$inBox.empty();
+
+		columnizeIt();
+
+		if(!options.buildOnce){
+			$(window).resize(function() {
+				if(!options.buildOnce){
+					if($inBox.data("timeout")){
+						clearTimeout($inBox.data("timeout"));
+					}
+					$inBox.data("timeout", setTimeout(columnizeIt, 200));
+				}
+			});
+		}
+
+		function prefixTheClassName(className, withDot){
+			var dot = withDot ? "." : "";
+			if(cssClassPrefix.length){
+				return dot + cssClassPrefix + "-" + className;
+			}
+			return dot + className;
+		}
+
+		/**
+		 * this fuction builds as much of a column as it can without
+		 * splitting nodes in half. If the last node in the new column
+		 * is a text node, then it will try to split that text node. otherwise
+		 * it will leave the node in $pullOutHere and return with a height
+		 * smaller than targetHeight.
+		 * 
+         * Returns a boolean on whether we did some splitting successfully at a text point
+         * (so we know we don't need to split a real element). return false if the caller should
+         * split a node if possible to end this column.
+		 *
+		 * @param putInHere, the jquery node to put elements into for the current column
+		 * @param $pullOutHere, the jquery node to pull elements out of (uncolumnized html)
+		 * @param $parentColumn, the jquery node for the currently column that's being added to
+		 * @param targetHeight, the ideal height for the column, get as close as we can to this height
+		 */
+		function columnize($putInHere, $pullOutHere, $parentColumn, targetHeight){
+			//
+			// add as many nodes to the column as we can,
+			// but stop once our height is too tall
+			while((manualBreaks || $parentColumn.height() < targetHeight) &&
+				$pullOutHere[0].childNodes.length){
+				var node = $pullOutHere[0].childNodes[0];
+				//
+				// Because we're not cloning, jquery will actually move the element"
+				// http://welcome.totheinter.net/2009/03/19/the-undocumented-life-of-jquerys-append/
+				if($(node).find(prefixTheClassName("columnbreak", true)).length){
+					//
+					// our column is on a column break, so just end here
+					return;
+				}
+				if($(node).hasClass(prefixTheClassName("columnbreak"))){
+					//
+					// our column is on a column break, so just end here
+					return;
+				}
+				appendSafe($putInHere, $(node));
+			}
+			if($putInHere[0].childNodes.length === 0) return;
+
+			// now we're too tall, so undo the last one
+			var kids = $putInHere[0].childNodes;
+			var lastKid = kids[kids.length-1];
+			$putInHere[0].removeChild(lastKid);
+			var $item = $(lastKid);
+
+			// now lets try to split that last node
+			// to fit as much of it as we can into this column
+			if($item[0].nodeType == 3){
+				// it's a text node, split it up
+				var oText = $item[0].nodeValue;
+				var counter2 = options.width / 18;
+				if(options.accuracy)
+				counter2 = options.accuracy;
+				var columnText;
+				var latestTextNode = null;
+				while($parentColumn.height() < targetHeight && oText.length){
+					//
+					// it's been brought up that this won't work for chinese
+					// or other languages that don't have the same use of whitespace
+					// as english. This will need to be updated in the future
+					// to better handle non-english languages.
+					//
+					// https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues/124
+					var indexOfSpace = oText.indexOf(' ', counter2);
+					if (indexOfSpace != -1) {
+						columnText = oText.substring(0, indexOfSpace);
+					} else {
+						columnText = oText;
+					}
+					latestTextNode = document.createTextNode(columnText);
+					appendSafe($putInHere, $(latestTextNode));
+
+					if(oText.length > counter2 && indexOfSpace != -1){
+						oText = oText.substring(indexOfSpace);
+					}else{
+						oText = "";
+					}
+				}
+				if($parentColumn.height() >= targetHeight && latestTextNode !== null){
+					// too tall :(
+					$putInHere[0].removeChild(latestTextNode);
+					oText = latestTextNode.nodeValue + oText;
+				}
+				if(oText.length){
+					$item[0].nodeValue = oText;
+				}else{
+					return false; // we ate the whole text node, move on to the next node
+				}
+			}
+
+			if($pullOutHere.contents().length){
+				$pullOutHere.prepend($item);
+			}else{
+				appendSafe($pullOutHere, $item);
+			}
+
+			return $item[0].nodeType == 3;
+		}
+
+		/**
+		 * Split up an element, which is more complex than splitting text. We need to create 
+		 * two copies of the element with it's contents divided between each
+		 */
+		function split($putInHere, $pullOutHere, $parentColumn, targetHeight){
+			if($putInHere.contents(":last").find(prefixTheClassName("columnbreak", true)).length){
+				//
+				// our column is on a column break, so just end here
+				return;
+			}
+			if($putInHere.contents(":last").hasClass(prefixTheClassName("columnbreak"))){
+				//
+				// our column is on a column break, so just end here
+				return;
+			}
+			if($pullOutHere.contents().length){
+				var $cloneMe = $pullOutHere.contents(":first");
+				//
+				// make sure we're splitting an element
+				if( typeof $cloneMe.get(0) == 'undefined' || $cloneMe.get(0).nodeType != 1 ) return;
+
+				//
+				// clone the node with all data and events
+				var $clone = $cloneMe.clone(true);
+				//
+				// need to support both .prop and .attr if .prop doesn't exist.
+				// this is for backwards compatibility with older versions of jquery.
+				if($cloneMe.hasClass(prefixTheClassName("columnbreak"))){
+					//
+					// ok, we have a columnbreak, so add it into
+					// the column and exit
+					appendSafe($putInHere, $clone);
+					$cloneMe.remove();
+				}else if (manualBreaks){
+					// keep adding until we hit a manual break
+					appendSafe($putInHere, $clone);
+					$cloneMe.remove();
+				}else if($clone.get(0).nodeType == 1 && !$clone.hasClass(prefixTheClassName("dontend"))){
+					appendSafe($putInHere, $clone);
+					if($clone.is("img") && $parentColumn.height() < targetHeight + 20){
+						//
+						// we can't split an img in half, so just add it
+						// to the column and remove it from the pullOutHere section
+						$cloneMe.remove();
+					}else if($cloneMe.hasClass(prefixTheClassName("dontsplit")) && $parentColumn.height() < targetHeight + 20){
+						//
+						// pretty close fit, and we're not allowed to split it, so just
+						// add it to the column, remove from pullOutHere, and be done
+						$cloneMe.remove();
+					}else if($clone.is("img") || $cloneMe.hasClass(prefixTheClassName("dontsplit"))){
+						//
+						// it's either an image that's too tall, or an unsplittable node
+						// that's too tall. leave it in the pullOutHere and we'll add it to the 
+						// next column
+						$clone.remove();
+					}else{
+						//
+						// ok, we're allowed to split the node in half, so empty out
+						// the node in the column we're building, and start splitting
+						// it in half, leaving some of it in pullOutHere
+						$clone.empty();
+						if(!columnize($clone, $cloneMe, $parentColumn, targetHeight)){
+							// this node may still have non-text nodes to split
+							// add the split class and then recur
+							$cloneMe.addClass(prefixTheClassName("split"));
+							
+							//if this node was ol element, the child should continue the number ordering
+							if($cloneMe.get(0).tagName == 'OL'){
+								var startWith = $clone.get(0).childElementCount + $clone.get(0).start;
+								$cloneMe.attr('start',startWith+1);
+							}
+							
+							if($cloneMe.children().length){
+								split($clone, $cloneMe, $parentColumn, targetHeight);
+							}
+						}else{
+							// this node only has text node children left, add the
+							// split class and move on.
+							$cloneMe.addClass(prefixTheClassName("split"));
+						}
+						if($clone.get(0).childNodes.length === 0){
+							// it was split, but nothing is in it :(
+							$clone.remove();
+							$cloneMe.removeClass(prefixTheClassName("split"));
+						}
+					}
+				}
+			}
+		}
+
+
+		function singleColumnizeIt() {
+			if ($inBox.data("columnized") && $inBox.children().length == 1) {
+				return;
+			}
+			$inBox.data("columnized", true);
+			$inBox.data("columnizing", true);
+
+			$inBox.empty();
+			$inBox.append($("<div class='"
+				+ prefixTheClassName("first") + " "
+				+ prefixTheClassName("last") + " "
+				+ prefixTheClassName("column") + " "
+				+ "' style='width:100%; float: " + options.columnFloat + ";'></div>")); //"
+			$col = $inBox.children().eq($inBox.children().length-1);
+			$destroyable = $cache.clone(true);
+			if(options.overflow){
+				targetHeight = options.overflow.height;
+				columnize($col, $destroyable, $col, targetHeight);
+				// make sure that the last item in the column isn't a "dontend"
+				if(!$destroyable.contents().find(":first-child").hasClass(prefixTheClassName("dontend"))){
+					split($col, $destroyable, $col, targetHeight);
+				}
+
+				while($col.contents(":last").length && checkDontEndColumn($col.contents(":last").get(0))){
+					var $lastKid = $col.contents(":last");
+					$lastKid.remove();
+					$destroyable.prepend($lastKid);
+				}
+
+				var html = "";
+				var div = document.createElement('DIV');
+				while($destroyable[0].childNodes.length > 0){
+					var kid = $destroyable[0].childNodes[0];
+					if(kid.attributes){
+						for(var i=0;i<kid.attributes.length;i++){
+							if(kid.attributes[i].nodeName.indexOf("jQuery") === 0){
+								kid.removeAttribute(kid.attributes[i].nodeName);
+							}
+						}
+					}
+					div.innerHTML = "";
+					div.appendChild($destroyable[0].childNodes[0]);
+					html += div.innerHTML;
+				}
+				var overflow = $(options.overflow.id)[0];
+				overflow.innerHTML = html;
+
+			}else{
+				appendSafe($col, $destroyable.contents());
+			}
+			$inBox.data("columnizing", false);
+
+			if(options.overflow && options.overflow.doneFunc){
+				options.overflow.doneFunc();
+			}
+
+		}
+
+		/**
+		 * returns true if the input dom node
+		 * should not end a column.
+		 * returns false otherwise
+		 */
+		function checkDontEndColumn(dom){
+			if(dom.nodeType == 3){
+				// text node. ensure that the text
+				// is not 100% whitespace
+				if(/^\s+$/.test(dom.nodeValue)){
+						//
+						// ok, it's 100% whitespace,
+						// so we should return checkDontEndColumn
+						// of the inputs previousSibling
+						if(!dom.previousSibling) return false;
+					return checkDontEndColumn(dom.previousSibling);
+				}
+				return false;
+			}
+			if(dom.nodeType != 1) return false;
+			if($(dom).hasClass(prefixTheClassName("dontend"))) return true;
+			if(dom.childNodes.length === 0) return false;
+			return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);
+		}
+
+		function columnizeIt() {
+			//reset adjustment var
+			adjustment = 0;
+			if(lastWidth == $inBox.width()) return;
+			lastWidth = $inBox.width();
+
+			var numCols = Math.round($inBox.width() / options.width);
+			var optionWidth = options.width;
+			var optionHeight = options.height;
+			if(options.columns) numCols = options.columns;
+			if(manualBreaks){
+				numCols = $cache.find(prefixTheClassName("columnbreak", true)).length + 1;
+				optionWidth = false;
+			}
+
+//			if ($inBox.data("columnized") && numCols == $inBox.children().length) {
+//				return;
+//			}
+			if(numCols <= 1){
+				return singleColumnizeIt();
+			}
+			if($inBox.data("columnizing")) return;
+			$inBox.data("columnized", true);
+			$inBox.data("columnizing", true);
+
+			$inBox.empty();
+			$inBox.append($("<div style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
+			$col = $inBox.children(":last");
+			appendSafe($col, $cache.clone());
+			maxHeight = $col.height();
+			$inBox.empty();
+
+			var targetHeight = maxHeight / numCols;
+			var firstTime = true;
+			var maxLoops = 3;
+			var scrollHorizontally = false;
+			if(options.overflow){
+				maxLoops = 1;
+				targetHeight = options.overflow.height;
+			}else if(optionHeight && optionWidth){
+				maxLoops = 1;
+				targetHeight = optionHeight;
+				scrollHorizontally = true;
+			}
+
+			//
+			// We loop as we try and workout a good height to use. We know it initially as an average 
+			// but if the last column is higher than the first ones (which can happen, depending on split
+			// points) we need to raise 'adjustment'. We try this over a few iterations until we're 'solid'.
+			//
+			// also, lets hard code the max loops to 20. that's /a lot/ of loops for columnizer,
+			// and should keep run aways in check. if somehow someone has content combined with
+			// options that would cause an infinite loop, then this'll definitely stop it.
+			for(var loopCount=0;loopCount<maxLoops && loopCount<20;loopCount++){
+				$inBox.empty();
+				var $destroyable, className, $col, $lastKid;
+				try{
+					$destroyable = $cache.clone(true);
+				}catch(e){
+					// jquery in ie6 can't clone with true
+					$destroyable = $cache.clone();
+				}
+				$destroyable.css("visibility", "hidden");
+				// create the columns
+				for (var i = 0; i < numCols; i++) {
+					/* create column */
+					className = (i === 0) ? prefixTheClassName("first") : "";
+					className += " " + prefixTheClassName("column");
+					className = (i == numCols - 1) ? (prefixTheClassName("last") + " " + className) : className;
+					$inBox.append($("<div class='" + className + "' style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
+				}
+
+				// fill all but the last column (unless overflowing)
+				i = 0;
+				while(i < numCols - (options.overflow ? 0 : 1) || scrollHorizontally && $destroyable.contents().length){
+					if($inBox.children().length <= i){
+						// we ran out of columns, make another
+						$inBox.append($("<div class='" + className + "' style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
+					}
+					$col = $inBox.children().eq(i);
+					if(scrollHorizontally){
+						$col.width(optionWidth + "px");
+					}
+					columnize($col, $destroyable, $col, targetHeight);
+					// make sure that the last item in the column isn't a "dontend"
+					split($col, $destroyable, $col, targetHeight);
+
+					while($col.contents(":last").length && checkDontEndColumn($col.contents(":last").get(0))){
+						$lastKid = $col.contents(":last");
+						$lastKid.remove();
+						$destroyable.prepend($lastKid);
+					}
+					i++;
+
+					//
+					// https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues/47
+					//
+					// check for infinite loop.
+					//
+					// this could happen when a dontsplit or dontend item is taller than the column
+					// we're trying to build, and its never actually added to a column.
+					//
+					// this results in empty columns being added with the dontsplit item
+					// perpetually waiting to get put into a column. lets force the issue here
+					if($col.contents().length === 0 && $destroyable.contents().length){
+						//
+						// ok, we're building zero content columns. this'll happen forever
+						// since nothing can ever get taken out of destroyable.
+						//
+						// to fix, lets put 1 item from destroyable into the empty column
+						// before we iterate
+						$col.append($destroyable.contents(":first"));
+					}else if(i == numCols - (options.overflow ? 0 : 1) && !options.overflow){
+						//
+						// ok, we're about to exit the while loop because we're done with all
+						// columns except the last column.
+						//
+						// if $destroyable still has columnbreak nodes in it, then we need to keep
+						// looping and creating more columns.
+						if($destroyable.find(prefixTheClassName("columnbreak", true)).length){
+							numCols ++;
+						}
+					}
+				}
+				if(options.overflow && !scrollHorizontally){
+					var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
+					var IE7 = (document.all) && (navigator.appVersion.indexOf("MSIE 7.") != -1);
+					if(IE6 || IE7){
+						var html = "";
+						var div = document.createElement('DIV');
+						while($destroyable[0].childNodes.length > 0){
+							var kid = $destroyable[0].childNodes[0];
+							for(i=0;i<kid.attributes.length;i++){
+								if(kid.attributes[i].nodeName.indexOf("jQuery") === 0){
+									kid.removeAttribute(kid.attributes[i].nodeName);
+								}
+							}
+							div.innerHTML = "";
+							div.appendChild($destroyable[0].childNodes[0]);
+							html += div.innerHTML;
+						}
+						var overflow = $(options.overflow.id)[0];
+						overflow.innerHTML = html;
+					}else{
+						$(options.overflow.id).empty().append($destroyable.contents().clone(true));
+					}
+				}else if(!scrollHorizontally){
+					// the last column in the series
+					$col = $inBox.children().eq($inBox.children().length-1);
+					$destroyable.contents().each( function() {
+						$col.append( $(this) );
+					});
+					var afterH = $col.height();
+					var diff = afterH - targetHeight;
+					var totalH = 0;
+					var min = 10000000;
+					var max = 0;
+					var lastIsMax = false;
+					var numberOfColumnsThatDontEndInAColumnBreak = 0;
+					$inBox.children().each(function($inBox){ return function($item){
+						var $col = $inBox.children().eq($item);
+						var endsInBreak = $col.children(":last").find(prefixTheClassName("columnbreak", true)).length;
+						if(!endsInBreak){
+							var h = $col.height();
+							lastIsMax = false;
+							totalH += h;
+							if(h > max) {
+								max = h;
+								lastIsMax = true;
+							}
+							if(h < min) min = h;
+							numberOfColumnsThatDontEndInAColumnBreak++;
+						}
+					};
+				}($inBox));
+
+					var avgH = totalH / numberOfColumnsThatDontEndInAColumnBreak;
+					if(totalH === 0){
+						//
+						// all columns end in a column break,
+						// so we're done here
+						loopCount = maxLoops;
+					}else if(options.lastNeverTallest && lastIsMax){
+						// the last column is the tallest
+						// so allow columns to be taller
+						// and retry
+						//
+						// hopefully this'll mean more content fits into
+						// earlier columns, so that the last column
+						// can be shorter than the rest
+						adjustment += 5;
+
+						targetHeight = targetHeight + 30;
+						if(loopCount == maxLoops-1) maxLoops++;
+					}else if(max - min > 30){
+						// too much variation, try again
+						targetHeight = avgH + 30;
+					}else if(Math.abs(avgH-targetHeight) > 20){
+						// too much variation, try again
+						targetHeight = avgH;
+					}else {
+						// solid, we're done
+						loopCount = maxLoops;
+					}
+				}else{
+					// it's scrolling horizontally, fix the width/classes of the columns
+					$inBox.children().each(function(i){
+						$col = $inBox.children().eq(i);
+						$col.width(optionWidth + "px");
+						if(i === 0){
+							$col.addClass(prefixTheClassName("first"));
+						}else if(i==$inBox.children().length-1){
+							$col.addClass(prefixTheClassName("last"));
+						}else{
+							$col.removeClass(prefixTheClassName("first"));
+							$col.removeClass(prefixTheClassName("last"));
+						}
+					});
+					$inBox.width($inBox.children().length * optionWidth + "px");
+				}
+				$inBox.append($("<br style='clear:both;'>"));
+			}
+			$inBox.find(prefixTheClassName("column", true)).find(":first" + prefixTheClassName("removeiffirst", true)).remove();
+			$inBox.find(prefixTheClassName("column", true)).find(':last' + prefixTheClassName("removeiflast", true)).remove();
+			$inBox.find(prefixTheClassName("split", true)).find(":first" + prefixTheClassName("removeiffirst", true)).remove();
+			$inBox.find(prefixTheClassName("split", true)).find(':last' + prefixTheClassName("removeiflast", true)).remove();
+			$inBox.data("columnizing", false);
+
+			if(options.overflow){
+				options.overflow.doneFunc();
+			}
+			options.doneFunc();
+		}
+    });
+ };
+})(jQuery);
Index: /extensions/Slide/js/jquery.hoverIntent.js
===================================================================
--- /extensions/Slide/js/jquery.hoverIntent.js	(revision 26889)
+++ /extensions/Slide/js/jquery.hoverIntent.js	(revision 26889)
@@ -0,0 +1,115 @@
+/*!
+ * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+
+ * http://cherne.net/brian/resources/jquery.hoverIntent.html
+ *
+ * You may use hoverIntent under the terms of the MIT license. Basically that
+ * means you are free to use hoverIntent as long as this header is left intact.
+ * Copyright 2007, 2013 Brian Cherne
+ */
+ 
+/* hoverIntent is similar to jQuery's built-in "hover" method except that
+ * instead of firing the handlerIn function immediately, hoverIntent checks
+ * to see if the user's mouse has slowed down (beneath the sensitivity
+ * threshold) before firing the event. The handlerOut function is only
+ * called after a matching handlerIn.
+ *
+ * // basic usage ... just like .hover()
+ * .hoverIntent( handlerIn, handlerOut )
+ * .hoverIntent( handlerInOut )
+ *
+ * // basic usage ... with event delegation!
+ * .hoverIntent( handlerIn, handlerOut, selector )
+ * .hoverIntent( handlerInOut, selector )
+ *
+ * // using a basic configuration object
+ * .hoverIntent( config )
+ *
+ * @param  handlerIn   function OR configuration object
+ * @param  handlerOut  function OR selector for delegation OR undefined
+ * @param  selector    selector OR undefined
+ * @author Brian Cherne <brian(at)cherne(dot)net>
+ */
+(function($) {
+    $.fn.hoverIntent = function(handlerIn,handlerOut,selector) {
+
+        // default configuration values
+        var cfg = {
+            interval: 100,
+            sensitivity: 7,
+            timeout: 0
+        };
+
+        if ( typeof handlerIn === "object" ) {
+            cfg = $.extend(cfg, handlerIn );
+        } else if ($.isFunction(handlerOut)) {
+            cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } );
+        } else {
+            cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } );
+        }
+
+        // instantiate variables
+        // cX, cY = current X and Y position of mouse, updated by mousemove event
+        // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+        var cX, cY, pX, pY;
+
+        // A private function for getting mouse position
+        var track = function(ev) {
+            cX = ev.pageX;
+            cY = ev.pageY;
+        };
+
+        // A private function for comparing current and previous mouse position
+        var compare = function(ev,ob) {
+            ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+            // compare mouse positions to see if they've crossed the threshold
+            if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+                $(ob).off("mousemove.hoverIntent",track);
+                // set hoverIntent state to true (so mouseOut can be called)
+                ob.hoverIntent_s = 1;
+                return cfg.over.apply(ob,[ev]);
+            } else {
+                // set previous coordinates for next time
+                pX = cX; pY = cY;
+                // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+                ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+            }
+        };
+
+        // A private function for delaying the mouseOut function
+        var delay = function(ev,ob) {
+            ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+            ob.hoverIntent_s = 0;
+            return cfg.out.apply(ob,[ev]);
+        };
+
+        // A private function for handling mouse 'hovering'
+        var handleHover = function(e) {
+            // copy objects to be passed into t (required for event object to be passed in IE)
+            var ev = jQuery.extend({},e);
+            var ob = this;
+
+            // cancel hoverIntent timer if it exists
+            if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+            // if e.type == "mouseenter"
+            if (e.type == "mouseenter") {
+                // set "previous" X and Y position based on initial entry point
+                pX = ev.pageX; pY = ev.pageY;
+                // update "current" X and Y position based on mousemove
+                $(ob).on("mousemove.hoverIntent",track);
+                // start polling interval (self-calling timeout) to compare mouse coordinates over time
+                if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+                // else e.type == "mouseleave"
+            } else {
+                // unbind expensive mousemove event
+                $(ob).off("mousemove.hoverIntent",track);
+                // if hoverIntent state is true, then call the mouseOut function after the specified delay
+                if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+            }
+        };
+
+        // listen for mouseenter and mouseleave
+        return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector);
+    };
+})(jQuery);
Index: tensions/Slide/js/jquery.hoverIntent.minified.js
===================================================================
--- /extensions/Slide/js/jquery.hoverIntent.minified.js	(revision 26888)
+++ 	(revision )
@@ -1,9 +1,0 @@
-/**
-* 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: tensions/Slide/js/jquery.pageslide.min.js
===================================================================
--- /extensions/Slide/js/jquery.pageslide.min.js	(revision 26888)
+++ 	(revision )
@@ -1,11 +1,0 @@
-/*
- * jQuery pageSlide
- * Version 2.0
- * http://srobbin.com/jquery-pageslide/
- *
- * jQuery Javascript plugin which slides a webpage over to reveal an additional interaction pane.
- *
- * Copyright (c) 2011 Scott Robbin (srobbin.com)
- * Dual licensed under the MIT and GPL licenses.
-*/
-(function(b){function j(e,a){if(0===e.indexOf("#"))b(e).clone(!0).appendTo(c.empty()).show();else{if(a){var d=b("<iframe />").attr({src:e,frameborder:0,hspace:0}).css({width:"100%",height:"100%"});c.html(d)}else c.load(e);c.data("localEl",!1)}}function k(b,a){var d=c.outerWidth(!0),f={},g={};if(!c.is(":visible")&&!h){h=!0;switch(b){case "left":c.css({left:"auto",right:"-"+d+"px"});f["margin-left"]="-="+d;g.right="+="+d;break;default:c.css({left:"-"+d+"px",right:"auto"}),f["margin-left"]="+="+d,g.left="+="+d}l.animate(f,a);c.show().animate(g,a,function(){h=!1})}}var l=b("body"),c=b("#pageslide"),h=!1,m;0==c.length&&(c=b("<div />").attr("id","pageslide").css("display","none").appendTo(b("body")));b.fn.pageslide=function(e){this.click(function(a){var d=b(this),f=b.extend({href:d.attr("href")},e);a.preventDefault();a.stopPropagation();c.is(":visible")&&d[0]==m?b.pageslide.close():(b.pageslide(f),m=d[0])})};b.fn.pageslide.defaults={speed:200,direction:"right",modal:!1,iframe:!0,href:null};b.pageslide=function(e){var a=b.extend({},b.fn.pageslide.defaults,e);c.is(":visible")&&c.data("direction")!=a.direction?b.pageslide.close(function(){j(a.href,a.iframe);k(a.direction,a.speed)}):(j(a.href,a.iframe),c.is(":hidden")&&k(a.direction,a.speed));c.data(a)};b.pageslide.close=function(c){var a=b("#pageslide"),d=a.outerWidth(!0),f=a.data("speed"),g={},i={};if(!a.is(":hidden")&&!h){h=!0;switch(a.data("direction")){case "left":g["margin-left"]="+="+d;i.right="-="+d;break;default:g["margin-left"]="-="+d,i.left="-="+d}a.animate(i,f);l.animate(g,f,function(){a.hide();h=!1;"undefined"!=typeof c&&c()})}};c.click(function(b){b.stopPropagation()});b(document).bind("click keyup",function(e){"keyup"==e.type&&27!=e.keyCode||c.is(":visible")&&!c.data("modal")&&b.pageslide.close()})})(jQuery);
Index: /extensions/Slide/js/menu.js
===================================================================
--- /extensions/Slide/js/menu.js	(revision 26889)
+++ /extensions/Slide/js/menu.js	(revision 26889)
@@ -0,0 +1,79 @@
+/*
+ * menu - v1.0 - 2013-10-01
+ * plugin menu for piwitheme
+ * http://piwitheme.fr/
+ *
+ */
+ 
+(function($) {
+	$('li.liSub:last-child dt').addClass('dd_wrapper');
+	$('li.liSub:last-child dd').addClass('sub');
+	$('.mcol').columnize({ 
+						columns		: 4,
+						doneFunc	: function(){
+							$('.sub').hide();
+							}
+						});
+	$.each($('.mcol li'), function() {
+		var $li = $(this),
+			$test=$li.find('a');
+		if($test.length == 0){
+			$li.remove()
+		}
+	})
+	
+	$('#topnav li').each(function(){
+	if($(':first-child', this).hasClass('cl_wrapper')){
+		$(this).addClass('ident');
+	} else{
+		$(this).addClass('menu')
+	}
+	});
+
+	function megaHoverOver(){
+		$(this).addClass('activate').find('.sub').stop().slideDown(200);
+	};
+	
+	function megaHoverOut(){
+	 $(this).find('.sub').stop().slideUp(200,function(){$(this).parent().removeClass('activate')});
+	};
+	var $configSub 	= {
+						over	: megaHoverOver,   
+						out		: megaHoverOut 	   
+						};
+
+	$('.menu').hoverIntent($configSub);
+	$('.sub ul li:last-child a').css('border', 'none');
+
+	$('.ident').mouseenter(function(){
+		if($(this).children('div').is(':hidden')){
+			$(this).addClass('activate').children('div').slideDown(200).attr(':visible');
+		}
+	});
+	$('.cl_wrapper').click(function(){
+		if($(this).next('div').is(':visible')){
+			$(this).next('div').slideUp(200, function(){
+				$(this).hide()
+			});
+			$(this).next('div').attr(':hidden'); 
+			$(this).parent().removeClass('activate');
+		}
+	});
+	$('.close').click(function(){
+		$(this).parent().slideUp(200, function(){
+				$(this).hide().attr(':hidden')
+			});
+			$('.ident').removeClass('activate');
+	});
+	$('#qsearchInput').focus(function(){
+		if($('#qsearchInput').attr('value') == qsearch_prompt){
+			$('#qsearchInput').attr('value', '')
+		}
+	});
+	$('#qsearchInput').blur(function(){
+		if($('#qsearchInput').attr('value') != qsearch_prompt){
+			$('#qsearchInput').attr('value', qsearch_prompt)
+		}
+	});
+	
+})(jQuery);
Index: /extensions/Slide/js/plugin/SlideEasyCaptcha.js
===================================================================
--- /extensions/Slide/js/plugin/SlideEasyCaptcha.js	(revision 26889)
+++ /extensions/Slide/js/plugin/SlideEasyCaptcha.js	(revision 26889)
@@ -0,0 +1,68 @@
+/*
+ * SlideGThumb - v1.0 - 01-01-2014
+ * plugin for Slide and EasyCaptcha
+ * Original by mistic100 for EasyCaptcha : http://fr.piwigo.org/ext/extension_view.php?eid=591
+ * Modified by Miklfe : http://piwitheme.fr/
+ *
+ */
+ 
+
+/*function _ECaptcha(){
+var $layerShow 	= $('body').data('layerShow'),
+	$ele			= $('#the_page', $layerShow),
+		$EC_opt 		= $ele.data('slideec'),
+		$bd1			= $EC_opt.activate_on.challenge;
+
+		console.log($bd1);
+
+			
+}*/
+
+
+
+function _ECaptcha(){
+	var $layerShow 	= $('body').data('layerShow');
+if($('#the_page', $layerShow).hasClass('EC_drag')) {
+		$.getScript('./plugins/EasyCaptcha/template/jquery.events/jquery.event.drag-2.2.js');
+		$.getScript('./plugins/EasyCaptcha/template/jquery.events/jquery.event.drop-2.2.js',function(){
+			$.getScript('./plugins/EasyCaptcha/template/drag.js');
+		});
+		var	$ele			= $('#the_page', $layerShow),
+			$EC_opt 		= $ele.data('slideec'),
+			$bd1			= $EC_opt.bd1,
+			$bd2			= $EC_opt.bd2,
+			$bg1			= $EC_opt.bg1,
+			$bg2			= $EC_opt.bg2,
+			$size			= $EC_opt.size,
+			$obj			= $EC_opt.obj,
+			$nb				= $EC_opt.nb,
+			$txt			= $EC_opt.txt,
+			$sel			= $EC_opt.sel,
+			$marle			= (15+($size+5))*$nb,
+			$ECcss			= '#easycaptcha, #easycaptcha_noscript{display: inline-block; position:relative; padding:10px; border-radius:8px; background:' + $bg1 + '; background:-webkit-linear-gradient(top, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-moz-linear-gradient(top, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-ms-linear-gradient(top, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-o-linear-gradient(top, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%);background:linear-gradient(to bottom, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%);color: ' + $txt +' } #easycaptcha .drag_item{position:absolute; top:15px; width:' + $size + 'px; height:' + $size + 'px; border-radius:5px; border:1px solid ' + $bd1 + '; background:' + $obj + '; z-index:10; cursor:move} #easycaptcha .drag_item.active {z-index:100; opacity:0.75;} #easycaptcha .drag_item img{width' + $size + 'px; height:' + $size + 'px; border-radius: 5px;} #easycaptcha .drop_zone{padding:5px; width:' + $size + 'px; height:' + $size + 'px; margin-left:' + $marle + 'px; line-height:' + $size + 'px; background:' + $bg1 + '; background:-webkit-linear-gradient(bottom, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-moz-linear-gradient(bottom, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-ms-linear-gradient(bottom, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:-o-linear-gradient(bottom, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); background:linear-gradient(to top, ' + $bg1 + ' 0%, ' + $bg2 + ' 100%); border:1px dotted ' + $bd2 + '; border-radius:5px; text-align:center; text-transform:uppercase; color:' + $txt + ';} #easycaptcha .drop_zone.active{background:' + $sel + ';} #easycaptcha .drop_zone.valid{background:' + $sel + '; box-shadow:0 0 0 2px ' + $sel + ';}';
+
+			
+			$("<style />", {
+				type: "text/css",
+			}).append($ECcss).appendTo('head');
+
+	} 
+	else {
+		var	$ele			= $('#the_page', $layerShow),
+			$EC_opt 		= $ele.data('slideec'),
+			$size			= $EC_opt.tictacsize,
+			$i				= $('#commentAdd').data('now'),
+			$3size			= $size/3,
+			$ECcss			= '#easycaptcha table{background:url("./plugins/EasyCaptcha/tictac/gen.php?t=' + $i + '") no-repeat; width:' + $size + 'px; height:' + $size + 'px; border-collapse:collapse; display:inline-block; margin:0} #easycaptcha td{border:none; padding:0} #easycaptcha label{display: block; width:' + $3size + 'px; height:' + $3size + 'px; cursor:url("./plugins/EasyCaptcha/tictac/gen.php?cross=96") 16 16, pointer;} #easycaptcha input{display: none} #easycaptcha label.selected{background: url("./plugins/EasyCaptcha/tictac/gen.php?cross=' + $size + '") no-repeat}';
+				
+		$("<style />", {
+			type: "text/css",
+		}).append($ECcss).appendTo('head');
+		
+		$('#easycaptcha input').on('change', function() {
+			$('#easycaptcha label').removeClass('selected');
+			$(this).parent('label').addClass('selected');
+		})	
+
+	}
+}
Index: /extensions/Slide/js/plugin/SlideGThumb.js
===================================================================
--- /extensions/Slide/js/plugin/SlideGThumb.js	(revision 26889)
+++ /extensions/Slide/js/plugin/SlideGThumb.js	(revision 26889)
@@ -0,0 +1,41 @@
+/*
+ * SlideGThumb - v1.0 - 01-01-2014
+ * plugin for Slide and GThumb+
+ * Original by P@t for GThumb+ : http://fr.piwigo.org/ext/extension_view.php?eid=591
+ * Modified by Miklfe : http://piwitheme.fr/
+ *
+ */
+ 
+function _GThumb(){
+	var $layerShow 	= $('body').data('layerShow');
+	if($('#the_page', $layerShow).hasClass('GThumb')) {
+		if ($('body').hasClass('GThumb')){
+			$.getScript('./plugins/GThumb/js/jquery.ba-resize.min.js', function(){
+				$.getScript('./plugins/GThumb/js/gthumb.js',function(){
+				_Gthumb_init();
+				$('body').removeClass('GThumb').addClass('GThumbReady');
+				});
+			})
+		}else{
+			_Gthumb_init()
+		};
+	}
+	function _Gthumb_init(){
+		var	$ele				= $('#the_page', $layerShow),
+			$gthumb_opt 		= $ele.data('slidegthumb'),
+			$gthumb_big_id		= $ele.data ('gtid'),
+			$gthumb_big_url		= $ele.data ('gturl'),
+			$gthumb_big_w		= $ele.data ('gtw'),
+			$gthumb_big_h		= $ele.data ('gth');
+				
+		GThumb.max_height 	= $gthumb_opt.height;
+		GThumb.margin 		= $gthumb_opt.margin;
+		GThumb.method 		= $gthumb_opt.method;
+		GThumb.big_thumb 	= {id:$gthumb_big_id, src:$gthumb_big_url,width:$gthumb_big_w,height:$gthumb_big_h};
+
+		GThumb.build();
+		$(window).bind('RVTS_loaded', GThumb.build);
+		$('#thumbnails', $layerShow).resize(GThumb.process);
+		$('#thumbnails .gthumb', $layerShow).css({marginRight:GThumb.margin, marginBottom:GThumb.margin});
+	};
+};
Index: /extensions/Slide/js/plugin/SlideLightbox.js
===================================================================
--- /extensions/Slide/js/plugin/SlideLightbox.js	(revision 26889)
+++ /extensions/Slide/js/plugin/SlideLightbox.js	(revision 26889)
@@ -0,0 +1,60 @@
+/*
+ * SlideGThumb - v1.0 - 01-01-2014
+ * plugin for Slide and Lightbox
+ * Original by P@t for Lightbox : http://fr.piwigo.org/ext/extension_view.php?eid=591
+ * Modified by Miklfe : http://piwitheme.fr/
+ *
+ */
+ 
+ function _lightbox(){
+		if ($('body').hasClass('lightbox')){
+		var url= './plugins/lightbox/js/jquery.colorbox.js';
+$.getScript(url, function (data, textStatus) {
+    if (textStatus === "success") {
+        try {
+            CAGinit();
+        } catch(err) {
+            alert(err);
+        }
+    } else {
+        alert("script not loaded");
+    }
+});
+
+	/*	$.getScript('./plugins/lightbox/js/jquery.colorbox.js').fail(alert());
+				_lightbox_init();
+				$('body').removeClass('lightbox').addClass('lightboxReady');
+			})
+		}else{
+			_lightbox_init()*/
+		};
+	
+	function _lightbox_init(){
+		var $layerShow 	= $('body').data('layerShow'),
+			$lightbox_opt = $('#the_page', $layerShow).data('lightbox');
+		//function PWG_Colorbox() {alert();
+		alert();
+			$('a[rel=colorbox0]').attr("href", function () {
+				return this.name;
+			});
+			$('a[rel=colorbox0]').colorbox({
+				current: "",
+				transition: $lightbox_opt.transition,
+				speed: $lightbox_opt.speed,
+				initialWidth: $lightbox_opt.initialWidth,
+				initialHeight: $lightbox_opt.initialHeight,
+				width: $lightbox_opt.width,
+				height: $lightbox_opt.height
+			},
+			function() {
+				$.post("plugins/lightbox/save_history.php", {
+					imgid: this.id,
+					catid: $lightbox_opt.catid,
+					section: $lightbox_opt.section,
+					tagids: $lightbox_opt.tagids
+				});
+			});
+		//}
+	};
+};
+			
Index: /extensions/Slide/js/slide.js
===================================================================
--- /extensions/Slide/js/slide.js	(revision 26888)
+++ /extensions/Slide/js/slide.js	(revision 26889)
@@ -1,369 +1,716 @@
-	$(function()
-		{
-			if($('body').attr('id') == 'theCategoryPage')
-				{
-				$('#menu_start').hide()
-			};
-			if($('body').attr('id') != 'theCategoryPage')
-				{
-				$('#menu').hide()
-			};
-				
-			$("#page_content #nav_wrapper").css("display", "none");
-			$("li.liSub:last-child dt").addClass('dd_wrapper');
-			$("li.liSub:last-child dd").addClass('sub');
-
-			function megaHoverOver()
-				{
-				$(this).find(".sub").stop().fadeTo('slow', 1).show()
+/************************************************************************************
+ *																					*								
+ *																					*
+ * 							Slide - v2.0 - 2013-10-01								*
+ *							 http://piwitheme.fr/									*
+ *																					*
+ *																					*
+*************************************************************************************/
+ 
+(function($) {
+//_________________________________________________________________________________________________________________________________
+//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+	$(document).ready(function(){
+		$('body').prepend($('<div />').attr({'class':'tab','id':'tab-0','data-urltab':window.location}).append($('<div />').attr('class','sld_tab'))).wrapInner($('<div />').attr({'class':'pageslide','id':'layer-0'}));
+		$('.pageslide').first().show();
+		var $w_w		= $(window).width(),
+			$w_h		= $(window).height(),
+			$tab		= 40,
+			i			= 0,
+			$layerShow	= $('#layer-0'),
+			$slideshow	= [];
+			
+		$('body').append($('<div />').attr('id','slideLoading').css({top:(($w_h/2)-50),left:(($w_w/2)-50)}));
+		$('body').data('layerShow',$layerShow);
+		_init_page()
+
+	
+		$(document).on('click','.slide', function(e) {
+			var $url 	= $(this).attr('href');
+			
+			$int 		= setTimeout(function() {
+				$('#slideLoading').css('z-index',1000)
+				}, 500);
+			i++;
+			
+			_load($url);
+			_pushstate($url);	
+			
+			e.preventDefault();
+		});
+
+		$(document).on('click','.sameLayer', function(e) {
+			var $href 		= $(this).attr('href'),
+				$layerShow 	= $('body').data('layerShow'),
+				$url 		= $href + ' #the_page',
+				$slide_w	= $layerShow.width();
+				
+			_pushstate($href);
+			
+			if ($('.slshFirst').length){
+				$urlFirst 	= $('.slshFirst').attr('href')
+			} else {
+				$urlFirst 	= $href 
+			};
+			
+			$('#the_page',$layerShow).addClass('unwrap').load($url, function(){
+				_init_page($urlFirst,$slide_w)
+				$('.unwrap').children().unwrap();
+			});	
+			
+			e.preventDefault();
+		});	
+		
+		$(document).on('click','.tab', function(e) {
+			_close( $(this) );
+			var $url = $(this).data('urltab');
+			_pushstate($url);				
+		});
+		
+		$(document).on('submit','#quicksearch', function(e) {
+			i++;
+			var $val	= $('#qsearchInput').attr('value'),
+				$url	= 'qsearch.php?q='+ $val,
+				frame 	= $("<iframe />").attr({src: $url,id: 'frame'}).css({display:'none'});
+				
+				$('body').append(frame);
+				
+				setTimeout(	function () {
+					var $obj = $("#frame").contents(),
+						$urlframe = $obj[0].location.href;
+					$('#frame').pushstate($urlframe);
+					$('#frame').remove()
+					},
+				1000);
+				
+			_load($url);
+			$(this).attr('value', qsearch_prompt);
+			
+			e.preventDefault();
+		});
+
+// Picture page rating
+		$(document).on('mouseover','.rateButton',function(){
+			$('#rateForm input').each(function(){
+				$(this).removeClass('rateButtonFull').removeClass('rateButtonSelected');
+				});
+			$(this).addClass('rateButtonFull');
+			var rate	= $(this).attr('title'),
+				nth		= ':nth-child(-n+' + rate + ')';
+			$('.rateButton' + nth).addClass('rateButtonFull');
+		});
+				
+		$(document).on('mouseout','#rateForm',function(){
+			$('#rateForm input').each(function(){
+				$(this).removeClass('rateButtonFull').addClass('rateButton');
+			});
+			$('#rateForm input[type="button"]').addClass('rateButtonSelected');
+			_rate_star()
+		});
+				
+		$(document).on('click','.rateButton', function(e){
+			var form 	= $(this).parents('form'),
+				hrefa 	= form.attr('action'),
+				hrefm 	= form.attr('method'),
+				rate 	= $(this).attr('title'),
+				rate	= 'rate=' + rate;
+			$.ajax({
+				url		: hrefa,
+				type	: hrefm,
+				data	: rate,
+				success	: function(){
+					hrefa = hrefa.substring(0,hrefa.indexOf('&'));
+					hrefInf = hrefa + ' #imageInfos';
+					$('#imageInfos').addClass('unwrap').load(hrefInf,function(){
+						_rate_star();
+						_imageInfo();
+						$('.unwrap').children().unwrap();
+					});
+				}
+			});
+			e.preventDefault();
+		});
+		
+//switchbox derivative
+		$(document).on('click','.derivative', function(){
+			var url			= $(this).data('url'),
+				typeSave	= $(this).data('typesave'),
+				typeMap 	= $(this).data('typemap'),
+				cookies		= $(this).data('cookie')
+				theImg		= $('#theMainImage');
+			theImg.attr({'width':'' ,'height':'', 'src': url , 'useMap': '#map' + typeMap});
+			$('#derivativeSwitchBox .switchCheck').css('visibility','hidden');
+			$('#derivativeChecked' + typeSave).css('visibility','visible');
+			document.cookie = 'picture_deriv='+typeSave+';path=cookies';
+		});		
+		
+		$(document).on('click','.original',function(){
+			var theURL		= $(this).data('url'),
+				winName		= $(this).data('winname'),
+				features	= $(this).data('features');
+			$.getScript('./themes/default/js/scripts.js', function(){
+				phpWGOpenWindow(theURL,winName,features)
+			});
+		});
+		
+		$(document).on('click','.privacy', function(){
+			var rootUrl		= $(this).data('root'),
+				id			= $(this).data('id'),
+				level		= $(this).data('level');
+			setPrivacyLevel(rootUrl, id, level);
+		});
+
+//add comment
+		$(document).on('click', '#addComment input[type=submit]', function(e){
+			$(this).valid_comment();
+			e.preventDefault();
+		});
+		$(document).on('click', '#editComment input[type=submit]',  function(e){
+			$(this).valid_comment();
+			e.preventDefault(); 
+		});
+
+// removal/edit comment
+		$(document).on('click', '.actions a', function(e){
+			var e		= $(this),
+				confi 	= e.attr('confirm');
+			if(e.hasClass('delet')){
+				if (confirm(confi)) {
+					_rem_ed(e);
+				};
 			}
-			
-			function megaHoverOut()
-				{
-				$(this).find(".sub").stop().fadeTo('slow', 0, function() 
-					{
-					$(this).hide()
+			if(e.hasClass('annul')){
+				var href = e.attr('href') + ' #comments';
+				$('#comments').addClass('unwrap').load(href, function(){
+					$('.unwrap').children().unwrap();
 				});
 			}
-
-
-			var configSub = {
-				 sensitivity: 2,		// number = sensitivity threshold (must be 1 or higher)    
-				 interval: 0, 			// number = milliseconds for onMouseOver polling interval    
-				 over: megaHoverOver,   // function = onMouseOver callback (REQUIRED)    
-				 timeout: 0, 			// number = milliseconds delay before onMouseOut    
-				 out: megaHoverOut 		// function = onMouseOut callback (REQUIRED)    
-			};
-
-			$("ul#topnav li .sub").css({'display':'none'});
-			$("ul#topnav li").hoverIntent(configSub);
-			
-			
-			// 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")
+			if(e.hasClass('editComment')){
+				_rem_ed(e);
+			};
+			e.preventDefault();
+		});
+
+//Change the order of comments
+		$(document).on('click', '.commentsOrder', function(e){
+			$.ajax({  
+				url		: $(this).attr('href'), 
+				success	: function(html){
+					_comment_reload(html)
+						}
+			});
+			e.preventDefault();
+		});
+
+//edit profil		
+		$(document).on('click', '#profile input[name=reset_to_default]', function(e){
+			var profil	 	= $('#profile'),
+				profilhref	= profil.attr('action'),
+				profilmet	= profil.attr('method'),
+				profilser	= profil.serialize(),
+				profilval	= $(this).attr('value'),
+				profilnam	= $(this).attr('name'),
+			data = profilser + '&' + profilnam + '=' + profilval;
+				$.ajax({           
+					url		: profilhref, 
+					type	: profilmet, 
+					data	: data, 
+					success	: function(html) {
+						var content = $(html).find('#profile');
+						profil.replaceWith(content)
+					}
+				});			
+			e.preventDefault();
+		});
+
+// search page
+		$(document).on('submit', '.theSearchPage .filter', function(e){
+			var sch 	= $('.filter'),
+			schmet 	= sch.attr('method'),
+			schser	= sch.serialize(),
+			schhref = sch.attr('action');
+			schser = schser+"&submit=Valide";
+			$.ajax({           
+				url		: schhref, 
+				type	: schmet, 
+				data	: schser, 
+				success	: function(html){
+					var e = $(html).find('.errors');
+					if(e.length){
+						var inf = e.text()
+						_message(inf);
+					} else {
+						var $href 		= $(html).find('.titrePage h2 a:nth-child(2)').attr('href'),
+							$layerShow 	= $('body').data('layerShow'),
+							$url 		= $href + ' #the_page';
+						$('#the_page', $layerShow).addClass('unwrap').load($url,function(){
+							_init_page();
+							$('.unwrap').children().unwrap();
+						});
+					};	
 				}
 			});
-				
-			$(".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")
+			e.preventDefault();
+		});
+				
+//comment page
+		$(document).on('submit', '.theCommentsPage .filter',  function(e){
+			var com 	= $('.filter'),
+				commet 	= com.attr('method'),
+				comser	= com.serialize(), 
+				comhref = com.attr('action');
+			$.ajax({           
+				url		: comhref, 
+				type	: commet, 
+				data	: comser, 
+				success	: function(html){
+					var $layerShow 		= $('body').data('layerShow'),
+						$comfilt		= $(html).find('#content');
+					$('#content', $layerShow).replaceWith($comfilt);	
 				}
 			});
-
-			$(".close").click(function()
-				{
-				if($("#loger").is(":visible"))
-					{
-					$("#loger").fadeTo('fast', 0, function(){$(this).hide()});
-					$(".cl_wrapper").removeClass('activate');
-					$("#loger").attr(":hidden");
+			e.preventDefault();
+		});
+		
+//switchBox 
+		var $optbox = [	{li : '#sortOrderLink', box : '#sortOrderBox'},
+						{li : '#derivativeSwitchLink' , box : '#derivativeSwitchBox'},
+						{li : '#privacyLevelLink' , box : '#privacyLevelBox'},
+						{li : '#calendarViewSwitchLink' , box : '#calendarViewSwitchBox'}
+						];
+		$.each($optbox, function(i, a){
+			$(document).on('click', a.li , function(e) {
+				var $layerShow 	= $('body').data('layerShow'),
+					$ele		= $( a.box  , $layerShow),
+					ePos 		= $(this).position(),
+					ePos_h		= $(this).height();
+				if ($ele.is(":hidden")){
+					var left	= (ePos.left) + 'px',
+						top		= (ePos.top + ePos_h) + 'px';
+					$ele.css({left: left , top: top }).show();
 				}
-			});
-			
-			$(".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")
+			e.preventDefault();	
+			});
+			$(document).on('mouseleave', a.box, function() {
+				$(this).hide();
+			});
+		});
+		
+//_____function SLIDE______________________________________________________________________________________________________________________________________________
+		function _init_page($urlFirst,$slide_w) {
+		var $layerShow 	= $('body').data('layerShow');
+			_selectPageSlide();
+			_display_menu();
+			_titre_page();
+			_scrollbar();
+			_content_size();
+			_piwitheme_link();
+			_dragbar_tabs();
+			if($('#the_page',$layerShow).hasClass('thePicturePage')){
+				_rate_star();
+				_imageInfo()
+			};
+			if($('#the_page',$layerShow).hasClass('EC_drag')||$('#the_page',$layerShow).hasClass('EC_tictac')){
+				_ECaptcha();
+			};
+			if($('#slideshow').length){
+				$('#theHeader', $layerShow).remove();
+				_load_slideshow($urlFirst, $slide_w);
+				
+			};
+			if($('body').hasClass('lightbox')||$('body').hasClass('lightboxReady')) {
+				_lightbox()				
+			};
+			if($('body').hasClass('GThumb')||$('body').hasClass('GThumbReady')) {
+				_GThumb()
+			};
+		};		
+		
+		function _load( $url ) {
+			var	$z 				= (100 / i).toFixed(),
+				$tab 			= 40 * i,
+				$pageslide_w 	= $w_w - $tab,
+				$href 			= $url + ' #the_page';
+				
+			$('body').append($('<div />').attr('class','pageslide').css({ left: 'auto', right: '-' + $w_w + 'px' }));
+			$('.pageslide').attr('id', function(i){
+				return "layer-" + i;
+			});
+			
+			var $layerPrev		= $('#layer-' + (i - 1)),
+				$layerShow		= $('#layer-' + i);
+
+			$layerShow.css({'z-index'	: $z,
+							width		: $pageslide_w +'px'
+			})	
+			$('body').data('layerShow',$layerShow);
+			$('body').data('layerPrev',$layerPrev);
+			$('body').data( 'i',i);
+			$layerShow.load( $href, function(){
+				$layerPrev	.css({right:'auto'})
+							.animate({marginLeft: - $pageslide_w + ((i - 1) * 40)}, 1000);
+				$layerShow	.show()
+							.animate({right: 0}, 1000)
+							.prepend($('<div />')
+							.attr({'class':'tab','id':'tab-0','data-urltab':window.location})
+							.append($('<div />').attr('class','sld_tab')));
+				$('.tab').attr('id', function(i){
+					return "tab-" + i;
+				});
+				$('#slideLoading').css('z-index',0);
+				clearTimeout($int);
+				_init_page($url, $pageslide_w)
+			});
+		};
+
+		function _selectPageSlide(){
+			var $layerShow 	= $('body').data('layerShow'),
+				$a 			= [	'#menu_start a',
+								'.navigationBar a',
+								'.calendarBar a',
+								'.calendarCalBar a',
+								'.navigationButtons a',
+								'#imageHeaderBar a',
+								'.calImg a',
+								'.date_today',
+								'#sortOrderLink',
+								'#sortOrderBox a',
+								'#derivativeSwitchBox a',
+								'#derivativeSwitchLink',
+								'.actionButtons a',
+								'.actions a',
+								'.navThumb',
+								'.calendarTitle a',
+								'#linkToPiwigo a',
+								'#copyright a',
+								'#languageSwitchLink',
+								'#languageSwitchBox a',
+								'#theHeader a',
+								'#myHomePage a',
+								'#mbAdditionalPages a',
+								'#photosAddContent a',
+								'.amm-MenuBar-links-icons a',
+								'.commentsOrder',
+								'#calendarViewSwitchLink',
+								'#calendarViewSwitchBox a',
+								'#ato_header a',
+								'#ato_header_closed a',
+								],
+				$b 			= [	'.pwg-icon-letters',
+								'.pwg-icon-cloud',
+								'.pwg-icon-help',
+								'.pwg-icon-calendar',
+								'.pwg-icon-camera-calendar',
+								'.pwg-icon-favorite-del',
+								'.pwg-icon-caddie-add',
+								'.pwg-icon-category-view-flat',
+								'.pwg-icon-category-view-normal',
+								'#thePicturePage .pwg-icon-slideshow',
+								'#thePicturePage .pwg-icon-camera-info',
+								'#thePicturePage .pwg-icon-save',
+								'#thePicturePage .pwg-icon-favorite-add',
+								'#thePicturePage .pwg-icon-representative',
+								'#thePicturePage .pwg-icon-edit',
+								'.pwg-icon-category-edit'
+								],
+				$c 			= [	'.description_stuffs .zero nb-comments',
+								'.description_stuffs .nb-hits',
+								'.description_stuffs .nb-comments'
+								],
+				$d			= [ '.pwg-icon-arrow-n'
+								],
+				$e 			= [	'#linkToPiwigo a',
+								'#copyright a'
+								],
+				$f			= [ '.navigationButtons a',
+								'.navThumbs a',
+								'.navigationBar a',
+								'#derivativeSwitchBox a',
+								'#sortOrderBox a',
+								'#theMainImage map area a',
+								'#calendarViewSwitchBox a',
+								'.calImg a',
+								];
+				$g			= [ '.pwg-icon-caddie-add',
+								'.pwg-icon-category-view-normal',
+								'.pwg-icon-calendar',
+								'.pwg-icon-camera-calendar'
+								];
+								
+			if($('body').hasClass('withlightbox')) {	
+					$a.push('.illustration a');
+				};
+					
+			$.each($a, function(i,e) {
+				$(e, $layerShow).addClass('noSlide')
+			});
+			$.each($b, function(i,e) {
+				$(e, $layerShow).parent().addClass('noSlide')
+			});
+			$.each($c,function(i,e) {
+				$(e, $layerShow).remove()
+			});
+			$.each($d,function(i,e) {
+				$(e, $layerShow).parent().remove()
+			});
+			$.each($e,function(i,e) {
+				$(e, $layerShow).attr('target','blank')
+			});
+			$.each($f, function(i,e) {
+				$(e, $layerShow).addClass('sameLayer')
+			});
+			$.each($g, function(i,e) {
+				$(e, $layerShow).parent().addClass('sameLayer')
+			});
+
+			$('a:not(.noSlide)', $layerShow).addClass('slide');
+			$('#layer-0 ').find('.sameLayer').removeClass('sameLayer');
+
+			$('.stuffs_block .illustration .description', $layerShow).removeClass('description').addClass('description_stuffs');
+			$('.titrePage + div', $layerShow).addClass('blockConteneur');
+			$('.myHomePage_links a[href="index.php?/contact"]', $layerShow).addClass('slide');
+		};
+		
+		function _titre_page() {
+			var $layerShow 	= $('body').data('layerShow'),
+				$titre 		= $('#content .titrePage h2',$layerShow).first().text(),
+				$titre		= $titre.substring($titre.lastIndexOf("/")).replace("/","");
+			$('#content .titrePage h2',$layerShow).first().replaceWith("<h2>"+ $titre +"</h2>");
+			
+			if (($titre.indexOf("[")>=0)) {
+				var $titreTab	= $titre.substring(0,$titre.indexOf("[",1));
+			}else{
+				var $titreTab 	= $titre;
+			};
+			$('.sld_tab',$layerShow).text($titreTab);
+		
+			$('.browsePath a',$layerShow).remove();
+			var $titre		= $('.browsePath',$layerShow).text(),
+				$titre		= $titre.substring($titre.lastIndexOf("/")).replace("/","").replace("[","").replace("]","");
+			$('.browsePath',$layerShow).replaceWith("<h2>"+ $titre +"</h2>");
+		};
+		
+		function _scrollbar() {
+			var $layerShow 	= $('body').data('layerShow'),
+				$settings 	= {	verticalDragMinHeight: 100,
+								verticalDragMaxHeight: 100,
+								autoReinitialise: true
+							};
+			var $pane 		= $('.scrollpane', $layerShow).jScrollPane($settings);
+		};
+		
+		function _display_menu() {
+			var $layerShow 	= $('body').data('layerShow');
+			if($layerShow.attr('id') != ('layer-0')) { 
+				$layerShow.find('#menubar').remove();
+				$layerShow.find('#theHeader').addClass('headbord')
+			};
+			$('#theIdentificationPage #menu').remove();
+		};
+		
+		function _content_size(){
+			var $layerShow 	= $('body').data('layerShow'),
+				$headerH	= $('#theHeader', $layerShow).height(),
+				$headerBar	= $('.imageHeaderBar', $layerShow).height(),	
+				$copyright	= $('#copyright', $layerShow).height(),
+				$imageToolBar = $('.imageToolBar', $layerShow).height()
+				$w_mh 		= $(window).height() - ($headerH + $headerBar + $copyright +$imageToolBar + 50 ) + 'px';
+			$('#content',$layerShow).css({minHeight: $w_mh});
+		};
+
+		function _piwitheme_link(){
+			var $layerShow 	= $('body').data('layerShow');
+			var $link		= ' - theme by <a href="http://piwitheme.fr" target="_blank">piwitheme</a>';
+			$('#copyright', $layerShow).append($link);
+		};
+
+		function _rate_star(){
+			$('.rateButton').attr('value','');
+			if ($('.rateButton [type="button"]').length){
+				var rate	= $('.rateButtonSelected').attr('title'),
+					nth		= ':nth-child(-n+' + rate + ')';
+				$('.rateButton' + nth).addClass('rateButtonFull');
+			}
+		}
+		
+		function _imageInfo() {
+			$('.imageInfo a').each(function(){
+				var text = $(this).text();
+				$(this).wrap($('<span />').html(text)).remove();
+			})
+		};
+		
+		function _load_slideshow($href,$slideW) {
+			$('#slideshow').empty().addClass('slideloader');
+			$.getScript('themes/Slide/js/slideshow.js');
+			$.ajax({
+				url 	: $href,
+				success : function(html){
+					var $next	= $(html).find('.pwg-button-icon-right').attr('href'),
+						$title	= $(html).find('#imageHeaderBar h2').text(),
+						$img	= $(html).find('#theImage img').attr('src');
+					_stock_img($img,$title);
+					if(typeof $next != "undefined"){
+						_load_slideshow($next,$slideW)
+					}else{
+						$('#slideshow').removeClass('slideloader').slideshow({
+							imgs				: $slideshow,
+							autoPlay			: true,
+							speed				: 3000,
+							height				: $w_h,
+							width				: $slideW - 40,
+							navType				: 'thumb',
+							styleSlideshow		: 'Fade',
+							thumb_always		: false,
+							thumb_width			: 100,
+							thumb_height		: 80,
+						})
+					};
+				}	
+			})
+		};
+
+		function _tabs_dragbar() {
+			var $layerShow 	= $('body').data('layerShow');
+			$('.tab',$layerShow).fadeOut(1000).css("cursor","default");
+			$('.jspDrag',$layerShow).css("cursor","pointer");			
+			$('.jspVerticalBar',$layerShow).fadeIn(1000)
+		};
+		
+		function _dragbar_tabs() {
+			var $layerPrev 	= $('body').data('layerPrev');
+			if (typeof ($layerPrev) != 'undefined') {
+				$('.tab',$layerPrev).fadeIn(1000).css("cursor","pointer");
+				$('.jspDrag',$layerPrev).css("cursor","default");			
+				$('.jspVerticalBar',$layerPrev).fadeOut(1000)
+			}
+		};
+		
+		function _stock_img($href,$title){
+			var $img = {image : $href  , title : $title , descr : $title};
+			$slideshow.push($img);
+		};
+
+		function _close($tabClick) {
+			var $layerBack	= $tabClick.parent(),
+				$layerShow 	= $('body').data('layerShow'),
+				$newI		= $layerBack.attr('id'),
+				$newI		= $newI.substring($newI.lastIndexOf("-")).replace("-","");
+
+			$('body').data('layerShow', $layerBack);
+			_tabs_dragbar();
+			$layerShow.animate({left: $w_w}, 1000,function(){
+				if($('#slideshow').length){
+					var $inter 		= $('#slideshow').data('e').interval;
+					$slideshow		= [];
+					clearTimeout($inter);
+				};
+				$layerBack.nextAll('.pageslide').remove();
+				var $layerPrev = $layerBack.prev
+			});
+			$layerBack.css({right:'auto'}).animate({marginLeft:($newI * 40)}, 1000);
+			i 			= $newI;
+			var 	$layerPrev	= $('#layer-' + (i - 1));
+			$('body').data( 'i',i);		
+			$('body').data('layerPrev', $layerPrev)
+		};
+		
+		function _pushstate($url) {
+			window.top.history.pushState({ key: i }, 'titre', $url)
+			window.onpopstate = function(e){
+				if (!e.state || e.state.key < i) {
+					$layerPrev = $('body').data('layerPrev');
+					_close($('.tab',$layerPrev))
+				} else {
+					i++;
+					var $url = window.location;
+					_load($url);	
 				}
-			});
-			
-			$(".cc_wrapper").click(function()
-				{
-				if($(this).next("div").is(":hidden"))
-					{
-					$(this).next("div").fadeTo('fast', 1);
-					$(this).addClass('activate');
-					$(this).next("div").attr(":visible")
+			}
+		};
+		
+		function setPrivacyLevel(rootUrl, id, level) {
+			var y = new PwgWS(rootUrl);
+			y.callService(
+				"pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
+			{
+				method: "POST",
+				onFailure: function(num, text) { alert(num + " " + text); },
+				onSuccess: function(result) {
+					  $('#privacyLevelBox .switchCheck').hide();
+					  $('#levelCheck'+level).show();
 				}
 			});
-			
-				$(".close").click(function()
-					{
-					if($("#loger").is(":visible"))
-						{
-						$("#loger").fadeTo('fast', 0, function(){$(this).hide()});
-						$(".cc_wrapper").removeClass('activate');
-						$("#loger").attr(":hidden");
-					}
-			});
-			
-			
-		$( document ).ready(function() 
-			{
-		
-			// make column menubar_categorie
-			$('.mcol').makeacolumnlists({cols:4, colWidth:155, equalHeight: true, startN: 1});
-			
-			//determines what page will slide
-			var t = [	$('#menu_start a'),
-						$('.navigationBar a'),
-						$('.calendarBar a'),
-						$('.calendarCalBar a'),
-						$('.navigationButtons a'),
-						$('#imageHeaderBar a'),
-						$('.calImg a'),
-						$('.date_today'),
-						$('#sortOrderBox a'),
-						$('#derivativeSwitchBox a'),
-						$('#sortOrderLink'),
-						$('#derivativeSwitchLink'),
-						$('.actions a'),
-						$('.navThumb'),
-						$('.calendarTitle a'),
-						$('#linkToPiwigo a'),
-						$('#copyright a'),
-						//determines what page will slide->specific plugin	
-						$('#languageSwitchLink'),
-						$('#languageSwitchBox a'),
-						$('#theHeader a'),
-						$('#myHomePage a'),
-						$('#mbAdditionalPages a'),
-						$('#photosAddContent a'),
-						$('.amm-MenuBar-links-icons a'),
-					];
-			$.each(t,function()
-				{
-				$(this).attr('class','noSlide')
-			});
-				
-			var r = [	$('.pwg-icon-letters'),
-						$('.pwg-icon-cloud'),
-						$('.pwg-icon-help'),
-						$('.pwg-icon-favorite-del'),
-						$('.pwg-icon-caddie-add'),
-						$('.pwg-icon-category-view-flat'),
-						$('.pwg-icon-category-view-normal'),
-						$('#thePicturePage .pwg-icon-slideshow'),
-						$('#thePicturePage .pwg-icon-camera-info'),
-						$('#thePicturePage .pwg-icon-save'),
-						$('#thePicturePage .pwg-icon-favorite-add'),
-						$('#thePicturePage .pwg-icon-representative'),
-						$('#thePicturePage .pwg-icon-edit'),
-						$('.pwg-icon-category-edit')
-					];
-			$.each(r,function()
-				{
-				$(this).parent().attr('class','noSlide')
-			});
-				
-			if($('.illustration a').hasClass('cboxElement'))
-				{
-				$('.illustration a').addClass('noSlide').removeClass('slide')
-			};
-				
-			$('.categoryActions a[onclick]').addClass('noSlide');
-			$('.actionButtons a[onclick]').addClass('noSlide');
-				
-			$('a:not(.noSlide)').addClass('slide');
-				
-			var s = [	$('.description_stuffs .zero nb-comments'),
-						$('.description_stuffs .nb-hits'),
-						$('.description_stuffs .nb-comments'),
-						$('.pwg-icon-arrow-n').parent()
-					];
-			$.each(s,function()
-				{
-				$(this).remove()
-			});
-
-			var u = [	$('#linkToPiwigo a'),
-						$('#copyright a'),
-					];
-			$.each(u,function()
-				{
-				$(this).attr('target','blank')
-			});
-				
-			$('.stuffs_block .illustration .description').removeClass('description').addClass('description_stuffs');
-			$('.titrePage + div').addClass('blockConteneur');
-			$('.myHomePage_links a[href="index.php?/contact"]').addClass('slide');
-		});	
-
-			
-			$('#theHeader').find('a').on('click',function()
-				{
-				window.top.location.reload()
-			});
-				
-		//initialise scroll bar		
-			var settings 		= {	verticalDragMinHeight: 100,
-									verticalDragMaxHeight: 100,
-									autoReinitialise: true
-								};
-			var pane 			= $('.scrollpane').jScrollPane(settings);
-			var api				= pane.data('jsp');
-
-		//open the slide
-			$(function()
-				{
-				$('.slide').pageslide({direction: "left",speed:2000})
-			});
-
-		$(function()
-			{
-			if(top !== self)
-				{ 
-				$('#menubar').remove();
-				$('#theHeader').addClass('headbord')
-			} 
-		});
-		
-		//close the slide
-			function close()
-				{
-				$.pageslide.close()
-			};
-								
-		//fit the size of the screen		
-			var w_w 		= $(window).width()-41 + 'px',
-				w_h 		= $(window).height() + 'px',
-				w_mh 		= $(window).height()-180 + 'px';
-			$('#pageslide').css({width: w_w});		
-			$('#the_page').css({height: w_h});		
-			$('.intabs').css({height: w_h});	
-			$('#content').css({minHeight: w_mh})
-									
-		//when click on tabs or scroll bar					
-			$('.tabs').bind('click', function()
-				{
-				tabs_dragbar()
-			});
-								
-			$('.jspTrack').bind('click', function()
-				{
-				tabs_dragbar()
-			});
-
-			tabs_dragbar = function()
-				{
-				$('.intabs').removeClass('visibleTransi').css("cursor","default");
-				$('.jspDrag').css("cursor","pointer");			
-				$('.jspVerticalBar').addClass('visibleTransi');
-				$('.jspVerticalBar').removeClass('hideTransi')
-			};
-			
-			
-		//when click on link with class'slide'	
-
-			$(function()
-					{
-				$('.slide').bind('click', function()
-					{dragbar_tabs()
-				});
-			});
-
-			dragbar_tabs = function()
-				{
-				$('.intabs').addClass('visibleTransi').css("cursor","pointer");
-				$('.jspDrag').css("cursor","default");			
-				$('.jspVerticalBar').addClass('hideTransi');
-				$('.jspVerticalBar').removeClass('visibleTransi')
-			};
-
-		//specif tab in page indentification
-			var content		= $('#theIdentificationPage .titrePage a').first().text(),
-				link		= '<a href="index.php" class="noSlide">' + content + '</a>';
-			$('#theIdentificationPage .intabs').addClass('visible');
-			$('#theIdentificationPage #sld_tab').replaceWith('<div id="sld_tabIdent">' + link + '</div>');
-			$('#theIdentificationPage #menubar').remove();
-						
-		//title page		
-			var titre		= $('#sld_tab').text(),
-				titre		= titre.substring(titre.lastIndexOf("/")),
-				titre		= titre.replace("/","");
-			if ((titre.indexOf("[")>=0))
-				{
-				var titre	= titre.substring(0,titre.indexOf("[",1))
-			};
-			$('#sld_tab').replaceWith("<div id='sld_tab'>"+ titre +"</div>")		
-			
-			var titre 		= $('#content .titrePage h2').first().text(),
-				titre		= titre.substring(titre.lastIndexOf("/")),
-				titre		= titre.replace("/","");
-			$('#content .titrePage h2').first().replaceWith("<h2>"+ titre +"</h2>");
-					
-			$('.browsePath a').remove();
-			var titre		= $('.browsePath').text(),
-				titre		= titre.substring(titre.lastIndexOf("/")),
-				titre		= titre.replace("/",""),
-				titre		= titre.replace("[",""),
-				titre		= titre.replace("]","");
-			$('.browsePath').replaceWith("<h2>"+ titre +"</h2>");
-							
-
-		//description size on thumbnail
-			var l			= $('.illustration img').width();
-			if(l<230)
-				{
-				$('.description').css('width','80%')
-			};
-							
-		//input scearch on menubar
-			$('#submitSearch').click( function()
-				{
-				$('.intabs').addClass('visibleTransi');
-				$('.jspVerticalBar').addClass('hideTransi');
-				$('.jspVerticalBar').removeClass('visibleTransi')
-			});
-
-		//piwitheme link in footer				
-			var link		= ' - theme by <a href="http://piwitheme.fr" target="_blank">piwitheme</a>';
-			$('#copyright').append(link);
-		
-		//specific IE8
-			if ($.browser.msie  && parseInt($.browser.version, 10) === 8) 
-				{	
-				$("#sortOrderLink").click(function()
-					{
-					var elt 		= $("#sortOrderBox");
-					elt.css("left", Math.min( $(this).offset().left, $(window).width() - elt.outerWidth(true) - 5))
-						.css("top", $(this).offset().top + $(this).outerHeight(true))
-						.toggle()
-					});
-				$("#sortOrderBox").on("mouseleave", function()
-					{
-					$(this).hide()
-				});
-				$("#derivativeSwitchLink").click(function() 
-					{
-					var elt 		= $("#derivativeSwitchBox");
-					elt.css("left", Math.min( $(this).offset().left, $(window).width() - elt.outerWidth(true) - 5))
-						.css("top", $(this).offset().top + $(this).outerHeight(true))
-						.toggle()
-				});
-				$("#derivativeSwitchBox").on("mouseleave", function() 
-					{
-					$(this).hide()
-				});
-				$("#languageSwitchLink").click(function()
-					{
-					var elt = $("#languageSwitchBox");
-					elt.css("left", Math.min($(this).offset().left, $(window).width() - elt.outerWidth(true) - 5))
-						.css("top", $(this).offset().top + $(this).outerHeight(true))
-						.toggle()
-				});
-				$("#languageSwitchBox").on("mouseleave", function()
-					{
-					$(this).hide();
-				});				
-			};
+		};
+
+		function _rem_ed(e) {
+			var c = e.attr('class'),
+				href = e.attr('href');
+			$.ajax({  
+				url		: href, 
+				success	: function(html){
+				_comment_reload(html)
+				}
+			});
+		};	
+				
+		$.fn.valid_comment = function(){	
+			var addcom 	= $(this).parents('form'),
+				formp 	= addcom.children('p'),
+				contid 	= $('#contentid'),
+				contval = contid.val(),
+				contlen = contid.length,
+				aut		= $('#author'),
+				autval	= aut.val(),
+				autlen	= aut.length,
+				em		= $('#email'),
+				emval	= em.val(),
+				emlen 	= em.length,
+				emregl	= /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/,
+				href 	= addcom.attr('action'),
+				framehref= href;
+			formp.children().each(function(){
+				$(this).removeClass('requi');
+			});
+			$.ajax({           
+				url		: href, 
+				type	: addcom.attr('method'), 
+				data	: addcom.serialize(),
+				error	: function (xhr, ajaxOptions, thrownError) {
+					var e	 	= (xhr.responseText),
+						e 		= e.substring(e.indexOf('<div class="errors">')),
+						e 		= e.substring(e.indexOf('<li>') , e.indexOf('</ul>')),
+						reg 	= new RegExp("(<li>)","g"),
+						rege 	= new RegExp("(</li>)","g"),
+						inf		= e.substring(e.indexOf('<li>'),e.lastIndexOf('</li>')).replace(reg,'').replace(rege,'');
+					_message(inf);
+				},
+				success	: function(html){
+					var inf 	= $(html).find('.infos li').text();
+					if(href.indexOf('&')>=0){href = href.substring(0,href.indexOf('&'))}
+					_message(inf);
+					_comment_reload(html);
+				}			
+			});
+		};
+		
+		function _comment_reload(html){
+			var $com 		= $(html).find('#comments'),
+				$layerShow 	= $('body').data('layerShow');
+				console.log($com);
+			$('#comments', $layerShow).replaceWith($com);
+		};
+
+		function _message(inf) {
+			if($('#msgBox').length==0){
+				$('body').append($('<div />').attr('id','msgBox').append($('<div />').attr('id','msgBoxCom'))).fadeIn();
+			} else {
+				$('#msgBox').fadeIn()
+			};
+			$('#msgBoxCom').text(inf);
+			$('#msgBox').delay(5000).fadeOut();			
+		};
+
 	});
+})(jQuery);
Index: /extensions/Slide/js/slideshow.js
===================================================================
--- /extensions/Slide/js/slideshow.js	(revision 26889)
+++ /extensions/Slide/js/slideshow.js	(revision 26889)
@@ -0,0 +1,428 @@
+/*
+ * Slideshow - v1.0 - 2013-10-01
+ * http://piwitheme.fr/
+ *
+ */
+ 
+(function($){
+	$.fn.slideshow = function(args){
+
+	// Variables
+		var defaults = 
+			{
+			displayPlayPause	: true,
+			autoPlay			: false,
+			displayNextPrev		: true,
+			thumb_always		: true,
+			navType				: 'nav',			//thumb, nav or no
+			styleSlideshow		: 'Fade',			//Fade or Slide
+			target				: '_self',			//_blank or _self
+			speed				: 200,
+			width				: 400,
+			height				: 300,
+			thumb_width			: 60,
+			thumb_height		: 60,
+		};
+		
+		var options 			= $.extend(defaults, args);
+
+		this.each(function(){  
+			var ele 			= this,
+				n_thumb			= Math.floor((options.width) / options.thumb_width),
+				cont_h			= options.height - 100;
+				
+			if(options.navType == 'thumb'){
+				cont_h			= options.height - (options.thumb_height + 60);
+			};
+
+			var v_ele = 
+				{
+				playOn			: false,
+				i_img			: 0,
+				m_s 			: 0,
+				interval		: '',
+				thumb_i			: 1,
+				imgsLength		: options.imgs.length,
+				speed			: options.speed,
+				style			: options.styleSlideshow,
+				s_w 			: options.width,
+				n_thumb			: n_thumb,
+				playOnT			: false,
+				navThumb_w		: '',
+			};
+			
+			$(ele).data('e',v_ele); 
+			$(ele).width(options.width).height(options.height).addClass(options.styleSlideshow + ' slideshow').append($('<div />').addClass('slidecontent').append($('<div />').addClass('contener_slideshow').append($('<ul />'))).append($('<div/>').addClass('control_slideshow')));
+			
+			
+			
+	/*		$(window).load(function(){
+				$(ele).removeClass('slideloader');
+				$('.slidecontent', ele).animate({
+					opacity: 1
+				},400);
+			});*/
+			
+			//mise en place des images
+			$(document).ready(function(){
+				$.each(options.imgs, function(i, img){
+					var imag		= img.image,
+						alt 		= img.alt,
+						title		= img.title,
+						url 		= img.url,
+						descr		= img.descr;
+						
+					if(typeof descr === 'undefined'){	
+						var divDescr	= ""
+					}else{
+						var	divDescr	=[$('<div />').addClass('descr').html(descr)]
+					};
+					
+					if(typeof url === 'undefined'){
+						var blockImg = [$('<div />').append(divDescr).append($('<img />').attr({'src':imag , 'alt':alt , 'title':title }))]
+					}else{
+						var	blockImg	=[$('<a />').attr({'href':url , 'target':options.target}).append(divDescr).append($('<img />').attr({'src':imag , 'alt':alt , 'title':title }))]
+					}
+					
+					$('ul',ele).height(cont_h);
+					$('ul',ele).append($('<li />').addClass('img-' + i).append($('<div />').addClass('contenerImg').width(options.width).height(cont_h).append(blockImg)))
+				})
+
+		//resize and center image_____________________________________________________________________________________________________
+				$('.contenerImg',ele).each(function(){
+					var img			= $(this).find('img'),
+						img_w 		= $(this).find('img').width(),
+						img_h 		= $(this).find('img').height(),
+						img_r 		= img_h/img_w,
+						box_h 		= $(this).height(),
+						box_w 		= $(this).width(),
+						box_r 		= box_h/box_w,
+						new_h,
+						new_w;
+					
+					if((img_h > box_h) || (img_w > box_w)){
+						if(box_r < img_r){
+							new_h 	= box_h - 30;
+							new_w 	= box_h / img_r
+						}else{
+							new_h 	= (box_w * img_r) - 30;
+							new_w 	= box_w
+						};
+						img.css({
+							width	: new_w + 'px',
+							height	: new_h + 'px'
+						})
+					}else{
+						new_h 	= img_h;
+						new_w	= img_w;
+					};
+					var left	= ($(ele).data('e').s_w / 2)-(new_w / 2) + 'px',
+						top		= (box_h / 2)-(new_h / 2) + 'px',
+						descr	= $(this).find('.descr');
+					img.css({
+						left	: left,
+						top		: top,
+					});
+					descr.css(
+						{
+						left	: left,
+						width	: new_w + 'px',
+						height	: new_h/4,
+						bottom	: ((box_h / 2)-(new_h / 2)) + 'px',
+					})
+				});
+				
+//slide_____________________________________________________________________________________________
+				if(options.styleSlideshow == 'Slide'){
+					var ul_w = (options.imgs.length + 1) * options.width;
+					$('ul', ele).wrap($('<div />').addClass('slideCont')).width(ul_w);
+					$('ul', ele).prepend($('ul li:last-child', ele).clone().css('margin-left','-'+ options.width +'px')); 
+					$('ul', ele).append($('ul li:nth-child(2)', ele).clone()); 
+					$('li:nth-child(2)',ele).addClass('activ');		
+				};
+				
+//fade___________________________________________________________________________________________________________
+				if(options.styleSlideshow == 'Fade'){
+					$('li' ,ele).css('display','none')
+					$('li',ele).first().show().addClass('activ')
+				};
+			
+//bouton play/pause________________________________________________________________________________________________________________________
+			if(options.displayPlayPause == true){
+				$('.control_slideshow', ele).append($('<div />').addClass('slideshow_control'))
+			};
+
+//auto démarage____________________________________________________________________________________________________________
+				if(options.autoPlay == true){
+						_start(ele)
+					$('.slideshow_control',ele).addClass('pause');
+					$(ele).data('e').playOn = true;
+					_navShow(ele)
+				}else{
+					$('.slideshow_control',ele).addClass('play');
+					_pause(ele);
+					$(ele).data('e').playOn = false;
+				}
+				
+			});	
+			
+
+//lien/thumb de navigation__________________________________________________________________________________________________________________________
+			if(options.navType == 'nav' || options.navType == 'thumb'){
+				$('.control_slideshow', ele).append($('<div />').addClass('clt_thumb')).append($('<div/>').addClass('link'));
+				if(options.navType == 'nav'){
+					$('.clt_thumb', ele).hide();
+					for(	var i = 0;
+							i < options.imgs.length; 
+							i++){
+						$('.link', ele).append($('<span />').attr({'id':i,'class':'slideshow-' + i + ' nav-link slideshow-link','imag':i}).html(i+1));
+						$('.nav-link',ele).first().addClass('selected');
+					}
+				};
+				
+				if(options.navType == 'thumb'){
+					if(options.thumb_always == false){
+						$('.link', ele).hide();
+					}else{
+						$('.clt_thumb', ele).hide()
+					};
+					var resize_thumb_w 		= ((options.width-(n_thumb * 6))/n_thumb),
+						r 					= options.thumb_width/options.thumb_height,
+						rezise_thumb_h		= resize_thumb_w / r,
+						navThumb_w			= options.imgs.length * (resize_thumb_w + 6);
+					$(ele).data('e').navThumb_w	= navThumb_w;
+					$('.link', ele).width(options.width).height(options.thumb_height + 10);
+					$('.link', ele).append($('<div />').addClass('nav-thumb-content').height(rezise_thumb_h + 10).width(navThumb_w));
+					$.each(options.imgs, function(i, img){
+						var imag	= img.image;
+						$('.nav-thumb-content', ele).append($('<span />').addClass('slideshow-' + i + ' nav-link slideshow-thumb').attr('imag', i).width(resize_thumb_w).height(rezise_thumb_h).append($('<img />').attr({'class':'thumb','src':imag})));
+					});
+					if(navThumb_w > options.width){
+						$('.nav-thumb-content', ele).wrap($('<div />').addClass('nav-thumb-slide').width( options.width));
+						$('.link', ele).append($('<div />').addClass('thumb_control thumb-left')).append($('<div />').addClass('thumb_control thumb-right'));
+					}
+				}
+			};
+			
+//flèche next/previous_______________________________________________________________________________________________________________________
+			if(options.displayNextPrev == true){
+				$('.contener_slideshow', ele).append($('<div />').addClass('nav prev').height(cont_h)).append($('<div />').addClass('nav next').height(cont_h));
+			};
+	
+//________________________________________action___________________________________________________________________________________________________________
+			
+//click flèche de navigation___________________________________________________________________________________________________________________________
+			$('.next', ele).on('click', function(){
+				_rotate(ele);
+				_thumbSlide(ele)
+			});
+			
+			$('.prev',ele).on('click', function()	{
+				if($(ele).data('e').i_img == 0){
+					$(ele).data('e').i_img = options.imgs.length - 2
+				}else{
+					$(ele).data('e').i_img = $(ele).data('e').i_img - 2
+				};
+				if(options.styleSlideshow == 'Fade'){
+					_rotate(ele);
+					_thumbSlide(ele)
+				}else{
+					$(ele).data('e').m_s = $(ele).data('e').m_s + (2 * options.width);
+					_rotate(ele);
+					_thumbSlide(ele)
+				}
+			});
+
+//click sur un lien/thumb_________________________________________________________________________________________________________________________________
+			$('.nav-link',ele).on('click', function(){
+				$(ele).data('e').playOnT = $(ele).data('e').playOn;
+				if($(ele).data('e').playOn == true){
+					$(ele).data('e').playOn = false;
+					_pause(ele);
+				}		
+				var new_i_img 	= parseInt($(this).attr('imag')),
+					r;
+					r 	= new_i_img - ($(ele).data('e').i_img + 1)
+				$(ele).data('e').m_s 	= $(ele).data('e').m_s - (r * options.width);
+				$(ele).data('e').i_img 	= new_i_img - 1;
+				_rotate(ele);
+				if ($(ele).data('e').playOnT == true){
+					$(ele).data('e').playOn = true;
+					_start(ele)
+				}
+			});
+
+//ouvrir les thumb______________________________________________________________________________________________________________________________________________
+			$('.clt_thumb',ele).on('click', function(){
+				$(this).toggleClass('show');
+				$('.link', ele).slideToggle('slow');
+			});
+			
+//bouton play/pause_____________________________________________________________________________________________________________________________________________
+			$('.slideshow_control', ele).on('click',function() {
+				$(this).toggleClass('play pause');
+				if (($(ele).data('e').playOn) == true){
+					$(ele).data('e').playOn = false;
+					_pause(ele)
+				}else{
+					$(ele).data('e').playOn = true;
+					_start(ele)
+				}
+			});
+			
+//mouse over_______________________________________________________________________________________________________________________________________________
+		$('.contener_slideshow', ele).hover(function() {
+		$(ele).data('e').playOnT = $(ele).data('e').playOn;
+			if($(ele).data('e').playOn == true){
+				$(ele).data('e').playOn = false;
+				_pause(ele);
+			}
+			$(this).find('.descr').slideDown(200, function() {
+				$(this).clearQueue();
+			});	
+		}, function() {
+				if ($(ele).data('e').playOnT == true){
+					$(ele).data('e').playOn = true;
+					_start(ele)
+				}
+				$(this).find('.descr').slideUp(200, function() {
+					$(this).clearQueue();
+				});
+		});		
+//nav thumb________________________________________________________________________________________________________________________________________________
+			$('.thumb-right',ele).on('mousedown',function(){
+				$('.nav-thumb-content', ele).animate({
+					left: (-($(ele).data('e').navThumb_w -  options.width))
+				}, 1000)
+			}).mouseup(function(){
+				$('.nav-thumb-content', ele).stop()
+			});
+			
+			$('.thumb-left',ele).on('mousedown',function(){
+				$('.nav-thumb-content', ele).animate({
+					left:0 
+				}, 1000)
+			}).mouseup(function(){
+				$('.nav-thumb-content', ele).stop()
+			});
+
+//___________________________________________Fonctions_____________________________________________________________________________________
+//animation________________________________________________________________________________________________________________________________			
+			function _rotate(ele) {	
+				var style = $(ele).data('e').style;
+				if(style == 'Fade'){
+				_fade(ele)
+				}else{
+				_slide(ele)
+				}
+			};
+			
+//start animation______________________________________________________________________________________________________________________________			
+			function _start(ele) {
+				$(ele).data('e').interval = setTimeout(function(){
+					if($(ele).data('e').playOn == false){
+						_navShow(ele);
+					};
+					_rotate(ele);
+					_start(ele)
+				},$(ele).data('e').speed)
+			};
+
+//fade animation_____________________________________________________________________________________________________________________________		
+			function _fade(ele) {
+				if($(ele).data('e').i_img == ($(ele).data('e').imgsLength - 1)){
+					$(ele).data('e').i_img = -1
+				};
+				$('.activ',ele).removeClass('activ').fadeOut(1000);
+				$('.selected',ele).removeClass('selected');
+				$('.img-' + ($(ele).data('e').i_img + 1), ele).fadeIn(1500).addClass('activ');
+				$('.slideshow-' + ($(ele).data('e').i_img + 1), ele).addClass('selected');
+				$(ele).data('e').i_img++;
+				if(($(ele).data('e').playOn) == false){
+					_navShow(ele)
+				}else{
+					_thumbSlide(ele)
+				};
+			};
+
+//slide animation_____________________________________________________________________________________________________________________________			
+			function _slide(ele) {
+				if($(ele).data('e').i_img == $(ele).data('e').imgsLength - 1){
+					$(ele).data('e').i_img = -1
+				}
+				$(ele).data('e').m_s = $(ele).data('e').m_s - $(ele).data('e').s_w;
+				$('.slideCont ul',ele).animate({
+					marginLeft: $(ele).data('e').m_s
+				}, 800, function(){
+					$('.activ',ele).removeClass('activ');
+					$('.selected',ele).removeClass('selected');
+					$('.img-' + ($(ele).data('e').i_img + 1), ele).addClass('activ');
+					$('.slideshow-' + ($(ele).data('e').i_img + 1),ele).addClass('selected');
+					$(ele).data('e').i_img++;
+					if ($(ele).data('e').i_img ==  0 ){
+						$('.slideCont ul',ele).css('margin-left','0px');
+						$(ele).data('e').m_s = 0
+					};
+					if(($(ele).data('e').playOn) == false){
+						_navShow(ele)
+					}else{
+						_thumbSlide(ele)
+					};
+				})
+			};
+
+
+//stop animation______________________________________________________________________________________________________________________________			
+			function _pause(ele) {
+				clearTimeout($(ele).data('e').interval );
+				_navShow(ele)
+			};
+//navigation___________________________________________________________________________________________________________________________________			
+			function _navShow(ele) {
+				$('.thumb_control',ele).each(function(){
+					if($(ele).data('e').playOn == true){
+						$(this).hide()
+					}else{
+						$(this).show()
+					}
+				});
+				$('.nav',ele).each(function(){
+					if($(ele).data('e').playOn == true){
+						$(this).hide()
+					}else{
+						if($(ele).data('e').i_img == 0){
+							$('.prev',ele).hide();
+							$('.next',ele).show()
+						}else if($(ele).data('e').i_img == $(ele).data('e').imgsLength - 1){
+							$('.next',ele).hide();
+							$('.prev',ele).show()
+						}else{
+							$(this).show()
+						}
+					}
+				})
+			};
+//thumb slide_________________________________________________________________________________________________________________________________________
+			function _thumbSlide(ele) {
+				if(options.navType == 'thumb'){
+					var a = ($(ele).data('e').i_img)/$(ele).data('e').n_thumb;
+					if(a < 0){
+						a = 0
+					}
+					$(ele).data('e').thumb_i = Math.floor(a);
+					var m_r = ( $(ele).data('e').thumb_i)* $(ele).data('e').s_w;
+					if ( m_r > $('.nav-thumb-content', ele).width() - $('.nav-thumb-slide', ele).width()){
+						m_r = $('.nav-thumb-content', ele).width() - $('.nav-thumb-slide', ele).width();
+					};
+					var n_p = $('.nav-thumb-content', ele).position();
+					if ( n_p.left != m_r){
+						$('.nav-thumb-content', ele).animate({
+								left : - m_r
+						})
+					}
+				}
+			};
+			return $(this)
+		});
+	}
+})(jQuery);
Index: /extensions/Slide/local_head.tpl
===================================================================
--- /extensions/Slide/local_head.tpl	(revision 26888)
+++ /extensions/Slide/local_head.tpl	(revision 26889)
@@ -1,14 +1,17 @@
-{combine_script id='hoverIntent' load='header' require='jquery' path='themes/Slide/js/jquery.hoverIntent.minified.js'}
-{combine_script id='columnizer' load='header' require='jquery' path='themes/Slide/js/columnizer.min.js'}
+{combine_script id='hoverIntent' load='footer' require='jquery' path='themes/Slide/js/jquery.hoverIntent.js'}
+{combine_script id='columnizer' load='footer' require='jquery' path='themes/Slide/js/jquery.columnizer.js'}
+{combine_script id='menu' load='footer' require='jquery' path='themes/Slide/js/menu.js'}
 
-{combine_script id='slide' load='header' require='jquery' path='themes/Slide/js/slide.js'}
-{combine_script id='pageslide' load='footer' require='jquery' path='themes/Slide/js/jquery.pageslide.min.js'}
+{if not empty($pluginActive)}{foreach from=$pluginActive item=foo}{if $foo == 'GThumb'}{combine_script id='slideGT' load='footer' require='jquery' path='themes/Slide/js/plugin/SlideGThumb.js'}{/if}{/foreach}{/if}
+{if not empty($pluginActive)}{foreach from=$pluginActive item=foo}{if $foo == 'lightbox'}{combine_script id='slideLB' load='footer' require='jquery' path='themes/Slide/js/plugin/SlideLightbox.js'}{/if}{/foreach}{/if}
+{if not empty($pluginActive)}{foreach from=$pluginActive item=foo}{if $foo == 'EasyCaptcha'}{combine_script id='slideEC' load='footer' require='jquery' path='themes/Slide/js/plugin/SlideEasyCaptcha.js'}{/if}{/foreach}{/if}
+
+{combine_script id='slide' load='footer' require='jquery' path='themes/Slide/js/slide.js'}
+
+{combine_script id='mousewheel' load='footer' require='jquery' path='themes/Slide/js/jquery.mousewheel.min.js'}
 {combine_script id='scrollpane' load='footer' require='jquery' path='themes/Slide/js/jquery.jscrollpane.min.js'}
-{combine_script id='mousewheel' load='footer' require='jquery' path='themes/Slide/js/jquery.mousewheel.min.js'}
 
 <link href='http://fonts.googleapis.com/css?family=Tenor+Sans' rel='stylesheet' type='text/css'>
 
-	<!--[if lte IE 8]>
-		<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/Slide/fix-ie8.css">
-	<![endif]-->
 
+
Index: /extensions/Slide/template/comment_list.tpl
===================================================================
--- /extensions/Slide/template/comment_list.tpl	(revision 26889)
+++ /extensions/Slide/template/comment_list.tpl	(revision 26889)
@@ -0,0 +1,79 @@
+{if isset($comment_derivative_params)}
+{strip}{html_style}
+.commentElement .illustration{ldelim}
+	width: {$comment_derivative_params->max_width()+5}px
+}
+
+.content .commentElement .description{ldelim}
+	min-height: {$comment_derivative_params->max_height()+5}px
+}
+{/html_style}{/strip}
+{/if}
+<ul class="commentsList">
+{foreach from=$comments item=comment name=comment_loop}
+<li class="commentElement {if $smarty.foreach.comment_loop.index is odd}odd{else}even{/if}">
+	{if isset($comment.src_image)}
+	{if isset($comment_derivative_params)}
+	{assign var=derivative value=$pwg->derivative($comment_derivative_params, $comment.src_image)}
+	{else}
+	{assign var=derivative value=$pwg->derivative($derivative_params, $comment.src_image)}
+	{/if}
+	{if !$derivative->is_cached()}
+	{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'}
+	{/if}
+	<div class="illustration">
+		<a href="{$comment.U_PICTURE}">
+		<img {if $derivative->is_cached()}src="{$derivative->get_url()}"{else}src="{$ROOT_URL}{$themeconf.img_dir}/ajax-loader-small.gif" data-src="{$derivative->get_url()}"{/if} alt="{$comment.ALT}">
+		</a>
+	</div>
+	{/if}
+	<div class="description">
+		{if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) or isset($comment.U_EDIT)}
+		<div class="actions" style="float:right;font-size:90%">
+		{if isset($comment.U_DELETE)}
+			<a class="delet" href="{$comment.U_DELETE}" confirm="{'Are you sure?'|@translate|@escape:javascript}">
+				{'Delete'|@translate}
+			</a>{if isset($comment.U_VALIDATE) or isset($comment.U_EDIT) or isset($comment.U_CANCEL)} | {/if}
+		{/if}
+		{if isset($comment.U_CANCEL)}
+			<a class="annul" href="{$comment.U_CANCEL}">
+				{'Cancel'|@translate}
+			</a>{if isset($comment.U_VALIDATE)} | {/if}
+		{/if}
+		{if isset($comment.U_EDIT) and !isset($comment.IN_EDIT)}
+			<a class="editComment" href="{$comment.U_EDIT}#edit_comment">
+				{'Edit'|@translate}
+			</a>{if isset($comment.U_VALIDATE)} | {/if}
+		{/if}
+		{if isset($comment.U_VALIDATE)}
+			<a href="{$comment.U_VALIDATE}">
+				{'Validate'|@translate}
+			</a>
+		{/if}&nbsp;
+		</div>
+		{/if}
+
+		<span class="commentAuthor">{if $comment.WEBSITE_URL}<a href="{$comment.WEBSITE_URL}" class="external" target="_blank" rel="nofollow">{$comment.AUTHOR}</a>{else}{$comment.AUTHOR}{/if}</span>
+			{if $comment.EMAIL}- <a href="mailto:{$comment.EMAIL}">{$comment.EMAIL}</a>{/if}
+			- <span class="commentDate">{$comment.DATE}</span>
+		{if isset($comment.IN_EDIT)}
+		<a name="edit_comment"></a>
+		<form method="post" action="{$comment.U_EDIT}" id="editComment">
+			<p><label for="contenteditid">{'Edit a comment'|@translate} :</label></p>
+			<p><textarea name="content" id="contenteditid" rows="5" cols="80">{$comment.CONTENT|@escape}</textarea></p>
+			<p><label for="website_url">{'Website'|@translate} :</label></p>
+			<p><input type="text" name="website_url" id="website_url" value="{$comment.WEBSITE_URL}" size="40"></p>
+			<p><input type="hidden" name="key" value="{$comment.KEY}">
+				<input type="hidden" name="pwg_token" value="{$comment.PWG_TOKEN}">
+				<input type="hidden" name="image_id" value="{$comment.IMAGE_ID|@default:$current.id}">
+				<input type="submit" value="{'Submit'|@translate}">
+			</p>
+		</form>
+		{else}
+		<blockquote><div>{$comment.CONTENT}</div></blockquote>
+		{/if}
+	</div>
+</li>
+{/foreach}
+</ul>
Index: /extensions/Slide/template/index.tpl
===================================================================
--- /extensions/Slide/template/index.tpl	(revision 26889)
+++ /extensions/Slide/template/index.tpl	(revision 26889)
@@ -0,0 +1,170 @@
+{$MENUBAR}
+
+{if isset($errors) or isset($infos)}
+<div class="content messages{if isset($MENUBAR)} contentWithMenu{/if}">
+{include file='infos_errors.tpl'}
+</div>
+{/if}
+
+{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"></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"></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 id="cmdFavorite"><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"></span><span class="pwg-button-text">{'delete all photos from your favorites'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_CADDIE)}
+		<li id="cmdCaddie"><a href="{$U_CADDIE}" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-caddie-add"></span><span class="pwg-button-text">{'Caddie'|@translate}</span>
+		</a></li>
+{/if}
+{if isset($U_EDIT)}
+		<li id="cmdEditAlbum"><a href="{$U_EDIT}" title="{'Edit album'|@translate}" class="pwg-state-default pwg-button">
+			<span class="pwg-icon pwg-icon-category-edit"></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"></span><span class="pwg-button-text">(?)</span>
+		</a></li>
+{/if}
+{if isset($U_SLIDESHOW)}
+		<li id="cmdSlideshow">{strip}<a href="{$U_SLIDESHOW}" 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>{/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"></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"></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"></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"></span><span class="pwg-button-text">{'Calendar'|@translate}</span>
+		</a>{/strip}</li>
+{/if}
+{if !empty($PLUGIN_INDEX_BUTTONS)}{foreach from=$PLUGIN_INDEX_BUTTONS item=button}<li>{$button}</li>{/foreach}{/if}
+{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
+	</ul>
+
+<h2>{$TITLE}</h2>
+
+{if isset($chronology_views)}
+<div class="calendarViews">{'View'|@translate}:
+	<a id="calendarViewSwitchLink" href="#">
+	{foreach from=$chronology_views item=view}{if $view.SELECTED}{$view.CONTENT}{/if}{/foreach}
+	</a> 
+	<div id="calendarViewSwitchBox" class="switchBox">
+		{foreach from=$chronology_views item=view name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
+		<span{if !$view.SELECTED} style="visibility:hidden"{/if}>&#x2714; </span><a href="{$view.VALUE}">{$view.CONTENT}</a>
+		{/foreach}
+	</div>
+</div>
+{/if}
+
+{if isset($chronology.TITLE)}
+<h2 class="calendarTitle">{$chronology.TITLE}</h2>
+{/if}
+
+</div>{* <!-- titrePage --> *}
+
+{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
+
+{if !empty($category_search_results)}
+<div class="category_search_results">{'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 class="tag_search_results">{'Tag results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
+	<em><strong>
+	{foreach from=$tag_search_results item=tag name=res_loop}
+	{if !$smarty.foreach.res_loop.first} &mdash; {/if} <a href="{$tag.URL}">{$tag.name}</a>
+	{/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($CONTENT)}{$CONTENT}{/if}
+{if !empty($CATEGORIES)}{$CATEGORIES}{/if}
+{if !empty($cats_navbar)}
+	{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$cats_navbar}
+{/if}
+
+{if !empty($THUMBNAILS)}
+<div class="loader"><img src="{$ROOT_URL}{$themeconf.img_dir}/ajax_loader.gif"></div>
+<ul class="thumbnails" id="thumbnails">
+  {$THUMBNAILS}
+ </ul>
+{/if}
+{if !empty($thumb_navbar)}
+	{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$thumb_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/Slide/template/picture.tpl
===================================================================
--- /extensions/Slide/template/picture.tpl	(revision 26889)
+++ /extensions/Slide/template/picture.tpl	(revision 26889)
@@ -0,0 +1,316 @@
+{* 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) or not empty($infos)}
+{include file='infos_errors.tpl'}
+{/if}
+{if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if}
+
+<div id="imageHeaderBar">
+	<div class="browsePath">
+		{$SECTION_TITLE}<span class="browsePathSeparator">{$LEVEL_SEPARATOR}</span><h2>{$current.TITLE}</h2>
+	</div>
+</div>
+
+<div id="imageToolBar">
+<div class="imageNumber">{$PHOTO}</div>
+{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
+<div class="actionButtons">
+{if isset($current.unique_derivatives) && count($current.unique_derivatives)>1}
+
+{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>
+  <span href="" class="derivative" data-typesave="{$derivative_type}"  data-url="{$derivative->get_url()}" data-typemap="{$derivative->get_type()} " data-cookie="{$COOKIE_PATH}">{$derivative->get_type()|@translate}<span class="derivativeSizeDetails"> ({$derivative->get_size_hr()})</span>
+  </span><br>
+  {/foreach}
+  {if isset($U_ORIGINAL)}
+    {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+  <span class="original" href="" rel="nofollow" data-url="{$U_ORIGINAL}" data-winname="xxx" data-features="scrollbars=yes,toolbar=no,status=no,resizable=yes">{'Original'|@translate}</span>
+  {/if}
+</div>
+{/strip}
+{/if}
+{strip}{if isset($U_SLIDESHOW_START)}
+	<a href="{$U_SLIDESHOW_START}" title="{'slideshow'|@translate}" class="sameLayer 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 sameLayer" 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 sameLayer" 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 sameLayer" 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 -->*}
+
+<div id="theImageAndInfos">
+<div id="theImage">
+{$ELEMENT_CONTENT}
+
+{if isset($COMMENT_IMG)}
+<p class="imageComment">{$COMMENT_IMG}</p>
+{/if}
+{if isset($U_SLIDESHOW_STOP)}
+<p>
+	[ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
+</p>
+{/if}
+
+</div>{*<!-- no significant white space for elegant-->
+*}<div id="infoSwitcher"></div>{*<!-- no significant white space for elegant-->
+*}<div id="imageInfos">
+{if $DISPLAY_NAV_THUMB}
+	<div class="navThumbs">
+		{if isset($previous)}
+			<a class="navThumb sameLayer" id="linkPrev" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" rel="prev">
+				<span class="thumbHover prevThumbHover"></span>
+				<img src="{$previous.derivatives.square->get_url()}" alt="{$previous.TITLE}">
+			</a>
+		{/if}
+		{if isset($next)}
+			<a class="navThumb sameLayer" id="linkNext" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" rel="next">
+				<span class="thumbHover nextThumbHover"></span>
+				<img src="{$next.derivatives.square->get_url()}" alt="{$next.TITLE}">
+			</a>
+		{/if}
+	</div>
+{/if}
+
+
+<dl id="standard" class="imageInfoTable">
+{strip}
+	{if $display_info.author and isset($INFO_AUTHOR)}
+	<div id="Author" class="imageInfo">
+		<dt>{'Author'|@translate}</dt>
+		<dd>{$INFO_AUTHOR}</dd>
+	</div>
+	{/if}
+	{if $display_info.created_on and isset($INFO_CREATION_DATE)}
+	<div id="datecreate" class="imageInfo">
+		<dt>{'Created on'|@translate}</dt>
+		<dd>{$INFO_CREATION_DATE}</dd>
+	</div>
+	{/if}
+	{if $display_info.posted_on}
+	<div id="datepost" class="imageInfo">
+		<dt>{'Posted on'|@translate}</dt>
+		<dd>{$INFO_POSTED_DATE}</dd>
+	</div>
+	{/if}
+	{if $display_info.dimensions and isset($INFO_DIMENSIONS)}
+	<div id="Dimensions" class="imageInfo">
+		<dt>{'Dimensions'|@translate}</dt>
+		<dd>{$INFO_DIMENSIONS}</dd>
+	</div>
+	{/if}
+	{if $display_info.file}
+	<div id="File" class="imageInfo">
+		<dt>{'File'|@translate}</dt>
+		<dd>{$INFO_FILE}</dd>
+	</div>
+	{/if}
+	{if $display_info.filesize and isset($INFO_FILESIZE)}
+	<div id="Filesize" class="imageInfo">
+		<dt>{'Filesize'|@translate}</dt>
+		<dd>{$INFO_FILESIZE}</dd>
+	</div>
+	{/if}
+	{if $display_info.tags and isset($related_tags)}
+	<div id="Tags" class="imageInfo">
+		<dt>{'Tags'|@translate}</dt>
+		<dd>
+		{foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}<a href="{$tag.URL}">{$tag.name}</a>{/foreach}
+		</dd>
+	</div>
+	{/if}
+	{if $display_info.categories and isset($related_categories)}
+	<div id="Categories" class="imageInfo ">
+		<dt>{'Albums'|@translate}</dt>
+		<dd>
+			<ul>
+				{foreach from=$related_categories item=cat}
+				<li class="related_categories">{$cat}</li>
+				{/foreach}
+			</ul>
+		</dd>
+	</div>
+	{/if}
+	{if $display_info.visits}
+	<div id="Visits" class="imageInfo">
+		<dt>{'Visits'|@translate}</dt>
+		<dd>{$INFO_VISITS}</dd>
+	</div>
+	{/if}
+
+{if $display_info.rating_score and isset($rate_summary)}
+	<div id="Average" class="imageInfo">
+		<dt>{'Rating score'|@translate}</dt>
+		<dd>
+		{if $rate_summary.count}
+                  {if $rate_summary.count == 1}
+                    {assign var='rate_text' value='%d rate'|@translate}
+                  {else}
+                    {assign var='rate_text' value='%d rates'|@translate}
+                  {/if}
+			<span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$pwg->sprintf($rate_text, $rate_summary.count)})</span>
+		{else}
+			<span id="ratingScore">{'no rate'|@translate}</span> <span id="ratingCount"></span>
+		{/if}
+		</dd>
+	</div>
+{/if}
+
+{if isset($rating)}
+	<div id="rating" class="imageInfo">
+		<dt>
+			<span id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</span>
+		</dt>
+		<dd>
+			<form action="{$rating.F_ACTION}" method="post" id="rateForm" >
+			{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="rateButton rateButtonSelected" title="{$mark}">
+			{else}
+				<input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}">
+			{/if}
+			{/foreach}
+			</form>
+		</dd>
+	</div>
+{/if}
+
+{if $display_info.privacy_level and isset($available_permission_levels)}
+	<div id="Privacy" class="imageInfoPri"><div class="relSwitchBox">
+		<dt><span class="noSlide" id="privacyLevelLink">{'Who can see this photo?'|@translate}</span></dt>
+		<dd>
+{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
+
+			<div id="privacyLevelBox" class="switchBox" style="display:none" >
+				{foreach from=$available_permission_levels item=label key=level}
+					<span id="levelCheck{$level}" class="switchCheck" {if $level != $current.level} style="display:none"{/if}>&#x2714; </span>
+					<span id="switchLevel{$level}" , {$current.id}, {$level})" class="noSlide privacy" data-root="{$ROOT_URL}" data-id="{$current.id}" data-level="{$level}" >{$label}</span><br>
+				{/foreach}
+			</div>
+
+		</dd>
+	</div></div>
+{/if}
+{/strip}
+</dl>
+
+{if isset($metadata)}
+<dl id="Metadata" class="imageInfoTable">
+{foreach from=$metadata item=meta}
+	<h3>{$meta.TITLE}</h3>
+	{foreach from=$meta.lines item=value key=label}
+		<div class="imageInfo">
+			<dt>{$label}</dt>
+			<dd>{$value}</dd>
+		</div>
+	{/foreach}
+{/foreach}
+</dl>
+{/if}
+</div>
+</div>
+
+{if isset($COMMENT_COUNT)}
+<div id="comContent">
+<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" {if isset ($slideEasyCaptcha)}data-now={$smarty.now}{/if}>
+			<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}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p>
+					<p><input type="text" name="author" id="author" value="{$comment_add.AUTHOR}"></p>
+				{/if}
+				{if $comment_add.SHOW_EMAIL}
+					<p><label for="email">{'Email'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p>
+					<p><input type="text" name="email" id="email" value="{$comment_add.EMAIL}"></p>
+				{/if}
+				<p><label for="website_url">{'Website'|@translate} :</label></p>
+				<p><input type="text" name="website_url" id="website_url" value="{$comment_add.WEBSITE_URL}"></p>
+				<p><label for="contentid">{'Comment'|@translate} ({'mandatory'|@translate}) :</label></p>
+				<p><textarea name="content" id="contentid" rows="5" cols="50">{$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>
+</div>
+{/if}{*comments*}
+
+{if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if}
+
+</div>
Index: /extensions/Slide/template/picture_content.tpl
===================================================================
--- /extensions/Slide/template/picture_content.tpl	(revision 26889)
+++ /extensions/Slide/template/picture_content.tpl	(revision 26889)
@@ -0,0 +1,15 @@
+<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}">
+
+		<div id="imgHoverNav">
+		{if isset($previous)}
+		<a id="imgPrevHov" class=" noSlide sameLayer" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" alt="{$previous.TITLE}">
+		</a>
+		{/if}
+
+		{if isset($next)}
+		<a id="imgNextHov" class="noSlide sameLayer" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" alt="{$next.TITLE}">
+		</a>
+		{/if}
+	</div>
+</div>
Index: /extensions/Slide/template/picture_nav_buttons.tpl
===================================================================
--- /extensions/Slide/template/picture_nav_buttons.tpl	(revision 26889)
+++ /extensions/Slide/template/picture_nav_buttons.tpl	(revision 26889)
@@ -0,0 +1,121 @@
+<div class="navigationButtons">
+{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 slshFirst">
+		<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($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($previous)}
+	<a href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE|@escape}" 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($next)}
+	<a href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE|@escape}" 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>
+{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/Slide/theme.css
===================================================================
--- /extensions/Slide/theme.css	(revision 26888)
+++ /extensions/Slide/theme.css	(revision 26889)
@@ -123,10 +123,13 @@
 }
 .headbord {
-    border-bottom:              1px solid rgb(51, 51, 51);
+    border-bottom:              1px solid #808080;
 }
 #imageHeaderBar {
     margin-bottom:              10px;
     padding-left:               15px;
-}
+	border:						none;
+	background:					none;
+}
+
 /*_______________________________menu______________________________________*/
 #menubar {
@@ -152,5 +155,31 @@
     list-style:                 none outside none;
     margin:                     0px;
-}
+	padding:					0px 0px 0px 5px
+}
+#topnav {
+    padding:                    0px 2px 0px 0px;
+    height:                     30px;
+    position:                   relative;
+    z-index:                    999;
+    display:                    inline-block;
+}
+#topnav .liSub {
+	height:						30px;
+    float:                      left;
+    position:                   relative;
+    padding-right:              2px;
+}
+#topnav .sub, #loger {
+    position:                   absolute;
+    top:                        30px;
+    margin-left:                0px;
+    background:                 none repeat scroll 0% 0% rgb(121, 121, 121);
+    padding:                    5px 8px 10px 5px;
+    float:                      left;
+    max-width:                  100em;
+    min-width:                  200px;
+    max-height:                 500px;
+}
+
 .dd_wrapper, .cl_wrapper, .cc_wrapper, #menubar dt, #menubar dt a {
     float:                      left;
@@ -160,70 +189,14 @@
     line-height:                21px;
     text-decoration:            none;
-    color:                      rgb(179, 179, 179);
     font-size:                  16px;
 }
-.dd_wrapper:hover, .cl_wrapper:hover, .cc_wrapper:hover, .activate {
-    z-index:                    100;
-    padding:                    3px 16px 6px;
-    text-shadow:                none;
-    cursor:                     default;
-    background:                 none repeat scroll 0px 0px rgb(228, 228, 228);
-}
-#menubar dt a, #menubar dt a:hover {
-    z-index:                    100;
-    padding:                    0px;
-    text-shadow:                none;
-    cursor:                     default;
-}
-span#menu_start {
-    width:                      85px;
-    float:                      left;
-    display:                    block;
-    height:                     30px;
-}
-span#menu_start a {
-    background:                 url("images/menu/home_w.png") no-repeat scroll left top transparent;
-    width:                      52px;
-    height:                     30px;
-    padding:                    0px;
-    margin:                     0px 20px 0px 25px;
-    display:                    block;
-    line-height:                46px;
-}
-span#menu_start a:hover {
-    background-position:        left -30px;
-}
-span#menu_start a:active {
-    background-position:        left -60px;
-}
-#topnav {
-    margin:                     0px;
-    padding:                    0px 2px 0px 0px;
-    list-style:                 none outside none;
-    height:                     30px;
-    position:                   relative;
-    z-index:                    999;
-    display:                    inline-block;
-}
-#topnav .liSub {
-    float:                      left;
-    position:                   relative;
-    padding-right:              2px;
-}
-#topnav .sub, #topnav #loger {
-    position:                   absolute;
-    top:                        30px;
-    margin-left:                0px;
-    background:                 none repeat scroll 0% 0% rgb(121, 121, 121);
-    padding:                    5px 8px 10px 5px;
-    float:                      left;
-    max-width:                  100em;
-    min-width:                  200px;
-    display:                    none;
-    max-height:                 500px;
-}
-#topnav #loger {
-    z-index:                    50;
-}
+.activate{
+	cursor:						default;
+    background:                 none repeat scroll 0px 0px rgb(121, 121, 121);
+}
+.activate:first-child{
+	color:						#dddddd!important;
+}
+
 .sub {
     z-index:                    100;
@@ -236,11 +209,19 @@
     text-transform:             none;
 }
-.sub a {
+.sub a,  #loger a {
     color:                      rgb(179, 179, 179);
-}
-.sub a:hover {
-    color:                      rgb(179, 179, 179);
-}
-ul#topnav .sub ul li, ul#topnav #loger ul li, ul#topnav .sub #menuTagCloud div {
+    font-size:                  1.4em;
+    line-height:                17px;
+    padding:                    0px 0px 0px 15px;
+}
+
+.sub a:hover,loger a:hover {
+    color:                      rgb(196, 196, 196);
+    background:                 url("images/menu/navlist_arrow_hover.png") no-repeat scroll 4px 5px transparent;
+}
+.sub .selected a {
+    background:                 url("images/menu/navlist_arrow_select.png") no-repeat scroll 4px 5px transparent;
+}
+.sub ul li,  #loger ul li, .sub #menuTagCloud div {
     width:                      95%;
     color:                      rgb(179, 179, 179);
@@ -253,38 +234,5 @@
     -webkit-border-radius:      10px 10px 10px 10px;
 }
-ul#topnav .sub ul li a, ul#topnav #loger ul li a {
-    float:                      none;
-    text-indent:                0px;
-    height:                     auto;
-    margin:                     0px 8px;
-    display:                    block;
-    text-decoration:            none;
-    color:                      rgb(179, 179, 179);
-    font-size:                  1.2em;
-    text-shadow:                none;
-    text-transform:             none;
-    line-height:                17px;
-    padding:                    0px 0px 0px 15px;
-}
-ul#topnav .sub ul .level1 li, ul#topnav .sub ul .level1 li .selected {
-    border:                     medium none;
-    background:                 none repeat scroll 0% 0% transparent;
-}
-ul#topnav .sub ul li.selected a {
-    background:                 url("images/menu/navlist_arrow_select.png") no-repeat scroll 4px 5px transparent;
-    color:                      rgb(179, 179, 179);
-    text-decoration:            none;
-    border:                     medium none;
-}
-ul#topnav .sub ul li a:hover, ul#topnav .sub #menuTagCloud div a:hover {
-    color:                      rgb(196, 196, 196);
-    background:                 url("images/menu/navlist_arrow_hover.png") no-repeat scroll 4px 5px transparent;
-}
-ul#topnav li .sub ul, ul#topnav #loger ul {
-    list-style:                 none outside none;
-    margin:                     0px 5px 0px 10px;
-    padding:                    0px;
-}
-.level2, .level3, .level4, .level5 {
+.level2, .level3, .level4, .level5,.level6 {
     border:                     medium none ! important;
 }
@@ -299,4 +247,7 @@
     margin-bottom:              5px;
     height:                     30px;
+}
+#menu_cat_act a:hover {
+	background:					none;
 }
 #filter {
@@ -313,6 +264,23 @@
 #menuTagCloud a {
     text-decoration:            none;
-    text-shadow:                none;
     z-index:                    200;
+}
+span#menu_start {
+    width:                      85px;
+    float:                      left;
+    display:                    block;
+    height:                     30px;
+}
+span#menu_start a {
+    background:                 url("images/menu/home_w.png") no-repeat scroll left top transparent;
+    width:                      52px;
+    height:                     30px;
+    padding:                    0px;
+    margin:                     0px 20px 0px 25px;
+    display:                    block;
+    line-height:                46px;
+}
+span#menu_start a:hover {
+    background-position:        left -30px;
 }
 #quickconnect {
@@ -346,5 +314,5 @@
     float:                      left;
     padding:                    0px;
-    border:                     0px none;
+    border:                     none;
     height:                     24px;
     width:                      23px;
@@ -365,9 +333,8 @@
 }
 #loger {
-    line-height:                25px;
+    line-height:                20px;
     width:                      220px;
     position:                   absolute;
     top:                        30px;
-    background:                 none repeat scroll 0% 0% rgb(255, 255, 255);
     padding:                    10px;
     float:                      left;
@@ -380,6 +347,7 @@
     margin-bottom:              20px;
 }
-#quickconnect #log {
+#log {
     margin-bottom:              20px;
+	margin-top:					5px! important;
 }
 #log div {
@@ -415,15 +383,15 @@
 }
 /*_______________________________content______________________________________*/
-#the_page {
-    height:                     900px;
-}
-#content {
+
+#the_page #content, #the_page > .content {
     width:                      90%;
     margin:                     20px auto;
-}
+	border:						none;
+}
+
 .contentWithMenu {
     margin:                     0px auto;
 }
-.thumbnailCategories {
+.thumbnailCategories, #profile, .filter {
     background:                 none repeat scroll 0% 0% rgb(51, 51, 51);
     border:                     1px solid rgb(20, 20, 20);
@@ -433,7 +401,16 @@
     margin-bottom:              20px;
 }
+.thumbnailCategory .illustration, .commentElement .illustration{
+	text-align:					left;
+}
 .content .titrePage {
     margin:                     10px;
     height:                     auto;
+	background:					none;
+	border:						none;
+}
+.content .titrePage H2, #imageHeaderBar h2{
+	font-size:					120%;
+	font-weight:				bold;
 }
 .blockConteneur {
@@ -519,4 +496,5 @@
 }
 .thumbnails {
+	padding:					10px;
     margin-top:                 20px;
     border:                     1px solid rgb(20, 20, 20);
@@ -566,5 +544,6 @@
     z-index:                    120;
 }
-/*_______________________________slide______________________________________*/
+
+/*_______________________________SLIDE______________________________________*/
 #pageslide {
     display:                    none;
@@ -577,22 +556,6 @@
     overflow:                   hidden;
     padding:                    0px;
-}
-.intabs {
-    background:                 none repeat scroll 0% 0% rgb(34, 34, 34);
-    width:                      40px;
-    border-right:               1px solid rgb(77, 77, 77);
-    z-index:                    120;
-    top:                        0px;
-    position:                   absolute;
-    left:                       0px;
-    transition:                 bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -moz-transition:            bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -webkit-transition:         bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -o-transition:              bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    opacity:                    0;
-    -ms-filter:                 "alpha(opacity=0)";
-    filter:                     alpha(opacity=0);
-    zoom:                       1;
-    cursor:                     default;
+	background:red;
+	display:block;
 }
 .tabs {
@@ -612,5 +575,5 @@
     zoom:                       1;
 }
-#sld_tab, #sld_tabIdent {
+.sld_tab, .sld_tabIdent {
     font-size:                  30px;
     position:                   relative;
@@ -625,24 +588,4 @@
     display:                    none;
 }
-.hideTransi {
-    opacity:                    0;
-    -ms-filter:                 "alpha(opacity=0)";
-    filter:                     alpha(opacity=0);
-    zoom:                       1;
-    transition:                 bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -moz-transition:            bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -webkit-transition:         bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-    -o-transition:              bottom 1s ease 0s, width 1s ease 0s, opacity 2s ease 0s;
-}
-.visibleTransi {
-    opacity:                    1;
-    -ms-filter:                 "alpha(opacity=100)";
-    filter:                     alpha(opacity=100);
-    zoom:                       1;
-    transition:                 bottom 1s ease 0s, width 1s ease 0s, opacity 3s ease 2s;
-    -moz-transition:            bottom 1s ease 0s, width 1s ease 0s, opacity 3s ease 2s;
-    -webkit-transition:         bottom 1s ease 0s, width 1s ease 0s, opacity 3s ease 2s;
-    -o-transition:              bottom 1s ease 0s, width 1s ease 0s, opacity 3s ease 2s;
-}
 .visible {
     opacity:                    1;
@@ -654,4 +597,5 @@
 .jspPane {
     position:                   absolute;
+	min-height:100%;
 }
 .jspContainer {
@@ -747,2 +691,393 @@
     z-index:                    1000 ! important;
 }
+/*_______________________________slide_______________________________________*/
+.pageslide {
+    display: 					none;
+    position:					absolute;
+    top: 						0;
+    height: 					100%;
+    z-index: 					101;
+    width:						100%;
+    background-color: 			#222;
+    color: 						#FFF;
+}
+.tab{
+	height:						100%;
+	position:					absolute;
+	right:						0px;
+	width:						40px;
+	background:					none repeat scroll 0% 0% rgb(34, 34, 34);
+	cursor:						pointer;
+	z-index:					100;
+	display:					none;
+	border-right:				1px solid #808080;
+	padding-right:				2px
+}
+.tab:hover{
+	background:					none repeat scroll 0% 0% #333333;
+}
+
+/*____________________________SLIDESHOW___________________________________________*/
+#slideshow{
+	font-family:				Arial;
+	font-size:					12px;
+	position: 					relative;
+	min-width: 					500px;
+	min-height: 				500px;
+	margin-top:					10px
+	}
+.contener_slideshow{
+	border: 					1px solid #ccc;
+	border-radius:				5px
+}
+#slideshow ul{
+	height:						100%;
+	margin:						0;
+	padding:					0;
+	position:					relative;
+	overflow:					hidden
+}
+#slideshow ul li{
+	list-style-type:			none;
+}
+.slideloader{
+	background:					url(images/slideshow/loader.gif)no-repeat center ! important;
+	position:					absolute;
+	top:						0;
+	left:						0;
+	z-index:					1000
+}
+.contenerImg{
+	position: 					relative
+}
+.contenerImg img{
+	position:					relative;
+}
+.control_slideshow{
+	position:					relative;
+}
+/*FADE*/
+.Fade .contenerImg{
+	position:					absolute;
+	left:						0;
+	top:						0;
+	}
+.Fade ul li{
+	position:					absolute;
+	top:						0;
+	left:						0;
+	height:						100%;
+	width:						100%
+}	
+/*SLIDE*/			
+.slideCont{
+	overflow:					hidden;
+	position:					relative;
+}
+.Slide ul li{
+	float:						left
+}
+/*THUMB*/			
+.nav-thumb-slide{
+	height:						auto
+}
+.nav-thumb-content{
+	position:					relative;
+}
+.nav-thumb-content span{
+	padding:					0;
+	border:						none;
+	}
+.thumb{
+	height:						100%;
+	width:						100%;
+	position:					absolute;
+	top:						0px;
+	left:						0px
+}
+.slideshow-thumb{
+	border:						1px #000 solid;
+	cursor:						pointer;
+	left:						3px;
+	line-height:				22px;
+	margin:						3px;
+	padding:					2px 6px;
+	position:					relative;
+	text-align:					center;
+	top:						3px;
+	vertical-align:				top;
+	display:					inline-block;
+	opacity:					0.50;				
+}
+.slideshow-thumb:hover{
+	opacity:					1
+}
+.thumb_control{
+	opacity:					0.5;
+	width:						40px; 
+	height:						100%;
+	cursor:						pointer;
+	position:					absolute;
+	top:						0;
+}
+.thumb_control:hover{
+	opacity:					1
+}
+.thumb-left{
+	background:					url(images/slideshow/prev_thumb.png)no-repeat 50% 50%;
+}
+.thumb-right{
+	background:					url(images/slideshow/next_thumb.png)no-repeat 50% 50%;
+	right:						0;
+}
+.nav-thumb-slide{
+	overflow:					hidden;
+	
+}
+.clt_thumb{
+	background:					url(images/slideshow/show.png)no-repeat -2px -34px;
+	border:						1px #4a4a4a solid;
+	width:						28px;
+	height:						28px;
+	cursor:						pointer;
+	margin:						3px;
+	text-align:					center;
+	vertical-align:				top;
+	right:						0;
+	z-index:					200;
+	display:					inline-block;
+	position:					absolute;
+}
+.show{
+	background:					url(images/slideshow/show.png)no-repeat -2px -2px
+}
+/*LINK-NAV*/			
+.link{
+	text-align:					center;
+	height:						auto;
+	padding:					5px 0;
+	position: 					relative
+}
+.slideshow-link{
+	cursor:						pointer;
+	display:					inline-block;
+	width:						24px;
+	height:						24px;
+	background:					url(images/slideshow/nav.png)no-repeat center 0px;
+	padding:					0 10px;
+	color:						#fff;
+	line-height:				24px
+}
+.slideshow-link:hover{
+	background:					url(images/slideshow/nav.png) no-repeat scroll center -24px transparent;
+}
+.selected {
+	background:					url(images/slideshow/nav.png) no-repeat scroll center -24px transparent;
+	font-weight: 				bold;
+	opacity:					1;
+}
+/*PLAY/PAUSE*/			
+.slideshow_control	{			
+	display:					inline-block;
+	border:						1px #4a4a4a solid;
+	width:						28px;
+	height:						28px;
+	cursor:						pointer;
+	margin:						3px;
+	text-align:					center;
+	vertical-align:				top;
+	z-index:					200
+}
+.pause{
+	background:					url(images/slideshow/pauseh.png)no-repeat center;
+}
+.play{
+	background:					url(images/slideshow/playh.png)no-repeat center	
+}
+.play:hover{
+	background:					url(images/slideshow/play.png)no-repeat center
+}
+.pause:hover{
+	background:					url(images/slideshow/pause.png)no-repeat center;
+}
+/*NAVIGATION*/			
+.nav{
+	cursor:						pointer;
+	position:					absolute;
+	width:						20%;
+	top:						0;
+	min-width:					30px
+}
+.prev{
+	left:						0
+}
+.next{
+	right:						0
+}
+.prev:hover{
+	background:					url(images/slideshow/prev.png)no-repeat 0 50%;
+}
+.next:hover{
+	background:					url(images/slideshow/next.png)no-repeat 100% 50%
+}
+/*DESCRIPTION*/
+.descr{
+	position: 					absolute;
+	color: 						#fff;
+	z-index: 					100;
+	display:					none;
+	background: 				rgba(0,0,0,0.5);
+	font-size:					15px
+}
+
+
+/*_____________________________________RATING____________________________________________________*/
+#rateForm{
+	position:					relative
+}
+INPUT[type="submit"].rateButton, INPUT[type="button"].rateButton {
+    background: 				url("images/rating-stars.png") repeat scroll 0% 0% transparent;
+	min-width:					inherit;
+	box-shadow:					none;
+	border-radius:				0;
+	margin:						0 5px;
+	height:						16px;
+	width:						16px;
+	padding-bottom:				0
+	
+}
+INPUT[type="button"].rateButtonSelected {
+    background: 				url("images/rating-stars.png") repeat scroll 16px center transparent;
+	margin:						0 5px;
+	height:						16px;
+	width:						16px;
+	font-size:					100%
+}
+INPUT[type="submit"].rateButtonFull, INPUT[type="button"].rateButtonFull {
+    background: 				url("images/rating-stars.png") repeat scroll 16px center transparent;
+}
+.derivative:hover, .original:hover{
+	color:                      rgb(194, 194, 194);
+	cursor:						pointer
+}
+
+/*________________________________________COMMENT__________________________________*/
+@keyframes monanimation {
+  0% {
+    border: 					1px solid #fff;
+  }
+  100%{
+    border: 					1px solid red;
+  }
+}
+#comments TEXTAREA, #comments INPUT[type="text"]{
+    border: 					1px solid #fff;
+}
+
+#comments INPUT[type="text"].requi, #comments TEXTAREA.requi {
+	animation: 					monanimation 0.5s ease-in-out 4 alternate;
+	border: 					1px solid red;
+}
+#msgBoxCom {
+    border:                     1px solid rgb(107, 120, 133);
+    border-radius:              5px 5px 5px 5px;
+    -moz-border-radius:         5px 5px 5px 5px;
+    -webkit-border-radius:      5px 5px 5px 5px;
+    text-align:                 center;
+    font-size:                  1.2em;
+    height:                     auto;
+    width:                      310px;
+    padding:                    25px 5px;
+}
+#msgBox {
+    background:                 none repeat scroll 0% 0% rgb(0, 0, 0);
+    position:                   fixed;
+    top:                        100px;
+    right:                      100px;
+    width:                      320px;
+    height:                     auto;
+    padding:                    15px;
+    border-radius:              5px 5px 5px 5px;
+    -moz-border-radius:         5px 5px 5px 5px;
+    -webkit-border-radius:      5px 5px 5px 5px;
+    z-index:                    200;
+}
+
+/*_______________________________PICTURE PAGE____________________________________________________*/
+#imgContent{
+	position:					relative;
+	display:					table;
+	margin:						auto
+}
+#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 scroll left 45% transparent
+}
+#imgNextHov{
+	right:						0;
+	float:						right;
+	margin-right:				3px;
+	background:					url(images/picture/imgNextHover.png) no-repeat scroll right 45% transparent
+}
+#thumbPrevHov{
+	left:						0;
+	float:						left;
+	background:					none repeat scroll 0 0 transparent
+}
+#thumbNextHov{
+	right:						0;
+	float:						right;
+	background:					none repeat scroll 0 0 transparent
+}
+#imgPrevHov:hover,#imgNextHov:hover,#thumbPrevHov:hover,#thumbNextHov:hover{
+	opacity:					1
+}
+.linkPrev{
+	position:					absolute;
+	left:						-80px;
+	top:						40%
+}
+.linkNext{
+	position:					absolute;
+	right:						-80px;
+	top:						40%
+}
+#imageInfos{ 
+	border-radius: 				5px;
+}
+.pwg-icon-arrowstop-w{
+	display:					none
+}
+
+/*_________________________ICONS_______________________________________________________*/ 
+.pwg-icon{ 
+	background-image: 			url(icon/icons_sprite.png);
+}
+A:hover .pwg-icon{
+	background-image: 			url(icon/icons_sprite-hover.png);
+}
+
+/*_________________________slide loading_______________________________________________*/
+#slideLoading{
+	position:					fixed;
+	height:						100px;
+	width:						100px;
+	background:					url("/piwigo26/themes/Slide/images/ajax-loader.gif") no-repeat scroll center center rgba(51, 51, 51, 0.46); 
+	z-index:					0;
+	border-radius:				5px;
+	border:						1px solid #000;
+}
+
