/*
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
*/

jsVersion = 1.1;

/*=====*/

// Visual basic helper required to detect Flash Player ActiveX control version information
if(isIE && isWin){
	document.write('<scr' + 'ipt type="text/vbscript">'+'\n');
	document.write('Function VBGetSwfVer(i)'+'\n');
	document.write('on error resume next'+'\n');
	document.write('Dim swControl, swVersion'+'\n');
	document.write('swVersion = 0'+'\n');
	document.write('set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))'+'\n');
	document.write('if (IsObject(swControl)) then'+'\n');
	document.write('swVersion = swControl.GetVariable("$version")'+'\n');
	document.write('end if'+'\n');
	document.write('VBGetSwfVer = swVersion'+'\n');
	document.write('End Function'+'\n');
	document.write('<\/scr' + 'ipt\>'+'\n');
}

/*
<script language="VBScript" type="text/vbscript">
<!-- 
Function VBGetSwfVer(i)
	on error resume next
	Dim swControl, swVersion
	swVersion = 0
  
	set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
	if (IsObject(swControl)) then
		swVersion = swControl.GetVariable("$version")
	end if
	VBGetSwfVer = swVersion
End Function
// -->
</script>
*/

/*=====*/

// Detect Client Browser type
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i)
{
// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if (descArray[3] != "") {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 

/*=====*/

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;	// 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if (versionMajor == reqMajorVer) {
				if (versionMinor == reqMinorVer) {
					return (versionRevision   >= reqRevision);
				} else {
					return (versionMinor   > reqMinorVer);
				}
			} else {
				return (versionMajor   > reqMajorVer);
			}
		}
	}	
}

/*=====*/

function detectFlash(o)
{
	var requiredMajorVersion = (o.requiredMajorVersion) ? o.requiredMajorVersion : 8;
	var requiredMinorVersion = (o.requiredMinorVersion) ? o.requiredMinorVersion : 0;
	var requiredRevision = (o.requiredRevision) ? o.requiredRevision : 0;
	var jsVersion = 1.0;

	var hasProductInstall = DetectFlashVer(6, 0, 65);
	var hasRequiredVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

	if(hasRequiredVersion){
		var swfA = o.swf;
		var swfP = o.swf;
	} else {
		if(o.swfInstall && hasProductInstall){
			document.title = document.title.slice(0, 47) + " - Flash Player Installation";
			var docTitle = document.title;
			var redirectURL = (o.redirectURL) ? o.redirectURL : window.location;
			var swfA = o.swfInstall + '?MMredirectURL='+redirectURL+'&MMplayerType=ActiveX&MMdoctitle='+docTitle;
			var swfP = o.swfInstall + '?MMredirectURL='+redirectURL+'&MMplayerType=PlugIn&MMdoctitle='+docTitle;
		} else {
			location.replace(o.substitute);
			return;
		}
	}

	var codes = '';
	var scale = (o.scale) ? o.scale : 'showall';

	codes += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="' + o.name + '" width="' + o.width + '" height="' + o.height + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">';
	codes += '<param name="movie" value="' + swfA + '" />';
	codes += '<param name="quality" value="' + o.quality + '" />';
	codes += '<param name="bgcolor" value="' + o.bgcolor + '" />';
	codes += '<param name="flashvars" value="' + o.flashvars + '" />';
	codes += '<param name="loop" value="' + o.loop + '" />';
	codes += '<param name="menu" value="' + o.menu + '" />';
	codes += '<param name="wmode" value="' + o.wmode + '" />';
	codes += '<param name="scale" value="' + scale + '" />';
	codes += '<embed src="' + swfP + '" quality="' + o.quality + '" scale="' + scale + '" bgcolor="' + o.bgcolor + '" width="' + o.width + '" height="' + o.height + '" name="' + o.name + '" flashvars="' + o.flashvars + '" wmode="' + o.wmode + '" loop="' + o.loop + '" menu="' + o.menu + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">';
	codes += '<\/embed>';
	codes += '<\/object>';

	document.write(codes);
}

/*
	== References ==
	http://www.macromedia.com/devnet/flashplayer/articles/future_detection.html
	http://eight8.jp/

*/

