/**
 * nFlash_Moonda v1.1: Flash Player detection and embed with speed detection based on :
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * nFlash_Moonda is (c) 2006 Moonda (scripted Raude Yann)
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * maj 2007/01/29
 */
 
if(typeof nij=="undefined"){var nij=new Object();}
if(typeof nij.util=="undefined"){nij.util=new Object();}
if(typeof nij.nFlashUtil=="undefined"){nij.nFlashUtil=new Object();}

var madate=new Date();
var load_page_start=madate.getTime();
var tabflash=new Array();
var tabflash_speed=new Array();
var tabflash_div=new Array();
var affich_flash=true;

nij.nFlash = function(_1,id,w,h,_5,b,c,_7,_8,_9,_a,_b) {
	if(!document.getElementById){return;}
	this.DETECT_KEY=_b?_b:"detectflash";
	this.skipDetect=nij.util.getRequestParameter(this.DETECT_KEY);
	this.params=new Object();
	this.variables=new Object();
	this.attributes=new Array();
	this.alertflash=false;
	this.loadtestimg=false;
	this.iddiv_flash="";
	this.iddiv_alertspeed="";
	if(_1){this.setAttribute("swf",_1);}
	if(id){this.setAttribute("id",id);}
	if(w){this.setAttribute("width",w);}
	if(h){this.setAttribute("height",h);}
	if(_5){this.setAttribute("version",new nij.PlayerVersion(_5.toString().split(".")));}
	this.installedVer=nij.nFlashUtil.getPlayerVersion();
	if(b){this.addParam("base",b);}
	if(c && c!=""){this.addParam("bgcolor",c);}
	var q=_8?_8:"high";
	this.addParam("quality",q);
	this.setAttribute("useExpressInstall",_7);
	this.setAttribute("doExpressInstall",false);
	var _d=(_9)?_9:window.location;
	this.setAttribute("xiRedirectUrl",_d);
	this.setAttribute("redirectUrl","");
	if(_a){this.setAttribute("redirectUrl",_a);}
	tabflash.push(this);
};

nij.nFlash.prototype={
	setAttribute:function(_e,_f){
		this.attributes[_e]=_f;
	},
	affichAlert:function(ndiv) {
		if (this.installedVer.versionIsValid(this.getAttribute("version"))==false) {
			document.getElementById(ndiv).style.display='block';
			this.alertflash=true;
		}
	},
	getAttribute:function(_10){
		return this.attributes[_10];
	},
	addParam:function(_11,_12){
		this.params[_11]=_12;
	},
	getParams:function(){
		return this.params;
	},
	addVariable:function(_13,_14){
		this.variables[_13]=_14;
	},
	getVariable:function(_15){
		return this.variables[_15];
	},
	getVariables:function(){
		return this.variables;
	},
	getPageStart:function(){
		return load_page_start;
	},
	getVariablePairs:function(){
		var _16=new Array();
		var key;
		var _18=this.getVariables();
		for(key in _18){_16.push(key+"="+_18[key]);}
		return _16;
	},
	addFlashDiv:function(_div){
		var anarray=new Array(_div,this);
		tabflash_div.push(anarray);
		this.iddiv_flash=_div;
		
		var vitesse=LireCookie("speedmydws");
		
		if (vitesse=="fast") {
			this.write(_div);
		}
		else {
			if (vitesse !="slow") {
				document.getElementById(_div).style.visibility='hidden';
			}
		}
	},
	getSWFHTML:function(){
		var _19="";
		if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
			if(this.getAttribute("doExpressInstall")){
				this.addVariable("MMplayerType","PlugIn");
			}
			_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
			_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
			if (this.getAttribute("base")!='' && this.getAttribute("base")) _19+=" base=\""+this.getAttribute("base")+"\" ";
			var _1a=this.getParams();
			for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
			var _1c=this.getVariablePairs().join("&");
			if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";
		}
		else{
			if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
			_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
			_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
			if (this.getAttribute("base")!='' && this.getAttribute("base")) _19+="<param name=\"base\" value=\""+this.getAttribute("base")+"\" />";
			var _1d=this.getParams();
			for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
			var _1f=this.getVariablePairs().join("&");
			if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}
			_19+="</object>";
		}
		return _19;
	},
	timeWriteAll:function (maxtime,alertspeed,timg) {
		var vitesse=LireCookie("speedmydws");
		if (vitesse!="fast") {
			this.iddiv_alertspeed=alertspeed;
			window.status = "connection speed testing / test vitesse de connexion";
			var testimg=new Image();
			var date1=new Date();
			loadstart=date1.getTime();
			testimg.src=timg+"?"+loadstart;
			var that=this;
			testimg.onload=function () {
				that.doTimeWriteAll(maxtime,alertspeed,loadstart)
			}
		}
		else {
			this.loadtestimg=true;
		}
	},
	verifTimeWriteAll:function(alertspeed) {
		//alert ("veriftimewrite :"+alertspeed);
		if (this.loadtestimg==false) {
			if (this.alertflash==false) {
				//LENTE
				affich_flash=false;
				var duree=new Date ();
				duree.setMonth(duree.getMonth()+1); // expire dans un mois
				ecrire_cookie("speedmydws", "slow", duree);
				
				document.getElementById(alertspeed).style.display='block';
				for (j=0; j<tabflash_div.length; j++) {
					tabflash_speed.push(tabflash_div[j][1]);
					document.getElementById(tabflash_div[j][0]).style.visibility='visible';
				}
			}
		}
	},
	doTimeWriteAll:function(maxtime,alertspeed,_t1) {
		if (this.loadtestimg==false) {
			this.loadtestimg=true;
			var date2=new Date();
			loaddone=date2.getTime();
			var time_loaded=(loaddone-_t1)/1000;
			//window.status ="";
			//debug
			window.status = time_loaded+" ... "+(54*8.192)/time_loaded+" kb/s";
			//alert(time_loaded);.innerHTML
			//document.getElementById("infospeed").innerHTML="chargement de 54ko en "+time_loaded+" secondes ; soit vitesse de "+(54*8.192)/time_loaded+" kb/s";
			if (time_loaded<maxtime) {
				//RAPIDE
				var duree=new Date ();
				duree.setMonth(date2.getMonth()+1); // expire dans un mois
				ecrire_cookie("speedmydws", "fast", duree);
				
				for (j=0; j<tabflash_div.length; j++) {
					tabflash_div[j][1].write(tabflash_div[j][0]);
					document.getElementById(tabflash_div[j][0]).style.visibility='visible';
				}
			}
			else if (this.alertflash==false) {
				//LENTE
				affich_flash=false;
				var duree=new Date ();
				duree.setMonth(date2.getMonth()+1); // expire dans un mois
				ecrire_cookie("speedmydws", "slow", duree);
				
				document.getElementById(alertspeed).style.display='block';
				for (j=0; j<tabflash_div.length; j++) {
					tabflash_speed.push(tabflash_div[j][1]);
					document.getElementById(tabflash_div[j][0]).style.visibility='visible';
				}
			}
		}
	},
	timeWrite:function(iddiv,maxtime,alertspeed,timg){
		this.iddiv_flash=iddiv;
		this.iddiv_alertspeed=alertspeed;
		
		var testimg=new Image();
		var date1=new Date();
		loadstart=date1.getTime();
		testimg.src=timg+"?"+loadstart;
		var that=this;
		testimg.onload=function () {
			that.doTimeWrite(iddiv,maxtime,alertspeed,loadstart)
		}
	},
	doTimeWrite:function(iddiv,maxtime,alertspeed,_t1) {
		var date2=new Date();
		loaddone=date2.getTime();
		var time_loaded=(loaddone-_t1)/1000;
		//alert(time_loaded);
		if (time_loaded<maxtime) {
			var duree=new Date ();
 			duree.setMonth(date2.getMonth()+1); // expire dans un mois
  			ecrire_cookie("speedmydws", "fast", duree);
			
			this.write(iddiv);
		}
		else if (this.alertflash==false) {
			var duree=new Date ();
 			duree.setMonth(date2.getMonth()+1); // expire dans un mois
  			ecrire_cookie("speedmydws", "slow", duree);
			
			document.getElementById(alertspeed).style.display='block';
			tabflash_speed.push(this);
		}
	},
	forcedWrite:function(iddiv){
		this.write(iddiv);
	},
	forcedWriteAll:function(){
		document.getElementById(tabflash_speed[0].iddiv_alertspeed).style.display='none';
		for (i=0; i<tabflash_speed.length; i++) {
			tabflash_speed[i].forcedWrite(tabflash_speed[i].iddiv_flash);
		}
	},
	write:function(_20){
		if(this.getAttribute("useExpressInstall")){
			var _21=new nij.PlayerVersion([6,0,65]);
			if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
				this.setAttribute("doExpressInstall",true);
				this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
				document.title=document.title.slice(0,47)+" - Flash Player Installation";
				this.addVariable("MMdoctitle",document.title);
			}
		}
		if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
			var n=(typeof _20=="string")?document.getElementById(_20):_20;
			n.innerHTML=this.getSWFHTML();return true;
		}
		else{
			if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}
		}
	return false;
	}
};

nij.nFlashUtil.getPlayerVersion=function(){
	var _23=new nij.PlayerVersion([0,0,0]);
	if(navigator.plugins&&navigator.mimeTypes.length){
		var x=navigator.plugins["Shockwave Flash"];
		if(x&&x.description){_23=new nij.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
	}
	else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
	catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
	_23=new nij.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}
	catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
	catch(e){}}if(axo!=null){_23=new nij.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}
	return _23;
};

nij.PlayerVersion=function(_27){
	this.major=_27[0]!=null?parseInt(_27[0]):0;
	this.minor=_27[1]!=null?parseInt(_27[1]):0;
	this.rev=_27[2]!=null?parseInt(_27[2]):0;
};

nij.PlayerVersion.prototype.versionIsValid=function(fv){
	if(this.major<fv.major){return false;}
	if(this.major>fv.major){return true;}
	if(this.minor<fv.minor){return false;}
	if(this.minor>fv.minor){return true;}
	if(this.rev<fv.rev){return false;}
	return true;
};

nij.util={
	getRequestParameter:function(_29){
		var q=document.location.search||document.location.hash;
		if(q){var _2b=q.substring(1).split("&");
			for(var i=0;i<_2b.length;i++){
				if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
					return _2b[i].substring((_2b[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
};



nij.nFlashUtil.cleanupSWFs=function(){
	if(window.opera||!document.all){return;}
	var _2d=document.getElementsByTagName("OBJECT");
	for(var i=0;i<_2d.length;i++){
		_2d[i].style.display="none";
		for(var x in _2d[i]){
			if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}
		}
	}
};

nij.nFlashUtil.prepUnload=function(){
	__flash_unloadHandler=function(){};
	__flash_savedUnloadHandler=function(){};
	if(typeof window.onunload=="function"){
		var _30=window.onunload;
		window.onunload=function(){
		nij.nFlashUtil.cleanupSWFs();_30();};
	}
	else{window.onunload=nij.nFlashUtil.cleanupSWFs;}
};

if(typeof window.onbeforeunload=="function"){
	var oldBeforeUnload=window.onbeforeunload;
	window.onbeforeunload=function(){
		nij.nFlashUtil.prepUnload();
		oldBeforeUnload();
	};
}
else{
	window.onbeforeunload=nij.nFlashUtil.prepUnload;
}

if(Array.prototype.push==null){
	Array.prototype.push=function(_31){
		this[this.length]=_31;
		return this.length;
	};
}


var getQueryParamValue=nij.util.getRequestParameter;
var FlashObject=nij.nFlash;
var nFlash=nij.nFlash;


/*fonctions gestion de cookies pour la detection de connection*/

function ecrire_cookie(nom, valeur, expires) {
  document.cookie=nom+"="+escape(valeur)+
  ((expires==null) ? "" : ("; expires="+expires.toGMTString()));
}

function getCookieVal(offset)
{
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function LireCookie(nom)
{
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;

}
return null;
}
