
function goURL ( daURL ) {
    // if the browser can do it, use replace to preserve back button
    //if ( javascriptVersion1_1 )	window.location.replace(daURL);
	//	else
	window.location = daURL;
	return ;
}

function redirectCheck ( pluginFound , redirectURL , redirectIfFound , nameofplugin ) {
	//alert ( 'envoi en ajax de ' + nameofplugin ) ;
	if ( redirectURL && ( ( pluginFound && redirectIfFound ) || ( ! pluginFound && ! redirectIfFound ) ) ) goURL ( redirectURL ) ;  // check for redirection

	//	On informe Maktoub sur la disponibilité d'un plugin
	if ( pluginFound ) {
		var url = "/gauvain/AjaxEvenement.html?noos=AJAX_PLUGIN&plugin=" + nameofplugin ;
		var request = initRequest ( url , getPlateform() ) ;
		request.onreadystatechange = function() {
			if ( request.readyState == 4 ) {
				if ( request.status == 200 ) {
					//	Traitement d'une éventuelle réponse de Maktoub
				}
			}
		}
		request.open ( "POST" , url , true ) ;
		request.send ( null ) ;
	}
	
	return pluginFound ;	// stay here and return result of plugin detection

}

function canDetectPlugins() {
	if ( detectableWithVB || ( navigator.plugins && navigator.plugins.length > 0 ) ) return true;
	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' ) ;
    return redirectCheck ( pluginFound , redirectURL , redirectIfFound , 'flash' ) ;    // check for redirection
}

function detectDirector ( redirectURL , redirectIfFound ) { 
    pluginFound = detectPlugin ( 'Shockwave' , 'Director' ) ; 
    // if not found, try to detect with VisualBasic
    if ( ! pluginFound && detectableWithVB )	pluginFound = detectActiveXControl ( 'SWCtl.SWCtl.1' ) ;
    return redirectCheck ( pluginFound , redirectURL , redirectIfFound , 'director' ) ;    // check for redirection
}

function detectQuickTime ( redirectURL , redirectIfFound ) {
    pluginFound = detectPlugin ( 'QuickTime' ) ;
    // if not found, try to detect with VisualBasic
    if ( ! pluginFound && detectableWithVB )	pluginFound = detectQuickTimeActiveXControl () ;
    return redirectCheck ( pluginFound , redirectURL , redirectIfFound , 'quicktime' ) ;    // check for redirection
}

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 redirectCheck ( pluginFound , redirectURL , redirectIfFound , 'realplayer' ) ;    // check for redirection
}

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 redirectCheck ( pluginFound , redirectURL , redirectIfFound , 'windows_media_player' ) ;
}

function detectPlugin() {
		var				daPlugins						=				detectPlugin.arguments	;		//	allow for multiple checks in a single pass
		var				pluginFound					=				false	;											//	consider pluginFound to be false until proven true
    if ( navigator.plugins && navigator.plugins.length > 0 ) {				//	if plugins array is there and not fake
			var			pluginsArrayLength	=				navigator.plugins.length ;

			// for each plugin...
			for ( pluginsArrayCounter = 0 ; pluginsArrayCounter < pluginsArrayLength ; pluginsArrayCounter ++ ) {
		    var		numFound						=				0	;													//	loop through all desired names and check each against the current plugin name
		    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
		  			  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 == daPlugins.length ) {
				pluginFound = true ;
				break ;	// if we've found the plugin, we can stop looking through at the rest of the plugins
	    }
		}
	}
	return pluginFound;
} // detectPlugin

// Here we write out the VBScript block for MSIE Windows
function initDetectPlugin() {
	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>');
	}
}
