/************************************************************************
DESCRIPTION : code JScript pour la colonne dynamique
AUTEUR/DATE DE CREATION : OCA - 14/08/09
FICHIER LIANT : Section_Event_Links_Column02.asp et  Section_Event_Links_Column.asp
------------------------------------------------------------------------------------------------------------|
AUTEUR/DATE DE MODIFICATION : OCA - 14/10/09
TYPE DE MODIFICATION : ouverture du mois en fonction de la date de l'evenement
------------------------------------------------------------------------------------------------------------|
A FAIRE : £ - s'occuper de la partie archive (une div) - rendre dynamique comme les div mois 
£ - refondre les anciennes page evenement pour ne plus utiliser qu'une seul page :  
'Section_Event_Links_Column.asp'
************************************************************************/

var myMenu;
	window.onload = function() {
		myMenu = new SDMenu("my_menu");
		myMenu.init();
		chargement().submit();
	};
	
//------- settings ---------------------/
function SDMenu(id) {

	//verification si absence de recuperation d'objet par ID ou TAGNAME = return fauxxx
	if (!document.getElementById || !document.getElementsByTagName)
		return false;
	//definition du chemin du menu
	this.menu = document.getElementById(id);
	//definition du chemin des sous-menu
	this.submenus = this.menu.getElementsByTagName("div");
	//application ou non du remember =  retient les onglets dans la position où ils sont grace a un cookie
	this.remember = false;
	//definition de la vitesse de deroulement
	this.speed = 3;
	//
	this.markCurrent = true;
	//definition si un seul onglet bouge = true or false
	this.oneSmOnly = true;
}


//------- basement function ---------------------/
SDMenu.prototype.init = function() {
	var mainInstance = this;
	for (var i = 0; i < this.submenus.length; i++)
		this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
			mainInstance.toggleMenu(this.parentNode);
		};
	if (this.markCurrent) {
		var links = this.menu.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++)
			if (links[i].href == document.location.href) {
				links[i].className = "current";
				break;
			}
	}
	if (this.remember) {
		var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)");
		var match = regex.exec(document.cookie);
		if (match) {
			var states = match[1].split("");
			for (var i = 0; i < states.length; i++)
				this.submenus[i].className = (states[i] == 0 ? "collapsed" : "");
		}
	}
};


//------- toogleMenu ---------------------/
//------- type : openClosed, closedOpen - inutile dans cette page ---------------------/
SDMenu.prototype.toggleMenu = function(submenu) {
	if (submenu.className == "collapsed")
		this.expandMenu(submenu);
	else
		this.collapseMenu(submenu);
};


//------- expandMenu ---------------------/
SDMenu.prototype.expandMenu = function(submenu) {
	var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
	var links = submenu.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
		fullHeight += links[i].offsetHeight;
	var moveBy = Math.round(this.speed * links.length);
	
	var mainInstance = this;
	var intId = setInterval(function() {
		var curHeight = submenu.offsetHeight;
		var newHeight = curHeight + moveBy;
		if (newHeight < fullHeight)
			submenu.style.height = newHeight + "px";
		else {
			clearInterval(intId);
			submenu.style.height = "";
			submenu.className = "";
			mainInstance.memorize();
		}
	}, 30);
	this.collapseOthers(submenu);
};


//------- collapseMenu ---------------------/
SDMenu.prototype.collapseMenu = function(submenu) {
	var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
	var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length);
	var mainInstance = this;
	var intId = setInterval(function() {
		var curHeight = submenu.offsetHeight;
		var newHeight = curHeight - moveBy;
		if (newHeight > minHeight)
			submenu.style.height = newHeight + "px";
		else {
			clearInterval(intId);
			submenu.style.height = "";
			submenu.className = "collapsed";
			mainInstance.memorize();
		}
	}, 30);
};


//------- collapseOtherWhenOneisOpen ---------------------/
SDMenu.prototype.collapseOthers = function(submenu) {
	if (this.oneSmOnly) {
		for (var i = 0; i < this.submenus.length; i++)
			if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed")
				this.collapseMenu(this.submenus[i]);
	}
};


//------- expand all menu ---------------------/
SDMenu.prototype.expandAll = function() {
	var oldOneSmOnly = this.oneSmOnly;
	this.oneSmOnly = false;
	for (var i = 0; i < this.submenus.length; i++)
		if (this.submenus[i].className == "collapsed")
			this.expandMenu(this.submenus[i]);
	this.oneSmOnly = oldOneSmOnly;
};


//------- collapse all menu ---------------------/
SDMenu.prototype.collapseAll = function() {
	for (var i = 0; i < this.submenus.length; i++)
		if (this.submenus[i].className != "collapsed")
			this.collapseMenu(this.submenus[i]);
};


//------- memorize menu - cookie ---------------------/
SDMenu.prototype.memorize = function() {
	if (this.remember) {
		var states = new Array();
		for (var i = 0; i < this.submenus.length; i++)
			states.push(this.submenus[i].className == "collapsed" ? 0 : 1);
		var d = new Date();
		d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
		document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/";
	}
};

//################################## OUVERTURE D4UNE DIV EN FOINCTION DE L'URL ################################################//


//on recupere l'url de la page
var uriCourant = document.location.pathname;
//alert(uriCourant); //on affiche en pop up
 //lastIndexOf : recherche un bloc de caractere ; de la droite vers la gauche, c'est l'inverse de "IndexOf"
var indiceDepart = uriCourant.lastIndexOf('/')+1; // Plus 1 car on ne veut pas le '/'.
var indiceArrivee = uriCourant.length-4; // Moins les 4 caractères de l'extension. (.asp)
 //on extrait les caractères entre indiceDepart et indiceArrivee
var nomPage = uriCourant.substring(indiceDepart, indiceArrivee);
//alert(nomPage); //on affiche en pop up



//on definit le type de page (page mois sept = 1 ; page mois oct = 2 ; page mois nov = 3 ; page mois dec = 4)

if ( (nomPage == "festival-colombo-madeira")
 || (nomPage == "red-bull-air-race-portugal")
 || (nomPage == "festa-avante-portugal")) {

 var typePage = 'sept'
 }

else if ( (nomPage == "programa-allgarve")
 || (nomPage == "festa-marisco-grove.asp")
 || (nomPage == "peregrinacao-fatima")) {

 var typePage = 'octo'
 }

else if ( (nomPage == "feira-nacional-cavalo")
 || (nomPage == "guimaraes-jazz")
 || (nomPage == "festival-madeira-gourmet")
 || (nomPage == "arte-lisboa")
 || (nomPage == "cinanima")) {

 var typePage = 'nove'
 }

else {

 var typePage = 5
 }

//deroulement de la div en fonction du type de page
function chargement() {
	if (typePage == 'sept') { myMenu.expandMenu(myMenu.submenus[0]).submit();
	}else if (typePage == 'octo') { myMenu.expandMenu(myMenu.submenus[1]).submit();
	}else if (typePage == 'nove') { myMenu.expandMenu(myMenu.submenus[2]).submit();
	}else { myMenu.expandMenu(myMenu.submenus[3]).submit();}
}


/************************************************************************
------------------------------------------- FIN DU CODE ------------------------------------------------|
************************************************************************/