/*
*	Script de lancement de streaming
*/
function lancer_demo() {
	w = 340;
	h = 310;
	l = (screen.width - w)/2;
	t = (screen.height - h)/2;
	F1 = window.open("demo_diffusion.php", "demo_diff", "width=" + w + ", height=" + h + ", left=" + l + ", top=" + t + ", status=true");
}

function lancer_ba(prg) {
	w = 340;
	h = 310;
	l = (screen.width - w)/2;
	t = (screen.height - h)/2;
	F1 = window.open("bande_annonce.php?prg="+ prg , "bande_annonce", "width=" + w + ", height=" + h + ", left=" + l + ", top=" + t + ", status=true");
}

/*
*	Scripts de streaming
*/
	var idx_active = 'lect';
	var totalDuree = 0;
	var nbreMarker = 0;
	var isMarker = false;
	var isSelected = false;
	var x = 0;
	var y = 0;
	var saveX = 0;
	var saveLargeur = 0;
	var largeur = 0;
	var stop_state = 1;
	var pause_state = 2;
	var play_state = 3;
	var isStop = 0;
	var timeToRefresh = 0;

	// Récupèration des infos du navigateur
	var N=navigator.appName;

	IE = (N=="Microsoft Internet Explorer") ? 1 : 0;
	NS = (N=="Netscape") ? 1 : 0;
	OP = (N=="Opera") ? 1 : 0;
	V  = (IE | NS) ? 1 : 0;

	if (!V) event = null;

	if (NS) {document.captureEvents(Event.MOUSEMOVE);}
	document.onmousemove=mousemove;

	function mousemove(e) 
	{
		if ((!document.getElementById('MediaPlayer')) || (!document.getElementById('MediaPlayer').currentMedia)) {
			return;
		}
		if (document.getElementById('MediaPlayer').playState == stop_state) {
			return;
		}
		if (NS) {var mouseX=e.pageX; var mouseY=e.pageY}
		if (IE) {var mouseX=event.x; var mouseY=event.y}
		x = mouseX;
		y = mouseY;
		
		if(isSelected)
		{			
			if(saveX >= x)
			{
				delta = saveX - x;
				largeur = saveLargeur - delta;
				if(largeur >= 0)
				{
					document.getElementById("tdProgress1").style.width = largeur;
					document.getElementById("tdProgress3").style.width = 300 - 7 - largeur;
				}
			}
			else
			{
				delta = x - saveX;
				largeur = saveLargeur + delta;
				if(largeur <= 293)
				{
					document.getElementById("tdProgress1").style.width = largeur;
					document.getElementById("tdProgress3").style.width = 300 - 7 - largeur;
				}
			}
		}
	}
	
	function setSelected(sel)
	{	
		if ((!document.getElementById('MediaPlayer')) || (!document.getElementById('MediaPlayer').currentMedia)) {
			return;
		}
		setTimeCode();
		if (document.getElementById('MediaPlayer').playState == stop_state) {
			return;
		}

		isSelected = sel;
		if(!isSelected)
		{
			isSelected = false;
			saveX = 0;
			saveLargeur = 0;
			
			document.getElementById('MediaPlayer').Controls.currentPosition = (largeur * totalDuree) / (300 - 7);
			largeur = 0;
		}
		else
		{
			isSelected = true;
			saveX = x;
			saveLargeur = document.getElementById('tdProgress1').offsetWidth;
		}
	}
	
	function init() {
		img_on('lect');
		sendStremingLog();
	}

	/*----------------------------------------------------------
							XMLHttpRequest
	----------------------------------------------------------*/
	var req;			// Le XMLHttpRequest de travail
	function loadXMLDoc(url) {
		req = false;
	    // branch for native XMLHttpRequest object
	    if(window.XMLHttpRequest) {
	    	try {
				req = new XMLHttpRequest();
	        } catch(e) {
				req = false;
	        }
	    // branch for IE/Windows ActiveX version
	    } else if(window.ActiveXObject) {
	       	try {
	        	req = new ActiveXObject("Msxml2.XMLHTTP");
	      	} catch(e) {
	        	try {
	          		req = new ActiveXObject("Microsoft.XMLHTTP");
	        	} catch(e) {
	          		req = false;
	        	}
			}
	    }
	}
	var indSendLog;	// Indique si une mauvaise qualité de service a été détectée sur le poste client
	indSendLog = 0;
	function sendStremingLog() {
		var buffering, bandWidth, sourceProtocol, lostPackets, timeCode;
		var url;
		var responseText;
		buffering = 0;
		bandWidth = 0;
		if (document.getElementById('MediaPlayer').playState == 3 && indSendLog == 0) {
			bandWidth = Math.round(document.getElementById('MediaPlayer').Network.bitRate/1024);
			buffering = document.getElementById('MediaPlayer').Network.bufferingCount;
			lostPackets = document.getElementById('MediaPlayer').Network.lostPackets;
			// buffering ou bande passante insuffisante
			//    ==> Envoi des données au serveur
			if (buffering > MAX_BUFFERING_NUMBER || bandWidth < MIN_BAND_WIDTH || lostPackets > MAX_LOST_PACKETS) {
				sourceProtocol = document.getElementById('MediaPlayer').Network.sourceProtocol;
				timeCode = parseInt(document.getElementById('MediaPlayer').Controls.currentPosition, 10);
				// Envoi des données au serveur à l'aide d'une requête XMLHTTP
				url = URL_SAVE_LOG +'&buf=' + buffering + '&bdw=' + bandWidth + '&lp=' + lostPackets + '&sp=' + sourceProtocol + '&tc=' + timeCode;		// Url d'appel
				loadXMLDoc(url);
				req.open("GET", url, true);				// Mode Async
				req.send(null);
				indSendLog = 1;
			}
		}
		window.setTimeout('sendStremingLog()', SEND_FREQUENCE);
	}

	function img_on (type) {
		if(type != "accueil") {
			document.getElementById(type).src = IMAGE_PATH + 'v_' + type + '_on.gif';
		}
/*		document.getElementById('img_aide').src = IMAGE_PATH + 'v_' + type + '_navtxt.gif';		
*/
	}
	function img_off (type) {
		if(type != "accueil") {
			document.getElementById(type).src = IMAGE_PATH + 'v_' + type + '_off.gif';
		}
		img_on (idx_active);
	}
	
	function ms_cmd(type) {
		switch(type)
		{
			case 'lect':
			case 'stop':
			case 'paus':
				document.getElementById(idx_active).src = IMAGE_PATH + 'v_' + idx_active + '_off.gif';
				idx_active = type;
				img_on (idx_active);
				break;
		}
	
		if(!document.getElementById('MediaPlayer'))
			return;
		
		if (typeof(document.getElementById('MediaPlayer').Controls)=="undefined")
			return;
		
		try { eval('cmd_'+type+'()');
		} catch(e) {} 
		
	}
	
	function cmd_lect() {
		if(isStop == 1) {
			isStop = 2;
			gereRefreshPage();	
		}
		
		document.getElementById('MediaPlayer').Controls.Play();
	}	
	
	function cmd_stop() {
		document.getElementById("tdProgress1").style.width = 0;
		document.getElementById("tdProgress3").style.width = 293;
		document.getElementById('MediaPlayer').Controls.Stop();
	}
	
	function cmd_paus() {
		document.getElementById('MediaPlayer').Controls.Pause();
	}
	
	function cmd_plein() {
		document.getElementById('MediaPlayer').fullScreen =true;
	}
	
	function cmd_volplus() {
		if (document.getElementById('MediaPlayer').Settings.Volume<100){
				document.getElementById('MediaPlayer').Settings.Volume+=10;
			}	
	}
	
	function cmd_volmoins() {
		if (document.getElementById('MediaPlayer').Settings.Volume>10){
				document.getElementById('MediaPlayer').Settings.Volume-=10;
			}	
	}

	function cmd_suiv() {
		if(isMarker)
		{
			if(isStop == 1) {
				isStop = 2;
				gereRefreshPage();	
			}
			newMarker = document.getElementById('MediaPlayer').controls.currentMarker + 1;
			if(newMarker <= nbreMarker)
			{
				document.getElementById('MediaPlayer').controls.currentMarker = newMarker;
				hitMarker(newMarker);
			}
		}
	}

	function cmd_pre() {
		if(isMarker)
		{
			if(isStop == 1) {
				isStop = 2;
				gereRefreshPage();	
			}
			newMarker = document.getElementById('MediaPlayer').Controls.currentMarker - 1;
			if(newMarker >= 0)
			{
				document.getElementById('MediaPlayer').Controls.currentMarker = newMarker;
				hitMarker(newMarker);
			}
		}
	}
	
	function setTimeCode() {
		if ((!document.getElementById('MediaPlayer')) || (!document.getElementById('MediaPlayer').currentMedia)) {
			return;
		}
		duration = document.getElementById('MediaPlayer').currentMedia.getItemInfo('Duration');
		totalDuree = extractPartieEntiere(duration, ',');
		if (isSelected) {
			largeur = document.getElementById('tdProgress1').offsetWidth;
			t_code = parseInt((largeur * totalDuree)/293);
		} else {
			t_code = parseInt(document.getElementById('MediaPlayer').Controls.currentPosition, 10);
		}
		hh = parseInt(t_code/3600);
		mm = parseInt((t_code - 3600 * hh)/60);
		ss = parseInt(t_code - (3600 * hh + 60 * mm));
		ss = (ss < 10) ? '0' + ss : ss;
		mm = (mm < 10) ? '0' + mm : mm;
		hh = (hh < 10) ? '0' + hh : hh;
		document.getElementById('time_code').innerHTML = hh + ':' + mm + ':' + ss;
	}

	function lectureInProgress()
	{
		if ((!document.getElementById('MediaPlayer')) || (!document.getElementById('MediaPlayer').currentMedia)) {
			window.setTimeout('lectureInProgress()',1000);
			return;
		}
		try {
			document.getElementById('MediaPlayer').network.maxBandwidth = 2147483647;	
			if(!isSelected)
			{
				if(totalDuree == 0)
				{
					duration = document.getElementById('MediaPlayer').currentMedia.getItemInfo('Duration');
					totalDuree = extractPartieEntiere(duration, ',');
					nbreMarker = document.getElementById('MediaPlayer').currentMedia.markerCount;
					if(nbreMarker != 'undefined' && nbreMarker > 0) {
						isMarker = true;
					}
				}
				
				posi = parseInt(document.getElementById('MediaPlayer').Controls.currentPosition, 10);
				
				largeur1 = (posi * 293)/totalDuree;
				largeur1 = parseInt(largeur1, 10);
				if(largeur1 != 'NaN')
				{
					document.getElementById("tdProgress1").style.width = largeur1;
					document.getElementById("tdProgress3").style.width = 300 - 7 - largeur1;
				}
			}
			if (document.getElementById('MediaPlayer').playState == stop_state) {
				ms_cmd('stop');
			}
			
			gereRefreshPage();
			setTimeCode();
		}catch(exp){}
		window.setTimeout('lectureInProgress()',1000);
	}
	
	function extractPartieEntiere(val, caractere)
	{
		return val.substr(0, val.indexOf(caractere, 0));	
	}
	
	function gereRefreshPage()
	{
		switch(isStop)
		{
			case 0:
				if(document.getElementById('MediaPlayer').playState == stop_state || document.getElementById('MediaPlayer').playState == pause_state)
				{
					sec = getSecondFromDate();
					// on initialise timeToRefresh à la valeur heure courante en seconde + 9min50 
					timeToRefresh = sec + 590;
					isStop = 1;	
				}
				break;
				
			case 2:
				sec = getSecondFromDate();
				if(sec > timeToRefresh)
				{
					location.reload();
				}
				else
				{
					isStop = 0;
					timeToRefresh = 0;
				}
				break;	
		}
	}
	
	function hitMarker(newMarker) {
		document.getElementById('lect').alt = document.getElementById("MediaPlayer").currentMedia.getMarkerName(newMarker);
		if (newMarker > 1) 
			document.getElementById('pre').alt = document.getElementById("MediaPlayer").currentMedia.getMarkerName(newMarker-1);
		if (newMarker < document.getElementById('MediaPlayer').currentMedia.markerCount)
		document.getElementById('suiv').alt = document.getElementById("MediaPlayer").currentMedia.getMarkerName(newMarker+1);
	}
		
	function getSecondFromDate()
	{
		d = new Date();
		hh = d.getHours();
		mm = d.getMinutes();
		ss = d.getSeconds();
		
		sec = (hh * 3600) + (mm * 60) + ss;
		return sec;
	}
	
	
function putMessage(strHtml) {
	
	document.getElementById('message').value = strHtml;
}