/*****************************************************************************************************
**
** TOOL - FLASH CHECK V2
**
** Dateiname:                        flcheck_v2.js
** Letzte Änderung:                10.10.2003
** Programmierer:                Heiko Pfefferkorn (o2cell.com) (work: i-fabrik.de)
**
*****************************************************************************************************
**
** INFOMATION
**
** Vielen Dank an Colin Moock (moock.org). Von ihm stammt das eigentliche Grundgerüst dieses Scriptes.
** Anpassung, Abänderung bzw. Modifizierung wurden von Heiko Pfefferkorn durchgeführt.
**
****************************************************************************************************/


/*****************************************************************************************************
**
** ACHTUNG
**
** Ich möchte darauf hinweisen das die dem Script beiliegende SWF-Datei nur für Demonstrationszwecke,
** nicht zum Einbau in externe bzw. fremde Seiten oder zum Schmücken jener, gedacht ist.
**
****************************************************************************************************/


/*****************************************************************************************************
** ANWENDUNG:
**
** Benutze folgenden Codeblock (von "<script language="JavaScript">" bis "</noscript>")
** um Flash oder um einen selbstdefinierbaren "No-Flash-Standard-String" oder einen
** selbstdefinierbaren "No-Script-String" anzuzeigen!
*****************************************************************************************************
** BLOCK:
**
** <script language="JavaScript">
** var flashVersion = 5;
** var stringFlash = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '
**                             + 'width="200" height="170" id="yourID" align=""> '
**                             + '<param name="movie" value="your.swf"> '
**                                 + '<param name="flashvars" value="varName=varValue"> '
**                             + '<param name="loop" value="false"> '
**                             + '<param name="menu" value="false"> '
**                             + '<param name="quality" value="best"> '
**                             + '<param name="bgcolor" value="#ffffff"> '
**                             + '<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" '
**                                 + 'src="your.swf" '
**                             + 'width="200" height="170" '
**                                 + 'flashvars="varName=varValue" '
**                             + 'loop="false" '
**                                 + 'menu="false" '
**                                 + 'quality="best" '
**                                 + 'bgcolor="#ffffff" '
**                                 + 'name="yourID" align=""> '
**                                 + '</embed></object>';
**
** var stringNoFlash = '<font face="Verdana" size="1" color="#cccccc">'
**                                 + '<b>You don not have the actuell Macromedia Flash Plugin</b>'
**                                 + '</font>';
**
** writeFlash(stringFlash, stringNoFlash, flashVersion);
** </script>
** <noscript>Javascript not supported</noscript>
**
*****************************************************************************************************
** flashVersion                = die Flashversion die das aktuelle SWF-File hat bzw. die Version ab der sie
**                                          das Flash anzeigen wollen. Geben Sie zum Beispiel als Version max. 5 an und
**                                          haben Ihr SWF aber mit Version 6 veröffentlicht dann steht das meisten noch
**                                          mit im "object" - Tag.
**                                          Sind also die "2" Flashversionen unterschiedlich dann wird immer autom. die
**                                          genommen die im "object" - Tag steht
** stringFlash                = der string der ausgegeben wird wenn die Flashversion bei dem User
**                                          korrekt ist (flashVersion)
** stringNoFlash        = der string der ausgegeben wird wenn die Flashversion bei dem User nicht mit
**                                          "flashVersion" übereinstimmt bzw. kein Flash erkannt wurde
** noScript-Tag                = das müsste ja wohl jeder wissen :-)
****************************************************************************************************/


/* System
---------*/
var flash2Installed = false;        // wahr wenn flash 2 installiert ist
var flash3Installed = false;        // wahr wenn flash 3 installiert ist
var flash4Installed = false;        // wahr wenn flash 4 installiert ist
var flash5Installed = false;        // wahr wenn flash 5 installiert ist
var flash6Installed = false;        // wahr wenn flash 6 installiert ist
var flash7Installed = false;        // wahr wenn flash 7 installiert ist
var maxVersion                 = 7;                // die Version die momentan maximal gecheckt wird
var actualVersion         = 0;                // die version die der User hat
var hasRightVersion = false;        // wahr wenn der User die richtige Version hat

var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;            // TRUE wenn IE
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false; // TRUE wenn auf Windows


/* VB-Script Detection beim MsIe auf Windows, da MsIe bei Windows
-- regular JavaScript Plugins nicht unterstützt
-------------------------------------------------------------------*/
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('</SCR' + 'IPT\> \n');
}


/* Detect Flash
---------------*/
function detectFlash(flV) {
        // existiert navigator.plugins
        if (navigator.plugins) {
                // check für flash 2 oder flash 3+
                if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
                        var isVersion2                         = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
                        var flashDescription         = navigator.plugins["Shockwave Flash" + isVersion2].description;

                        //alert("Flash plugin description: " + flashDescription);

                        var flashVersion                 = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
                     flash2Installed                 = flashVersion == 2;
                        flash3Installed                 = flashVersion == 3;
                        flash4Installed                 = flashVersion == 4;
                        flash5Installed                 = flashVersion == 5;
                        flash6Installed                 = flashVersion == 6;
                        flash7Installed                 = flashVersion >= 7;
                }
        }

        for (var i = 2; i <= maxVersion; i++) {
                if (eval("flash" + i + "Installed") == true) actualVersion = i;
        }

        if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 3;

        //alert("version detected: " + actualVersion);

        if (actualVersion >= flV) {
                hasRightVersion = true;
        } else {
                hasRightVersion = false;
        }
}


/* Schreibe Flash
-----------------*/
function writeFlash(strFlash, strNoFlash, flVersion) {
        /* steht in "strFlash" im object-Tag eine Version und diese ist ungleich
        ** mit der bereits angegebenen Version in "flVersion" dann wird "flVersion"
        ** auf die Version aus dem object-Tag gesetzt
        --------------------------------------------------------------------------*/
        var posVersion = strFlash.search(/#version=.+/);
        if(posVersion != -1) {
                var objectTagVersion = strFlash.substring(posVersion+9,posVersion+10);
                if (objectTagVersion != flVersion) {
                        flVersion = objectTagVersion;
                }
        }

        // alert(flVersion);

        // detect flash version
        detectFlash(flVersion);

        if(hasRightVersion) {
                // schreibe flash-string
                document.write(strFlash);
        } else {
                // schreibe kein-Flash-String
                document.write(strNoFlash);
        }
}