// JavaScript Document
var wPrevisions = {
	initialize:function(){
		this.reductionX = 0;
		this.reductionY = 0;
		this.divCarte = $('carteHome');		
		//-> Ajoute les action sur les listes
		this.getActionLists();
		//-> Ajoute les actions sur les inputs
		this.getActionInputs();
		
		this.checkHeureJour();		

		//-> Charge la carte du jour
		this.refreshCarte();
	
	},
	//-> ajout des actions sur les listes déroulantes
	getActionLists:function(){
		var selects = $('toolsHome').getElementsBySelector('select');
		if(selects.length > 0){
			//-> 1 : liste des jour
			selects[0].observe('change', function(event){
				//-> initialise l'heure au matin
				this.initHeureJour();
				this.refreshCarte();
			}.bind(this));
			
			//-> 2 : liste des cartes
			selects[1].observe('change', function(event){
				//-> initialise l'heure au matin
				this.initHeureJour();												  
				this.refreshCarte();
			}.bind(this));			
		}
	},
	//-> Ajoute les actions sur les bouton inputs
	getActionInputs:function(){
		var inputs = $('toolsHome').getElementsBySelector('input');
		for(cpt=0;cpt<inputs.length;cpt++){
			Event.observe(inputs[cpt],'click', function(event){
				this.refreshCarte();
			}.bind(this))			
		}
	},
	//-> mets a jour la carte
	refreshCarte:function(){		
		idJour = this.getJourCarte();
		typeCarte = this.getTypeCarte();
		heureJour = this.getHeureJour();
		
		this.createMasqueCarte();
		
		new Ajax.Request("/webservices/carteFrance.aspx",{
				method:'get',
				parameters:'idJour='+idJour+'&typeCarte='+typeCarte+'&heureJour='+heureJour,
				onComplete:function(result){
					//alert(result.responseText);
					this.builCarte(result.responseText);
				}.bind(this)
		});
	},
	//-> retourne la valeur de la carte sélectionnée
	getTypeCarte:function(){
		var selectCarte = $('toolsHome').getElementsBySelector('select');		
		var returnValue = "";
		if(selectCarte[1]){
			returnValue = selectCarte[1].value;
		}
		return returnValue;
	},
	//-> retourne le jour sélectionner
	getJourCarte:function(){
		var selectCarte = $('toolsHome').getElementsBySelector('select');		
		var returnValue = "";
		if(selectCarte[0]){
			returnValue = selectCarte[0].value;
		}
		return returnValue;		
	},
	//-> retourne l'heure de la journée
	getHeureJour:function(){
		if($('heureJourAm').checked == true)
			return "AM";
		else
			return "PM";
	},
	//-> initialise l'heure au matin
	initHeureJour:function(){
		$('heureJourAm').checked = true;
		$('heureJourPm').checked = false;
	},
	//-> Construit la carte
	builCarte:function(data){
		finished = false;
		dataWeather = eval('('+data+')');
		
		//-> Mise en place des heures et lever de soleil
		dataSoleil = dataWeather.soleil;
		if($('heureLeverSoleil'))
			$('heureLeverSoleil').innerHTML = dataSoleil.lever;
		if($('heureCoucherSoleil'))
			$('heureCoucherSoleil').innerHTML = dataSoleil.coucher;
		
		//-> Mise en place des records
		if($('recordChaud') && dataWeather.recordChaud.found == "true")
			$('recordChaud').innerHTML = "<a href=\""+dataWeather.recordChaud.url+"\">"+dataWeather.recordChaud.data+"</a>";
			
		if($('recordFroid') && dataWeather.recordFroid.found == "true")
			$('recordFroid').innerHTML = "<a href=\""+dataWeather.recordFroid.url+"\">"+dataWeather.recordFroid.data+"</a>";
		
		//-> mise en place des pictos
		for(i=0;i<dataWeather.data.length;i++){
			var ville = dataWeather.data[i];			

			var pictoX = parseInt(ville.posX)-parseInt(this.reductionX);
			var pictoY = parseInt(ville.posY)-parseInt(this.reductionY);

			if($('VILLE_'+ville.id)){
				 $('VILLE_'+ville.id).remove();
			 }

			// carte météo
			if(dataWeather.type == "CARTETEMPS"){
				if(ville.picto == "")
					picto = 0;
				else
					picto = ville.picto;
				var html = "<div id=\"VILLE_"+ville.id+"\" class=\"pictoMeteo\" style=\"top:"+pictoY+"px;left:"+pictoX+"px;\">";	
				html = html+"<a href=\""+ville.url+"\" alt=\""+ville.nom+"\" title=\""+ville.nom+"\"><img src=\""+dataWeather.directory+"meteo_"+picto+".png\" alt=\"météo "+ville.nom+"\" border=\"0\"></a>";
				html = html+"<span>"+ville.valeur+"</span>";				
			}
			// carte des vents
			else{
				var html = "<div id=\"VILLE_"+ville.id+"\" class=\"pictoVent\" style=\"top:"+pictoY+"px;left:"+pictoX+"px;\">";
				html = html +"<a href=\""+ville.url+"\" alt=\""+ville.nom+"\" title=\""+ville.nom+"\">";
				if(ville.pictoVent != ""){
					html = html+"<img src=\""+dataWeather.directory+ville.pictoVent+"\" alt=\""+ville.nom+"\" title=\""+ville.nom+"\" border=\"0\">";
				}
				html = html+"<span>"+ville.vent+" km/h</span>";
				html = html +"</a>";
			}
			html = html+"</div>";			
			this.divCarte.insert(html);
			if(i == parseInt(dataWeather.data.length)-1)
				finished = true;
		}
		//-> On supprime le masque
		if(finished == true && $('masqueCarte')){
			$('masqueCarte').remove();				
		}
	},
	//-> coche la case matin/après-midi
	checkHeureJour:function(){
		Today = new Date;
		Heure = Today.getHours();
		if(Heure > 12){
			$('heureJourPm').checked = true;
			$('heureJourAm').checked = false;			
		}
		else{
			$('heureJourPm').checked = false;
			$('heureJourAm').checked = true;			
		}
	},
	//-> Créer un masque sur la carte
	createMasqueCarte:function(){
		var dimensionCarte = this.divCarte.getDimensions();		
		html = "<div id=\"masqueCarte\" class=\"MasqueCarte\" style=\"width:"+dimensionCarte.width+"px;height:"+dimensionCarte.height+"px;\">";
		html = html+"<p><img src=\"/library/img/ajax-loader.gif\" vspace = \"20\"><br/>Chargement des données...</p>";
		html = html+"</div>";
		this.divCarte.insert(html);
	}
}