def substitute_navigation(html, xmldir)
if xmldir.parent.name == 'dir'
nav = ''
+ navtable = '<table id="navigation"><tr>'
path = '..'
parent = xmldir.parent
while parent.name == 'dir'
parentcaption = parent.attributes['subdirs-caption'] || File.basename(parent.attributes['path'])
nav = "<a href=\"#{path}/index#{$htmlsuffix}\">#{parentcaption}</a> #{defer_translation(N_(" > "))} #{nav}"
+ navtable += "<td><a href=\"#{path}/index#{$htmlsuffix}\">#{parentcaption}</a></td>"
path += '/..'
parent = parent.parent
end
html.gsub!(/~~ifnavigation\?~~(.+?)~~fi~~/) { $1 }
html.gsub!(/~~navigation~~/, nav + (xmldir.attributes['subdirs-caption'] || File.basename(xmldir.attributes['path'])))
+ html.gsub!(/~~navigationtable~~/, navtable + "<td>" + (xmldir.attributes['subdirs-caption'] || File.basename(xmldir.attributes['path']) + "</td></tr></table>"))
else
html.gsub!(/~~ifnavigation\?~~(.+?)~~fi~~/, '')
end
i.gsub!(/~~current_size_js~~/, size2js(sizeobj['name']))
i.gsub!(/~~madewith~~/, $madewith || '')
i.gsub!(/~~indexlink~~/, $indexlink || '')
+ if $indexlink.empty?
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { }
+ else
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { $1 }
+ end
substitute_addthis(i)
substitute_navigation(i, xmldir)
end
all_pages.collect_with_index { |p,idx| page == p ? idx + 1 : "<a href=\"thumbnails-#{size2js(sizeobj['name'])}%nojs-#{idx}#{$htmlsuffix}\">#{idx + 1}</a>" }.join(', ') +
(pagecount < all_pages.size - 1 ? " <a href=\"thumbnails-#{size2js(sizeobj['name'])}%nojs-#{pagecount + 1}#{$htmlsuffix}\">" + defer_translation(N_("Next ->")) + "</a> " : '')
for i in final_html
+ i.sub!(/~~run_slideshow_link~~/, entries.size <= 1 ? '' : 'image-' + size2js(sizeobj['name']) + $htmlsuffix + '#run_slideshow=1')
+ i.sub!(/~~run_slideshow_text~~/, defer_translation(N_("Run slideshow!")))
i.sub!(/~~run_slideshow~~/,
entries.size <= 1 ? '' : '<a href="image-' + size2js(sizeobj['name']) + $htmlsuffix + '#run_slideshow=1">' + defer_translation(N_("Run slideshow!"))+'</a>')
i.sub!(/~~thumbnails~~/, html_thumbnails)
i.gsub!(/~~htmlsuffix~~/, $htmlsuffix)
i.gsub!(/~~madewith~~/, $madewith || '')
i.gsub!(/~~indexlink~~/, $indexlink || '')
+ if $indexlink.empty?
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { }
+ else
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { $1 }
+ end
substitute_addthis(i)
substitute_html_sizes(i, sizeobj, 'image', '')
substitute_navigation(i, xmldir)
i.gsub!(/~~thumbnails~~/, html_index)
i.gsub!(/~~madewith~~/, $madewith || '')
i.gsub!(/~~indexlink~~/, $indexlink || '')
+ if $indexlink.empty?
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { }
+ else
+ i.gsub!(/~~ifindexlink\?~~(.+?)~~fi~~/) { $1 }
+ end
substitute_addthis(i)
end
--- /dev/null
+#
+# * BOOH *
+#
+# A.k.a `Best web-album Of the world, Or your money back, Humerus'.
+#
+# The acronyn sucks, however this is a tribute to Dragon Ball by
+# Akira Toriyama, where the last enemy beaten by heroes of Dragon
+# Ball is named "Boo". But there was already a free software project
+# called Boo, so this one will be it "Booh". Or whatever.
+#
+#
+# Copyright (c) 2004 Guillaume Cottenceau <gc3 at bluewin.ch>
+#
+# This software may be freely redistributed under the terms of the GNU
+# public license version 2.
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+bindtextdomain("booh")
+
+#- we often will want to have one size to nicely fit 800x600 screens,
+#- one for 1024x768 and one for 1280x1024
+#- it's necessary to fit according to the typical space taken by
+#- widgets defined in the skeleton of the theme
+#-
+#- ***IMPORTANT***: CHOOSE 4/3 ASPECT RATIO SIZES (for thumbnails)!
+$images_size = [
+ {
+ 'name' => 'small',
+ 'description' => _("Sizes that should fit browsers in fullscreen for 800x600 screens"),
+ 'fullscreen' => '600x331',
+ 'thumbnails' => '192x144',
+ 'optimizedforwidth' => '800',
+ 'optional' => true,
+ },
+ {
+ 'name' => 'medium',
+ 'description' => _("Sizes that should fit browsers in fullscreen for 1024x768 screens"),
+ 'fullscreen' => '758x422',
+ 'thumbnails' => '240x180',
+ 'optimizedforwidth' => '1024',
+ 'default' => true,
+ },
+ {
+ 'name' => 'large',
+ 'description' => _("Sizes that should fit browsers in fullscreen for 1280x1024 screens"),
+ 'fullscreen' => '960x528',
+ 'thumbnails' => '309x232',
+ 'optimizedforwidth' => '1280',
+ },
+ {
+ 'name' => 'x-large',
+ 'description' => _("Sizes that should fit browsers in fullscreen for 1400x1050 screens"),
+ 'fullscreen' => '1050x576',
+ 'thumbnails' => '328x245',
+ 'optimizedforwidth' => '1400',
+ 'optional' => true,
+ },
+ {
+ 'name' => 'xx-large',
+ 'description' => _("Sizes that should fit browsers in fullscreen for 1600x1200 screens"),
+ 'fullscreen' => '1200x660',
+ 'thumbnails' => '375x281',
+ 'optimizedforwidth' => '1600',
+ 'optional' => true,
+ }
+]
+
+$allowed_N_values = [ 3, 4, 5, 6, 8, 12 ]
+$default_N = 3
+
+$albums_thumbnail_size = '300x225'
+
+$hooks = {
+ :image_iteration => proc { |content, type|
+ return content.sub(/width:(\d+)px/) { "width:" + ($1.to_i + 8).to_s + "px" }
+ }
+}
--- /dev/null
+body {
+ background-color: #597aa3;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#365378), to(#597aa3), color-stop(0.5, #597aa3));
+ background-repeat: no-repeat;
+ color: #d6d6d6;
+ font-family: "Bitstream Vera Sans", "Lucida Sans", Geneva, Arial, Helvetica, sans-serif;
+ font-size: 16px;
+}
+
+a { text-decoration: none; }
+a:hover { text-decoration: underline; }
+
+a:link {
+ color: #d6d6d6;
+}
+
+a:visited {
+ color: #bacbdc;
+}
+
+
+img {
+ border: 0;
+}
+
+#logo {
+ padding: 10px;
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ font-size: 10px;
+}
+
+#navtop {
+ border-bottom: 1px solid rgba(173,190,211,0.3);
+ margin-bottom: 20px;
+ padding: 4px;
+ height: 30px;
+}
+
+#contenttop {
+ margin-bottom: 40px;
+}
+
+#navlinks {
+ float: right;
+ padding-top: 4px;
+}
+
+#navigation {
+ float:left;
+ border-spacing: 0px;
+ border-collapse: collapse;
+}
+
+#navigation td {
+ height: 26px;
+ background-image: url("bread_blue.png");
+ background-position: 100% 0%;
+ background-repeat: repeat-x;
+ padding-right: 24px;
+ padding-left: 5px;
+ font-size: 15px;
+}
+
+#navigation td:last-child {
+ background-image: url("bread_selected_blue.png");
+ font-weight: bold;
+}
+
+#navigation td:first-child {
+ padding-left: 10px;
+}
+
+#tools {
+ margin: 10px;
+ text-align: center;
+}
+
+#thumbnails {
+ margin-top: 50px;
+}
+
+#thumbnails td {
+ padding: 10px;
+}
+
+
+td {
+ color: #eeeeee;
+}
+
+.thumbnail_image img {
+ -moz-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ -webkit-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+}
+.thumbnail_image img:hover {
+ -moz-box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+ -webkit-box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+ box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+}
+.image img {
+ -moz-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ -webkit-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+}
+.image img:hover {
+ -moz-box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+ -webkit-box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+ box-shadow: 0px 16px 60px rgba(0,0,0,0.35);
+}
+
+
+.thumbnail_video {
+ background-color: #122;
+}
+.thumbnail_video img {
+ border: 1px solid #a9a9a9;
+ margin: -3px 3px 3px -3px;
+ padding: 3px;
+}
+
+.fullscreen_image img {
+ -moz-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ -webkit-box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+ box-shadow: 0px 16px 60px rgba(0,0,0,0.25);
+}
+.fullscreen_video {
+ float: left;
+ background-color: #122;
+}
+.fullscreen_video img {
+ background-color: #fff;
+ border: 1px solid #a9a9a9;
+ margin: -10px 10px 10px -10px;
+ padding: 9px;
+}
+
+.disabled {
+ font-style: italic;
+}
+.disabled:hover {
+ background-color: #DEDAD6;
+}
+
+#titletext {
+ font-size: 3.3em;
+ text-shadow: 2px 2px 4px black;
+ color: #adbed3;
+ text-align: center;
+ font-weight: bold;
+}
+
+table.index {
+ width: 100%;
+ padding: 10px;
+ border: 0px solid black;
+}
+
+table.index tr td.image {
+ width: 50%;
+ text-align: right;
+ vertical-align: top;
+}
+
+table.index tr td.caption {
+ width: 50%;
+ text-align: left;
+}
+
+
+.left {
+ text-align: left;
+}
+
+.right {
+ text-align: right;
+}
+
+table.imgnav tr td.sizes {
+ text-align: center;
+}
+
+table.image {
+ width: 100%
+}
+
+table.image tr td {
+ text-align: center;
+}
+
+a.fullscreenvideolink {
+ margin-left:auto;
+ margin-right:auto;
+}
--- /dev/null
+var images_ary = new Array();
+var images_loaded = new Array();
+var current = 0;
+var slideshow = 0;
+var slideshow_pause = null;
+var slideshow_timer = null;
+
+for (i = 0; i < images.length; i++) {
+ /* this array will contain 0 if image not yet loaded, 1 when loading,
+ * 2 when complete */
+ images_loaded[i] = 0;
+}
+
+function dbg(t) {
+ document.getElementById('dbg_text').innerHTML += t + "<br/>";
+}
+
+/* load image, return 1 if image is finished loading */
+function load(i) {
+ if (images_loaded[i] == 0) {
+ images_ary[i] = new Image();
+ images_ary[i].src = images[i];
+ images_loaded[i] = 1;
+ }
+ if (images_loaded[i] == 1) {
+ if (images_ary[i].complete) {
+ images_loaded[i] = 2;
+ } else {
+ return 0;
+ }
+ }
+ return 1;
+}
+
+function getparam(key) {
+ all_params = location.href.split("#")
+ if (all_params.length > 1) {
+ params = all_params[1].split("&");
+ for (i = 0; i < params.length; i++) {
+ keyvalue = params[i].split("=");
+ if (keyvalue[0] == key) {
+ return keyvalue[1];
+ }
+ }
+ }
+ return null;
+}
+
+function loadcurrent(img) {
+ for (i = 0; i < images.length; i++) {
+ if (images[i] == img) {
+ current = i;
+ display_current();
+ return;
+ }
+ }
+ current = 0;
+ display_current();
+}
+
+function browser_href() {
+ all = location.href.split("/");
+ return all[all.length - 1];
+}
+
+/* check URL for changes; allows the URL to reflect currently showed image */
+var currentURL = '';
+function checkURL() {
+ if (currentURL == 'ignore1') {
+ // do nothing
+ } else if (currentURL == 'ignore2') {
+ currentURL = browser_href();
+ } else {
+ href = browser_href();
+ if (href != currentURL) {
+ currentURL = href;
+ img = getparam('current');
+ loadcurrent(img);
+ }
+ }
+ setTimeout("checkURL()", 50);
+}
+
+function preload() {
+
+ /* favor current image, if user clicked on `last' or something */
+ load(current);
+
+ /* don't blindly preload all images at the beginning,
+ * but rather load them one by one, in order to get
+ * next ones faster, beginning with next to current
+ */
+ if (current + 1 < images.length && load(current + 1) == 0) {
+ setTimeout("preload()", 50);
+ return;
+ }
+ if (current - 1 >= 0 && load(current - 1) == 0) {
+ setTimeout("preload()", 50);
+ return;
+ }
+
+ for (i = current + 2; i < images.length && i <= current + 5; i++) {
+ if (load(i) == 0) {
+ setTimeout("preload()", 50);
+ return;
+ }
+ }
+ for (i = current - 2; i >= current - 3; i--) {
+ if (i >= 0) {
+ if (load(i) == 0) {
+ setTimeout("preload()", 50);
+ return;
+ }
+ }
+ }
+
+ setTimeout("preload()", 50);
+}
+
+function add_cookie(val) {
+ var expires = new Date(new Date().getTime() + (30 * 86400000)); // 30 days
+ document.cookie = val
+ + '; expires=' + expires.toGMTString()
+ + '; path=/';
+}
+
+function get_cookie(key) {
+ if (document.cookie) {
+ var index = document.cookie.indexOf(key);
+ if (index != -1) {
+ var oleft = (document.cookie.indexOf('=', index) + 1);
+ var oright = document.cookie.indexOf(';', index);
+ if (oright == -1) {
+ oright = document.cookie.length;
+ }
+ return document.cookie.substring(oleft, oright);
+ }
+ }
+ return null;
+}
+
+function init() {
+
+ preferred_pause = get_cookie('booh-slideshow-pause-' + dbltilda_theme);
+ if (preferred_pause != null) {
+ document.getElementById('secs').value = preferred_pause;
+ }
+
+ if (getparam('run_slideshow')) {
+ toggle_slideshow();
+ }
+
+ checkURL();
+
+ preload();
+
+ if (images.length == 1) {
+ document.getElementById("b_slideshow").disabled = true;
+ document.getElementById("b_slideshow").setAttribute("class", "disabled");
+ }
+
+ if (navigator.userAgent.indexOf('Opera') == -1) {
+ document.onkeydown = keyDownEvent;
+ }
+}
+
+function change_basename(input, newend) {
+ position = input.lastIndexOf('/');
+ if (position == -1) {
+ return newend;
+ } else {
+ return input.substring(0, position + 1).concat(newend);
+ }
+}
+
+function update_sensibilities() {
+ var img_first = document.getElementById("img_first");
+ var img_previous = document.getElementById("img_previous");
+ if (current == 0) {
+ img_first.src = change_basename(img_first.src, 'go-first-dark.png');
+ img_previous.src = change_basename(img_previous.src, 'go-previous-dark.png');
+ img_first.style['cursor'] = 'default';
+ img_previous.style['cursor'] = 'default';
+ } else {
+ img_first.src = change_basename(img_first.src, 'go-first.png');
+ img_previous.src = change_basename(img_previous.src, 'go-previous.png');
+ img_first.style['cursor'] = 'pointer'; // to work on IE and FF, but warns on FF :/
+ img_first.style['cursor'] = 'hand';
+ img_previous.style['cursor'] = 'pointer';
+ img_previous.style['cursor'] = 'hand';
+ }
+
+ var img_next = document.getElementById("img_next");
+ var img_last = document.getElementById("img_last");
+ if (current == images.length - 1) {
+ img_next.src = change_basename(img_next.src, 'go-next-dark.png');
+ img_last.src = change_basename(img_last.src, 'go-last-dark.png');
+ img_next.style['cursor'] = 'default';
+ img_last.style['cursor'] = 'default';
+ } else {
+ img_next.src = change_basename(img_next.src, 'go-next.png');
+ img_last.src = change_basename(img_last.src, 'go-last.png');
+ img_next.style['cursor'] = 'pointer';
+ img_next.style['cursor'] = 'hand';
+ img_last.style['cursor'] = 'pointer';
+ img_last.style['cursor'] = 'hand';
+ }
+}
+
+function set_cursor_(value, element) {
+
+ if (!element || !element.style) {
+ return;
+ }
+
+ element.style.cursor = value;
+
+ children = element.childNodes;
+ for (i = 0; i < children.length; i++) {
+ set_cursor_(value, children.item[i]);
+ }
+}
+
+function set_cursor(value) {
+ set_cursor_(value, document.getElementById('body'));
+}
+
+function show_current_text() {
+ /* don't show text if image not yet loaded because navigator
+ * won't refresh it during load */
+ if (images_loaded[current] == 2) {
+ document.getElementById('image_counter').innerHTML = ( current + 1 ) + "/" + images.length;
+ document.getElementById('main_text').innerHTML = captions[current];
+ for (i = 0; i < other_sizes.length; i++) {
+ if (other_sizes[i] == "original") {
+ var original = eval("elements_" + other_sizes[i] + "[current]");
+ if (original != undefined) {
+ document.getElementById('link' + other_sizes[i]).href = original;
+ document.getElementById('link' + other_sizes[i]).style.display = '';
+ } else {
+ document.getElementById('link' + other_sizes[i]).style.display = 'none';
+ }
+ } else {
+ document.getElementById('link' + other_sizes[i]).href = 'image-' + other_sizes[i] + dbltilda_htmlsuffix + '#current=' + eval("elements_" + other_sizes[i] + "[current]");
+ }
+ }
+ document.getElementById('thumbnails').href = 'thumbnails-' + dbltilda_current_size + '-' + thumbnailspages[current] + dbltilda_htmlsuffix + '#' + images[current];
+ set_cursor("default");
+ } else {
+ setTimeout("show_current_text()", 50);
+ set_cursor("wait");
+ }
+}
+
+function display_current() {
+ var main_img = document.getElementById('main_img');
+ if (types[current] == 'image') {
+ main_img.innerHTML = '<div class="fullscreen_image"><img src="' + images[current] + '"/></div>';
+ } else {
+ main_img.innerHTML = '<a class="fullscreenvideolink" href="' + videos[current] + '" '
+ + ' style="display:block;width:' + videos_widths[current] + 'px;height:' + (videos_heights[current] + 24) + 'px" id="player">'
+ + ' <div class="fullscreen_video"><img src="' + images[current] + '"/></div>'
+ + ' <img src="' + dbltilda_pathtobase + 'play_video.png" style="position:relative;top:-' + (videos_heights[current] + 48)/2 + 'px;border:0;background-color:transparent"/>'
+ + '</a>';
+ if (dbltilda_flowplayer_active == 'true') {
+ flowplayer("player", dbltilda_pathtobase + "flowplayer-3.2.2.swf");
+ }
+ }
+ oldhref = browser_href();
+ newhref = 'image-' + dbltilda_current_size + dbltilda_htmlsuffix + '#current=' + images[current];
+ if (oldhref != newhref) {
+ currentURL = 'ignore1';
+ location.href = newhref;
+ currentURL = 'ignore2';
+ }
+ show_current_text();
+ update_sensibilities();
+}
+
+function first() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ current = 0;
+ display_current();
+}
+
+function next() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ if (current < images.length - 1) {
+ current++;
+ display_current();
+ }
+}
+
+function next10() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ if (current < images.length - 11) {
+ current += 10;
+ } else {
+ current = images.length - 1;
+ }
+ display_current();
+}
+
+function previous() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ if (current > 0) {
+ current--;
+ display_current();
+ }
+}
+
+function previous10() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ if (current > 10) {
+ current -= 10;
+ } else {
+ current = 0;
+ }
+ display_current();
+}
+
+function last() {
+ if (slideshow == 1) {
+ toggle_slideshow(true);
+ }
+
+ current = images.length - 1;
+ display_current();
+}
+
+function toggle_video() {
+ if (types[current] == 'video' && dbltilda_flowplayer_active == 'true') {
+ var player = flowplayer('player');
+ if (player.isLoaded()) {
+ player.toggle();
+ } else {
+ player.play();
+ }
+ }
+}
+
+function keyDownEvent(key) {
+ if (!key) {
+ key = event;
+ key.which = key.keyCode;
+ }
+ if (key.altKey || key.ctrlKey || key.shiftKey) {
+ return;
+ }
+ switch (key.which) {
+ case 32: // space
+ toggle_video();
+ break;
+ case 36: // home
+ first();
+ break;
+ case 35: // end
+ last();
+ break;
+ case 37: // left
+ previous();
+ break;
+ case 39: // right
+ next();
+ break;
+ case 38: // up
+ previous10();
+ break;
+ case 40: // down
+ next10();
+ break;
+ }
+}
+
+function toggle_slideshow(now) {
+ if (slideshow == 0) {
+ slideshow_pause = document.getElementById('secs').value;
+ add_cookie('booh-slideshow-pause-' + dbltilda_theme + '=' + slideshow_pause)
+ document.getElementById("b_slideshow").value = dbltilda_stop_slideshow;
+ slideshow = 1;
+ if (current == images.length - 1) {
+ current = -1;
+ }
+ if (now) {
+ run_slideshow();
+ } else {
+ setTimeout("run_slideshow()", slideshow_pause * 1000);
+ }
+ } else {
+ clearTimeout(slideshow_timer);
+ document.getElementById("b_slideshow").value = dbltilda_run_slideshow;
+ slideshow = 0;
+ }
+}
+
+function run_slideshow() {
+ if (slideshow == 0) {
+ return;
+ }
+
+ if (images_loaded[current + 1] == 2) {
+ current++;
+ display_current();
+ slideshow_timer = setTimeout("run_slideshow()", slideshow_pause * 1000);
+ } else {
+ slideshow_timer = setTimeout("run_slideshow()", 50);
+ }
+
+ if (current == images.length - 1) {
+ toggle_slideshow(true);
+ }
+}
+
+function set_preferred_size(val) {
+ var expires = new Date(new Date().getTime() + (30 * 86400000)); // 30 days
+ document.cookie = 'booh-preferred-size-' + dbltilda_theme + '='
+ + val
+ + '; expires=' + expires.toGMTString()
+ + '; path=/';
+}
+
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <title>~~title~~</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta name="author" content="'Gradient' theme - Benoit Dien"/>
+ ~~~image_head_code~~~
+ ~~flowplayer_head_code~~
+ <script type="text/javascript" src="~~pathtobase~~booh.js"></script>
+ <link rel="stylesheet" type="text/css" href="~~pathtobase~~booh.css" media="screen" />
+</head>
+
+<body ~~~body_additions~~~>
+
+~~hidden_images_for_remotes~~
+
+<div id="navtop">
+~~navigationtable~~
+<div id="navlinks">
+ ~~indexlink~~ ~~ifindexlink?~~-~~fi~~
+ ~~previous_album~~ ~~ifprevious_album?~~-~~fi~~ ~~thumbnails~~ ~~ifnext_album?~~-~~fi~~ ~~next_album~~
+</div>
+</div>
+
+<table class='imgnav'>
+ <tr>
+ <td width="20%"> </td>
+ <td width="1%">
+ <form action="fake">
+ <img src="~~pathtobase~~go-first.png" alt="first" onclick="first()" id="img_first"/>
+ </form>
+ </td>
+ <td width="3%"> </td>
+ <td width="1%">
+ <form action="fake">
+ <img src="~~pathtobase~~go-previous.png" alt="previous" onclick="previous()" id="img_previous"/>
+ </form>
+ </td>
+ <td class='sizes'>
+ ~~sizes~~ | ~~
+ </td>
+ <td width="1%">
+ <form action="fake">
+ <img src="~~pathtobase~~go-next.png" alt="next" onclick="next()" id="img_next"/>
+ </form>
+ </td>
+ <td width="3%"> </td>
+ <td width="1%">
+ <form action="fake">
+ <img src="~~pathtobase~~go-last.png" alt="last" onclick="last()" id="img_last"/>
+ </form>
+ </td>
+ <td width="20%"> </td>
+ </tr>
+</table>
+<table align="center">
+ <tr>
+ <td align="center" colspan="9">
+ <br/>
+ ~~~image~~~
+ </td>
+ </tr>
+</table>
+
+<table align="center">
+<tr>
+ <td align="center" colspan="9">
+ <b><font size="+1" color="#ffff99" ~~~caption_additions~~~> </font></b>
+ <br/>
+ <font size="-2" ~~~image_counter_additions~~~> </font>
+ <hr width="100%"/>
+ </td>
+</tr>
+
+ <tr>
+ <td colspan="9" align="center">
+ ~~~button_slideshow~~~
+ ~~~pause_slideshow~~~
+ </td>
+ </tr>
+</table>
+
+<div id="logo"><a href="http://www.booh.org"><img src="~~pathtobase~~booh.png" alt="Made with Booh"/></a></div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <title>~~title~~</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta name="author" content="'Gradient' theme - Benoit Dien"/>
+ ~~~index_head_code~~~
+ <link rel="stylesheet" type="text/css" href="~~pathtobase~~booh.css" media="screen" />
+</head>
+
+<body ~~~body_additions~~~>
+
+<!-- Navigation TOP -->
+
+<div id="navtop">
+~~ifnavigation?~~<p>~~navigationtable~~</p>~~fi~~
+<div id="navlinks">
+ ~~indexlink~~
+</div>
+</div>
+
+<!-- Content TOP -->
+
+<div id='contenttop'>
+<div id='titletext'>~~title~~</div>
+</div>
+
+<!-- Content -->
+
+<div id='content'>
+<table class='index'>
+~~iterate1_open~~
+<tr>
+ <td class='image'>
+ ~~image_iteration~~
+ </td>
+ <td class='caption'>
+ <p>~~caption_iteration~~</p>
+ </td>
+</tr>
+<tr><td> </td></tr>
+~~iterate1_close~~
+</table>
+</div>
+
+<div id="logo"><a href="http://www.booh.org"><img src="~~pathtobase~~booh.png" alt="Made with Booh"/></a></div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <title>~~title~~</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta name="author" content="'Gradient' theme - Benoit Dien"/>
+ ~~~thumbnails_head_code~~~
+ ~~flowplayer_head_code~~
+ <link rel="stylesheet" type="text/css" href="~~pathtobase~~booh.css" media="screen" />
+</head>
+
+<body>
+
+<!-- Navigation TOP -->
+
+<div id="navtop">
+~~navigationtable~~
+<div id="navlinks">
+ ~~indexlink~~ ~~ifindexlink?~~-~~fi~~
+ ~~previous_album~~ ~~ifprevious_album?~~-~~fi~~
+ ~~return_to_albums~~ ~~ifnext_album?~~-~~fi~~
+ ~~next_album~~
+</div>
+</div>
+
+<!-- Content TOP -->
+
+<div id='contenttop'>
+ <div id='titletext'>~~title~~</div>
+
+ <div id="tools">
+ <a href="~~run_slideshow_link~~"><img src="~~pathtobase~~slideshow_32s.png" alt="~~run_slideshow_text~~"/></a>
+
+ ~~sizes~~ | ~~
+ </div>
+</div>
+
+~~ifmultiplepages?~~<p align="center"><font size="-1">~~multiplepagesstuff~~</font></p>~~fi~~
+
+<!-- Content -->
+
+<div id='content'>
+
+<table width="100%" id="thumbnails">
+~~iterate1_open~~
+<tr>
+ ~~iterate2_open_maxN~~
+ <td align="center" valign="top" ~~colspan~~ ~~homogeinize_width~~>
+ <div>~~image_iteration~~</div>
+ ~~ifimage?~~<br/>~~fi~~ ~~caption_iteration~~
+ </td>
+ ~~iterate2_close~~
+</tr>
+~~iterate1_close~~
+</table>
+</div>
+
+~~ifmultiplepages?~~<p align="center"><font size="+1">~~multiplepagesstuff~~</font></p>~~fi~~
+
+<div id="logo"><a href="http://www.booh.org"><img src="~~pathtobase~~booh.png" alt="Made with Booh"/></a></div>
+
+</body>
+</html>