
function sizeWindow(w1, h1, dont_move_window) {
	if(!dont_move_window)
		self.moveTo((screen.width - w1) / 2, (screen.height - h1) / 2 - 50);
	self.resizeTo(w1, h1);
	if(!dont_move_window)
		self.moveTo((screen.width - w1) / 2, (screen.height - h1) / 2 - 50);
}

var expdate = new Date();
var cookies_expiration_date = expdate + (365*24*60*60*1000);

// some variables to save

// player_url : Definit dans le head (avant inclusion jwcontrolsX.js)
if(!player_url)
	var player_url = "/flash/mediaplayer/player44WS.swf";

var ws;
var jwPlaylistWidth = 240;
var jwPlaylistHeightOffset = 0;
var jwPlayerName = "video_player";
var jwContainerName = "video_player_container";
var jwPlayer;
var jwPasSeeking = 5;
var jwStrm = true;
var jwBgColor = "#000000";
var jwCurrentPosition;
var jwCurrentRemaining;
var jwIsMute = false;
var jwCurrentVolume = 200;
var jwCurrentState = "";
var jwCurrentLoad;
var jwBackColor;
var jwScreenColor;
var jwFrontColor;
var pref;
var doi;
var jwImage;
var jwMilieu;
var jwFin;
var jwDebug;
var jwWide;
var jwSequenced = true;
var jwScriptHeight = 80;
var jwZoomFactor = 1;
var first_start = true;


function sendEvent(typ,prm)	{ jwPlayer.sendEvent(typ,prm); }

function jwSeek(seek)		{
	if(!jwPlayer)
		return;

	if(!jwCurrentState || jwCurrentState=="IDLE") {
		jwPlayer.sendEvent("PLAY");
		// Wait for buffering before seeking
		setTimeout("jwSeek("+ seek +")", 2000);
		return;
	}

	jwPlayer.sendEvent("SEEK", seek);
}


function createPlayer(url, moreParams, morePlugins, autostart) {

	if(moreParams)
		moreParams = "&"+ moreParams;

	pluginsListe = "";//"/flash/mediaplayer/plugins/googlytics-1.swf,/flash/mediaplayer/plugins/quickkeys-1.swf";
	if(morePlugins)
		pluginsListe += (pluginsListe?",":"") + morePlugins;


	var s1 = new SWFObject(player_url, jwPlayerName,"100%","100%","9", jwBgColor);
	
	s1.addParam("allowscriptaccess","always");
	s1.addParam("allowfullscreen","true");
	s1.addParam("wmode","transparent");

	if(autostart)
		s1.addVariable("autostart", "true");

	if(jwStrm)
		s1.addVariable("streamer", pref);
	else
		url = pref +"/"+ url;

	s1.addVariable('plugins', pluginsListe);

	s1.addVariable('volume', '200');

	if(jwBackColor)
		s1.addVariable('backcolor',		jwBackColor);
	if(jwScreenColor)
		s1.addVariable('screencolor',	jwScreenColor);
	if(jwFrontColor)
		s1.addVariable('frontcolor',	jwFrontColor);

	s1.addVariable("abouttext", "Copyright &copy; IRCAD&reg;");
	s1.addVariable("aboutlink", "/copyright.php");

	s1.addVariable("image", jwImage);
	s1.addVariable("file", url + moreParams);

	s1.write(jwContainerName);

}

function playerReady(obj) {

	document.onkeydown = jwKeyDown;

	jwSendServer(doi, "debut");
	jwPlayer = document.getElementsByName(obj.id)[0];
	jwAddListeners();

}

function jwAddListeners() {
	if (jwPlayer) { 
		jwPlayer.addModelListener(		"STATE",	"jwStateMonitor");
		jwPlayer.addModelListener(		"TIME",		"jwTimeMonitor");
		jwPlayer.addControllerListener(	"VOLUME",	"jwVolumeMonitor");
		jwPlayer.addControllerListener(	"MUTE",		"jwMuteTracker");
	}
	else
		setTimeout("jwAddListeners()", 100);
}



function jwVolumeMonitor(obj)	{ jwCurrentVolume = obj.percentage }

function jwMuteTracker(obj)		{ jwIsMute = obj.state; }


function jwStateMonitor(obj) {
	jwCurrentState = obj['newstate'];
	if(jwDebug && document.getElementById('state'))
		document.getElementById('state').innerHTML = jwCurrentState;
}


function jwTimeMonitor(obj) {
	jwCurrentPosition  = parseInt(obj['position']);
	jwCurrentRemaining = parseInt(obj['duration']) - jwCurrentPosition;

	
	if(first_start) {
		first_start = false;
		jwMilieu = Math.floor(parseInt(obj['duration'])/2);
		jwFin = Math.floor( parseInt(obj['duration']) - parseInt(obj['duration'])*10/100 );
	}

	if(jwMilieu && jwCurrentPosition==jwMilieu) {
		jwSendServer(doi, "milieu");
		jwMilieu = 0;
	}
	else if(jwFin && jwCurrentPosition==jwFin) {
		jwSendServer(doi, "fin");
		jwFin = 0;
	}


	if(jwDebug) {
		if(document.getElementById('remaining'))
			document.getElementById('remaining'	).innerHTML = jwCurrentRemaining;
		if(document.getElementById('time'))
			document.getElementById('time').innerHTML = jwCurrentPosition;
	}


	if(jwCurrentPosition==0 && document.getElementById('subtitles_contents') && document.getElementById('abstract') && document.getElementById('subtitles_contents').innerHTML != document.getElementById('abstract').innerHTML)
		document.getElementById('subtitles_contents').innerHTML = document.getElementById('abstract').innerHTML;


	if(document.getElementById('playlist_intro')) {
		if(jwCurrentPosition>=0 && jwCurrentPosition<=8 && document.getElementById('playlist_intro').style.display=="none") {
			mask('playlist');
			show('playlist_intro');
		}
		else if(jwSequenced && jwCurrentPosition>8 && document.getElementById('playlist').style.display=="none") {
			mask('playlist_intro');
			show('playlist');
		}
	}


	if(jwSequenced) {

		for(i=0; i<tabTC.length; i++) {
			if(i==tabTC.length-1 && jwCurrentPosition >= tabTC[i]) {
				newTC = i;
				break;
			}
			else if(jwCurrentPosition >= tabTC[i] && jwCurrentPosition < tabTC[i+1]) {
				newTC = i;
				break;
			}
			else if(i==0 && jwCurrentPosition < tabTC[i]) {
				newTC = -1;
				break;
			}
		}

		if(newTC != currentTC) {
			if(document.getElementById('tc_'+ currentTC))
				document.getElementById('tc_'+ currentTC).className = "";
			
			if(document.getElementById('tc_'+ newTC)) {
				document.getElementById('tc_'+ newTC).className = "actif";
				setTimeout("document.getElementById('playlist').scrollTop = document.getElementById('tc_'+newTC).offsetTop-6+jwPlaylistHeightOffset", 100);

				if(document.getElementById('subtitles_contents') && document.getElementById('script_'+ newTC))
					document.getElementById('subtitles_contents').innerHTML = document.getElementById('script_'+ newTC).innerHTML;

			}

			currentTC = newTC;
		}
	}

}


function jwSendServer(doi, step) {
	AJAX_request("/inc/video_count.php?"+ step +"="+  doi + (ws?"&ws=1":""), "");
}


function jwSetCookie(param, value) {
	try	{	setCookie(param, value, cookies_expiration_date); }
	catch (e) { }
}











function toggleSubtitles() {
	if(document.getElementById('subtitles')) {

		embedW = document.getElementById(jwContainerName).offsetWidth;
		embedH = document.getElementById(jwContainerName).offsetHeight;
		
		if(document.getElementById('subtitles').style.display=="none") {
			win_resize_lock = true;
			show('subtitles');
			if(document.getElementById('btn_subtitles'))
				document.getElementById('btn_subtitles').innerHTML = "Hide script";
			jwSetCookie("WS_video_jwScriptInitVisible", "1");
		}
		else {
			mask('subtitles');
			if(document.getElementById('btn_subtitles'))
				document.getElementById('btn_subtitles').innerHTML = "Show script";
			jwSetCookie("WS_video_jwScriptInitVisible", "0");
		}

		jwInitPositionnement(embedW, embedH);



		win_resize_lock = false;

	}
}



var jwInitialized = false;
function jwInitPositionnement(forceW, forceH) {
	
	isMaximized = (screen.height-getWindowHeight() <= 115);


	if(jwWide) {
		real_w = 480;
		real_h = 270;
	} else {
		real_w = 360;
		real_h = 270;
	}
	real_w *= jwZoomFactor;
	real_h *= jwZoomFactor;

	if(forceW && forceH) {
		jw_w = forceW;
		jw_h = forceH - 18;

		if(nav['Name'] == "Firefox")
			jw_h -= 2;

	}
	else {
		jw_w = real_w;
		jw_h = real_h;
	}

//	if(jwSequenced)
		jw_w += jwPlaylistWidth;

	jw_h += 143;

	if(nav['Name'] != "Safari")
		jw_w += 8;
	if(nav['Name'] == "Internet Explorer")
		jw_w += 4;


	if(document.getElementById('subtitles') && document.getElementById('subtitles').style.display!="none") {
		jw_h += jwScriptHeight + 5;

		if(nav['Name'] == "Firefox")
			jw_h += 24;
		else if(nav['Name'] == "Safari")
			jw_h -= 9;
		else if(nav['Name'] == "Internet Explorer" && nav['Version'] >= 8)
			jw_h += 18;
		else if(nav['Name'] == "Internet Explorer" && nav['Version'] >= 7)
			jw_h += 8;
		else if(nav['Name'] == "Internet Explorer")
			jw_h -= 2;

	}
	else {
		
		if(nav['Name'] == "Firefox")
			jw_h += 24;
		else if(nav['Name'] == "Safari")
			jw_h -= 9;
		else if(nav['Name'] == "Internet Explorer" && nav['Version'] >= 8)
			jw_h += 18;
		else if(nav['Name'] == "Internet Explorer" && nav['Version'] >= 7)
			jw_h += 8;
		else if(nav['Name'] == "Internet Explorer")
			jw_h -= 2;

	}




	//setTimeout("sizeWindow(jw_w, jw_h"+ (jwInitialized?", true":"") +")", 1);
	//alert(screen.height-getWindowHeight());
	if(!isMaximized)
		sizeWindow(jw_w, jw_h, true);
	else
		win_resize_lock = false;
	
	win_resize();

	jwInitialized = true;
}


var win_resize_lock = false;
function win_resize() {
	if(!win_resize_lock && document.getElementById('playlist') && document.getElementById('main')) {
		document.getElementById('playlist').style.height = 1;
		document.getElementById('playlist_intro').style.height = 1;
		a = getSize(document.getElementById('main'));
		
		new_h = a.h-20 + (jwDebug?-34:0) + jwPlaylistHeightOffset + (jwStrm ? -28 : 0);

/*		if(nav['Name'] == "Firefox")
			new_h -= 6;
		else if(nav['Name'] == "Safari")
			new_h -= 6;
		else*/ if(nav['Name'] == "Internet Explorer" && nav['Version'] >= 7)
			new_h += 2;
		else if(nav['Name'] == "Internet Explorer")
			new_h -= 0;
		

		document.getElementById('playlist').style.height = new_h;
		document.getElementById('playlist_intro').style.height = new_h;
	}
}



function jwChangeScriptFontSize(divID, pas) {
	changeFontSize(divID, pas);
//	if(document.getElementById('subtitles') && document.getElementById('subtitles').style.display=='none')
//		toggleSubtitles();
}

function jwSetScriptFontSize(divID, fs) {
	setFontSize(divID, fs);
//	if(document.getElementById('subtitles') && document.getElementById('subtitles').style.display=='none')
//		toggleSubtitles();
}








/*	RACCOURCIS CLAVIER	*/

function jwKeyDown(k) {
	if(document.all)
		k = window.event.keyCode;
	else
		k = k.which;

	jwActionKey(k);
}

function jwNokey() {
	return;
}

function jwReinitKeyCode() {
	if(document.all)
		window.event.keyCode = 0;
	else
		k.which = 0;
}

function jwActionKey(k) {
	if(k==37/* || k==38*/) // Si on appuie sur [FlecheGauche] || [FlecheHaut]
		jwSeek(jwCurrentPosition - jwPasSeeking);

	if(k==39/* || k==40*/) // Si on appuie sur [FlecheDroite] || [FlecheBas]
		jwSeek(jwCurrentPosition + jwPasSeeking);
	
	if(k==32) // Si on appuie sur [Espace]
		jwPlayer.sendEvent("PLAY");	// play/pause video

	if(k==106) // Si on appuie sur [/]
		jwPlayer.sendEvent('MUTE');	// MUTE / UNMUTE

	/*
	if(k==107) // Si on appuie sur [+]
		jwPlayer.sendEvent('VOLUME', jwCurrentVolume+10);	// On augmente le volume
	if(k==109) // Si on appuie sur [-]
		jwPlayer.sendEvent('VOLUME', jwCurrentVolume-10);	// On diminue le volume
	*/


	if(k==70) // Si on appuie sur [F]
		jwPlayer.sendEvent("FULLSCREEN");

	if(jwSequenced) {

		if(k==107) { // Si on appuie sur [+]
			jwChangeScriptFontSize('subtitles_contents', 2);	// On augmente la taille du texte
			jwChangeScriptFontSize('playlist', 2);				// On augmente la taille du texte
			jwChangeScriptFontSize('playlist_intro', 2);		// On augmente la taille du texte
		}
		if(k==109) { // Si on appuie sur [-]
			jwChangeScriptFontSize('subtitles_contents', -2);	// On diminue la taille du texte
			jwChangeScriptFontSize('playlist', -2);				// On augmente la taille du texte
			jwChangeScriptFontSize('playlist_intro', -2);		// On augmente la taille du texte
		}
		if(k==83) // Si on appuie sur [S]
			toggleSubtitles();	// show/hide script

		if(k==33) { // Si on appuie sur [PageHaut]
			if(tabTC.length < 1)
				jwSeek(prevTC);

			for(i = tabTC.length-1; i >= 0; i--) {
	//			alert(tabTC[i] + " " + jwCurrentPosition);
				if(eval(tabTC[i]) < eval(jwCurrentPosition)) {
	//				alert(tabTC[i]);
					jwSeek(tabTC[i]);
					break;
				}
			}
		}

		if(k==34) { // Si on appuie sur [PageBas]
			if(tabTC.length < 1)
				jwSeek(nextTC);

			for(i = 0; i < tabTC.length; i++) {
	//			alert(tabTC[i] + " " + jwCurrentPosition);
				if(eval(tabTC[i]) > eval(jwCurrentPosition)) {
					jwSeek(tabTC[i]);
					break;
				}
			}
		}
	}

	
	if(k==36) // Si on appuie sur [Home]
		jwSeek(0);					// On redemarre la video

	if(k==35) // Si on appuie sur [Fin]
		jwPlayer.sendEvent("STOP");	// On arrete la video

	//alert(k);
}
