//Marge entre le bas du contenu et le bas du navigateur
var marginBottom = 0;
var marginTop = 10;
var marginLinksBottom = 30;
var marginLinksTop = 10;

var linksTopPos = new Array();

function updatePagePos(){	
	//On commence par cacher l'ascenseur principal
	document.body.style.overflow = "hidden";
	
	//On récupère la hauteur de la page
	var bodyHeight = document.body.offsetHeight;
	
	var newContentsHeight = bodyHeight - marginTop - marginBottom;
	
	document.getElementById("contents").style.height = newContentsHeight + "px";
	document.getElementById("contents").style.top = marginTop + "px";
	document.getElementById("contents").style.overflow = "auto";
}

function initLinks(debug){
	var overLinks = document.getElementById("overLinks");
	
	overLinks.innerHTML = "";
	
	//On parcours tous les liens de la page
	var links = document.getElementsByTagName("a");
	var tabLinks = new Array();
	for(var i = 0; i < links.length; i++){
		tabLinks[i] = links[i];
	}
	
	for(i = 0; i < tabLinks.length; i++){

		var lnk = tabLinks[i];
		
		if(lnk.rel != "noOverLink"){
		
			//On enregistre la valeur de la propriété display
			var origDisplay = lnk.style.display;
			//On le passe en display:block (sinon bug firefox)
			lnk.style.display = "inline-block";
			//On récupère sa taille et sa position
			var pos = getLnkPosition(lnk);
			var size = getLnkSize(lnk);		
			
			//On lui réapplique sa position d'origine
			lnk.style.display = origDisplay;
			
			var id=" id=\"idLinkOver_" + i + "\"";
			if(lnk.id == "" || lnk.id == undefined){
				lnk.id = "idLink_" + i;
			}
			
			var oncl = "";
			if(lnk.onclick != "" && lnk.onclick != undefined){
				oncl = " onclick=\"" + lnk.onclick + "\"";
			}
			var bgCol = "";
			if(debug){
				bgCol = "background-color:#FF0000;";
			}else if(isIE()){
				bgCol = "background-color:#FFFFFF;opacity:0;filter:alpha(opacity=0);";
			}
			var title = "";
			if(lnk.title != "" && lnk.title != undefined){
				title = " title=\"" + lnk.title + "\"";
			}
			var alt = "";
			if(lnk.alt != "" && lnk.alt != undefined){
				alt = " alt=\"" + lnk.alt + "\"";
			}
			var target = "";
			if(lnk.target != "" && lnk.target != undefined){
				target = " target=\"" + lnk.target + "\"";
			}
			
			//On dessine un nouveau lien, dans le calque overLinks qui reprendra la taille et la position de l'original
			overLinks.innerHTML += "<a href=\"" + lnk.href + "\" " + id + " " + oncl + " style=\""+ bgCol + "position:absolute;display:block;top:" + pos[1] + "px;left:" + pos[0] + "px;width:" + size[0] + "px;height:" + size[1] + "px;\" " + alt + " " + title + " " + target + "></a>";
			
			linksTopPos[i] = pos[1];
		}
		
		
	}
	overLinks.style.display = "block";
	overLinks.style.top = marginLinksTop + "px";
	//overLinks.style.bottom = "0px";
	//overLinks.style.position = "relative";
	//overLinks.style.height = "120px";
	
	//On applique les évenements onMouseOver et onMouseOut
	for(i = 0; i < tabLinks.length; i++){
		var lnk = tabLinks[i];
		
		if(lnk.onmouseover != "" && lnk.onmouseover != undefined){
			document.getElementById("idLinkOver_" + i).onmouseover = lnk.onmouseover;
		}

		if(lnk.onmouseout != "" && lnk.onmouseout != undefined){
			document.getElementById("idLinkOver_" + i).onmouseout = lnk.onmouseout;
		}
	}
}


function updateLinksPos(){
	var overLinks = document.getElementById("overLinks");
	var contents  = document.getElementById("contents");
	overLinks.style.top = (contents.scrollTop*-1) + "px";
	//overLinks.scroll = contents.scrollTop;
	var contentsHeight = parseInt(document.getElementById("contents").style.height);
	
	//On parcours tous les liens pour n'afficher que ceux pour lesquels c'est nécessaire
	for(var i = 0; i < linksTopPos.length; i++){
		if(linksTopPos[i] != null && linksTopPos[i] != undefined){
			var lnkTopPos = linksTopPos[i];
			if(lnkTopPos > contents.scrollTop + contentsHeight - 80){	//120 correspond à la hauteur de la vidéo placée au dessus
				document.getElementById("idLinkOver_" + i).style.display = "block";
			}else{
				document.getElementById("idLinkOver_" + i).style.display = "none";
			}
		}
	}
}

function getLnkPosition(e){
	var left = 0;
	var top = 0;
	/*On récupère l'élément*/
	//var e = document.getElementById(element);
	/*Tant que l'on a un élément parent*/
	while (e.offsetParent != undefined && e.offsetParent != null)
	{
		/*On ajoute la position de l'élément parent*/
		left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
		top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
		e = e.offsetParent;
	}
	return new Array(left,top);
}
function getLnkSize(e){
	var height = null;
	var width = null;
	if (e.offsetWidth) { 
		width = e.offsetWidth;
		height = e.offsetHeight;
	} else {
		width = e.style.pixelWidth;
		height = e.style.pixelHeight;
	}
	return new Array(width,height);
}

function isIE(){
	return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}

function init(etatBandeau){

	if(!etatBandeau){	//Le bandeau doit être fermé
	
		var newTopBandeauHeight = 233;	//Valeurs par défaut
		var newAllBandeauHeight = 275;	//correspondant au bandeau ouvert
		newTopBandeauHeight = newTopBandeauHeight - totHeightSlideBandeau;
		newAllBandeauHeight = newAllBandeauHeight - totHeightSlideBandeau;
	
		document.getElementById("topBandeau").style.height = newTopBandeauHeight + "px";
		document.getElementById("bandeau").style.height = newAllBandeauHeight + "px";
		
		bandeauOuvert = false;
	}
	
	//Positionnement de la page
	updatePagePos();
	//Création des liens au dessus la vidéo
	initLinks(false);
	//Mise à jour de la position des liens
	updateLinksPos();

	//Mise à jour de la position des liens à chaque mouvement d'ascenseur
	document.getElementById("contents").onscroll = scrollContentsEvent;
	function scrollContentsEvent() {
	   updateLinksPos();
	}

	//Mise à jour du positionnement de la page et des liens à chaque resize de la fenêtre
	window.onresize = resizePage;
	function resizePage(){
		updatePagePos();
		updateLinksPos();
	}
}

var bandeauOuvert = true;
var bandeauEnCours = false;
var totHeightSlideBandeau = 175;

function toggleBandeau(){
	
	
	if(!bandeauEnCours){	//Si le bandeau n'est pas déjà en mouvement
		bandeauEnCours = true;
		
		var newTopBandeauHeight = 233;	//Valeurs par défaut
		var newAllBandeauHeight = 275;	//correspondant au bandeau ouvert
		
		if(bandeauOuvert){	//On  veut fermer le bandeau
			var newTopBandeauHeight = newTopBandeauHeight - totHeightSlideBandeau;
			var newAllBandeauHeight = newAllBandeauHeight - totHeightSlideBandeau;
		
		}
		
		var slideEffectTop = new Fx.Morph('topBandeau', {duration: 500});
		slideEffectTop.start({
			'height': newTopBandeauHeight, //Morphs the height from the current to 100px.
		});
		
		var slideEffectAll = new Fx.Morph('bandeau', {duration: 500, onComplete: function(){bandeauEnCours = false;initLinks(false);updateLinksPos();}});
		slideEffectAll.start({
			'height': newAllBandeauHeight, //Morphs the height from the current to 100px.
		});
		
		if(bandeauOuvert){
			bandeauOuvert = false;
		}else{
			bandeauOuvert = true;
		}

	}
}
