var timerDetails;
var timerMain;
var timerMenu;
var detailsShowed;
var mainTextShowed;
var subMenuShowed;
var animatingTexte = false;
var animatingSubs = false;
var animatingDetails = false
var menuOpened;

function validateEmail(elementValue){ 
	var emailPattern = /^[A-Za-z0-9\!\#\$\%\&\'\*\+\-\/\=\?\\^\_\`\.\{\|\}\~]{1,64}@([A-Za-z0-9-]{1,63}\.){1,}[A-Za-z0-9]{2,6}$/; 
	return emailPattern.test(elementValue); 
} 



function sendmail(sujet, body, recipient, sender, form, ln) {

	if(sujet.value == "")
	{
		if(ln == "fr")
			alert("Vous devez entrer un sujet.");
		else
			alert("You must enter a subject.");
	}
	else if(body.value == "")
	{
		if(ln == "fr")
			alert("Vous devez entrer un message.");
		else
			alert("You must enter a body.");
	}
	else if(!validateEmail(sender.value))
	{
		if(ln == "fr")
			alert("Vous devez entrer un courriel de retour valide.");
		else
			alert("You must enter a valid return email.");
	}
	else
	{
	
	    var sc = new SOAPClient();
	    sc.setServiceUrl("http://www.keops.com/KeopsMail.asmx");
	    sc.setServiceNamespace("http://www.keops.com/");
	    sc.setMethodName("SendMessage");
	    sc.addParameter("subject", sujet.value);
	    sc.addParameter("message", body.value);
	    sc.addParameter("receiver", recipient);
	    sc.addParameter("sender", sender.value);
	    sc.call();
		
		sujet.value = "";
		body.value = "";
		sender.value = "";
		
		//faire disparaitre le formulaire 
		hideAndShowDetails(form);
		
		//message de confirmation
		if(ln == "fr")
			alert("Votre message a \351t\351 envoy\351.");
		else
			alert("Your message has been sent.");
	}		
		
}

var css_browser_selector = function()
{
	var ua=navigator.userAgent.toLowerCase(),is=function(t)
	{
		return ua.indexOf(t) != -1;
	}
	,h=document.getElementsByTagName('html')[0],b=(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?'gecko ff2':is('firefox/3')?'gecko ff3':is('gecko/')?'gecko':is('opera/9')?'opera opera9':/opera\s(\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('chrome')?'chrome webkit safari':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';var c=b+os+' js'; h.className += h.className?' '+c:c;
}

();

function styleSwitcher()
{
	var theDiv = document.getElementById("main");
	if (document.documentElement.clientHeight < 583){
		theDiv.className = "down";
	}
	else {
		theDiv.className = "up";
	}
} 

function lienMainBleu(numLien)
{
	//changer la classe d'affichage du texte
	var monLien = document.getElementById("mainLien" + numLien);
	monLien.className = "menuprincvisit";	
	var racineLiens = document.getElementById("menu");
	var liens = racineLiens.getElementsByTagName("a");
	
	//portion pour les flèches
	var monTD = document.getElementById("main" + numLien);	
	if(monTD)
	{
		var fleche = monTD.getElementsByTagName("img")[0];
			
		if(fleche)
			fleche.src = "images/fleche.png";
	}
	
	for(var iLien = 0; iLien < liens.length; iLien++)
	{
		if(liens[iLien].id.indexOf("mainLien") == 0 && liens[iLien].id != "mainLien" + numLien )
		{
			//changer le gestionnaire d'évènements du onclick de chacun des liens.	
			liens[iLien].className = "menuprinc"; 			
			//portion pour l'affichage de la flèche
			
			monTD = document.getElementById(liens[iLien].id.replace("Lien", ""));	
			if(monTD)
			{
				fleche = monTD.getElementsByTagName("img")[0];
				if(fleche)
					fleche.src = "images/fleche2.png";
			}
		}		
	}	
}

function sousLienBleu(numLien)
{
	var monLien = document.getElementById("sousLien" + numLien);
	monLien.className = "menusubvisit";	
	var racineLiens = document.getElementById("menu");
	var liens = racineLiens.getElementsByTagName("a");
	
	for(var iLien = 0; iLien < liens.length; iLien++)
	{
		if(liens[iLien].id.indexOf("sousLien") == 0 && liens[iLien].id != "sousLien" + numLien )
		{
			//changer le gestionnaire d'évènements du onclick de chacun des liens.	
			liens[iLien].className = "menusub"; 			
		}		
	}
}

//mouseOver
function mouseOverMenu(id)
{
	//portion pour les flèches
	if(id.replace("mainLien", "") != menuOpened)
	{
		var monTD = document.getElementById("main" + id.replace("mainLien", ""));	
		if(monTD)
		{
			var fleche = monTD.getElementsByTagName("img")[0];
				
			if(fleche)
				fleche.src = "images/fleche.png";
		}
	}
}

function mouseOutMenu(id)
{
	//portion pour les flèches
	if(id.replace("mainLien", "") != menuOpened)
	{
		var monTD = document.getElementById("main" + id.replace("mainLien", ""));	
		if(monTD)
		{
			var fleche = monTD.getElementsByTagName("img")[0];
				
			if(fleche)
				fleche.src = "images/fleche2.png";
		}
	}
}

function clickMenu(idTexte)
{
	if(idTexte != mainTextShowed)
	{			
		clearTimeout(timerMain);
		
		animatingTexte = true;
		animatingDetails = true;
		//cacher le div de droite
		hideAndShowDetails(detailsShowed, 1, "");	
		detailsShowed = "";
		//cacher l'ancien div que l'on ne veut plus voir et montrer le nouveau div	
		hideAndShowMainTexte(mainTextShowed, 1, idTexte);	
	}	
}


function clickLienDiv(idTexte)
{		
	if(idTexte != detailsShowed && !animatingDetails)
	{	
		clearTimeout(timerDetails);

		animatingDetails = true;
		//cacher l'ancien div que l'on ne veut plus voir et montrer le nouveau div	
		hideAndShowDetails(detailsShowed, 1, idTexte);			
	}		
}

function showSubMenu(idSub)
{
	subMenuShowed = idSub;
	//Aller chercher les sous menus. 
	var menu = document.getElementById("menu");
		
	var lesSubs = menu.getElementsByTagName("td");
		
	//changer le lien visité
	lienMainBleu(idSub.substring(3));
		
	if(document.getElementById(idSub) != null)
	{	
		setOpacity(document.getElementById(idSub), 1);
	}
}

function showMainTexte(idTexte)
{
	mainTextShowed = idTexte;
	//Aller chercher les sous menus. 
	var texte = document.getElementById(idTexte);
			
	if(texte != null)
	{	
		setOpacity(texte, 1);
		texte.style.display = "block";
	}
}

function clickMain(idMain)
{
	if(!animatingTexte && !animatingSubs && !animatingDetails)
	{
		//pour savoir quel menu est ouvert dans les mouseover
		menuOpened = idMain.replace("texte", "");
		
		clickMenu(idMain);
		
		lienMainBleu(idMain.substring(5));

		//s'il y avait un sous menu à afficher
		if(showSubMenuAnim("sub" + idMain.substring(5)))
		{
			sousLienBleu(idMain.substring(5));
		}
	}
}

function clickSub(idSub)
{
	if(!animatingTexte && !animatingSubs && !animatingDetails)
	{
		clickMenu(idSub);
		
		sousLienBleu(idSub.substring(5));
	}
}

function showSubMenuAnim(idSub)
{
	if(subMenuShowed != idSub)
	{
	
		subMenuShowed = idSub;
		animatingSubs = true;
		clearTimeout(timerMenu);
		//Aller chercher les sous menus. 
		var menu = document.getElementById("menu");
		
		var lesSubs = menu.getElementsByTagName("td");
		
		//cacher les sous menus que l'on ne veut plus voir, et trouver le div à afficher
		for(var i = 0; i < lesSubs.length; i++)
		{		
			if(lesSubs[i].id.indexOf("sub") == 0 && lesSubs[i].id != idSub)
			{
				changeLinksToSpans(lesSubs[i].id);
				hideGradualMenu(lesSubs[i].id, lesSubs[i].style.opacity);
			}
		}	
		
		if(document.getElementById(idSub) != null)
		{	
			//démarrer l'affichage graduel
			changeSpansToLinks(idSub);
			timerMenu = setTimeout("showGradualMenu('" + idSub + "', 0.2)", 25);
			return true;
		}	
		else
		{
			animatingSubs = false;	
			return false;
		}
	}
	else return false;
}

function setOpacity(element, newopac)
{
	//pour le div que l'on doit afficher, mettre l'opacité à zéro
	element.style.MozOpacity = newopac;	
	element.style.opacity = newopac;
	element.style.filter = 'alpha(opacity=' + newopac*100 + ')';
}

function tieLinks()
{
	//obtenir les liens dans le texte du centre
	var divGauche = document.getElementById("contentgauche");
	var liens = divGauche.getElementsByTagName("a");
	
	//pour chaque lien, vérifier que c'est un lien avec un id, ce qui signifie qu'il pointe 
	for(var iLien = 0; iLien < liens.length; iLien++)
	{
		if(liens[iLien].id.indexOf("texteLiens") == 0)
		{
			//changer le gestionnaire d'évènements du onclick de chacun des liens.	
			if(document.getElementById("details" + liens[iLien].id.substring(10) != null));
				liens[iLien].onclick = new Function("clickLienDiv('details" + liens[iLien].id.substring(10) + "'); return false;"); 			
		}		
	}	
	
	var areas = divGauche.getElementsByTagName("area");
	
	//pour chaque lien, vérifier que c'est un lien avec un id, ce qui signifie qu'il pointe 
	for(var iArea = 0; iArea < areas.length; iArea++)
	{
		if(areas[iArea].id.indexOf("texteLiens") == 0)
		{
			//changer le gestionnaire d'évènements du onclick de chacun des liens.	
			if(document.getElementById("details" + areas[iArea].id.substring(10) != null));
				areas[iArea].onclick = new Function("clickLienDiv('details" + areas[iArea].id.substring(10) + "'); return false;"); 			
		}		
	}	
}

function tieMenuLinks()
{
	//obtenir les liens dans le texte du centre
	var menu = document.getElementById("menu");
	var liens = menu.getElementsByTagName("a");
	
	//pour chaque lien, vérifier que c'est un lien avec un id, ce qui signifie qu'il pointe 
	for(var iLien = 0; iLien < liens.length; iLien++)
	{
		if(liens[iLien].id.indexOf("mainLien") == 0)
		{			
			//changer le gestionnaire d'évènements du onclick de chacun des liens.	
			if(document.getElementById("texte" + liens[iLien].id.substring(8) != null));
				liens[iLien].onclick = new Function("clickMain('texte" + liens[iLien].id.substring(8) + "'); return false;"); 			
		}
		else if(liens[iLien].id.indexOf("sousLien") == 0)
		{
			if(document.getElementById("texte" + liens[iLien].id.substring(9) != null));
				liens[iLien].onclick = new Function("clickSub('texte" + liens[iLien].id.substring(8) + "'); return false;"); 			
		}
	}	
}

//fonction d'initialisation
function init()
{
	hideSubs();
	hideDetails();
	hideMainTexte();
	tieMenuLinks();
	tieLinks();
	//tieMains();
	showSubMenu("sub1");
	showMainTexte("texte1");
	menuOpened = 1;	
	sousLienBleu(1);
	styleSwitcher();
	changeLinksToSpans("sub4");
}

function hideDetails()
{
	var racineDroite = document.getElementById("contentdroite");
	var lesDivs = racineDroite.getElementsByTagName("div");
	
	//cacher les divs que l'on ne veut plus voir, et trouver le div à afficher
	for(var i = 0; i < lesDivs.length; i++)
	{		
		if(lesDivs[i].id.indexOf("details") == 0)
			lesDivs[i].style.display="none";	
	}	
}

function hideMainTexte()
{
	var racineGauche = document.getElementById("contentgauche");
	var lesDivs = racineGauche.getElementsByTagName("div");
	
	//cacher les divs que l'on ne veut plus voir, et trouver le div à afficher
	for(var i = 0; i < lesDivs.length; i++)
	{		
		if(lesDivs[i].id.indexOf("texte") == 0)
			lesDivs[i].style.display="none";	
	}	
}

function changeLinksToSpans(idRacine)
{
	//changer liens du menu en span 
	var racine = document.getElementById(idRacine);
	
	var liens = racine.getElementsByTagName("a");
		
	for(var i = 0; i < liens.length; )
	{
		var nouveauSpan = document.createElement("span");
		nouveauSpan.id = liens[i].id;
		nouveauSpan.className = liens[i].className;
		nouveauSpan.innerHTML = liens[i].innerHTML;
		liens[i].parentNode.replaceChild(nouveauSpan, liens[i]); 
	}	
}

function changeSpansToLinks(idRacine)
{
	//changer liens du menu en span 
	var racine = document.getElementById(idRacine);
	
	var spans = racine.getElementsByTagName("span");
		
	for(var i = 0; i < spans.length; )
	{		
		var nouveauLien = document.createElement("a");
		nouveauLien.id = spans[i].id;
		nouveauLien.onclick = new Function("clickSub('texte" + spans[i].id.substring(8) + "'); return false;");
		nouveauLien.className = spans[i].className;
		nouveauLien.href="#";
		//porter le onClick ici
		//nouveauLien.onclick = 
		nouveauLien.innerHTML = spans[i].innerHTML;
		spans[i].parentNode.replaceChild(nouveauLien, spans[i]); 
	}	
}

function hideSubs()
{
	//obtenir les liens dans le texte du centre
	var racineLiens = document.getElementById("menu");
	var tds = racineLiens.getElementsByTagName("td");
	
	//pour chaque lien, vérifier que c'est un lien avec un id, ce qui signifie qu'il pointe 
	for(var iTD = 0; iTD < tds.length; iTD++)
	{
		if(tds[iTD].id.indexOf("sub") == 0)
			setOpacity(tds[iTD], 0.2);	
	}
}


function showGradualDetails(idTexte, opacity)
{
	var divDetails = document.getElementById(idTexte);
	
	if(divDetails != null)
	{
		setOpacity(divDetails, opacity);
		
		if(opacity < 1)
		{
			var newopacity = opacity + 0.1;
			timerDetails = setTimeout("showGradualDetails('" + idTexte +"'," + newopacity + ")", 25);
		}
		else
		{
			detailsShowed = idTexte;
			animatingDetails = false;
		}	
	}	
	else
		animatingDetails = false;
}


function showGradualMain(idTexte, opacity)
{
	var divDetails = document.getElementById(idTexte);
	
	if(divDetails != null)
	{
		setOpacity(divDetails, opacity);
		
		if(opacity < 1)
		{
			var newopacity = opacity + 0.1;
			timerDetails = setTimeout("showGradualMain('" + idTexte +"'," + newopacity + ")", 25);
		}
		else
		{
			mainTextShowed = idTexte;
			animatingTexte = false;
		}	
	}
	else
		animatingTexte = false;
}

function showGradualMenu(idMenu, opacity)
{
	var subMenu = document.getElementById(idMenu);
	setOpacity(subMenu, opacity);
	
	if(opacity < 1)
	{
		var newopacity = opacity + 0.1;
		timerMenu = setTimeout("showGradualMenu('" + idMenu +"'," + newopacity + ")", 25);
	}
	else
	{
		if (document.attachEvent) 
			document.getElementById(idMenu).style.display="block";	
		else
			document.getElementById(idMenu).style.display="table-cell";	
		animatingSubs = false;
	}
}

function hideGradualMenu(idTexte, opacity)
{
	var divDetails = document.getElementById(idTexte);
	setOpacity(divDetails, opacity);

	if(opacity >= 0.2)
	{
		var newopacity = opacity - 0.1;
		timerMenu = setTimeout("hideGradualMenu('" + idTexte +"'," + newopacity + ")", 25);
	}
	else
		animatingSubs = false;
}

function hideAndShowDetails(idTexteToHide, opacity, idTexteToShow)
{
	var divDetails = document.getElementById(idTexteToHide);
	
	if(divDetails != null)
	{
		setOpacity(divDetails, opacity);

		if(opacity >= 0)
		{
			var newopacity = opacity - 0.1;
			timerDetails = setTimeout("hideAndShowDetails('" + idTexteToHide +"'," + newopacity + ",'" + idTexteToShow + "')", 25);
		}
		else
		{
			divDetails.style.display = "none";
			//pour le div que l'on doit afficher, mettre l'opacité à zéro
			var toShow = document.getElementById(idTexteToShow);
			if(toShow != null)
			{
				setOpacity(toShow, 0);	
				toShow.style.display="block";
				//démarrer l'affichage graduel
				timerDetails = setTimeout("showGradualDetails('" + idTexteToShow +"', 0.1)", 25);	
			}
			else
			{
				animatingDetails = false;
				detailsShowed = idTexteToShow;
			}
		}
	}
	else
	{
			//pour le div que l'on doit afficher, mettre l'opacité à zéro
			var toShow = document.getElementById(idTexteToShow);
			if(toShow != null)
			{
				setOpacity(toShow, 0);	
				toShow.style.display="block";
				//démarrer l'affichage graduel
				timerDetails = setTimeout("showGradualDetails('" + idTexteToShow +"', 0.1)", 25);	
			}
			else
			{
				animatingDetails = false;
				detailsShowed = idTexteToShow;
			}
	}	
}

function hideAndShowMainTexte(idTexteToHide, opacity, idTexteToShow)
{
	var divMainTexte = document.getElementById(idTexteToHide);
	
	if(divMainTexte != null)
	{
		setOpacity(divMainTexte, opacity);

		if(opacity >= 0)
		{
			var newopacity = opacity - 0.1;
			timerMain = setTimeout("hideAndShowMainTexte('" + idTexteToHide +"'," + newopacity + ",'" + idTexteToShow + "')", 25);
		}
		else
		{
			divMainTexte.style.display = "none";
			//pour le div que l'on doit afficher, mettre l'opacité à zéro
			var toShow = document.getElementById(idTexteToShow);
			if(toShow != null)
			{
				setOpacity(toShow, 0);	
				toShow.style.display="block";
				//démarrer l'affichage graduel
				timerMain = setTimeout("showGradualMain('" + idTexteToShow +"', 0.1)", 25);	
			}
			else
			{
				animatingTexte = false;
				mainTextShowed = idTexteToShow;
			}
		}
	}
	else
	{
			var toShow = document.getElementById(idTexteToShow);
			if(toShow != null)
			{
				setOpacity(toShow, 0);	
				toShow.style.display="block";
				//démarrer l'affichage graduel
				timerMain = setTimeout("showGradualMain('" + idTexteToShow +"', 0.1)", 25);	
			}
			else
			{
				animatingTexte = false;
				mainTextShowed = idTexteToShow;
			}
	}	
}