Index: /extensions/kardon/icon/index.php
===================================================================
--- /extensions/kardon/icon/index.php	(revision 6453)
+++ /extensions/kardon/icon/index.php	(revision 6453)
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery                                  |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/kardon/template/menubar.tpl
===================================================================
--- /extensions/kardon/template/menubar.tpl	(revision 6453)
+++ /extensions/kardon/template/menubar.tpl	(revision 6453)
@@ -0,0 +1,13 @@
+{if !empty($blocks) }
+<div id="menubar">
+	{foreach from=$blocks key=id item=block name=blocks}
+	<dl id="{$id}" {if $smarty.foreach.blocks.first}class="mbFirstBlock"{/if}{if $smarty.foreach.blocks.last}class="mbLastBlock"{/if}>
+		{if not empty($block->template)}
+		{include file=$block->template|@get_extent:$id }
+		{else}
+		{$block->raw_content}
+		{/if}
+	</dl>
+	{/foreach}
+</div>
+{/if}
Index: /extensions/kardon/template/slideshow.tpl
===================================================================
--- /extensions/kardon/template/slideshow.tpl	(revision 6453)
+++ /extensions/kardon/template/slideshow.tpl	(revision 6453)
@@ -0,0 +1,70 @@
+<div id="imageHeaderBar">
+  <div class="browsePath">
+    {if isset($U_SLIDESHOW_STOP) }
+    [ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
+    {/if}
+  </div>
+  <div class="imageNumber">{$PHOTO}</div>
+  {if $SHOW_PICTURE_NAME_ON_TITLE }
+  <h2 class="showtitle">{$current.TITLE}</h2>
+  {/if}
+</div>
+
+<div id="imageToolBar">
+  {include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
+</div>
+
+<div id="theImage">
+{literal}
+<script type="text/javascript">//<!--
+
+var maxWidth = maxHeight  = margin =  0;
+var finalW = w = {/literal}{$WIDTH_IMG}{literal}, finalH = h = {/literal}{$HEIGHT_IMG}{literal};
+if( typeof( window.innerWidth ) == 'number' ) {
+	//Non-IE
+	maxWidth = window.innerWidth;
+	maxHeight = window.innerHeight;
+} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
+	//IE 6+ in 'standards compliant mode'
+	maxWidth = document.documentElement.clientWidth;
+	maxHeight = document.documentElement.clientHeight;
+} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
+	//IE 4 compatible
+	maxWidth = document.body.clientWidth;
+	maxHeight = document.body.clientHeight;
+}
+maxHeight = maxHeight-32;
+if ((h > maxHeight) || (w > maxWidth)) {
+	if ((h > maxHeight) && (w > maxWidth)) {
+		if (maxHeight-h < maxWidth-w) {
+			finalH = maxHeight;
+			finalW = w * finalH / h;
+			}
+		else {
+			finalW = maxWidth;
+			finalH = h * finalW / w;
+		}
+	} 
+	else if ((h > maxHeight) && (w < maxWidth)) {
+		finalH = maxHeight;
+		finalW = w * finalH / h;
+	} 
+	else if ((h < maxHeight) && (w > maxWidth)) {
+		finalW = maxWidth;
+		finalH = h * finalW / w;
+	}
+}
+if ((maxHeight-finalH) > 0) {
+	margin =  Math.round((maxHeight-finalH) / 2)
+}
+document.writeln("<img style=\"margin-top:"+margin+"px; width:"+finalW+"px;height:"+finalH+"px\" src=\"{/literal}{$SRC_IMG}{literal}\" alt=\"\">");
+
+//-->
+</script>
+{/literal}
+<noscript>
+  <div>
+    <img src="{$SRC_IMG}" style="width:{$WIDTH_IMG}px;height:{$HEIGHT_IMG}px;" alt="{$ALT_IMG}">
+  </div>
+</noscript>
+</div> <!-- theImage -->
Index: /extensions/kardon/theme.css
===================================================================
--- /extensions/kardon/theme.css	(revision 6453)
+++ /extensions/kardon/theme.css	(revision 6453)
@@ -0,0 +1,354 @@
+/*{{{  Global et généralités */
+body {
+	margin: 0;
+	padding: 0;
+	font: normal 80%/1.2 "Trebuchet MS", Verdana, Arial, sans-serif;
+	background: #dcd6bb url(images/entete.png) 0 0 repeat-x;
+	color: #404040;
+}
+
+#the_page {
+	position: relative;
+	padding: 0;
+	margin: 0;
+	width: 100%; /* haslayout ie */
+}
+
+a {
+	color: #5D87A3;
+	border: none;
+}
+select, input, textarea {
+	background: #d3d3d3 ;
+	border: 1px gray solid;
+}
+legend {
+	color: gray;
+}
+#content {
+	margin-left: 260px;
+	padding: 40px 10px 10px;
+	zoom:1;
+
+}
+
+#copyright {
+	padding: 30px 0 6px 0;
+	margin: 0;
+	font-style: italic;
+} /*}}}*/
+
+
+/*{{{  Entête */
+#theHeader {
+	color: white;
+	position: relative;
+	height: 44px;
+	background: url(images/entete_droite.png) top right no-repeat;
+}
+#theHeader h1 {
+	margin: 0;
+	padding: 5px 40px 0 20px;
+	float: left;
+	width: auto;
+	font-variant: small-caps;
+}
+#theHeader p {
+	font-style: italic;
+	font-weight: bold;
+	color:gray;
+	top: 0;
+	margin: 0;
+	padding: 10px 20px 0 0;
+	text-align: left;
+
+} /*}}}*/
+
+/*{{{  message d'info (à revoir)*/
+.header_notes {
+	margin: 0 0 0 10px;
+	color: white;
+	text-align: left;
+	background: url(icon/note.png) left top no-repeat;
+	position: absolute;
+	height: 16px;
+	width: 16px;
+	text-indent: 20px;
+	overflow: hidden;
+	top: 48px;
+	left: 10px;
+	border: none;
+}
+.header_notes:hover,
+.header_notes.over{
+	width: auto;
+	height: auto;
+	background-color: gray;
+	padding: 10px;
+	z-index: 100;
+}
+.header_notes p {
+	margin: 0;
+} /*}}}*/
+
+/*{{{  catégories et liste d'image */
+div.content div.titrePage {
+	height: 50px;
+	color: white;
+	margin: auto;
+	position: static;
+}
+
+.titrePage h2 {
+
+	color: gray;
+}
+body .content div.titrePage  ul.categoryActions {
+	float: none;
+	position: absolute;
+	right: 10px;
+	top: 46px;
+	padding: 0;
+}
+
+
+ul.categoryActions li {
+	padding: 0 5px;
+	line-height: normal;
+}
+
+ul.categoryActions li img {
+	max-height: 16px !important;
+	max-width: 16px !important;
+	height: auto !important;
+	width: auto !important;
+	vertical-align: middle;
+}
+
+#content .thumbnailCategory {
+	background: url(images/categorie.png) repeat-x;
+	padding-top: 0;
+}
+#content .thumbnailCategory .description h3 {
+	background: #CDD2D0 !important;
+	padding: 2px;
+	border: solid #B6BDB9;
+	border-width: 0 0 1px 1px;
+	-moz-border-radius-bottomleft: 5px;
+}
+#content .thumbnailCategory .illustration {
+	padding: 0;
+	margin: 0;
+}
+#content .thumbnailCategory .description .Nb_images {
+	text-align: right;
+	color: #8CAE90;
+	padding-bottom: 3px;
+}
+ul.thumbnails li span.wrap2 {
+	background: #F1EFE2 ; 
+	border: #AEB6B1 solid;
+	border-width: 0 2px 2px 0 ;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+} 
+
+.wrap2 a:hover img,
+.wrap2 a:focus img
+{
+	opacity:.7;
+} /*}}}*/
+
+/*{{{  Visualisation de l'image */
+html>body .rateButtonStarFull,
+html>body .rateButtonStarEmpty {
+	background-image: url(icon/rating-stars.gif);
+}
+
+#imageHeaderBar .browsePath {
+	color: #BDBDBD;
+}
+#imageHeaderBar .browsePath  a {
+	color: #E9E4D3;
+	border-bottom: 1px dotted #E9E4D3;
+}
+#imageHeaderBar h2 {
+	padding: 0;
+	position: absolute;
+	margin: 32px 0 0;
+	width: 100%;
+	color:#76634E;
+	z-index: 4;
+	clear: none;
+	left: 0;
+}
+#imageHeaderBar {
+	overflow:hidden;
+	zoom: 1;
+	padding-bottom: 16px;
+}
+#imageToolBar
+{
+	position: relative;
+	z-index: 5;
+	margin: 0;
+}
+div#imageToolBar a {
+	width: 28px;
+}
+
+/*}}}*/
+
+
+/*{{{  Spécial mode diaporama */
+body.slideshow #imageHeaderBar .browsePath  a {
+	background: url(icon/stop.png) right center no-repeat;
+	padding-right: 20px;
+	color: #DDE1E9;
+	border-color: #DDE1E9;
+	_background-image:url(images/stop-ie.png);
+}
+body.slideshow #imageHeaderBar .browsePath {
+	float: left;
+	margin: 0;
+	padding: 0 3px 0 0;
+	color: gray;
+}
+body.slideshow #imageHeaderBar .imageNumber {
+	float: left;
+}
+body.slideshow #imageHeaderBar h2 {
+	padding: 0;
+	color:white;
+	clear: none;
+	margin: 0 230px;
+	font-size: 110%;
+	height: 32px;
+	width: auto;
+	position: static;
+}
+body.slideshow div#imageToolBar  {
+	position: absolute;
+	width: 230px;
+	margin: 0;
+	right: 0;
+	top: 5px;
+	height: 20px;
+}
+body.slideshow div#imageToolBar a {
+	width: 28px;
+}
+body.slideshow  {
+	background: #636363 url(images/fond_diapo.png);
+}
+body.slideshow #the_page {
+	background: url(images/entete_diapo.png) 0 -10px repeat-x;
+	padding-top: 1px;
+}
+
+body.slideshow #theHeader,
+body.slideshow #copyright
+{
+	display: none !important;
+}
+body.slideshow #theImage,
+html body.slideshow div#theImage noscript>div {
+	position:absolute;
+	width:100%;
+	top: 32px;
+	bottom: 0;
+}
+
+html body.slideshow div#theImage noscript>div {
+	top: 0;
+	bottom: 0;
+	height: 100%;
+}
+
+html body.slideshow div#theImage noscript>div>img {
+	max-width: 100% !important;
+	max-height: 100% !important;
+	height: auto !important;
+	width: auto !important;
+	position: relative;
+}
+
+body.slideshow #the_page {
+	position: static;
+}
+
+body.slideshow #theImage img {
+	margin-left: auto;
+	margin-right: auto;
+	display: block;
+}
+body.slideshow {
+	min-width: 0;
+}
+/*}}}*/
+
+
+
+/*{{{  Menu */
+#menubar {
+
+	background: gray url(images/menu_fond.png) 0 0 repeat-y;
+	margin: 26px 0 0;
+	padding:0;
+	width: 257px;
+	overflow: hidden;
+
+}
+#menubar .icon {
+	vertical-align: middle;
+}
+#menubar dl.mbFirstBlock {
+	background: url(images/menu_haut.png) 0 0 no-repeat;
+}
+#menubar dl.mbLastBlock {
+	background: url(images/menu_bas.png) left bottom no-repeat;
+	padding-bottom: 30px;
+}
+#menubar dl.mbFirstBlock dt {
+	padding-top: 1px;
+}
+#menubar dt,
+#menubar dt a {
+	color: #545454;
+	text-align: left;
+}
+#menubar dl {
+	padding-right:17px;
+	margin: 0;
+	zoom:1;
+}
+#menubar dt {
+	display: block;
+	padding: 0;
+	padding: 14px 0 0 10px;
+} 
+
+#menubar dd a {
+	color:#996633;
+	border: none;
+}
+#menubar dd a:hover {
+	color:red;
+}
+#menubar dd {
+	background: #b2b3a3 url(images/menu_liens_fond.png); /*#c8c4b7;*/
+	margin: 4px 0 0 8px;
+	padding: 5px 2px;
+	border: 2px solid;
+	border-color:  gray gainsboro gainsboro gray;
+	-webkit-border-radius: 5px;
+	/* -khtml-border-radius: 5px;
+	-o-border-radius: 5px; */
+}
+html>/**/body #menubar dd, x:-moz-any-link, x:default {
+	-moz-border-radius: 5px;
+} /* Seulement FireFox 3 */
+
+/*}}}*/
+
+
Index: /extensions/kardon/themeconf.inc.php
===================================================================
--- /extensions/kardon/themeconf.inc.php	(revision 6453)
+++ /extensions/kardon/themeconf.inc.php	(revision 6453)
@@ -0,0 +1,16 @@
+<?php
+/*
+Theme Name: Kardon
+Version: 2.1.a
+Description: Sand style
+Theme URI: http://piwigo.org/ext/extension_view.php?eid=399
+Author: galain
+Author URI: http://piwigo.wordpress.com
+*/
+
+$themeconf = array(
+  'parent'                 => 'default',
+  'icon_dir'               => 'themes/kardon/icon',
+  'load_parent_local_head' => false,
+);
+?>
