﻿var totalImageBorderWidth = 0;

function setImageGallery() {
    var imageGallery = document.getElementById("Gallery");
    var thumbnails = imageGallery.getElementsByTagName('table')[0];
    if (thumbnails == undefined)
        return;

    var images = thumbnails.getElementsByTagName('img');
    var imagesArray = new Array(images.length);
    var maxHeight = -1;
    var maxWidth = -1;
    var numberOfBigImages = 0;
    
    for (var i = 0; i < images.length; i++)
    {
        if (images[i].width > maxWidth)
            maxWidth = images[i].width;
        if (images[i].height > maxHeight)
            maxHeight = images[i].height;

        var parentA = images[i].parentNode;
        
        if (parentA.tagName == 'A')
        {
            var imageArray = new Array(2);
            imageArray[0] = parentA.getAttribute("href");
            /*imageArray[1] = getElementsByClassName("Tooltip", parentA)[0].innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");  /*images[i].getAttribute("title");*/
            /*imageArray[1] = getElementsByClassName("Tooltip", parentA)[0].innerHTML; //.replace(/</g, "&lt;").replace(/>/g, "&gt;");  /*images[i].getAttribute("title");*/
            imagesArray[numberOfBigImages] = imageArray;
            (function(n, m)
            {
                images[n].onclick = function() { Slimbox.open(imagesArray, m, images); return false; };
            }
            )(i, numberOfBigImages)
                numberOfBigImages++;
        }
    }
    
    maxHeight += totalImageBorderWidth;
    maxWidth += totalImageBorderWidth;

    var rows = thumbnails.getElementsByTagName('tr');
    var hasPreviousAndNext = false;
    if (rows.length > 0)
        hasPreviousAndNext = rows[0].childNodes[0].innerHTML == 'Previous';
    var previousRow;
    var nextRow;
    if (hasPreviousAndNext)
    {
        previousRow = rows[0];
        setPreviousAndNextImage(previousRow.childNodes[0], true, true);
        nextRow = rows[rows.length - 1];
        setPreviousAndNextImage(nextRow.childNodes[0], false, true);  
    }
    
    var tds = thumbnails.getElementsByTagName('td');
    for (var i = 0; i < tds.length; i++)
    {
        if (!hasPreviousAndNext || (tds[i].parentNode != previousRow && tds[i].parentNode != nextRow))
        {
            tds[i].width = maxWidth;
            tds[i].height = maxHeight;
        }
    } 
}

function showPreviousImageRow(numberOfVisibleRows)
{
    showImageRow(true, numberOfVisibleRows);
}
function showNextImageRow(numberOfVisibleRows)
{
    showImageRow(false, numberOfVisibleRows);
}
function showImageRow(previous, numberOfVisibleRows) {

    var gallery = document.getElementById("Gallery");
    if (gallery == undefined)
        return;
    var thumbnails = gallery.getElementsByTagName('table')[0];
    if (thumbnails == undefined)
        return;
    var rows = thumbnails.getElementsByTagName('tr');
    var firstVisibleRowIndex = -1;
    var lastVisibleRowIndex = -1;
    var numberOfImageRows = rows.length - 2; /*Previous and next rows*/
    
    for (var i = 1; i < numberOfImageRows; i++)
    {
        if (rows[i].style.display != 'none')
        {
            if (previous && i > 1)
            {
                rows[i - 1].style.display = '';
                rows[i - 1 + numberOfVisibleRows].style.display = 'none';
            }
            if (!previous && i <= numberOfImageRows - numberOfVisibleRows)
            {
                rows[i].style.display = 'none';
                rows[i + numberOfVisibleRows].style.display = '';
            }
            break;
        }
    }
}

var categoryItineraries;
var categoryItinerariesItems;
var categoryItinerariesNumberOfItems;

var displayedCategoryItineraryIndex = 0;
var previousCategoryItineraryIndex = 0;
var nextCategoryItineraryIndex = 0;

var categoryItineraryFooter;
var categoryItineraryFooterLeftNavigationLinks = new Array();
var categoryItineraryPrevious;
var categoryItineraryMore;
var categoryItineraryNext;

var categoryItineraryRotatorId;

function getOnlyChildElementsByTagName(parent, tagName) {
    var elements = new Array();
    if (parent == undefined)
        return elements;
    var elementsByTagName = parent.getElementsByTagName(tagName)
    var index = 0
    for (var i = 0; i < elementsByTagName.length; i++) {
        if (elementsByTagName[i].parentNode == parent) {
            elements[index] = elementsByTagName[i];
            index++;
        }
    }
    return elements;
}

function setCategoryItineraries() {

    categoryItineraries = document.getElementById("CategoryItineraries");
    if (categoryItineraries == undefined)
        return;
        
    categoryItinerariesItems = getOnlyChildElementsByTagName(categoryItineraries, 'div');

    categoryItinerariesNumberOfItems = categoryItinerariesItems.length;

    if (categoryItinerariesNumberOfItems > 1) {
        categoryItineraries.onmouseover = function() { stopRotatingCategoryItineraries() };
        categoryItineraries.onmouseout = function() { startRotatingCategoryItineraries() };
        selectCategoryItinerary();
        startRotatingCategoryItineraries();
    }
    else
        selectCategoryItinerary();
}

function selectCategoryItinerary(selectedCategoryItineraryIndex) {

    if (categoryItineraries == undefined)
        return;
        
    if (selectedCategoryItineraryIndex == undefined)
        selectedCategoryItineraryIndex = displayedCategoryItineraryIndex;
    for (var x = 0; x < categoryItinerariesNumberOfItems; x++) {
        if (x != selectedCategoryItineraryIndex) {
            categoryItinerariesItems[x].style.display = 'none';
        }
        else {
            categoryItinerariesItems[x].style.display = ie ? 'block' : 'table-cell';
        }
    }

    displayedCategoryItineraryIndex = selectedCategoryItineraryIndex;
    previousCategoryItineraryIndex = selectedCategoryItineraryIndex - 1;
    if (previousCategoryItineraryIndex < 0)
        previousCategoryItineraryIndex = categoryItinerariesNumberOfItems - 1;
    nextCategoryItineraryIndex = selectedCategoryItineraryIndex + 1;
    if (nextCategoryItineraryIndex >= categoryItinerariesNumberOfItems)
        nextCategoryItineraryIndex = 0;
}

function selectPrevious() {
    selectCategoryItinerary(previousCategoryItineraryIndex);
}
function selectNext() {
    selectCategoryItinerary(nextCategoryItineraryIndex);
}

function rotateCategoryItineraries() {
    displayedCategoryItineraryIndex++;
    if (displayedCategoryItineraryIndex >= categoryItinerariesNumberOfItems)
        displayedCategoryItineraryIndex = 0;
    selectCategoryItinerary();
}

function startRotatingCategoryItineraries() {
    categoryItineraryRotatorId = setInterval("rotateCategoryItineraries()", 5000);
}
function stopRotatingCategoryItineraries() {
    clearInterval(categoryItineraryRotatorId);
}