

/*************
*** webcam ***
**************/

// variables
var chemin = '/fileadmin/scripts/pmo_tourisme/webcam/';
chemin = '/fileadmin/scripts/pmo_tourisme/webcam/';
var date_video; //date de capture
var heure_video; //heure de capture

var date; //date de capture
var heure; //heure de capture
var temp; //temperature exterieure en degres celsius
var temp_f; //temperature exterieure en fahrenheit
var temp_res; //temperature ressentie en degres celsius
var temp_res_f; //temperature ressentie en fahrenheit
var vitesse_kmh; //vitesse du vent en km/h
var vitesse_mph; //vitesse du vent en mph
var vitesse_knot; //vitesse du vent en noeuds
var force_vent; //force du vent
var dir_vent_deg; //direction du vent en degres
var dir_vent; //direction du vent
var light_breeze; // definition anglaise de la force du vent
var temp_inside; //temperature a l interieur de la boite en degres celsius
var temp_inside_f; //temperature a l interieur de la boite en degres fahrenheit

var req; //variable pour la connection aux fichiers
var last_wtr; //contenu du fichier last_wtr
var wtr_list; //contenu du fichier contenu dans last_wtr
var last; //contenu du fichier last
var lst; //contenu du fichier contenu dans last. ajouter .jpg ou .ogg

var nb_jours = 2;//nombre de jours a afficher dans l'historique
var selected_jour;//jour selectionné
var selected_time;//heure selectionnée
var dateObj;

var intervalIDTemp;
var intervalIDVent;
var intervalIDDonnees;
var intervalIDVideo;
var intervalIDPano;

var boutons = new Array();

//connexion au fichier XML
if(window.XMLHttpRequest){ // Firefox
	req = new XMLHttpRequest();
	//alert("Firefox");
}
else if(window.ActiveXObject){ // Internet Explorer
	req = new ActiveXObject("Microsoft.XMLHTTP");
	//alert("Internet Explorer");
}
else
{
	alert('Your browser can\'t handle this script');
}


function lire_fichier_video()
{
	// recherche les differents panoramiques au cours des 'nb_jours'
	// (param defini en debut de fichier) derniers jours, pour les afficher dans la drop down list de l'historique
	var tmp;
	var re;
	var re2;
	// recupere le nom du dernier fichier video
	//var url = 'videos/'+spots_webcams_arr[selected_webcam]+'/flux/last';
	var url = chemin +spots_webcams_arr[selected_webcam]+'/'+ 'last';
	req.open('GET', url, false);
	req.send(null);
	if(req.status == 200){
		last = req.responseText;
		//alert(last);

		// extrait la date sous forme jj/mm/aaaa du nom de ce fichier pano
		tmp = last.split(/_/);
		//alert(tmp);
		re = /^([0-9]{4})([0-9]{2})([0-9]{2})$/;
		var tableau = re.exec(tmp[1]);
		//alert(tableau);
		tableau.splice(0,1);
		//alert(tableau);
		date_video = tableau[2]+"/"+tableau[1]+"/"+tableau[0];
		dateObj = new Date(parseInt(tableau[0],10),parseInt(tableau[1],10)-1,parseInt(tableau[2],10));
		re2 = /^([0-9]{2})([0-9]{2})\n$/;
		var tableau2 = re2.exec(tmp[2]);
		tableau2.splice(0,1);
		heure_video = tableau2.join("h");
		
		var dateTmp = new Date(dateObj);
		var tmpText;
		for (i=0; i<nb_jours; i++){
			var tmpLast = '';
			dateTmp.setDate(dateObj.getDate()-i);

			tmpMonth = '';
			tmpMonth += (dateTmp.getMonth()+1);
			//alert(dateObj+"\n"+dateTmp);
			if (tmpMonth.length < 2)
				tmpMonth = '0'+tmpMonth;
			tmpDay = '';
			tmpDay += dateTmp.getDate();
			if (tmpDay.length < 2)
				tmpDay = '0'+tmpDay;
			tmpFichier = tmp[0]+"_"+dateTmp.getFullYear()+tmpMonth+tmpDay;
			//alert(tmpFichier);
			//var tmpTableau = [dateTmp.getFullYear(), tmpMonth, tmpDay];
			tmpDateVideo = tmpDay+"/"+tmpMonth+"/"+dateTmp.getFullYear();
			//var url_lst = 'videos/'+spots_webcams_arr[selected_webcam]+'/flux/'+tmpFichier+'.lst';
			var url_lst = chemin+spots_webcams_arr[selected_webcam]+'/'+tmpFichier+'.lst';
			//alert(url_lst);
			req.open('GET', url_lst, false);
			req.send(null);
			if(req.status == 200){
				tmpLast = req.responseText;
				tmpLastTab = tmpLast.split(/\n/);
				//alert(tmpLastTab);
				re3 = /^([0-9]{2})([0-9]{2})$/;
				for (j=tmpLastTab.length-1; j>=0; j--){
					var selectObject = '';
					if(tmpLastTab[j]!=''){
						tmpTab=tmpLastTab[j].split(/_/);
						var tableau3 = re.exec(tmpTab[1]);
						tableau3.splice(0,1);
						//date de video
						selectObject = tableau3[2]+"/"+tableau3[1]+"/"+tableau3[0]+',,';
						tableau3 = re3.exec(tmpTab[2]);
						tableau3.splice(0,1);
						tmpHeureVideo = tableau3.join("h");
						//heure de video
						selectObject += tmpHeureVideo+',,';
						tmpHeureVideo = tmpDateVideo + " à " + tmpHeureVideo;
						//nom du fichier
						selectObject += tmpLastTab[j]+',,';
						document.getElementById('date').options[document.getElementById('date').length] = new Option(tmpHeureVideo, selectObject);
					} // fin if
				} // fin for
			} // fin if status
			//else return 'Impossible de récupérer la liste des vidéos ('+url_lst+')';
		} // fin for nbjours
		return '';
	} // fin if status
	else return 'Impossible de récupérer la date de la dernière liste ('+url+')';
}



/* meteo */
function changer_fichier_meteo(fich)
{
	var lignes;
	var elements = new Array();

	//var url = 'videos/'+spots_webcams_arr[selected_webcam]+'/meteo/'+fich+'.wtr';
	var url = chemin +spots_webcams_arr[selected_webcam]+'/'+ fich+'.wtr';
	req.open('GET', url, false);
	req.send(null);
	if(req.status == 200){
		wtr_list = req.responseText;
		//alert(wtr_list);
		lignes = wtr_list.split(/\n/);
		var last_ok = 0;
		for (var i=0; i < lignes.length; i=i+1)
		{
			if ( lignes[i].length ) {
				elements[i] = lignes[i].split(/,/);

				date = elements[i][0].split(/_/);
				date = date[1]+"/"+date[0]+"/"+date[2];

				// si pas de donn&#43443; pour cet horaire on prend  l'horaire suivant
				heure_tab = elements[i][1].split(/_/);
				heure_test = parseInt(heure_tab.join(''), 10);
				var tmp = heure_video.split(/h/);
				heure_video_test = parseInt(tmp.join(''), 10);

				if ( ((date == date_video) && (heure_test >= heure_video_test)) ){
					heure = heure_tab.join("h");

					temp		 = elements[i][2];
					temp_f		 = elements[i][3];
					temp_res	 = elements[i][4];
					temp_res_f	 = elements[i][5];
					vitesse_kmh	 = elements[i][7];
					vitesse_mph	 = elements[i][6];
					vitesse_knot = elements[i][8];
					force_vent	 = elements[i][9];
					dir_vent_deg = elements[i][10];
					dir_vent	 = elements[i][11];
					light_breeze = elements[i][12];
					temp_inside	 = elements[i][13];
					temp_inside_f = elements[i][14];
				} else {
					return;
				}
			}

		} // fin for
	} // fin if req.status
	//else alert('/fileadmin/scripts/pmo_tourisme/webcam/videos/'+spots_webcams_arr[selected_webcam]+'/meteo/'+fich+'.wtr');
}

function lire_fichier_meteo()
{
	var lignes;
	var elements = new Array();

	//var url = 'videos/'+spots_webcams_arr[selected_webcam]+'/meteo/last_wtr';
	var url = chemin +spots_webcams_arr[selected_webcam]+'/'+'last_wtr';
	req.open('GET', url, false);
	req.send(null);
	if(req.status == 200){
		last_wtr = req.responseText;
		//alert(last_wtr);
		//var url_wtr = 'videos/'+spots_webcams_arr[selected_webcam]+'/meteo/'+last_wtr;
		var url_wtr = chemin +spots_webcams_arr[selected_webcam]+'/'+last_wtr;
		req.open('GET', url_wtr, false);
		req.send(null);
		if(req.status == 200){
			wtr_list = req.responseText;
			//alert(wtr_list);
			lignes = wtr_list.split(/\n/);
			truc = "";
			for (var i=0; i<lignes.length; i++){
				//truc += lignes[i]+" \n\n";
				elements[i] = lignes[i].split(/,/);
			}
			date = elements[0][0].split(/_/);
			date = date[1]+"/"+date[0]+"/"+date[2];
			heure = elements[0][1].split(/_/);
			heure = heure.join("h");
			temp = elements[0][2];
			temp_f = elements[0][3];
			temp_res = elements[0][4];
			temp_res_f = elements[0][5];
			vitesse_kmh = elements[0][7];
			vitesse_mph = elements[0][6];
			vitesse_knot = elements[0][8];
			force_vent = elements[0][9];
			dir_vent_deg = elements[0][10];
			dir_vent = elements[0][11];
			light_breeze = elements[0][12];
			temp_inside = elements[0][13];
			temp_inside_f = elements[0][14];
		}
	}
}

function chargerDonnees(){
// Affiche les données meteo sur la droite de la video
	var donnees_html = "";
	
	donnees_html = "Météo du "+date+" à "+heure;
	document.getElementById("meteo_titre").innerHTML = donnees_html;
	
	
	document.getElementById('meteo_templegende').innerHTML = temp + '&deg;C';
	document.getElementById('meteo_ventlegende').innerHTML = vitesse_kmh + 'km/h';

	donnees_html  = "<strong>Donn&eacute;es m&eacute;t&eacute;o</strong><br />";
	donnees_html += dir_vent+" "+dir_vent_deg+"°<br />";
	donnees_html += "Beaufort : force "+force_vent+"<br />";
	donnees_html += vitesse_knot+" noeuds<br /><br />";
	document.getElementById("meteo_infosvent").innerHTML = donnees_html;

	document.getElementById('meteo').style.display	 = 'block';

	doPassTemp();
	doPassVent();
}

function doPassTemp(){
	//var sendText = args.value;
	var monswf = document.thermometre;
	var swf_loaded = 0;
	//var monswf = ( document.all ? document.all["thermometre"] : document.getElementById("thermometre") );

	try {
		swf_loaded = monswf.PercentLoaded();
	} catch (e) {
		if (intervalIDTemp) clearInterval(intervalIDTemp);
		intervalIDTemp = setInterval("doPassTemp();",1000);
	}

	if (swf_loaded == 100){
		if (intervalIDTemp) clearInterval(intervalIDTemp);
		if (intervalIDDonnees) clearInterval(intervalIDDonnees);
		monswf.SetVariable("temperature", parseInt(temp,10));
	}
	//else alert('pas fini de charger');
}
function doPassVent(){
	//var sendText = args.value;
	var monswf = document.boussole;
	var swf_loaded = 0;
	//var monswf = ( document.all ? document.all["boussole"] : document.getElementById("boussole") );

	try {
		swf_loaded = monswf.PercentLoaded();
	} catch (e) {
		if (intervalIDVent) clearInterval(intervalIDVent);
		intervalIDVent = setInterval("doPassVent();",1000);
	}

	if (swf_loaded == 100){
		if (intervalIDVent) clearInterval(intervalIDVent);
		if (intervalIDDonnees) clearInterval(intervalIDDonnees);
		monswf.SetVariable("angle", parseInt(dir_vent_deg,10));
	}
	//else alert('pas fini de charger');
}


function selectChange() {
	if ( document.getElementById('date').options.length ) {
		//document.getElementById('attente').style.display	 = 'block';

		var tmp = document.getElementById('date').options[document.getElementById('date').selectedIndex].value.split(/,,/);
		last = tmp[2];
		heure_video = tmp[1];
		date_video = tmp[0];
		var tab = last.split(/_/);
		//alert('changer_meteo');
		changer_fichier_meteo(tab[0]+'_'+tab[1]);
		//alert('ChargerMeteo:'+tab[0]+'_'+tab[1]);
		chargerDonnees();
		afficher('webcam', selected_webcam);
	}
}

function Load(){
	intervalIDDonness 	= setInterval("chargerDonnees();",	60000);
	//intervalIDTemp 		= setInterval("doPassTemp();",		60000);
	//intervalIDVent 		= setInterval("doPassVent();",		60000);
};
function Unload(){
	clearInterval(intervalIDDonnees);
	clearTimeout(intervalIDTemp);
	clearTimeout(intervalIDVent);
}


