// Global constants
var replacementChar = /%s/
var numMetadataItems = 7
var timeoutID
var playing
var showPlayStopInternal

// Global variables
var outputSubTitle
var imagesOnAPage
var index

function parseCommandLine() {
    if (location.href.indexOf("?") == -1) {
        return 0
    }

    // Parse any command line arguments
    urlQuery = location.href.split("?")

    urlTerms = urlQuery[1].split(",")
    if (urlTerms[0] != null) {
        index = parseInt(urlTerms[0])
    }

    if (urlTerms[1] != null) {
        playing = parseInt(urlTerms[1])
    }
}

function printBodyStartTag() {
    document.write("<BODY BGCOLOR=\"" + BGCOLOR + "\" TEXT=\"" + TEXT + "\" LINK=\"" + LINK + "\" VLINK=\"" + VLINK + "\" ALINK=\"" + ALINK + "\">")
   document.write("<STYLE TYPE=\"text/css\">")

    document.write(".pageFont")
    document.write("{")
    document.write(pageFontFamily)
    document.write(pageFontSize)
    document.write("}")

   document.write(".thumbFont")
    document.write("{")
    document.write(thumbFontFamily)
    document.write(thumbFontSize)
    document.write(thumbFontColor)
    document.write("}")

    document.write(".imageFont")
    document.write("{")
    document.write(imageFontFamily)
    document.write(imageFontSize)
    document.write(imageFontColor)
    document.write("}")

    document.write("</STYLE>")
}

function stopStartSlideShow(firstTime) {
    if (playing == 1) {
        playing = 0
        clearTimeout(timeoutID)

        if (firstTime != 1)
        {
            index = -1
            slideShow()
        }
    }
    else {
        playing = 1
        timeoutID = setInterval("slideShow()", delay)
    }
}

function slideShow() {
    index = index + 1
    if (index >= imageDB.length) {
        index = 0
    }

    // Change the image
    window.location.href = "page.htm?" + index + "," + playing


    // Change the play text to stop
    slideShowControl.innerText="Stop";
}

function init(showPlayStop) {
    // Make output strings from theme.js and data.js
    outputSubTitle = themeSubTitle.replace(replacementChar, subTitle);

    // Perform some initial calculations
    imagesOnAPage = rows*columns

    playing = 0
    index = 0
    parseCommandLine()

    showPlayStopInternal = 1;
    if (themeShowPlayStop == 0) {
        if (showPlayStop == 0) {
            showPlayStopInternal = 0;
        }
    }

    // Start or stop the slideshow
    if (playing == 0) {
        playing = 1
    }
    else {
        playing = 0
    }
    stopStartSlideShow(1)
}

function printTitle(writePageTitle) {
   if (strip == 1 && writePageTitle == 0) {
      return
   }

   var tempTitle = themeThumbTitle;
   if (writePageTitle == 1) {
      tempTitle = themeImageTitle;
   }

    document.write("<DIV CLASS=\"title_div\">")
    document.write("<SPAN CLASS=\"pageFont\">")
  var outputTitle = tempTitle.replace(replacementChar, title);
  //window.alert(outputTitle);
    document.write(outputTitle)
    document.write("</SPAN>")
    document.write("</DIV>")
}

function printSubTitle(writePageSubTitle) {
   if (strip == 1 && writePageSubTitle == 0) {
      return
   }
    document.write("<DIV CLASS=\"subtitle_div\">")
    document.write("<SPAN CLASS=\"pageFont\">")
    document.write(outputSubTitle)
    document.write("</SPAN>")
    document.write("</DIV>")
}

function printImage() {
    document.write("<DIV align=\"center\" CLASS=\"image_div\">")
    document.write("<TABLE>")
    document.write("<TD>")
    document.write("<TR valign=middle>")
    document.write("<TD align=center>")
    outputImageLink = themeImageLink.replace(replacementChar, index);
    outputImageLink = outputImageLink.replace(replacementChar, playing);
    document.write(outputImageLink)
    document.write("</TD>")
    document.write("</TR>")
   for (var i = index*numMetadataItems; i < index*numMetadataItems+numMetadataItems; i++) {
       document.write("<TR valign=middle>")
       document.write("<TD CLASS=\"imageFont\" align=center>" + imageMetadataDB[i] + "</TD>")
       document.write("</TR>")
   }
    document.write("</TD>")
    document.write("</TABLE>");
    document.write("</DIV>")
}

function writeLinks(writePageLinks) {
   if (strip == 1 && writeLinks == 1) {
      return
   }


  var themeImageLinkNone = "<IMG src=\"none-button.gif\" width=\"33\" height=\"31\" NAME=\"IGNORE\">"


    // ************ Home is different for image and thumbnails for thumbnail archive like page
    // data.js
    // var URL2 = "index.htm"
    // var URL = "../World.htm"
    // uncomment following for archive page
    //if (showPlayStopInternal == 1)
    //if (themeShowPlayStop == 0)
    //  url = themeURLHolder.replace(replacementChar, URL2);

    if (writePageLinks == 1)
      themeImageLinkNone = "<IMG src=\"Data/none-button.gif\" width=\"33\" height=\"31\" NAME=\"IGNORE\">"
      //themeImageLinkNone = " ";

  var themeURLHolder = themeImageLinkURL
  var themeFirstHolder = themeImageLinkFirst
    var themeLastHolder = themeImageLinkLast
    var themePreviousHolder = themeImageLinkPrevious
    var themeNextHolder = themeImageLinkNext
    var themePlayHolder = themeImageLinkPlay
    var themeStopHolder = themeImageLinkStop
    if (writePageLinks == 1)
    {
      themeURLHolder = themeThumbLinkURL
        themeFirstHolder = themeThumbLinkFirst
        themeLastHolder = themeThumbLinkLast
        themePreviousHolder = themeThumbLinkPrevious
        themeNextHolder = themeThumbLinkNext
        themePlayHolder = themeThumbLinkPlay
        themeStopHolder = themeThumbLinkStop
    }

    document.write("<DIV align=\"center\" CLASS=\"links_div\">")
    document.write("<TABLE>")
    document.write("<TR>")



    // Write previous link
    if (index != 0) {
      document.write("<TD CLASS=\"pageFont\">")
      document.write("<DIV CLASS=\"previous_div\">")
        var previousIndex
        if (writePageLinks == 0) {
            previousIndex = index - 1;
            outputPreviousLink = themePreviousHolder.replace(replacementChar, previousIndex);
            outputPreviousLink = outputPreviousLink.replace(replacementChar, playing);
            outputPreviousLink = outputPreviousLink.replace(replacementChar, previousMouseOverText);
            document.write(outputPreviousLink)
        }
        else {
            if (index != 0) {
                previousIndex = index-imagesOnAPage;
                if (previousIndex < 0) {
                    previousIndex = 0
                }
                outputPreviousLink = themePreviousHolder.replace(replacementChar, previousIndex);
                outputPreviousLink = outputPreviousLink.replace(replacementChar, playing);
                outputPreviousLink = outputPreviousLink.replace(replacementChar, previousMouseOverText);
                document.write(outputPreviousLink)
            }
            else
              document.write(themeImageLinkNone)
        }
        document.write("</DIV>")
        document.write("</TD>")
    }
    else
    {
      document.write("<TD CLASS=\"pageFont\">")
      document.write("<DIV CLASS=\"previous_div\">")
      document.write(themeImageLinkNone)
      document.write("</DIV>")
      document.write("</TD>")
    }

    // Write Home URL
    document.write("<TD CLASS=\"pageFont\">")
    document.write("<DIV CLASS=\"url_div\">")
    var url = themeURLHolder.replace(replacementChar, URL);
    if (writePageLinks == 1)
      url = themeURLHolder.replace(replacementChar, URL2);
    url = url.replace(replacementChar, urlMouseOverText);
    url = url.replace(replacementChar, urlMouseOverText);
    document.write(url)
    document.write("</DIV>")
    document.write("</TD>")


    // Write next link
    var nextIndex
    if (writePageLinks == 0) {
        nextIndex = index + 1;
        if (nextIndex < imageDB.length) {
            document.write("<TD CLASS=\"pageFont\">")
            document.write("<DIV CLASS=\"next_div\">")
            outputNextLink = themeNextHolder.replace(replacementChar, nextIndex);
            outputNextLink = outputNextLink.replace(replacementChar, playing);
            outputNextLink = outputNextLink.replace(replacementChar, nextMouseOverText);
            document.write(outputNextLink)
            document.write("</DIV>")
            document.write("</TD>")
        }
        else
        {
          document.write("<TD CLASS=\"pageFont\">")
          document.write("<DIV CLASS=\"previous_div\">")
          document.write(themeImageLinkNone)
          document.write("</DIV>")
          document.write("</TD>")
        }

    }
    else {
        nextIndex = index+imagesOnAPage;
        if (nextIndex < thumbDB.length) {
            document.write("<TD CLASS=\"pageFont\">")
            document.write("<DIV CLASS=\"next_div\">")
            outputNextLink = themeNextHolder.replace(replacementChar, nextIndex);
            outputNextLink = outputNextLink.replace(replacementChar, playing);
            outputNextLink = outputNextLink.replace(replacementChar, nextMouseOverText);
            document.write(outputNextLink)
            document.write("</DIV>")
            document.write("</TD>")
        }
        else
        {
          document.write("<TD CLASS=\"pageFont\">")
          document.write("<DIV CLASS=\"previous_div\">")
          document.write(themeImageLinkNone)
          document.write("</DIV>")
          document.write("</TD>")
        }
    }



    // before Play/Stop
    document.write("<TD CLASS=\"pageFont\">")
    document.write("<DIV CLASS=\"previous_div\">")
    document.write(themeImageLinkNone)
    document.write("</DIV>")
    document.write("</TD>")

    // Write play/stop
    if (showPlayStopInternal == 1) {
        document.write("<TD CLASS=\"pageFont\">")
        document.write("<DIV CLASS=\"slideShowControl_div\">")
        if (playing == 1) {
            themeStopHolder = themeStopHolder.replace(replacementChar, stopMouseOverText);
            document.write(themeStopHolder)
        }
        else {
          themePlayHolder = themePlayHolder.replace(replacementChar, playMouseOverText);
            document.write(themePlayHolder)
        }
        document.write("</DIV>")
        document.write("</TD>")
    }

    // after Play/Stop
    document.write("<TD CLASS=\"pageFont\">")
    document.write("<DIV CLASS=\"previous_div\">")
    document.write(themeImageLinkNone)
    document.write("</DIV>")
    document.write("</TD>")

    // Write first link
    {
      document.write("<TD CLASS=\"pageFont\">")
      document.write("<DIV CLASS=\"first_div\">")
        if (writePageLinks == 0) {
            outputFirstLink = themeFirstHolder.replace(replacementChar, playing);
            outputFirstLink = outputFirstLink.replace(replacementChar, firstMouseOverText);
            document.write(outputFirstLink)
        }
        else {
            {
              outputFirstLink = themeFirstHolder.replace(replacementChar, playing);
              outputFirstLink = outputFirstLink.replace(replacementChar, firstMouseOverText);
              if (index != 0)
                document.write(outputFirstLink)
              else
                document.write(themeImageLinkNone)
            }
        }
        document.write("</DIV>")
        document.write("</TD>")
    }


    // Write last link
    var lastIndex
    if (writePageLinks == 0) {
        lastIndex = imageDB.length-1;
        if (index < imageDB.length-1 && lastIndex < imageDB.length) {
            document.write("<TD CLASS=\"pageFont\">")
            document.write("<DIV CLASS=\"last_div\">")
            outputLastLink = themeLastHolder.replace(replacementChar, lastIndex);
            outputLastLink = outputLastLink.replace(replacementChar, playing);
            outputLastLink = outputLastLink.replace(replacementChar, lastMouseOverText);
            document.write(outputLastLink)
        }
        else
        {
          document.write("<TD CLASS=\"pageFont\">")
          document.write("<DIV CLASS=\"last_div\">")
          document.write(themeImageLinkNone)
          document.write("</DIV>")
          document.write("</TD>")
        }
    }
    else {
        lastIndex = thumbDB.length - imagesOnAPage;
        if (lastIndex < 0) {
            lastIndex = 0;
        }

        {
            document.write("<TD CLASS=\"pageFont\">")
            document.write("<DIV CLASS=\"last_div\">")
          outputLastLink = themeLastHolder.replace(replacementChar, lastIndex);
            outputLastLink = outputLastLink.replace(replacementChar, playing);
            outputLastLink = outputLastLink.replace(replacementChar, lastMouseOverText);
            if (index < lastIndex)
               document.write(outputLastLink)
            else
             document.write(themeImageLinkNone)
            document.write("</DIV>")
            document.write("</TD>")
       }
    }

    document.write("</TR>")
    document.write("</TABLE>")
    document.write("</DIV>")
}

function printTable() {
    document.write("<DIV align=\"center\" CLASS=\"images_div\">")
    document.write("<TABLE>")
    counter = index
    for (var i = 0; i < rows; i++) {
        document.write("<TR>")
        for (var j = 0; j < columns; j++) {
            if (counter < thumbDB.length) {
                document.write("<TD>")
                document.write("<TABLE>")
                document.write("<TD valign=top>")
                document.write("<TR>")
                document.write("<TD align=center>")
                outputThumbLink = themeThumbLink.replace(replacementChar, counter)
                outputThumbLink = outputThumbLink.replace(replacementChar, playing)
                document.write(outputThumbLink)
                document.write("</TD>")
                document.write("</TR>")

                // Write out the metadata
                for (var k = counter*numMetadataItems; k < counter*numMetadataItems+numMetadataItems; k++) {
                   document.write("<TR valign=middle>")
                   document.write("<TD CLASS=\"thumbFont\" align=center>" + thumbMetadataDB[k] + "</TD>")
                   document.write("</TR>")
                }
                document.write("</TD>")

                document.write("</TABLE>");
                document.write("</TD>")
            }

            counter++
        }
        document.write("</TR>")
    }
    document.write("</TABLE>")
    document.write("</DIV>")
}

function loadImages() {
    for (var i = 0; i < imagesOnAPage; i++) {
        if ((i+index) < thumbDB.length) {
            var j = 0
            while (document.images[j] != null && document.images[j].name == "IGNORE") {
                j++
            }
            if (document.images[i+j] != null) {
                document.images[i+j].src = thumbDB[i+index]
            }
        }
    }
}

function loadImage() {
   var i = 0
   while (document.images[i].name == "IGNORE") {
      i++
   }
    document.images[i].src = imageDB[index]
}
