/*
 *	If user does not have the requisite plugins for the site,
 *	ask them if they would like to download them.  If they answer "OK",
 *	send them to the plugns download page.  Otherwise do nothing.
 */

// initialize global variables
var detectableWithVB = false;
var pluginFound = false;

// 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 detectPlugin() {
	// allow for multiple checks in a single pass
	var thePlugins = 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 < thePlugins.length; namesCounter++) {
				// if desired plugin name is found in either plugin name or description
				if( (navigator.plugins[pluginsArrayCounter].name.indexOf(thePlugins[namesCounter]) >= 0) || 
				    (navigator.plugins[pluginsArrayCounter].description.indexOf(thePlugins[namesCounter]) >= 0) ) {
				    // this name was found
					    numFound++;
				}   
		    }
		    // 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 == thePlugins.length) {
				pluginFound = true;
				// if we've found the plugin, we can stop looking through at the rest of the plugins
				break;
		    }
		}
    }
    return pluginFound;
} // detectPlugin

function detectQuickTime(redirectURL) {
    pluginFound = detectPlugin('QuickTime');
		   
    if(!pluginFound && detectableWithVB) {
		pluginFound = detectQuickTimeActiveXControl();
    }
    return(pluginFound);
}

function detectFlash(redirectURL) {
    pluginFound = detectPlugin('Shockwave','Flash'); 

    if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
    }
    return(pluginFound);
}

function detectDirector(redirectURL) { 
    pluginFound = detectPlugin('Shockwave','Director'); 
		   
    if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('SWCtl.SWCtl.1');
    }		   
    return(pluginFound);
}

// give user choice of opening downloads page if they don't have the necessary plug-ins..
function checkPlugins(){
	var quickTime = detectQuickTime();
	var flash = detectFlash();
	var director = detectDirector();

	if(!quickTime || !flash || !director){
		if(confirm('You are missing plug-ins which you should have in order to fully experience the Exploring Earth Visualizations.\r\rWould you like to download these plug-ins?')){
			window.open('plugin_download_page.cfm','plugins','height=400,width=600,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,directories=yes,status=yes');
		}
	}
}

var detect = navigator.userAgent.toLowerCase();

function checkIt(string){
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function checkMacIE(){
	if (checkIt('msie')) {
		if (checkIt('mac')) {
			if(navigator.appVersion.substring(22, 23) < 5){
//				do nothing, as we are already at destination...
			} else {
				checkPlugins();
			}
		} else {
			//checkPlugins();
		}
	} else{
		checkPlugins();
	}
}

checkMacIE();