﻿function show_webcam(onOff) {
	document.getElementById('webcam_off').style.display = (onOff?'none':'block');
	document.getElementById('webcam_on').style.display 	= (!onOff?'none':'block');
}
function get_node(node, nodeName) {
	for(var i=0; i<node.length; i++)
		if (node[i].nodeName==nodeName)
			return node[i];
}


/*************
*** 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();
	req2 = new XMLHttpRequest();
	//alert("Firefox");
}
else if(window.ActiveXObject){ // Internet Explorer
	req = new ActiveXObject("Microsoft.XMLHTTP");
	req2 = new ActiveXObject("Microsoft.XMLHTTP");
	//alert("Internet Explorer");
}
else
{
	alert('Your browser can\'t handle this script');
}


function lire_fichier_video_xml()
{
	// 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 = 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 = re.exec(''+dateTmp.getFullYear()+tmpMonth+tmpDay);
			tmpTableau.splice(0,1);
			tmpDateVideo = tmpTableau[2]+"/"+tmpTableau[1]+"/"+tmpTableau[0];
			var url_lst = chemin+spots_webcams_arr[selected_webcam]+'/'+tmpFichier+'.lst';
			//var url_lst = chemin+spots_webcams_arr[selected_webcam]+'/'+last.substr(0, last.lastIndexOf('.'))+'.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(/_/);
						if ( tmpTab.length>1 ) {
							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 for nbjours
		return '';
	} // fin if status
	else return 'Impossible de récupérer la date de la dernière liste ('+url+')';
}


function chargerVideo_xml(){
	var donnees_html = "";
	var monswf = document.WebcamPanoramique;
	var swf_loaded = 0;

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

	if(swf_loaded==100){
		if (intervalIDVideo) clearInterval(intervalIDVideo);
		monswf.SetVariable("_root.fichier", "/panoramique/"+last+".jpg");
	}
	else{
		return false;
	} 
}

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

	var url = chemin +spots_webcams_arr[selected_webcam]+'/'+ fich+'.xml';
	req2.open('GET', url, true);
	req2.onreadystatechange = function () {
		if(req2.readyState == 4){
			elements = req2.responseXML.getElementsByTagName('ws2300');

			var last_ok = 0;
			for (var i=0; i < elements.length; i=i+1)
			{
				//console.debug(elements[i]);
	
				date		 = elements[i].getElementsByTagName('Date')[0].firstChild.nodeValue;
				date		 = date.split(/-/);
				date		 = date[2]+"/"+date[1]+"/"+date[0];
				heure		 = elements[i].getElementsByTagName('Time')[0].firstChild.nodeValue;
	
				// si pas de donn&#43443; pour cet horaire on prend  l'horaire suivant
				heure_tab = heure.split(/:/);
				heure_tab.pop();
				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)) ){
					temp		 = elements[i].getElementsByTagName('Temperature')[0].getElementsByTagName('Outdoor')[0].getElementsByTagName('Value')[0].firstChild.nodeValue;
					vitesse_knot	 = elements[i].getElementsByTagName('Wind')[0].getElementsByTagName('Value')[0].firstChild.nodeValue;
					vitesse_kmh		 = Math.round(parseFloat(vitesse_knot)*1.852*100)/100;
					force_vent		 = parseInt(parseFloat(vitesse_knot)/5+1);
					dir_vent		 = elements[i].getElementsByTagName('Wind')[0].getElementsByTagName('Direction')[0].getElementsByTagName('Text')[0].firstChild.nodeValue;
					dir_vent_deg	 = parseInt(elements[i].getElementsByTagName('Wind')[0].getElementsByTagName('Direction')[0].getElementsByTagName('Dir0')[0].firstChild.nodeValue);
					chargerDonnees_xml();
					break;
				}
	
			} // fin for
		} // fin if req.status
	};
	req2.send(null);
}

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

	var url = chemin +spots_webcams_arr[selected_webcam]+'/'+'last';
	req.open('GET', url, false);
	req.send(null);
	if(req.status == 200){
		last_wtr = req.responseText;
		//alert(last_wtr);
		var url_wtr = chemin +spots_webcams_arr[selected_webcam]+'/'+last_wtr;
		req2.open('GET', url_wtr, true);
		req2.onreadystatechange = function () {
			if(req2.readyState == 4){
				wtr_list = req2.responseXML;
				//alert(wtr_list);
				truc = "";
				elements[0]	 = wtr_list.firstChild.getElementsByTagName('ws2300')[0];
				//console.debug();
			
				date		 = elements[0].getElementsByTagName('Date')[0].firstChild.nodeValue;
				date		 = date.split(/-/);
				date		 = date[2]+"/"+date[1]+"/"+date[0];
				heure		 = elements[0].getElementsByTagName('Time')[0].firstChild.nodeValue;
				//heure		 = heure.firstChild.nodeValue;
				//heure		 = heure.join("h");
				temp		 = elements[0].getElementsByTagName('Temperature')[0].getElementsByTagName('Outdoor')[0].getElementsByTagName('Value')[0].firstChild.nodeValue;
				vitesse_knot	 = elements[0].getElementsByTagName('Wind')[0].getElementsByTagName('Value')[0].firstChild.nodeValue;
				vitesse_kmh		 = Math.round(parseFloat(vitesse_knot)*1.852*100)/100;
				force_vent		 = parseInt(parseFloat(vitesse_knot)/5+1);
				dir_vent		 = elements[0].getElementsByTagName('Wind')[0].getElementsByTagName('Direction')[0].getElementsByTagName('Text')[0].firstChild.nodeValue;
				dir_vent_deg	 = parseInt(elements[0].getElementsByTagName('Wind')[0].getElementsByTagName('Direction')[0].getElementsByTagName('Dir0')[0].firstChild.nodeValue);
			}
		};
		req2.send(null);
	}
}

function chargerDonnees_xml(){
// 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_xml();
	doPassVent_xml();
}

function doPassTemp_xml(){
	//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_xml(){
	//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 stopPano(){
	//var sendText = args.value;
	var monswf = document.WebcamPanoramique;
	var swf_loaded = 0;
	//var monswf = ( document.all ? document.all["boussole"] : document.getElementById("boussole") );

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

	if (swf_loaded == 100){
		if (intervalIDPano) clearInterval(intervalIDPano);
		monswf.SetVariable("_root.roll_over", false);
		monswf.SetVariable("MyPanView.maska.mouseIsDown", true);
	}
	//else alert('pas fini de charger');
}
document.onmousemove = stopPano;


function selectChange_xml() {
	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_xml(tab[0]+'_'+tab[1]);
	//alert('ChargerMeteo:'+tab[0]+'_'+tab[1]);
	chargerVideo_xml();

	// affichage de la webcam
	afficher('webcam', selected_webcam);
}

function Load_xml(){
	intervalIDDonness 	= setInterval("chargerDonnees_xml();",	60000);
	//intervalIDTemp 		= setInterval("doPassTemp();",		60000);
	//intervalIDVent 		= setInterval("doPassVent();",		60000);
};
function Unload_xml(){
	clearInterval(intervalIDDonnees);
	clearTimeout(intervalIDTemp);
	clearTimeout(intervalIDVent);
}


var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the FSCommand messages in a Flash movie.
function WebcamPanoramique_DoFSCommand(command, args) {
	var WebcamPanoramiqueObj = isInternetExplorer ? document.all.WebcamPanoramique : document.WebcamPanoramique;
	//alert(command+'/'+args);
	var description = "";
	var tmpLast = last.split(/_/);
	if (args !=''){
		tmpDate = parseInt(tmpLast[2],10);
		tmpDate = tmpLast[2]-parseInt(boutons[args].decalagepano,10);
		if (tmpLast[2][0]=='0')
			File = args+'/'+tmpLast[0]+'_'+tmpLast[1]+'_0'+tmpDate;
		else File = args+'/'+tmpLast[0]+'_'+tmpLast[1]+'_'+tmpDate;
		//alert(File);
		donnees_html = '<applet code="com.fluendo.player.Cortado.class" codebase="http://java.viewsurf-attitude.com/vb2_320" archive="cortado-vs-0.1.2-3.jar" width="320" height="240"><param name="url" value="http://films.viewsurf-attitude.com/sttrojanlesbains/'+File+'.ogg" /><param name="debug" value="0" /><param name="loopPause" value="0" /><param name="logo" value="false" /><param name="loadscreen" value="false" /></applet>';
		if (document.all){
			document.all["webcam_on"].innerHTML = donnees_html;
		}
		else {
			document.getElementById("webcam_on").innerHTML = donnees_html;
		}

		// affichage de la webcam
		show_webcam_xml(true);
	} // fin if args
}
// Hook for Internet Explorer.
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	document.write('<script language=\"VBScript\"\>\n');
	document.write('On Error Resume Next\n');
	document.write('Sub WebcamPanoramique_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call WebcamPanoramique_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}

