function galleryPagination(navDirection)
{
   //var imagecount = {/literal}{$slideshow_count}{literal};
   //var pagenumber = 0;
   var pagenumberId = document.getElementById('pagenumber');
   var photoGalleryPage = document.getElementById('photogallery_page');
   var displayPageNumber = document.getElementById('display-pagenumber');
   var pagesize = 15;
   var totalPages = Math.ceil(imagecount / pagesize);
   //var onpage = 0;

   if (!pagenumberId || !photoGalleryPage) { return; }

   var fromPage = parseInt(pagenumberId.innerHTML);
   if (!fromPage) {
      fromPage = 1;
   }

   switch (navDirection) {
      case 'F':  toPage = 1;             break;
      case 'P':  toPage = fromPage - 1;  break;
      case 'N':  toPage = fromPage + 1;  break;
      case 'L':  toPage = totalPages;    break;
      default:   return;
   }

   if (toPage < 1) { toPage = 1; }
   if (toPage > totalPages) { toPage = totalPages; }

   pagenumberId.innerHTML = toPage;

   var startPhotoIdx = (toPage - 1) * pagesize + 1;

   photoGalleryPage.innerHTML = getPageSizePhotos(startPhotoIdx, pagesize);

   if (displayPageNumber)
      displayPageNumber.innerHTML = toPage;

   // hide pagination elements if single page or if "no" pages are available
   if (totalPages <= 1) {
      var upperPhotoNav = document.getElementById("upper-photo-nav");
      var lowerPhotoNav = document.getElementById("lower-photo-nav");

      if (upperPhotoNav) { upperPhotoNav.innerHTML = ""; }
      if (lowerPhotoNav) { lowerPhotoNav.innerHTML = ""; }
   }
   // enable/disable pagination elements if multi-page
   else {
      var toDisable = [];
      var toEnable = [];

      if (toPage == 1) {
         toDisable = ["first", "prev"];
         toEnable  = ["next", "last"];
      } else if (toPage == totalPages) {
         toEnable  = ["first", "prev"];
         toDisable = ["next", "last"];
      } else {
         toEnable  = ["first", "prev", "next", "last"];
      }

      for (var x in toDisable) {
         var upperEleEnabled = document.getElementById("upper-" + toDisable[x] + "-enabled");
         var lowerEleEnabled = document.getElementById("lower-" + toDisable[x] + "-enabled");
         var upperEleDisabled = document.getElementById("upper-" + toDisable[x] + "-disabled");
         var lowerEleDisabled = document.getElementById("lower-" + toDisable[x] + "-disabled");

         if (upperEleEnabled) { upperEleEnabled.style.display = "none"; }
         if (lowerEleEnabled) { lowerEleEnabled.style.display = "none"; }
         if (upperEleDisabled) { upperEleDisabled.style.display = ""; }
         if (lowerEleDisabled) { lowerEleDisabled.style.display = ""; }
      }

      for (var x in toEnable) {
         var upperEleEnabled = document.getElementById("upper-" + toEnable[x] + "-enabled");
         var lowerEleEnabled = document.getElementById("lower-" + toEnable[x] + "-enabled");
         var upperEleDisabled = document.getElementById("upper-" + toEnable[x] + "-disabled");
         var lowerEleDisabled = document.getElementById("lower-" + toEnable[x] + "-disabled");

         if (upperEleEnabled) { upperEleEnabled.style.display = ""; }
         if (lowerEleEnabled) { lowerEleEnabled.style.display = ""; }
         if (upperEleDisabled) { upperEleDisabled.style.display = "none"; }
         if (lowerEleDisabled) { lowerEleDisabled.style.display = "none"; }
      }
   }
}

function getPageSizePhotos(begin, numPhotos)
{
   var inHtml = '';
   begin = parseInt(begin);
   end = begin + numPhotos;
   for(var i=begin; i<end; i++)
   {
      if(document.getElementById('photo'+i))
      {
         inHtml += document.getElementById('photo'+i).innerHTML;
      }
   }
   //alert('begin = ' + begin + ', end = ' + end);
   //alert(inHtml);
   return inHtml;
}