// moock fpi [f.lash p.layer i.nspector]
// version: 1.3.7
// written by colin moock
// code maintained at: http://www.moock.org/webdesign/flash/detection/moockfpi/
// terms of use posted at: http://www.moock.org/terms/
// globale Variablen
// je nach der Anforderungen anpassbar

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 = ""    // Da liegt meine Flash Seite
var noFlashPage = ""  // Seite, wenn User kein Flash besitzt oder kein Plugin festgestellt werden kann.
var upgradePage = ""  // Seite, die aufgerufen wird, wenn ein älteres Plugin festgestellt wird.
// Ab hier werden die Globalen Variablen gesetzt.
// Also mit Vorsicht verändern.
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 vorhandene 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.charAt(flashDescription.indexOf(".") - 1));
	  // wir wissen die Version, also wird das entsprechende Flag gesetzt
	  // nicht vergessen am Ende >= zu setzen, schließlich sollen zukünftige User mit Flash10
      // 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 webtv nutzen, Version 2 oder 3 wird unterstützt.
  // Masochisten können sich natürlich auch hier austoben
  if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 3;  
  // 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 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;
      }
    }
  }
}
detectFlash(); // Funktion kann ausgeführt werden, ist alles geladen.