﻿//<![CDATA[

var hosGalleries = [];
var hosCaptions = [];
var hosGalleryNames = [];
var hosGalleryIndexes = [];
var hosGalleryUrls = [];
var hosSupersizeLoad = [];
var isGalleryLoaded = false;
var _galleryPopup;

$(document).ready(function() {
    loadGallery();
});

function loadGallery() {
    getGalleryNames();

    if (hosGalleryNames.length > 0 && !isGalleryLoaded) {
        for (i = 0; i < hosGalleryNames.length; i++) {
            if (hosGalleries[findIndexOfGallery(hosGalleryNames[i])] == undefined) {
                setupGallery(hosGalleryNames[i]);
            }
        }
        isGalleryLoaded = true;
    }
}

function getGalleryNames() {
    var allListItems = document.getElementsByTagName("li");
    for (i = 0; i < allListItems.length; i++) {
        if (allListItems[i].getAttribute("value") != null && allListItems[i].getAttribute("value") != 0 && allListItems[i].getAttribute("value").match("hosGallery") != null) {
            var galleryName = allListItems[i].getAttribute("value");
            var galleryUrl = allListItems[i].getAttribute("value");
            galleryName = galleryName.substring(0, galleryName.indexOf("|"));
            galleryUrl = galleryUrl.substring(galleryUrl.indexOf("|") + 1, galleryUrl.length);
            if (!checkIfInArray(hosGalleryNames, galleryName)) {
                hosGalleryNames.push(galleryName);
                hosGalleryUrls.push(galleryUrl);
            }
        }
    }
}

function setupGallery(galleryName) {
    var allListItems = document.getElementsByTagName("li");
    var hosGalleryItems = [];
    var hosCaptionItems = [];
    var isSupersizeLoaded = false;

    for (index = 0; index < allListItems.length; index++) {
        if (allListItems[index].getAttribute("value") != null && allListItems[index].getAttribute("value") != 0 && allListItems[index].getAttribute("value").substring(0, allListItems[index].getAttribute("value").indexOf("|")) == galleryName) {
            hosGalleryItems.push(allListItems[index].innerHTML.replace(" ", ""));
            hosCaptionItems.push(allListItems[index].title);
        }
    }
    hosGalleries.push(hosGalleryItems);
    hosCaptions.push(hosCaptionItems);
    hosSupersizeLoad.push(isSupersizeLoaded);
    hosGalleryIndexes.push(0);

    // Resize the supersize div
    var galleryIndex = findIndexOfGallery(galleryName);
    var supersizeDivElem = document.getElementById("supersize-" + galleryName);
    var supersizeCaptionDivElem = document.getElementById("supersizeCaption-" + galleryName);
    var supersizeImage = new Image();
    supersizeImage.src = hosGalleryUrls[galleryIndex] + hosGalleries[galleryIndex][0] + ".jpg";
    if (supersizeDivElem != null) {
        if (supersizeImage.width > 0) {
            supersizeDivElem.style.width = supersizeImage.width;
        }
        else {
            supersizeDivElem.style.width = 640;
        }
    }

    if (supersizeCaptionDivElem != null) {
        if (hosCaptions[galleryIndex][0] != "") {
            if (supersizeImage.width > 100) {
                supersizeCaptionDivElem.style.width = supersizeImage.width - 30;
                supersizeCaptionDivElem.style.display = "inline";
            }
            else {
                supersizeCaptionDivElem.style.width = 610;
                supersizeCaptionDivElem.style.display = "inline";
            }
        }
        else {
            supersizeCaptionDivElem.style.display = "none";
        }
    }
}

function showImage(showIndex, galleryName, imageId, labelId, supersizeImageId, supersizeLabelId, isResultsGallery) {
    // Find the gallery index
    var galleryIndex = findIndexOfGallery(galleryName);
    if (galleryIndex == undefined) {
        isGalleryLoaded = false;
        loadGallery();
        galleryIndex = findIndexOfGallery(galleryName);
    }

    // Change the elements
    var imageElem = document.getElementById(imageId);
    var labelElem = document.getElementById(labelId);
    if (isResultsGallery) {
        imageElem.src = hosGalleryUrls[galleryIndex] + hosGalleries[galleryIndex][showIndex] + "_t.jpg";
        labelElem.innerHTML = (showIndex + 1) + " of " + hosGalleries[galleryIndex].length;
    }
    else {
        imageElem.src = hosGalleryUrls[galleryIndex] + hosGalleries[galleryIndex][showIndex] + "_n.jpg";
        labelElem.innerHTML = hosCaptions[galleryIndex][showIndex];
    }
    // Set the image alt tags
    if (hosCaptions[galleryIndex][showIndex] == "") {
        imageElem.alt = "View Gallery";
    }
    else {
        imageElem.alt = "View Gallery - " + hosCaptions[galleryIndex][showIndex];
    }

    // Change the elements inside the supersize panel
    try {
      var supersizeImageElem = document.getElementById(supersizeImageId);
      var supersizeLabelElem = document.getElementById(supersizeLabelId);
      supersizeImageElem.src = hosGalleryUrls[galleryIndex] + hosGalleries[galleryIndex][showIndex] + ".jpg";
      supersizeImageElem.alt = hosCaptions[galleryIndex][showIndex];
      supersizeLabelElem.innerHTML = hosCaptions[galleryIndex][showIndex];
      hosSupersizeLoad[galleryIndex] = true;
    

      // Setup the width of the popup
      var supersizeDivElem = document.getElementById("supersize-" + galleryName);
      var supersizeCaptionDivElem = document.getElementById("supersizeCaption-" + galleryName);
      var supersizeImage = new Image();
      supersizeImage.src = supersizeImageElem.src;
      if (supersizeDivElem != null) {
          if (supersizeImage.width > 0) {
              supersizeDivElem.style.width = supersizeImage.width;
          }
          else {
              supersizeDivElem.style.width = 640;
          }
      }

      if (supersizeCaptionDivElem != null) {
          if (hosCaptions[galleryIndex][showIndex] != "") {
              if (supersizeImage.width > 0) {
                  supersizeCaptionDivElem.style.width = supersizeImage.width - 30;
                  supersizeCaptionDivElem.style.display = "inline";
              }
              else {
                  supersizeCaptionDivElem.style.width = 610;
                  supersizeCaptionDivElem.style.display = "inline";
              }
          }
          else {
              supersizeCaptionDivElem.style.display = "none";
          }
      }
    } catch (Error) { }

    // Update the gallery index
    hosGalleryIndexes[galleryIndex] = showIndex;
}

function prevImage(galleryName, imageId, labelId, supersizeImageId, supersizeLabelId, isResultsGallery) {
    if (hosGalleries.length == 0) {
        loadGallery();
    }
    // Find the gallery index
    var galleryIndex = findIndexOfGallery(galleryName);
    if (galleryIndex == undefined) {
        isGalleryLoaded = false;
        loadGallery();
        galleryIndex = findIndexOfGallery(galleryName);
    }

    // Get the next image index
    var prevIndex = hosGalleryIndexes[galleryIndex] - 1;
    if (prevIndex == -1) {
        prevIndex = hosGalleries[galleryIndex].length - 1;
    }

    showImage(prevIndex, galleryName, imageId, labelId, supersizeImageId, supersizeLabelId, isResultsGallery);
}


function nextImage(galleryName, imageId, labelId, supersizeImageId, supersizeLabelId, isResultsGallery) {
    if (hosGalleries.length == 0) {
        loadGallery();
    }
    // Find the gallery index
    var galleryIndex = findIndexOfGallery(galleryName);
    if (galleryIndex == undefined) {
        isGalleryLoaded = false;
        loadGallery();
        galleryIndex = findIndexOfGallery(galleryName);
    }

    // Get the next image index
    var nextIndex = hosGalleryIndexes[galleryIndex] + 1;
    if (nextIndex >= hosGalleries[galleryIndex].length) {
        nextIndex = 0;
    }

    showImage(nextIndex, galleryName, imageId, labelId, supersizeImageId, supersizeLabelId, isResultsGallery);
}

function showGalleryPopup(popupLink, modalClientID, galleryName, supersizeImageId) {
    if (hosGalleries.length == 0) {
        loadGallery();
    }
    // Find the gallery index
    // Find the gallery index
    var galleryIndex = findIndexOfGallery(galleryName);
    if (galleryIndex == undefined) {
        isGalleryLoaded = false;
        loadGallery();
        galleryIndex = findIndexOfGallery(galleryName);
    }
    // Check if supersize image is loaded
    var isSupersizeLoaded = hosSupersizeLoad[galleryIndex];

    if (!isSupersizeLoaded) {
        // Find supersize Image and load it
        var supersizeImageElem = document.getElementById(supersizeImageId);
        supersizeImageElem.src = hosGalleryUrls[galleryIndex] + hosGalleries[galleryIndex][0] + ".jpg";
        hosSupersizeLoad[galleryIndex] = true;
    }
    
    hs.htmlExpand(popupLink, { contentId: modalClientID, objectWidth: 650, objectHeight: 530 })
}

function findIndexOfGallery(galleryName) {
    var galleryIndex;
    for (galleryIndex = 0; galleryIndex < hosGalleryNames.length; galleryIndex++) {
        if (hosGalleryNames[galleryIndex] == galleryName) {
            return galleryIndex;
        }
    }
}

function checkIfInArray(array, value) {
    var i;
    for (i = 0; i < array.length; i++) {
        if (array[i] == value) {
            return true;
        }
    }
    return false;
}

//]]>