var bildIndex = -1;
var bildNamList = new Array;
var bildTexList = new Array;
var bild1stList = new Array;

var autom = 0;
var fading = null;
var diashow = null;
var warten = 0;
var index = 0;
var pic = null;

var sw = null; // Sommer/Winter-Schalter

// Play-String für FLASH-Videos zusammenbauen
var videoPlay =
   'http://www.vorarlbergvonoben.at/FlowPlayerClassic.swf?config={' +
   'embedded:true,' +
   'baseURL:"http://www.vorarlbergvonoben.at/",' +
   'autoBuffering:true,' +
   'autoPlay:true,' +
   'videoFile:"http://video.vol.at/media/video/';

var videoPlay2 = '_HD.mp4"}';

// Attribute für EMBED zusammenstellen
var videoAttribs =
   ' width="640" height="480" ' +
   'type="application/x-shockwave-flash" ' +
   'allowFullScreen="true" ' +
   'allowScriptAccess="never" ' +
   'allowNetworking="all"';

function Drucken()
{
   parent.mainframe.focus();
   parent.mainframe.print();
}

function sowi()
{
   var datum = new Date();
   if ((datum.getMonth() >= 4) && (datum.getMonth() <= 9))
      return 'sommer'
   else
      return 'winter';
}

function Zurueck()
{
   history.back();
}

// -------------------------------------------------------------------------------------
// Bildanzeige mit Diashow für alle Bildergalerien
// -------------------------------------------------------------------------------------
function ladeBilder()
{
   var bc = 0;
   var bildName;
   var prevPath = "";

   parent.navframe.bildNamList.length = 0;
   parent.navframe.bildTexList.length = 0;
   parent.navframe.bild1stList.length = 0;

   while (bc < document.images.length)
   {
      // Namen des Bildes aus der Image-Liste erzeugen
      bildName = document.images[bc].src.toLowerCase();
      bildName = bildName.substr(1 + bildName.lastIndexOf('/'));

      // Prüfen ob dieses Bild ein Vorschau-Thumbnail ist
      if (0 <= bildName.lastIndexOf('tn_'))
      {
         // Bildnamen in die Liste eintragen, außerdem Namen des aktuellen Bildes merken
         bildName = document.images[bc].src.toLowerCase();
         parent.navframe.bildNamList.push (bildName);

         // Bildunterschrift entweder aus dem Titel des Bildes oder aus dem ALT-Tag entnehmen
         if (document.images[bc].title)
            parent.navframe.bildTexList.push (document.images[bc].title);
         else
            parent.navframe.bildTexList.push (document.images[bc].alt);

         // Markierung auf das 1. Bild setzen
         if (bc == 0 || bildName.substr(0, bildName.lastIndexOf('/')) != prevPath)
            parent.navframe.bild1stList.push(true);
         else
            parent.navframe.bild1stList.push(false);

         // Pfad des aktuellen Bildes merken
         prevPath = bildName.substr(0, bildName.lastIndexOf('/'));
      }

      // Listenzähler heraufsetzen
      bc++;
   }

   // Zusätzlich ein Stopzeichen an die Liste anfügen
   parent.navframe.bild1stList.push(true);
}

function startebild(obj)
{
   var thumbName;
   var bildName;

   // Feststellen, ob das angeklickte Objekt ein Bild ist
   if (obj.src)
      thumbName = obj.src.toLowerCase();
   else
      return;

   // Bild in der Namensliste suchen
   parent.navframe.bildIndex = -1;
   for (var bc = 0; bc < parent.navframe.bildNamList.length; bc++)
   {
      if (thumbName == parent.navframe.bildNamList[bc])
      {
         parent.navframe.bildIndex = bc;
         break;
      }
   }

   // Bild-Seite anzeigen
   if (parent.navframe.bildIndex >= 0)
      parent.mainframe.location.href = '/images/zeigebild.htm';
}

function erzeugeBild(index)
{
   var bildName;
   var bildText;

   // Thumb-Namen aus der Liste extrahieren
   bildName = bildNamList[index];
   bildName = bildName.replace ('tn_', '');
   bildName = bildName.replace ('_jpg', '');

   // Bildunterschrift aus der Liste extrahieren
   bildText = bildTexList[index];

   // Bild finden, Dateinamen und Unterschrift zuordnen
   var bild = document.images.bild;
   bild.src = bildName;
   bild.title = bildText;

   // Warten bis das Bild vollständig geladen ist
   pic = new Image();
   var unterText = document.getElementById('unterschrift');
   while (!pic.complete)
   {
      pic.src = bild.src;
      unterText.innerHTML = "Bild wird geladen";
   }
   unterText.innerHTML = null;

   // Größe des Bildes anpassen, wenn das Fenster sich ändert
   window.onresize = bildresize;
}

function erzeugeText(index)
{
   var unterText = document.getElementById('unterschrift');
   unterText.innerHTML = bildTexList[index];
}

// Ein- und Ausblenden der Bedienungslinks unter dem Bild
function erzeugeLinks(index, autom, off)
{
   var tableDetail;

   tableDetail = document.getElementById('vorBild');
   if (!bild1stList[index] && !autom && !off)
      tableDetail.innerHTML = '<a href="javascript:fadeImg(0,' + "'vorigesBild'" + ')">Voriges Bild</a>';
   else
      tableDetail.innerHTML = 'Voriges Bild';

   tableDetail = document.getElementById('zurueck');
   if (!off)
      tableDetail.innerHTML = '<a href="javascript:fadeImg(0,' + "'Zurueck'" + ')">Beenden</a>';
   else
      tableDetail.innerHTML = 'Beenden';

   tableDetail = document.getElementById('diashow');
   if (!off)
      tableDetail.innerHTML = '<a href="javascript:autotoggle()">Diashow ' + (autom ? 'Stop' : 'Start') + '</a>';
   else
      tableDetail.innerHTML = 'Diashow ' + (autom ? 'Stop' : 'Start');

   tableDetail = document.getElementById('nachBild');
   if (!bild1stList[index + 1] && !autom && !off)
      tableDetail.innerHTML = '<a href="javascript:fadeImg(0,' + "'naechstesBild'" + ')">Nächstes Bild</a>';
   else
      tableDetail.innerHTML = 'Nächstes Bild';
}

// Ein- und Ausblenden des Bildes
function fadeImg(dir, func, step)
{
   // Bild-Element im Dokument suchen. Beenden, falls kein Bild vorhanden
   var bild = document.images.bild;
   if (!bild || !bild.src)
      return;

   // Richtungsparameter normalisieren: 1 = Einblenden, 0 = Ausblenden
   if (dir != 1)
      dir = 0;

   // Falls kein Schrittwert angegeben, initialisieren
   if (step == null)
      step = 100 - dir * 100;

   // Falls schon ein Fade-Vorgang läuft, unterbrechen
   if (fading)
      window.clearInterval(fading);

   // Bedienungselemente abschalten, falls dies der erste Aufruf ist
   if (step == 100 || step == 0)
      erzeugeLinks(bildIndex, autom, 1);

   // Bildgröße anpassen, falls das Einblenden gerade beginnt
   if (step == 0)
      bildresize();

   // Opazitätswert herauf- oder heruntersetzen
   step += ((dir * 2) - 1) * 3;

   // Opazitäts-Werte für das Bild setzen, zur Sicherheit gesondert für IE
   bild.style.opacity = step/100; // non-IE
   bild.style.filter = "alpha(opacity=" + step.toString() + ")"; // IE

   // FadeImg per TimeOut wiederholen bis 0 oder 100% erreicht ist.
   if (dir == 1) // Einblenden
   {
      if(step <= 100)
         fading = window.setTimeout("fadeImg(1, null, " + step.toString() + ")", 1);
      else
         erzeugeLinks(bildIndex, autom, 0);
   }
   else // Ausblenden
   {
      if(step >= 0)
         fading = window.setTimeout("fadeImg(0, " + func.toString() + ", " + step.toString() + ")", 1);
      else
      {
         if (func != null)
            func();
      }
   }
}

// Zum vorigen Bild gehen. Wenn die untere Stop-Markierung erreicht ist, zurückspringen zur oberen Stop-Markierung
function vorigesBild()
{
   // Nächsten Bildindex berechnen
   if (!bild1stList[bildIndex])
      bildIndex--;
   else
      while (!bild1stList[bildIndex + 1])
         bildIndex++;

   // Bild vorbereiten
   erzeugeBild(bildIndex);
   erzeugeText(bildIndex);

   // Bild einblenden, Links wieder einschalten
   fadeImg(1);

}

// Zum nächsten Bild gehen. Wenn die nächste Stop-Markierung erreicht ist, zurückspringen zur vorigen Stop-Markierung
function naechstesBild()
{
   // Nächsten Bildindex berechnen
   if (!bild1stList[bildIndex + 1])
      bildIndex++;
   else
      while (!bild1stList[bildIndex])
         bildIndex--;

   // Falls die Diashow aktiv ist, Timer setzen für das nächste Bild
   if (autom)
      diashow = window.setTimeout("fadeImg(0, 'naechstesBild')", 5000);

   // Bild vorbereiten
   erzeugeBild(bildIndex);
   erzeugeText(bildIndex);

   // Bild einblenden, Links wieder einschalten
   fadeImg(1);
}

// Größe des Bildes auf den verfügbaren Platz anpassen
function bildresize()
{
   var vp = 0.8;
   var fh = vp * document.body.clientHeight;
   var fw = vp * document.body.clientWidth;

   // Bild-Element im Dokument suchen. Beenden, falls kein Bild vorhanden
   var bild = document.getElementById('bild');
   if (!bild || !bild.src)
      return;

   if (!pic)
   {
      pic = new Image();
      pic.src = bild.src;
      warten = window.setInterval('bildresize()', 1);
   }

   if (!pic.complete)
      return;

   bildweite = pic.width;
   bildhoehe = pic.height;

   window.clearInterval(warten);
   pic = null;

   var bw = bild.width ? bild.width : bildweite;
   var bh = bild.heigth ? bild.heigth : bildhoehe;
   var rel = bildweite / bildhoehe;

   if ((fw < bildweite) || (fh < bildhoehe))
      bild.width = Math.min (fw, fh * rel);
   else
      bild.width = Math.min (bildweite, bildhoehe * rel);
}

// Diashow an- oder ausschalten
function autotoggle()
{
   autom = !autom;
   if (autom)
      naechstesBild();
   erzeugeLinks (bildIndex, autom);

}
// ------------------------------------------------------------------------------------
// Diashow der 19 Gemeinden auf der Startseite
// ------------------------------------------------------------------------------------
function nextGem(gem)
{
   var path = parent.mainframe.location.pathname;
   var page = path.substr(1 + path.lastIndexOf('/'), 1);
   parent.location = '/19-walsergemeinden/' + gem + '/index.php?s=' + page.toLowerCase();
}

function loadGem()
{
   bildNamList.length = 0;
   bildTexList.length = 0;

   bildNamList.push ('blons');             bildTexList.push ('Blons (Großes Walsertal)');
   bildNamList.push ('brand');             bildTexList.push ('Brand');
   bildNamList.push ('buerserberg');       bildTexList.push ('Bürserberg');
   bildNamList.push ('damuels');           bildTexList.push ('Damüls (Bregenzerwald)');
   bildNamList.push ('duenserberg');       bildTexList.push ('Dünserberg');
   bildNamList.push ('ebnit');             bildTexList.push ('Ebnit');
   bildNamList.push ('fontanella');        bildTexList.push ('Fontanella (Großes Walsertal)');
   bildNamList.push ('galtuer');           bildTexList.push ('Galtür (Tirol)');
   bildNamList.push ('laterns');           bildTexList.push ('Laterns');
   bildNamList.push ('lech');              bildTexList.push ('Lech am Arlberg');
   bildNamList.push ('mittelberg');        bildTexList.push ('Mittelberg (Kleinwalsertal)');
   bildNamList.push ('raggal');            bildTexList.push ('Raggal (Großes Walsertal)');
   bildNamList.push ('schroecken');        bildTexList.push ('Schröcken (Bregenzerwald)');
   bildNamList.push ('silbertal');         bildTexList.push ('Silbertal (Montafon)');
   bildNamList.push ('st_gerold');         bildTexList.push ('St. Gerold (Großes Walsertal)');
   bildNamList.push ('sonntag');           bildTexList.push ('Sonntag (Großes Walsertal)');
   bildNamList.push ('thueringerberg');    bildTexList.push ('Thüringerberg (Großes Walsertal)');
   bildNamList.push ('triesenberg');       bildTexList.push ('Triesenberg (Liechtenstein)');
   bildNamList.push ('warth');             bildTexList.push ('Warth');

   index = Math.floor(bildNamList.length * Math.random());

   showGem();
}

// Nächste Gemeinde einblenden
function showGem()
{
   // Bild-Element im Dokument suchen
   bild = document.getElementById('gemeinde');

   // Neuen Namen erzeugen
   var newSrc = '/images/gemeinden/' + sowi() + '/' + bildNamList[index] + '.jpg';

   // Falls das Bild mit dem neuen Namen noch nicht geladen wurde, neues Bild
   // laden und zunächst durchsichtig machen
   if (bild.src != newSrc)
   {
      bild.src = '/images/gemeinden/' + sowi() + '/' + bildNamList[index] + '.jpg';
      bild.style.opacity = 0; // non-IE
      bild.style.filter = "alpha(opacity=0)"; // IE
   }

   // Feststellen, ob das Bild komplett geladen wurde. Falls nicht, Funktion
   // beenden und in 1 ms erneut aufrufen lassen
   if (!pic)
   {
      pic = new Image();
      pic.src = bild.src;
   }

   if (!pic.complete)
   {
      window.setTimeout("showGem()", 1);
      return;
   }
   else
      pic = null;

   // Namen eintragen
   var ortsname = document.getElementById('ortsname');
   ortsname.innerHTML = bildTexList[index];
   bild.title = "Walsergemeinde " + bildTexList[index];

   // Link eintragen
   link = document.getElementById('gemlink');
   link.href = '/19-walsergemeinden/' + bildNamList[index];

   // Index auf das nächste Bild setzen
   if (++index >= bildNamList.length)
      index = 0;

   // Aufblende-Funktion starten
   fade(0, false);
}

// ------------------------------------------------------------------------------------
// Ein- und Ausblenden
// ------------------------------------------------------------------------------------
function fade(step, out)
{
   var delay;

   // Bild-Element im Dokument suchen
   bild = document.getElementById('gemeinde');

   // Beenden, falls kein Bild vorhanden
   if (!bild.src) return;

   // Opazitäts-Werte für das Bild setzen, zur Sicherheit gesondert für IE
   bild.style.opacity = step/100; // non-IE
   bild.style.filter = "alpha(opacity=" + step.toString() + ")"; // IE

   // Ein- oder Ausblenden
   if (out == false)
   {
      step += 2;
      delay = 1;

      // Fade In wiederholen bis 100% erreicht, dann Fade Out mit 5 s Verzögerung aufrufen
      if (step > 100)
      {
         out = true;
         step = 100;
         delay = 5000;
      }
      window.setTimeout("fade(" + step.toString() + ", " + out.toString() + ")", delay);
   }
   else
   {
      step -= 2;
      delay = 1;

      // Fade Out wiederholen bis 0% erreicht, dann zur nächsten Gemeinde wechseln
      if (step > 0)
         window.setTimeout("fade(" + step.toString() + ", " + out.toString() + ")", delay);
      else
         window.setTimeout("showGem()", delay);
   }
}
