/*****************************************************************************************************
**
** 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.
**
****************************************************************************************************/


/*****************************************************************************************************
** 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);
	}
}