/**
 * Cette fonction permet l'affichage du bloc UL météo détails contenu dans l'élément passé en paramètre.
 * @param {Object} element Cet élément désigne le bloc météo pour un date et un lieu donnés et dont les détails doivent être affichés.
 */
function showMeteoDetails(element) {
	hideAllMeteoDetails(element);
	var liMeteoDateVille=element;
	var childNodes=liMeteoDateVille.childNodes;
	for(var i=0;i<childNodes.length;i++){
		var node=childNodes[i];
		if(node.nodeName=="UL"){
			node.style.display="block";
			//node.parentNode.style.background="#e4e9ee";
			addClass(node.parentNode,"selected");
		}
	}
}
/**
 * Cette fonction cache tous les affichages météo détails des blocs météo d'un lieu listés avec le bloc particulier passé en paramètre.
 * @param {Object} element Un bloc météo dont tous les frères auront leur météo détails cachés.
 */
function hideAllMeteoDetails(element) {
	// element est UN des LI permettant l'affichage de la météo pour une ville et une date données
	// son parent est le UL contenant toutes les météos pour la ville
	var ulMeteoVille=element.parentNode;
	// ulChildNodes va contenir tous les enfants du UL correspondant à la ville
	var ulChildNodes=ulMeteoVille.childNodes;
	for(var i=0;i<ulChildNodes.length;i++){
		var liNode=ulChildNodes[i];
		// Après ce test liNode correspond à tout élément LI contenu dans le UL ville, ce peut être le LI titre, ou le LI prévison date
		// on exclue aussi le LI qu'on a passé en paramètre (celui ci devant être affiché).
		if(liNode.nodeName=="LI"&&liNode!=element){
			// liChildNode contient tous les enfants de la prévision pour un date donnée (ou éventuellement du LI titre, mais ce dernier ne contient pas de UL).
		  var liChildNode=liNode.childNodes;
			// On cherche tous les UL enfant pour les faire disparaitre!
			for(var j=0;j<liChildNode.length;j++){
				var ulNode=liChildNode[j];
				if(ulNode.nodeName=="UL"){
					ulNode.style.display="none";
					removeClass(ulNode.parentNode,"selected");
				}
			}
		}
	}
}
/**
 * Cette fonction permet l'affichage du bloc UL météo détails du premier UL.
 * @param {Object} element et élément désigne le bloc météo pour un date et un lieu donnés et 
 * dont les détails doivent être affichés au chargement de la page.
 */
function initMeteoDetails() {
	//on parse tous les UL de la page
	var ulNodes=document.getElementsByTagName("UL");
	for(var i=0;i<ulNodes.length;i++){
		var ulNode=ulNodes[i];
		// on ne garde que ceux qui possède la class meteoDates
		if(hasClass(ulNode,"meteoDates")){
			var ulNodeChildren=ulNode.childNodes;
			for(var j=0;j<ulNodeChildren.length;j++){
				var ulChild=ulNodeChildren[j];
				//on ne garde que les LI qui ont une classe date et on affiche le contenu du UL contenu
				if(ulChild.nodeName=="LI"&&hasClass(ulChild,"date")) {
					showMeteoDetails(ulChild);
					break;
				}
			}
		}
	}
}
