
/* ====================================================================================

   Datei:               funclib.js
   Erstellt von:        gero.meissner@heinze.de
   Version:             3.01.00
   Erstellt am:         11. Januar 2002
   Beschreibung:        JavaScript-Funktionsbibliothek

   Aenderungsprotokoll: 11.01.2008 (GM)
                        - Definieren der Funktion 'toggleZoom'
   
                        14.11.2007 (GM)
                        - Definieren der Funktion 'showZoom'
                        - Definieren der Funktion 'toggleZoom'
                        - Entfernen der Funktion 'showGDLObject'
                        - Entfernen der Funktion 'showZoomImage'
                        - Entfernen der Funktion 'zoom'
   
                        08.01.2004 (GM)
                        - Modifizieren der Funktion 'loadMapImages'

   ==================================================================================== */

/* DEFINITION GLOBALER VARIABLEN ====================================================== */

rolloverImagesOn = new Array();
rolloverImagesOff = new Array();


/* FUNKTIONEN ========================================================================= */

/* ====================================================================================
//
// Funktion 'loadMapImages' zum Laden der Bilddateien fuer die interaktive Landkarte
//
// Parameter:
//   artwork  = Verzeichnis der Bilddateien
//   plzListe = Zeichenkette mit allen vorliegenden PLZ-Gebieten
//   motiv    = Bildmotiv fuer die interaktive Landkarte
//              'tw' e {0,1} => t .. Telefon; w .. Weltkugel
//
// ==================================================================================== */
function loadMapImages(artwork,plzListe,motiv) {

  var image;
  var postcodes = plzListe.split("-");

  //-- Laden der Bilddateien zu den ermittelten Postleitzahlen
  for (var i = 0; i < postcodes.length; i++) {
    image = 'plz' + postcodes[i];

    while (postcodes[i].length < 3) {postcodes[i] = "0" + postcodes[i];}
    rolloverImagesOn[image] = new Image();
    rolloverImagesOn[image].src = artwork + "map" + postcodes[i] + motiv + ".jpg";
  }

  rolloverImagesOff['plz'] = new Image();
  rolloverImagesOff['plz'].src = artwork + "map" + motiv + ".jpg";
}


/* ====================================================================================
//
// Funktion 'loadRolloverImages' zum Laden der Bilddateien bei wechselnder Darstellung
//
// Parameter:
//   imageName = Bezeichnung des Bildes
//   imageOn   = Bilddatei fuer den Status 'On'
//   imageOff  = Bilddatei fuer den Status 'Off'
//
// ==================================================================================== */
function loadRolloverImages(imageName,imageOn,imageOff) {

  if (imageOn.length > 0) {
    rolloverImagesOn[imageName] = new Image();
    rolloverImagesOn[imageName].src = imageOn;
  }
  
  if (imageOff.length > 0) {
    rolloverImagesOff[imageName] = new Image();
    rolloverImagesOff[imageName].src = imageOff;
  }
}


/* ====================================================================================
//
// Funktion 'showRolloverOn' zum Zuweisen der entsprechenden Abbildung beim Ereignis 
// 'onMouseOver'
//
// Parameter:
//   imageName = Bezeichnung des Bildes
//   srcName   = Bezeichnung des auszutauschenden Bildes
//
// ==================================================================================== */
function showRolloverOn(imageName,srcName) {

  if (rolloverImagesOn[srcName]) {
    document.images[imageName].src = rolloverImagesOn[srcName].src;
  }
}


/* ====================================================================================
//
// Funktion 'showRolloverOff' zum Zuweisen der entsprechenden Abbildung beim Ereignis
// 'onMouseOut'
//
// Parameter:
//   imageName = Bezeichnung des Bildes
//   srcName   = Bezeichnung des auszutauschenden Bildes
//
// ==================================================================================== */
function showRolloverOff(imageName,srcName) {

  if (rolloverImagesOff[srcName]) {
    document.images[imageName].src = rolloverImagesOff[srcName].src;
  }
}


/* ====================================================================================
//
// Funktion 'showZoom' zum Anzeigen der vergroesserten Darstellung in einem
// separaten Fenster
//
// Parameter:
//   imagePath = Pfad der Bilddatei
//
// ==================================================================================== */
function showZoom(imagePath) {

  var image = new Image();
  image.src = imagePath;

  //-- Initialisieren lokaler Variablen
  var iWidth = image.width, iHeight = image.height;
  var sWidth = screen.availWidth ? screen.availWidth : screen.width;
  var sHeight = screen.availHeight ? screen.availHeight : screen.height;
  var left = Math.round((sWidth-iWidth)/2), top = Math.round((sHeight-iHeight)/2);
  var options = 'width='+iWidth+',height='+iHeight+',left='+left+',top='+top;
  var imageURL = image.src;

  //-- Erzeugen des Popup-Fensters
  var popup = window.open('','_blank',options);
  if (!popup) {return true;}

  //-- Zuweisen der Inhalte zum Popup-Fenster
  with (popup.document) {
    open();
    write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"');
    write(' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n');
    write('<html xmlns="http://www.w3.org/1999/xhtml">\n');
    write('<head>\n');
    write('<title>Zoom<\/title>\n');
    write('<\/head>\n');
    write('<body style="padding:0px;margin:0px;">');
    write('<img src="'+imageURL+'" alt="Schlie&#223;en" title="Schlie&#223;en"');
    write(' style="cursor:pointer;" onclick="javascript:window.close();" />');
    write('<\/body>\n');
    write('<\/html>');
    close();
  }
  popup.focus();
}


/* ====================================================================================
//
// Funktion 'toggleZoom' zum Anzeigen der vergroesserten Darstellung in einem
// separaten Panel
//
// Parameter:
//   source = Pfad der Bilddatei
//   width  = Breite der Abbildung
//   height = Hoehe der Abbildung
//
// ==================================================================================== */
function toggleZoom(source,width,height) {

  var panel = new YAHOO.widget.Panel("zoom", {
    close:true,
    visible:false,
    draggable:true,
    fixedcenter:true,
    constraintoviewport:true,
    effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:1}
  });

  var content = '<div style="width:'+width+'px;height:'+height+'px;">'
              + '<img src="'+source+'" alt="" title="" style="border:0px;"/>'
              + '</div>';

  panel.setHeader('Zoombild');
  panel.setBody(content);
  panel.render(document.body);
  panel.show();
}


/* ====================================================================================
//
// Funktion 'changeLocation' zum Verzweigen zur ausgewaehlten Gruppe von Objekten
//
// Parameter:
//   keine
//
// ==================================================================================== */
function changeLocation() {

  var formular = document.anker;
  var href = window.location.href;
  var auswahl = formular.auswahl.options[formular.auswahl.selectedIndex].value;
  var index;

  if (auswahl != 'nothing') {
    formular.auswahl.options[0].selected = true;
    index = href.lastIndexOf('#');
    if (index != -1) {href = href.substring(0, index);}
    href += '#' + auswahl;
    window.location = href;
  }
}


/* ====================================================================================
//
// Funktion 'openWindow' zum Oeffnen eines neuen Browserfensters
//
// Parameter:
//   location = URL des zu oeffnenden Dokumentes
//   width    = Breite des Browser-Fensters
//   height   = Hoehe des Browser-Fensters
//
// ==================================================================================== */
function openWindow(location,width,height) {

  var offsetX, offsetY;

  //-- vertikal und horizontal zentrieren
  if (document.all) {
    offsetX = (screen.width - width) / 2;
    offsetY = (screen.height - height) / 2;
  } else {
    offsetX = (window.innerWidth - width) / 2;
    offsetY = (window.innerHeight - height) / 2;
  }

  //-- Parameter festlegen (ohne Leerzeichen!)
  var features = "width=" + width +
                 ",height=" + height +
                 ",screenX=" + offsetX +
                 ",screenY=" + offsetY +
                 ",left=" + offsetX +
                 ",top=" + offsetY +
                 ",scrollbars=yes" +
                 ",dependent=no" +
                 ",directories=no" +
                 ",fullscreen=no" +
                 ",location=no" +
                 ",menubar=yes" +
                 ",resizable=yes" +
                 ",status=no" +
                 ",toolbar=no";
                 
  var popup = window.open(location, 'Popup', features);
  popup.focus();
}


/* ====================================================================================
//
// Funktion 'openExtLinkWindow' zum Oeffnen eines neuen Browser-Fensters mit einem 
// externen Link
//
// Parameter:
//   url    = URL des zu oeffnenden Dokumentes
//   width  = Breite des Browser-Fensters
//   height = Hoehe des Browser-Fensters
//
// ==================================================================================== */
function openExtLinkWindow(url,width,height) {

  var offsetX, offsetY;

  //-- vertikal und horizontal zentrieren
  if (document.all) {
    offsetX = (screen.width - width) / 2;
    offsetY = (screen.height - height) / 2;
  } else {
    offsetX = (window.innerWidth - width) / 2;
    offsetY = (window.innerHeight - height) / 2;
  }

  //-- Parameter festlegen (ohne Leerzeichen!)
  var features = "width=" + width +
                 ",height=" + height +
                 ",screenX=" + offsetX +
                 ",screenY=" + offsetY +
                 ",left=" + offsetX +
                 ",top=" + offsetY +
                 ",scrollbars=yes" +
                 ",dependent=no" +
                 ",directories=no" +
                 ",fullscreen=no" +
                 ",location=yes" +
                 ",menubar=yes" +
                 ",resizable=yes" +
                 ",status=yes" +
                 ",toolbar=yes";

  var popup = window.open(url, 'ExtLink', features);
  popup.focus();
}


/* ====================================================================================
//
// Funktion 'handleInvLink' zur Ausgabe einer Mitteilung bzgl. eines ungueltigen Links
//
// Parameter:
//   key = Schluessel des ungueltigen Links
//
// ==================================================================================== */
function handleInvLink(key) {

  alert('Inhalte zu dieser Information sind leider nicht vorhanden (' + key + ')!');
}


/* ====================================================================================
//
// Funktion 'downloadMessage' zur Ausgabe einer Mitteilung zur Durchfuehrung eines
// Datei-Downloads
//
// Parameter:
//   keine
//
// ==================================================================================== */
function downloadMessage() {

  var agent = navigator.userAgent.toLowerCase();
  var is_de, is_en;

  //-- Ueberpruefung auf Netscape Navigator
  var is_navigator = ((agent.indexOf('mozilla') != -1) &&
                      (agent.indexOf('spoofer') == -1) &&
                      (agent.indexOf('compatible') == -1) &&
                      (agent.indexOf('opera') == -1) &&
                      (agent.indexOf('webtv') == -1) &&
                      (agent.indexOf('hotjava') == -1));

  //-- Ueberpruefung auf Microsoft Internet Explorer
  var is_iexplorer = ((agent.indexOf('msie') != -1) &&
                      (agent.indexOf('opera') == -1));

  //-- Ueberpruefung auf Opera
  var is_opera = (agent.indexOf('opera') != -1);

  //-- Ermitteln der vorliegenden Sprache
  if (is_iexplorer) {
    is_de = (navigator.userLanguage.toLowerCase() == 'de');
    is_en = (navigator.userLanguage.toLowerCase() == 'en');
  } else {
    is_de = (navigator.language.toLowerCase() == 'de');
    is_en = (navigator.language.toLowerCase() == 'en');
  }

  //-- Auswertung der ermittelten Werte
  var save_as = 'Save Link as...';
  if (is_navigator && is_de) {
    save_as = 'Verknuepfung speichern unter...';
  } else if (is_navigator && is_en) {
    save_as = 'Save Link as...';
  } else if (is_iexplorer && is_de) {
    save_as = 'Ziel speichern unter...';
  } else if (is_iexplorer && is_en) {
    save_as = 'Save Target as...';
  } else if (is_opera && is_de) {
    save_as = 'Link speichern unter...';
  } else if (is_opera && is_en) {
    save_as = 'Save Link as...';
  }

  //-- Ausgeben der Hinweismeldung
  var hinweis = "Download-Hinweis:\n\n" +
                "Bitte klicken Sie mit der rechten Maustaste auf das\n" +
                "Download-Symbol und waehlen Sie im Kontext-Menue\n" +
                "den Eintrag\n\n" + save_as;
  alert(hinweis);
}

