
var onlineImgsTxtTimeOut, informacioSessionsTimeOut, estatCelTimeOut, webcamObsvTimeOut, comptadorsTimeOut, mainTimeOut;

var onlineImgsTxtSegons = "";
var informacioSessionsSegons = "";
var estatCelSegons = "";
var webcamObsvSegons = "";
//	Por defecto le ponemos 10 segundos por si hubiera un error leyendo el fichero de contadores, que lo vuelva a intentar pasados 10 segundos
var comptadorsSegons = "10000";


//config
var urltimers = "directe_files/textes/comptadors.txt";
var urlOnlineTxt = "directe_files/textes/online.txt";
var urlInfoSessioTxt = "directe_files/textes/info_sessio.txt";
var urlTemperaturaTxt = "directe_files/textes/temperatura.txt";

var urlOnlineImg = "directe_files/imatges/online.jpg";
var urlMapaImg = "directe_files/imatges/mapa.jpg";
var urlEstatCelImg = "directe_files/imatges/estat_cel.jpg";
var urlTurbulenciaImg = "directe_files/imatges/turbulencia.jpg";
var urlWebcamObservatoriImg = "directe_files/imatges/img_webcam.jpg";

var challenge = new Date();
var myChallenge = challenge.getTime();

////////funcions inicials /////////

function init(){
	//refreshOnline();
	refreshInfoSessio();
	refreshEstatCel();
	refreshWebcamObservatori();
	refreshOnline();
	refreshComptadors();
	myChallenge++;
	mainTimeOut = setTimeout("ftmain()", 1000); //comptador de segons
}

function ftmain(){
	decreaseInputs();
	mainTimeOut = setTimeout("ftmain()", 1000); //contador de segons
}

function refreshComptadors(){	
	_ajax.cargarUrl(new AjaxPeticion(urltimers+"?challenge=" + myChallenge, null, "processarComptadors(this.peticionEnCurso.resultado)", false), 1);
}

function processarComptadors(resposta){
	var temps = new Array();
	temps = resposta.split('##csep##');
	//alert(temps[0] + ' ' + temps[1] + ' ' + temps[2] + ' ' + temps[3] + ' ' + temps[4]);
	if(temps[0] > "" && onlineImgsTxtSegons != (temps[0]*1000)){
		clearTimeout(onlineImgsTxtTimeOut);
		onlineImgsTxtSegons = temps[0]*1000;
		setOnlineImgsTxtTimeOutInput();
		onlineImgsTxtTimeOut = setTimeout("timeoutOnlineImgTxt()", onlineImgsTxtSegons);
	}
	if(temps[1] > "" && informacioSessionsSegons != (temps[1]*1000)){
		clearTimeout(informacioSessionsTimeOut);
		informacioSessionsSegons = temps[1]*1000;
		informacioSessionsTimeOut = setTimeout("timeoutInformacioSessions()", informacioSessionsSegons);
	}
	if(temps[2] > "" && estatCelSegons != (temps[2]*1000)){
		clearTimeout(estatCelTimeOut);
		estatCelSegons = temps[2]*1000;
		estatCelTimeOut = setTimeout("timeoutEstatCel()", estatCelSegons);
	}
	if(temps[3] > "" && webcamObsvSegons != (temps[3]*1000)){
		clearTimeout(webcamObsvTimeOut);
		webcamObsvSegons = temps[3]*1000;
		webcamObsvTimeOut = setTimeout("timeoutWebcamObsv()", webcamObsvSegons);
	}
	
	if(temps[4] == null){
		temps[4] = comptadorsSegons / 1000;
		comptadorsSegons = "0";
	}
	if(temps[4] > "" && comptadorsSegons != (temps[4]*1000)){
		clearTimeout(comptadorsTimeOut);
		comptadorsSegons = temps[4]*1000;
		comptadorsTimeOut = setTimeout("timeoutComptadors()", comptadorsSegons);
	}
}

function refreshOnline(){
	
	document.getElementById("online_img").src = urlOnlineImg + "?challenge=" + myChallenge;
	
	document.getElementById("mapa_img").src = urlMapaImg + "?challenge=" + myChallenge;
	
	_ajax.cargarUrl(new AjaxPeticion(urlOnlineTxt+"?challenge=" + myChallenge, "online_txt", null, true), 1);
}

function refreshInfoSessio(){
	
	_ajax.cargarUrl(new AjaxPeticion(urlInfoSessioTxt+"?challenge="+myChallenge, null, "processarInfoSessio(this.peticionEnCurso.resultado)", true), 1);
}

function processarInfoSessio(resposta){
	var txt = resposta.split('##csep##');
	if(txt[0] != null){
		document.getElementById("proximes_sessions_txt").innerHTML = txt[0];
	}
	if(txt[1] != null){
		document.getElementById("estat_sessio_txt").innerHTML = txt[1];
		var marq = document.getElementById("marquee_directo");
		if(marq){
			marq.start();
		}
	}
	if(txt[2] != null){
		document.getElementById("tema_fecha_txt").innerHTML = txt[2];
	}
	if(txt[3] != null){
		document.getElementById("dades_sessio_txt").innerHTML = txt[3];
	}
}

function refreshEstatCel(){
	
	document.getElementById("estat_cel_img").src = urlEstatCelImg + "?challenge=" + myChallenge;
	
	document.getElementById("turbulencia_img").src = urlTurbulenciaImg + "?challenge=" + myChallenge;
	
	_ajax.cargarUrl(new AjaxPeticion(urlTemperaturaTxt+"?challenge="+myChallenge, "temperatura_txt", null, true), 1);
}

function refreshWebcamObservatori(){
	document.getElementById("webcam_observatori_img").src = urlWebcamObservatoriImg + "?challenge=" + myChallenge;
}

////funcions de manipulacio de html /////////
function setOnlineImgsTxtTimeOutInput(){
	document.getElementById("online_imgs_txt").value = onlineImgsTxtSegons / 1000;
}
function resetOnlineImgsTxtTimeOutInput(){
	document.getElementById("online_imgs_txt").value = "---";
}

function decreaseInputs(){
	if (document.getElementById("online_imgs_txt").value > 0 )
		document.getElementById("online_imgs_txt").value = (document.getElementById("online_imgs_txt").value - 1);	
}

function timeoutOnlineImgTxt(){
	clearTimeout(onlineImgsTxtTimeOut);
	//alert('Timeout online');
	myChallenge++;
	refreshOnline();
	setOnlineImgsTxtTimeOutInput();
	if(onlineImgsTxtSegons != "0"){
		onlineImgsTxtTimeOut = setTimeout("timeoutOnlineImgTxt()", onlineImgsTxtSegons);
	}
	else{
		resetOnlineImgsTxtTimeOutInput();
	}
}

function timeoutInformacioSessions(){
	clearTimeout(informacioSessionsTimeOut);
	//alert('Timeout información sesiones');
	myChallenge++;
	refreshInfoSessio();
	if(informacioSessionsSegons != "0"){
		informacioSessionsTimeOut = setTimeout("timeoutInformacioSessions()", informacioSessionsSegons);
	}
}

function timeoutEstatCel(){
	clearTimeout(estatCelTimeOut);
	//alert('Timeout estat cel');
	myChallenge++;
	refreshEstatCel();
	if(estatCelSegons != "0"){
		estatCelTimeOut = setTimeout("timeoutEstatCel()", estatCelSegons);
	}
}

function timeoutWebcamObsv(){
	clearTimeout(webcamObsvTimeOut);
	//alert('Timeout webcam');
	myChallenge++;
	refreshWebcamObservatori();
	if(webcamObsvSegons != "0"){
		webcamObsvTimeOut = setTimeout("timeoutWebcamObsv()", webcamObsvSegons);
	}
}

function timeoutComptadors(){
	clearTimeout(comptadorsTimeOut);
	//alert('Timeout contadores de ' + comptadorsSegons);
	myChallenge++;
	refreshComptadors();
	if(comptadorsSegons != "0"){
		comptadorsTimeOut = setTimeout("timeoutComptadors()", comptadorsSegons);
	}
}