/***
 * Javascript Flash Detection (14.02.2005)
 * (c) Oliver Nowak
 * http://www.deydesigns.com
 *
 * Syntax:
 * [variable = ] flash_detection(required, max);
 *
 *
 * @param     integer    benötigte Flash Plugin Version
 * @param     integer    maximal zu prüfende Versionen
 * @return    array      vorhandene Version (0 = kein Flash Plugin installiert)
 *                       und benötigte Version (integer)
 *
 *
 * Hinweise:
 *
 * Wie wir ja alle wissen gibt es keine 100% zuverlässige Flash Detection,
 * und genauso verhält es sich mit dieser. Sie wird nicht mit allen Systemen
 * funktionieren. Wie dem auch sei, sie wurde erfolgreich getestet unter
 * WindowsXP (SP1) mit MSIE 6, NS 7.1, Opera 7.11, Mozilla 1.4 und Firefox 1.0
 *
 *
 * Nicht vergessen, credits where they are due.
 */
function flash_detection(required, max)
{
    var required_version = required;
    var max_version = max;
    var available_version = 0;

    /* dieser Abschnitt ist für NS, Mozilla, Firefox und ähnliche Browser */
    if(typeof(navigator.plugins["Shockwave Flash"]) == "object")
    {
        /***
         * Wenn wir hier landen, dann ist Flash installiert, und wir können die Version
         * aus der Beschreibung auslesen.
         */
        var description = navigator.plugins["Shockwave Flash"].description;
        available_version = description.substr(16, (description.indexOf(".", 16) - 16));
    }
    /***
     * dieser Abschnitt ist für den IE und ähnliche Browser die ActiveX benutzen um Flash
     * anzuzeigen.
     */
     else if(typeof(ActiveXObject) == "function")
    {
        /* durchlaufen der Flash Versionen von 2 bis zur maximal zu prüfenden Version */
        for(var i = 2; i < (max_version + 1); i ++)
        {
            /***
             * wir beugen mittels try und catch (JS 1.5+ / IE5+) einem Fehler vor (welcher einen
             * Abbruch des Scripts zur Folge hätte), so können wir auch auf ein extra VBScript
             * verzichten.
             */
            try
            {
                /***
                 * läßt sich das ActiveX Flash Objekt Version i erstellen, so ist diese Version
                 * auch installiert
                 */
                if(typeof(new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) == "object")
                {
                    available_version = i;
                }
           }
           catch(error)
           {
           }
        }
    }

    /* die Werte werden in Form eines Arrays zurückgegeben */
    return [available_version, required_version];
}