var couleurs = Array("lightblue", "orange", "green", "red", "darkblue", "grey", "purple");
var couleursHex = Array("#63A1C1", "#FF9600", "#95AE3E", "#920404", "#0D5486", "#777777", "#A46A9F");

var pageDebut;
var pageCourante;
var contenuPage;

var menuPrincipal;
var urlOngletPrincipal;
var numeroMenu;

var sousMenu;
var urlSousOnglet;

var rubriques;

var historique;
var historiquePos;

var ecoles;

var tmp;

//Menu principal
function ChargerMenuPrincipal(){
	envoyerRequete("ajax.php?action=get_mainmenu", null, true, MenuPrincipalCharge);
}

function MenuPrincipalCharge(xml){
	
	try{
		menuPrincipal = Array();
		
		var onglets = xml.getElementsByTagName("onglet");
	
		for(var i = 0; i < onglets.length; i++){
			var onglet = onglets[i];
			
			menuPrincipal[i] = Array();
			menuPrincipal[i]["nom"] = onglet.getElementsByTagName("nom")[0].firstChild.data;
			menuPrincipal[i]["url"] = onglet.getElementsByTagName("url")[0].firstChild.data;
		}
	}
	catch(Exception){
	}
	finally{
		AfficherMenuPrincipal();
	}
}

function AfficherMenuPrincipal(){
	var affichage = "<table height=\"24\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
	
	for(var i = 0; i < menuPrincipal.length; i++){
		if(i > 0) affichage += "<td width=\"2\"><img src=\"public/images/spacer.gif\" width=\"2\" height=\"2\" /></td>";
		
		if(urlOngletPrincipal == menuPrincipal[i]["url"]){
			numeroMenu = i;
		}
		
		affichage += "<td width=\"94\" background=\"public/images/bouton_" + couleurs[i % couleurs.length] + "_" + ((urlOngletPrincipal == menuPrincipal[i]["url"]) ? "actif" : "inactif") + ".gif\" class=\"menu\">";
		affichage += "<div align=\"center\">";
		affichage += "<a href=\"javascript:ChangerOngletPrincipal('" + menuPrincipal[i]["url"] + "')\">" + menuPrincipal[i]["nom"] + "</a>";
		affichage += "</div>";
		affichage += "</td>";
	}
	
	document.getElementById("menuprincipal").innerHTML = affichage;
	
	ChangerCouleurRubriques();
	
	ChargerSousMenu();
}

function ChangerOngletPrincipal(nouvelOnglet){
	AjouterAHistorique();
	
	urlOngletPrincipal = nouvelOnglet;
	urlSousOnglet = "";
	pageCourante = nouvelOnglet;
	
	AfficherMenuPrincipal();
}

//Sous-menu
function ChargerSousMenu(){
	envoyerRequete("ajax.php?action=get_submenu&menuprincipal=" + urlOngletPrincipal, null, true, SousMenuCharge);
}

function SousMenuCharge(xml){
	
	try{
		sousMenu = Array();
		
		var onglets = xml.getElementsByTagName("onglet");
	
		for(var i = 0; i < onglets.length; i++){
			var onglet = onglets[i];
			
			sousMenu[i] = Array();
			sousMenu[i]["nom"] = onglet.getElementsByTagName("nom")[0].firstChild.data;
			sousMenu[i]["url"] = onglet.getElementsByTagName("url")[0].firstChild.data;
		}
	}
	catch(Exception){
	}
	finally{
		AfficherSousMenu();
	}
}

function AfficherSousMenu(){
	document.getElementById("sousmenu").style.background = couleursHex[numeroMenu % couleurs.length];
	
	var affichage = "<table width=\"700\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"menu2\"><tr>";
	affichage += "<td class=\"menu2\"><div align=\"center\"><font color=\"#FFFFFF\">";
	
	for(var i = 0; i < sousMenu.length; i++){
		if(i > 0) affichage += "<img src=\"public/images/sousMenu_separateur.gif\" alt=\"sep\" width=\"25\" height=\"6\" />";
		
		affichage += "<a href=\"javascript:ChangerSousMenu('" + sousMenu[i]["url"] + "')\" style=\"" + ((sousMenu[i]["url"] == urlSousOnglet) ? "text-decoration:underline" : "") + "\">" + sousMenu[i]["nom"] + "</a>";
	}
	
	affichage += "</font></div></td>";
	affichage += "</tr></table>";
	
	document.getElementById("sousmenu").innerHTML = affichage;
	
	ChargerRubriques();
}

function ChangerSousMenu(nouvelOnglet){
	AjouterAHistorique();
	
	urlSousOnglet = nouvelOnglet;
	pageCourante = nouvelOnglet;
	
	AfficherSousMenu();
}

//Rubriques
function ChangerCouleurRubriques(){
	try{
		var headers = document.getElementsByName("enteterubrique");
		
		for(var i = 0; i < headers.length; i++){
			headers[i].style.background = "url(public/images/rubrique_" + couleurs[numeroMenu % couleurs.length] + ".gif)";
					}
	}
	catch(Exception){
	}
}

function ChargerRubriques(){
	envoyerRequete("ajax.php?action=get_rubriques&menuprincipal=" + urlOngletPrincipal + "&sousmenu=" + urlSousOnglet, null, true, RubriquesChargees);
}

function RubriquesChargees(xml){
	try{
		rubriques = Array();
		
		rubs = xml.getElementsByTagName("rubrique");
		
		for(var i = 0; i < rubs.length; i++){
			var rubrique = rubs[i];
			
			rubriques[i] = Array();
			rubriques[i]["nom"] = rubrique.getElementsByTagName("nom")[0].firstChild.data;
			
			try{
				var liens = rubrique.getElementsByTagName("lien");
				
				rubriques[i]["liens"] = Array();
				
				for(var j = 0; j < liens.length; j++){
					var lien = liens[j];
					rubriques[i]["liens"][j] = Array();
					rubriques[i]["liens"][j]["nom"] = lien.getElementsByTagName("nom")[0].firstChild.data;
					rubriques[i]["liens"][j]["url"] = lien.getElementsByTagName("url")[0].firstChild.data;
					rubriques[i]["liens"][j]["post"] = lien.getElementsByTagName("post")[0].firstChild.data;
				}
			}
			catch(Exception){
			}
		}
	}
	catch(Exception){
	}
	finally{
		AfficherRubriques();
	}
}

function AfficherRubriques(){
	var affichage = "";
	
	for(var i = 0; i < rubriques.length; i++){
		affichage += "<br/><table width=\"170\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#E4E5DE\">";
		affichage += "<tr>";
		affichage += "<td height=\"21\" class=\"rubrique\" name=\"enteterubrique\" id=\"enteterubrique\">";
		affichage += "<div align=\"center\">" + rubriques[i]["nom"] + "</div>";
		affichage += "</td>";
		affichage += "</tr>";
		
		for(var j = 0; j < rubriques[i]["liens"].length; j++){
			affichage += "<tr>";
			affichage += "<td height=\"20\" class=\"menu3\">";
			affichage += "<img src=\"public/images/menu_fleche.gif\" alt=\"puce\" width=\"29\" height=\"6\" /><a href=\"javascript:ChangerPage('" + rubriques[i]["liens"][j]["url"] + "'" + (rubriques[i]["liens"][j]["post"] ? (", '" + rubriques[i]["liens"][j]["post"] + "'") : "") + ")\">" + rubriques[i]["liens"][j]["nom"] + "</a>";
			affichage += "</td>";
			affichage += "</tr>";
		}
		
		affichage += "</table>";
		affichage += "<img src=\"public/images/spacer.gif\" width=\"2\" height=\"2\" />";
	}
	
	document.getElementById("rubriques").innerHTML = affichage;
	
	ChangerCouleurRubriques();
	ChargerPage(pageCourante);
}

//News
function ChargerNews(){
	Chargement("liste_news");
	envoyerRequete("ajax.php?action=get_news", "type=last", true, NewsChargees);
}

function NewsChargees(xml){
	try{
		var affichage = "";
		
		var newsList = xml.getElementsByTagName("news");
		
		for(var i = 0; i < newsList.length; i++){
			var news = newsList[i];
			
			affichage += "<a href=\"javascript:ChangerPage('news_afficher', 'id=" + news.getElementsByTagName("id")[0].firstChild.data + "')\">" + news.getElementsByTagName("sujet")[0].firstChild.data + "</a><br/>";
		}
		
		document.getElementById("liste_news").innerHTML = affichage;
	}
	catch(Exception){
	}
}

//Pages
function ChargerPage(url, post){
	
	if(contenuPage){
		PageChargee(contenuPage);
		contenuPage = null;
	}
	else{
		if(url.indexOf("://") > 0) window.open(url);
		else{
			Chargement("lipsum");
			envoyerRequete("ajax.php?action=get_page&page=" + escape(url), post, false, PageChargee);
		}
	}
}

function PageChargee(texte){
	document.getElementById("lipsum").innerHTML = texte;
}

function ChangerPage(url, post){
	AjouterAHistorique();
	
	ChargerPage(url, post);
}

//Partie membre
function ChargerInfosMembre(){
	envoyerRequete("ajax.php?action=get_member_content", null, false, InfosMembreChargees);
}

function InfosMembreChargees(texte){
	document.getElementById("rubriquemembres").innerHTML = texte;
}

//Connexion
function Login(form){
	document.getElementById("members_result").innerHTML = "Connexion...";
	document.getElementById("members_result").style.color = "blue";
	document.getElementById("members_result").style.display = "block";
	envoyerRequete("ajax.php?action=login", FormPost(form), true, ResultatLogin);
}

function ResultatLogin(xml){
	if(xml.getElementsByTagName("result")[0].firstChild.data == 1){
		document.getElementById("members_result").style.display = "none";
		Reinitialiser(pageDebut);
	}
	else{
		document.getElementById("members_result").innerHTML = "Nom ou pass incorrect !";
		document.getElementById("members_result").style.color = "red";
		document.getElementById("members_result").style.display = "block";
	}
}

function Logout(){
	InitHistorique();
	
	document.getElementById("members_result").innerHTML = "D&eacute;connexion...";
	document.getElementById("members_result").style.color = "blue";
	document.getElementById("members_result").style.display = "block";
	envoyerRequete("ajax.php?action=logout", null, true, ResultatLogout);
}

function ResultatLogout(xml){
	if(xml.getElementsByTagName("result")[0].firstChild.data == 1){
		document.getElementById("members_result").style.display = "none";
		Reinitialiser(pageDebut);
	}
	else{
		document.getElementById("members_result").innerHTML = "D&eacute;connexion impossible !";
		document.getElementById("members_result").style.color = "red";
		document.getElementById("members_result").style.display = "block";
	}
}

//Formulaires
function PostForm(url, form){
	ChargerPage(url, FormPost(form), false, PageChargee);
}

function FormPost(form){
	var post = "";
	
	for(var i = 0; i < form.length; i++){
		if(i > 0) post += "&";
		post += escape(form[i].name) + "=";
		if(form[i].type == "checkbox"){
			post += form[i].checked ? 1 : 0;
		}
		else post += escape(form[i].value);
	}

	return post;
}

//Vérification upload
function PostFormSiFichierCharge(url, form){
	if(form.file.value) PostForm(url, form);
	else alert("Selectionnez un fichier a envoyer !");
}

//Historique
function AfficherBoutonRetour(){
	document.getElementById("retour").style.display = (historiquePos >= 1) ? "inline" : "none";
}

function AjouterAHistorique(){
	if(document.getElementById("lipsum").innerHTML.length > 0){
		historique[historiquePos] = Array();
		historique[historiquePos]["ongletPrincipal"] = urlOngletPrincipal;
		historique[historiquePos]["sousOnglet"] = urlSousOnglet;
		historique[historiquePos]["contenu"] = document.getElementById("lipsum").innerHTML;
		historiquePos++;
	
		AfficherBoutonRetour();
	}
}

function InitHistorique(){
	historique = Array();
	historiquePos = 0;
	AfficherBoutonRetour();
}

function Retour(){
	if(historiquePos < 1) return;
	historiquePos--;
	
	urlOngletPrincipal = historique[historiquePos]["ongletPrincipal"];
	urlSousOnglet = historique[historiquePos]["sousOnglet"];
	contenuPage = historique[historiquePos]["contenu"];
	
	AfficherBoutonRetour();
	
	AfficherMenuPrincipal();
	
}

//Inscription
function AfficherClasses(id){
	var classesListe = Array();
	classesListe[0] = Array("CM2", "CM1", "CE2", "CE1", "CP", "GS", "MS", "PS"); //Maternelle, Primaire
	classesListe[1] = Array(3, 4, 5, 6); //Collège
	
	var ecole = document.getElementById("ecole[" + id + "]").value;
	
	var classes;
	if(ecole.indexOf("ecole_") == 0) classes = classesListe[0];
	else classes = classesListe[1];
	
	var affichage = "<select name=\"classe[" + id + "]\">";
	
	for(var i = 0; i < classes.length; i++){
		affichage += "<option value=\"" + classes[i] + "\">" + classes[i] + (classes[i] > 0 ? "&egrave;me" : "") + "</option>";
	}
	
	affichage += "</select>";
	
	document.getElementById("classe[" + id + "]").innerHTML = affichage;
}

function AfficherEcoles(enfants){
	var nb = enfants.value;
	
	if(!(nb > 0)) enfants.value = "";
	
	var affichage = "<table border=\"0\">";
	
	for(var i = 0; i < nb; i++){
		affichage += "<tr><th>Enf " + (i + 1) + " :</th><td>";
		affichage += "<select name=\"ecole[" + i + "]\" id=\"ecole[" + i + "]\" onchange=\"AfficherClasses(" + i + ")\">";
		for(var j = 0; j < ecoles.length; j++){
			affichage += "<option value=\"" + ecoles[j]["url"] + "\">" + ecoles[j]["nom"] + "</option>";
		}
		affichage += "</select>";
		affichage += "</td><td id=\"classe[" + i + "]\" name=\"classe[" + i + "]\">";
		affichage += "</td></tr>";
	}
	
	affichage += "</table>";
	
	document.getElementById("ecoles").innerHTML = affichage;
	
	for(var i = 0; i < nb; i++) AfficherClasses(i);
}

function ChargerEcoles(){
	envoyerRequete("ajax.php?action=get_submenu&menuprincipal=ecoles", null, true, EcolesChargees);
}

function EcolesChargees(xml){
	try{
		ecoles = Array();
		
		var onglets = xml.getElementsByTagName("onglet");
	
		for(var i = 0; i < onglets.length; i++){
			var onglet = onglets[i];
			
			ecoles[i] = Array();
			ecoles[i]["nom"] = onglet.getElementsByTagName("nom")[0].firstChild.data;
			ecoles[i]["url"] = onglet.getElementsByTagName("url")[0].firstChild.data;
		}
	}
	catch(Exception){
	}
}

//Admin
function SupprimerLigne(url, post, id){
	envoyerRequete("ajax.php?action=get_page&page=" + escape(url), post, true, null);
	document.getElementById(id).style.display = "none";
}

function ActiverCompte(box, login, nom, id_infos){
	if(!confirm("Voulez-vous vraiment " + (box.checked ? "activer" : "desactiver") + " le compte de " + nom + "?\n\nUn mail sera envoye a " + nom + " pour l'informer de ce changement !")) return false;
	
	document.getElementById(id_infos).innerHTML = (box.checked ? "Activation" : "D&eacute;sactivation") + " du compte...";
	
	envoyerRequete("ajax.php?action=get_page&page=membre_activer", "login=" + login + "&activer=" + (box.checked ? "1" : "0"), true, CompteActive);
	
	tmp = id_infos;
	
	return true;
}

function CompteActive(xml){
	var result_infos = document.getElementById(tmp);
	
	if(xml.getElementsByTagName("activation")[0].firstChild.data == 1){
		if(xml.getElementsByTagName("resultat")[0].firstChild.data == 1) result_infos.innerHTML = "<span class=\"succes\">Compte activ&eacute; !</span>";
		else result_infos.innerHTML = "<span class=\"erreur\">Erreur lors de l\'activation du compte !</span>";
	}
	else{
		if(xml.getElementsByTagName("resultat")[0].firstChild.data == 1) result_infos.innerHTML = "<span class=\"succes\">Compte d&eacute;sactiv&eacute; !</span>";
		else result_infos.innerHTML = "<span class=\"erreur\">Erreur lors de la d&eacute;sactivation du compte !</span>";
	}
}

function ChangerNiveau(sel, login, nom, id_infos){
	if(!confirm("Voulez-vous changer le type de membre pour " + nom + " ?")) return false;
	
	document.getElementById(id_infos).innerHTML = "Modification du type de compte...";
	
	envoyerRequete("ajax.php?action=get_page&page=membre_niveau", "login=" + login + "&niveau=" + sel.value, true, NiveauChange);
	
	tmp = id_infos;
	
	return true;
}

function NiveauChange(xml){
	var result_infos = document.getElementById(tmp);
	
	if(xml.getElementsByTagName("niveau")[0].firstChild.data == 1) result_infos.innerHTML = "<span class=\"succes\">Type de compte chang&eacute; !</span>";
	else result_infos.innerHTML = "<span class=\"erreur\">Erreur lors du changement du type de compte !</span>";
}

//Autres
function AllerA(nouvelleUrlOngletPrincipal, nouvelleUrlSousOnglet, page, post){
	AjouterAHistorique();
	
	if(page) pageCourante = page;
	else if(nouvelleUrlSousOnglet) pageCourante = nouvelleUrlSousOnglet;
	else pageCourante = nouvelleUrlSousMenu;
	
	urlOngletPrincipal = nouvelleUrlOngletPrincipal;
	urlSousOnglet = nouvelleUrlSousOnglet;
	
	AfficherMenuPrincipal();
	ChargerPage(pageCourante, post);
}

function Chargement(division){
	document.getElementById(division).innerHTML = "<center><br/><br/><img src=\"public/images/loader.gif\" alt=\"Chargement...\" /><br/><br/></center>";
}

function Initialiser(startupPage){
	InitHistorique();
	
	pageDebut = startupPage;
	
	Reinitialiser();
	
	ChargerNews();
}

function Reinitialiser(){
	urlOngletPrincipal = pageDebut;
	urlSousOnglet = "";
	pageCourante = pageDebut;
	
	ChargerMenuPrincipal();
	
	ChargerEcoles();
	
	ChargerInfosMembre();
}

//Vérifications
function ChangerMdp(form){
	if(form.mdp_last.value.length == 0){
		alert("Veuillez entrer votre ancien mot de passe !");
		form.mdp_last.focus();
		return false;
	}
	if(form.mdp_new.value.length< 6){
		alert("Votre nouveau mot de passe contient moins de 6 caracteres !");
		form.mdp_new.focus();
		return false;
	}
	if(form.mdp_confirm.value.length < 6){
		alert("La confirmation de votre nouveau mot de passe contient moins de 6 caracteres !");
		form.mdp_confirm.focus();
		return false;
	}
	if(form.mdp_new.value != form.mdp_confirm.value){
		alert("Votre nouveau mot de passe et sa confirmation sont differents !");
		form.mdp_new.value = "";
		form.mdp_confirm.value = "";
		form.mdp_new.focus();
		return false;
	}
	
	PostForm("membre_mdp", form);
	return true;
}

function Verif(element, validFct, name){
	var resultField = document.getElementById("result_" + element.name);
	
	if(element.value.length == 0) IsEmpty(resultField, element, name);
	else if(!validFct(element.value)) SetError(resultField, "Votre " + name + " est invalide !");
	else{
		SetSuccess(resultField);
		return true;
	}
	
	return false;
}

function VerifFormInscription(form){

	var valid = true;
	for(i = 0; i < form.length; i++){
		if(form[i].type == "text"){
			form[i].focus();
			form[i].blur();
			resultField = document.getElementById("result_" + form[i].name);
			valid = valid && ((resultField.innerHTML == "Valide !") || (resultField.innerHTML == "Vide !"));
		}
	}

	if(valid) PostForm("members_inscription", form);
}

