var requiredVersion = 6;   // Version, die der User braucht, um die Seite sehen zu können (max 9, min 2)
var useRedirect = false;   // Flag wird gesetzt, um je nach Ergebnis
                           // auf eine neue Seite zu verlinken (true) oder
                           // den Film einzubinden oder alternativen HTML Inhalt einzubauen.
                           
// Die nächsten 3 Variablen werden nur benötigt, wenn useRedirect = true gesetzt wurde
// var flashPage = "start.html"      // Da liegt meine Flash Seite
// var noFlashPage = "brauche_flash.html"  // Seite, wenn User kein Flash besitzt oder kein Plugin festgestellt werden kann.
// var upgradePage = "kein_flash6.html"  // Seite, die aufgerufen wird, wenn ein älteres Plugin festgestellt wird.
// globale Variablen setzen.
var flash2Installed = false;    // boolean. wahr, wenn flash 2 installiert
var flash3Installed = false;    // boolean. wahr, wenn flash 3 installiert
var flash4Installed = false;    // boolean. wahr, wenn flash 4 installiert
var flash5Installed = false;    // boolean. wahr, wenn flash 5 installiert
var flash6Installed = false;    // boolean. wahr, wenn flash 6 installiert
var flash7Installed = false;    // boolean. wahr, wenn flash 7 installiert
var flash8Installed = false;    // boolean. wahr, wenn flash 8 installiert
var flash9Installed = false;    // boolean. wahr, wenn flash 9 installiert
var maxVersion = 9;             // höchste, feststellbare Version
var actualVersion = 0;          // Version, die der User tatsächlich besitzt
var hasRightVersion = false;    // boolean. true wenn es sicher ist den Flashinhalt einzubinden
var jsVersion = 1.0;            // benötigte Javascript Version

// Ist IE vorhandener Browser?
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;    // true, wenn IE
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false; // true, wenn Betriebssystem windows
// tja ein JavaScript 1.1 Block
jsVersion = 1.1;
// VbScript, IE für Windows untersützt nicht die JavaScript plugins array Abfrage.
if(isIE && isWin){
  document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
  document.write('on error resume next \n');
  document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
  document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
  document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
  document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');  
  document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');  
  document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
  document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
  document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
  document.write('<\/SCR' + 'IPT\> \n');
}
// Standard-JavaScript, welches das navigator.plugins array nutzt
// das Ermitteln der Version wird in eine Funktion gepackt, damit erst das Ergebnis feststeht, bevor das Script läuft
function detectFlash() {  
// existiert das navigator.plugins array?
  if (navigator.plugins) {
// ja ->> dann ist es flash 2 oder höher als version 3
    if (navigator.plugins["Shockwave Flash 2.0"]
        || navigator.plugins["Shockwave Flash"]) {
// Es ist also ein FlashPlugin entdeckt, Zeit heraus zufinden welches
// Referenz auf flash 2 und die plugin description
      var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
// Die plugin-description sieht so aus: Shockwave Flash 4.0 r5
// also wird der Wert vor dem Punkt ausgelesen
      var flashVersion = parseInt(flashDescription.substring(16));
// wir wissen die Version, also wird das entsprechende Flag gesetzt
// nicht vergessen am Ende >= zu setzen, schließlich sollen zukünftige User mit Flash7
// nicht ausgeschlossen werden, oder?
      flash2Installed = flashVersion == 2;    
      flash3Installed = flashVersion == 3;
      flash4Installed = flashVersion == 4;
      flash5Installed = flashVersion == 5;
      flash6Installed = flashVersion == 6;
      flash7Installed = flashVersion == 7;
      flash8Installed = flashVersion == 8;
      flash9Installed = flashVersion >= 9;
    }
  }
// alle überprüfbaren Versionen werden durchlaufen, die aktuelle Version wird auf die höchste feststellbare Version gesetzt
  for (var i = 2; i <= maxVersion; i++) {  
    if (eval("flash" + i + "Installed") == true) actualVersion = i;
  }
// wenn wir msntv nutzen, Version 4 wird unterstützt.
  if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 4;  
// nur zum Debugging:
// nächste Zeile kann aktiviert werden, um die aktuelle Version anzeigen zu lassen
// alert("version detected: " + actualVersion);
// Ende Versionskontrolle
// hat der Besucher die ausreichende Version...
  if (actualVersion >= requiredVersion) {
// ...dann wird er auf die FlashSeite gelenkt, so fern das in der fpi-init.js festgelegt wurde
    if (useRedirect) {
// JavaScript1.1 wird gebraucht, um die Methode location.replace benutzen zu können.
      if(jsVersion > 1.0) {
// Sicher ist replace(). So funktioniert auch der back button.
        window.location.replace(flashPage);  
      } else {
// JavaScript Version zu alt, so dann wird .location benutzt um zur FlashSeite zu gelangen.
        window.location = flashPage;
      }
    }
// flag: object/embed tags können später eingebunden werden
    hasRightVersion = true;                
  } else {  
// Der Benutzer hat keine ausreichende Version.
// Wenn die Redirect Option angeschaltet ist, lade die alternative Seite
    if (useRedirect) {
// siehe oben
      if(jsVersion > 1.0) {
        window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);
      } else {
        window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;
      }
    }
  }
}
// Funktion kann ausgeführt werden, ist alles geladen.
