/**** Scripts für Galerie auf www.panorado.com ****/




/*** Generisch ******************************************************/

// Applet "von außen" programmatisch einfügen, damit MSIE 6.0 keine Aktivierung verlangt.
function insertApplet() {
  var strNoJava;

  if (systemLang() == "de") {
   strNoJava =
      '<p style="margin:20px 5px;color:white"><b>Kein Java!</b><br>\
      Die Bilder können hier leider nicht gezeigt werden, da Ihr Browser zurzeit kein Java unterstützt.<br>\
      Die aktuelle Java-Version können Sie kostenlos von \
      <a href="http://java.com" target="_blank">Sun Microsystems</a> downloaden.</p>';
  }
  else {
   strNoJava =
      '<p style="margin:20px 5px;color:white"><b>No Java!</b><br>\
      Images can\'t be presented here, because your browser currently doesn\'t support Java.<br>\
                You can download Java for free from <a href="http://java.com" target="_blank">Sun Microsystems</a>.</p>';
  }

  document.writeln(
        '<applet name="Viewer" archive="Panorado.jar" code="Panorado.class" mayscript width=100% height=100%>\
          <param name="licenseurl" value="http://www.fotogalerie-helgoland.de">\
          <param name="licensekey" value="2FCD5292-02020000-00000000-FFFFF353">\
          <param name="java_arguments" value="-Xmx256m">\
          <param name="backgroundcolor" value="#333333">\
          <param name="splashimg" value="http://www.fotogalerie-helgoland.de/panorama/Images/Wait.gif" height=15 width=214>\
          <param name="splashtext" value="$% geladen...">\
          <param name="onloadimage" value="onLoadImage()">\
          <param name="onimagemove" value="onImageMove()">\
          <param name="ondoubleclick" value="onDoubleClick()">\
          <param name="splashtextfont" value="SansSerif,12">\
          <param name="hotspotsvisible" value="yes">\
          <param name="hotspotimg" value="http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Hotspots.gif">\
          <param name="hotspotlinkimg" value="http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Hotspots1.gif">'
    + strNoJava +
         '</applet>');
}




/*** Aufruf durch Galerie-Seite ******************************************************/

function createTopImage() {
  provideImageArray();

  createImage(-1);
}


function createGallery() {
  provideImageArray();

  for (var i = 0; i < self.arImages.length; i++)
     createImage(i);
}


function createImage(nImage) {  // Erzeugt den HTML-Code f. 1 Preview
  var arImage;

  if (nImage == -1)
    arImage = self.arTopImage;
  else
    arImage = self.arImages[nImage];


  var arTt;

  if (getLang() == "de")
    arTt = new Array("Klicken Sie hier, um das Bild anzuzeigen!",
                     "neues Panorama", "360 Grad", "Weitwinkel", "Mit Kompass",
                     "Schnelle Projektion", "Flache Projektion", "Sphärische Projektion",
                     "Touristeninformation",  "Bild in voller Bildschirmgröße anzeigen!" ,"180 Grad");
  else
    arTt = new Array("Klicken Sie hier, um das Bild anzuzeigen!",
                     "neues Panorama", "360 Grad", "Weitwinkel", "Mit Kompass",
                     "Schnelle Projektion", "Flache Projektion", "Sphärische Projektion",
                     "Touristeninformation",  "Bild in voller Bildschirmgröße anzeigen!" ,"180 Grad");

  for (var i = 0; i < arTt.length; i++)
    arTt[i] = "title='" + arTt[i] + "'";

  document.writeln("<table class='gallery_image'>");

    document.writeln("<tr><td class='gallery_thumbnail'>");

      document.writeln("<a href='#' onclick='createViewer(" + nImage + ",false);return false;'>");
      document.writeln("<span class='gallery_title'>&nbsp;" + arImage[1] + "</span>");
      document.writeln("<img class='gallery_thumbnailimage' src='http://www.fotogalerie-helgoland.de/panorama/Panos/" + arImage[0] + "_th.jpg' " + arTt[0] + ">");
      document.writeln("</a>");

    document.writeln("</td></tr><tr><td class='gallery_info'>");

      if (typeof(arImage[13]) != "undefined")
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Hotspots.gif' " + arTt[8] + ">");
      if (arImage[11])
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_New.jpg' " + arTt[1] + ">&nbsp;");
      if (arImage[4] == 360)
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_360Degrees.jpg' " + arTt[2] + ">");
      else if (arImage[4] >= 180)
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_180Degrees.jpg' " + arTt[10] + ">");

      if (arImage[10] >= 0)
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Compass.jpg' " + arTt[4] + ">");

      if (arImage[3] == "flat")
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Flat.gif' " + arTt[6] + ">");
      else if (arImage[3] == "spherical")
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Spherical.gif' " + arTt[7] + ">");
      else
        document.writeln("<img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_Fast.gif' " + arTt[5] + ">");

        document.writeln("&nbsp;<a href='#' onclick='createViewer(" + nImage + ",true);return false;'><img src='http://www.fotogalerie-helgoland.de/panorama/Images/Gallery_FullScreen.gif' " + arTt[9] + "></a>");

      if (arImage[2] != "")
        document.writeln("<span class='gallery_subtitle'>&nbsp;" + arImage[2] + "</span>");

      document.writeln("<span class='gallery_filesize'>&nbsp;(" + arImage[12] + " KB)</span>");


    document.writeln("</td></tr>");
  document.writeln("</tr></table>");
}


function createViewer(nImage, bFullScreen) {  // Startet Viewer-Seite in Popup-Fenster
  var left, top, width, height;

  self.nImage = nImage;

  if (bFullScreen) {
          left   = 0;
     top    = 0;
     width  = screen.availWidth;
     height = screen.availHeight;
  }
  else {
          var availWidth  = screen.availWidth - 10;
          var availHeight = screen.availHeight - 32;
          width  = Math.min(840, availWidth);
          height = Math.min(560, availHeight);
          left   = (availWidth - width) / 2;
          top    = (availHeight - height) / 2;
  }

  var strWidthName  = isMSIE() ? "width" : "innerWidth";
  var strHeightName = isMSIE() ? "height" : "innerHeight";
  var strScrollbars = navigator.javaEnabled() ? "no" : "yes";
  var strResizable  = (navigatorSupportsAppletScaling() && !bFullScreen) ? "yes" : "no";
  var strFullScreen = bFullScreen ? "yes" : "no";
  var strWndParams = "left=" + left + ",top=" + top + "," +
                     strWidthName + "=" + width + "," + strHeightName + "=" + height +
                     ",resizable=" + strResizable +
                     ",fullscreen=" + strFullScreen +
                     ",channelmode=" + strFullScreen +
                     ",scrollbars=" + strScrollbars + ",location=no,titlebar=no,menubar=no,status=no,toolbar=no,directories=no";

  var strUrl = navigator.javaEnabled() ? "http://www.fotogalerie-helgoland.de/panorama/PanoramaViewer.htm" : "http://www.fotogalerie-helgoland.de/panorama/SimpleViewer.htm";

  wndImage = self.open(strUrl, "_Image_Viewer_", strWndParams);

  if (wndImage != null) {
    wndImage.focus();
  }
}




/*** Aufruf durch Viewer-Seite ******************************************************/

function onLoadPanoramaViewer() {
  var bGerman = (opener.getLang() == "de");


  document.getElementById("ctl_reset").title   = bGerman ? "Neu starten" : "Reset";
  document.getElementById("ctl_left").title    = bGerman ? "Nach links" : "Move Left";
  document.getElementById("ctl_stop").title    = bGerman ? "Stopp" : "Stop";
  document.getElementById("ctl_right").title   = bGerman ? "Nach rechts" : "Move Right";
  document.getElementById("ctl_zoomout").title = bGerman ? "Verkleinern" : "Zoom Out";
  document.getElementById("ctl_zoom50").title  = "50%";
  document.getElementById("ctl_zoom100").title = "100%";
  document.getElementById("ctl_zoom200").title = "200%";
  document.getElementById("ctl_zoomin").title  = bGerman ? "Vergrößern" : "Zoom In";
  document.getElementById("ctl_prev").title    = bGerman ? "Vorheriges Bild" : "Previous Image";
  document.getElementById("ctl_next").title    = bGerman ? "Nächstes Bild" : "Next Image";
  document.getElementById("ctl_help").title    = bGerman ? "Hilfe" : "Help";
  document.getElementById("ctl_close").title   = bGerman ? "Fenster schließen" : "Close Window";

  self.nImage = opener.nImage;
  self.arTopImage = opener.arTopImage;
  self.arImages = opener.arImages;

  setViewerImage(self.nImage);
}


function showPanoramaViewerHelp() {  // Aufruf aus PanoramaViewer.htm
  wndHelp = self.open("http://www.fotogalerie-helgoland.de/panorama/PanoramaViewerHelp.htm", "_Image_Viewer_Help_",
   "width=480,height=560,resizable=yes,scrollbars=yes,menubar=no,status=no,toolbar=no,directories=no");

  if (wndHelp != null) wndHelp.focus();
}


function checkClosePanoramaViewerHelp() {  // Aufruf aus PanoramaViewer.htm. Popup-Blocker stört!
  if (!this.wndHelp);
  else if (!(this.wndHelp.closed))
    this.wndHelp.close();
}


function findViewerImage(strName) {
  for (var i = 0; i < self.arImages.length; i++) {
    var arImage = self.arImages[i];
    if (typeof(arImage[0]) == "undefined") continue;

    if (arImage[0] == strName) {
      setViewerImage(i);
      return;
    }
  }
}


function setViewerImage(nImage) {
  if (self.arImages.length == 0)       return;
  if (nImage < -1)                     return;
  if (nImage >= self.arImages.length)  return;

  self.nImage = nImage;

  // Image:
  var arImage;

  if (self.nImage == -1)
    arImage = self.arTopImage;
  else
    arImage = self.arImages[self.nImage];

  if (arImage[1] != "") document.title = arImage[1];

  Viewer.setImage(
    "http://www.fotogalerie-helgoland.de/panorama/Panos/" + arImage[0] + "_pas.jpg", // img
    arImage[1], // title
    arImage[3], // projection
    arImage[4], // horzangle
    arImage[5], // startpan
    arImage[6], // starttilt
    arImage[7], // startpanspeed
    arImage[8], // starttiltspeed
    arImage[9], // startscale
    arImage[10]); // compass(north)

    // Hotspots:
    Viewer.clearAllHotspots();

    if (typeof(arImage[13]) != "undefined") {
      var arHotspots = arImage[13];

      for (var i = 0; i < arHotspots.length; i++)
        Viewer.addHotspot(arHotspots[i]);
    }
}


function setPrevImage() {
  setViewerImage(self.nImage - 1);
}


function setNextImage() {
  setViewerImage(self.nImage + 1);
}


function onLoadImage() {
   document.getElementById("status_hdr").innerHTML =
       Viewer.getTitle();
   document.getElementById("status_size").innerHTML =
       "" + Viewer.getImageWidth() + "x" + Viewer.getImageHeight() + "px  " +
       Math.round(Viewer.getImageHorzFov()) + "x" + Math.round(Viewer.getImageVertFov()) + "°";
}


function onImageMove() {
   document.getElementById("status_disp").innerHTML =
       "" + Viewer.getDispWidth() + "x" + Viewer.getDispHeight() + "px " +
       Math.round(Viewer.getDispHorzFov()) + "x" + Math.round(Viewer.getDispVertFov()) + "° " +
       Math.round(Viewer.getScale() * 100) + "%";
}


function onDoubleClick() {
   return; // not for runtime use
   document.getElementById("status_mouse").innerHTML =
       "[pan=" + Math.round(Viewer.getMousePan()) + "&tilt=" + Math.round(Viewer.getMouseTilt()) + "]";
}




/*** Aufruf durch SimpleViewer-Seite **************************************************/

function onLoadSimpleViewer() {
  var bGerman = (opener.getLang() == "de");

  var strDe = "Das Bild kann leider nicht mit dem Panorado-Viewer angezeigt werden, da Java nicht auf Ihrem Browser installiert ist!";
  var strEn = "The image can't be displayed by the Panorado viewer because Java is not installed on your browser!";

  document.getElementById("ctl_info").innerHTML    = bGerman ? strDe : strEn;
  document.getElementById("ctl_close").innerHTML   = bGerman ? "Fenster schließen" : "Close Window";

  setSimpleViewerImage();
}


function setSimpleViewerImage() {
  var arImage;

  if (self.nImage == -1)
    arImage = self.arTopImage;
  else
    arImage = self.arImages[self.nImage];

  if (arImage[1] != "") document.title = arImage[1];

  document.getElementById("img").src = "http://www.fotogalerie-helgoland.de/panorama/Panos/" + arImage[0] + "_pas.jpg";
}
