/*!
 *
 */

var language = "en";								/* fr=français (défaut), en=anglais */
/* var currentPageIdx = 0; 					index de la page actuellement affichée dans la partie principale  (en référence aux tableaux menuLinksId et menuLinksURL) */

var _upddd = "21";
var _updmm = "01";
var _updyyyy = "2010";
var _updfr = _upddd+"/"+_updmm+"/"+_updyyyy;
var _updus = _updmm+"/"+_upddd+"/"+_updyyyy;

var lastLoadedUrl = "recherche.html";   /* dernière page chargée (i.e. page actuellement affichée) */
var titlePattern = new RegExp("h1>(.*)/h1", "gi");
var filePattern = new RegExp("page=.*", "gi");
var title = "";
var menuLinksId = new Array();			/* ["lnkHome", "lnkRech", ...] */
var menuLinksURL = new Array();			/* ["accueil.html", "recherche.html", ...] */
var menuHier = new Array();					/* [-1, -1, 1, 1] : -1 = élément principal, [0..x] = élément secondaire rattaché à l'élément principal ayant cet index */

/*
 * Création des tableaux des ID et des destinations des liens
 */
function initLinksTab() {
	//var menuLinksComm = document.getElementById("links").getElementsByTagName("a");
	var menuLinksComm = $("#links ~ a");
	var lastMainItemIdx = 0;
	for (var i=0; i<menuLinksComm.length; i++) {
		menuLinksId[i] = menuLinksComm[i].id;
		menuLinksURL[i] = ""+(""+menuLinksComm[i]).match(filePattern);
		menuLinksURL[i] = menuLinksURL[i].substr(5,menuLinksURL[i].length-5) + ".html";
		// Création de la hiérarchie des liens du menu
		if (menuLinksId[i].substr(0,3) == "sub") {
			menuHier[i] = lastMainItemIdx;
		}
		else {
			lastMainItemIdx = i;
			menuHier[i] = -1;
		}
	}
}

/*
 * Initialisation des behaviors des liens pour fonctionner en mode AJAX, si JavaScript est supporté.
 * Dans le cas contraire, la page fonctionne toujours : c'est du "Degradable AJAX".
 */
function initLinksBehavior() {
	for (var i=0; i<menuLinksURL.length; i++) {
		document.getElementById(menuLinksId[i]).onclick = function() {loadPage(menuLinksURL[i]);};
	}
	document.getElementById("lnkFr").onclick = function() {changeLanguage('fr');};
	document.getElementById("lnkEn").onclick = function() {changeLanguage('en');};
}

/*
 * Apparition du contenu de la page
 */
function loadPageContent() {
	//$('#entete').fadeIn(500);
	//$('#contenu').fadeIn(600);
	//$('#piedpage').fadeIn(700);
	$("#loading").fadeIn(1000);		// apparition progressive du message de chargement
	$("#nojs").fadeIn(5000);		// après un certain temps, on suppose que JavaScript n'est pas activé
	// document.getElementById('frameMain').style.visibility = "hidden";
	//$('#frameMain').css("visibility","hidden");
}

/*
 * Détection de la langue du navigateur de l'utilisateur et chargement de la page appropriée
 */
function detectLanguage() {
	if (typeof(navigator.language) != "undefined") language = navigator.language
	else if (typeof(navigator.userLanguage) != "undefined") language = navigator.userLanguage
	else if (typeof(navigator.browserLanguage) != "undefined") language = navigator.browserLanguage
	else language = "en";
	if (language.substring(0,2) == "fr") language = "fr"
	else language = "en";
	changeLanguage(language);
}


/*
 * Exécuté quand le document est complètement chargé
 */
$(document).ready(function() {
	
});

/*
 * Changement de langue du menu et de la page en cours
 */
function changeLanguage(lang) {
	language = lang;
	
	// Pour chaque élément du tableau, on donne la valeur associée à la langue choisie
	$.getJSON("./"+lang+"/main.json", function(data) {	// on choisit le fichier correspondant à la bonne langue
		$.each(data, function (i,val) {			// les opérations doivent être faites DANS cette fonction : on ne peut pas déporter, car le lien est rompu après
			$("#" + i).html(val);				// l'élément d'ID i prend pour valeur de innerHTML val
		});
	});
	
	loadPage(lastLoadedUrl);
}

/*
 * Mise en valeur du lien cliqué, déploiement du menu, récupération du code de la page à charger, actualisation du titre
 */
function loadPage(url) {
	lastLoadedUrl = url;
	for (var i=0; i<menuLinksURL.length; i++) {
		if (menuLinksURL[i] == url) {
			// /!\ : en JS, les traits d'union des CSS sont remplacés par une mise en majuscule : font-weight --> fontWeight
			//document.getElementById(menuLinksId[i]).style.fontSize = "100%";
			// déploiement des sous-éléments s'ils existent
			for (var j=i+1; j<menuLinksURL.length; j++) {
				if (menuHier[j] == i) {
					$("#"+menuLinksId[j].css({"font-size":"66%", "visibility":"visible"}));
				}
				else {
					i = j;
					break;
				}
			}
		}
		else {
			if (menuHier[i] != -1) {
				$("#"+menuLinksId[j].css({"font-size":"0.1%", "visibility":"hidden"}));
			}
		}
	}	
	
	var fullurl = "./" + language + "/" + url;
	var code = getFile(fullurl);
	code = code.replace(/\#\#\#DATEUS\#\#\#/,document.lastModified);
	$("#page").html(code);	//document.getElementById('page').innerHTML = code;
	title = "" + code.match(titlePattern);
	title = title.substr(3,(title.length-7));
	//document.getElementById('entete').style.visibility = "visible";
	// La fonction ci-dessous, plus propre, ne fonctionne qu'une fois sur 2...
	//title = titlePattern.exec(code)[1];
	//document.getElementById('entete').innerHTML = title;
}

/*
 * Récupération du contenu d'un fichier
 */
function getFile(fichier) {	
	if(window.XMLHttpRequest) // Firefox
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
}

/*
$.ajax({
type: "GET",
url: my_url,
async: false
}).getAllResponseHeaders() ;
*/
		/*function lastMod(lang) {
			var derniereModif=document.lastModified;
			var dateModif = new Date(derniereModif);
			var jour = dateModif.getDate();
			var mois=dateModif.getMonth();
			var annee=dateModif.getYear();
			var heures=dateModif.getHours();
			var minutes=dateModif.getMinutes();
			var lastMod = "...";
  
			if (lang==0) {
			  lastMod = "Dernière modification le " + jour+"/"+mois+"/"+annee+" à "+heures+":"+minutes;
			}
			else if (lang==1) {
			  lastMod = "Last modified on " + mois+"/"+jour+"/"+annee+" at "+heures+":"+minutes;
			}
			
			document.getElementById('piedpage').innerHTML = "<p>" + lastMod + "</p>";
		}*/
		
		//]]>
