/* Gestion des attributs "DefaultValue" sur les INPUT de type texte (text,password,textarea) */
$(document).ready(function()
{
	//Définir les evenements focus et blur
	var inputSelector = "input[type='text'], input[type='password'], textarea";
	$(inputSelector).each(function()
	{
		//Pour chaque input text, récupérer sa defaultValue
		var defaultValue = $(this).attr("defaultvalue");
		if(defaultValue)
		{
			//Si cet input a un attribut defaultValue défini, on lui assigne les évènements
			$(this).focus(inputFocus);
			$(this).blur(inputBlur);
			$(this).blur();
		}
	});
	
	//Lors d'une validation de formulaire, réinitialiser les defaultValue pour éviter de les envoyer
	$("input[type='submit'], input[type='image']").click(function()
	{
		$(inputSelector).each(function()
		{
			var defaultValue = $(this).attr("defaultvalue");
			if(defaultValue)
			{
				if($(this).val() == defaultValue)
					$(this).val("");
			}
		});
	});
});
function inputFocus()
{
	//Dans tous les cas on enlève la classe spéciale
	$(this).removeClass("defaultValue");
		
	var defaultValue = $(this).attr("defaultvalue");
	if($(this).val() == defaultValue)
	{
		//Quand on focus un input, s'il était sur sa defaultValue, on vide la valeur
		$(this).val("");
	}
}
function inputBlur()
{
	var defaultValue = $(this).attr("defaultvalue");
	if($(this).val() == "" || $(this).val() == defaultValue)
	{
		//Quand on défocus un input, s'il était sur sa defaultValue ou vide, on met sa valeur sur defaultValue et on assigne la classe spéciale
		$(this).addClass("defaultValue");
		$(this).val(defaultValue);
	}
}




/* Gestion de la page courante surlignée dans le menu, et animation de départ */
var currentMenuItem;
var currentSubMenuItem;
var currentMenuItemHighlighted;
var menuItems = new Array();
$(document).ready(function()
{
	var i = 0;
	$("div.mainMenuContent > ul > li").each(function()
	{
		menuItems[i++] = $(this);
	});
	currentMenuItemHighlighted = 0;
	
	highlightMenuItem(currentMenuItem, currentSubMenuItem);
});
function highlightNextMenuItem()
{
	highlightMenuItem(currentMenuItemHighlighted, -1);
	
	//Envoyer le suivant
	var delay = 250;
	if(currentMenuItemHighlighted < menuItems.length - 1)
	{
		currentMenuItemHighlighted++;
		setTimeout(highlightNextMenuItem, delay);
	}
	else
		setTimeout(highlightMenuItem, delay, currentMenuItem, currentSubMenuItem);
}
function highlightMenuItem(index, subIndex)
{
	//Highlight du menu
	for (var i = 0; i < menuItems.length; i++)
	{
		if (i == index)
			menuItems[i].addClass("selected");
		else
			menuItems[i].removeClass("selected");
	}
	
	//Highlight du sous-menu
	showSubMenuPermanent(index, subIndex);
}




/* Survol menu principal et création du sous-menu */
var globalHideTimeoutId;
$(document).ready(function()
{
	//Lorsque le document est prêt
	
	$("div.mainMenuContent > ul > li > a").each(function()
	{
		//Définir les actions du menu principal
		if($(this).attr("links"))
		{
			$(this).mouseover(showSubMenu);
			//$(this).mouseout(hideSubMenuTimeout);
		}
	});
	
	$("ul.subMenu").each(function()
	{
		//Définir les actions du sous-menu
		$(this).mouseover(function()
		{
			clearTimeout(globalHideTimeoutId);
		});
		//$(this).mouseout(hideSubMenuTimeout);
	});
});
function showSubMenu()
{
	//Définir les éléments du sous menu
	var subMenu = $("ul.subMenu");
	subMenu.empty();
	var links = $(this).attr("links");
	links = links.split(',');
	for(var i = 0; i < links.length; i++)
	{
		var tmp = links[i].split(':');
		var name = tmp[0];
		var url = tmp[1];
		var sameMenu = menuItems[currentMenuItem].find("a").attr("links") == $(this).attr("links");
		var cssClass = (sameMenu && i == currentSubMenuItem) ? " class='selected'" : "";
		
		var li = $("<li><a href='"+url+"'"+cssClass+">"+name+"</a></li>");
		subMenu.append(li);
	}
	
	//L'afficher
	clearTimeout(globalHideTimeoutId);
	subMenu
		.stop()
		.animate({width:"50%", opacity:"1"});
}
function hideSubMenuTimeout()
{
	globalHideTimeoutId = setTimeout(hideSubMenu, 1500);
}
function hideSubMenu()
{
	$("ul.subMenu")
		.stop()
		.animate({width:"0%", opacity:"0"});
}
function showSubMenuPermanent(index, subIndex)
{	
	/*if(subIndex < 0)
		return;*/
		
	//Définir les éléments du sous menu
	var subMenu = $("ul.subMenu");
	subMenu.empty();
	var links = menuItems[index].find("a").attr("links");
	try {
		links = links.split(',');
	} catch(err) {
		return;
	}
	for(var i = 0; i < links.length; i++)
	{
		var tmp = links[i].split(':');
		var name = tmp[0];
		var url = tmp[1];
		var cssClass = (i == subIndex) ? " class='selected'" : "";
		
		var li = $("<li><a href='"+url+"'"+cssClass+">"+name+"</a></li>");
		subMenu.append(li);
	}
	
	//L'afficher
	clearTimeout(globalHideTimeoutId);
	subMenu
		.stop()
		.animate({width:"50%", opacity:"1"});
}




/* Bannière avec contenu chargé en "Ajax" sur la page d'accueil  */
var ajaxBannerSwitchDelayAfterClick = 15000;
var ajaxBannerSwitchDelayAuto = 10000;
var ajaxBannerCurrentIndex = 0;
var ajaxBannerMaxIndex;
var ajaxBannerAutoSwitchId;
function showAjaxBannersLinks(num)
{
	numAjaxBanners = num;
	
	//Vider
	var ctnr = $("div#ajaxBanners");
	ctnr.empty();
	
	//Remplir
	for(var i = 1; i <= numAjaxBanners; i++)
	{
		var el = $("<a id='ajaxBannerLink" + i + "' href='javascript:;' onclick='ajaxBannerLink_Click(" + (i - 1) + ")'>" + i + "</a>");
		ctnr.append(el);
		el.mouseover(stopAjaxBannerAutoSwitch);
		el.mouseout(startAjaxBannersAutoSwitch);
	}
}
function ajaxBannerLink_Click(idx)
{
	stopAjaxBannerAutoSwitch();
	showAjaxBanner(idx);
	ajaxBannerAutoSwitchId = setTimeout(function()
	{
		ajaxBannerCurrentIndex++;
		if(ajaxBannerCurrentIndex >= ajaxBannerMaxIndex)
			ajaxBannerCurrentIndex = 0;
		startAjaxBannersAutoSwitch();
	}, ajaxBannerSwitchDelayAfterClick - ajaxBannerSwitchDelayAuto);
}
function showAjaxBanner(idx)
{
	ajaxBannerCurrentIndex = idx;
	//Loading
	var ctnr = $("div.headerContent > p");
	ctnr
		.stop()
		.animate({opacity:"0"}, 300);
	var position = ctnr.position();
	$("img#ajaxLoading")./*animate({opacity:"1"}, 300)*/slideDown(300);
	
	//Afficher le bon lien en selected
	var targetId = "ajaxBannerLink" + (idx + 1);
	for(var i = 1; i <= numAjaxBanners; i++)
	{
		var id = "ajaxBannerLink" + i;
		var lnk = $("a#" + id);
		
		if(id == targetId)
		{
			//Sélectionné
			lnk.addClass("selected");
		}
		else
		{
			//Non sélectionné
			lnk.removeClass("selected");
		}
	}
	
	//Charger
	setTimeout(function()
	{
		$.ajaxSetup({ scriptCharset: "utf-8" });
		$.ajax({
			cache: false,
			url: "ajaxBanners/" + idx + ".html",
			dataType: "html",
			success: showAjaxBanner_DataReceived,
			scriptCharset: "utf-8",
			error: function()
			{
				showAjaxBanner_DataReceived("<span style='color:Red'>Erreur de récupération asynchrone.</span>");	
			}
			});
	},
	300);                
}
function showAjaxBanner_DataReceived(data)
{
	setTimeout(function()
	{		
		//Afficher
		var ctnr = $("div.headerContent > p");
		ctnr
			.empty()
			.stop()
			.animate({opacity:"1"}, 300)
			.append(data);
			
		$("img#ajaxLoading")./*animate({opacity:"0"}, 300)*/slideUp(300);
	},
	25);
}
function startAjaxBannersAutoSwitch()
{
	stopAjaxBannerAutoSwitch();
	ajaxBannerAutoSwitchId = setInterval(function()
	{
		showAjaxBanner(ajaxBannerCurrentIndex);
		ajaxBannerCurrentIndex++;
		if(ajaxBannerCurrentIndex >= ajaxBannerMaxIndex)
			ajaxBannerCurrentIndex = 0;
	}, ajaxBannerSwitchDelayAuto);
}
function stopAjaxBannerAutoSwitch()
{
	clearInterval(ajaxBannerAutoSwitchId);
}




/* Animations et évènements pour les vignettes de projets-opérations */
var hideDescriptionTimeout = new Array();
var currentlyShowingDescription = new Array();
var operationDescriptionMargin = "50%";
$(document).ready(function()
{
	$("div.operationContainer")
		.each(function()
		{
			$(this).mouseover(showOperationDescription);
			$(this).mouseout(function()
			{
				var index = parseInt($(this).attr("id").substr(9, 1));
				clearTimeout(hideDescriptionTimeout[index]);
				var current = $(this);
				hideDescriptionTimeout[index] = setTimeout(function()
					{
						current.each(hideOperationDescription);
					}, 1750);
			});
			//$(this).click(clickedOperation);
		})
		.each(hideOperationDescription);
});
function showOperationDescription()
{
	var index = parseInt($(this).attr("id").substr(9, 1));
	clearTimeout(hideDescriptionTimeout[index]);
	if(!currentlyShowingDescription[index])
	{
		currentlyShowingDescription[index] = true;
		$(this).find("p").each(function()
		{
			$(this)
				.stop()
				.animate({left:operationDescriptionMargin, opacity:"1"}, 500);
		});
		setTimeout(function()
		{
			currentlyShowingDescription[index] = false;
		}, 500);
	}
}
function hideOperationDescription()
{
	$(this).find("p:not(:animated)").each(function()
	{
		$(this)
			.stop()
			.animate({left:"99%", opacity:"0"}, 500);
	});
}
function clickedOperation()
{
	/*var index = parseInt($(this).attr("id").substr(9, 1));
	alert("afficher l'operation "+index);*/
}




/* Fonctions diverses */
$(document).scroll(function()
{
	var posY = $("div.pageBorder").position().top;
	posY -= $(document).scrollTop();
	posY = -Math.min(0, posY);
	posY = Math.min(800, posY);
	
	//$("div.pageBorder").css("background-position", "0px "+posY+"px");
	$("div.pageBorder").css("margin-top", posY+"px");
});
$(document).ready(function()
{
	$("a.iframe").fancybox({
		'overlayShow': true,
		'overlayColor': 'Black',
		'overlayOpacity': 0.7,
		'frameWidth': 850,
		'frameHeight': 600,
		'zoomOpacity': true,

		}); 
});
function showFancyIframe(url)
{

}