/*
 * MAGELLAN : Site Internet Uni-Est le PLIE
 *
 * Fichier : plieuniest.js
 * Description : Menu déroulant de navigation JavaScript
 *               Fonctions JavaScript génériques
 *
 */





/*
 * Menu déroulant______________________________________________________________
 */

// structure du tableau de données
/*
tableau[]			= n° du menu
tableau[]['id']			= id du layer
tableau[]['label']			= libellé du menu
tableau[]['sous_menu']			= tableau des sous-menu
tableau[]['sous_menu'][]			= n° du sous-menu
tableau[]['sous_menu'][]['nom']		= Libellé du sous-menu
tableau[]['sous_menu'][]['lien']		= lien html
tableau[]['sous_menu'][]['statut']	= informations à afficher en barre de statut
tableau[]['lien']			= lien html
tableau[]['icone']			= icone
tableau[]['info_statut']			= informations à afficher en barre de statut
tableau[]['largeur_px']			= largeur du menu en px
*/

var tableau_nb_element = tableau.length;



// couleurs
var couleur_fond_temp;
var couleur_off = '#ECECEC';
var couleur_on = '#A5C9B9';
var couleur_sel = '#F9DA8C';
var couleur_cur = '#F9DA8C';
var couleur_titre_off = '#76BE9D';



// Elément de titre survolé
function menu_titre_on(f_this, element) {
	
	// sauvegarde de la couleur du fond survolée pour restitution (au onmouseout)
	couleur_fond_temp = f_this.style.background;

	// changement de la couleur de fond, couleur différente si sous menu disponibles
	if (tableau[element]['sous_menu']) {
		change_couleur_fond(f_this.id, couleur_on);
	}
	else {
		change_couleur_fond(f_this.id, couleur_sel);
	}
	
	// alert(f_this.style.background);

	// fermeture de tous les sous menus
	fermer_tout_menu_detail();

	// ouverture du sous menu
	if (tableau[element]['sous_menu']) {
		f_id = f_this.id+'_detail';
		change_etat_layer(f_id, 'on');
	}
	
	// informations en barre de statut
	if (tableau[element]['info_statut']) {
		window_status(tableau[element]['info_statut']);
	}
	else {
		window_status(tableau[element]['label']);
	}

	change_zindex ('layer_menu', 1);
	change_width ('masque_menu', '100%');
	
}

// élément de titre quitté
function menu_titre_off(f_this) {

	change_couleur_fond(f_this.id, couleur_fond_temp);
	
	//window.status='Uni-Est le PLIE';
	window_status();

}

// élément de détail survolé
function menu_detail_on(f_this, statut) {

	change_couleur_fond(f_this.id, couleur_sel);
	window_status(statut);
	//window.status=statut;
	
}

// élément de détail quitté
function menu_detail_off(f_this) {
	
	change_couleur_fond(f_this.id, couleur_off);
	window_status();
	//window.status='Uni-Est le PLIE';
	// setTimeout(fermer_tout_menu_detail, 5000);
	
}




// fonction de changement de la couleur de fond d'un layer, suivant le type de navigateur
function change_couleur_fond ( f_id, couleur ) {

	// < N4 & IE4
	if (document.layers) {
		document[f_id].style.background = couleur;
	}
	// > IE5
	else if (document.all) {
		document.all[f_id].style.background = couleur;
	}
	// > N6
	else if (document.getElementById) {
		document.getElementById(f_id).style.background = couleur;
	}

}

// fonction de changement de visibilité d'un layer, suivant le type de navigateur
function change_etat_layer ( f_id, etat ) {
		
	// < N4 & IE4
	if (document.layers) {
		if (etat == 'off') {
			etat = 'hide';
		}
		else if (etat == 'on') {
			etat = 'show';
		}
		document[f_id].visibility = etat;
	}
	// > IE5
	else if (document.all) {
		if (etat == 'off') {
			etat = 'hidden';
		}
		else if (etat == 'on') {
			etat = 'visible';
		}
		document.all[f_id].style.visibility = etat;
	}
	// > N6
	else if (document.getElementById) {
		if (etat == 'off') {
			etat = 'hidden';
		}
		else if (etat == 'on') {
			etat = 'visible';
		}
		document.getElementById(f_id).style.visibility = etat;
	}

}

// fonction de changement de la profondeur du calque
function change_zindex ( f_id, valeur ) {

	// < N4 & IE4
	if (document.layers) {
		document[f_id].style.zIndex = valeur;
	}
	// > IE5
	else if (document.all) {
		document.all[f_id].style.zIndex = valeur;
	}
	// > N6
	else if (document.getElementById) {
		document.getElementById(f_id).style.zIndex = valeur;
	}

}

// fonction de changement de la profondeur du calque
function change_width ( f_id, valeur ) {

	// < N4 & IE4
	if (document.layers) {
		document[f_id].style.width = valeur;
	}
	// > IE5
	else if (document.all) {
		document.all[f_id].style.width = valeur;
	}
	// > N6
	else if (document.getElementById) {
		document.getElementById(f_id).style.width = valeur;
	}

}

// fonction fermant tous les sous menus
function fermer_tout_menu_detail() {
	for (var i = 0; i < tableau_nb_element; i++) {
		if (tableau[i]['sous_menu']) {
			change_etat_layer(tableau[i]['id']+'_detail', 'off');
		}
	}
}

// construction des titres du menu
function construction_menu( menu_actif ) {
	
	var leftpx = 0;
	
	// parcours des titres du menu
	for (var i = 0; i < tableau_nb_element; i++) {
		
		if (menu_actif == tableau[i]['id']) {
			bg_color = couleur_cur;
		}
		else {
			bg_color = couleur_titre_off;
		}

		
		
		// affichage des colonne du tableau, avec ou sans liens hyper-text
		if (tableau[i]['lien']) {
			document.write('<div id="'+tableau[i]['id']+'" class="menu_titre" style="left: '+leftpx+'px; top: 0px; width: 110px; cursor: pointer; background:'+bg_color+';" onmouseover="menu_titre_on(this, '+i+');" onmouseout="menu_titre_off(this);" onclick="document.location.href=\''+tableau[i]['lien']+'\';">');
		}
		else {
			document.write('<div id="'+tableau[i]['id']+'" class="menu_titre" style="left: '+leftpx+'px; top: 0px; width: 110px; cursor: progress; background:'+bg_color+';" onmouseover="menu_titre_on(this, '+i+');" onmouseout="menu_titre_off(this);">');
		}
		document.write('<table width=100% cellspacing=0 cellpadding=0><tr><td style="font-weight: normal; color: #002414;">');
		document.write(tableau[i]['label']);
		document.write('</td><td width=2><img src=/images/menu/pixel_noir.gif width=1 height=26></td></tr></table>');
		document.write('</div>\n');
		
		leftpx += 110;
		
	}
}

// construction des sous-titres du menu (détail)
function construction_menu_detail() {
	
	var leftpx = 0;
	
	// parcours des titres du menu
	for (var i = 0; i < tableau_nb_element; i++) {
	
		// création d'un layer masqué contenant les détail de chaque menu
		if ( tableau[i]['sous_menu']) {
			
			widthpx = tableau[i]['largeur_px'];
		
			// layer générale du sous-menu, contenant toutes les entrées
			document.write('<div id="'+tableau[i]['id']+'_detail" class="menu_detail" style="width: '+widthpx+'px; left: '+leftpx+'px; top: 27px;">\n');
			document.write('<table width="100%" cellspacing="0" cellpadding="0" border="0">\n');
			
			// parcours de l'ensembles des entrées
			var tableau_detail_nb_element = tableau[i]['sous_menu'].length;
			for (var j = 0; j < tableau_detail_nb_element; j++) {
				document.write('<tr><td><div id="'+tableau[i]['id']+'_detail'+j+'" class="menu_detail_iter" onmouseover="menu_detail_on(this, \''+tableau[i]['sous_menu'][j]['statut']+'\');" onmouseout="menu_detail_off(this);" onclick="document.location.href=\''+tableau[i]['sous_menu'][j]['lien']+'\';">'+tableau[i]['sous_menu'][j]['nom']);
				document.write('</div></td></tr>');
				document.write('<tr><td><img src=/images/menu/pixel_noir.gif width=100% height=1></td></tr>');
			}
			
			document.write('</table></div>\n');
			
		}
		
		leftpx += 110;
		
	}
}






// Affichage en barre de statut
function window_status(label) {
	if (label) {
		label = ' - '+label;
	}
	else {
		label = '';
	}
	window.status = 'UNI-EST le PLIE'+label;
}





// Contrôle des formulaires

//function to validate by length
function ValidLength(item, len) {
	return (item.length >= len);
}
// display an error alert
function error(elem, text) {
// abort if we already found an error
	if (errfound) return;
	window.alert(text);
	elem.select();
	errfound = true;
}





// Popup
var window_name = 1;
function ouvre_noscroll(adr,width,height) {
	if (!width) {
		width = 50;
	}
	if (!height) {
		height = 50;
	}
	window_name ++;
	var adr;
	var width;
	var height;
	var param="width="+width+",height="+height+",toolbar=yes,scrollbars=no,titlebar=no,status=yes";
	window.open(adr,window_name,param);
}


