//FIRST PART is a modified "AC_RunActiveContent.js" from Adobe Flash CS3:
//(CHANGES ARE MARKED "CHOUPIDOU")

//v1.8
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
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;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful.

			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}

	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;

	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;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// 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;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?');
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

	//CHOUPIDOU CHANGE 20070527
	//changed target: write output to a predefined element instead of document
		loadSWF_currentTargetElement.innerHTML = str;
	  //document.write(str);
	//END CHOUPIDOU CHANGE 20070527
}

function AC_FL_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();

    switch (currArg){
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":
				//CHOUPIDOU CHANGE 20070527
				//commented line because .swf extension is already added
				//SRC and MOVIE must not be changed because they also have the URLParams from JSP
	      //args[i+1] = AC_AddExtension(args[i+1], ext);
				//END CHOUPIDOU CHANGE 20070527
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}




//SECOND PART is mainly the function loadSWFWithDetection and misc utilities:

//all the displayed texts are here:
var loadSWF_current_version_text = 'version actuelle : ';
var loadSWF_required_version_text = 'version requise : ';
var loadSWF_not_installed_please_manual_install_text = 'Le module Flash est nécessaire pour voir la version complète de ce site.';
var loadSWF_really_too_old_please_manual_install_text = 'Une mise à jour du module Flash est nécessaire pour voir la version complète de ce site.';
var loadSWF_too_old_please_upgrade_text = 'Une mise à jour du module Flash est nécessaire pour voir la version complète de ce site.';
var loadSWF_loading_content_please_wait_text = 'Le contenu du site est en train de se télécharger. Veuillez patienter...';
var loadSWF_upgrade_success_text = 'La mise à jour est en cours... Veuillez fermer cette fenêtre.';
var loadSWF_upgrade_cancelled_text = 'La mise à jour automatique a été annulée.';
var loadSWF_upgrade_failed_text = 'La mise à jour automatique a échoué.';
var loadSWF_progress_text = 'Chargement : ';
var loadSWF_install_text = 'Choisissez la méthode qui vous convient le mieux :<br>';
var loadSWF_install_browser_text = '- Installation automatique : si vous voyez des instructions d\'installation apparaitre ci-dessus ou ci-dessous, suivez-les. (facile, sécurisé et rapide)<br>';
var loadSWF_install_express_text = '- Mise à jour automatique : si vous voyez des instructions de mise à jour apparaitre ci-dessous, suivez-les.'+(isIE?'<br>':' (il sera demandé de fermer toutes les fenêtres du navigateur)<br>');
var loadSWF_install_manual_text = '- Installation manuelle : <a style="cursor:pointer;text-decoration:underline" onclick="goToFlashPage()" >cliquez ici</a> pour visiter la page d\'installation d\'Adobe.'+(isIE?'<br>':' (peut nécessiter un téléchargement et la fermeture des navigateurs ouverts)<br>');
var loadSWF_install_none_text = '- Pour ne pas installer Flash et continuer de regarder la version incomplète du site : <a href="javascript:hideBanner()">cliquez ici pour masquer ce message.</a><br>';
var loadSWF_empty_text = '';

var loadSWF_currentTargetElement = null;
var loadSWF_src = null;
var loadSWF_requiredMajorVersion = null;
var loadSWF_requiredMinorVersion = null;
var loadSWF_requiredRevision = null;
var loadSWF_stretched = true;
var loadSWF_loaded = false;

function loadSWFWithDetection($src,$requiredMajorVersion,$requiredMinorVersion,$requiredRevision)
{
	loadSWF($src,$requiredMajorVersion,$requiredMinorVersion,$requiredRevision,true);
}
function loadSWF($src,$requiredMajorVersion,$requiredMinorVersion,$requiredRevision,$stretched)
{
	if ($src.indexOf('?')!=-1)
	{
		alert('loadSWF('+$src+') - $src cannot have a query string because the current querystring is automatically added.');
	}
	else if (loadSWF_loaded)
	{
		alert('loadSWF('+$src+') - loadSWF can only be called once');
	}
	else
	{
		//store params
		loadSWF_src = $src;
		loadSWF_requiredMajorVersion = $requiredMajorVersion;
		loadSWF_requiredMinorVersion = $requiredMinorVersion;
		loadSWF_requiredRevision = $requiredRevision;
		loadSWF_stretched = $stretched;

		//get default html
		var $defaultHTML = document.getElementById('default_html')?document.getElementById('default_html').innerHTML:'';

		//add the banner div on the top of the page
		document.body.innerHTML =
			'<div id="loadSWF_banner" style="width:100%;background:#F9FADE;" > \n'
						+'  <font id="loadSWF_message" ></font><br> \n'
						+'  <font id="loadSWF_current_version" ></font><br>  '
						+'  <font id="loadSWF_required_version" ></font><br>\n'
						+'  <font id="loadSWF_progress" ></font><br> \n'
						+'  <font id="loadSWF_install_options" ></font> \n'
			+'</div> \n\n'
			+'<div id="loadSWF_bannerflash" style="width:100%;" ></div> \n'
			+'<div id="loadSWF_defaultHTML" style="visibility:hidden" >'+$defaultHTML+'</div> \n'
			+'<div id="loadSWF_mainflash" style="visibility:hidden;position:absolute;top:0px;left:0px;width:100%;height:100%" ></div>';
			//show the default installation messages only if checkversion.swf have not reacted after 2 second
			setTimeout('showInstall()',2000);
			showDiv('loadSWF_defaultHTML');
		//write the versioncheck movie in the banner div
		generateMovie
		(
			'webutils/versioncheck.swf?maj='+loadSWF_requiredMajorVersion+'&min='+loadSWF_requiredMinorVersion+'&rev='+loadSWF_requiredRevision+'&allowFlashAutoInstall='+isIE,
			'loadSWF_versioncheck',
			'loadSWF_bannerflash',
			4,
			0,
			32,
			null,
			'100%',
			'100%',
			true
		);
		loadSWF_loaded = true;
	}
}
function goToFlashPage()
{
	document.location.href='http://www.macromedia.com/go/getflash';
}
function goHome()
{
	document.location.href='http://www.choupidou.com';
}
function generateMovie($src,$idAndName,$targetElementId,$requiredMajorVersion,$requiredMinorVersion,$requiredRevision,$onComplete,$width,$height,$stretched)
{
	loadSWF_currentTargetElement = document.getElementById($targetElementId);

	if (loadSWF_currentTargetElement==null) alert('generateMovie - target element ['+$targetElementId+'] not found in the document.');

		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+$requiredMajorVersion+','+$requiredMinorVersion+','+$requiredRevision+',0',
			'width', $width,
			'height', $height,
			'src', $src,
			'quality', 'best',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', ($stretched?'showall':'noscale'),
			'wmode', 'window',
			'devicefont', 'false',
			'id', $idAndName,
			'name', $idAndName,
			'menu', 'true',
			'allowScriptAccess','sameDomain',
			'allowFullScreen','false',
			'movie', $src,
			'salign', ''
			); //end AC code

	 //alert('generateMovie ['+$idAndName+']: '+loadSWF_currentTargetElement.innerHTML);

	  //If (Firefox+FlashInCrossDomainSubframe) execute JS directly (Flash bug, see readme.txt)
	 	if (!isIE && document!=top.document)
	 		eval($onComplete);
		else
		 	if ($onComplete!=null) updateLoadingProgress($idAndName,$onComplete);

	  //just for information
		var hasRightVersion = DetectFlashVer($requiredMajorVersion, $requiredMinorVersion, $requiredRevision);
		return hasRightVersion;
}
function getMovieById($id)
{
     if (isIE)
         return window[$id];
     else
         return document[$id];
}
function getMovieLoadingProgressById($id)
{
	 return getMovieById($id).PercentLoaded();
}
function isMovieLoadedById($id)
{
	return (getMovieById($id)!=null && getMovieLoadingProgressById($id)>=100);
}

function getMovie()
{
	return getMovieById('loadSWF_content');
}
function getMovieLoadingProgress()
{
	return getMovieLoadingProgressById('loadSWF_content');
}
function isMovieLoaded()
{
	return isMovieLoadedById('loadSWF_content');
}
function setUgradeFeedbackSuccess($label,$info,$target)
{
	//alert('setMessage ['+$label+'] ['+$info+'] ['+$target+']');
	clearDiv('loadSWF_bannerflash');
	showInstallOptions(false,false,false);
	setMessage('loadSWF_empty_text','','loadSWF_current_version');
	setMessage('loadSWF_empty_text','','loadSWF_required_version');
	setMessage($label,$info,$target);
}
function setUgradeFeedback($label,$info,$target)
{
	//alert('setMessage ['+$label+'] ['+$info+'] ['+$target+']');
	clearDiv('loadSWF_bannerflash');
	setMessage($label,$info,$target)
}
function setMessage($label,$info,$target)
{
	//alert('setMessage ['+$label+'] ['+$info+'] ['+$target+']');
	writeMessage($target,eval($label)+$info);
}
function writeMessage($divId,$message)
{
	var $div = document.getElementById($divId);
	if ($div==null) alert('writeMessage - div ['+$divId+'] not found.');
	if ($message.length!=0)
		$div.innerHTML=$message;
	else
		$div.innerHTML='';
}
function showInstallOptions($browser,$express,$manual)
{
	if ($browser || $express || $manual)
	{
		  var $info = '';
			if ($browser) $info += eval('loadSWF_install_browser_text');
			if ($express) $info += eval('loadSWF_install_express_text');
			if ($manual) $info += eval('loadSWF_install_manual_text');
			$info += eval('loadSWF_install_none_text');
			setMessage('loadSWF_install_text',$info,'loadSWF_install_options');
	}
	else
	{
			setMessage('loadSWF_empty_text','','loadSWF_install_options');
	}
}
function updateLoadingProgress($id,$onComplete)
{
	if (getMovieById($id)==null) return "";
	var $progress = getMovieLoadingProgressById($id);
	if ($progress>=100)
	{
		eval($onComplete);
		return "";
	}
	setMessage('loadSWF_progress_text',''+$progress+'%','loadSWF_progress');
	setTimeout('updateLoadingProgress(\''+$id+'\',\''+$onComplete+'\')',20);
}
function writeExpressInstall()
{
	var MMPlayerType = (isIE == true) ? 'ActiveX' : 'PlugIn';
	var MMredirectURL = escape(window.location);
	var MMdoctitle = document.title.slice(0, 47) + ' (mise à jour du module Flash)';
	document.title = MMdoctitle;
	generateMovie
	(
		'webutils/expressinstall.swf?MMPlayerType='+MMPlayerType+'&MMredirectURL='+MMredirectURL+'&MMdoctitle='+MMdoctitle,
		'loadSWF_expressinstall',
		'loadSWF_bannerflash',
		6,
		0,
		65,
		null,
		'100%',
		138,
		true
	);
}
function getCurrentQueryString()
{
	var strURL = document.location.toString();
	var qIndex = strURL.indexOf('?');
	if (qIndex == -1)
		return "";
	else
		return strURL.substring(qIndex);
}
function writeContentSwf()
{
	generateMovie
	(
		loadSWF_src+getCurrentQueryString(),
		'loadSWF_content',
		'loadSWF_mainflash',
		loadSWF_requiredMajorVersion,
		loadSWF_requiredMinorVersion,
		loadSWF_requiredRevision,
		'onContentSwfWritten()',
		'100%',
		'100%',
		loadSWF_stretched
	);
}
function removeSwf()
{
	alert("removeSwfee");
}
function onContentSwfWritten()
{
	clearDiv('loadSWF_banner');
	clearDiv('loadSWF_bannerflash');
	clearDiv('loadSWF_defaultHTML');
	showDiv('loadSWF_mainflash');
}
function clearDiv($id)
{
 	$div = document.getElementById($id);
	if ($div!=null)
	{
		$div.innerHTML='';
		$div.style.height='0px';
		$div.style.visibility='hidden';
		$div.style.display='none';
	}
}
function hideDiv($id)
{
 	$div = document.getElementById($id);
	if ($div!=null) $div.style.visibility='hidden';
}
function showDiv($id)
{
 	$div = document.getElementById($id);
	if ($div!=null) $div.style.visibility='visible';
}
function hideBanner()
{
	clearDiv('loadSWF_banner');
	clearDiv('loadSWF_bannerflash');
}
function setHTMLBackground($bgColor)
{
	document.body.style.bgcolor=$bgColor;
}
var checkVersionAlive = false;
function showInstall()
{
	if (checkVersionAlive==false)
	{
		setMessage('loadSWF_not_installed_please_manual_install_text','','loadSWF_message');
		showInstallOptions(true,false,true);
	}
	//showDiv('loadSWF_defaultHTML');
}
function showUpgrade($playerVersion,$requiredVersion)
{
	checkVersionAlive = true;
	setMessage('loadSWF_current_version_text',$playerVersion+' ','loadSWF_current_version');
	setMessage('loadSWF_required_version_text',$requiredVersion+' ','loadSWF_required_version');
	setMessage('loadSWF_really_too_old_please_manual_install_text','','loadSWF_message');
	showInstallOptions(true,false,true);
	clearDiv('loadSWF_bannerflash');
}
function showExpressUpgrade($playerVersion,$requiredVersion)
{
	checkVersionAlive = true;
	setMessage('loadSWF_current_version_text',$playerVersion+' ','loadSWF_current_version');
	setMessage('loadSWF_required_version_text',$requiredVersion+' ','loadSWF_required_version');
	setMessage('loadSWF_too_old_please_upgrade_text','','loadSWF_message');
	showInstallOptions(false,true,true);
	writeExpressInstall();
}
function showContent($playerVersion,$requiredVersion)
{
	checkVersionAlive = true;
	setMessage('loadSWF_current_version_text',$playerVersion+' ','loadSWF_current_version');
	setMessage('loadSWF_required_version_text',$requiredVersion+' ','loadSWF_required_version');
	setMessage('loadSWF_loading_content_please_wait_text','','loadSWF_message');
	showInstallOptions(false,false,false);
	clearDiv('loadSWF_bannerflash');
	clearDiv('loadSWF_defaultHTML');
	writeContentSwf();
}
/*
function showIEAutoInstall($playerVersion,$requiredVersion)
{
	checkVersionAlive = true;
	setMessage('loadSWF_current_version_text',$playerVersion+' ','loadSWF_current_version');
	setMessage('loadSWF_required_version_text',$requiredVersion+' ','loadSWF_required_version');
	setMessage('loadSWF_too_old_please_upgrade_text','','loadSWF_message');
	writeContentSwf();
	clearDiv('loadSWF_bannerflash');
}
function showIEAutoInstallAndUgradeURL($playerVersion,$requiredVersion)
{
	checkVersionAlive = true;
	setMessage('loadSWF_current_version_text',$playerVersion+' ','loadSWF_current_version');
	setMessage('loadSWF_required_version_text',$requiredVersion+' ','loadSWF_required_version');
	setMessage('loadSWF_too_old_please_upgrade_text','','loadSWF_message');
	showInstallOptions(true,true,true);
	writeExpressInstall();
	writeContentSwf();
}
*/
//END CHOUPIDOU CHANGE 20070527



