/**
 * variables globales
 */
var KEYS = [];		// clé des différentes parties
var LABELS = [];	// nom des différentes parties

var SS_RUBS = null;

var menu = null;
var menug = null;

/**
 * types de popup disponibles
 */
var HORIZ		= 'horiz'
var VERT		= 'vert';
var HORIZ_SPEC	= 'horizSpec';
var VERT_SPEC	= 'vertSpec';

/**
 * Affiche le menu transversal
 */
function writeMenuTrans() {
	// on change la css de la tétière
	// on récupère la langue dans l'url de la page
	var l_path = window.location.pathname; 
	var l_pos = l_path.indexOf('site_');
	var l_lang = l_path.substring(l_pos + 5, l_pos + 7);
	xbGetElementById('tet').className = 'tetiere_' + l_lang;
	
	// on affiche le menu trans
	var l_buf = '<div align="left"><table border="0" cellspacing="0" cellpadding="0"><tr>';
	l_buf += '<td class="trans">&nbsp;</td>';
	
	// on passe en revue tous les items (à partir de 1, 0 étant le format éventuel)
	var i, l_nb = TRANS_ITEMS.length;
	var l_item;
	var l_target;
	for (i = 1; i < l_nb; i++) {
		l_item = TRANS_ITEMS[i];
		l_buf += '<td class="trans"><a href="' + l_item.url + '"';
		if (l_item.target) {
			l_buf += ' target="' + l_item.target + '"';
		}
		l_buf += '>' + l_item.code + '</a></td>';
	}
	l_buf += '<td><img src="../_imgs/coinMenu_trans.gif" width="9" height="15"></td>';
	l_buf += '</tr></table></div>';

	// on écrit
	document.write(l_buf);
}

/**
 * Affiche le texte lié à l'icône du menu transversal
 * @params	a_index		(int)	index de l'item dans le menu
 *								(si = 0, n'affiche rien)
 */
function writeit(a_index) {
	var l_cel = xbGetElementById('trans_comment');
	
	xbSetInnerHTML(l_cel, (a_index == 0) ? '' : TRANS_ITEMS[a_index].title);
}

/**
 * Renseigne toutes les variables globales à partir des données fournies.
 * @param	a_rub		(String)	nom de la rubrique
 * @param	a_ssRub		(String)	nom de la sous-rubrique
 * @param	a_onglet	(String)	nom de l'onglet
 */
function setInfos(a_rub, a_ssRub, a_onglet) {
	// les clés sont identiques aux labels dans ce cas
	KEYS[0]	= a_rub;
	KEYS[1]	= a_ssRub;

	LABELS[0]	= a_rub;
	LABELS[1]	= a_ssRub;
	
	SS_RUBS = RUBRIQUES_ITEMS[KEYS[0]];
}

/**
 * Renseigne toutes les variables globales à partir de la clé fournie (ex : '010101').
 * Si elle est nulle, utilise directement le nom de la page (ex : '.../010101.htm').
 * @param  a_key	(String)	clé de la page (ex : '010101');
 */
function extractInfos(a_key) {
	if (a_key) {
		// clé définie -> on ne fait rien de plus
	} else {
		// pas de clé -> on utilise le nom du fichier
		var l_loc = window.location.pathname;
		var l_end = l_loc.lastIndexOf('.');
		var l_pos = l_end;
		// on parcours 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) != '\\'));
		a_key = l_loc.substring(l_pos + 1, l_end);
	}

	// création des clés
	KEYS[0] = a_key.substr(0, 2);		// rubrique
	KEYS[1] = a_key.substr(0, 4);		// sous-rubrique
	
	// récupération des 'labels'
	// labels de la rubrique
	SS_RUBS = getSsRubriques(KEYS[0]);
	if (SS_RUBS == null) {
		// on arrête là
		return null;
	}
	// label de la sous-rubrique
	var l_item;
	for (var l_sub = 1; l_sub < SS_RUBS.length; l_sub++) {
		l_item = SS_RUBS[l_sub];
		if (l_item.key == KEYS[1]) {
			// c'est le bon -> on le conserve
			LABELS[1] = l_item.code;
			break;
		}
	}
}

/**
 * Renvoie le code complet de définition d'un menu gauche (cf 'Rubrique')
 * à partir de l'item de menu principal.
 * @param a_rubriqueKey		(String)	clé de la rubrique (ex : '01')
 */
function getSsRubriques(a_rubriqueKey) {
	var l_rub = []
	// champ format : identique pour toutes les rubriques
	l_rub[0] = rubFormat;
			    
	// on récupère le bon sous-menu
	var l_item;
	var l_found = false;
	for (var l_sub = 1; l_sub < MENU_ITEMS.length; l_sub++) {
		l_item = MENU_ITEMS[l_sub];
		if (l_item.key == a_rubriqueKey) {
			// c'est le bon -> on le conserve
			LABELS[0] = l_item.code;
			l_found = true;
			break;
		}
	}
	if (l_found == false) {
		// pas d'item -> on arrête là
		return;
	}
	
	var l_subMenu = l_item.sub;
	var l_subItem;
	for (var i = 1; i < l_subMenu.length; i++) {
		l_subItem = l_subMenu[i];
		// on regarde s'il s'agit d'un séparateur
		if (und(l_subItem.code)) {
			// oui -> on définit un séparateur
			l_rub[i] = leftItemSep;
		} else {
			// on clone l'item
			l_rub[i] = {"code": l_subItem.code, "url": l_subItem.url, "key": l_subItem.key, "target": l_subItem.target};
		}
	} 

	return l_rub;
}

/**
 * Ecrit le titre de la rubrique.
 */
function writeRub() {
	var l_td = xbGetElementById("rubLib");
	l_td.className = 'titreRub';
	xbSetInnerHTML(l_td, LABELS[0].replace(/ /g, "&nbsp;"));
}

/**
 * Ecrit le titre de la sous-rubrique, en spécifiant la classe.
 * Modifie également la classe du corner droit.
 * @param a_cssName		(String)	css à utiliser (si non indiquée, 'couleurSsRub' + KEYS[0])
 */
function writeSubRub(a_cssName) {
	// définition de la classe
	if (und(a_cssName)) {
		a_cssName = 'titreSsRub' + KEYS[0];
	}
	
	// libellé
	var l_td = xbGetElementById("ssRubLib");
	l_td.className = a_cssName;
	l_td.style.paddingLeft = 10;
	if (!und(LABELS[1])) {
		xbSetInnerHTML(l_td, LABELS[1].replace(/ /g, "&nbsp;"));
	}
	
	// coin droit
	xbGetElementById("ssRubCorn").className = a_cssName;
}

/**
 * Initialise la page : tous les menus présents sur la page, ainsi que le titre.
 */
function init() {
	initPage();
}

/**
 * Initialise la page : tous les menus présents sur la page, ainsi que le titre.
 */
function initPage() {
	// menu principal
	menu.init();
	menu.show();

	// on modifie le titre du document
	var l_titre = LABELS[1];
	if (!und(l_titre)) {
		window.document.title = (LABELS[2]) ? l_titre + ' : ' + LABELS[2] : l_titre;
	}
}

function openBlankPage(a_url) {
	var theWindow = window.open(a_url, "popup"); 

	if (theWindow) {
		// on donne le focus à la nouvelle fenêtre
		theWindow.focus();
	} else {
		alert("Attention, votre navigateur bloque l'ouverture de fenêtres pop-up");
	}
	return theWindow;
	
}
