// Requiert util.js (Element.getChildElements, Object.extend)
/******************************************************************/
/** Syntaxe : uneInfoBox = new InfoBox(idDunDiv, collapsed)
 * En HTML :
 * <div id="idDunDiv">
 *   <div>Texte de l'en-tete</div>
 *   <div>Contenu du corps</div>
 * </div>
 * En JS :
 * var uneBoite = new Infobox("idDunDiv");
*/
/**
 * @class
 * Boîte d'information, avec une en-tête (titre) et un corps (détails)
 * Un clic sur l'en-tête affiche le corps s'il etait masqué, et le
 * masque s'il était affiché.<br/>
 *
 * La boîte a deux icônes, une indiquant qu'elle est déployée, et
 * l'autre qu'elle est repliée. L'url de ces deux icônes est défini
 * dans le prototype de InfoBox : <code>openImgUrl</code> et 
 * <code>closedImgUrl</code>.<br/>
 * 
 * Si les div n'ont pas de classe CSS, le composant leur en ajoute :
 * <code>infoBox</code> pour le div englobant, 
 * <code>infoBoxHeader</code> pour l'en-tête, et
 * <code>infoBoxBody</code> pour le corps. Evidemment, il faut 
 * qu'une feuille de style définisse ces classes.
 * @constructor
 * @param idBox id HTML de la boite
 * @param collapsed (optionnel) booleen indiquant si la boite
 * est fermee (defaut : false)
 */
 /*--------------------------------------------------------------------------------------------------*/
var InfoBox = Class.create();
/** Prototype de Infobox */
InfoBox.prototype = {

  /** Icone par defaut indiquant que le contenu est visible
   * @type String */
  openImgUrl: "../images/open.gif",
  /** Icone par defaut indiquant que le contenu est masque
   * @type String */
  closedImgUrl: "../images/closed.gif",
  
  /** Icone pour fermer l'infobox
   * @type String */
  quitImgUrl: "../images/closed.gif",
  
  /** Image de titre */
  titreImgUrl: "../images/titre.gif",
  titreImgAlt: "Le titre de la boîte",
  
  /** Couleur de fond du span englobant les icones @type String */
  iconBackground: "white",
   
  /** HACK PAS PROPRE MAIS ON N'A PAS MIEUX : on passe le contexte en paramêtre pour appeller ses fonctions, utile seulement pour infobox_accueil, mais déclarée dans infobox comme variable de classe */
  jacquard: "undefined",
  
  initialize: function(idBox, collapsed) {
	/** L'element HTML racine de la boite d'information 
	 * @type HTMLTable */
	this.box = $(idBox);
	  
	/** L'en-tete @type HTMLDiv*/
	this.header = Element.getChildElements(this.box, "div")[0];
	
	/** Le corps @type HTMLDiv */
	this.body = Element.getChildElements(this.box, "div")[1];
	
	/** Le pied @type HTMLDiv */
	this.footer = Element.getChildElements(this.box, "div")[2];
	
	/** Zone contenant l'icone ouvert/ferme @type HTMLSpan */
	this.icon_close = document.createElement("span");
	
	/** Zone contenant l'icone pour quitter @type HTMLSpan */
	this.icon_quit = document.createElement("span");
	
	/** Icone montrant que le contenu est visible @type HTMLImage*/
	this.openImg = document.createElement("img");
	
	/** Icone montrant que le contenu est masque @type HTMLImage */
	this.closedImg = document.createElement("img");
	
	/** Icone pour quitter l'infobox @type HTMLImage */
	this.quitImg = document.createElement("img");
	
	/** Image de titre */
	this.titreImg = document.createElement("img");
	// Initialiser la structure HTML
	this.setStructure();
	
	// Mettre les styles
	this.setStyle();
	
	// Faire reagir au clics
	this.setOnClick();
	
	// Au depart, reduire a l'en-tete ou afficher le contenu
	if (collapsed) {
	  //this.collapse();
	  this.close();
	}
	else {
	  this.expand();
	}
   },
  /** Initialiser la structure HTML */
  setStructure: function() {
    // Reorganiser l'en-tete : ajouter les images derrière
    /*var content = this.header.innerHTML;
    this.header.innerHTML = "";*/
    
	//création du div aligné à gauche qui contient le titre et le sous-titre de la boite
	this.zone_titre = document.createElement('div');
    this.header.appendChild(this.zone_titre);

	//creation du span qui contient le titre de la boite   
	
	spanTitre=document.createElement("span");
	spanTitre.id="spanTitre";
	this.zone_titre.appendChild(spanTitre);
	
	
   //this.zone_titre.appendChild(document.createElement("span"));
	
	
	
	this.titreImg.id="titreImg";
    this.zone_titre.lastChild.appendChild(this.titreImg);
    this.titreImg.src = this.titreImgUrl;
    this.titreImg.alt = this.titreImgAlt;
    this.titreImg.title = this.titreImgAlt;

	//creation du span qui contient le sous-titre de la boite
	this.sous_titre = document.createElement("span");
    this.zone_titre.appendChild(this.sous_titre);


    //Creation du div qui contient les icones
	this.zone_boutons = document.createElement('div');
	this.header.appendChild(this.zone_boutons);


    this.zone_boutons.appendChild(this.icon_close);
    
    this.icon_close.appendChild(this.openImg);
    this.openImg.src = this.openImgUrl;
    this.openImg.alt = 'Réduire cette fenêtre';
    this.openImg.title = 'Réduire cette fenêtre';
    
    this.icon_close.appendChild(this.closedImg);
    this.closedImg.src = this.closedImgUrl;
    this.closedImg.alt = 'Agrandir cette fenêtre';
    this.closedImg.title = 'Agrandir cette fenêtre';

    //Creation du span qui contient l'icone pour quitter
    this.zone_boutons.appendChild(this.icon_quit);
    
    this.icon_quit.appendChild(this.quitImg);
    this.quitImg.src = this.quitImgUrl;
    this.quitImg.alt = 'Fermer cette fenêtre';
    this.quitImg.title = 'Fermer cette fenêtre';
    


    /*// Reorganiser l'en-tete : ajouter les images devant
    var content = this.header.innerHTML;
    this.header.innerHTML = "";
    
    //Creation du span qui contient les deux icones
    this.header.appendChild(this.icon_close);
    
    this.icon_close.appendChild(this.openImg);
    this.openImg.src = this.openImgUrl;
    
    this.icon_close.appendChild(this.closedImg);
    this.closedImg.src = this.closedImgUrl;

    //Creation du span qui contient l'icone pour quitter
    this.header.appendChild(this.icon_quit);
    
    this.icon_quit.appendChild(this.quitImg);
    this.quitImg.src = this.quitImgUrl;
    
	//creation du span qui contient le titre de la boite    
    this.header.appendChild(document.createElement("span"));
    this.header.lastChild.innerHTML = content;

	//creation du span qui contient le sous-titre de la boite    
    this.header.appendChild(document.createElement("span"));*/
  },
  
  
  /** Initialiser l'apparence */
  setStyle: function() {
    // Les classes
    if (this.box.className == "") {
      this.box.className = "infoBox";
    }
    if (this.header.className == "") {
      this.header.className = "infoBoxHeader";
    }
    if (this.body.className == "") {
      this.body.className = "infoBoxBody";
    }
    if (this.footer.className == "") {
      this.footer.className = "infoBoxFooter";
    }
    this.zone_titre.style.fontWeight = "bold";

	
    this.zone_titre.style.position = "absolute";
    //this.zone_titre.style.height = this.header.style.height;
    this.zone_titre.style.width = "80%";
    this.zone_titre.style.left = "20px";
    this.zone_titre.style.top = "0";
    this.zone_titre.style.verticalAlign = "middle";
    this.zone_titre.className = 'infoBoxTitre';

	this.sous_titre.className = "infoBoxSousTitre";

    // Les icones
    this.zone_boutons.style.position = "absolute";
    this.zone_boutons.style.right = "10px";
    this.zone_boutons.style.top = "0";
    
    this.icon_close.style.background = this.iconBackground;
    this.icon_close.style.cursor = "pointer";
    this.icon_close.style.margin = "0 0 1px 0";
    this.icon_close.style.verticalAlign = "middle";

    this.icon_quit.style.background = this.iconBackground;
    this.icon_quit.style.cursor = "pointer";
    this.icon_quit.style.margin = "0 0 1px 0";
    this.icon_quit.style.verticalAlign = "middle";
  },
  
  /** Definir la reaction au clic sur les icones */
  setOnClick: function() {
	//principe de fermeture
    var current = this;
    this.icon_close.onclick = function() {
      if (current.openImg.style.display == "none") {
        current.expand();
      }
      else {
        current.collapse();
      }
    };

    this.icon_quit.onclick = function() {
		current.close();
    };
  },
  
  /** Montrer le corps (les infos) */
  expand: function() {
    this.openImg.style.display = "";
    this.closedImg.style.display = "none";
    this.body.style.display = "";
  },
  
  /** Cacher le corps */
  collapse: function() {
    this.openImg.style.display = "none";
    this.closedImg.style.display = "";
    this.body.style.display = "none";
  },
  
  /** Fermer l'element (titre compris) */
  close: function() {
    this.box.style.display = "none";
  },
 
  /** Afficher l'element (après fermeture) */
  open: function() {
    this.box.style.display = "";
  },

  /** Ajoute ou change le sous-titre de la fenêtre */  
  change_sousTitre: function(sous_titre) {
  	if(sous_titre != '')
	  	this.sous_titre.innerHTML = " - " + sous_titre;
	else
		this.sous_titre.innerHTML = "";
  },
  
  /**  */
  estVisible: function() {
  	return (this.box.style.display == "");
  },
  
  
  /** Ajoute un bouton � la gauche des boutons d�ja pr�sents 
	  @param zone_bouton : Element span contenant le bouton (son comportement est d�ja d�fini)
   */
  addButton: function (bouton) {
  	//alert(this.zone_boutons);
  	this.zone_boutons.insertBefore(bouton, this.zone_boutons.firstChild);

    bouton.style.background = this.iconBackground;
    bouton.style.cursor = "pointer";
    bouton.style.margin = "0 0 1px 0";
    bouton.style.verticalAlign = "middle";
  },
 
 /** Supprime le bouton agrandir/reduire
   */
  delete_boutonClose: function() {
  	this.zone_boutons.removeChild(this.icon_close);
  }
  
};
// Faire de InfoBox le constructeur de son prototype
InfoBox.prototype.constructor = InfoBox;
/**************************************************************************************
				InfoBoxs sp�cialis�es selon leur contenu
 **************************************************************************************/
/** InfoBox_resultats
 */ 
var InfoBox_resultats = Class.create();
var prototype_infobox_resultats = {
	nb_resultats: 0,
	openImgUrl: '../images/resultats/boutons/reduire.jpg',
	closedImgUrl: '../images/resultats/boutons/agrandir.jpg',
	quitImgUrl: '../images/resultats/boutons/fermer.jpg',
	titreImgUrl: "../images/resultats/resultats.gif",
	titre2ImgUrl: "../images/nouveautes/nouveautes.gif",
	titreImgAlt: "Résultats de votre recherche",
	podcastImgUrl: "../images/resultats/boutons/podcast.gif",
	podcastImgAlt: "Podcaster ce thème",
	iconBackground: '#FFF8E1',
	id_mot_cle: "id non défini",
	role:"nouveautes",//sert a permettre a l'infobox resultat de se comporter tantot comme une box de resultats tantot comme une box de nouveautes.
	
	setRole: function(role){
		//var tableau=this.zone_titre.descendants(); // fait planter explorer
		if(role=="nouveautes"){
			this.titreImg.src=this.titre2ImgUrl;
			//this.zone_pagination.hide();
			Element.hide(this.zone_pagination);
			this.div_podcast.style.display = 'none';
			this.div_podcast.innerHTML = "";
			this.div_recherche.innerHTML="";
			this.zone_resultats.style.height="";
		}
		else{
			this.titreImg.src=this.titreImgUrl;
			//this.zone_pagination.show();
			Element.show(this.zone_pagination);
			this.zone_resultats.style.height="390px";
			//this.format_nav();
		}
		this.role=role;
	},
	set_status: function(status){//renseigne la petite phrase qui dit le nombre de nouveautes, status est en string
		//this.zone_resultats
		this.status=status;
		//alert(status);
		//this.div_status = document.createElement('div');
		//this.body.appendChild(this.div_status);
		this.div_status.innerHTML=status;
	},
	wait: function(){//affiche un message pour faire patienter pendant que la recherche se fait dans la base
		this.div_status.innerHTML="";
		this.zone_resultats.innerHTML="Recherche en cours, merci de patienter.";
	},
	flush: function(){//doit servir à rafraichir... efface la fenetre
		this.div_status.innerHTML="";
		this.zone_resultats.innerHTML="";
	},
	init_bis: function() {
		//on crée une deuxieme image titre pour pouvoir gérer les roles Nouveautes / resultats
		this.titre2ImgUrl= "../images/nouveautes/nouveautes.gif";
		//rappel des termes de la recherche
		this.div_recherche = document.createElement('div');
		this.div_recherche.style.display = 'none';
		this.div_recherche.style.paddingTop = '10px';
		this.body.appendChild(this.div_recherche);
		//lien vers le podcast du thème recherché
		this.div_podcast = document.createElement('div');
		this.div_podcast.style.display = 'none';
		this.div_podcast.style.color = '#FFA200';
		this.div_podcast.style.cursor = 'pointer';
		this.div_podcast.style.fontWeight = 'bold';
		this.div_podcast.style.marginTop = '5px';
		this.body.appendChild(this.div_podcast);
		//zone contenant les résultats de la recherche
		this.zone_resultats = document.createElement('div');
		this.zone_resultats.id='les_resultats';
		this.body.appendChild(this.zone_resultats);
		this.div_status = document.createElement('div');
		this.div_status.id="status";
		this.body.appendChild(this.div_status);
		//zone permettant la pagination zone_pagination de 5 en 5 des résultats obtenus
		/* 
		une zone de pagination avec : 
			une div "ligne" contenant une ligne horizontale, 
			un div  "fleches" contenant  
				"fleche_gauche" 
				"spacer" 
				"fleche droite"
			un div "boites" contenant
				case1
				***--> case9
		*/
		this.zone_pagination=document.createElement('div');
		this.zone_pagination.visibility="hidden";
		this.zone_pagination.id="zone_pagination";
		
		this.ligne=document.createElement('div');
		this.ligne.id="ligne";
		
		this.zone_pagination.appendChild(this.ligne);
		
		this.fleches=document.createElement('div');
		this.fleches.id="fleches";	
		
		this.fleche_gauche=document.createElement('div');
		this.fleche_gauche.id="fleche_gauche";
		this.fleches.appendChild(this.fleche_gauche);
		
		this.spacer=document.createElement('div');
		this.spacer.id="spacer";
		this.fleches.appendChild(this.spacer);
		
		this.fleche_droite=document.createElement('div');
		this.fleche_droite.id="fleche_droite";
		this.fleches.appendChild(this.fleche_droite);
		
		this.zone_pagination.appendChild(this.fleches);
		
		this.boites=document.createElement('div');
		this.boites.id="boites";
		
		for (var i =1; i<10; i++){
		//eval("this.case"+i+"=document.createElement('div')");
		eval("this.case"+i+"=document.createElement('span')");
		eval("this.case"+i+".id='case"+i+"'");
		//eval("this.case"+i+".innerHTML=' - ' ");
		
		eval ("this.case"+i+".className=("+'"boite")');
		eval("this.boites.appendChild(this.case"+i+")");
		}
		this.zone_pagination.appendChild(this.boites);
		this.body.appendChild(this.zone_pagination);
		this.id_mot_cle = "pas d'ID de mot clé dans le constructeur";
	},
	/** Ajoute l'element div à la fin de la liste des résultats, comme un nouveau r�sultat */
	ajoute_emission: function(div) {
		//alert(this.body.innerHTML);
		this.zone_resultats.appendChild(div);
		this.nb_resultats++;
	},
	format_nav: function(nombre,limit){//ici on met en forme la partie navigation.
		//alert ("format");
		//alert (limit+"/"+nombre);
		pages_max=(Math.floor(((nombre-1)/5)))+1;
		page_courante=(limit/5)+1;
		//alert("limit :"+limit+" page: "+page_courante+" sur "+pages_max);
		//si elle n'est pas utile on masque la zone de navigation #################
		//alert("nombre"+nombre);
		if (nombre<6){//si il y a moins de 6 émissions carrément pas besoin de naviguer
			this.zone_pagination.style.visibility="hidden";
			this.fleches.style.visibility="hidden";
			this.fleche_gauche.style.visibility="hidden";
			this.fleche_droite.style.visibility="hidden";
			this.spacer.style.visibility="hidden";
		}
		else {//cas ou on doit naviguer
			//rafraichir l'affichage des cases pour éviter que les anciennes valeurs ne s'affichent.
			this.case1.innerHTML="";
			this.case2.innerHTML="";
			this.case3.innerHTML="";
			this.case4.innerHTML="";
			this.case5.innerHTML="";
			this.case6.innerHTML="";
			this.case7.innerHTML="";
			this.case8.innerHTML="";
			this.case9.innerHTML="";
			
					//gestion des neuf cases contenant les liens vers les autres pages 
		//quel est le numéro de page affiché dans la case 1 ?
			if ((pages_max<10)||(page_courante<6)){
				this.case1.value=1;
				this.case1.innerHTML="1";
			}
			else {
				if ((pages_max >9) && (page_courante>5) && ((pages_max - page_courante)>3)){
					var mavaleur;
					mavaleur=page_courante-4;
					this.case1.value=mavaleur;
					this.case1.innerHTML=mavaleur;
				}
				else {
					var valeur;
					valeur=(pages_max - 8);
					this.case1.value=valeur;
					this.case1.innerHTML=valeur;
				}
			}
		// a ce stade, la premiere case a son numero, il faut maintenant renseigner les cases qui suivent.
		nombre_pages = Math.min(9,pages_max);
		//
			for (i=1;i<=nombre_pages;i++){
				offset=i-1;
				valeur_case=(offset+this.case1.value);
				//alert (valeur_case);
				//eval ("this.case"+i+".value=("+'"boite")');		
				affectation="this.case"+i+".innerHTML='"+valeur_case+"'";
				eval(affectation);
				affectation="this.case"+i+".value="+valeur_case;
				eval(affectation);
				//alert (valeur_case+"-"+page_courante);
				if (valeur_case==page_courante){//on met en rouge si c'est la page courante
						affectation="this.case"+i+".className='boite page_courante'";
						eval(affectation);
				}
				else {
						affectation="this.case"+i+".className='boite'";
						eval(affectation);
				
				}
			}
			
			
			
			this.zone_pagination.style.visibility="visible";
			this.fleches.style.visibility="visible";
			this.fleche_gauche.style.visibility="visible";
			this.fleche_droite.style.visibility="visible";
			this.spacer.style.visibility="visible";
			
		//montrer / cacher les fleches
			if (limit==0){
				//this.fleche_gauche.hide();
				this.fleche_gauche.style.visibility="hidden";
			}
			else{
				this.fleche_gauche.style.visibility="visible";
			}
			if (page_courante==pages_max){
				this.fleche_droite.style.visibility="hidden";
			}
			else{
				this.fleche_droite.style.visibility="visible";
			}
			/*
		//gestion des neuf cases contenant les liens vers les autres pages 
		//quel est le numéro de page affiché dans la case 1 ?
			if ((pages_max<10)||(page_courante<6)){
				this.case1.value=1;
				this.case1.innerHTML="1";
			}
			else {
				if ((pages_max >9) && (page_courante>5) && ((pages_max - page_courante)>3)){
					var mavaleur;
					mavaleur=page_courante-4;
					this.case1.value=mavaleur;
					this.case1.innerHTML=mavaleur;
				}
				else {
					var valeur;
					valeur=(pages_max - 8);
					this.case1.value=valeur;
					this.case1.innerHTML=valeur;
				}
			}
		// a ce stade, la premiere case a son numero, il faut maintenant renseigner les cases qui suivent.
		nombre_pages = Math.min(9,pages_max);
		//
			for (i=1;i<=nombre_pages;i++){
				offset=i-1;
				valeur_case=(offset+this.case1.value);
				//eval ("this.case"+i+".value=("+'"boite")');		
				affectation="this.case"+i+".innerHTML='"+valeur_case+"'";
				eval(affectation);
				affectation="this.case"+i+".value="+valeur_case;
				eval(affectation);
				//alert (valeur_case+"-"+page_courante);
				if (valeur_case==page_courante){//on met en rouge si c'est la page courante
						affectation="this.case"+i+".className='boite page_courante'";
						eval(affectation);
				}
				else {
						affectation="this.case"+i+".className='boite'";
						eval(affectation);
				
				}
			}
			*/
		}//fin du cas ou on a besoin de naviguer
	},//fin de la gestion de l'espace de navigation
	
	/** Ajoute un lien pour ouvrir la fenêtre de podcaste du thème recherché
	 */
	setPodcast: function(texte, fenetre_podcast,url) {
		this.div_podcast.innerHTML = texte;
		var image_podcast = document.createElement('img');
		image_podcast.src = this.podcastImgUrl;
		image_podcast.alt = this.podcastImgAlt;
		image_podcast.title = this.podcastImgAlt;
		image_podcast.style.verticalAlign = 'middle';
		image_podcast.style.marginLeft = '15px';
		this.div_podcast.appendChild(image_podcast);
		this.div_podcast.onclick = function() {
			if (typeof document.body.style.maxHeight != "undefined") {
				myurl="http://"+url;
				w=window.open (myurl,"new");
			} 
			else {
			   	fenetre_podcast.open();
				fenetre_podcast.expand();
			}
		};
		this.div_podcast.style.display = '';
	},
	/** Rappelle les paramètres de la recherche (sous le titre de la fenêtre)
	 *	@param texte : le texte décrivant les paramètres de la recherche
	 */
	setTermes_recherche: function(texte) {
		this.div_recherche.innerHTML = texte;
		this.div_recherche.style.display = 'block';
	},
	cacherPodcast: function() {
		this.div_podcast.style.display = 'none';
	},
	cacherTermes_recherche: function() {
		this.div_recherche.style.display = 'none';
	}
}
Object.extend(Object.extend(InfoBox_resultats.prototype, InfoBox.prototype), prototype_infobox_resultats)
/*
Infobox nouveautes
*/
/*
var InfoBox_nouveautes = Class.create();
var prototype_infobox_nouveautes = {
	//nb_resultats: 0,
	openImgUrl: '../images/nouveautes/boutons/reduire.jpg',
	closedImgUrl: '../images/nouveautes/boutons/agrandir.jpg',
	quitImgUrl: '../images/nouveautes/boutons/fermer.jpg',
	titreImgUrl: "../images/nouveautes/nouveautes.gif",
	titreImgAlt: "Nouveautés",
	iconBackground: '#FFFFFF',
	
		ajoute_emission_nouveau: function(div) {
		//alert(this.body.innerHTML);
		this.zone_resultats.appendChild(div);
		this.nb_resultats++;
	},
	
}
Object.extend(Object.extend(InfoBox_nouveautes.prototype, InfoBox_resultats.prototype), prototype_infobox_nouveautes)
*/
/** InfoBox_script
 */ 
var InfoBox_script = Class.create();
var prototype_infobox_script = {
	
	nb_resultats: 0,
	playerImgUrl: '../images/script/boutons/lire.jpg',
	printImgUrl: '../images/script/boutons/imprimer.jpg',
	openImgUrl: '../images/script/boutons/reduire.jpg',
	closedImgUrl: '../images/script/boutons/agrandir.jpg',
	quitImgUrl: '../images/script/boutons/fermer.jpg',
	titreImgUrl: "../images/script/script.gif",
	titreImgAlt: "Script de l'émission",
	iconBackground: 'white',

	init_bis: function() {
		//bouton 'Imprimer'
		this.printImg = document.createElement('img');
		this.printImg.src = this.printImgUrl;
		this.printImg.alt = 'Imprimer';
		this.printImg.title = 'Imprimer';

		this.icone_print = document.createElement('span');
		this.icone_print.appendChild(this.printImg);
		
		this.addButton(this.icone_print);

		//bouton 'Ecouter'
		this.playerImg = document.createElement('img');
		this.playerImg.src = this.playerImgUrl;
		this.playerImg.alt = 'Écouter l\'émission';
		this.playerImg.title = 'Écouter l\'émission';

		this.icone_player = document.createElement('span');
		this.icone_player.appendChild(this.playerImg);
		
		this.addButton(this.icone_player);
		
		
		this.setStructure_script();
	},

	/** Crée les zones d'affichage de l'emission, et de mise à jour pour l'administration */	
	setStructure_script: function() {

		//Zone d'affichage de l'emission
		this.zone_affichage = document.createElement('div');
		this.titre_emission = document.createElement('h2');
		this.zone_script = document.createElement('div');
		
		this.body.appendChild(this.zone_affichage);
		this.zone_affichage.appendChild(this.titre_emission);
		this.zone_affichage.appendChild(this.zone_script);
		

		//Zone de formulaire
		this.div_formulaire = document.createElement('div');
		this.titre_formulaire = document.createElement('h2');
		this.zone_formulaire = document.createElement('div');
		
		this.body.appendChild(this.div_formulaire);
		this.div_formulaire.appendChild(this.titre_formulaire);
		this.div_formulaire.appendChild(this.zone_formulaire);

		this.titre_formulaire.innerHTML = 'Modification des paramètres de l\'émission';
		//this.initialise_formulaire();
	
		this.setStyles_script();
	},
	
	
	initialise_formulaire: function() {

		//alert('initialise le formulaire');
		this.zone_formulaire.innerHTML = '';
		
		//Formulaire
		this.form_maj = document.createElement('form');
		this.form_maj.action = 'javascript:;';
		this.zone_formulaire.appendChild(this.form_maj);
		
		//identifiant de l'émission		
		var input_hidden = document.createElement('input');
		input_hidden.name = 'id_emission';
		input_hidden.id = 'id_emission';
		input_hidden.type = 'hidden';
		this.form_maj.appendChild(input_hidden);

		//Action du formulaire (maj)
		var input_action = document.createElement('input');
		input_action.name = 'action';
		input_action.id = 'action';
		input_action.type = 'hidden';
		input_action.value = 'maj';
		this.form_maj.appendChild(input_action);
		
		
		//Zone d'affichage du titre
		this.div_titre = document.createElement('div');
		this.div_titre.innerHTML = 'Titre : ';
		
		//Input pour modification du titre
		this.input_titre = document.createElement('input');
		this.input_titre.name = 'titre';
		this.input_titre.id = 'titre';
		this.input_titre.type = 'text';
		this.div_titre.appendChild(this.input_titre);
		this.form_maj.appendChild(this.div_titre);


		//Zone d'affichage de la date
		this.div_date = document.createElement('div');
		this.div_date.innerHTML = 'Date : ';
		
		//Input pour modification de la date
		this.input_date = document.createElement('input');
		this.input_date.name = 'date_emission';
		this.input_date.id = 'date_emission';
		this.input_date.type = 'text';
		this.div_date.appendChild(this.input_date);
		this.form_maj.appendChild(this.div_date);
		
		
		//Zone d'affichage de la duree
		this.div_duree = document.createElement('div');
		this.div_duree.innerHTML = 'Duree (en secondes) : ';
		
		//Input pour modification de la duree
		this.input_duree = document.createElement('input');
		this.input_duree.name = 'duree';
		this.input_duree.id = 'duree';
		this.input_duree.type = 'text';
		this.div_duree.appendChild(this.input_duree);
		this.form_maj.appendChild(this.div_duree);
		
		
		//Zone d'affichage du script
		this.div_script = document.createElement('div');
		this.div_script.innerHTML = 'Script de l\'émission : ';
		this.form_maj.appendChild(this.div_script);

		//Input pour modification du script
		this.div_input_script = document.createElement('div');
		this.div_script.appendChild(this.div_input_script);

		this.input_script = document.createElement('textarea');
		this.input_script.name = 'script';
		this.input_script.id = 'script';
		this.div_input_script.appendChild(this.input_script);

		//intégration de FCKeditor
		var oFCKeditor = new FCKeditor('script');
		oFCKeditor.BasePath = "/FCKeditor/";
		oFCKeditor.Config['CustomConfigurationsPath'] = "/jacquard/composants_js/config_fck.js";
		oFCKeditor.Width = "100%";
		oFCKeditor.Height = "400";
		oFCKeditor.ToolbarSet = "Jacquard";
		oFCKeditor.ReplaceTextarea();

		//choix des mots-clés auxquels l'émission est associée
		var zone_mots_cles_associes = document.createElement('div');
		zone_mots_cles_associes.innerHTML = 'Choisissez les thèmes auxquels cette émission est associée :';
		this.form_maj.appendChild(zone_mots_cles_associes);

		var div_mots_cles = document.createElement('div');
		zone_mots_cles_associes.appendChild(div_mots_cles);
		
		
		//tous les mots clés dans un select multiple
		div_mots_cles.innerHTML += '<select id="mots_cles_non_lies"></select>';
		this.select_mots_cles_in = document.getElementById('mots_cles_non_lies');
		
		this.select_mots_cles_in.multiple = true;
		this.select_mots_cles_in.name = 'mots_cles_non_lies[]';
		this.select_mots_cles_in.size = '10';
		this.select_mots_cles_in.style.cssFloat = 'left';
		this.select_mots_cles_in.style.float = 'left';
		
		//zone de boutons ">>" et "<<"
		div_mots_cles.appendChild(document.createElement('div'));
		div_mots_cles.lastChild.style.cssFloat = 'left';
		div_mots_cles.lastChild.style.float = 'left';
		
		//bouton 'selectionner'
		div_mots_cles.lastChild.innerHTML += '<input type="button" id="bouton_ajouter_mot_cle" />';
		$('bouton_ajouter_mot_cle').value = ' >> ';
		$('bouton_ajouter_mot_cle').style.display = 'block';
		
		//bouton 'deselectionner'
		div_mots_cles.lastChild.innerHTML += '<input type="button" id="bouton_retirer_mot_cle" />';
		$('bouton_retirer_mot_cle').value = ' << ';
		$('bouton_retirer_mot_cle').style.display = 'block';

		//liste 'destination'
		div_mots_cles.innerHTML += '<select id="mots_cles_lies" multiple="multiple"></select>';
		this.select_mots_cles_out = document.getElementById('mots_cles_lies');
		
		this.select_mots_cles_out.name = 'mots_cles_lies[]';
		this.select_mots_cles_out.size = '10';
		this.select_mots_cles_out.style.cssFloat = 'left';
		this.select_mots_cles_out.style.float = 'left';
		
		//footer pour afficher correctement les éléments float
		div_mots_cles.appendChild(document.createElement('div'));
		div_mots_cles.lastChild.style.clear = 'both';


		//Validation
		var zone_valide = document.createElement('div');
		this.form_maj.appendChild(zone_valide);
		zone_valide.innerHTML = 'Valider cette émission : ';
		
		var input_valide = document.createElement('input');
		input_valide.type = 'checkbox';
		input_valide.name = 'valide';
		input_valide.id = 'valide';
		zone_valide.appendChild(input_valide);

		//Submit
		var input_submit = document.createElement('input');
		input_submit.type = 'submit';
		input_submit.value = 'Enregistrer';
		this.form_maj.appendChild(input_submit);

		//Reset
		var input_reset = document.createElement('input');
		input_reset.type = 'reset';
		input_reset.value = 'Annuler';
		this.form_maj.appendChild(input_reset);


		//Formulaire de suppression de l'émission
		this.form_delete = document.createElement('form');
		this.form_delete.action = 'javascript:;';
		this.zone_formulaire.appendChild(this.form_delete);
		
		//identifiant de l'émission
		input_hidden = document.createElement('input');
		input_hidden.name = 'id_emission';
		input_hidden.id = 'id_emission';
		input_hidden.type = 'hidden';
		this.form_delete.appendChild(input_hidden);

		//Action du formulaire (delete)
		input_action = document.createElement('input');
		input_action.name = 'action';
		input_action.id = 'action';
		input_action.type = 'hidden';
		input_action.value = 'delete';
		this.form_delete.appendChild(input_action);

		//Submit
		input_submit = document.createElement('input');
		input_submit.type = 'submit';
		input_submit.value = 'Supprimer';
		this.form_delete.appendChild(input_submit);
	},
	
	
	/**  */
	setStyles_script: function() {
		this.titre_emission.className = 'titre_emission titre_dans_script';
		this.zone_script.className = 'script';
		
		this.zone_formulaire.className = 'affichage_script';

		this.titre_formulaire.className = 'titre_emission titre_dans_script';
	}
}
Object.extend(Object.extend(InfoBox_script.prototype, InfoBox.prototype), prototype_infobox_script)
/** InfoBox_lecteur
 */ 
var InfoBox_lecteur = Class.create();
var prototype_infobox_lecteur = {
	scriptImgUrl: '../images/lecteur/boutons/script.jpg',
	openImgUrl: '../images/lecteur/boutons/reduire.jpg',
	closedImgUrl: '../images/lecteur/boutons/agrandir.jpg',
	quitImgUrl: '../images/lecteur/boutons/fermer.jpg',
	titreImgUrl: "../images/lecteur/lecteur.gif",
	titreImgAlt: "Lecteur",
	iconBackground: '#F6ECCA',
	enregistrerImgUrl:'../images/lecteur/boutons/enregistrer.jpg',

	init_bis: function() {

		
		
		this.enregistrerImg = document.createElement('img');
		this.enregistrerImg.src = this.enregistrerImgUrl;
		this.enregistrerImg.alt = 'Enregistrer';
		this.enregistrerImg.title = 'Enregistrer';
		this.icone_enregistrer = document.createElement('span');
		this.icone_enregistrer.appendChild(this.enregistrerImg);
		this.addButton(this.icone_enregistrer);
		
		this.scriptImg = document.createElement('img');
		this.scriptImg.src = this.scriptImgUrl;
		this.scriptImg.alt = 'Voir le texte';
		this.scriptImg.title = 'Voir le texte';
		this.icone_script = document.createElement('span');
		this.icone_script.appendChild(this.scriptImg);
		this.addButton(this.icone_script);		
		
		
		
		this.delete_boutonClose();
		
	}

}
Object.extend(Object.extend(InfoBox_lecteur.prototype, InfoBox.prototype), prototype_infobox_lecteur)
/** InfoBox_accueil  ######################################################################################*/
 var InfoBox_accueil = Class.create();
var prototype_infobox_accueil = {
	//scriptImgUrl: '../images/accueil/boutons/script.jpg',
	openImgUrl: '../images/accueil/boutons/reduire.jpg',
	closedImgUrl: '../images/accueil/boutons/agrandir.jpg',
	quitImgUrl: '../images/accueil/boutons/fermer.jpg',
	titreImgUrl: "../images/accueil/accueil.gif",
	titreImgAlt: "Aide",
	iconBackground: '#F6ECCA',
	init_bis: function(jacq) {
		// Modification de Lucille du 5 octobre 2007 : on a passé jacquard en paramêtre de l'infobox (à l'appel de init_bis) pour pouvoir appeller ses méthodes
		this.jacquard = jacq;
		//alert(this.jacquard.url);
		//        ACCUEIL INTRO
		accueil_intro = document.createElement('div');
		accueil_intro.id = 'accueil_intro';
			// HAUT
		accueil_intro_haut  = document.createElement('div');
		accueil_intro_haut.id = 'accueil_intro_haut';
		fondgris = document.createElement('div');
		fondgris.id = 'fondgris';
		accueil_intro_haut_titre  = document.createElement('div');
		accueil_intro_haut_titre.id = 'accueil_intro_haut_titre';	
		accueil_intro_haut_contenu  = document.createElement('div');
		accueil_intro_haut_contenu.id = 'accueil_intro_haut_contenu';
		span1 = document.createElement('span');
		span1.innerHTML ='&Agrave; partir des émissions radiophoniques de France Culture';
		span2 = document.createElement('span');
		span2.id='span2';
		span2.style.fontWeight='bolder';
		span2.innerHTML =' Le regard d\'Albert Jacquard,';
		span3 = document.createElement('span');
		span3.innerHTML =' le CRDP de Bretagne propose aux établissements scolaires un programme pour aborder en classe une réflexion autour des rapports entre ';
		span4 = document.createElement('span');
		span4.id='span4';
		span4.innerHTML =' l\'homme, la science et le monde.<br /><br />';
		span4.style.fontWeight='bolder';
		span5 = document.createElement('span');
		span5.innerHTML ='D\'une durée très brève (de 3 à 4 minutes), chaque émission est accessible en recherchant un mot prononcé (recherche plein texte) ou un thème abordé (dans une liste avec menu déroulant) et son texte est imprimable.<br />Il est possible d’enregistrer l’émission de son choix et son texte, ou de podcaster toutes les émissions abordant un même thème. <br /><br />';		
		accueil_intro_haut_contenu.appendChild(span1);
		accueil_intro_haut_contenu.appendChild(span2);
		accueil_intro_haut_contenu.appendChild(span3);
		accueil_intro_haut_contenu.appendChild(span4);
		accueil_intro_haut_contenu.appendChild(span5);
		accueil_haut_img = document.createElement('img');
		accueil_haut_ImgUrl = '../images/accueil/accueil_haut.gif';
		accueil_haut_ImgAlt = 'Qu\'est ce que c\'est ?';
		accueil_haut_img.src = accueil_haut_ImgUrl;
		accueil_haut_img.alt = 'Qu\'est ce que c\'est ?';
		accueil_haut_img.title = 'Qu\'est ce que c\'est ?';
		accueil_intro_haut_titre.appendChild(accueil_haut_img);
		accueil_intro.appendChild(accueil_intro_haut);
		accueil_intro_haut.appendChild(accueil_intro_haut_titre);
		accueil_intro_haut.appendChild(fondgris);
		fondgris.appendChild(accueil_intro_haut_contenu);
			// COMMENT
		accueil_intro_comment  = document.createElement('div');
				// COMMENT TITRE
		accueil_intro_comment_titre  = document.createElement('div');
		accueil_intro_comment_titre.id = 'accueil_intro_comment_titre';	
		accueil_comment_img = document.createElement('img');
		accueil_comment_ImgUrl = '../images/accueil/comment.gif';
		accueil_comment_ImgAlt = 'Comment ça marche ?';
		accueil_comment_img.src = accueil_comment_ImgUrl;
		accueil_comment_img.alt = accueil_comment_ImgAlt;
		accueil_comment_img.title = accueil_comment_ImgAlt;		
				// COMMENT CONTENU
		accueil_intro_comment_contenu  = document.createElement('div');
		accueil_intro_comment_contenu.id = 'accueil_intro_comment_contenu';
		accueil_intro_comment_contenu.innerHTML ='La recherche peut s’effectuer <ul><li />à partir d’un mot prononcé : il apparaitra en rouge dans le texte (homonymes possibles)<li />dans une liste de thèmes abordés</ul>Ces deux recherches sont compatibles ; on peut croiser par exemple le thème «&nbsp;l\’évolution&nbsp;» et le mot prononcé «&nbsp;hasard&nbsp;».<br /><br />Lors d\'une recherche par thème, une fonction podcast est proposée pour télécharger toutes les émissions abordant le thème choisi.<br /><br />Le système de fenêtres permet d\'organiser la page aisément : on peut consulter le texte d\'une émission, en chercher une autre et en écouter une troisième.<br />Chaque fenêtre indique en permanence le titre de l\'émission concernée.<br /><br /><br /><b>Pour chaque émission vous pourrez :</b><br /><img src="../images/accueil/boutons/boutons_1.gif" width="393"  alt="ecouter, lire, enregistrer, imprimer, vous abonner" /><br /><br /><b>Chaque fenêtre peut être :</b><br /><img src="../images/accueil/boutons/boutons_2.gif" alt="réduite ou fermée" /><br /><b><br />L\'équipe : </b><br /><br /><b>L\'émission de France Culture : Le regard d\'Albert Jacquard	</b><br />Production : <i>Albert Jacquard</i><br />Réalisation : <i>Brigitte Mazire</i><br /><br /><b>Le programme du CRDP de Bretagne : Le regard d\'Albert Jacquard</b><br />Direction de publication :<i> Eve Avigo</i><br />Conception et production :<i> François Haubertin</i><br />Design : <i>Loïc Gosset</i><br />Photographie Albert Jacquard (page d\'accueil) : <i>David Balicki</i><br />Développement informatique : <i>Lucille Chanel, Dominique Ruhlmann, Jean-Baptiste Joulé</i><br />Saisie : <i>Gwenaëlle Riou, Jocelyne Fouché</i><br />Relecture : <i>Hélène Audard</i><br />Indexation : <i>Frédérique Bouquet, Dominique Lucas, Jean-Paul Thomas</i><br />Transferts : <i>Jean-Paul Kerbart</i><br /><br />';
		// ON RATTACHE COMMENT
		accueil_intro_comment_titre.appendChild(accueil_comment_img);
		fondgris.appendChild(accueil_intro_comment_titre);
		fondgris.appendChild(accueil_intro_comment_contenu);
			// QUI ?
		accueil_intro_qui  = document.createElement('div');
		accueil_intro_qui.id = 'accueil_intro_qui';
				// QUI TITRE
		accueil_intro_qui_titre  = document.createElement('div');
		accueil_intro_qui_titre.id = 'accueil_intro_qui_titre';	
		accueil_qui_img = document.createElement('img');
		accueil_qui_ImgUrl = '../images/accueil/qui.gif';
		accueil_qui_ImgAlt = 'Qui est Albert Jacquard ?';
		accueil_qui_img.src = accueil_qui_ImgUrl;
		accueil_qui_img.alt = accueil_qui_ImgAlt;
		accueil_qui_img.title = accueil_qui_ImgAlt;	
				// QUI CONTENU
		accueil_intro_qui_contenu  = document.createElement('div');
		accueil_intro_qui_contenu.id = 'accueil_intro_qui_contenu';
		accueil_intro_qui_contenu.innerHTML ='<br />Né à Lyon le 23 décembre 1925, Albert Jacquard est un scientifique et un écrivain. <br /><br />Généticien, il est l\’auteur de nombreux ouvrages de vulgarisation scientifique ou d\'essais et consacre l\’essentiel de son activité à la diffusion d\’un discours humaniste destiné à favoriser l\’évolution de la conscience collective.<br /><br />Il anime une chronique radiophonique régulière sur France Culture à partir de laquelle ce programme a été élaboré.<br /><br />';
				// le pied (élément graphique qui fait l'arrondi du cadre en bas
		pied  = document.createElement('img');	
		pied_ImgUrl	= '../images/accueil/pied_accueil.gif';	
		pied_ImgAlt='';
		pied.src=pied_ImgUrl;
		pied.alt=pied_ImgAlt;
		pied.title=pied_ImgAlt;
		// ON RATTACHE QUI
		accueil_intro_qui_titre.appendChild(accueil_qui_img);
		fondgris.appendChild(accueil_intro_qui_titre);
		fondgris.appendChild(accueil_intro_qui_contenu);
		
	// ON RATTACHE LES PAQUETS
			accueil_intro.appendChild(pied);
			this.body.appendChild(accueil_intro);
			this.body.appendChild(accueil_intro_comment);
			this.body.appendChild(accueil_intro_qui);
			//this.body.appendChild(accueil_nouv);

	// on permet d'escamoter les contenus

	function toggles (declencheur, cible){
		$(declencheur).observe('click', function(event){
		$(cible).toggle();
		});//toggles
	} //function toggles
	
	toggles ('accueil_intro_haut_titre', 'accueil_intro_haut_contenu');
	toggles ('accueil_intro_comment_titre', 'accueil_intro_comment_contenu');
	toggles ('accueil_intro_qui_titre', 'accueil_intro_qui_contenu');
	//toggles ('accueil_intro_nouv_titre', 'lestitres');
	$('accueil_intro_comment_contenu').hide();
	$('accueil_intro_qui_contenu').hide();
	
	},
	refresh: function(){
		$('accueil_intro_comment_contenu').hide();
		$('accueil_intro_qui_contenu').hide();	
		$('accueil_intro_haut_contenu').show();
	}
	//init_bis: 
	
	
}//var prototype_infobox_accueil
Object.extend(Object.extend(InfoBox_accueil.prototype, InfoBox.prototype), prototype_infobox_accueil)

/** InfoBox_mot_cle */ 
var InfoBox_mot_cle = Class.create();
var prototype_infobox_mot_cle = {
	openImgUrl: '../images/mot_cle/boutons/reduire.jpg',
	closedImgUrl: '../images/mot_cle/boutons/agrandir.jpg',
	quitImgUrl: '../images/mot_cle/boutons/fermer.jpg',
	podcastImgUrl: '../images/mot_cle/boutons/podcast.jpg',
	//podcastImgUrl: '../images/resultats/boutons/podcast.gif',
	titreImgUrl: "../images/mot_cle/podcast.jpg",
	titreImgAlt: "Podcast ...",
	iconBackground: '#F6ECCA',
	init_bis: function() {
		this.setStructure_mot_cle();
	},
	/** Crée les zones d'affichage de l'emission, et de mise à jour pour l'administration */	
	setStructure_mot_cle: function() {
		//bouton "podcast"
		this.podcastImg = document.createElement('img');
		this.podcastImg.src = this.podcastImgUrl;
		this.podcastImg.alt = 'Podcaster dans iTunes';
		this.podcastImg.title = 'Podcaster dans iTunes';
		this.podcastImg.style.border = 'none';
		this.icone_podcast = document.createElement('span');
		//this.icone_podcast.appendChild(this.podcastImg);
		/*this.lien_podcast = document.createElement('a');
		this.lien_podcast.appendChild(this.podcastImg);
		this.icone_podcast.appendChild(this.lien_podcast);
		this.addButton(this.icone_podcast);*/
		//Zone d'affichage du mot-clé (et lien podcasting)
		this.zone_affichage = document.createElement('div');
		this.body.appendChild(this.zone_affichage);
		//Zone de formulaire
		this.div_formulaire = document.createElement('div');
		this.body.appendChild(this.div_formulaire);
	}
}
Object.extend(Object.extend(InfoBox_mot_cle.prototype, InfoBox.prototype), prototype_infobox_mot_cle)

