function affNumCarte(profil)
{
	if(profil == "1")
	{
		document.getElementById('numCarte').style.display = "";
		document.getElementById('numCarteTitre').style.display = "";
	}
	else
	{
		document.getElementById('numCarte').style.display = "none";
		document.getElementById('numCarteTitre').style.display = "none";
	}
}

function initPage()
{
	document.getElementById('texte_0').style.display = "block";
	document.getElementById('numPage').value = "0";
}

// Menu cafétéria Petit déjeuner
function openMt1Nb(menu)
{
	// Petit déjeuner Complet 3A7
	if(menu == "3A7")
	{
		document.getElementById('md1Nb1').style.display =  "none";
		document.getElementById('md1Nb2').style.display =  "none";
	}
	
	// Petit déjeuner Express 1A7 / Petit déjeuner Classique 2A7
	if(menu == "1A7" || menu == "2A7")
	{
		document.getElementById('md1Nb1').style.display =  "";
		document.getElementById('md1Nb2').style.display =  "";
	}
}

// Menu cafétéria goûter et snacking
function openMt2Nb(menu)
{
	// Goûter code 5A7
	if(menu == "5A7")
	{
		document.getElementById('md2Nb1').style.display =  "";
		document.getElementById('md2Nb2').style.display =  "";
		document.getElementById('md2Nb3').style.display =  "none";
	}
	
	// Menu snacking code 31A7
	if(menu == "31A7")
	{
		document.getElementById('md2Nb1').style.display =  "";
		document.getElementById('md2Nb2').style.display =  "none";
		document.getElementById('md2Nb3').style.display =  "";
	}
}

// Menu cafétéria déjeuner et diner
function openMt3Nb(menu)
{
	// Menu enfant (conseillé - 12 ans) code 7A7
	if(menu == "7A7")
	{
		document.getElementById('md3Nb1').style.display =  "";
		document.getElementById('md3Nb2').style.display =  "";
		document.getElementById('md3Nb3').style.display =  "none";
		document.getElementById('md3Nb4').style.display =  "none";
		document.getElementById('md3Nb5').style.display =  "none";
		document.getElementById('md3Nb6').style.display =  "none";
		document.getElementById('md3Nb7').style.display =  "none";
	}
	
	// Menu Junior (conseillé -16 ans) code 4A7
	if(menu == "4A7")
	{
		document.getElementById('md3Nb1').style.display =  "";;
		document.getElementById('md3Nb2').style.display =  "none";
		document.getElementById('md3Nb3').style.display =  "";
		document.getElementById('md3Nb4').style.display =  "none";
		document.getElementById('md3Nb5').style.display =  "none";
		document.getElementById('md3Nb6').style.display =  "none";
		document.getElementById('md3Nb7').style.display =  "none";
	}
	
	// Menu Rapido code 13A7
	if(menu == "13A7")
	{
		document.getElementById('md3Nb1').style.display =  "";
		document.getElementById('md3Nb2').style.display =  "none";
		document.getElementById('md3Nb3').style.display =  "none";
		document.getElementById('md3Nb4').style.display =  "";
		document.getElementById('md3Nb5').style.display =  "none";
		document.getElementById('md3Nb6').style.display =  "none";
		document.getElementById('md3Nb7').style.display =  "none";
	}
	
	// Menu complet code 9A7
	if(menu == "9A7")
	{
		document.getElementById('md3Nb1').style.display =  "";
		document.getElementById('md3Nb2').style.display =  "none";
		document.getElementById('md3Nb3').style.display =  "none";
		document.getElementById('md3Nb4').style.display =  "none";
		document.getElementById('md3Nb5').style.display =  "";
		document.getElementById('md3Nb6').style.display =  "none";
		document.getElementById('md3Nb7').style.display =  "none";
	}
	
	// Menu Velouté code 12A7
	if(menu == "12A7")
	{
		document.getElementById('md3Nb1').style.display =  "";
		document.getElementById('md3Nb2').style.display =  "none";
		document.getElementById('md3Nb3').style.display =  "none";
		document.getElementById('md3Nb4').style.display =  "none";
		document.getElementById('md3Nb5').style.display =  "none";
		document.getElementById('md3Nb6').style.display =  "";
		document.getElementById('md3Nb7').style.display =  "";
	}
}

// Menu Restaurant à table déjeuner et diner
function openMt5Nb(menu)
{
	// Menu Tradition code 21A7
	if(menu == "21A7")
	{
		document.getElementById('md5Nb1').style.display =  "";
		document.getElementById('md5Nb2').style.display =  "";
		document.getElementById('md5Nb3').style.display =  "";
		document.getElementById('md5Nb4').style.display =  "";
		document.getElementById('md5Nb5').style.display =  "none";
		document.getElementById('md5Nb6').style.display =  "none";
		document.getElementById('md5Nb7').style.display =  "none";
		document.getElementById('md5Nb8').style.display =  "none";
	}
	
	// Menu Dolce Vita code 20A7
	if(menu == "20A7")
	{
		document.getElementById('md5Nb1').style.display =  "";;
		document.getElementById('md5Nb2').style.display =  "none";
		document.getElementById('md5Nb3').style.display =  "none";
		document.getElementById('md5Nb4').style.display =  "none";
		document.getElementById('md5Nb5').style.display =  "";
		document.getElementById('md5Nb6').style.display =  "";
		document.getElementById('md5Nb7').style.display =  "";
		document.getElementById('md5Nb8').style.display =  "none";
	}
	
	// Menu Gastronomique code 23A7
	if(menu == "23A7")
	{
		document.getElementById('md5Nb1').style.display =  "";
		document.getElementById('md5Nb2').style.display =  "none";
		document.getElementById('md5Nb3').style.display =  "none";
		document.getElementById('md5Nb4').style.display =  "none";
		document.getElementById('md5Nb5').style.display =  "none";
		document.getElementById('md5Nb6').style.display =  "none";
		document.getElementById('md5Nb7').style.display =  "none";
		document.getElementById('md5Nb8').style.display =  "";
	}
}

function openText(total,sens)
{
	// trouve l'élément à afficher
	if(sens == '-')
	{
		var numPage = parseInt(document.getElementById('numPage').value) - 1;
	}
	else
	{
		var numPage = parseInt(document.getElementById('numPage').value) + 1;
	}
	
	// Efface les élements puis affiche l'éléments choisi
	if(numPage < total && numPage >= 0)
	{
		// Ecrit l'élements qu'on affiche
		document.getElementById('numPage').value = numPage;
	
		var pageNumero = numPage + 1;
		document.getElementById('pageNumero').innerHTML = pageNumero + ' / ' + total;
		
		for(var i=0;i<total;i++)
		{
			document.getElementById("texte_" + i).style.display = "none";
		}
		if(numPage >= 0)
		{
			document.getElementById("texte_" + numPage).style.display = "block";
		}
	}
}

function openSuggestion()
{
	var tab1 = document.getElementById('tab1').style.display;
	var tab2 = document.getElementById('tab2').style.display;
	if(tab1 == "block")
	{
		document.getElementById('tab1').style.display = "none";
		document.getElementById('tab2').style.display = "block";
		document.getElementById('pages').innerHTML = "<img src=\"/images/fleche-retour.gif\" alt=\"\" onclick=\"openSuggestion()\" />";
	}
	else
	{
		document.getElementById('tab1').style.display = "block";
		document.getElementById('tab2').style.display = "none";
		document.getElementById('pages').innerHTML = "<img src=\"/images/fleche-suivant.gif\" alt=\"\" onclick=\"openSuggestion()\" />";
	}
}

function openResa()
{
	var b1 = document.getElementById('b1').style.display;
	var b2 = document.getElementById('b2').style.display;
	if(b1 == "block")
	{
		if(checkForm('reservation') == true)
		{
			document.getElementById('pageNumero').innerHTML = '2 / 2';
			document.getElementById('pageNumeroBottom').innerHTML = '2 / 2';
			document.getElementById('b1').style.display = "none";
			document.getElementById('b2').style.display = "block";
		}
	}
	else
	{
		document.getElementById('pageNumero').innerHTML = '1 / 2';
		document.getElementById('pageNumeroBottom').innerHTML = '1 / 2';
		document.getElementById('b1').style.display = "block";
		document.getElementById('b2').style.display = "none";
		
		document.getElementById('conteneurTable').style.display = "none";
	}
}

function affMenu(menu)
{
	for (i=0;i<menu.length;i++)
	{
		document.getElementById('m0').style.display = "none";
		document.getElementById('m1').style.display = "none";
		document.getElementById('m2').style.display = "none";
		document.getElementById('m3').style.display = "none";
		document.getElementById('m4').style.display = "none";
		if (menu[i].checked)
		{
			document.getElementById('conteneurTable').style.display = "block";
			var menu =  menu[i].value;
			document.getElementById(menu).style.display = "block";
			break;
		}
	}
}

// ----------------------------
// Type pour les réservation
// ----------------------------
if (navigator.appName == "Microsoft Internet Explorer") var ie = true; else var ie = false;
var idReq = 0;
var HttpList = createRequestObject();

function getList(idType)
{
	if(idType == "autoroute")
	{
		document.getElementById('sepAuto').style.display = "";
		document.getElementById('infoAuto').style.display = "";
		document.getElementById('infoAutoBis').style.display = "";
		document.getElementById('submitReseau').style.display = "none";
	}
	else
	{
		document.getElementById('sepAuto').style.display = "none";
		document.getElementById('infoAuto').style.display = "none";
		document.getElementById('infoAutoBis').style.display = "none";
		document.getElementById('pages').style.display = "none";
		document.getElementById('pagesBottom').style.display = "none";
		document.getElementById('submitReseau').style.display = "block";
	}
	var req = "/reservation-type.php?idtype="+idType+"&idReq="+idReq++;
	HttpList.open('GET', req, true);
	HttpList.onreadystatechange = handleXmlList;
	HttpList.send(null);
}

function handleXmlList()
{
	//si le serveur répond
	if(HttpList.readyState == 4)
	{
		repXml = clean(HttpList.responseXML.documentElement);		
		var xmlListTab = new Array();
		var attTab = new Array("id","tit");
		xmlListTab = XmlTabMaker(repXml,attTab);
		constCategList(xmlListTab);
	}	
}

//Fonction constructrice de la liste de choix de categorie.
function constCategList(XLT)
{
	//Selection de la balise SELECT
	var Englob = document.getElementById("typeCell");
	
	//Effacer la balise select pour IE
	if (document.getElementById("typeSel"))
	{
		Englob.removeChild(document.getElementById("typeSel"));
	}
	
	//SI le Tableau existe bien
	if ((XLT)&&(!XLT['error']))
	{
		//creation de la balise select (Reccréer la balise sinon sous IE non COmpatible )
		var sAttTmpTab = new Array();
		
		var sAttTab = new Array();
			sAttTab[0] = 'name';
			sAttTab[1] = 'sitEta';
		
		var sAttTab1 = new Array();
			sAttTab1[0] = 'id';
			sAttTab1[1] = 'typeSel';
			
		sAttTmpTab[0] = sAttTab;
		sAttTmpTab[1] = sAttTab1;

		var select = NodeCreator(Englob,"select",sAttTmpTab,"");
		
		select.onchange = function onsenfou () { getListCateg(select.value); };
		
		//Parametrage de l'id de la value pour la creation de l'option vierge
		//Mettre l'att value à 0 pour validation du form
		var optAttTmpTab = new Array();
		var optAttTab = new Array();
			optAttTab[0] = 'value';
			optAttTab[1] = '';
		optAttTmpTab[0] = optAttTab;

		//Creation du champ de l'option vierge
		NodeCreator(select,"option",optAttTmpTab,"Choississez votre établissement");

		//Pour chaque categorie
		for (var i=0; i<XLT['type'].length; i++)
		{
			//Parametrage de l'id de la value pour la creation de l'option
			var optAttTmpTab2 = new Array();
			var optAttTab2 = new Array();
				optAttTab2[0] = 'value';
				optAttTab2[1] = XLT['type'][i]['id'];
			optAttTmpTab2[0] = optAttTab2;
			
			//Creation du champ de l'option
			NodeCreator(select,"option",optAttTmpTab2,XLT['type'][i]['tit']);
		}
	}
		//alert(Englob.innerHTML);
}
	
/*FONCTIONS COMMUNES A AJAX*/

//creation de noeuds (XML et Html)
//d = objet de destination (id de la div...)
//t = type
//a = attributs exemple: ((attName1,attVal1),(attName2,attVal2),(...),...)
//v = value
function NodeCreator(d,t,a,v){
	
	//création de la nouvelle balise
	var ce = document.createElement(t);
	
	//init des valeurs
	var cv;
	
	//si valeurs
	if (v != "")
	{	
		//création de la valeure (txt)
		var cv = document.createTextNode(v);
		//assignation de la valeure
		ce.appendChild(cv);
	}
	
	//assignation des attributs
	for (var i=0; i<a.length; i++)
		{
		var tmpAttName = a[i][0];
		var tmpAttVal = a[i][1];
		
		var ca = document.createAttribute(tmpAttName);
		
		ca.nodeValue = tmpAttVal;
		ce.setAttributeNode(ca);
		}		
	
	//assignation du champ
	d.appendChild(ce);
	
	return ce;
	}


//Fonction permettant le traitement d'un XML pour le retourner 
//en tableau asscociatif (à chaque balise).
function XmlTabMaker(xml,attr){
	//Initialisation du tableau à retourner
	var tmpRefNodeTab = new Array();
	//Début du scrutage du noeud Parent
	if (xml.firstChild)
		{
		var niv = xml.childNodes;
		//Départ de la boucle de traitements des noeuds enfants
		for ( var i=0; i<niv.length; i++)
			{
			//Début de détection des attributs pour chaque noeud enfant
			//Initialisation du FLAG si attributs à faux.
			var isAttr = false;
			//Vérification de la présence d'attributs.
			if (niv[i].attributes) { isAttr = true; }else{ isAttr = false; }
			
			//Si des la présence est avérée,
			if (isAttr)
				{
				//si le nombre d'attributs est supperieur à 0,
				if (niv[i].attributes.length > 0)
					{
					//Initialisation du tableau contenant les attributs.
					var attTmpTab = new Array();

					//Départ des boucles de traitement des attributs du noeud
					//pour chaques attributs,
					for ( var j=0; j<niv[i].attributes.length; j++)
						{ 
						//insérer sa val dans le tableau des attributs à la case de son nom. 
						attTmpTab[niv[i].attributes[j].name] = niv[i].getAttribute(niv[i].attributes[j].name)
						}//Fin des boucles de traitement des attributs.
					}
				}//Fin de vérification des attributs du noeud enfant.

			//Début de la vérification du type de noeud enfant.
			//Si le noeud enfant contient d'autres noeud
			if (niv[i].firstChild)
				{ 
				//Initialisation du tableau contenant les autres noeuds.
				var tmpEnglobTab = new Array();
				
				//si le contenu n'est pas un tableau xhtml
				if (niv[i].nodeName != "table")
					{
					//Affectation des noeuds inferieur à tmpEnglobTab
					//(la fonction s'appel elle même.)
					tmpEnglobTab["c"] = XmlTabMaker(niv[i],attr);
					}
				else
					{
					//sinon affecter le tableau à tmpEnglobTab
					tmpEnglobTab["c"] = niv[i];
					}
				
				//Affectation attTmpTab à tmpEnglobTab si il contient des attributs.
				if (isAttr){ tmpEnglobTab["a"] = attTmpTab; }
				
				//Si le nom du noeud à déjà été référencé,
				if (tmpRefNodeTab[niv[i].nodeName])
					//affectation de tmpEnglobTab au tableau à retourner.
					{ tmpRefNodeTab[niv[i].nodeName].push(tmpEnglobTab); }
				//Sinon,
				else
					{
					//créer un tableau globale dans le noeud au nom de balise,
					var tmpCountNodeTab = new Array;
					//affecter tmpEnglobTab à la première place de tmpCountNodeTab,
					tmpCountNodeTab[0] = tmpEnglobTab;
					//affecter tmpCountNodeTab au tableau de retour.
					tmpRefNodeTab[niv[i].nodeName] = tmpCountNodeTab;
					}
				}
			//Si il ne contient pas d'autres noeuds
			else
				{  
				//Si il contient une valeure on retourne la valeure
				if (niv[i].nodeValue != null){ return niv[i].nodeValue; }
				//Si le noeud parent contient un noeud d'attributs 
				else
					{
					//Si référencé
					if (tmpRefNodeTab[niv[i].nodeName])
						{ 
						//affectation du noeud d'attributs au tableau de retour
						if (isAttr){ tmpRefNodeTab[niv[i].nodeName].push(attTmpTab); }
						else{ tmpRefNodeTab[niv[i].nodeName].push("empty attribute node"); }
						}
					//Sinon
					else
						{ 
						//Référencement et affectation du noeud d'attributs au tableau de retour 
						var tmpCountNodeAttTab = new Array; 
						
						if (isAttr){ tmpCountNodeAttTab[0] = attTmpTab; }
						else { tmpCountNodeAttTab[0] = "empty attribute node"; }
						
						tmpRefNodeTab[niv[i].nodeName] = tmpCountNodeAttTab;
						}
					
					}
				}
			}
		//retour du tableau
		return tmpRefNodeTab;
		}
	}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer")
		{ ro = new ActiveXObject("Microsoft.XMLHTTP"); }
	else
		{ ro = new XMLHttpRequest(); }
    return ro;
}

//transforme un objet XML en string
function xmlToString(xml){
	var XmlToString = (new XMLSerializer()).serializeToString(xml);
	return XmlToString
	}

// Node cleaner
function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d){
	var bal=d.getElementsByTagName('*');

	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}

function voirImg(valeur)
{
	$('photo').update("<img src=\"/galerie/"+ valeur + "\" alt=\"\" />");
}

function survolMulti(id,type)
{
	var td = $('td' + id).getElementsByTagName("td");
	for (var i=0; i<td.length; i++)
	{
		if(type == 'on') td[i].style.backgroundColor = '#eeeeee';
		else td[i].style.backgroundColor = '#F8F8F8';
	}
}

/*Fonctions concernant l'ajaxbox*/
function ajaxbox_init()
{
	box = new Ajaxbox();
	box.overlay.onclick = function() { box.hide(); }
}

// Fermeture de la box
function ajaxbox_hide()
{
	box.hide();
}

function ajaxbox_show_jeu()
{
	box.show();
	
	// On va chercher les informations à afficher via un objet Ajax Request
	new Ajax.Request('ajax-jeu.php',
	{
		onSuccess: function(ajax)
		{
			box.update(ajax.responseText);
		}
	});
}

//Vérifie les champs du formulaire
function checkForm()
{
	var field = document.getElementById("reservation").elements;
	var check = true;
	for (var i=0; i<field.length; i++)
	{
		var item = $(field[i]);

		if (item.hasClassName('requiredB1') && item.value == '')
		{
			item.addClassName('error');
			check = false;
		}
		else item.removeClassName('error');
	}
	
	if(false == check) alert("Please complete all fields marked one *");
		
	return check;
}