var vertical = false;
var nbmenu = 5;
var centrer_menu = false;
var largeur_menu = new Array(63, 168, 107, 126, 122)
var hauteur_menu = 25;
var largeur_sous_menu = new Array(0, 168, 107, 0, 0)

/* Pour les navigateurs connaissant la largeur automatique (s'adapte au contenu), cette
	option (active par défaut) permet d'avoir une largeur automatique. En cas contraire
	(false), les sous menus auront la largeur largeur_sous_menu. */
var largeur_auto_ssmenu = true;

/* ... pour mettre un peu d'espace entre les menus ! */
var espace_entre_menus = 5;


/* position du menu par rapport au haut de l'écran ou de la page.
	0 = le menu est tout en haut. en px */
var top_menu = 0;
/* En version horizontale.
	position des sous-menus par rapport au haut de l'écran ou de la page. Il faut prévoir
	la hauteur des menus, donc ne pas mettre 0 et faire "à tâton". en px */
var top_ssmenu = top_menu + 32;

/* Position gauche du menu, en px. */
var left_menu = 0;
/* En version verticale.
	Position des sous-menus par rapport au bord gauche de l'écran. */
var left_ssmenu = largeur_menu+2;

/* Quand la souris quitte un sous-menu, si le sous-menu disparait immédiatement,
	cela gêne l'utilisateur. Alors on peut mettre un délai avant disparition du sous-menu.
	500 ms c'est bien :-) */
var delai = 650; // en milliseconde

/* En version horizontale.
	Comme le menu peut se superposer avec le texte de la page, il est possible de faire
	descendre un peu la page (on augmente la marge du haut) pour aérer un peu la page,
	une quarantaine de pixel c'est pas mal. en px*/
var marge_en_haut_de_page = top_menu + 0;
/* En version verticale.
	On décale le document à droite pour pas que le menu le superpose. */
var marge_a_gauche_de_la_page = largeur_menu + 10;


/* Mettez à true si vous souhaitez que le menu soit toujours visible.
	Mettez false si vous ne le souhaitez pas, dans ce cas le menu "disparaîtra" quand vous
	descendrez dans la page. */
var suivre_le_scroll=false;

/* Pour IE uniquement, les balises <select> passent toujours au-dessus du menu, donc
	par défaut on cache les listes déroulantes quand le menu est ouvert, puis on les fait
	réapparaître à la fermeture du menu. Pour empêcher ça, mettre à false. */
var cacher_les_select=false;


var timeout; //ne pas toucher, c'est pour déclarer la variable
var agt = navigator.userAgent.toLowerCase();
var isMac = (agt.indexOf('mac') != -1);
var isOpera = (agt.indexOf("opera") != -1);
var IEver = parseInt(agt.substring(agt.indexOf('msie ') + 5));
var isIE = ((agt.indexOf('msie')!=-1 && !isOpera && (agt.indexOf('webtv')==-1)) && !isMac);
var isIE5win = (isIE && IEver == 5);
var isIE5mac = ((agt.indexOf("msie") != -1) && isMac);
var blnOk=true;
//pour enlever les "px" pour faire des calculs...
var reg = new RegExp("px", "g");

// onScroll pour Internet Explorer, le position:fixed fait ce boulot pour les autres navigateurs
// qui respectent les normes CSS...
window.onscroll = function(){
	if (blnOk && suivre_le_scroll && (isIE || isIE5mac)){
		if(isIE5mac){document.getElementById('conteneurmenu').style.visibility = 'hidden';}
		var cumul=0;
		for(i = 1; i <= nbmenu; i++){
			if(!vertical){
				document.getElementById('menu' + i).style.top = document.body.scrollTop + top_menu + 'px';
				if(document.getElementById('ssmenu' + i))//undefined
					document.getElementById('ssmenu' + i).style.top = document.body.scrollTop + top_ssmenu + 'px';
			}else{
				document.getElementById('menu' + i).style.top = document.body.scrollTop + (((i - 1) * espace_entre_menus) + cumul + 1 + top_menu) + 'px';
				if (document.getElementById('ssmenu' + i))//undefined
					document.getElementById('ssmenu' + i).style.top = document.body.scrollTop + (((i - 1) * espace_entre_menus) + cumul + 1 + top_menu) + 'px';
				cumul += isFinite(hauteur_menu) ? hauteur_menu : hauteur_menu[i - 1];
			}
		}
		if(isIE5mac){document.getElementById('conteneurmenu').style.visibility = 'visible';}
	}
}

function preChargement(){
	if(document.getElementById('conteneurmenu')){
		document.getElementById('conteneurmenu').style.visibility = 'hidden';
		//IE5 mac a un bug : quand un texte est dans un élément de style float, il n'apparait pas.
		/*if (isIE5mac){
			document.getElementById('conteneurmenu').style='';
		}*/
	}
}

function Chargement(){
	if(!blnOk){
		if(document.body.style.backgroundColor != ''){blnOk = false;}
		if(document.body.style.color != ''){blnOk = false;}
		if(document.body.style.marginTop != ''){blnOk = false;}
		if(document.getElementById)
			with(document.getElementById('conteneurmenu').style)
				if(position != '' || top != '' || left != '' || width != '' || height != '' || zIndex!='' || margin != '' || visibility != '')
					blnOk=false;
		else
			blnOk = false;
	}

	if(blnOk){
		document.getElementById('conteneurmenu').style.visibility = 'hidden';
		trimespaces();
		with(document.body.style){
			if(!vertical)
				marginTop = marge_en_haut_de_page + 'px';
			else
				marginLeft = marge_a_gauche_de_la_page + 'px';
		}
		positionne();
		CacherMenus();
	}
		//comme on a évité le clignotement, maintenant on fait apparaître le menu ;-)
	document.getElementById('conteneurmenu').style.visibility = '';
}
window.onresize = Chargement;

/*
 * Place les éléments du menu correctement, au chargement, au scroll, au redimensionnement
 * de la fenêtre
 */
function positionne() {
	var largeur_fenetre = (isIE?document.body.clientWidth:window.innerWidth);
	var hauteur_fenetre = (isIE?document.body.clientHeight:window.innerHeight);
	if (centrer_menu) {
		if (!vertical) {
			var largeur_totale = espace_entre_menus * (nbmenu-1);
			if (isFinite(largeur_menu))
				largeur_totale += largeur_menu * nbmenu;
			else {
				for (i = 1; i <= nbmenu; i++)
					largeur_totale += largeur_menu[i-1];
			}
			left_menu = (largeur_fenetre - largeur_totale)/2;
		} else {
			var hauteur_totale = espace_entre_menus * (nbmenu-1);
			if (isFinite(hauteur_menu))
				hauteur_totale += hauteur_menu * nbmenu;
			else {
				for (i = 1; i <= nbmenu; i++)
					hauteur_totale += hauteur_menu[i-1];
			}
			top_menu = (hauteur_fenetre - hauteur_totale)/2;
		}
	}
	
	//Menus
	var cumul = 0;
	for(i=1;i<=nbmenu;i++) {
		with(document.getElementById("menu"+i).style) {
			if (!vertical) {
				top=top_menu+"px";
				//left=(((i-1)*(largeur_menu+espace_entre_menus))+1+left_menu)+"px";
				left=(((i-1)*espace_entre_menus)+cumul+1+left_menu)+"px";
			} else {
				//top=(((i-1)*(hauteur_menu+espace_entre_menus))+1+top_menu)+"px";
				top=(((i-1)*espace_entre_menus)+cumul+1+top_menu)+"px";
				left=left_menu+"px";
			}
			if (!suivre_le_scroll || isIE || isIE5mac)
				position="absolute";
			else position="fixed";
			//if (vertical) height=hauteur_menu+"px";
			margin="0";
			zIndex="2";
			if (vertical || isFinite(largeur_menu))
				width=largeur_menu+"px";
			else
				width=largeur_menu[i-1]+"px";
			if ((!vertical && isFinite(largeur_menu)) || (vertical && isFinite(hauteur_menu))) {
				cumul += (!vertical?largeur_menu:hauteur_menu);
			}
			else {
				cumul += (!vertical?largeur_menu[i-1]:hauteur_menu[i-1]);
				if (vertical) height=hauteur_menu[i-1]+"px";
			}
			height = 15 + 'px';
		}
	}
	
	//Sous-menus
	cumul = 0;
	for(i=1;i<=nbmenu;i++) {
		if (document.getElementById("ssmenu"+i))//undefined
		{
			with(document.getElementById("ssmenu"+i).style) {
				if (!suivre_le_scroll || isIE || isIE5mac)
					position="absolute";
				else position="fixed";
				if (!vertical) {
					top=top_ssmenu+"px";
					//left=(((i-1)*(largeur_menu+espace_entre_menus))+1+left_menu)+"px";
					left=(((i-1)*espace_entre_menus)+cumul+1+left_menu)+"px";
				} else {
					left=left_ssmenu+"px";
					//top=(((i-1)*(hauteur_menu+espace_entre_menus))+1+top_menu)+"px";
					top=(((i-1)*espace_entre_menus)+cumul+1+top_menu)+"px";
				}
				if (isIE || isOpera || isIE5mac || !largeur_auto_ssmenu) {
					if (isFinite(largeur_sous_menu))
						width = largeur_sous_menu+(largeur_sous_menu!="auto"?"px":"");
					else
						width = largeur_sous_menu[i-1]+(largeur_sous_menu[i-1]!="auto"?"px":"");
				}
				else width = "auto";
				if (!vertical && !isIE5mac) {
					//repositionnement si déborde à droite
					if ((width != "auto")
						&& ((left.replace(reg,'').valueOf()*1 + width.replace(reg,'').valueOf()*1) > largeur_fenetre))
						left = (largeur_fenetre-width.replace(reg,'').valueOf())+"px";
				}
				margin="0";
				zIndex="3";
			}
		}
		if ((!vertical && isFinite(largeur_menu)) || (vertical && isFinite(hauteur_menu))) {
			cumul += (!vertical?largeur_menu:hauteur_menu);
		}
		else {
			cumul += (!vertical?largeur_menu[i-1]:hauteur_menu[i-1]);
		}
	}
}


function MontrerMenu(strMenu) {
	if(blnOk) {
		AnnulerCacher();
		CacherMenus();
		if (document.getElementById(strMenu))//undefined
			with (document.getElementById(strMenu).style)
				visibility="visible";
	}
	SelectVisible("hidden",document.getElementsByTagName('select'));
}

function CacherDelai() {
	if (blnOk) {
		timeout = setTimeout('CacherMenus()',delai);
	}
}
function AnnulerCacher() {
	if (blnOk && timeout) {
		clearTimeout(timeout);
	}
}
function CacherMenus() {
	if(blnOk) {
		for(i=1;i<=nbmenu;i++) {
			if (document.getElementById("ssmenu"+i))//undefined
				with(document.getElementById("ssmenu"+i).style)
					visibility="hidden";
		}
	}
	SelectVisible("visible",document.getElementsByTagName('select'));
}

function trimespaces() {
	//Contourne un bug d'IE5/win... il ne capte pas bien les css pour les <li>, donc on les vire !
	if(blnOk&&isIE5win) {
		for(i=1;i<=nbmenu;i++) {
			if (document.getElementById("ssmenu"+i))//undefined
				with(document.getElementById("ssmenu"+i))
					innerHTML = innerHTML.replace(/<LI>|<\/LI>/g,"");
		}
	}
}

function SelectVisible(v,elem) {
	if (blnOk && cacher_les_select && (isIE||isIE5win)){
		for (var i=0;i<elem.length;i++) elem[i].style.visibility=v;
	
	}
}



































//Menu
function showHideMenu(id){
	var menu = document.getElementById(id);
	if(menu.style.display == 'block')
		menu.style.display = 'none';
	else
		menu.style.display = 'block';
}
////////



	//Six days only
function sixDays(){
	if(document.getElementById('periodloc').value == 6){
		document.getElementById('devis1').checked = false;
		document.getElementById('devis0').checked = false;
		document.getElementById('resaHandler').style.display = 'inline';
	}else{
		document.getElementById('devis1').checked = true;
		document.getElementById('resaHandler').style.display = 'none';
	}
}
////////



	//Check if devis or resa is selected
function chkDevis(formId){
	var ok = true
	/*if(document.getElementById('devis1').checked == false && document.getElementById('devis0').checked == false)
		ok = false;*/
	if(ok == false)
		alert('Veulliez séléctionner entre le mode devis et le mode réservation');
	else
		formSubmit(formId);
}

	// verif cgv pour validation formulaire
function verifcgv(){
	if(document.getElementById('checkCgv').checked){
		document.getElementById('pay').submit();
	}else{
		window.alert('Vous devez accepter les conditions générales de location');
	}
}
////////



	//Submit forms by id
function formSubmit(oneForm){
	document.getElementById(oneForm).submit();
}
////////



	//Grid popUp
function grid(){
	var popUp = window.open('grid.php', 'grid','menubar=no, status=no, width=963, height=560');
}
////////



	//Forget pass
function passForget(alink){
	alink.href += '&mail=' + document.getElementById('logininput').value;
}








//Trouve la position (haut gauche) d'un element
function findPos(obj){
	var curleft = curtop = width = 0;
	if(obj.offsetParent){
		do {
			if(width == 0)
				width = obj.offsetWidth;
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}while (obj = obj.offsetParent);
	}
	curleft -= (300 - width);
	return [curleft,curtop];
}

function lenghtCart(id){
	document.getElementById('action').value = 'upLenght';
	document.getElementById('id').value = id;
	formSubmit('cartForm');
}

//Show/hide Calendar whith coordinate
function displayCal(from, act){
	var Cal = document.getElementById('calHandler2')
	if(Cal.style.display == 'block'){
		Cal.style.display = 'none';
		return;
	}else{
		position = findPos(document.getElementById(from));
		Cal.style.display = 'block';
		Cal.style.left = position[0]+'px';
		Cal.style.top = position[1]+25+'px';
	}

	var tmpDate = new Date(document.getElementById('date').value * 1000);
	makeCal(tmpDate, tmpDate.getDate(), tmpDate.getMonth(), tmpDate.getMonth(), act, from);
}



//Hide Calendar by pressing ESC
function escKeyPress(kp){
	if(kp.keyCode == 27){
 	document.getElementById('cal').style.display = 'none';
	}
}

//Submit forms by id whit popup
function resticted(age, taille, Form){
	if(confirm('***Attention***\n\nLe pack enfant que vous avez séléctionnez est soumis a restriction :\n• Age maxi : '+age+' ans\n• Taille maxi : '+taille+'cm'))
		document.getElementById(Form).submit();
}

//Affiche ou cache l'image du produit si il est coché ou décohé
function changeImgStat(ProdId, subId){
	var block = document.getElementById(ProdId+'_'+subId);
	var blockM = document.getElementById(ProdId+'_0');
	switch(block.className){
		case '':
			block.className = 'mainMaterialD';
			break;
		case 'mainMaterialD':
			block.className = '';
			break;
		case 'subMaterial':
			block.className = 'subMaterialD';
			break;
		case 'subMaterialD':
			block.className = 'subMaterial';
			break;
	}

	if(blockM.className == 'mainMaterialD'){
		blockM.className = '';
		setTimeout('hide(\''+blockM.id+'\')', 0); 
	}else{
		blockM.className = 'mainMaterialD';
		setTimeout('show(\''+blockM.id+'\')', 0); 
	}
}

function show(x){
	 document.getElementById(x).className = '';
}
function hide(x){
	document.getElementById(x).className = 'mainMaterialD';
}

//Met a jour dynamiquement le prix unitaire d'un pack en fonction des options selectionnées
//et interdit de cocher moins d'un produit par pack
function updatePrice(ProdId){
	var total = 0;
	var rtotal = 0;
	var i = 0;
	var periode = document.getElementById('j_'+ProdId).value;
	var count = 0;
	while(document.getElementById('P_'+ProdId+'_'+i+'_'+periode+'_price') != null){
		if(document.getElementById(ProdId+'_check_'+i).checked == true){
			total += parseFloat(document.getElementById('P_'+ProdId+'_'+i+'_'+periode+'_price').innerHTML);
			rtotal += parseFloat(document.getElementById('P_'+ProdId+'_'+i+'_'+periode+'_rprice').innerHTML);
			count++;
		}
		i++;
	}
	if(document.getElementById('P_'+ProdId+'_'+periode+'_price') != null){
		total += parseFloat(document.getElementById('P_'+ProdId+'_'+periode+'_price').innerHTML);
		rtotal += parseFloat(document.getElementById('P_'+ProdId+'_'+periode+'_rprice').innerHTML);
	}
	//Met a jour l'affichage du prix
	if(document.getElementById('magPrice_'+ProdId) != null)
		document.getElementById('magPrice_'+ProdId).innerHTML = (total.toFixed(2).toString()).replace(/\./,',')+' €';
	document.getElementById('netPrice_'+ProdId).innerHTML = (rtotal.toFixed(2).toString()).replace(/\./,',')+' €';
	//Désactive la case cochée
	i = 0;
	while(document.getElementById('P_'+ProdId+'_'+i+'_'+periode+'_price') != null){
		if(document.getElementById(ProdId+'_check_'+i).checked == true && count == 1){
			document.getElementById(ProdId+'_check_'+i).disabled = true;
			document.getElementById(ProdId+'_alone').value = document.getElementById(ProdId+'_check_'+i).value;
		}else{
			document.getElementById(ProdId+'_check_'+i).disabled = false;
		}
		i++;
	}
}


//Devis pack content
function changePckContent(itemId){
	document.getElementById('id').value = itemId;
	document.getElementById('action').value = 'chgPck';
	formSubmit('devisForm');
}




//Vérifie le mail et pass pour la création de compte
function checkAddUser(){
	var ok = true;
	var mailFilter = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/;

	if(!mailFilter.test(document.getElementById('mail').value)){
		alert('E-mail invalide');
		document.getElementById('mail').focus();
		document.getElementById('mail').value = '';
		ok = false;
	}

	if(document.getElementById('pass').value == ''){
		alert('Veuillez saisir un mot de passe');
		document.getElementById('pass').focus();
		ok = false;
	}

	if(document.getElementById('pass').value != document.getElementById('passv').value){
		alert('Le second mot de passe ne correspond pas au 1er');
		document.getElementById('passv').focus();
		document.getElementById('passv').value = '';
		ok = false;
	}

	if(ok == true)
		formSubmit('newAccount');
}

//Vérif pass seulement
function chkPass(){
	var pass = document.getElementById('pass').value;
	var passv = document.getElementById('passv').value;

	if(pass == '')
		return true;
	if(pass != '' && pass == passv)
		return true;
	else{
		alert('Les deux mots de passe ne sont pas identique');
		document.getElementById('passv').value = ''
		document.getElementById('passv').focus();
		return false;
	}		
}

//Check for more informations about items
function chkMore(){
	document.getElementById('submit').focus();
	var ok = true;
	var i = 0;

	//Prénom
	while(document.getElementById('surname' + i)){
		if(document.getElementById('surname' + i).value == '')
			ok = false;
		i++;
	}

	i = 0;
	//Age
	while(document.getElementById('age' + i)){
		if(document.getElementById('age' + i).value == '')
			ok = false;
		i++;
	}

	i = 0;
	//taille
	while(document.getElementById('tall'+i)){
		if(document.getElementById('tall'+i).value == '')
			ok = false;
		i++;
	}

	if(ok == false)
		alert('Veulliez remplir au minimum chaque champs :\nPrénom\nAge\nTaille');

	return ok;
}

//
function moreInfo(id){
	if(document.getElementById('desc'+id).style.display == 'block'){
		document.getElementById('desc'+id).style.display = 'none';
		document.getElementById('descB'+id).style.display = 'none';
		document.getElementById('IMG_'+id+'_L').innerHTML = '<img src="../i/items/arrowBottom.gif" alt="Fleche" height="17" width="13" />';
		document.getElementById('IMG_'+id+'_R').innerHTML = '<img src="../i/items/arrowBottom.gif" alt="Fleche" height="17" width="13" />';
	}else{
		document.getElementById('desc'+id).style.display = 'block';
		document.getElementById('descB'+id).style.display = 'block';
		document.getElementById('IMG_'+id+'_L').innerHTML = '<img src="../i/items/arrowTop.gif" alt="Fleche" height="17" width="13" />';
		document.getElementById('IMG_'+id+'_R').innerHTML = '<img src="../i/items/arrowTop.gif" alt="Fleche" height="17" width="13" />';
	}
}

//no empty form
function chkAll(){
	var ok = true;
	var i = 0;
	var inputs = document.getElementsByTagName('input');

	while(inputs[i]){
		if(inputs[i].value == '')
			ok = false;
		i++;
	}

	if(ok == false)
		alert('Veulliez remplir tous les champs');

	return ok;
}

//check promo form
function chkPromo(){
	var ok = true;

	if(document.getElementById('code').value == ''){
		ok = false;
		document.getElementById('code').focus();
	}

	if(document.getElementById('val').value == '' || isNaN(document.getElementById('val').value)){
		ok = false;
		document.getElementById('val').focus();
	}

	if(ok == false){
		alert('Veuillez rentrer des valeurs correctes pour les champs Code et Valeur');
	}

	return ok;
}

function restricted(type, obj, limit){
	if(obj.value > limit || isNaN(obj.value)){
		switch(type){
			case 'age':
				var msg = 'L\'âge maxium pour ce pack est de ' + limit + ' ans';
				break;
			case 'tall':
				var msg = 'La taille maxium pour ce pack est de ' + limit + 'cm';
				break
		}
		obj.value = '';
		obj.focus();
		alert(msg);
	}
}
