var opacity = 0;
var transSpeed = 40;
var playing = false;
var enLecture = false;
var opacityStep = 0.05;
var skip = false;
var movieScale = 1.5;
var lastMovie = null;
var pt='.';
var droite = false;
var gauche = false;
var movieSrc ="";
var lastMovie = "none";

var size = 1;
var loaded = 0;
var displayStatus = "...";
var mvTime = 0;
var mvDuration = 0;
var mvTimePct  = 0;
var debug = "";

var navOk = true;
			

function setOpacity( obj , value )
{
	obj.style.opacity = value;
	obj.style.filter = 'alpha(opacity=' + value*100 + ')';
}
function setMovieURL(){

	document.getElementById( 'vcontent' ).innerHTML = '<embed src=" '+'videos/'+movieSrc+'" autoplay="false" width="320" height="240" id="videoBox" name="videoBox" controller="false" href="javascript:nop(this)"></embed>';
	
}
function setMovie(){
	document.getElementById( 'status' ).innerHTML = "";
	if(lastMovie == movieSrc){
		taille(movieScale);
		moviePlay();
		return;
	}else{
		lastMovie = movieSrc;
		setMovieURL();

	}
}
function checkForInit(){
	try{
		document.getElementById('videoBox').SetAutoPlay(false);
		document.getElementById('videoBox').SetControllerVisible(false);
		document.getElementById('videoBox').SetIsLooping(false);
		document.getElementById('videoBox').SetHREF("javascript:nop();");
		document.getElementById( 'alertBox' ).innerHTML = "";
		s = document.getElementById('videoBox').GetPluginStatus(); 
		if( s == "Playable" | s == "Loading" | s == "Complete"){
			mvDuration  = parseInt(document.getElementById('videoBox').GetDuration() , 10 ) ;
			mvTimeScale = parseInt(document.getElementById('videoBox').GetTimeScale() , 10 );
			tempDate = new Date();
			tempDate.setMinutes(0);
			tempDate.setHours(0);
			tempDate.setSeconds(Math.round(mvDuration/mvTimeScale));
			mvDurationString = Lz(tempDate.getMinutes())+":"+Lz(tempDate.getSeconds());
			clearInterval(initialiser);
			taille(1.5);
			document.getElementById( 'alertBox' ).innerHTML = "";
			statusChecker = setInterval( checkStatus , 100);
			document.getElementById("infoBox").style.display = "none";
		}

	}catch(err){
		document.getElementById('status').innerHTML = "";
		document.getElementById('status').innerHTML = "initialisation..";
		
	}
	
}
function paraitre(){
	if( opacity <= (1 + opacityStep)){
		setOpacity( document.getElementById('surface') , opacity );

	}
	if( opacity > 0.7 ){
		document.getElementById( 'alertBox' ).innerHTML = "chargement en cours ... patientez ...";
		
	}
	if( opacity >= 1.2 ){
		clearInterval( parition );
		document.body.style.backgroundColor = "black";
		document.getElementById('contenu').style.display = 'none';
		playing = true;
		setMovie();
		document.getElementById( 'controlles' ).style.display = "block";
		skip = false;
		initialiser = setInterval( checkForInit , 100 );
		opacity = 1;
	}
	opacity += opacityStep;
}

function disparaitre(){
	setOpacity(document.getElementById('surface'), opacity);
	try{
		if(statusChecker){
			clearInterval(statusChecker);
		}
		
	}catch(err){}
	if(initialiser){
		clearInterval(initialiser);
		document.getElementById( 'alertBox' ).innerHTML = "";
		}
	if(opacity <= 0){
		clearInterval(disparition);
		taille(1);
		document.getElementById('bande2').style.visibility = 'visible';
		document.getElementById('surface').style.display ='none';
		skip = false;
	}else{
		opacity -= opacityStep;
	}
}
function video(){
	if(!skip){
		skip = true;
		if(playing){// lecture en cours : revenir à la page
			try{
				clearInterval(statusChecker);
			}catch(err){
				document.getElementById( 'alertBox' ).innerHTML = "";
			}
			document.body.style.backgroundColor = "white";
			document.getElementById('contenu').style.display = 'block';
			document.getElementById('navigation').style.visibility = 'visible';
			document.getElementById('bande').style.backgroundColor = '#CCCCCC';
			document.getElementById('bande').style.borderColor = '#FF6600';
			taille(1);
			playing = false;
			opacity = 1;
			setOpacity(document.getElementById('surface'), 1);
			document.getElementById('controlles').style.display = "none";
			disparition = setInterval(disparaitre, transSpeed );
		}else{// lecture pas en cours : ouvrir video
			opacity = 0;
			document.getElementById('bande2').style.visibility = 'hidden';
			document.getElementById('navigation').style.visibility = 'hidden';
			document.getElementById('bande').style.backgroundColor = 'black'; 
			document.getElementById('bande').style.borderColor = '#999999';
			setOpacity(document.getElementById('surface'), 0);
			document.getElementById('surface').style.display ='block';
			parition = setInterval(paraitre,transSpeed );
			
		}
	}
}
function refreshStatusValues(){
	try{
		size 	   = parseInt(document.getElementById('videoBox').GetMovieSize() , 10 );
		loaded 	   = parseInt(document.getElementById('videoBox').GetMaxBytesLoaded() , 10 );
		timeLoaded = parseInt(document.getElementById('videoBox').GetMaxTimeLoaded() , 10 );
		percent    = Math.round( loaded/size * 100 );
		debug= '';
		qtStatus = document.getElementById('videoBox').GetPluginStatus();
	}catch(err){
		percent = "";
		debug ="";
		qtStatus = "err";
	}
	
}
function refreshPlayingValues(){
	try{
		mvTime = parseInt( document.getElementById('videoBox').GetTime() , 10 ) ;
		tempDate = new Date();
		tempDate.setMinutes( 0 );
		tempDate.setHours( 0 );
		tempDate.setSeconds( Math.round( mvTime / mvTimeScale ) );
		mvTimeString = Lz(tempDate.getMinutes()) + ":" + Lz(tempDate.getSeconds());
	}catch(err){
		
	}
}
	
function checkStatus(){
	refreshStatusValues();
	switch(qtStatus){
		case 'Loading':
			pt=(pt=='.')?'..':'.';
			displayStatus = 'chargement '+pt;
			break;
			
		case 'Playable':

			refreshPlayingValues();
			if(  (document.getElementById('videoBox').GetRate() == 0 ) && ( (timeLoaded - mvTime) > ( 30 ) )){
				moviePlay();
			}else{
				if( mvTime == mvDuration){
					rewind();
					nop();
				}else{
					if( (timeLoaded - mvTime) < ( 30 ) ){
						movieStop(); //vérifier si c'est nécessaire normalement qt doit stoper seul à ce moment???
						displayStatus = "<span style='color : #FF6600;'><strong>chargement...</strong></span>";
					}else{
						displayStatus = 'lecture.';
					}
				}
			}
			break;
		case 'Complete':
			refreshPlayingValues();
			if(!enLecture){
				moviePlay();
			}
			if( mvTime == mvDuration ){
					rewind();
					nop();
			}else{
				displayStatus = 'lecture';
			}
			
			break;
			
		default:
			displayStatus = qtStatus;
			nop();
			break;
	}
			
	displayStatus +=  ' ' + (mvTimeString)+" / "+(mvDurationString);
	document.getElementById('status').innerHTML = "";
	document.getElementById('status').innerHTML = displayStatus + " | chargé : "+ percent + '%'
	
	
}
function movieControl(){
	if(playing){
		movieStop();
		video();
	}else{
		moviePlay();
	}
}
function rewind(){
	try{
		document.getElementById('videoBox').Rewind();
	}catch(err){
		document.getElementById('status').innerHTML = "";
		document.getElementById('status').innerHTML = '[erreur] : '+err;
	}
	moviePlay();
}
function avancerHover(){
	
}
function reculerHover(){
	
}
function reculerOut(){
	
}
function avancerOut(){
	
}
function avancer(){
	if( (timeLoaded - mvTime) > ( 50 ) ){
		try{
			document.getElementById('videoBox').Step(25);
		}catch(err){
			document.getElementById('status').innerHTML = "";
			document.getElementById('status').innerHTML = '[erreur]'+err;
		}
		moviePlay();
		droite = true;
	}
}
function reculer(){
	try{
		document.getElementById('videoBox').Step(-25);
	}catch(err){
		document.getElementById('status').innerHTML = "";
		document.getElementById('status').innerHTML = '[erreur]'+err;
	}
	droite = true;
	moviePlay();
}
function taille(r){
	w = r*320; // reprendre valeur initiale
	h = r*240;
	document.getElementById('vcontent').style.height = h;
	document.getElementById('videoBox').width = w;
	document.getElementById('videoBox').height = h;
	//alert("w"+w+"h"+h);
	document.getElementById('videoBox').style.width = w;
	document.getElementById('videoBox').style.height = h;
	
	try{
		document.getElementById('videoBox').SetRectangle("0,0,"+w+","+h)
		//document.embeds[0].width = w;
		//alert(document.getElementById('videoBox').GetRectangle());
	}catch(err){
	 //alert("err");
	}
}
function lecture(film){
	if(!navOk){
		window.open( ("http://www.studiodesculpturesociale.org/"+film),"qu'est ce que vivre");
	}else{
		if(lastMovie != 'none'){
			document.getElementById(lastMovie).className = 'fiche';
		}
		document.getElementById(film).className = 'ficheFront';
		scroll(0,0);
		movieSrc = film;
		video();
	}
}
function nop(){
	if(playing){
		movieControl();
	}else{
		movieStop();
		playing = false;
		video();
	}
		
}
function movieStop(){
	// cette fonction doit centraliser toute opperation d'arrêt video
	try{
		document.getElementById('videoBox').Stop();
		enLecture = false;
	}catch(err){}
}
function moviePlay(){
	//idem pour la lecture
	try{
		document.getElementById('videoBox').Play();
		enLecture = true;
	}catch(err){
		enLecture = false; // rechercher fonction QT isPlaying();
	}
}
function estEnLecture(){
	return enLecture;
}
function debugMe(string){
}
	
function Lz(x) {
    return (x < 0 || x >= 10 ? "" : "0") + x;
}
function techTest(){
	//alert("here1");BrowserDetect.browser == "Safari" |
	if( BrowserDetect.browser == "OmniWeb" | BrowserDetect.browser == "Opera" | BrowserDetect.browser == "iCab" | BrowserDetect.browser == "Konqueror" ){
		navOk = false;
		document.getElementById("info").innerHTML = document.getElementById("info").innerHTML+"<br/><br/><em>Ce site n'est actuellent pas compatible avec votre navigateur. Les vidéos s'ouvriront dans une nouvelle fenêtre. <br/>Cliquez <a href='http://www.mozilla-europe.org/fr/'>ici</a> pour télécharger gratuitement Firefox</em>";
	}
}




var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
techTest();

