// Variables d'environnement :
var environnement = "http://www.cuisine.tv/flash/";

/*----------------UTILS----------------*/
function detectBrowser() {
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	if (navigator.userAgent.indexOf("Firefox")!= -1){
		//alert("detectBrowser Firefox, playerinterfaceobj="+playerinterfaceobj);
		playerinterfaceobj.externalCall("detectBrowser","Firefox");
	}else{
		playerinterfaceobj.externalCall("detectBrowser",navigator.userAgent);
	}
}

function testBrowser() {
	trace("testBrowser");
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	if (navigator.userAgent.indexOf("Firefox")!= -1){
		//alert("detectBrowser Firefox, playerinterfaceobj="+playerinterfaceobj);
		playerinterfaceobj.externalCallTest("detectBrowser","Firefox");
	}else{
		playerinterfaceobj.externalCallTest("detectBrowser",navigator.userAgent);
	}
}

function MM_findObj(n, d) { //v4.01
  	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
      d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

/*-------------- Write/Read Cookies --------------*/
function writeCookie(nom, valeur) {
	var argv = writeCookie.arguments;
	var argc = writeCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
 }



/*-----------------EPG-----------------*/
// EPG
/* appelé par le swf pour permettre au JS de passer le div du Flash devant  */
function setFlashInFrontDepth(){
	displayEpg();
}
/* appelé par le swf pour permettre au JS de passer le div du Flash derrière  */
function setHtmlInFrontDepth(){
	hideEpg();
}
/*---------------VIDEO PLAYER---------------*/
/*
* appelé par le swf bouton vertical pour ouvrir le grand player
* TRES IMPORTANT : passe la variable isFullPlayer à 1
* pour savoir qu'on est dans le grand player lors des appels js suivants
*/
function openVideoPlayer( video_id ){
	stopEmbedPlayer(); // V0_1
	isFullPlayer = 1;
	displayPlayer();
}
/*
* appelé par le swf bouton FERMER du grand player pour le fermer
* TRES IMPORTANT : passe la variable isFullPlayer à 0
* pour savoir qu'on est dans le petit player lors des appels js suivants
*/
function closeVideoPlayer(){
	hidePlayer();
	isFullPlayer = 0;
}
/*---------------EMBED PLAYER---------------*/
var __positionX;
var __positionY;
var __sizeX;
var __sizeY;
isFullPlayer = 0;
// GETTERS (flash, divs)
/*
* la variable standAloneMode est à 0 quand le isFullPlayer est à 1
* LUC s'en sert dans l'Embed pour savoir qui il est (petit/grand)
*/
function getstandAloneMode(){
	var standAloneMode;
	if(isFullPlayer == 1){
		standAloneMode = 0;
	} else {
		standAloneMode = 1;
	}
	return standAloneMode;
}
/*
* utilisés par le JS pour appeler les bons éléments (divs, flash)
* selon qu'on est en mode petit ou grand
* le petit player DOIT avoir appEmbedVideoPlayer comme id,
* appEmbedFullVideoPlayer pour l'embed du grand.
* les noms des divs sont aussi à suivre
*/
function getCurrentEmbedPlayerFlash(){
	var objName = "appEmbedVideoPlayer";
	if(isFullPlayer == 1){
		objName = "appEmbedFullVideoPlayer";
	}
	var obj = MM_findObj(objName);
	return obj;
}
function getCurrentEmbedPlayerDiv(){
	var divName = "embed_playercontent";
	if(isFullPlayer == 1){
		divName += "_full";
	}
	var div = MM_findObj(divName);
	return div;
}
function getCurrentAdvertDiv(){
	var divName = "advertcontent";
	if(isFullPlayer == 1){
		divName += "_full";
	}
	var div = MM_findObj(divName);
	return div;
}
function getCurrentAdvertMessageDiv(){
	var divName = "advertmessagecontent";
	if(isFullPlayer == 1){
		divName += "_full";
	}
	var div = MM_findObj(divName);
	return div;
}
//
/**
* Fonction appelée par le ShowRoom pour instancier l'embed-player-video
* càd : chargement de l'Embed-Video-Player dans un DIV ( id="playercontent")
* L'id de la vidéo à afficher (videoId) est passé en variable au Flash  ( so.addVariable("content_id" , videoId); )
*
* @param	positionX
* @param	positionY
* @param	sizeX
* @param	sizeY
* @param	videoId
*/
function initEmbedVideoPlayer( positionX, positionY, sizeX, sizeY, videoId ){
	__positionX = positionX;
	__positionY = positionY;
	__sizeX = sizeX;
	__sizeY = sizeY;

	var playerdiv = getCurrentEmbedPlayerDiv();
	var advertdiv = getCurrentAdvertDiv();
	playerdiv.innerHTML = "";

	playerdiv.style.left = "-4000px";
	playerdiv.style.marginTop = parseFloat (positionY) + "px";
	var correctionWidth = 0;
	playerdiv.style.marginLeft = ( (-490.5 + correctionWidth) + parseFloat (positionX)) + "px";

	var so = new SWFObject( environnement + "loader/loader_canalplus_V0_1.swf", "appEmbedFullVideoPlayer", sizeX, sizeY, "9.0.28.0", "#000000");
	so.useExpressInstall( environnement + "install/expressinstall.swf");
	so.setAttribute("xiRedirectUrl", window.location);
	so.addParam("align", "middle");
	so.addParam("salign", "C");
	so.addParam("allowScriptAccess", "always");
	so.addParam("loop", false);
	so.addParam("menu", false);
	so.addParam("quality", "high");
	so.addParam("allowFullScreen", true);
	so.addParam("scale", "noScale");
	so.addParam("wmode", "window");
	so.addVariable("fv_controlsabove", true);
	so.addVariable("fv_trace_bool", true);
	//so.addVariable("configFileUrl", "engine/xml/configuration/configuration-embed-video-player.xml");//TESTS UNTITAIRES
	so.addVariable("configFileUrl",  environnement + "xml/configuration/configuration-embed-video-player.php?xmlParam=" + videoId);//DEV B&D
	so.addVariable("content_id" , videoId);
	so.write(getCurrentEmbedPlayerDiv());
	var macmousewheel2 = new SWFMacMouseWheel( so );
}
/*
* appelé par le swf au démarrage, pour dire à l'embed du grand qu'il n'est pas en standalone
*/
function playerIsInit(){
	var playerobj = getCurrentEmbedPlayerFlash();
	if (playerobj != null && isFullPlayer==1) {
		playerobj.externalCall("standAlone", false);
	}
}
/**
* Fonction appelée par le ShowRoom pour mettre à jour la video
*
* @param	videoId
*/
function updateEmbedVideoPlayer( videoId ){
	var playerobj = getCurrentEmbedPlayerFlash();
	var standalone = getstandAloneMode();
	if(playerobj != null){
		//playerobj.externalCall("externalUpdate", videoId, standalone);
		initEmbedVideoPlayer( __positionX, __positionY, __sizeX, __sizeY, videoId );
	} else {
		initEmbedVideoPlayer( __positionX, __positionY, __sizeX, __sizeY, videoId );
	}
}
/*
* appelé par le swf quand on clique sur fermer
* vire l'embed
* le setTimeout est au cas où on clique vite sur fermer
* quand l'embed n'est pas vraiment initialisé
*/
var close;
function closeEmbedVideoPlayer(){
	var playerdiv = getCurrentEmbedPlayerDiv();
	var playerobj = getCurrentEmbedPlayerFlash();
	if(playerobj.externalCall != null){
		playerobj.externalCall("close");
		window.clearTimeOut(close);
	} else {
		close = window.setTimeout("closeEmbedVideoPlayer()", 100);
	}
}
// les on.. sont appelés par l'embed pour dire au full player (interface) ce qui se passe
function onVideoPlay(){
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	if(isFullPlayer==1){
		playerinterfaceobj.externalCall("onVideoPlay");
	}
}
function onVideoPause(){
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	if(isFullPlayer==1){
		playerinterfaceobj.externalCall("onVideoPause");
	}
}
function onVideoFinished(){
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	if(isFullPlayer==1){
		playerinterfaceobj.externalCall("onVideoFinished");
	}
}
//
/*
* pour que le player sache s'il doit démarrer tout seul ou attendre qu'on clique sur play
*/
function autoStart(){
	var playerobj = getCurrentEmbedPlayerFlash();
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	var standalone = getstandAloneMode();
	if(isFullPlayer == 1){
		playerobj.externalCall("autoStart", standalone);
	}
}
/*
* affiche l'embed, après la pub et le cale selon s'il est fullplayer ou embed
*/
function showEmbedPlayer(){
	var playerdiv = getCurrentEmbedPlayerDiv();
	var advertdiv = getCurrentAdvertDiv();
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	var playerobj = getCurrentEmbedPlayerFlash();
	//alert("showEmbedPlayer(), playerobj : " + playerobj);
	playerobj.externalCall("start", getstandAloneMode());
	if(isFullPlayer==1){
		playerdiv.style.left = "50%";
		playerinterfaceobj.externalCall("onVideoShow");
	} else {
		playerdiv.style.left = embedOriginalLeft;
	}
}
/*
* cache l'embed pendant la pub
*/
function hideEmbedPlayer(){
	var playerdiv = getCurrentEmbedPlayerDiv();
	if (playerdiv != null){
		if(isFullPlayer == 0){
			embedOriginalLeft = playerdiv.style.left;
		}
		playerdiv.style.left = "-4000px";
		var playerinterfaceobj = MM_findObj("appVideoPlayer");
		if(isFullPlayer == 1){
			playerinterfaceobj.externalCall("onVideoHide");
		}
	}
}
/* V0_1 */
/*
* stop l'embed à l'ouverture du video player.
*/
function stopEmbedPlayer(){
	var playerobj = getCurrentEmbedPlayerFlash();
	if(playerobj){
		if(document.getElementById("embed_playercontent")){
			document.getElementById("embed_playercontent").innerHTML = "";
		}
		//playerobj.externalCall("onVideoStop");
	}
}
/* */
/*-----------------ADVERT---------------*/
/**
* prend en compte les bonnes variables SMART, et crée l'iframe qui va afficher la pub (video-player-advert-iframe.html)
* @param	param_sas_pageid
* @param	param_sas_target
* @param	param_showTime_int
*/
function showAdvert(param_sas_pageid, param_sas_target, param_showTime_int){
	var playerdiv = getCurrentEmbedPlayerDiv();

	if (__positionX == null){
		__positionX = playerdiv.style.left;
		__positionY = playerdiv.style.top;
		__sizeX  = playerdiv.style.width;
		__sizeY  = playerdiv.style.height;
	}

	if(param_showTime_int > 0){

		//alert("showAdvert " + param_sas_pageid + ", " + param_sas_target + ", " + param_showTime_int);
		/*new*/
		var flashobj = getCurrentEmbedPlayerFlash();
		/*end new*/

		sas_target = param_sas_target;
		if(sas_target == undefined){
			sas_target = '';
		}
		var advertdiv = getCurrentAdvertDiv();
		var playerinterfaceobj = MM_findObj("appVideoPlayer");

		var iframewidth = 480;
		var iframeheight = 360;
		var sas_formatid = 1204;
		var sas_pageid = '3574/26636';

		if(isFullPlayer==1){
			advertdiv.style.left = "50%";
			advertdiv.style.marginTop =  (parseFloat (__positionY)) + "px";
			advertdiv.style.marginLeft = (-490 + parseFloat (__positionX)) + "px";
		} else {
			/*new*/
			iframewidth = flashobj.width;
			iframeheight = flashobj.height;
			if(iframeheight == 255){
				//iframeheight = 266;
				iframeheight = 250;
				iframewidth = 300;
			}
			/*end new*/
			/*sas_formatid = 809;
			sas_pageid = '3574/25965';*/
			sas_formatid = 1337;
			/*sas_pageid = '3574/26636';*/
			sas_pageid = '4753/30965';
			advertdiv.style.left = __positionX;
			advertdiv.style.top = __positionY;
			advertdiv.style.width = iframewidth;
			advertdiv.style.height = iframeheight;
		}
		advertdiv.style.width = __sizeX;
		advertdiv.style.height = __sizeY;
		advertdiv.style.visibility = "hidden";

		//var iframename = "video-player-advert-iframe.html";//TESTS UNITAIRES
		var iframename = "video-player-advert-iframe.php";//DEV B&D

		var advertHTML = '<iframe allowtransparency="true" name="advertiframe'+ isFullPlayer + '" id="advertframe'+ isFullPlayer + '" marginwidth="0" marginheight="0" src="' + environnement + iframename;
		//advertHTML += '?sas_pageid=' + sas_pageid + '&sas_formatid=' + sas_formatid + '&sas_master='+ sas_master + '&sas_tmstp=' + sas_tmstp + '&sas_target=' + escape(sas_target) + '"';
		advertHTML += '?sas_pageid=' + sas_pageid + '&sas_formatid=' + sas_formatid + '&sas_tmstp=' + sas_tmstp + '&sas_target=' + escape(sas_target) + '"';

		advertHTML += ' style="border: solid 0 #000000;" width="' + iframewidth + '" height="' + iframeheight + '" frameborder="0" scrolling="no"></iframe>';
		advertdiv.innerHTML = advertHTML;

		if(isFullPlayer == 1){
			playerinterfaceobj.externalCall("onVideoShow");
		}
		advertdiv.style.visibility = "visible";
		hideEmbedPlayer();
	}
}
/*
* appelée par l'iframe (video-player-advert-iframe.html) au onload si l'iframe a détecté qu'il n'y avait pas de pub à montrer
*/
function skipAdvert(){
	var playerobj = getCurrentEmbedPlayerFlash();
	if(playerobj){
		playerobj.externalCall("skipAdvert", getstandAloneMode());
	}
}
/*
* masque la pub à la fin ou après un skip
*/
function hideAdvert(){
	var advertdiv = getCurrentAdvertDiv();
	if(advertdiv != null){
		advertdiv.style.visibility = "hidden";
		advertdiv.innerHTML = "";
	}
	hideAdvertMessage();
}
/*
* appelée par showAdvert pour accompagner la pub d'un message ("votre programme dans quelques instants")
*/
function showAdvertMessage(){
	/*new*/
	return;
	/*end new*/
	var playerinterfaceobj = MM_findObj("appVideoPlayer");
	var advertdiv = getCurrentAdvertDiv();
	var advertmsgdiv = getCurrentAdvertMessageDiv();

	//var img_path = environnement + "modules/video-player/img/";//TESTS UNITAIRES
	var img_path = environnement + "module/video-player/";//DEV B&D

	var advertmsgHTML;
	if(isFullPlayer == 1){
		advertmsgdiv.style.left = advertdiv.style.left;
		advertmsgdiv.style.top = advertdiv.style.top;
		advertmsgdiv.style.marginTop = (parseFloat (__positionY - 1)) + "px";
		advertmsgdiv.style.marginLeft = (-490.5 + parseFloat (__positionX - 1)) + "px";
		advertmsgHTML = '<img src="' + img_path + 'video-player-advert-message-480-360.jpg">';
	} else {
		advertmsgHTML = '<img src="' + img_path + 'video-player-advert-message-300-260.jpg">';
	}
	advertmsgdiv.innerHTML = advertmsgHTML;
	advertmsgdiv.style.visibility = "visible";
}
/*
* appelée par hideAdvert pour masque le message ("votre programme dans quelques instants")
*/
function hideAdvertMessage(){
	var advertmsgdiv = getCurrentAdvertMessageDiv();
	if(advertmsgdiv.style != null){
		advertmsgdiv.style.visibility = "hidden";
	}
}

/*
* rafraîchie la pub selon l'interval donné à l'embed video player
*/
function refreshAdvert(){
	//alert("refreshAdvert");
}


