// Windows Media Player detection - WorkCast June 2009
function addOnload(myfunc) {

	if(window.addEventListener)
		window.addEventListener('load', myfunc, false);
	else if(window.attachEvent)
		window.attachEvent('onload', myfunc);
}
// initialize global variables
var detectableWithVB = false;
var pluginFound = false;
var barSize;

addOnload(detectWindowsMedia)


function canDetectPlugins() {
    if( detectableWithVB || (navigator.plugins && navigator.plugins.length > 0) ) {
	return true;
    } else {
	return false;
    }
}

function detectFlash(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('Shockwave','Flash'); 
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
    }
    // check for redirection
    return checkPlugin(pluginFound);
}

function detectDirector(redirectURL, redirectIfFound) { 
    pluginFound = detectPlugin('Shockwave','Director'); 
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound = detectActiveXControl('SWCtl.SWCtl.1');
    }
    // check for redirection
   return checkPlugin(pluginFound);
}

function detectQuickTime(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('QuickTime');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound = detectQuickTimeActiveXControl();
    }
   return checkPlugin(pluginFound);
}

function detectReal(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('RealPlayer');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound = (detectActiveXControl('rmocx.RealPlayer G2 Control') ||
		       detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') ||
		       detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)'));
    }	
    return checkPlugin(pluginFound);
}

function detectWindowsMedia(redirectURL, redirectIfFound) {
    
	pluginFound = detectPlugin('Windows Media');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1');
    }
    return checkWindowsMedia(pluginFound);
}

function detectPlugin() {
    // allow for multiple checks in a single pass
    var daPlugins = detectPlugin.arguments;
    // consider pluginFound to be false until proven true
    var pluginFound = false;
    // if plugins array is there and not fake
    if (navigator.plugins && navigator.plugins.length > 0) {
	var pluginsArrayLength = navigator.plugins.length;
	// for each plugin...
	for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
	    // loop through all desired names and check each against the current plugin name
	    var numFound = 0;
	    for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
		// if desired plugin name is found in either plugin name or description
		if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) || (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0)) {
		    
			// this name was found
			if (navigator.plugins[pluginsArrayCounter].name != "Windows Media Player Plug-in Dynamic Link Library") numFound++;
			
			if (navigator.plugins[pluginsArrayCounter].name == "Windows Media Plugin") {
				barSize=46;
			} else {
				barSize=16;
			}
			
		}   
	    }
	    // now that we have checked all the required names against this one plugin,
	    // if the number we found matches the total number provided then we were successful
	    if(numFound == daPlugins.length) {
			
		pluginFound = true;
		// if we've found the plugin, we can stop looking through at the rest of the plugins
		break;
	    }
	}
    }
    return pluginFound;
} // detectPlugin


// Here we write out the VBScript block for MSIE Windows
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
    document.writeln('<script language="VBscript">');

    document.writeln('\'do a one-time test for a version of VBScript that can handle this code');
    document.writeln('detectableWithVB = False');
    document.writeln('If ScriptEngineMajorVersion >= 2 then');
    document.writeln('  detectableWithVB = True');
    document.writeln('End If');

    document.writeln('\'this next function will detect most plugins');
    document.writeln('Function detectActiveXControl(activeXControlName)');
    document.writeln('  on error resume next');
    document.writeln('  detectActiveXControl = False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('\'and the following function handles QuickTime');
    document.writeln('Function detectQuickTimeActiveXControl()');
    document.writeln('  on error resume next');
    document.writeln('  detectQuickTimeActiveXControl = False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('    detectQuickTimeActiveXControl = False');
    document.writeln('    hasQuickTimeChecker = false');
    document.writeln('    Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');
    document.writeln('    If IsObject(hasQuickTimeChecker) Then');
    document.writeln('      If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');
    document.writeln('        detectQuickTimeActiveXControl = True');
    document.writeln('      End If');
    document.writeln('    End If');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('</scr' + 'ipt>');
}

function checkWindowsMedia(pluginFound) {	
	play = document.getElementById("playImage");
	if (pluginFound) {
		con = d.getElementById("control"); 
		con.style.filter = "alpha(opacity=100)";
		con.onclick = function () {
			videoStart();
		}
		play.innerHTML="<img src='workcast/images/playerSplash.jpg' alt='[Click to play]' onclick='videoStart()' />"
	} else {
		play.innerHTML="<p>Unfortunately we couldn't detect the correct version of Windows Media Player plugin installed on your computer.</p><p><strong>Internet Explorer on Windows XP or Vista</strong>: <a href='http://www.microsoft.com/windows/windowsmedia/players.aspx'>Windows Media Player Plugin</a>.</p><p><strong>All other browsers on Windows XP or Vista</strong>: <a href='http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx'>Windows Media Player (Firefox) Plugin</a>.</p><p><strong>Mac OSX 10.2 (Jaguar) or later</strong>: <a href='http://www.microsoft.com/windows/windowsmedia/player/mac/mp9/default.aspx'>Windows Media Player 9</a>.</p><p><strong>Mac OSX 10.3.9 (Panther) or later</strong>: <a href='http://www.telestream.net/flip4mac-wmv/overview.htm'>Flip4Mac</a> will play Windows Media using Quicktime.</p><p id=\"note\"><strong>IMPORTANT: After you have installed the plugin you must clear your browser cache before the new plugin will play the content.</strong></p>"
	}
}

