function init() {
	selectMenu(ITEM);
	
	if (ITEM == "Contact") {
		// on définit un peu plus de chose
		initContact();
	}
}

/**
 * Sélectionne l'item de menu spécifié dans la frame du haut
 * @param a_item  libellé de l'item de menu à sélectionner
 */
function selectMenu(a_item) {
	// on change le titre
	top.window.document.title = a_item + " - Culture Musicale";

	menu.selectItem(a_item);
}


function initContact() {
	// on récupère le formulaire
	var l_form = xbGetElementById("contact");
	
	// on spécifie l'url de retour, en utilisant l'url courante
	var l_loc = window.location.href;
	var l_pos = l_loc.length;
	// on parcourt le nom jusqu'à trouver le séparateur de fichiers
	do {
		l_pos--;
	} while ((l_pos >= 0) && (l_loc.charAt(l_pos) != '/') && (l_loc.charAt(l_pos) != '\\'));
	
	l_form._nextpage.value = l_loc.substring(0, l_pos + 1) + "confirm.htm";
//	l_form.url_origine.value = l_loc.substring(0, l_pos + 1) + "confirm.htm";
	
	// on remplit la combo des stages
	var l_stagesCtrl = new AffichageStages("l_stages", STAGES, "stage");
	var l_items = l_stagesCtrl.filtreStages(true);
	// on passe en revue
	var l_nb = l_items.length;
	var l_stage;
	var l_select = l_form.a08__Stages;
	for (var i = 1; i < l_nb; i++) {
		l_stage = l_items[i];
		l_select[l_select.length] = new Option(l_stage.code, l_stage.code);
	}
}

/**
 * Constructeur du controlleur d'affichage des stages.
 * @param a_prefixName	(String)			préfixe de la variable controlleur et des onglets gauches
 * @param a_stages		(tableau d'Object)	définition des stages
 * @param a_cssPrefix	(String)			préfixe de css à utiliser
 */
function AffichageStages(a_prefixName, a_stages, a_cssPrefix) {
	this.prefixName = a_prefixName;
	this.name = a_prefixName + "Ctrl";
	this.stages = a_stages;
	this.cssPrefix = a_cssPrefix;
}

/**
 * Renvoie un tableau de données représentant la liste des stages.
 * @param	a_encours	(boolean)	true si stages en cours, false si stages archivés
 * @return un tableau d'onglets, un par stage 
 */
AffichageStages.prototype.getSwItem = function(a_encours) {
	var l_items = [];
	l_items[0] = {"size":[20, -1], 
				  "style":{"css":{"OFF":"swOff", "OVER":"swOver", 
 								  "OFF_SEL":"swSel", "OVER_SEL":"swSel"}}};
	l_items[1] = {'code' : 'Stages à venir', 'url':'./stages.htm?type=encours', "format":{"size":[20, 245], "selected":(a_encours) ? "yes" : "no"}};
	l_items[2] = {'code' : 'Stages passés', 'url':'./stages.htm?type=archive', "format":{"size":[20, 245], "selected":(a_encours) ? "no" : "yes"}};
	
	return l_items;
}

/**
 * Renvoie un tableau de données représentant la liste des stages.
 * @param	a_encours	(boolean)	true si stages en cours, false si stages archivés
 * @return un tableau d'onglets, un par stage 
 */
AffichageStages.prototype.filtreStages = function(a_encours) {
	var l_items = [];
	l_items[0] = {"size":[30, -1], 
				  "style":{"css":{"OFF":this.cssPrefix + "Off", "OVER":this.cssPrefix + "Over", 
 								  "OFF_SEL":this.cssPrefix + "Sel", "OVER_SEL":this.cssPrefix + "Sel"}}};
	var l_item;
	var l_stage;
	var i = 0; l_nb = STAGES.length;
	var l_index;
	for (i = 0; i < l_nb; i++) {
		l_stage = this.stages[i];
		if (a_encours == l_stage.encours) {
			// on le garde
			l_index = this.prefixName + ':' + i;
			l_items[l_items.length] = {
				'code' : l_stage.court, 'url':"javascript:AffichageStages_selectStage(this, '" + l_index + "');",
				'key' : l_index
			}
		}
	}
	return l_items;
}

/**
 * Appelée pour sélectionner un stage.
 * Sélectionne l'item du menu gauche, définit le titre et la description.
 * @param a_lien	(item gauche)	lien courant
 * @param a_index	(String)		id de l'élément sélectionné
 */
function AffichageStages_selectStage(a_lien, a_index) {
	var l_ids = a_index.split(':');
	// on sélectionne l'item
	window[l_ids[0] + "Ong"].selectItem(a_index);
	
	// on affiche la description
	var l_stage = window[l_ids[0] + "Ctrl"].stages[l_ids[1]];
	xbSetInnerHTML(xbGetElementById("desc_stage"), AffichageStages_writeStage(l_stage));
}

/**
 * Renvoie le code HTML décrivant le stage (sans le titre).
 * @param	a_stage		(Object)	stage à afficher
 * @return le code HTML
 */
function AffichageStages_writeStage(a_stage) {
	var l_buf = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
	
	// titre
	l_buf += '<tr><td colspan="2" height="50" class="titre">' + a_stage.titreLong + '</td></tr>';

	l_buf += '<tr height="100%">';
	// description
	l_buf += '<td width="350" height="100%" valign="top" class="desc">' +  a_stage.desc + '</td>';
	
	// lieu
	l_buf += '<td valign="top">';
	l_buf += '<table width="150" border="0" cellspacing="0" cellpadding="3">';
	l_buf += '<tr><td valign="top" class="lib">Lieu</td></tr>';
	l_buf += '<tr><td valign="top" class="rens">' + a_stage.lieu + '</td></tr>';
	
	// durée / dates
    l_buf += '<tr><td valign="top" class="lib">Durée/dates</td></tr>'
    l_buf += '<tr><td valign="top" class="rens">' + a_stage.duree + '<br/>' + a_stage.dates + '</td></tr>';
    			
    l_buf += '</table></td>';
	
	l_buf += '</tr>';
	l_buf += '</table>';
	
	// on renvoie le tout
	return l_buf;
}


/**
 * Renvoie le code HTML décrivant le stage (sans le titre).
 * @param	a_stage		(Object)	stage à afficher
 * @return le code HTML
 */
function AffichageStages_writeInitInfo(a_encours) {
	var l_buf = '';
	
	if (a_encours == true) {
		// description HTML pour les stages en cours
		l_buf += '<div align="center" class="desc" style="padding-top:30px;">';
		l_buf += 'Pour en savoir plus sur les stages à venir,<br/>';
		l_buf += 'cliquez sur un intitulé à gauche...<br/><br/>';
		l_buf += 'Vous pouvez obtenir des informations<br/>';
		l_buf += 'sur les stages proposés auparavant<br/>';
		l_buf += 'en cliquant sur l\'onglet \"stages passés\".<br/>';
		l_buf += '</div>';
	} else {
		// description HTML pour les stages archivés
		l_buf += '<div align="center" class="desc" style="padding-top:30px;">';
		l_buf += 'Pour en savoir plus sur les stages passés,<br/>';
		l_buf += '(certains sont reconduits d\'années en années)<br/>';
		l_buf += 'cliquez sur un intitulé à gauche...<br/><br/>';
		l_buf += 'Vous pouvez obtenir des informations<br/>';
		l_buf += 'sur les prochains stages programmés<br/>';
		l_buf += 'en cliquant sur l\'onglet \"stages à venir\".<br/>';
		l_buf += '</div>';
	}
	
	// on affiche le tout
	document.write(l_buf);
}

