// pour tous les vieux fureteurs et si les fureteurs plantent, ne rien faire - si le javascript plante, les liens devraient fonctionner et on tombera dans 
// la version du site sans javascript
function rien() {return true;}
window.onerror = rien;

// fonction qui ajoute un zero si le texte en entree n'a qu'un seul chiffre (1 ->01)
function preZero(istr) {
	var str = '' + istr;
	if (str.length < 2) {
		str = '0' + str;
	}
	return str;
}
	
// fonction qui vérifie la présence de certains fureteur pour optimiser la fonctionnalité sur chacun de ces fureteurs
// en théorie, Netscape 6.22 et plus, Mozilla 1.0 et plus, Opera 7 et plus, et Ie 5.5 et plus
// sur Mac, Windows et Linux

function lib_bwcheck(){
	var bw = new Object();
	bw.ver=navigator.appVersion;
	bw.agent=navigator.userAgent;
	bw.dom=document.getElementById?1:0;
	bw.win=bw.agent.indexOf("Win")>-1;
	bw.operaOld=((!bw.dom)&&bw.agent.indexOf("Opera")>-1);
	bw.opera5=bw.agent.indexOf("Opera 5")>-1;
	bw.opera5=bw.agent.indexOf("Opera/5")>-1;
	bw.opera6=bw.agent.indexOf("Opera 6")>-1;
	bw.opera6=bw.agent.indexOf("Opera/6")>-1;
	bw.operaM=(bw.opera5||bw.opera6);	
	bw.opera7p=(!bw.operaOld)&&(!bw.operaM)&&(bw.agent.indexOf("Opera")>-1);
	bw.opera=(bw.opera5||bw.opera6||bw.opera7p);
	bw.ie5=(bw.ver.indexOf("MSIE 5")>-1 && bw.dom && !bw.opera)?1:0; 
	bw.ie5_5=(bw.ver.indexOf("MSIE 5.5")>-1 && bw.dom && !bw.opera)?1:0; 	
	bw.ie6=(bw.ver.indexOf("MSIE 6")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie7=(bw.ver.indexOf("MSIE 7")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie4=(document.all && !bw.dom && !bw.opera5)?1:0;
	bw.ie6p=(bw.dom && (bw.ver.indexOf("MSIE")>-1))?1:0 
	bw.ie=bw.ie4||bw.ie5||bw.ie6||bw.ie6p||bw.ie7;
	bw.mac=bw.agent.indexOf("Mac")>-1;
	bw.ns6=(bw.dom && parseInt(bw.ver) >= 5 &&!bw.opera) ?1:0;
	bw.ns6p = bw.ns6; 
	bw.ns4=(document.layers && !bw.dom)?1:0;
	bw.bw=(bw.ie7 || bw.ie6 || bw.ie5 || bw.ie5_5  || bw.ns6 || bw.opera);
	return bw;
}
var bw = lib_bwcheck();

// fct pseudodreamweaver

var tabImg = new Array();

function preloadImg() {
	preload("img");
	preload("input");
	registerTagBehavior("a");
	registerTagBehavior("area");
}

function preload(tag) { 
  var elements = document.getElementsByTagName(tag);
  var objA;
  
  for (i=0;i<elements.length;i++) {
  	if (elements[i].src) {
	  	if (regExpPatternImgOff.test(elements[i].src)) {
	  		tabImg[i] = new Image();
	  		tabImg[i].src = elements[i].src.replace(regExpPatternImgOff, patternImgOn);
			if (!regExpImgMenu.test(elements[i].id)) {
				objA = chercheElementParent("a", elements[i]);	
				if (bw.ie && !bw.opera) {
					elements[i].onmouseover=swap;
					elements[i].onmouseout=restore;	
					if (objA) {
						objA.onfocus=swapChildImg;
						objA.onblur=restoreChildImg;			
					}
				} else  {
					elements[i].setAttribute("onmouseover", "swap(this)");	
					elements[i].setAttribute("onmouseout", "restore(this)");	
					if(objA) {
						objA.setAttribute("onfocus", "swapChildImg(this)");	
						objA.setAttribute("onblur", "restoreChildImg(this)");				
					}
				}	
			}
	  	}
	  }	
  }
} 
// fonction pour mouseover sur images
function swap(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOff, patternImgOn);
	} else {
		if (this) swap(this); 
	}
}

function restore(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOn, patternImgOff);
	} else {
		if (this) restore(this); 	
	}
}

function swapChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		swap(imgSwpObj);
	} else {
		if (this) swapChildImg(this); 
	}
}

function restoreChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		restore(imgSwpObj);
	} else {
		if (this) restoreChildImg(this); 
	}
}

var regExpPatternImgOff;
var regExpPatternImgOn;
var patternImgOn;
var patternImgOff;

function setPatternImgOver(patternOff, patternOn) {
	regExpPatternImgOff = new RegExp(patternOff);
	regExpPatternImgOn = new RegExp(patternOn);	
	patternImgOn = patternOn;
	patternImgOff = patternOff;	
}

setPatternImgOver("_0", "_1"); // pattern des url des images ayant un mouseover et devant etre preloadée
regExpImgMenu = new RegExp("^im"); // pattern des id des images faisant parties d'un menu

// les recherches se font sur un seul niveau, pas de recursivite pour questions de perf

function chercheElementParent(nomElement, domObj) {
	var objCourant = domObj.parentNode;
	// on essai juste avec le premier
	if (objCourant.nodeName.toLowerCase() == nomElement.toLowerCase()) return objCourant;
	else return false;	
}

function chercheElementEnfant(nomElement, domObj) {
	var objEnfants = domObj.childNodes;
	var objRech = false;
	for (i=0;i<objEnfants.length;i++) {
	   if (objEnfants[i].nodeType==1) {
			if (objEnfants[i].nodeName.toLowerCase() == nomElement.toLowerCase()) {
				objRech = objEnfants[i];
			}
		}
	}	
	return objRech;	
}

function enable(idBalise) {
	var balise;
	balise = document.getElementById(idBalise);
	if (balise) {
		balise.style.display='block';
	}
}

function disable(idBalise) {
	var balise;
	balise = document.getElementById(idBalise);
	if (balise) {
		balise.style.display='none';
	}
}

function parDessusSelect(state, idBalise, idIFrame) {
	var DivRef = document.getElementById(idBalise);
   	var IfrRef = document.getElementById(idIFrame);
	if(IfrRef && DivRef)
	{
		if(state)
	   	{
	   		IfrRef.style.width = DivRef.offsetWidth;
	    	IfrRef.style.height = DivRef.offsetHeight;
	    	IfrRef.style.top = (parseInt(DivRef.style.top) + 107) + "px";
	    	IfrRef.style.left = DivRef.style.left;
	    	IfrRef.style.zIndex = 0 ;
	    	IfrRef.style.display = "block";
	   	}
	   	else
	   	{
	    	IfrRef.style.display = "none";
	   	}
	}
}

// Fonction pour regénérer le captcha
function refreshCAPTCHA() 
{ 
	document.getElementById('CAPTCHA').src=document.getElementById('CAPTCHA').src + Date();
	document.forms[0].lettresEntresPourCaptcha.value = '';
	document.forms[0].lettresEntresPourCaptcha.focus();
}

// fonction qui permet d'ajouter un onclick pour un popup a une balise
// qui a une classe prédéfinie.

function registerTagBehavior(tag) {
	var elements = document.getElementsByTagName(tag);
  	for (i=0;i<elements.length;i++) {
  		if (elements[i].href && elements[i].className) {
  			var classes = elements[i].className.split(' ');
  			for (j=0;j<classes.length;j++)
  			{
	  			if(bw.ie && !bw.opera) {
		  			switch (classes[j]) {
		  				case "popup-aide":elements[i].onclick=ouvrirPopupAide;
		  				break;
		  				case "ouverture-balise":elements[i].onclick=ouvrirBalise;
		  				break;
		  				case "fermeture-balise":elements[i].onclick=fermetureBalise;
		  				break;
		  			}
	  			}
	  			else {
	  				switch (classes[j]) {
		  				case "popup-aide":elements[i].setAttribute("onclick", "ouvrirPopupAide(this);return false;");
		  				break;
		  				case "ouverture-balise":elements[i].setAttribute("onclick", "ouvrirBalise(this);return false;");
		  				break;
		  				case "fermeture-balise":elements[i].setAttribute("onclick", "fermetureBalise(this);return false;");
		  				break;
		  			}
	  			}
	  		}
  		}
  	}
}

//  fonctions pour les différents behavior

function ouvrirPopupAide(element)  {

	if (element){
		ouvrirPopup(element.href, '522', '250', 'yes');
	}
	else
	{
		if (this){
			ouvrirPopupAide(this);
			return false;
		}
	}
}

function ouvrirBalise(element)  {

	if (element){
		ouvrirDiv("div-"+element.id);
	}
	else
	{
		if (this){
			ouvrirBalise(this);
			return false;
		}
	}
}

function fermetureBalise(element)  {
	if (element){
		var balise = document.getElementById(element.target);
		balise.style.display="none";
		//document.location.href = document.location.href.split("#" + element.target)[0];
		//ouvrirPopup(element.href, '522', '250', 'yes');
	}
	else
	{
		if (this){
			fermetureBalise(this);
			return false;
		}
	}
}

function ouvrirDiv(baliseId) {
		var balise = document.getElementById(baliseId);
		balise.style.display="block";
		if(document.location.href.indexOf("#" + baliseId)<=0){
			document.location.href = document.location.href + "#" + baliseId;
		}
		else {
			document.location.href = document.location.href.split("#" + baliseId)[0]+ "#" + baliseId;
		}
}

function setLinkAnchor(baliseId, anchor) {
	balise = document.getElementById(baliseId);
	if(balise.href.indexOf("#")<=0){
		balise.href = balise.href + "#/" + anchor;
	}
	else {
		balise.href = balise.href.split("#")[0]+ "#/" + anchor;
	}
	setChangeVersion();
}

function setChangeVersion() {
	////////////////////////////////////////////
	// cas spécial pour le site ingenio ôter
	// pour une autre utilisation...
	////////////////////////////////////////////
	var anchorRecons = document.location.href.split("#")[1];
	if(typeof anchorRecons=="undefined" || anchorRecons=="" ) {
		if(document.location.href.split("#")[0].indexOf("fr")>=0) {
			if(flashSite == 1) {
				anchorFromUrl = "accueil";
			}
			else {
				anchorFromUrl = document.location.href.split("#")[0].split("/fr/")[1];
				if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
					if(document.location.href.split("#")[0].indexOf("/fr")>=0) {
						anchorFromUrl = "accueil";
					}
				}
			}
		}
		else {
			if(flashSite == 1) {
				anchorFromUrl = "home";
			}
			else {
				anchorFromUrl = document.location.href.split("#")[0].split("/en/")[1];
				if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
					if(document.location.href.split("#")[0].indexOf("/en")>=0) {
						anchorFromUrl = "home";
					}
				}
			}
		}
		if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
			anchorFromUrl = "accueil";
		}
		anchorRecons = anchorFromUrl.replace(/\//g,"_");
	}
	urlRecons = anchorRecons.replace(/\_/g,"/");
	baliseCV = document.getElementById("changement-version");
	if(baliseCV.href.indexOf("fr")>=0) {
		baliseCV.href = document.location.href.split("/fr")[0] + "/fr/" + urlRecons + "#/" + anchorRecons;
	}
	else {
		baliseCV.href = document.location.href.split("/en")[0] + "/en/" + urlRecons + "#/" + anchorRecons;
	}
}

function goToFlashPage() {
	var anchorRecons = document.location.href.split("#")[1];
	if(typeof anchorRecons=="undefined" || anchorRecons=="" ) {
		if(document.location.href.split("#")[0].indexOf("fr")>=0) {
			anchorFromUrl = document.location.href.split("#")[0].split("/fr/")[1];
			if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
				if(document.location.href.split("#")[0].indexOf("/fr")>=0) {
					anchorFromUrl = "accueil";
				}
			}
		}
		else {
			anchorFromUrl = document.location.href.split("#")[0].split("/en/")[1];
			if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
				if(document.location.href.split("#")[0].indexOf("/en")>=0) {
					anchorFromUrl = "home";
				}
			}
		}
		if(typeof anchorFromUrl=="undefined" || anchorFromUrl=="" ) {
			anchorFromUrl = "accueil";
		}
		anchorRecons = anchorFromUrl.replace(/\//g,"_");
		urlRecons = document.location.href.split("#")[0] + "#/" + anchorRecons;
		document.location.href=urlRecons;
		if(document.location.href == urlRecons) {
			document.location.reload( false );
		}
	}
}

function setContenuBalise(baliseId, contenu) {
	balise = document.getElementById(baliseId);
	balise.firstChild.nodeValue = contenu;
}

function traceFlash(baliseId){
	
	balise = document.getElementById(baliseId);
	alert(balise);
	flashMovie = document.getElementById("ingenioMovie");
	flashMovie.tracelangue(balise); 
}

// fonction pour ôter la valeur par défaut dans une champ texte
// lorsque l'utilisateur clique sur le champ

function viderChamp(element,mot) {
	if (element && (element.value==mot)){
		element.value = "";
	}
	return false;
}

function garderValeurChamp(element,mot) {
	if (element && (element.value=='')){
		element.value = mot;
	}
	return false;
}

// fonction pour valider une adresse de courriel
function validerCourriel(form, langue) {
	var test = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.adresseCourriel.value);
	if (test){
		return true;
	}
	if(langue == "fr") {
		alert("L'adresse que vous avez inscrite n'est pas valide! Veuillez inscrire une adresse valide.");
	}
	else {
		alert("The E-mail address entered is invalid. Please enter a valid address.");
	}
	return false;

}

// fonction pour ouvrir une page dans un popup

function ouvrirPopup(adresse, width, height, scrollbars)  {
  window.open(adresse,'','toolbar=no,directories=no,locationbar=no,status=no,menubar=no,resizable=no,scrollbars=' + scrollbars + ',titlebar=no,width=' + width + ',height=' + height + ',left=150,top=100');
  return false;
}

function ouvrirPopupAvecMenu(adresse, width, height, scrollbars)  {
  window.open(adresse,'','toolbar=no,directories=no,locationbar=no,status=no,menubar=yes,resizable=no,scrollbars=' + scrollbars + ',titlebar=no,width=' + width + ',height=' + height + ',left=150,top=100');
  return false;
}

function open_taleo(url)
{
	//alert("open_taleo..." + url);
	url = url + "&Params=CA";
	window.open(url,'taleo','scrollbars=no,status=yes,resizable=yes,menubar=yes,toolbar=yes,location=yes,screenX=0,screenY=0,left=0,top=0,width=800,height=' + (screen.availHeight-155));
}


function DivOverSelect(state, posx, yheight) {

	if (bw.ie) {
		var IfrRef = document.getElementById('DivShim');
		if(IfrRef && state) {
			IfrRef.style.left = posx;
			IfrRef.style.height = yheight;
			IfrRef.style.display = "block";
		} else {
			IfrRef.style.display = "none";
		}
	}

}

function MM_ouvrirPopupExterne(theURL,winName,features) { //v2.0

	var base = false;
	var ref = null;
	if (document.getElementById) {
		base = document.getElementById("base"); 
	} else {
		if (document.all) {
			base = document.all["base"]; 
		}
	}
	if (base) {
		theURL = base.href + theURL;
	}

	newWin = window.open(theURL,winName,features);
  	newWin.focus();

}

//Fonction de naviguation boîte texte

function navigationInterieurPage(classNameMenu, classNameContenu) {
	var boutonsMenu = document.getElementsByTagName("img");
	for(i=0;i<boutonsMenu.length;i++)
	{
		
		if(boutonsMenu[i].className && boutonsMenu[i].className == classNameMenu)
		{

			if(bw.ie && !bw.opera) {
				
				boutonsMenu[i].onclick = boiteTexte;
			}
			else {
				boutonsMenu[i].setAttribute("onclick", "boiteTexte(this);");
			}
		}
	}
}

function boitettexte(element) {
	if (element){
		
		var boutonsMenu = document.getElementsByTagName("img");
		var contenu = document.getElementsByTagName("div");
		for(i=0;i<boutonsMenu.length;i++)
		{
			if(boutonsMenu[i].className && boutonsMenu[i].className == element.className)
			{
				boutonsMenu[i].src = boutonsMenu[i].src.replace(regExpPatternImgOn,patternImgOff);
				boutonsMenu[i].style.cursor = "pointer";
				if(bw.ie && !bw.opera) {
					boutonsMenu[i].onmouseover=swap;
					boutonsMenu[i].onmouseout=restore;	
				}
				else {
					boutonsMenu[i].setAttribute("onmouseover", "swap(this)");	
					boutonsMenu[i].setAttribute("onmouseout", "restore(this)");
				}
				
			}
		}
		
		var contenuClassName = element.className.split("bt");
		for(i=0;i<contenu.length;i++)
		{
			if(contenu[i].className && contenu[i].className == contenuClassName[1])
			{
				contenu[i].style.display = "none";
				if(element.id.indexOf(contenu[i].id)>=0)
					contenu[i].style.display = "block";
			}
		}
		element.src = element.src.replace(regExpPatternImgOff,patternImgOn);
		element.style.cursor = "default";
		if(bw.ie && !bw.opera) {
			element.onmouseover="";
			element.onmouseout="";	
		}
		else {
			element.removeAttribute("onmouseover");	
			element.removeAttribute("onmouseout");			
		}
	}
	else
	{
		if (this){
			boiteTexte(this);
		}
	}
}

function initBoiteTexte(){
	var lg = document.getElementById("lienGauche");
	var ld = document.getElementById("lienDroit");
	
	var cd = document.getElementById("contenuGauche");
	cd.style.display = "none";
	
	if(bw.ie && !bw.opera) {
		
		lg.onclick = displayContenuGauche;
	}
	else {
		lg.setAttribute("onclick", "displayContenuGauche();");
	}
	
}

function displayContenuGauche(){
	var cg = document.getElementById("contenuGauche");
	cg.style.display = "block";
	var cd = document.getElementById("contenuDroit");
	cd.style.display = "none";
}

function displayContenuDroit(){
	var cg = document.getElementById("contenuGauche");
	cg.style.display = "none";
	var cd = document.getElementById("contenuDroit");
	cd.style.display = "block";
}

//Flash naviguation
function gotoFlashSection(section) {
	flashMovie = document.getElementById("ingenioMovie");
	flashMovie.gotoSection(section); 
}

