<%  
  // ExhibitPlus V1.3 01.05.2004. Author: Mark Fyvie. Official site: http://www.fyvie.net/photos/info_exhibitplus.html
 
  // ****************************************************************************************************************
  // Please take note: If you plan to modify this skin, including modifications which may affect the resulting HTML:
  // 
  // The output from this skin has been authored as XHTML 1.0 - this is a very strict DOCTYPE.
  // 
  // Ensure that you do *NOT* use depreciated HTML elements, and that any modifications you make conform to XHTML 1.0
  // If you have modified the skin, please check your generated pages at validator.w3.org to ensure compliance!
  // ****************************************************************************************************************

  //Double check and initalise user variables if they are not present (e.g. running from command line, or if some  problem with onload.bsh) 
  if (upButtonAtRootIndexPage == void) upButtonAtRootIndexPage = "normal";
  if (useThumbForFolderIcon == void) useThumbForFolderIcon = true;
  if (fixedFormatIndexPage == void) fixedFormatIndexPage = false;
  if (fixedFormatIndexPageStretching == void) fixedFormatIndexPageStretching = false;
  if (imageNameUnderThumbnail== void) imageNameUnderThumbnail = false;
  if (imageCommentUnderThumbnail == void) imageCommentUnderThumbnail = false;
  if (protectIndexImages == void) protectIndexImages = false;
  if (allowEmptyFolderDescription == void) allowEmptyFolderDescription = false;
  if (displayW3CLogosOnIndex == void) displayW3CLogosOnIndex = true;
  if (dateFormat == void) dateFormat = "dd.MM.yyyy";
  if (folderAgeNew == void) folderAgeNew = 30; 
  if (keyboardShortcuts == void) keyboardShortcuts = true;
  if (jumpDirectFullscreen == void) jumpDirectFullscreen = false;
  if (singleFolderMode == void) singleFolderMode = false;
  if (numberIndexColumns == void) numberIndexColumns = 1;
  if (iconSet == void) iconSet = "default";
  if (displayFolderDateAdded == void) displayFolderDateAdded = true;
  if (imageDateUnderThumbnail == void) imageDateUnderThumbnail = false;

  buttonSet = (iconSet.equalsIgnoreCase("default") ? album.get("BUTTON_SET") : iconSet);
  spacerDiv = "<div style=\"clear: left\u003b height: 10px\"></div>";

  if (resSubPath != void) resPath = resPath + "/" + resSubPath;

  // The following are not user variables but need to be initalised anyway
  thumbCount = 0;
  noFloatForFirstThumb = "clear: left "; 
  lastProcessedWasThumb = false;
 
  // Check to see if there are any icon files present in a button set which should overwrite the default buttons in the res directory
  if (level == 0) {
	import se.datadosen.util.*; 
 	String[] fileNameArray = {"help.gif", "info.gif", "download.gif", "orderprints.gif"};
  	for (int i=0;i<fileNameArray.length;i=i+1) {
  		File sourceFile = new File(skinDirectory + "/button-sets/" + buttonSet, fileNameArray[i]);
		if (sourceFile.exists()) {
			if (resSubPath != void) {
				File outputFile = new File(resDirectory + File.separator + resSubPath, fileNameArray[i]);
			 	IO.copyFile(sourceFile, outputFile, true);
			} else {
				File outputFile = new File(resDirectory, fileNameArray[i]);
			 	IO.copyFile(sourceFile, outputFile, true);
			}
	  	}
	}
  }

  // Generate drop box options for quick navigation
  void addLinks() {
    if (totalIndexes == void) totalIndexes = 1;
    for (i=1; i<=totalIndexes; i++) {
      out.print("<option");
      if (i == indexNum) out.print(" selected=\"selected\"");
      out.println(" value=\"" + engine.getIndexPageName() + (i==1?"":i) + engine.getPageExtension() + "\">" +    "$text.page " + i + "</option>");
    }
  }
 
// Allow user to override variables on a per folder basis (include below)
%>
<ja:include page="variables.inc"></ja:include>
<% // Install or remove filters
    import se.datadosen.jalbum.*;
if (sameSizeFilterIndex == void) sameSizeFilterIndex = false;
if (album.get("filterRemoved") == null) album.put("filterRemoved", true);
if (sameSizeFilterIndex && album.get("filterRemoved")) {
	JAFilter f = new FixedShapeFilter();
	album.put("ourFilter", f);
	engine.addFilter(f, 4);
	album.put("filterRemoved", false);
}
if (!sameSizeFilterIndex && !album.get("filterRemoved")) {
	JAFilter f = album.get("ourFilter");
	engine.removeFilter(f, 4);
	album.put("filterRemoved", true);
}
%>

<%
  import se.datadosen.util.*;
  // If meta.properties exists in the image directory and contains
  // a description of the folder, display it with the variable descript.
	  title1 = title;
  File propsFile = new File(imageDirectory, "meta.properties");
  if (propsFile.exists()) {
    Map props = IO.readMapFile(propsFile);
    String newTitle = props.get("title");
    if (newTitle != null && newTitle.length() >0) title1 = newTitle;
    Map props = IO.readMapFile(propsFile);
    String newDescript = props.get("descript");
    if (newDescript != null && newDescript.length() > 0) {
    descript = newDescript;
    } else { 
    	if (!allowEmptyFolderDescription) descript = texts.getString("noDescript");
    }
  } else {
  if (!allowEmptyFolderDescription) descript = texts.getString("noDescript");
  
  }	
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=$textEncoding" />
<meta name="keywords" content="photo album,gallery,photo gallery,digital,photo,gallery,online,exhibitplus_v_onepointthree" />
<title><%=title1%></title>
<link href="<%=resPath%>/basestyle.css" rel="stylesheet" />
<link href="<%=resPath%>/$style" rel="stylesheet" />
<!-- Include styles.inc from root image directory if present -->
<ja:include page="$rootPath/styles.inc"></ja:include>
<ja:if test="<%=keyboardShortcuts%>">
	<script type="text/javascript">
	<!--
	var nextIndexPageUrl = null;
	<ja:if exists="totalIndexes"><ja:if exists="nextIndexPage">nextIndexPageUrl="$nextIndexPage";</ja:if><ja:else>nextIndexPageUrl="$firstIndexPage";</ja:else></ja:if>
	var prevIndexPageUrl = null;
	<ja:if exists="totalIndexes"><ja:if exists="previousIndexPage">prevIndexPageUrl="$previousIndexPage";</ja:if><ja:else>prevIndexPageUrl="$lastIndexPage";</ja:else></ja:if>
	var parentIndexPageUrl = null;
	<ja:if exists="parentIndexPage">parentIndexPageUrl="$parentIndexPage";</ja:if>
	var firstIndexPageUrl = null;
	<ja:if exists="totalIndexes">firstIndexPageUrl="$firstIndexPage";</ja:if>
	var lastIndexPageUrl = null;
	<ja:if exists="totalIndexes">lastIndexPageUrl="$lastIndexPage";</ja:if>
	var isSlideShow = false; 
	-->
	</script>
	<script type="text/javascript" src="<%=resPath%>/keyboard.js">
	</script>
	<script type="text/javascript" src="<%=resPath%>/navindex.js">
	</script>
<%= out.print("</" + "head>") %>
<body onload="initKeyboard();">
</ja:if>
<ja:else>
<%= out.print("</" + "head>") %>
<body>
</ja:else>
<!-- Include header.inc from root image directory if present -->
<ja:include page="$rootPath/header.inc"></ja:include>
 
<ja:if test="<%=protectIndexImages%>">
	<script type="text/javascript">
	<!-- 
	var message="$text.noRightClick"; // Message for the alert box 
	function click(e) { 
		if (document.all) { 
			if (event.button == 2) { 
				alert(message); 
				return false; 
			} 
		} 
		if (document.layers) { 
			if (e.which == 3) { 
				alert(message); 
				return false; 
			} 
		} 
	} 
	if (document.layers) { 
		document.captureEvents(Event.MOUSEDOWN); 
	} 
	document.onmousedown=click; 
	-->
	</script>
</ja:if>
<div id="centercontent">
<% // This nest of if/else statement processes the user variable upButtonAtRootIndexPage to check whether to place an UP button on the root index page%>
<ja:if test="<%= upButtonAtRootIndexPage.equalsIgnoreCase("force") %>">
	<!-- Index button (always place on root folder regardless of conditions) -->
	<ja:if test="$authorUseOnly"><a href="../sample.html"></ja:if><ja:else><ja:if exists="parentIndexPage"><a href="$parentIndexPage"></ja:if><ja:else><a href="../"></ja:else></ja:else><img src="<%=resPath%>/<%=buttonSet%>/up.gif" alt="$text.upOneLevel" title="$text.upOneLevel" /></a>
</ja:if>
<ja:else>
	<ja:if test="<%= upButtonAtRootIndexPage.equalsIgnoreCase("never") %>">
		<!-- Index button (never place on root folder) -->
		<ja:if test="<%=(level != 0)%>"><a href="$parentIndexPage"><img src="<%=resPath%>/<%=buttonSet%>/up.gif" alt="$text.upOneLevel" title="$text.upOneLevel" /></a></ja:if>
	</ja:if>
	<ja:else>
		<!-- Index button (place on root folder only if a parent html file exists one level above the root (e.g. main web site home page) -->
		<ja:if exists="parentIndexPage"><a href="$parentIndexPage"><img src="<%=resPath%>/<%=buttonSet%>/up.gif" alt="$text.upOneLevel" title="$text.upOneLevel"/></a></ja:if>
	</ja:else>
</ja:else>

<ja:if test="<%=singleFolderMode%>">
	<!-- This album contains only a single folder, therefore the user has chosen not to generate navigation controls or descriptions -->
</ja:if>
<ja:else>

	<!-- Multilevel index links for index page -->
	<span class = "folderNavigation">
	<%
	  void writePath(File dir, String prefix) {
	    boolean topLevel = fileVariables.get(dir) == null;
	    if (!topLevel)
	      writePath(dir.getParentFile(), prefix + "../");
	    if (!topLevel) out.print(" &raquo; ");
 
	    import se.datadosen.util.*;
	    title1 = (topLevel ? album.get("rootName") : dir.getName());
	    File propsFile = new File(((prefix.length() > 0) ? imageDirectory + "/" +prefix : imageDirectory), "meta.properties");
	    if (propsFile.exists()) {
	      Map props = IO.readMapFile(propsFile);
	      String newTitle = props.get("title");
	      if (newTitle != null && newTitle.length() >0) title1 = newTitle;
	    }
 
	    if (prefix.length() > 0)
	      out.print("<a href=\"" + prefix + engine.getIndexPageName()
	       + engine.getPageExtension() + "\" title=\"" + texts.getString("folderJump") + "\">"); 
	    else out.print("<a href=\"" + indexPage + "\"title=\"" + texts.getString("folderJump") + "\">");
	    out.print(title1 + "</a>");
	  }
	  if (album.get("rootName") == null) album.put("rootName", title);
	  writePath(imageDirectory, "");
	%>
	</span>
	<br /><br />
	<span class="header"><%=title1%></span><br /><%=descript%><br /><br />

</ja:else>
 
<!-- HERE'S THE PAGE SELECTION CODE -->
<ja:if exists="totalIndexes">
	<div style="position: relative; top: -6px">
	<ja:if exists="previousIndexPage"><a href="$previousIndexPage"><img src="<%=resPath%>/<%=buttonSet%>/index_previous.gif" style="vertical-align: bottom" alt="$text.previousPage" title="$text.previousPage" /></a></ja:if><ja:else><img src="<%=resPath%>/<%=buttonSet%>/index_previous_disabled.gif" style="vertical-align: bottom" alt="$text.atFirstPage" title="$text.atFirstPage" /></ja:else>
	  
	  <!-- The relative pixel positioning used below might need to be changed if different buttons are used (currently 3 and 6 pixels) -->
	  <span style="position: relative; top: 1px;">
	  <select style="border: 0px none;" onchange="window.location.href = this.options[this.selectedIndex].value">
		<% addLinks() %>
	  </select></span>
<ja:if exists="nextIndexPage"><a href="$nextIndexPage"><img src="<%=resPath%>/<%=buttonSet%>/index_next.gif" style="vertical-align: bottom" alt="$text.nextPage" title="$text.nextPage" /></a></ja:if><ja:else><img src="<%=resPath%>/<%=buttonSet%>/index_next_disabled.gif" style="vertical-align: bottom" alt="$text.atLastPage" title="$text.atLastPage" /></ja:else>
	<span style="position: relative; top: -3px; vertical-align: bottom"><%=1+(indexNum-1)*rows*cols%>-<%=(indexNum-1)*rows*cols+indexImageCount%> ($text.of <% if (imageDirectory.isDirectory()) out.print(engine.countFiles(imageDirectory));%> $text.found)</span><br />
	</div>
</ja:if>
<!-- PAGE SELECTION CODE ENDS -->
<!-- Section Start: Big folder containing photos or folders -->

<div id="indexframe">

<% // Note that we do not really use the rowiterator and coliterator in this skin, since we use a "flowing" design
   // That is unless we use the variable fixedFormatIndexPage to override the default and set up a fixed rows and column layout 
   // I really TRIED not to use a table with this, but it ended up impossible when different sized images arrived :-( If you can
   // find a way to make this work without a table, please contact the author! %>
<ja:if test="<%=fixedFormatIndexPage%>"><ja:if test="<%=fixedFormatIndexPageStretching%>"><% tableElement1="<table style=\"table-layout: fixed\u003b text-align: center\">" %></ja:if><ja:else><% tableElement1="<table style=\"text-align: center\">" %></ja:else></ja:if>
<ja:rowiterator>
<ja:coliterator>
<ja:include page="variables.inc"></ja:include>
<%
  // Initialise some variables inside the coliterator
  descript = "";

  if (fixedFormatIndexPage) {
    if (thumbCount % cols == 0) {
      tableElement2="<tr>"; 
    }
  }
%>
<ja:if test="<%=fixedFormatIndexPage%>"><% tableElement3="<td>" %></ja:if>
 
<ja:if test="<%= (iconPath==void) %>">
<%= spacerDiv %><%=tableElement1%><%=tableElement2%><%=tableElement3%>
<% spacerDiv=""; tableElement1=""; tableElement2=""; tableElement3=""; // Reset the values for the next iteration %>
</ja:if>

<%
  origThumbWidth = thumbWidth;
  origThumbHeight = thumbHeight;
%>
<ja:if test="<%=useThumbForFolderIcon%>">
<%
  // Try to replace folder icons with prepresentative image from subdirectory
  import se.datadosen.util.*;

  if (files[imageNum-1].isDirectory()) {
    File subDir = files[imageNum-1];
    File subDir2 = subDir;
    File iconFile = null;
    String folderIconDirectory = null;
 
    // If meta.properties exists and points to an icon file, use it
    File propsFile = new File(subDir, "meta.properties");
    if (propsFile.exists()) {
      Map props = IO.readMapFile(propsFile);
	folderIconDirectory = props.get("folderIconDirectory"); 
      if(folderIconDirectory != null && folderIconDirectory.length() > 0) {
	  subDir = new File(subDir, "/" + folderIconDirectory);
      }
      if (!subDir.exists()) subDir = subDir2;

	String folderIcon = props.get("folderIcon"); 
      if(folderIcon != null && folderIcon.length() > 0) {
        iconFile = new File ( subDir , folderIcon) ;
	  if (!iconFile.exists()) iconFile = null;
      }
    }
    if(iconFile == null){
      // Try to use the first image as folder icon
      File[] list = subDir.listFiles();
      for (int i=0; i<list.length; i++) {
        if (FileFilters.isFileSupported(list[i])) {
          iconFile = list[i];
          break;
        }
      }
    }
    if (iconFile != null) {
      // Process this image so we can extract width and height
	// Note for this skin we do not actually use the adjusted width and height, we allow the browser to shrink the thumb to the size of the folder.gif icon.
      setAccessibility(true);  // Turn on access to private methods
      engine.registerVariables(iconFile, outputDirectory);  // Private = might change
      Map vars = fileVariables.get(iconFile);
      // Redefine variables
      iconPath = engine.encode( ( (subDir == subDir2) ? subDir.getName() : subDir2.getName() + "/" + folderIconDirectory) + "/thumbs/" + engine.jpegName(iconFile.getName()));
	thumbPath = iconPath;
      thumbWidth = vars.get("thumbWidth");
      thumbHeight = vars.get("thumbHeight");
    }
  }
%>
</ja:if>
<%
  // Init, then calculate aspect ratio
  aspectRatio = 1;
  aspectRatio = ((float)thumbWidth / thumbHeight);
%>
 
<ja:if exists="iconPath">
<!-- This is a folder, not a thumb, so we will display a text description in a single column arrangement -->
 
<%
 
// Get the folder description
 
  if (files[imageNum-1].isDirectory()) {
    File subDir = files[imageNum-1];
    import se.datadosen.util.*;
    // If meta.properties exists in the image directory and contains
    // a description of the folder, display it with the variable descript.
    File propsFile = new File(subDir, "meta.properties");
    title1 = label;
    if (propsFile.exists()) {
      Map props = IO.readMapFile(propsFile);
      String newTitle = props.get("title");
      if (newTitle != null && newTitle.length() >0) title1 = newTitle;
      Map props = IO.readMapFile(propsFile);
      String newDescript = props.get("descript");
      if (newDescript != null && newDescript.length() > 0) {
        descript = newDescript;
      } else { 
	  if (!allowEmptyFolderDescription) descript = texts.getString("noDescript");
      }
    } else {
    if (!allowEmptyFolderDescription) descript = texts.getString("noDescript");
    }	
  }
%>

<%= imageNum % numberIndexColumns == 1 ? "<div style=\"clear: left\"></div>" : "" %>
<div style="float:left; width:<%=(100/numberIndexColumns)%>%">
<div style="clear: left; padding:10px 10px 10px 5px">
<div style="float: left; width:<%=(int)(origThumbWidth*1.7)%>px; text-align: center; overflow:hidden">
<a href="$closeupPath" title="$label"><img style="margin: 0 auto; padding-top: 3px" src="<%=thumbPath%>" width="<%=(int)(origThumbWidth*aspectRatio)%>" height="$thumbHeight" title="$label" alt="$label" /></a>
</div>
<div>
<ja:if test="<%= Dates.dateDiff('d', fileDate, Dates.now()) > (0 - folderAgeNew) %>"><div style="position: relative"><a href="$closeupPath" title="$text.exploreThisFolder"><img src="<%=resPath%>/foldernew.gif" style="position: absolute; left: -55px; padding-top: 3px" alt="$text.exploreThisFolder" title="$text.exploreThisFolder" /></a></div></ja:if>
<a href="$closeupPath" title="$text.exploreThisFolder"><%=title1%></a>&nbsp;
<span class="folderData"><ja:if test="<%= (numberIndexColumns < 3) %>">|&nbsp;&nbsp;</ja:if><ja:else><br /></ja:else>$text.totalImages: <% if (files[imageNum-1].isDirectory()) out.print(engine.countFiles(files[imageNum-1]));%>
<ja:if test="<%=displayFolderDateAdded%>">&nbsp;|&nbsp;&nbsp;$text.dateAdded: <% import se.datadosen.util.*; out.print(Dates.format(fileDate, dateFormat)); %></ja:if>
</span>
<div class="folderDescription"><%= descript!=void && descript.length() > 0 ?""+descript:"" %></div>
<div style="position: absolute"> <!-- Stupid workaround for IE6 bug --> </div>
</div></div></div>
 
</ja:if>
<ja:else>
	<!-- OK, this is a thumbnail of an image, not a directory -->
 
	<%
	  // If a text file with the same name as an image exists, use the contents of this for the image comment instead
  	  import se.datadosen.util.*;
  	  File cFile = new File(imageDirectory, label+".txt");
  	  if (cFile.exists()) {
  	    Map captions = IO.readMapFile(cFile);
  	    String text = (String)captions.get("comment");
  	    if (text != null && text.length()> 0) comment = text;
  	  }
 
	  // If we use comments or descriptions under the image we have to enclose this in a <div> to make it work. This will change the object from an  
	  // inline element to a block element, meaning that it won't flow as nicely. Therefore we only use the <div> if we have to. See documentation for details.
	if ( sameSizeFilterIndex ) {
	  thumbW = maxThumbWidth;
	  thumbH = maxThumbHeight;
	} else { 
	  thumbW = thumbWidth;
	  thumbH = thumbHeight;
	}
	if ( album.get("lastProcessedWasThumb") != null ) lastProcessedWasThumb = album.get("lastProcessedWasThumb");
	if ( imageNameUnderThumbnail || imageCommentUnderThumbnail || imageDateUnderThumbnail || fixedFormatIndexPage ) {
		thumbFormatStart = "<div class=\"float\" style=\"width: " + ( fixedFormatIndexPage ? "100%" : thumbW + "px") + "\u003b text-align: center\u003b " + noFloatForFirstThumb + "\">"; 
		thumbFormatEnd = "</div>";
		thumbStyle = "style=\"margin: 0 auto\u003b display: block\"";
		if (fixedFormatIndexPage) {
		}
	} else if (!lastProcessedWasThumb && !fixedFormatIndexPage ) {
	thumbFormatStart = "<div style=\"clear: left\"></div>";
	thumbFormatEnd = "";
	} else {
	thumbFormatStart = "";
	thumbFormatEnd = "";
	}

	if (noFloatForFirstThumb != void && noFloatForFirstThumb.length() > 0) out.print("<div style=\"clear: left\u003b\"></div>");

	%>

	<%= thumbFormatStart %>
	<% if ((comment != void) && (comment.indexOf("<") != -1)) comment = comment.substring(0,comment.indexOf("<")); %>
	<ja:if test ="<%= imageNameUnderThumbnail %>"><%caption = label%></ja:if>
	<a href="<ja:if test="<%=engine.getImageLinking().equalsIgnoreCase("LinkOriginalsViaScaled")%>"><ja:if test="<%=jumpDirectFullscreen%>"><%="slides/orig_" + label + engine.getPageExtension()%></ja:if><ja:else>$closeupPath</ja:else></ja:if><ja:else>$closeupPath</ja:else>"><img src="$thumbPath" title="$label<%= comment!=void ? " " + comment:"" %>" alt="$label<%= comment!=void ? " " + comment:"" %>" width="<%=thumbW%>" height="<%=thumbH%>" <%=thumbStyle%> /></a>
	<ja:if test ="<%= imageDateUnderThumbnail %>"><ja:if exists="originalDate"><span class="thumbDate">$originalDate<br /></span></ja:if></ja:if>
	<span class="thumbName"><a href="<ja:if test="<%=engine.getImageLinking().equalsIgnoreCase("LinkOriginalsViaScaled")%>"><ja:if test="<%=jumpDirectFullscreen%>"><%="slides/orig_" + label + engine.getPageExtension()%></ja:if><ja:else>$closeupPath</ja:else></ja:if><ja:else>$closeupPath</ja:else>"><%=caption%></a></span>

	<ja:if test ="<%= imageCommentUnderThumbnail %>"><p class="thumbComment"><%= comment %></p></ja:if>
	
	<%= thumbFormatEnd %>
	
	<% thumbCount ++; // Increment the image counter (excluding folders) %> 	
	<% noFloatForFirstThumb = ""; // Kill this we only needed it for the first image %>
 
</ja:else>
 
<% 
if (iconPath==void) {
	album.put("lastProcessedWasThumb", true);
	lastProcessedWasThumb = true;
}
%>
<ja:if test="<%= lastProcessedWasThumb %>"><ja:if test="<%=fixedFormatIndexPage%>"></td></ja:if></ja:if>
<%
  if (fixedFormatIndexPage) {
	  // End drop an end of row tag if our thumbnail is at the end of row, or if it is the last thumbnail on a page
	  if (indexNum == void) indexNum = 1;
	  if ( lastProcessedWasThumb && (thumbCount % cols == 0 || ( ( 1+ ((indexNum-1)*rows*cols+indexImageCount) - (1+(indexNum-1)*rows*cols) ) == (imageNum-(1+(indexNum-1)*rows*cols)+1) ) ) ) {
        out.print("</tr>"); 
	  }
  }
%>
<% // Note that we do not really use the rowiterator and coliterator in this skin, since we use a "flowing" design
   // That is unless we use the variable fixedFormatIndexPage to override the default and set up a fixed rows and column layout 
   // I really TRIED not to use a table with this, but it ended up impossible when different sized images arrived :-( If you can
   // find a way to make this work without a table, please contact the author! %>
</ja:coliterator>
</ja:rowiterator>
<ja:include page="variables.inc"></ja:include>
<ja:if test="<%= album.get("lastProcessedWasThumb") %>"><ja:if test="<%=fixedFormatIndexPage%>"></table></ja:if></ja:if>
 

<!-- this is done to extend the indexframe right to the bottom - required for mozilla --> <div style="clear: left; margin-bottom: 9px"></div> 
</div>
<!-- Section end: Big black folder containing photos or folders -->

<ja:if exists="nextIndexPage">
	<div style="text-align: right">
		<span style="position: relative; top: -6px;">$text.page $indexNum $text.of $totalIndexes</span>
		<a href="$nextIndexPage"><img src="<%=resPath%>/<%=buttonSet%>/index_next.gif" alt="$text.nextPage" title="$text.nextPage" /></a>	
	</div>
</ja:if>
 
<br /><div class="footer">$text.thisAlbumHas <% if (imageDirectory.isDirectory()) out.print(engine.countFiles(imageDirectory));%> $text.itemsInTotal&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;$text.albumWasUpdated $currentDate&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;$text.generatedBy <a href="$generatorUrl" title="JAlbum - Freeware web photo album generator">$generator</a>, $text.customSkin <a href="http://www.fyvie.net/photos/info_exhibitplus.html" title="ExhibitPlus by Mark Fyvie - Information">ExhibitPlus 1.3a</a></div>
 
<!-- Include news.inc from image directory if present -->
<ja:include page="news.inc"></ja:include>
 
<!-- Include footer.inc from root image directory if present -->
<ja:include page="$rootPath/footer.inc"><br /><br /></ja:include>

<ja:if test="<%=displayW3CLogosOnIndex%>">
	<div id="w3clogosright">
		<a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a>		
		<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="http://jigsaw.w3.org/css-validator/images/vcss.gif" alt="valid CSS!" /></a>
	</div>
</ja:if>
</div>
</body>
</html>