/* 
	Name : openNextSibling()
	param : obj
	passe le prochain element node en display none/block selon son display actuel. utilisé pour "ouvrir" une liste lors d'un clic
*/
function openNextSibling(obj) {
	removeEmptyTextNodesChild(obj.parentNode);
	//J'ouvre ou ferme selon la position où il est
	if (obj.nextSibling.style.display=="none" || obj.nextSibling.style.display=="") obj.nextSibling.style.display = "block";
	else obj.nextSibling.style.display = "none";
}

/* Mozzy ajoute des nodes vides lors des sauts de ligne, il nous faut les zapper pour arriver au bon node */
function skip_empty_node(node) {
	//Si c'est pas un node texte déjà ca va mieux
	if (node.nodeType==1) return node;
	
	//Je regarde chaque lettre, si c'est autre chose qu'un espace ou saut de ligne alors le noeud est bon, si à la fin j'ai que du vide, je prends le suivant
	for (var j=0; j!=node.nodeValue.length;j++) {
		if (node.nodeValue.charAt(j)!='\n' && node.nodeValue.charAt(j)!=' ' && node.nodeValue.charAt(j)!='\t') return node;
	}
	return skip_empty_node(node.nextSibling);
}

//Ferme/ouvre un block
function openClose(obj) {
	var display = getStyleInfo(obj,"display");
	if (display=="none") {
		obj.style.display = "block";
		return true;
	}
	else {
		obj.style.display = "none";
		return false;
	}
}
//Affiche/masque une pop-up
function popUp(obj) {
	//Si je l'ouvre, je masque les selects, sinon je les affiche
	if (openClose(obj)) hideSelectElements();
	else showSelectElements();	
}

//IE (toujours lui) place les elements <select par dessus tout le reste, ils ne sont pas soumis au zIndex. 
//Je dois donc les masque pour ne pas gener l'affichage des fausses pop-up
function hideSelectElements() {
	initFunction("select", function(obj) { obj.style.visibility = "hidden" });
}
function showSelectElements() {
	initFunction("select", function(obj) { obj.style.visibility = "inherit" });
}

/******** DONNER SON AVIS **********/
//Affiche la fenetre pour donner son avis
function donnerAvis() {
	popUp(document.getElementById("donner_avis"));
}

/*********IDENTIFICATION *********/
//Affiche/masque al fenetre d'identification
function sIdentifier() {
	//je masque la demande de pass
	document.getElementById("pop-up_pass_oublie").style.display = "none";
	popUp(document.getElementById("pop-up_identification"));
}

/**********MOT DE PASSE OUBLIE **********/
//Affiche/masque la pop-up pour le mot de passe oublié (on cache celle d'identification, et celle d'accès restreint)
function motDePasseOublie() {
	if (document.getElementById("pop-up_identification")) document.getElementById("pop-up_identification").style.display = "none";
	if (document.getElementById("pop-up_telechargement_restreint")) document.getElementById("pop-up_telechargement_restreint").style.display = "none";
	popUp(document.getElementById("pop-up_pass_oublie"));	
}

/********* CONTACTEZ-NOUS **********/
//Ouvre/ferme la pop-up d'envoie de mail
function popUpContact() {
	popUp(document.getElementById("pop-up_mail"));
}
//On va ajouter sur chaque lien avec la classe link_pop-up_mail l'ouverture de la pop-up
function initContact() {
	initFunction("a.link_pop-up_mail", makeContact);
}
//On ajoute une ouverture de pop-up et remplissage de champ lors du clic
function makeContact(obj) {
	//Adresse mail
	var mail = obj.href.substr(obj.href.indexOf("#")+1);
	
	obj.onclick = function() {
		//On ouvre la pop-up
		popUpContact();
		//On remplit le champ visible
		document.getElementById("pop-up_mail_for_display").innerHTML = mail;
		//On remplit le champ hidden
		getElementsBySelector("#pop-up_mail form input#mail_to")[0].value = mail;
	}
}

/********* RECHERCHER UN CONTENU NUMERIQUE *********/
//On initialise les fonctions d'ouverture/fermeture pour la page de contenu numérique
function initContenuNumerique() {
	initFunction("#resultat_numerique .numerique a.link_plus", makeContenuNumerique);
}

//Les infos supplémentaires des téléchargements s'affichent lorsqu'on clique sur le lien "en savoir plus >>>", on va donc gere ca
function makeContenuNumerique(obj) {
	//On trouve déjà l'id
	var id = obj.id.substring(28);
	//Je masque le truc "plus d'infos" qui correspond
	document.getElementById("contenu_numerique_infos_"+id).style.display = "none";
	//J'ajoute une fonction sur le lien qui fait ouvrir le "plus d'infos"
	obj.onclick = function() {
		document.getElementById("contenu_numerique_infos_"+id).style.display = "block";
		//et disparaitre le lien
		obj.style.display = "none";		
	}
	//Et je rajoute une fonction pour le fermer sur le lien fermer
	document.getElementById("contenu_numerique_link_moins_"+id).onclick = function() {
		document.getElementById("contenu_numerique_infos_"+id).style.display = "none";
		obj.style.display = "block";		
	}

}

/********** LISTE DE MENUS / TEXTES *************/
//On va ajouter les fonctions d'affichage/masquage sur les textes/liens des pages a plusieurs menus
function initMenuTexteAffichage() {
	initFunction(".colonne_menu ul li a", makeMenuTexteAffichage);
}

//On masque le texte correspondant, et on ajoute la fonction d'affichage du texte
function makeMenuTexteAffichage(obj) {
	//On masque déjà le texte correspondant
	document.getElementById("texte_"+obj.id).style.display = "none";
	//Maintenant j'ajoute la fonction au clic => afficher le texte correspondant dans le champ réservé
	obj.onclick = showTexteAffichage;
}

//On masque tout les autres div et on affiche celui qui correspond au clic
function showTexteAffichage() {
	//On masque tout les divs de la clonne de texte sauf celui qu'on veut
	var div = getElementsBySelector(".colonne_texte div");
	//On masque tous les #texte_
	for (var i=0;i!=div.length;i++) {
		if (div[i].id.substring(0,6)=="texte_") div[i].style.display = "none";
	}
	//On affiche celui qui correspond au lien
	document.getElementById("texte_"+this.id).style.display = "block";		
}

/******* CONFIRMATION RECEVOIR UN CATALOGUE PAPIER *****/
//On affiche masque la pop-up
function cataloguePapier() {
	popUp(document.getElementById("pop-up_catalogue_papier"));
}

/******* AIDE A LA RECHERCHE AVANCEE *****/
//On affiche masque la pop-up
function aideRecherche() {
	popUp(document.getElementById("pop-up_aide_recherche"));
}
/******** AIDE A LA RECHERCHE DE L'ETABLISSEMENT *********/
function aideRechercheEtablissement() {
	popUp(document.getElementById("pop-up_aide_etablissement"));
}

/***********DELEGUES PEDAGOGIQUES *********/
function initMapDelegues() {
	//On masque les fenetres;
	hideAllDelegueInfo();
	//On attribue les fonctions de clic sur les nom
	initFunction("#texte_delegues map area", makeDelegue);
}
//On masque toutes les fenetres d'infos des délégués
function hideAllDelegueInfo() {
	initFunction("#texte_delegues .info_delegue", function(obj) { obj.style.display = "none"; });
}
//Lors du clic sur un nom, on affiche la fenetre adéquate
function makeDelegue(obj) {
	obj.onclick = function() {
		//Lors du clic on masque tout et on affiche celle de l'id
		hideAllDelegueInfo();
		document.getElementById(obj.href.substr(obj.href.indexOf("#")+1)).style.display = "block";
	}
}


/********** ZOOM DE L'IMAGE ***********/
function popUpZoom(obj) {
	//Si je passe un param, je mets des trucs dans la pop-up
	if (obj) {
		var	zoom = getElementsBySelector("#pop-up_zoom .zoom img")[0];
		zoom.src = obj.src
		zoom.alt = obj.alt;
		zoom.style.display = "inline";
	}
	popUp(document.getElementById("pop-up_zoom"));	
}


/**********TELECHARGEMENT A ACCES RESTREINT **********/
//Affiche/masque la pop-up pour télécharger une ressource en demandant mot de passe et code
function telechargementRestreint() {
	popUp(document.getElementById("pop-up_telechargement_restreint"));	
}

/**********POURQUOI UN CODE D'ACCES **********/
//Texte explicatif de pourquoi un code d'accès
function pourquoiCodeAcces() {
	popUp(document.getElementById("pop-up_pourquoi_code_acces"));	
}

/********* ACCES AUX AUTRES ESPACES ***********/
function makeMenuEspaces(obj) {
	//removeEmptyTextNodesChild(obj);
	var a = obj.getElementsByTagName("a")[0];
	var ul = obj.getElementsByTagName("ul")[0];
	a.onclick = function() {
		openClose(ul);
		return false;
	}
}
