// moock fpi [f.lash p.layer i.nspector]

// version: 1.3.4

// written by colin moock

// code maintained at: http://www.moock.org/webdesign/flash/detection/moockfpi/

// unrestricted use permission granted for:

// artists, educational institutions and non-profit organizations. 

// restricted use permission granted for commercial purposes under linkware agreement terms set out

// at the above url...



var requiredVersion = 4;			

var useRedirect = false; 			



// System globals

var flash2Installed = false;    // boolean. true if flash 2 is installed

var flash3Installed = false;    // boolean. true if flash 3 is installed

var flash4Installed = false;    // boolean. true if flash 4 is installed

var flash5Installed = false;    // boolean. true if flash 5 is installed

var flash6Installed = false;    // boolean. true if flash 6 is installed

var maxVersion = 6;             // highest version we can actually detect

var actualVersion = 0;          // version the user really has

var hasRightVersion = false;    // boolean. true if it's safe to embed the flash movie in the page

var jsVersion = 1.0;            // the version of javascript supported



// check the browser...we're looking for ie/win

var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;

var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;



// this is a js1.1 code block, so make note that js1.1 is supported.

jsVersion = 1.1;



// write vbscript detection if we're not on mac.

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('</SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script

}



// next comes the standard javascript detection that uses the navigator.plugins array

// we pack the detector into a function so it loads before we run it



function detectFlash(){	



	if (navigator.plugins){

		if (navigator.plugins["Shockwave Flash 2.0"]

		|| navigator.plugins["Shockwave Flash"]){



			// set convenient references to flash 2 and the plugin description

			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";

			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;

			var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));



			// we know the version, now set appropriate version flags

      flash2Installed = flashVersion == 2;    

      flash3Installed = flashVersion == 3;

      flash4Installed = flashVersion == 4;

      flash5Installed = flashVersion == 5;

      flash6Installed = flashVersion >= 6;

		}

	}

	

	// loop through all versions we're checking, and set actualVersion to highest detected version

	for (var i = 2; i <= maxVersion; i++) {	

		if (eval("flash" + i + "Installed") == true) actualVersion = i;

	}

	// if we're on webtv, the version supported is 2 (pre-summer2000, or 3, post-summer2000)

	// note that we don't bother sniffing varieties of webtv. you could if you were sadistic...

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



	// we're finished getting the version. time to take the appropriate action

	if (actualVersion >= requiredVersion) {

		hasRightVersion = true;



		if (useRedirect) {

			if(jsVersion > 1.0) {

				window.location.replace(flashPage);

			} else {

				window.location = flashPage;

			}

		}

	} else {

	

		if (useRedirect) {

			if(jsVersion > 1.0) {

				window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);

			} else {

				window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;

			}

		}

	}

}



detectFlash();	
