// Inclusion du fichier pour le bouton modifier du cms
document.writeln('<script type="text/javascript" src="/pls/portal/docs/page/admin_fr/media/scripts/btt_modifier.js"></script>');

// Inclusion du fichier pour la détection de flash.
document.writeln('<script type="text/javascript" src="/pls/portal/docs/page/librairie_fr/scripts/detection_flash.js"></script>');

// Inclusion du fichier pour objet de flash.
document.writeln('<script type="text/javascript" src="/pls/portal/docs/page/Librairie_fr/mediaplayer/swfobject.js"></script>');

// Inclusion du fichier pour objet de flash. **************
document.writeln('<script type="text/javascript" src="/pls/portal/docs/page/lib_fr/media/scripts/swfobject_source.js"></script>');

// Inclusion d'un fichier suite à une demande de Yannick Simard.
document.writeln('<script type="text/javascript" src="/__utm.js"></script>');



function mmLoadMenus() {
  if (window.mm_menu_1126113621_0) return;
  window.mm_menu_1126113621_0 = new Menu("root",327,17,"Verdana, Arial, Helvetica, sans-serif",10,"#000000","#000000","#e5eff4","#8eabb7","left","middle",3,0,1000,-5,7,true,true,true,3,true,false);
  mm_menu_1126113621_0.addMenuItem("Ahuntsic-Cartierville","location='http://www.ville.montreal.qc.ca/ar09fr'");
  mm_menu_1126113621_0.addMenuItem("Anjou","location='http://www.ville.montreal.qc.ca/ar12fr'");
  mm_menu_1126113621_0.addMenuItem("Beaconsfield-Baie d’Urfé","location='http://www.ville.montreal.qc.ca/ar04fr'");
  mm_menu_1126113621_0.addMenuItem("Côte-des-Neiges–Notre-Dame-de-Grâce","location='http://www.ville.montreal.qc.ca/ar17fr'");
  mm_menu_1126113621_0.addMenuItem("Côte-Saint-Luc–Hampstead–Montréal-Ouest","location='http://www.ville.montreal.qc.ca/ar18fr'");
  mm_menu_1126113621_0.addMenuItem("Dollard-Des Ormeaux–Roxboro","location='http://www.ville.montreal.qc.ca/ar06fr'");
  mm_menu_1126113621_0.addMenuItem("Dorval–L’Île-Dorval","location='http://www.ville.montreal.qc.ca/ar07fr'");
  mm_menu_1126113621_0.addMenuItem("Kirkland","location='http://www.ville.montreal.qc.ca/ar03fr'");
  mm_menu_1126113621_0.addMenuItem("Lachine","location='http://www.ville.montreal.qc.ca/ar19fr'");
  mm_menu_1126113621_0.addMenuItem("LaSalle","location='http://www.ville.montreal.qc.ca/ar20fr'");
  mm_menu_1126113621_0.addMenuItem("L’Île-Bizard–Sainte-Geneviève–Sainte-Anne-de-Bellevue","location='http://www.ville.montreal.qc.ca/ar01fr'");
  mm_menu_1126113621_0.addMenuItem("Mercier–Hochelaga-Maisonneuve","location='http://www.ville.montreal.qc.ca/ar27fr'");
  mm_menu_1126113621_0.addMenuItem("Montréal-Nord","location='http://www.ville.montreal.qc.ca/ar10fr'");
  mm_menu_1126113621_0.addMenuItem("Mont-Royal","location='http://www.ville.montreal.qc.ca/ar15fr'");
  mm_menu_1126113621_0.addMenuItem("Outremont","location='http://www.ville.montreal.qc.ca/ar16fr'");
  mm_menu_1126113621_0.addMenuItem("Pierrefonds-Senneville","location='http://www.ville.montreal.qc.ca/ar02fr'");
  mm_menu_1126113621_0.addMenuItem("Plateau-Mont-Royal","location='http://www.ville.montreal.qc.ca/ar25fr'");
  mm_menu_1126113621_0.addMenuItem("Pointe-Claire","location='http://www.ville.montreal.qc.ca/ar05fr'");
  mm_menu_1126113621_0.addMenuItem("Rivière-des-Prairies–Pointe-aux-Trembles–Montréal-Est","location='http://www.ville.montreal.qc.ca/ar11fr'");
  mm_menu_1126113621_0.addMenuItem("Rosemont–La Petite-Patrie","location='http://www.ville.montreal.qc.ca/ar26fr'");
  mm_menu_1126113621_0.addMenuItem("Saint-Laurent","location='http://www.ville.montreal.qc.ca/ar08fr'");
  mm_menu_1126113621_0.addMenuItem("Saint-Léonard","location='http://www.ville.montreal.qc.ca/ar13fr'");
  mm_menu_1126113621_0.addMenuItem("Sud-Ouest","location='http://www.ville.montreal.qc.ca/ar22fr'");
  mm_menu_1126113621_0.addMenuItem("Verdun","location='http://www.ville.montreal.qc.ca/ar21fr'");
  mm_menu_1126113621_0.addMenuItem("Ville-Marie","location='http://www.ville.montreal.qc.ca/ar24fr'");
  mm_menu_1126113621_0.addMenuItem("Villeray–Saint-Michel–Parc-Extension","location='http://www.ville.montreal.qc.ca/ar14fr'");
  mm_menu_1126113621_0.addMenuItem("Westmount","location='http://www.ville.montreal.qc.ca/ar23fr'");
   mm_menu_1126113621_0.hideOnMouseOut=true;
   mm_menu_1126113621_0.menuBorder=1;
   mm_menu_1126113621_0.menuLiteBgColor='#e5eff4';
   mm_menu_1126113621_0.menuBorderBgColor='#00415d';
   mm_menu_1126113621_0.bgColor='#e5eff4';

  mm_menu_1126113621_0.writeMenus();
} // mmLoadMenus()


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


/*
function load1(form) {
     var url = form.Llist_1.options[form.Llist_1.selectedIndex].value;
     if (url != '')      {

        if (url.substr(0,4) == "http")
        {
	    form.reset();
	    location.href = url;
        }
        else
        {
            form.reset();
	    location.href = url;
        }

        location.href = url;

     }
    return false;
}
*/
// Ouvrir un lien html à partir d'une liste déroulante.
function load1(form) {
     var url = form.Llist_1.options[form.Llist_1.selectedIndex].value;
 	 urlBeginning = url.substr(0, url.length-14); // ex. : http://www.nomDomaine.com
	 urlEnd = url.substr(url.length-14, url.length-1); // ?target=_blank 
	 
     if(url != ''){
        if (urlEnd == "?target=_blank") 
        {
	    	form.reset();
	    	window.open(urlBeginning); // Ouvrir le lien dans une nouvelle fenêtre
        }
        else 
        {
            form.reset();
	    	location.href = url; // Ouvrir le lien dans la même fenêtre
        }
     }
}

/**********************************************************************************************************************************************************/
/*
Function : createSlideShow
Creator : Luc Normandin
Date : 09/09
Method : create slideShow for a page group
*/
/**********************************************************************************************************************************************************/


			function createSlideShow(pictureFolder,pictureContainer,setting,timer){
				var xml = "<picture>";
				var time;
				if(timer!=null){
					time = timer;
					
					
					}else{
					time = 3000;	
					
					};
				for(var a=0;a<pictureContainer.length;a++){
					
					if(pictureContainer[a].Clickable != null){
							xml += createXmlElement("pict", createXmlElement("name",pictureContainer[a].Name) +
															createXmlElement("link",pictureContainer[a].Clickable));				
						}else{
							xml += createXmlElement("pict", createXmlElement("name",pictureContainer[a].Name));
						};	
				};
				xml += "</picture>";
				
				
				
				var flashvars = {
				  RootFolder:pictureFolder,
				  PictureLoader: xml,
				  Timer:time
				};
					
				var params = {
				  menu: "false",
				  bgcolor: "#ffffff",
				  scale : "noscale",
				  quality : "high"
				};
				var attributes = {
				  id: setting.name + setting.divId,
				  name: setting.name  
				};
				
				swfobject.embedSWF("/pls/portal/docs/PAGE/LIBRAIRIE_FR/FLASH/PICTUREPARSER.SWF", setting.divId, setting.width, setting.height, "10.0.0","expressInstall.swf", flashvars, params, attributes);
				
				
			};
			
			function createXmlElement(name,content){
				var xml
				if (!content){
					xml='<' + name + '/>'
				}
				else {
					xml='<'+ name + '>' + content + '</' + name + '>'
				}
				return xml
			}
/**********************************************************************************************************************************************************/
/**********************************************************************************************************************************************************/
/**********************************************************************************************************************************************************/


function loadPage(form) {
   var url = form.Llist_1.options[form.Llist_1.selectedIndex].value;
 	 var urlBeginning = url.substr(0, url.length-14); // ex. : http://www.nomDomaine.com
	 var urlEnd = url.substr(url.length-14, url.length-1); // ?target=_blank 
	 
     if(url != ''){
        if (urlEnd == "?target=_blank"){
	    		window.open(urlBeginning); // Ouvrir le lien dans une nouvelle fenêtre
        }
        else {
	    		location.href = url; // Ouvrir le lien dans la même fenêtre
        }
     }
}


function newWin(url){

var confirmWin = window.open(url,'','width=450,height=250,scrollbars=no,left=380,top=0')

	//give a reference between the opener
	//and the popup for backwards compatibility
	if(confirmWin.opener==null){
		confirmWin.opener = self;
	}
}






function isValidPostalcode(theForm, url) {

		codePostal = removeSpaces(theForm.codePostal.value);
		var langue = theForm.lang.value;
		var urlPath = url + 'get?lang=' + langue + '&codePostal=' + codePostal;

		if (codePostal.length == 6 && codePostal.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/) != -1)
		{
		theForm.codePostal.value = codePostal;
		newWin(urlPath);

		}else if (codePostal.length == 7 && codePostal.search(/^[a-zA-Z]\d[a-zA-Z]-\d[a-zA-Z]\d$/) != -1)
		{
		theForm.codePostal.value = codePostal;
		
		newWin(urlPath);
		

		}else
		{
		 theForm.codePostal.focus();
  		 alert("Votre 'CODE POSTAL' est invalide. / Your 'POSTAL CODE' is invalid. ");
		}


}
//Code pour le site Élection 2009.  Cette fonction à été dupliqué pour répondre au servlet des arrondissements utilisé dans le cadre des Élection 2009
//le "get" n'a pas besoin d'être utilisé dans ce cas-ci, car le nouveau servlet appelle plutôt "elec09" et on fera donc l'appel à même l'url.
//La meilleure pratique serait d'utiliser qu'un seul code et de retracer toutes les instances de l'appel de la fonction "isValidPostalCode" 
//afin de l'appeler de manière uniforme, comme employé ci-dessous.
function isValidPostalcodeElection(theForm, url) {

		codePostal = removeSpaces(theForm.codePostal.value);
		var langue = theForm.lang.value;
		//var urlPath = url + 'get?lang=' + langue + '&codePostal=' + codePostal; -- Suppression du get.
		var urlPath = url + '?lang=' + langue + '&codePostal=' + codePostal;

		if (codePostal.length == 6 && codePostal.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/) != -1)
		{
		theForm.codePostal.value = codePostal;
		newWin(urlPath);

		}else if (codePostal.length == 7 && codePostal.search(/^[a-zA-Z]\d[a-zA-Z]-\d[a-zA-Z]\d$/) != -1)
		{
		theForm.codePostal.value = codePostal;
		
		newWin(urlPath);
		

		}else
		{
		 theForm.codePostal.focus();
  		 alert("Votre 'CODE POSTAL' est invalide. / Your 'POSTAL CODE' is invalid. ");
		}


}



function removeSpaces(string) {
	var newString = '';
	for (var i = 0; i < string.length; i++) {
		if (string.charAt(i) != ' ') newString += string.charAt(i);
	}
	return newString;
}



   var browser = navigator.appName;
   var version = navigator.appVersion.charAt(0);
   var timerID = 0;
   function call_window(fichier)
        {
       if(((browser == "Netscape") && (version >= 2)))
         {
           popup=window.open(fichier,'archives','width=600,height=450,scrollbars=0,left=200,top=100')
           popup.location.href=fichier;
           popup.focus()
         }
       else
         {
           clearTimeout(timerID)
           popup=window.open(fichier,'archives','width=600,height=450,scrollbars=0,left=200,top=100')
		            }
     }

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/* Name : showIt
   Purpose : show an object (table, div, p, ...) corresponding to an id.
   Input : you must specified an id for the object you want to show.
   Output  : the object is shown.                                          */   
function showIt(id){
	
	for(i=0;i<document.getElementsByTagName("div").length;i++){
		if(document.getElementsByTagName("div")[i].id==id || document.getElementsByTagName("div")[i].id==id.toUpperCase()){
			var obj = document.getElementsByTagName("div")[i];
			if(obj.style.display == "none"){
				obj.style.display = "block"; 
				
			} else if(obj.style.display == "block"){
				obj.style.display = "none"; 
			}
		}
	}
	/*var obj = document.getElementById(id);
	if(obj.style.display == "none"){
		obj.style.display = "block"; 
	} else if(obj.style.display == "block"){
		obj.style.display = "none"; 
	}*/
}

function HideandSeekDivs(nom){
	//Utiliser cette fonction quand les divs ne servent qu'à montrer et masquer des éléments
	lesdivs = document.getElementsByTagName("div");
	for(var i=0;i<lesdivs.length;i++)
	{
		lesdivs[i].style.display="none";
		if(lesdivs[i].id.toUpperCase() == nom.toUpperCase())
		{
			lesdivs[i].style.display="block";
		}
	}
	
}

function printPopUp() {
	var str = "";
	if(document.getElementById('ariane')!=null){
	 str = document.getElementById("ariane").innerHTML;
	}
	var index = str.lastIndexOf('&gt;');
	var titre_bande="";
	var langue = "fr";
	var print_text = "Imprimer ce texte";
	if(index != -1){
		titre_bande = str.substring(index+4,str.length);
	}else{
		titre_bande = str;
	}
	newWindow = window.open('','name','scrollbars=yes,height=500,width=592');
	body = "<html><head>";	
	for(i=0;i<document.getElementsByTagName("link").length;i++){
		body += '<link href="'+document.getElementsByTagName("link")[i].href+'" rel="stylesheet" type="text/css">';
	}
	body += '</head><body><table width="575" border="0" cellspacing="0" cellpadding="0"><tr>'+
    '<td width="138" rowspan="2"><img src="http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/pop_print2_01.gif" width="138" height="50"></td>'+
    '<td height="12" colspan="3" bordercolor="0" bgcolor="#8C0000"></td></tr>'+
    '<tr><td height="38" colspan="3" background="http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/pop_print2_03.gif" class="titre_print"><img src="http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/spacer.gif" width="2" height="1">'+
	titre_bande+
	'</td></tr>'+
    '<tr><td height="28" bgcolor="#ffffff">&nbsp;</td>'+
    '<td width="313" class="eMediumGrey9" bgcolor="#ffffff">'
	/*if(document.getElementById('ariane')!=null){
		body += document.getElementById('ariane').innerHTML;
	}*/
	if(document.getElementById('langue')!=null){
		langue = document.getElementById('langue').innerHTML;
		if(langue=='en')print_text="Print this text";
	}
    body += '</td><td width="11" bgcolor="#ffffff"><img src="http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/fleche_noir.gif" width="3" height="5" align="right" vspace="3" hspace="4"></td>'+
    '<td width="113" valign="middle" class="eRed10" bgcolor="#ffffff"><a href="javascript:window.print()" class="eRed11Bold">'+print_text+'</a></td>'+
    '</tr></table><table cellspacing="0" width="575" height="422" border="0" bgcolor="#ffffff" cellpadding="5" id="print_format"><tr valign="top"><td>';
	if(document.getElementById('titre')!=null){
		body += document.getElementById('titre').innerHTML;
	}
	if(document.getElementById('stitre')!=null){
		body += document.getElementById('stitre').innerHTML;
	}

	for(i=0;i<document.getElementsByTagName('div').length;i++){
		if(document.getElementsByTagName('div')[i].id=='print'){
			body += document.getElementsByTagName('div')[i].innerHTML;
		}
	}

	if(document.getElementById('generique')!=null){
		body += document.getElementById('generique').innerHTML;
	}
	body += "</td></tr></table>";
	body += '<script type="text/javascript">'+
	'for(i=0;i<document.getElementsByTagName("div").length;i++){'+
		'str = document.getElementsByTagName("div")[i].id;'+
		'if (str.indexOf("bt_fleche_liste_f")==-1){'+
			'document.getElementsByTagName("div")[i].style.display="block";'+
		'}else{'+
			'document.getElementsByTagName("div")[i].style.display="none";'+
		'}'+
		'if(str.indexOf("no_print")!=-1){'+
			'document.getElementsByTagName("div")[i].style.display="none";'+	
		'}'+
	'}'+
	'for(k=0;k<document.getElementsByTagName("span").length;k++){'+
	'spanID = document.getElementsByTagName("span")[k].id;'+
	'if(spanID.indexOf("menu_o")!=-1){'+
	'document.getElementsByTagName("span")[k].style.display="none";}}'+
	'</script>'
	body += "</body></html>";
	newWindow.document.write(body);
	
	newWindow.document.close();
}



function printPopUpImg(imgUrl, imgWidth, imgHeight) {
/* Auteur : Jean-Philippe Grondin
   Date : 08 février 2006
	 Objectif : ouvrir une nouvelle fenêtre de type "pop-up" avec une image.
*/

	var tmp = "";
	
	var winWidth = imgWidth + 30;
	var winHeight = imgHeight + 30;
	
/*
	//Le code qui suit permet de centrer la fenêtre de type pop-up, mais je ne suis pas sûre qu'il s'agit de la bonne solution
	//pour ceux entres autres qui ont deux écrans...
	
  var LeftPosition = (screen.width-winWidth)/2;
	var TopPosition = (screen.height-winHeight)/2;
	var param = "scrollbars=no, width=" + winWidth + ", height=" + winHeight + ",top=" + TopPosition + ",left="+ LeftPosition;
*/
	
	var param = "scrollbars=no, width=" + winWidth + ", height=" + winHeight;
	var newWindow = window.open('', '', param);
	
	
	// Générer l'entête en HTML et ajouter l'image à la balise body
	body = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>\n<html>\n<head>\n<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>\n<title>Image aggrandie</title>\n</head>\n<body>" +
	       "\n<div align='center'><a href='javascript:window.close();'><img src='" + imgUrl + 
				 "' " + "alt='Image aggrandie' width='" + imgWidth + "' height='" + imgHeight + 
				 "' style='border:1px #ccc solid;' /></a></div>" + "\n</body>\n</html>";

	/* Écrire le code à l'intérieur de la balise body. */
	newWindow.document.write(body);
	
	newWindow.document.close();

}




/* Foncition utilisée par le bouton langue*/
function redirectUrl(url,message){
	switch (message) {
		case 'msg1' : 
			msg = "Cette page n'est pas disponible, vous serez redirigé vers la page d'accueil.";
			break;
		case 'msg2' : 
			msg = "Cette page n'est pas disponible, vous serez redirigé vers la page d'accueil du portail.";
			break;
		case 'msg1en' : 
			msg = "This page is not available, you will be redirected to the main page.";
			break;
		case 'msg2en' : 
			msg = "This page is not available, you will be redirected to the portal's main page.";
			break;
		default : 
			msg = "Cette page n'est pas disponible, vous serez redirigé vers la page d'accueil.";
	}
	var redir = confirm(msg);
	if (redir==true) {
		window.location=url;
	} 
}

// 
function RObj(ea) {
var LS="";var QS=new Object()
function Err(arg) {if (ea) alert("Request Object Error:\n====================\n"+arg)}
function URID(t) {var d="";if (t) {for (var i=0; i<t.length; ++i) {var c=t.charAt(i);d+=(c=="+" ? " ":c);};};return unescape(d);}
function OL(o) {var l=0;for (var i in o) {if (typeof(o[i])!="function") l++;};return l;}
function AK(key) {var auk=true;for (var u in QS) {if (typeof(QS[u])!="function" && u.toString().toLowerCase()==key.toLowerCase()) {auk=false;return u;}};if (auk) {QS[key]=new Object();QS[key].toString=function() {return TS(QS[key])};QS[key].Count=function() {return OL(QS[key])};QS[key].Count.toString=function() {return OL(QS[key]).toString()};QS[key].Item=function(e) {if (typeof(e)=="undefined") return QS[key];else {if (typeof(e)=="number") {var a=QS[key][Math.ceil(e)];if (typeof(a)=="undefined") Err("ERROR: Index out of range in\nRequest.QueryString(\""+key+"\").Item("+e+")");return a;}else Err("ERROR: Expecting numeric input in\nRequest.QueryString(\""+key+"\").Item(\""+e+"\")");}};QS[key].Item.toString=function(e) {if (typeof(e)=="undefined") return QS[key].toString();else {var a=QS[key][e];if (typeof(a)=="undefined") Err("ERROR: Index out of range in\nRequest.QueryString(\""+key+"\").Item("+e+")");return a.toString();};};QS[key].Key=function(e) {var t=typeof(e);if (t=="string") {var a=QS[key][e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Object doesn't support this property or method\nRequest.QueryString.Key("+(e?e:"")+")");};QS[key].Key.toString=function() {return "undefined"};};return key}
function AVTK(key, val) {if (key!="") {var key=AK(key);var l=OL(QS[key]);QS[key][l+1]=val;}}
function TS(o) {var s="";for (var i in o) {var ty=typeof(o[i]);if (ty=="object") s+=TS(o[i]);else if (ty!="function") s+=o[i]+", ";};var l=s.length;if (l>1) return(s.substring(0,l-2));return (s=="" ? "undefined":s);}
function KM(k, o) {var k=k.toLowerCase();for (var u in o) {if (typeof(o[u])!="function" && u.toString().toLowerCase()==k) return u;};}
if (window.location && window.location.search) {LS=window.location.search;var l=LS.length;if (l>0) {LS=LS.substring(1,l);var preAmpAt=0;var ampAt=-1;var eqAt=-1;var k=0;var skip=false;for (var i=0; i<l; ++i) {var c=LS.charAt(i);if (LS.charAt(preAmpAt)=="=" || (preAmpAt==0 && i==0 && c=="=")) skip=true;if (c=="=" && eqAt==-1 && !skip) eqAt=i;if (c=="&" && ampAt==-1) {if (eqAt!=-1) ampAt=i;if (skip) preAmpAt=i+1;skip=false;};if (ampAt>eqAt) {AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,ampAt)));preAmpAt=ampAt+1;eqAt=ampAt=-1;++k;};};if (LS.charAt(preAmpAt)!="=" && (preAmpAt!=0 || i!=0 || c!="=")) {if (preAmpAt!=l) {if (eqAt!=-1) AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,l)));else if (preAmpAt!=l-1) AVTK(URID(LS.substring(preAmpAt,l)),"");};if (l==1) AVTK(LS.substring(0,1),"");};};};var TC=OL(QS);if (!TC) TC=0
QS.toString=function() {return LS.toString()};QS.Count=function() {return (TC ? TC:0)};QS.Count.toString=function() {return (TC ? TC.toString():"0")};QS.Item=function(e) {if (typeof(e)=="undefined") return LS;else {if (typeof(e)=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return QS[i];};Err("ERROR: Index out of range in\nRequest.QueryString().Item("+e+")");}else return QS[KM(e, QS)];};return "undefined";};QS.Item.toString=function() {return LS.toString()};QS.Key=function(e) {var t=typeof(e);if (t=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return i;}}else if (t=="string") {var e=KM(e, QS);var a=QS[e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString().Key("+(e?e:"")+")");Err("ERROR: Index out of range in\nRequest.QueryString().Item("+e+")");};QS.Key.toString=function() {Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString().Key");}
this.QueryString=function(k) {if (typeof(k)=="undefined") return QS;else {var k=KM(k, QS);if (typeof(QS[k])=="undefined") {t=new Object();t.Count=function() {return 0};t.Count.toString=function() {return "0"};t.toString=function() {return "undefined"};t.Item=function(e) {return "undefined"};t.Item.toString=function() {return "undefined"};t.Key=function(e) {Err("ERROR: Object doesn't support this property or method\nRequest.QueryString.Key("+(e?e:"")+")");};t.Key.toString=function() {return "undefined"};return t;}if (typeof(k)=="number") return QS.Item(k);else return QS[k];}}
this.QueryString.toString=function() {return LS.toString();};this.QueryString.Count=function() {return (TC ? TC:0)};this.QueryString.Count.toString=function() {return (TC ? TC.toString():"0")};this.QueryString.Item=function(e) {if (typeof(e)=="undefined") return LS.toString();else {if (typeof(e)=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return QS[i];};Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");}else return QS[KM(e, QS)];}if (typeof(e)==("number")) Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");return "undefined";}
this.QueryString.Item.toString=function() {return LS.toString()};this.QueryString.Key=function(e) {var t=typeof(e);if (t=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])=="object" && (++c==e)) {return i;}}}else if (t=="string") {var e=KM(e, QS);var a=QS[e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString.Key("+(e?e:"")+")");Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");};this.QueryString.Key.toString=function() {Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString.Key");};this.Version=0.67;this.Author="<A HREF=\"http://andrewu.co.uk/request.asp?ref=CSJSRequestObjectSrc\">Andrew Urquhart</A>";}
var Request=new RObj(true);

/*
But : obtenir les objets correspondant à un "id_name" (ex. : menu_on ou menu_off) et à un type d'objet (div, span, etc.).
Entrée : le nom du id et le type d'objets sont présents dans le document.
Sortie : un tableau d'objets est retournés. */
function getObjs(id_name, type_obj)
{
	//Tableau constitué selon le type d'objet.
	var objs = document.getElementsByTagName(type_obj); 
	
	var results= new Array();
	
	results.push(""); // Insérer un élément vide à la position 0 du tableau.
	
	// Insérer les objets correspondant au "id_name" dans un tableau. 
	// Par exemple, ce tableau contiendra tous les id menu_off1, menu_off2, menu_off3, etc. reliés au id_name menu_off.
	for(var i=0;i<objs.length;i++)
	{ 
	    str1 = objs[i].id;
		id_name1 = str1.substring(0,str1.length-1); // id_name sans le numéro à la fin
		id_name2 = str1.substring(0,str1.length-2); // id_name sans les deux derniers numéros à la fin

		if( (id_name == id_name1) || (id_name == id_name2) ){
			results.push(objs[i]);
		}
	}
	
	return results;
}

/*
But : cacher tous les spans correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
Entrée : id_name et id_no sont définis.
Sortie : les spans sont cachés et le span au numéro "id_no" est affiché. */
function hideAllSpansExceptOne(id_name, id_no){

   //Tableau des spans "id_name" contenus dans le document.
   var spans = getObjs(id_name, "span");
      
   // Cacher tous les spans correspondant au id_name fourni excepté celui relatif à la position fournie.
   
   for(var i=1; i<spans.length; i++)
   {	
		if( (i == id_no) && (spans[i].style.display == "none") ){
		    spans[i].style.display = ""; // afficher l'objet span avec un type d'affichage (style="display: compact").
		}
		else if( (i != id_no) && (spans[i].style.display == "") ){
			spans[i].style.display="none"; 
		}
   }
}


/*
But : cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
Entrée : id_name et id_no sont définis.
Sortie : les divs sont cachés et le div correspondant au numéro "id_no" est affiché. */
function hideAllDivsExceptOne(id_name, id_no){

   //Tableau des divs "id_name" contenus dans le document.
   var divs = getObjs(id_name, "div");
      
   // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).
   for(var i=1; i<divs.length; i++)
   {	
		if( (i == id_no) && (divs[i].style.display == "none") || 
				(i == id_no) && (divs[i].style.display == "")	){
			divs[i].style.display = "block"; 
		}
		else if(divs[i].style.display == "block"){
			divs[i].style.display="none"; 
		}
   }
}



/*
But : cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
      Les divs ont une position relative c'est pourquoi on utilise l'attribut "visibility" de "style" et non "display".
Entrée : id_name et id_no sont définis.
Sortie : les divs sont cachés et le div correspondant au numéro "id_no" est affiché. */
function hideAllPopUpExceptOne(id_name, id_no){

   //Tableau des divs "id_name" contenus dans le document.
   var divs = getObjs(id_name, "div");
      
   // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).
   for(var i=1; i<divs.length; i++)
   {	
		if( (i == id_no) && (divs[i].style.visibility == "hidden") ){
		    divs[i].style.visibility = "visible"; 			
		}
		else if( (i != id_no) && (divs[i].style.visibility == "visible") ){
			divs[i].style.visibility="hidden"; 			
		}
   }
}

/*
But : afficher tous les divs correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
Entrée : "id_name" et "id_pos" sont définis dans le document.
Sortie : les divs de type id_name sont affichés, excepté celui de numéro "id_no".
*/
function showAllDivsExceptOne(id_name, id_no){

   //Tableau des divs "id_name" contenus dans le document.
   var divs = getObjs(id_name, "div");
   
   // Afficher tous les divs correspondant au nom d'id fourni (id_name), excepté celui relatif au numéro d'id (id_no).
   for(var i=1;i<divs.length;i++)
   {	
		if( (i == id_no) && (divs[i].style.display == "block") ){
   	  divs[i].style.display = "none"; 
		}
		else if( (i != id_no) && (divs[i].style.display == "none") ){
			divs[i].style.display = "block"; 
		}
   }
}


/*
But : afficher tous les spans correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
Entrée : "id_name" et "id_pos" sont définis dans le document.
Sortie : les spans de type id_name sont affichés, excepté celui de numéro "id_no".
*/
function showAllSpansExceptOne(id_name, id_no){

   //Tableau des spans "id_name" contenus dans le document.
   var spans = getObjs(id_name, "span");
   
   // Afficher tous les spans correspondant au nom d'id fourni (id_name), excepté celui relatif au numéro d'id (id_no).
   for(var i=1;i<spans.length;i++)
   {	
		if( (i == id_no) && (spans[i].style.display == "") ){
   	        spans[i].style.display = "none"; 
		}
		else if( (i != id_no) && (spans[i].style.display == "none") ){
			spans[i].style.display = ""; 
		}
   }
}


/*
But : cacher tous les divs correspondant au id ("menu_on" ou "menu_off") fourni.
Entrée : le span à cacher doit exister.
Sortie : les divs correspondant au id fourni sont cachés.  */
function hideAllDivs(id_name){
   //Tableau des divs correspondant au "id_name" contenus dans le document.
   var divs = getObjs(id_name, "div");
   
   // Cacher tous les objets correspondant au id fourni.
   for(var i = 1; i < divs.length; i++)
   {
	   if(divs[i].style.display == "block"){
           divs[i].style.display="none"; 	       	       
	   }
   }
}

/*
But : cacher tous les spans correspondant au id fourni.
Entrée : le span a cacher doit exister.
Sortie : les Spans correspondant au id fourni sont cachés.  */
function hideAllSpans(id_name){
   //Tableau des spans "id" contenus dans le document.
   var spans = getObjs(id_name, "span");
   
   // Cacher tous les objets correspondant au id fourni.
   for(var i = 1; i < spans.length; i++)
   {
	   if(spans[i].style.display == ""){
           spans[i].style.display="none"; 	       	       
	   }
   }
}

/*
But : afficher tous les spans correspondant au id fourni.
Entrée : le span a afficher doit exister.
Sortie : les Spans correspondant au id fourni sont affichés.  */
function showAllSpans(id_name){
   //Tableau des Spans "id" contenus dans le document.
   var spans = getObjs(id_name, "span");

   // Afficher tous les Spans correspondant au id fourni.
   for(var i = 1; i < spans.length; i++)
   {
	   if(spans[i].style.display == "none"){
	       spans[i].style.display = ""; // afficher l'objet span avec un type d'affichage compact (style="display: compact").       
	   }
   }
}


/*
But : afficher un span appellé "menu_on" et un nommé "sub_menu" correspondant à un numéro de id.
Entrée : les spans "menu_on", "menu_off" et "sub_menu" sont définis dans le document.
Sortie : les éléments correspondant au span "menu_on" ou "menu_off" sont affichés. */
function switchMenu(id_no){
	// Afficher tous les éléments du "menu_off", excepté celui de numéro "id_no").
	showAllSpansExceptOne("menu_off", id_no);
	
	// Cacher tous les éléments du "menu_on" et de "sub_menu", excepté celui spécifié
	// au numéro "id_no".
	hideAllSpansExceptOne("menu_on", id_no);
	hideAllDivsExceptOne("sub_menu", id_no);
}


/*
But : afficher les éléments associés au span "menu_on" ou au span "menu_off".
Entrée : les spans "menu_on", "menu_off" et "sub_menu" sont définis dans le document.
Sortie : les éléments correspondant au span "menu_on" ou "menu_off" sont affichés. */
function switchMenuOnOff(id_name, id_no){
	if(id_name == "menu_on"){
		// Afficher tous les éléments du "menu_off", excepté celui de numéro "id_no").
		showAllSpansExceptOne("menu_off", id_no);
	
		// Cacher tous les éléments du "menu_on" et de "sub_menu", excepté celui spécifié
		// au numéro "id_no".
		hideAllSpansExceptOne("menu_on", id_no);
		hideAllDivsExceptOne("sub_menu", id_no);
	}	
	else if (id_name == "menu_off"){
	    // Afficher tous les éléments du "menu_off", cacher les éléments de
		// "sub_menu" et du "menu_on".
		showAllSpans("menu_off");
		hideAllSpans("menu_on");
		hideAllDivs("sub_menu");
	}
}


/* Nom : showDiv
   But : afficher un div selon son id.
   Entrée : le id doit exister dans le document.
   Sortie  : le div est affiché.                                       */  
function showDiv(id){
	var obj = document.getElementById(id);
	obj.style.display = "block"; 
}

/* Nom : hideDiv
   But : cacher un div selon son id.
   Entrée : le id doit exister dans le document.
   Sortie  : le div est caché.                                       */   
function hideDiv(id){
	var obj = document.getElementById(id);
	obj.style.display = "none"; 
}


/* Nom : openDiv
   But : afficher un div selon son id. S'il est caché, il est affiché et s'il est affiché, il est caché.
   Entrée : le id doit exister dans le document.
   Sortie  : le div est affiché ou caché selon le cas.                                       */  
function openDiv(id){
	
	var obj = document.getElementById(id);
	
	if(obj.style.display == "block") {
		obj.style.display = "none";
	} 
	else {
		obj.style.display = "block";
	}
	
}


/*
But : cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui correspond au numéro de id (id_no).
      Si le Div est déjà affiché, il est caché. S'il est caché, il est affiché.
Entrée : id_name et id_no sont définis.
Sortie : les spans sont cachés et le span au numéro "id_no" est affiché. */
function showOneDiv(id_name, id_no){

   //Tableau des divs "id_name" contenus dans le document.
   var divs = getObjs(id_name, "div");
      
   // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).
   for(var i=1; i<divs.length; i++)
   {	
		if( (i == id_no) && (divs[i].style.display == "none") ){
		    divs[i].style.display = "block"; 
		}
		else if( (i == id_no) && (divs[i].style.display == "block") ){
		    divs[i].style.display = "none"; 
		}			
		else if( (i != id_no) && (divs[i].style.display == "block") ){
			divs[i].style.display="none"; 
		}
   }
}

/* Nom : img_fleche
   But : vérifie le id de l'image fleche.
          Si img_fleche_f = change l'image pour la flèche ouverte
		                    le id de l'image change pour img_fleche_o
		  Si img_fleche_o = change l'image pour la flèche fermé
		                    le id de l'image change pour img_fleche_f
   Entrés : le id de l'image
   Sortie : l'image et le id est changé                               */
function bt_fleche(id){
	
	if (id == "bt_fleche_f"){
		alert(id);
		document.getElementById("bt_fleche_f").src="/pls/portal/docs/page/librairie_fr/images/bt_fleche_liste_o.gif";
		var x = document.getElementById("bt_fleche_f")/*.id="bt_fleche_o"*/;
		x.id = "bt_fleche_o";
		alert(x.id);
		return x.id;
	}
	else{
		alert(id)
		document.getElementById("bt_fleche_o").src="/pls/portal/docs/page/librairie_fr/images/bt_fleche_liste_f.gif";
		document.getElementById("bt_fleche_o").id="bt_fleche_f";
		return id;
	}
}

/* Nom : switchImage()
   But : trouver une image selon son id et changer.
   Entrés : le id de l'image
   Sortie : l'image et le id est changé                               */
function switchImage(id, path){
	document.getElementById(id).src=path;
}


/* Dialogue CONFIRM */
function confirmer(url,msg){
	var alerte;
	switch (msg) {
		case 'fr' :
			alerte = "Cette page n'est disponible qu'en Anglais";
			break;
		case 'en' :
			alerte = "This page is only available in French";
			break;
		default :
			break;
	}
	var redir = confirm(alerte);
	if (redir==true) {
		window.location=url;
	}
}

// Fonctions pour les flash


function thisMovie(movieName) {
  // IE and Netscape refer to the movie object differently.
  // This function returns the appropriate syntax depending on the browser.
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[movieName]
  }	else {
    return document[movieName]
  }
}

// Checks if movie is completely loaded.
// Returns true if yes, false if no.
function movieIsLoaded (theMovie) {
  if (typeof(theMovie) != "undefined") {
    return theMovie.PercentLoaded() == 100;
  } else {
    return false;
  }
}

function go(theFrame, movieName) {
  if (movieIsLoaded(thisMovie(movieName))) {
    thisMovie(movieName).GotoFrame(theFrame);
	thisMovie(movieName).Play();
  }
}




// Navigation entre les pages de résultats PES Formulaire et Publications

function gotoPage(page){
	document.getElementById("p_page").value=page-1;
	document.getElementById("set_search").submit();
}


// Pour le concours de la fête des enfants
// Vérifie si tous les champs requis sont remplis dans le formulaire.
function validateFormEN() {

    var withoutInfo = "Please enter the following information(s):";
	var nbBlankInfo = 0;

    with (document.form) {

		if (Prenom.value == "") {
			withoutInfo += "\n- Your first name";
			nbBlankInfo++;
		}
		if (Nom.value == "") {
			withoutInfo += "\n- Your last name";
			nbBlankInfo++;
		}
		if (Adresse.value == "") {
			withoutInfo += "\n- Your address";
			nbBlankInfo++;
		}
		if (Ville.value == "") {
			withoutInfo += "\n- Your city";
			nbBlankInfo++;
		}
		if (Province.value == "") {
			withoutInfo += "\n- Your province";
			nbBlankInfo++;
		}
		if (Code_postal.value == "") {
			withoutInfo += "\n- Your postal code";
			nbBlankInfo++;
		}
		if (Telephone.value == "") {
			withoutInfo += "\n- Your phone number";
			nbBlankInfo++;
		}
		if (Age.value == "") {
			withoutInfo += "\n- Your age";
			nbBlankInfo++;
		}
		if ( (Prenom_tuteur.value == "") && (Nom_tuteur.value == "") ) {
			Prenom_tuteur.value = "N/D";
			Nom_tuteur.value = "N/D";			
		}
		if ( (Nom_tuteur.value != "")&&(Prenom_tuteur.value == "") ) {
			withoutInfo += "\n- Tutor's or parent's first name";
			nbBlankInfo++;
		}
        if ( (Nom_tuteur.value == "")&&(Prenom_tuteur.value != "") ) {
			withoutInfo += "\n- Tutor's or parent's last name";
			nbBlankInfo++;
		}
  	    if (Indice.value == "") {
			withoutInfo += "\n- The clue";
			nbBlankInfo++;
		}
		if ((Jour.value == "")||(Mois.value == "")||(Annee.value == "")) {
			withoutInfo += "\n- The date related to the clue";
			nbBlankInfo++;
		}

        if (nbBlankInfo > 0){ // Display Errors.
			alert(withoutInfo);
			return false;
		}
	}
}

// Vérifie si tous les champs requis sont remplis dans le formulaire.
function validateFormFR() {

    var withoutInfo = "S.v.p, veuillez saisir l'information suivante :";
	var nbBlankInfo = 0;

    with (document.form) {

		if (Prenom.value == "") {
			withoutInfo += "\n- votre prénom";
			nbBlankInfo++;
		}
		if (Nom.value == "") {
			withoutInfo += "\n- votre nom";
			nbBlankInfo++;
		}
		if (Adresse.value == "") {
			withoutInfo += "\n- votre adresse";
			nbBlankInfo++;
		}
		if (Ville.value == "") {
			withoutInfo += "\n- votre ville";
			nbBlankInfo++;
		}
		if (Province.value == "") {
			withoutInfo += "\n- votre province";
			nbBlankInfo++;
		}
		if (Code_postal.value == "") {
			withoutInfo += "\n- votre code postal";
			nbBlankInfo++;
		}
		if (Telephone.value == "") {
			withoutInfo += "\n- votre telephone";
			nbBlankInfo++;
		}
		if (Age.value == "") {
			withoutInfo += "\n- votre âge";
			nbBlankInfo++;
		}
	    if ( (Prenom_tuteur.value == "") && (Nom_tuteur.value == "") ) {
			Prenom_tuteur.value = "N/D";
			Nom_tuteur.value = "N/D";			
		}
		if ( (Nom_tuteur.value != "") && (Prenom_tuteur.value == "") ) {
			withoutInfo += "\n- Prénom du tuteur ou du parent";
			nbBlankInfo++;
		}
        if ( (Nom_tuteur.value == "") && (Prenom_tuteur.value != "") ) {
			withoutInfo += "\n- Nom du tuteur ou du parent";
			nbBlankInfo++;
		}		
		if (Indice.value == "") {
			withoutInfo += "\n- l'indice";
			nbBlankInfo++;
		}
		if ((Jour.value == "")||(Mois.value == "")||(Annee.value == "")) {
			withoutInfo += "\n- la date reliée à l'indice";
			nbBlankInfo++;
		}

        if (nbBlankInfo > 0){ // Display Errors.
			alert(withoutInfo);
			return false;
		}
	}

}

// Pour le formulaire de contact en anglais.
function validateContactFormEN() {

    var withoutInfo = "Please enter the following information(s):";
	var nbBlankInfo = 0;

    with (document.form_courriel) {

		if (courriel.value == "") {
			withoutInfo += "\n- Your email";
			nbBlankInfo++;
		}
		if ( (courriel.value != "") && (!validEmail(courriel.value)) ) {
			withoutInfo += "\n- A valid email address";
			nbBlankInfo++;
		}
		if (message.value == "Type your message here.") {
			withoutInfo += "\n- Your message";
			nbBlankInfo++;
		}
        if (nbBlankInfo > 0){ // Display Errors.
			alert(withoutInfo);
			return false;
		}
	}
}


// FIN SCRIPT POUR LA FÊTE DES ENFANTS



/* Vérifie si la chaîne de caractère fournie en paramètre est un
   courriel valid. Retourne vrai si valide et faux sinon. */
function validEmail(email) {

  var valid = true;
  var indexAt = email.indexOf('@');

  if (email == "") {
  	valid = false;
  }

  else
  {
	if ( (email.indexOf('@') == -1 || email.indexOf('.') == -1) || 
	     (email.indexOf('@') == 0  || email.indexOf('.') == 0) ||  
		 ((email.indexOf('@') == email.length-1) || (email.indexOf('.') == email.length-1)) || 
		 (email.indexOf('@', indexAt+1) != -1) ||
		 (email.indexOf(' ') != -1) ||
		 (email.substring(indexAt-1, indexAt) == '.' || email.substring(indexAt+1, indexAt+2) == '.') ) {
    	valid = false;
  	}

	email = email.toLowerCase();

	// Check if email has only characters, numbers, '-', '_', '@' and '.'
  	for (i = 0; i < email.length; i++) {
        if (!((email.charAt(i) >= 'a'  && email.charAt(i) <= 'z') ||
		      (email.charAt(i) >= 'A'  && email.charAt(i) <= 'Z') ||
              (email.charAt(i) >= '0'  && email.charAt(i) <= '9') ||
              (email.charAt(i) == '-'  || email.charAt(i) == '_') ||
              (email.charAt(i) == '@'  || email.charAt(i) == '.')) )
        {
            valid = false;
        }
  	}

  }

  return valid;

}



function valide(langue){
/* AUTEUR: Iann Troalen 
	 DATE DE CREATION: 03/06/2004 */	
	 
	var tblMessage = new Array(new Array(), new Array());
	tblMessage[0][0] = "Veuillez entrer votre courriel.";
	tblMessage[1][0] = "Please enter your e-mail address.";
	tblMessage[0][1] = "Veuillez entrer un courriel valide.";
	tblMessage[1][1] = "Please enter a valid e-mail adress.";
	tblMessage[0][2] = "Veuillez entrer votre message.";
	tblMessage[1][2] = "Please enter your message.";
		  
		if (document.form_courriel.courriel.value == "") { // vérifie qu'on a entré un courriel
			alert(tblMessage[langue][0]); //message 1
			document.form_courriel.courriel.focus();
			return false;
   			}
		else {
			if(document.form_courriel.courriel.value != ""){			  
			   var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$/
			   if (reg.exec(document.form_courriel.courriel.value)==null) { // vérifie si le champ courriel est valide 
				  alert(tblMessage[langue][1]); //message 0
				  document.form_courriel.courriel.focus();
				  return false;
				  }
			   }
			}
		
		if(document.form_courriel.message.value == "")
		{
			var msg = document.form_courriel.message.value;
			if (msg == "" || msg == "Écrivez votre message ici." || msg == "Enter your message here.") { // vérifie qu'on a entré un message
			alert(tblMessage[langue][2]); //message 1
			document.form_courriel.message.focus();
			return false;
   			}
		}
		  document.form_courriel.submit();
	
}

function valideAbo(langue){
	var tblMessage = new Array(new Array(), new Array());
	var d = document.form_courriel;
	tblMessage[0][0] = "Veuillez entrer votre courriel.";
	tblMessage[0][1] = "Veuillez entrer un courriel valide.";
	tblMessage[0][2] = "Veuillez entrer votre message.";
	tblMessage[0][3] = "Veuillez entrer votre nom.";
	tblMessage[0][4] = "Veuillez entrer votre prénom.";
	tblMessage[0][5] = "Vous ne pouvez pas vous abonner et vous déabonner en même temps.";
		  

		if (d.nouveautes.checked=="1"){
			d.nouveautes.value = "oui";
			}
		
			if (d.bulletin.checked=="1"){
			d.bulletin.value = "oui";
			}
			
			if (d.retirer.checked=="1"){
			d.retirer.value = "oui";
			}
		  
		if (d.nouveautes.checked=="1" && d.retirer.checked=="1") { // vérifie que l'usager n'a pas voulu s'abonner et se désabonner en même temps
			alert(tblMessage[langue][5]); //message 5
			d.nouveautes.focus();
			return false;
   			}  
		  
		if (d.nom.value == "") { // vérifie qu'on a choisi un élu
			alert(tblMessage[langue][3]); //message 5
			d.nom.focus();
			return false;
   			}
			
		
		
		if (d.prenom.value == "") { // vérifie qu'on a choisi un élu
			alert(tblMessage[langue][4]); //message 6
			d.prenom.focus();
			return false;
   			}
		
		
		if (d.courriel.value == "") { // vérifie qu'on a entré un courriel
			alert(tblMessage[langue][0]); //message 1
			d.courriel.focus();
			return false;
   			}
		else {
			if(d.courriel.value != ""){			  
			   var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$/
			   if (reg.exec(d.courriel.value)==null) { // vérifie si le champ courriel est valide 
				  alert(tblMessage[langue][1]); //message 0
				  d.courriel.focus();
				  return false;
				  }
			   }
			}
		
		  d.submit();
	
}

function valideQuestions(langue){
	
  var d = document.demande;
  
  var tblMessage = new Array(new Array(), new Array());
  tblMessage[0][0] = "Veuillez entrer votre courriel.";
  tblMessage[0][1] = "Veuillez entrer un courriel valide.";
  tblMessage[0][2] = "Veuillez entrer votre message.";
  tblMessage[0][3] = "Veuillez entrer votre nom.";
  tblMessage[0][4] = "Veuillez entrer votre prénom.";
		  
  if (d.nom.value == "") { // vérifie qu'on a entré un nom
    alert(tblMessage[langue][3]); //message 3
    d.nom.focus();
    return false;
  }
  
  if (d.prenom.value == "") { // vérifie qu'on a entré un prénom
    alert(tblMessage[langue][4]); //message 4
    d.prenom.focus();
    return false;
  }
  
  if (d.courriel.value == "") { // vérifie qu'on a entré un courriel
    alert(tblMessage[langue][0]); //message 0
    d.courriel.focus();
    return false;
  } else {
    if(d.courriel.value != ""){			  
      var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$/
      if (reg.exec(d.courriel.value)==null) { // vérifie si le champ courriel est valide 
        alert(tblMessage[langue][1]); //message 1
        d.courriel.focus();
        return false;
      }
    }
  }

  if (d.message.value == "") { // vérifie qu'on a entré un message
    alert(tblMessage[langue][2]); //message 1
    d.message.focus();
    return false;
  }

  d.submit();
}


/* FONCTIONS POUR L'INDEX DES ACTIVITES DANS MONTREAL PRATIQUE  */


function index_checkAll(nom){
    checkboxes = eval("document.frm_"+nom+"."+nom);
	 check = true;
	for(i=1;i<checkboxes.length;i++){
		if(checkboxes[i].checked==true){
			check = false;
		}
	}
	if (check == true) {
		for(i=0;i<checkboxes.length;i++)
			checkboxes[i].checked=true;
	} else {
		index_unCheckAll();
	}
}
function index_unCheckAll(){
	for(i=0;i<document.frm_ar.ar.length;i++){
		document.frm_ar.ar[i].checked=false;
	}
    for(i=0;i<document.frm_ac.ac.length;i++){
		document.frm_ac.ac[i].checked=false;
	}
}
function index_rechercher(url){
  var arrondissements = ",";
  var activites = ",";
  //var url = "/portal/page?_pageid=65,637436&_dad=portal&_schema=PORTAL";
  for(i=1;i<document.frm_ar.ar.length;i++){
	if(document.frm_ar.ar[i].checked==true){
         arrondissements += document.frm_ar.ar[i].value + ",";
      }
  }
  for(i=1;i<document.frm_ac.ac.length;i++){
	if(document.frm_ac.ac[i].checked==true){
         activites += document.frm_ac.ac[i].value + ",";
      }
  }
  if(arrondissements.length>1) url += "?arr=" + arrondissements;
  if(activites.length>1) {
  	if(arrondissements.length>1) {
  		url += "&ac=" + activites;
  	} else {
  		url += "?ac=" + activites;
  	}
  }
  document.location=url;
}

//-->



function Change_langue(){

	var lapage=this.location.href;
	(lapage.indexOf("/fr/")!=-1)?lapage=lapage.replace("/fr/","/en/"):lapage=lapage.replace("/en/","/fr/");
	this.location = lapage;
}


// Fonctions reliées au date.

function getYesterdayDate(langue){

  var month; 
	var date = new Date(); 
	date.setDate(date.getDate()-1);

    if (langue == 'fr'){
	  month = new Array('janvier', 'f&eacute;vrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'ao&ucirc;t', 
					    'septembre', 'octobre', 'novembre', 'd&eacute;cembre');
	  
	  dateFormat = date.getDate() + ' ' + month[date.getMonth()] + ' ' + date.getFullYear();
	}
	else if (langue == 'en') {
      month = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 
						      'September', 'October', 'November', 'December');
	
	  dateFormat = month[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();
	}
	
	return(dateFormat);

    
}



/* Nom : randomNbr
   But : obtenir un numéro au hasard.
   Entrée : le nombre maximal que l'on désire obtenir. 
   Sortie : un nombre situé entre 1 et le nombre maximal. */
function randomNbr(maxNumber) {
	index = Math.floor(Math.random() * (maxNumber+1));

	if(index == 0) {
		index++;
	}
		
	return index;	
}


/* Nom : randomImgsJpg
   But : Afficher une image jpg au hasard.
   Entrée : le nom du répertoire, le nombre d'images contenu dans le répertoire, la largeur, la hauteur et la classe de l'image.
   Sortie : Affichage d'une image au hasard. */
function randomImgsJpg(dirName, nbrImgsInDir, width, height, classe){

	// Permet d'éviter que deux images identiques s'affichent.
	var img1 = randomNbr(nbrImgsInDir); // Numéro d'image.

	document.write("<img src='" + dirName + img1 + ".jpg'" + "width='" + width + "' height='" + height + "' class='" + classe + "' >");
}

/* Nom : randomImgsGif
   But : Afficher une image gif au hasard.
   Entrée : le nom du répertoire, le nombre d'images contenu dans le répertoire, la largeur, la hauteur et la classe de l'image.
   Sortie : Affichage d'une image au hasard. */ 
function randomImgsGif(dirName, nbrImgsInDir, width, height, classe){

	// Permet d'éviter que deux images identiques s'affichent.
	var img1 = randomNbr(nbrImgsInDir); // Numéro d'image.

	document.write("<img src='" + dirName + img1 + ".gif'" + "width='" + width + "' height='" + height + "' class='" + classe + "' >");
	
}


/* Nom : tdBackground
   But : Change la couleur de background du td sélectionné
   Entrée : le id doit exister dans le document.
   Sortie  : le td n'a plus de background.     
   */   
function tdBackground(id,couleur){
	var obj = document.getElementById(id);
	obj.style.background = couleur;
	//alert(couleur);

}


// FONCTION POUR LE RÉPERTOIRE DES ACTIVITÉS

var lettres = "";
var rep_url = document.location+"";
rep_url = rep_url.substring(0,rep_url.lastIndexOf(',')+1)+"&lettre=";

 function printCategorie(cat){

 	if(lettres != cat && cat!='É'){
 		lettres = cat;
 
	 		document.getElementById("lettres").innerHTML+=" <a href="+rep_url+cat+" class=\"eRed9\">"+cat+"</a> -";
	 	 		
 	}
 }


/*
* Ne pas modifier les deux fonctions qui suivent.
* Elles sont utilisees pour le workflow
* des notifications des nouvelles culturelles
*/
function confirm_cycle_nouvel(lock,pg, item_id){
	var redir = confirm("Êtes-vous certain de vouloir modifier cet élément?");
	if(redir==true && lock ==0) window.open("/pls/portal/portalcon.approbation_util.SELECT_CYCLE_NOUVELLES?p_caid="+pg+"&item_id="+item_id,"","width=730,height=520,scrollbars=yes,left=380,top=0")
}

function okNouvelles(docForm, lock, cycle_id){
	var redir = confirm("Êtes-vous certain de vouloir modifier cet élément?");
	if(redir==true && lock ==0) {
          var newDocName =docForm; 
		newDocName.P_ID_CYCLE.value = cycle_id;
		newDocName.submit();
	}
}
function newElement(docForm, lock, cycle_id){
	var redir = confirm("Êtes-vous certain de vouloir ajouter un élément?");
	if(redir==true && lock ==0) {
         alert(docForm);
          var newDocName =docForm; 
		newDocName.P_ID_CYCLE.value = cycle_id;
		newDocName.submit();
	}

}

function ShowDivImg(nom_div,pos,nom_img){
	var lesdivs = document.getElementsByTagName("DIV");
	var nosdivs = new Array();
	var imgs = document.getElementsByTagName("IMG");
	var nosimgs = new Array();
	var fleche_up = new Image();
	fleche_up.src = "http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/bt_fleche_liste_f.gif"; 
	var fleche_down = new Image();
	fleche_down.src = "http://ville.montreal.qc.ca/pls/portal/docs/page/librairie_fr/images/bt_fleche_liste_o.gif"

	for(var i=0;i<lesdivs.length;i++)
	{
		if(lesdivs[i].id==nom_div)
		{
			nosdivs.push(lesdivs[i]);		
		}
	}
	for(i=0;i<imgs.length;i++)
	{
		if(imgs[i].name==nom_img)
		{
			nosimgs.push(imgs[i]);	
		}
	}
	for(i=0;i<nosdivs.length;i++)
	{
			if(i!=pos)
			{
				nosdivs[i].style.display="none";
				nosimgs[i].src= fleche_up.src;
				
			}
			else
			{
				if(nosdivs[i].style.display=="block")
				{
					nosdivs[i].style.display="none";
					nosimgs[i].src= fleche_up.src;
				}
				else
				{
					nosdivs[i].style.display="block";
					nosimgs[i].src= fleche_down.src;
				}
			}
	}
}



function getWindowWidth() {
	if (self.innerWidth) {
		frameWidth = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth) {
		frameWidth = document.documentElement.clientWidth;
	}
	else if (document.body) {
		frameWidth = document.body.clientWidth;
	}
	else { 
		frameWidth = null;
	}
	
	return frameWidth;
}

function getWindowHeight() {
	
	if (self.innerWidth) {
		frameHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth) {
		frameHeight = document.documentElement.clientHeight;
	}
	else if (document.body) {
		frameHeight = document.body.clientHeight;
	}
	else { 
		frameHeight = null;
	}
	
	return frameHeight;
}

/* Nom : divPopUp
   But : Affiche un pop-up sous forme de div centré dans la page.
   Entrée : blocDiv = id du div, decalageX = décalage par rapport à l'axe des X et 
            decalageY = décalage par rapport à l'axe des Y.
   Sortie  : Le pop-up est affiché.     
   */  
function divPopUp(blocDiv, decalageX, decalageY) {

	var obj = document.getElementById(blocDiv);
	var windWidth = getWindowWidth();
	var windHeight = getWindowHeight();
		
	obj.style.left = windWidth/2 + decalageX + 'px';	
	obj.style.top = windHeight/2 - decalageY + 'px';
	
	if (obj.style.visibility == "visible"){
		obj.style.visibility = "hidden";
	}
	else {
		obj.style.visibility = "visible"
	}
	 
}


/* SONDAGE EN PAGE D'ACCUEIL DU PORTAIL */

/* Nom : divPopUpStat
   But : Affiche un pop-up sous forme de div centré dans la page.
   Entrée : blocDiv = id du div, decalageX = décalage par rapport à l'axe des X, 
            decalageY = décalage par rapport à l'axe des Y et stat = la chance que le pop-up
			s'affiche. Par exemple, si stat = 5, il y a 1 chance sur 5 qu'il s'affiche à
			chaque fois que la page se télécharge.
   Sortie  : Le pop-up est affiché.     
   */  
function divPopUpStat(blocDiv, decalageX, decalageY, stat) {

	var obj = document.getElementById(blocDiv);
	var windWidth; 
	var windHeight; 
	
	/* Donne un nombre entre 1 et 20 afin d'obtenir une statistique d'un sur 20.
	   Le popUp doit être affiché pour 1 personne sur 20.
	*/
    var noUtil = randomNbr(stat);
	
    if(noUtil == 1){
 	    windWidth = getWindowWidth();
	    windHeight = getWindowHeight();
		
		obj.style.left = windWidth/2 + decalageX + 'px';	
		obj.style.top = windHeight/2 - decalageY + 'px';
		
		if (obj.style.visibility == "visible"){
			obj.style.visibility = "hidden";
		}
		else {
			obj.style.visibility = "visible";
		}
	}
	else {
		obj.style.visibility = "hidden";
	}
	 
}


/* 
But : permet de faire des validations avant de soumettre le sondage de la page d'accueil.
Auteur : Jean-Philippe Grondin
Date : 29 juin 2006
*/
function soumettreSondage() {
	
	if (document.frm_sondage.code_postal.value) {
	
		var caractere = document.frm_sondage.code_postal.value.substring(0,1); /* Obtenir le premier caractère du code postal. */
		var reg = /^[a-zA-Z0-9]/ /* Caractères d'un code postal autorisés. */
			   
		if (reg.exec(document.frm_sondage.code_postal.value)!=null) { // vérifie si le code postal est valide 
			
			if(caractere == 'H') {
			
				soumettre(); /* Cette fonction est definie dans admin_fr/media/scripts/sondage.js.
												On soummet le formulaire si le code Postal commence par la lettre 'H'.
										 */
			}
			
		}
		
	}
}
/***** FIN SONDAGE EN PAGE D'ACCUEIL DU PORTAIL ****/


function newWindow(width, height) {
	if (document.documentElement.clientWidth) {
		document.documentElement.clientWidth = width;
	}
	else { 
		frameWidth = null;
	}
	return frameWidth;
}

function changeImg(imgId, imgPath) {
	
	var obj = document.getElementById(imgId);	
	obj.src = imgPath;

}






/* But : obtenir un tableau de pointeur à des éléments (div, img, etc.) 
        correspondant à une classe passée en paramètre. 
	 Antécédent : la classe existe dans la page.
	 Conséquent : le tableau d'éléments est retournée. Le tableau commence à l'indice 0.
*/
function getElementsByClass(myClass) {  

	var classArr = new Array();
	var tmpArr = new Array();
	tmpArr = document.getElementsByTagName("*");

	j = 0; // Indice du tableau qui contient les éléments correspondant à la classe.
	
	for(i=0; i<tmpArr.length; i++) {  

			if (tmpArr[i].className==myClass) {  
				classArr[j] = tmpArr[i];
				j++;
			}

	 }
	 return classArr;
}


/* But : obtenir un tableau de pointeur à des éléments (div, img, etc.) 
        correspondant à deux classes passées en paramètre. 
	 Antécédent : la classe existe dans la page.
	 Conséquent : le tableau d'éléments est retournée. Le tableau commence à l'indice 0.
*/
function getElementsByTwoClasses(myClass1, myClass2) {  

	var classArr = new Array();
	var tmpArr = new Array();
	tmpArr = document.getElementsByTagName("*");

	j = 0; // Indice du tableau qui contient les éléments correspondant à la classe.
	
	for(i=0; i<tmpArr.length; i++) {  

			if ( (tmpArr[i].className==myClass1) ||
					 (tmpArr[i].className==myClass2) ) {  
				classArr[j] = tmpArr[i];
				j++;
			}

	 }
	 return classArr;
}







/* But : ouvrir un div d'une liste avec contenu ouvrant.
	 Antécédent : la position de l'élément dans la liste.
	 Conséquent : le div correspondant à la position "pos" est affiché et les autres cachés.
*/
function openContent(pos) {

	pos = pos-1;
	
	//Tableau des divs "id_name" contenus dans le document.
	var elementsList = getElementsByTwoClasses("contenuCache", "contenuAffiche");
  
  // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).	
	for(var i=0; i<elementsList.length; i++) {
		
		if( (i == pos)){
		    if (elementsList[i].className == "contenuAffiche") {
					elementsList[i].className = "contenuCache";
				}
				else {
					elementsList[i].className = "contenuAffiche";
				}
		}
		else if( (i != pos)){
			elementsList[i].className = "contenuCache";
		}
		
   }

}


/* But : Changer la classe d'un élément, selon sa position dans la page. La fonction génére un tableau d'élément
         ayant la même classe et change la classe de l'élément à la position "pos" dans le tableau. 
	 Antécédent : la position de l'élément dans la page, le nom de la classe originale et le nom de la nouvelle classe.
	 Conséquent : la classe de l'élément à la position "pos" est modifiée.
*/
function changeClass(pos, classeOri, classeNouv) {

	pos = pos-1;
	
	//Tableau des divs "id_name" contenus dans le document.
	var elementsList = getElementsByTwoClasses(classeOri, classeNouv);
  
  // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).	
	for(var i=0; i<elementsList.length; i++) {
		
		if( (i == pos)){
		    if (elementsList[i].className == classeNouv) {
					elementsList[i].className = classeOri;
				}
				else {
					elementsList[i].className = classeNouv;
				}
		}
		else if( (i != pos)){
			elementsList[i].className = classeOri;
		}
		
   }

}


/* But : ouvrir un div à l'aide d'une liste déroulante (menu de 3ième niveau).
	 Antécédent : la position de l'élément dans la liste correspond à la position du div dans la page.
	 Conséquent : le div correspondant à la position "pos" est affiché et les autres cachés.
*/
function showDivByPos(myClass, pos) {

	pos = pos-1;

  var divs = getElementsByClass(myClass);
  
  // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).	
	for(var i=0; i<divs.length; i++) {
		
		if(i == pos){
			if (divs[i].style.display == "block") {
				divs[i].style.display = "none";
			}
			else if (divs[i].style.display == "none") {
				divs[i].style.display = "block";
			}
		}
		else if( (i != pos)){
			divs[i].style.display = "none";	
		}
		
   }

}



/* But : afficher un div à la fois qui correspond à la position donné en paramètre.
				 Cette fonction est relié au menu de 3ième niveau.
	 Antécédent : la classe existe dans la page et tous les divs ont la même classe.
	 Conséquent : le div correspondant à la position "pos" est affiché et les autres cachés.
*/
function showDivMenu(pos){
	
	pos = pos-1;
	
	//Tableau des divs "id_name" contenus dans le document.
  var divs = getElementsByClass("contenu");
	var links = getElementsByTwoClasses("lienDivCache", "lienDivAffiche");
  
  // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).	
	for(var i=0; i<divs.length; i++) {
		
		if( (i == pos)){
		    if (divs[i].style.display == "block") {
					divs[i].style.display = "none"; 
					links[i].className = "lienDivCache";
				}
				else {
					divs[i].style.display = "block";
					links[i].className = "lienDivAffiche";
				}
		}
		else if( (i != pos)){
			divs[i].style.display="none";
			links[i].className = "lienDivCache";
		}
		
   }
}



/* But : ouvrir un div à l'aide d'une liste déroulante (menu de 3ième niveau).
	 Antécédent : la position de l'élément dans la liste correspond à la position du div dans la page.
	 Conséquent : le div correspondant à la position "pos" est affiché et les autres cachés.
*/
function showDivList(myClass, pos) {

	pos = pos-1;

  var divs = getElementsByClass(myClass);
  
  // Cacher tous les divs correspondant au nom du id fourni (id_name), excepté celui relatif à la position fournie (id_no).	
	for(var i=0; i<divs.length; i++) {
		
		if(i == pos){
			divs[i].style.display = "block";
		} 
		else if( (i != pos)){
			divs[i].style.display = "none";	
		}
		
   }

}

function ieupdate()
{
	theObjects = document.getElementsByTagName("object"); 
	for (var i = 0; i < theObjects.length; i++) { 
	theObjects[i].outerHTML = theObjects[i].outerHTML;
	}
}



function Get_Tags(nom,letype){
	//Retourne sous forme de tableau les tags HTML (paramètre letype) dans le id CONTIENT un nom (Le premier paramètre) particulier
	var les_elements = document.getElementsByTagName(letype.toUpperCase());
	var tableau = new Array();
	for(var i=0;i<les_elements.length;i++)
	{
			if(les_elements[i].id.search(nom)!=-1)
			{
				tableau.push(les_elements[i]);		
			}
	}
	return tableau;
}


function ToggleDivVisibility(nom_commun,nom_unique,veilleuse){
	// Cette fonction sert à gérer la visibilité d'une série de div 
	// Le nom_commun ou préfixe sert à constituer un tableau de div permettant leur gestion
	// Le nom_unique ou suffixe permet de donner un id unique à chaque nom et d'identifier sur quelle div l'opération doit
	// être effectuée
	//Le paramètre veilleuse est optionnel. S'il est passé true, un div restera toujours allumé.
	// Si un seul paramètre est passé, il s'agira de l'id d'un div que l'on voudra montrer ou cacher
	// Auteur : Yves Gosselin
	var lesdivs = document.getElementsByTagName("DIV");
	if(arguments.length>1)
	{
			var nom = nom_commun + nom_unique;
			var myRegExp = new RegExp(nom_commun);
			var mydivs = Get_Tags(myRegExp,"div");
			for(i=0;i<mydivs.length;i++)
			{
				if(mydivs[i].id!=nom)
				{
					mydivs[i].style.display="none";
				}
				else
				{
					if(veilleuse)
					{
						if(mydivs[i].style.display=="none" || mydivs[i].style.display=="")
						{
							mydivs[i].style.display="block";
						}
					}
					else
					{
						(mydivs[i].style.display=="block")?mydivs[i].style.display="none":mydivs[i].style.display="block";
					}
				}
			}
	}
	else
	{
		for(i=0;i<lesdivs.length;i++)
		{
			if(lesdivs[i].id==nom_commun)
			{
				(lesdivs[i].style.display=="block")?lesdivs[i].style.display="none":lesdivs[i].style.display="block";
			}
		}
	}
}	

function SetDivVisibilityNone(nom_commun){
	// Cette fonction sert à masque un div d'une famille
	var myRegExp = new RegExp(nom_commun);
	var mydivs = Get_Tags(myRegExp,"div");
	for(i=0;i<mydivs.length;i++)
	{
		mydivs[i].style.display="none";
	}
}

function ChangeMenuClass(nom_commun,nom_unique,lediv,ev){
	// Cette fonction permet de gérer les flèches associées à un menu ouvrant
	// Les deux premiers paramètres sert à obtenir les divs subissent l'action
	// Le paramètre this est le div contenant l'item du menu
	// ev est le paramètre permettant d'identifier
	// ATTENTION
	/*
	*** Cette fonction EXIGE des SOULIGNÉS dans les ID et le NOM DES CLASSES des DIVS où elle est appelée
	*** Le souligné sert à séparer le préfixe et le suffixe d'un nom.
	*
	// ATTENTION
	*** Les noms de classes utilisées doivent contenir un SOULIGNÉ et avoir un des trois suffixes (ce qui vient après le souligné)
	*** reg, hov et act
	*/
	var nom = nom_commun + nom_unique;
	var myRegExp = new RegExp(nom_commun);
	var mydivs = Get_Tags(myRegExp,"div");
	//Retrouver les div de type menu
	
	var nom_commun_div = lediv.id.substring(0,lediv.id.lastIndexOf("_"));
	var nom_div = new RegExp(nom_commun_div);
	var menus_divs = Get_Tags(nom_commun_div,"div");
	
	if(lediv.className.indexOf("_")!=-1)
	{
		var nom_commun_classe = lediv.className.substring(0,lediv.className.lastIndexOf("_"));	
	}
	var i=-1;
	for(var j=0;j<mydivs.length;j++)
	{
		if(mydivs[j].style.display=="block")
		{
			i=j;
			break;
		}
	}
	for(j=0;j<menus_divs.length;j++)//On met tous les div de menus à inactif
	{
		menus_divs[j].className=menus_divs[j].className.substring(0,lediv.className.lastIndexOf("_")) + "_reg";
	}
	if(i!=-1)//Il y a un div d'ouvert
	{
		if(mydivs[i].id==nom)//Le div ouvert est celui où est lancé	l'événement
		{
			lediv.className = nom_commun_classe + "_act";
		}
		else
		{
			lediv.className = nom_commun_classe + "_hov";
			menus_divs[i].className = menus_divs[i].className.substring(0,lediv.className.lastIndexOf("_")) + "_act";
			if(ev.type.toUpperCase()=="MOUSEOUT")
			{
				lediv.className = nom_commun_classe + "_reg";	
			}
		}
	}
	else
	{
		if((ev.type.toUpperCase()=="MOUSEOVER")||(ev.type.toUpperCase()=="CLICK"))
		{
			lediv.className = nom_commun_classe + "_hov";	
		}
		
	}
		
}

function toggleClassLi(nomCommun, nomUnique) { 
/* But : Changer la classe dans la liste de contenu ouvrant.
	 Antécédent : Un id est composé d'un nom commun (préfixe) et d'un nom unique (suffixe).
	 Conséquent : La classe du Li qui a le id cherché à sa classe modifiée.
	 Auteur : Jean-Philippe G et Yves Gosselin 
*/	

	if (nomUnique == null) {
		var nomUnique = '';
	}
	
	var nom = nomCommun + nomUnique; 
	var myRegExp = new RegExp(nomCommun); 
	var tabLi = Get_Tags(myRegExp,"LI"); 
	
	for(i=0;i<tabLi.length;i++)
	{
		if(tabLi[i].id != nom) 
		{ 
			tabLi[i].className = "contenuCache";
		}
		else 
		{ 
			if (tabLi[i].className == "contenuAffiche") 
			{ 
				tabLi[i].className = "contenuCache";
			}
			else 
			{
				tabLi[i].className = "contenuAffiche"; 
			}
		}
	
	}

}




function checkDigits(WhatToCheck, HowManyDigits){
/* 
	Auteur : Yves Gosselin
	But : Cette fonction determine si le premier parametre contient au moins le nombre 
	      d'entiers passé dans le second parametre
*/
    var DigitCounter=0
    for (i=0; i<WhatToCheck.length; i++)
    {
        if (!(isNaN(WhatToCheck.charAt(i))))
        {
            DigitCounter = DigitCounter + 1;
        }
    }
    if (DigitCounter < HowManyDigits)
    {
        return false;
    }
    else
    {
        return true;
    }
}


function moveFocusPhone(posActuelle, nbCaract, evt){
/* 
	Auteurs : Jean-Philippe Grondin et Yves Gosselin
	Date : 09 juin 2006
	But : Permet d'avancer d'un champ à un autre pour les téléphones sans utiliser la tabulation.
	      Utilisé avec le formulaire d'envoi de courriel standard. "posActuelle" correspond
				au champs actuel sur lequel est appliquée la fonction. "nbCaract" est le nombre de
				caractères permis jusqu'à temps qu'on change de champs. "evt" est relié touche enfoncée dans
				le clavier par l'utilisateur.
*/
		
		if(navigator.platform.indexOf("Mac")==-1) {
			
				with (document.form_courriel){
					
					  if ( (checkDigits(phone_nb[posActuelle].value, nbCaract)) && // Nombre de caractères allouées avant d'aller au prochaine champs
									(evt.keyCode!=8) &&   // Touche 8 sur le clavier = Retour de charriot
									(evt.keyCode!=46) &&  // Touche 46 sur le clavier = Supprimer
									(evt.keyCode!=32) ) { // Touche 32 sur le clavier = Espace
							
							if (phone_nb[posActuelle+1].value == "") {
									phone_nb[posActuelle+1].select(); // Aller au prochain champs de téléphone ("phone_nb")
									phone_nb[posActuelle+1].focus();
							}
							
						}
				}
				
		}
}


function concatChampsCourriel(){
/* 
	Auteur : Jean Philippe Grondin
	Date : 09 juin 2006, modifié le 14 août 2007.
	But : Concatène tous les champs du formulaire courriel selon le Canada, les États-Unis ou
	      un pays étranger.
*/

	var pos = 0;


	with (document.form_courriel) {
		
			if(telephone.value != "") { 
					telephone.value = ""; // Vider le champs telephone.
			}		

			if( (pays.value == "Canada") || 
					(pays.value == "États-Unis") ||
					(pays.value == "United States")  ) {
			
					if (pays.value == "Canada"){
						province_etat.value = province.value;
					}
					else {
						province_etat.value = etat.value;		
					}
		
					code_postal.value = code_postal_canUs.value;
					
					telephone.value += phone_nb[pos].value; // Indicatif regionnal
					telephone.value += " "; // Espace
					telephone.value += phone_nb[pos+1].value; // 3 premiers chiffres du numéro de téléphone 
					telephone.value += "-"; // -
					telephone.value += phone_nb[pos+2].value; // 4 derniers chiffres du numéro de téléphone
					
					if (phone_nb[pos+3].value != "") {
						telephone.value += "   Poste : ";
						telephone.value += phone_nb[pos+3].value; // Numero de poste
					}
			}
			else { // Pays etrangers.
					//pays.value = pays_specifie.value;
					province_etat.value = " -";
					code_postal.value = code_postal_int.value;
					telephone.value = telephone_int.value;		
			}


	}

}



function toggleStateProvince(){
/* 
	Auteur : Jean Philippe Grondin
	Date : 09 juin 2006, modifié le 14 août 2007.
	But : Affiche les formats standards de code postal et de numéro de téléphone,
         selon les pays : Canada, États-Unis ou autres pays. Utilisé avec
				 le formulaire d'envoi de courriel standard.
*/	

	with (document.form_courriel) {

		// Get current selected country in drop down list.
		//var selectedCountry = choix_pays.options[choix_pays.selectedIndex].value;
		var selectedCountry = pays.options[pays.selectedIndex].value;

		if (selectedCountry == "Canada"){
			showDiv("province");
			showDiv("canUSPhone");
			showDiv("canUSPostalCode");
			hideDiv("state");
			hideDiv("intPhone");
			hideDiv("intPostalCode");
		}

		else if(selectedCountry == "États-Unis" || selectedCountry == "United States"){
			showDiv("state");
			showDiv("canUSPhone");
			showDiv("canUSPostalCode");
			hideDiv("province");
			hideDiv("intPhone");
			hideDiv("intPostalCode");
		}

		else { // Other country.
			showDiv("intPhone");
			showDiv("intPostalCode");
			hideDiv("state");
			hideDiv("province");
			hideDiv("canUSPhone");
			hideDiv("canUSPostalCode");
		}

	}

}


function blockMaxCharsMsg(nbCharMax) {
/*
  Auteur : Jean Philippe Grondin
	Blocker le nombre de caractère du message selon le nombre maximum de caractères acceptés passés
	en paramètres. Utilisé avec le formulaire d'envoi de courriel standard.
*/
	with (document.form_courriel){

		if(message.value.length >= nbCharMax) {
			message.value = message.value.substring(0, nbCharMax);
		}
	
	}

}

function blockMaxCharsMsg(formField, nbCharMax) {
/*
  Auteur : Christine Dallaire
	Blocker le nombre de caractère du message selon le nombre maximum de caractères acceptés passés
	en paramètres. Utilisé avec le formulaire d'envoi de courriel standard.
*/
	with (document.form_courriel){

		if(formField.value.length == nbCharMax) {
			formField.value = formField.value.substring(0, nbCharMax-1);
		}
	
	}

}



function general_init()
	{
		/* Sert de contenant pour toutes les fonctions ayant besoin d'être initialisées au chargement de la page*/
		init_BarreOnglets();
		show_event_month(0);//Afficher des évenements selon le mois courant
	}
	function init_BarreOnglets(){
		//Sert à la gestion d'une barre d'onglets avec images
		var barreOnglets = Get_Tags("barreOnglets_","div");
		if(barreOnglets)
		{
			for(var i=0;i<barreOnglets.length;i++)
			{
				var items = barreOnglets[i].getElementsByTagName("a");
				
				for(var j=0;j<items.length;j++)
				{
					setBehavior(items[j],barreOnglets[i],0);
				}
			}
		}
	}
	
	function setBehavior(obj,objGenerique,letype)
	{
		/*Cette fonction sert à règler le comportement d'une interface au moment du chargement
			de la page et dans l'interface en général. 
		Elle reçoit en paramètre un ou plusieurs objets. Le premier est l'objet dont on veut réguler le comportement.
		Le second est un objet générique qui souvent est un objet qui constitue le parent de l'objet qui subit l'action.
			Dans le cas de la barre d'onglets, le premier obj est l'onglet. Le second est la barre d'onglets.
		Le type est le type d'action à effectuer puisque l'on voulait une fonction la plus générique possible. La valeur 0
			désigne une barre d'onglets avec images.		
		*/
		if(letype==0)
		{
			//obj représente un onglet de la barre d'onglet
			//objGenerique représente représente l'objet barre d'onglet
			//On doit effectuer un traitement sur toutes les images constituant la barre d'onglets
			
			var toutes_images = objGenerique.getElementsByTagName("img");
			//L'objet onglet contient-il des images?
			var imgs_onglets = obj.getElementsByTagName("img");
			if(imgs_onglets)//Y a-t-il des images
			{
				//Ai-je une image hover?
				var hasHover = false;
				var reg,act;
				
				for(var i=0;i<imgs_onglets.length;i++)
				{
					if(imgs_onglets[i].id.indexOf("_reg")!=-1)
					{
						reg=i;
					}
					if(imgs_onglets[i].id.indexOf("_act")!=-1)
					{
						act=i;
					}
					if(imgs_onglets[i].id.indexOf("_hov")!=-1)
					{
						hasHover = true;
						break;
					}
				}
				if(hasHover)//Gestion des comportements sur les survols de souris
				{
					obj.onmouseover= function(){
						if(imgs_onglets[act].className!="display_visible")
						{
							swapClass(imgs_onglets,"display_invisible","display_visible",imgs_onglets[i]);
						}
					}
					obj.onmouseout = function(){
						if(imgs_onglets[act].className!="display_visible")
						{
							swapClass(imgs_onglets,"display_invisible","display_visible",imgs_onglets[reg]);
						}
					}
				}
				obj.onclick=function(){
					//Assurer que les images par défaut sont reg avant d'effectuer les modifications
					for(var cpt=0;cpt<toutes_images.length;cpt++)
					{
						if(toutes_images[cpt].id.indexOf("_reg")!=-1)
						{
							toutes_images[cpt].className="display_visible";
						}
						else
						{
							toutes_images[cpt].className="display_invisible";
						}
				
					}
					swapClass(imgs_onglets,"display_invisible","display_visible",imgs_onglets[act]);
					var prefixe_div = "div_" +objGenerique.id + "_";
					ToggleDivVisibility(prefixe_div,obj.id,true);
					
				}
			}
			else
			{
				obj.onclick=function(){
					var prefixe_div = "div_" +objGenerique.id + "_";
					ToggleDivVisibility(prefixe_div,obj.id,true);
				}
			}
		}
		
	}
	function swapClass(objs,defaut,desire,obj)
	{
		/*Cette fonction sert à changer la classe d'un tableau d'objets HTML passé en paramètre.
		  Si l'on retrouve plus de 2 paramètres, cela veut dire qu'un obj doit avoir une classe (paramètre desire) 
		  	qui lui est propre
		
		*/
		for(var i=0;i<objs.length;i++)
		{
			objs[i].className = defaut;
			if(arguments.length>2)
			{
				if(objs[i].id==obj.id)
				{
					objs[i].className = desire;
				}	
			}
		}
	}
	
	function getGestionNosReglementsURL() {
    url = "/pls/portal/url/page/PES_SYPRE_FR/rep_reglements/nos_reglements/nos_reglements?params_recherche=";
		url += document.location.href.toUpperCase().substr(0,document.location.href.toUpperCase().indexOf("QC.CA")+5);
		url += "/sel/sypre-consultation/recherchereglement?params=grpages=";
    url = url+pg_ids[0]+"**pg="+ids[0];
    window.location = url;
}

function getListeNosReglementsURL(params_recherche) {
    url = "/pls/portal/url/page/"+pg_ids[0]+"/nos_reglements_liste?params_recherche=";
    url = url+params_recherche;
    window.location = url;
}

function show_event_month(init){
		/*
		Auteur : Yves Gosselin
		Date : 11 décembre 2006
		But : Initialiser la fonction permettant l'affichage d'un calendrier d'événements
				Appelant : general_init()
		Dépendances : ToggleDivVisibility(),Get_Tags() dans scripts.js;
		*/
	
	if(document.frm_calendrier_evenements)
	{
		document.frm_calendrier_evenements.calendrier_mois.onchange= function(){display_event_month();}
		if(document.frm_calendrier_evenements.calendrier_annee)
		{
			document.frm_calendrier_evenements.calendrier_annee.onchange= function(){display_event_month();}
		}
		display_event_month(0);
	}
}
	
function display_event_month(init){
		/*
		Auteur : Yves Gosselin
		Date : 2 novembre 2006
		But : Afficher les événements du mois courant contenus dans une division éditable par un édimestre
		Modification : 16 novembre 2006. Considérer l'année où a lieu l'événement
		Appelant : general_init()
		Dépendances : ToggleDivVisibility(),Get_Tags() dans scripts.js;
		*/

			var dhui = new Date();
			var div_suffixes_mois = new Array("janv","fevr","mars","avri","mai","juin","juil","aout","sept","octo","nove","dece");
			document.frm_calendrier_evenements.actual_year.value=dhui.getFullYear();
			if(init==0)
			{
				if(document.frm_calendrier_evenements.calendrier_annee)
				{
						for(var a=0;a<document.frm_calendrier_evenements.calendrier_annee.options.length;a++)
						{
							if(document.frm_calendrier_evenements.calendrier_annee.options[a].value==dhui.getFullYear())
							{
								document.frm_calendrier_evenements.calendrier_annee.selectedIndex =a;
									break;
							}
						}
				}
			}
			else
			{
				//S'il y a plus d'une année, la valeur est fourni par le menu déroulant
				if(document.frm_calendrier_evenements.calendrier_annee)
				{
						document.frm_calendrier_evenements.actual_year.value = document.frm_calendrier_evenements.calendrier_annee.options[document.frm_calendrier_evenements.calendrier_annee.selectedIndex].value;
				}
				ToggleDivVisibility("div_annee_calendrier_evenements_",document.frm_calendrier_evenements.actual_year.value,true);
			}
			
			var div_calendrier_noevent = "div_nocalendrier_evenements_" + document.frm_calendrier_evenements.actual_year.value;
			var div_mois = "div_calendrier_evenements_"+ document.frm_calendrier_evenements.actual_year.value + "_";
			var div_mois = Get_Tags(div_mois,"div");
			if(div_mois.length==12)//Nous nous assurons qu'il y a des divisions représentant 12 mois
			{
				//Gestion de l'année
				var div_calendrier = "div_calendrier_evenements_" + document.frm_calendrier_evenements.actual_year.value + "_";
				//Afficher le div de l'année courante
				ToggleDivVisibility("div_annee_calendrier_evenements_",document.frm_calendrier_evenements.actual_year.value,true);
				
				//Fin gestion de l'année
				if(init==0)
				{
					//Ajustement du select au mois courant lors du premier appel
					document.frm_calendrier_evenements.calendrier_mois.selectedIndex = dhui.getMonth();
					ToggleDivVisibility(div_calendrier,div_suffixes_mois[dhui.getMonth()],true);
				}
				else
				{
					if(document.frm_calendrier_evenements.calendrier_mois.options[document.frm_calendrier_evenements.calendrier_mois.selectedIndex].value=="tous")
					{
						for(i=0;i<div_mois.length;i++)
						{
							div_mois[i].style.display="block";
						}
					}
					else
					{
							ToggleDivVisibility(div_calendrier,div_suffixes_mois[document.frm_calendrier_evenements.calendrier_mois.selectedIndex],true);
					}
				}
			}
			else
			{
				for(var i=0;i<div_mois.length;i++)
				{
					div_mois[i].style.display="none";
				}
				document.getElementById(div_calendrier_noevent).style.display="block";
			}
}

function MM_CheckFlashVersion(reqVerStr,msg){
  with(navigator){
    var isIE  = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
    var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
    if (!isIE || !isWin){  
      var flashVer = -1;
      if (plugins && plugins.length > 0){
        var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
        desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
        if (desc == "") flashVer = -1;
        else{
          var descArr = desc.split(" ");
          var tempArrMajor = descArr[2].split(".");
          var verMajor = tempArrMajor[0];
          var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
          var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
          flashVer =  parseFloat(verMajor + "." + verMinor);
        }
      }
      // WebTV has Flash Player 4 or lower -- too low for video
      else if (userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 4.0;

      var verArr = reqVerStr.split(",");
      var reqVer = parseFloat(verArr[0] + "." + verArr[2]);
  
      if (flashVer < reqVer){
        if (confirm(msg))
          window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
      }
    }
  } 
}
	
	
function insererVideoFlash(DivID, ObjectID, Width, Height, Url, Variable, BgColor)
{
  	var d = document.getElementById(DivID);

	d.innerHTML = '';
  	d.innerHTML = '<object type="application/x-shockwave-flash" width=' + Width + ' height=' + Height +' data=' + Url + ' id=' + ObjectID + '><param name="movie" value=' + Url + '><param name="FlashVars" value=' + Variable + '><param name="bgcolor" value=' + BgColor + '/></object>';
}


// Fonction pour la gestion complète des cookies : Création / Récupération / Suppression

	/*
		 name - name of the cookie
		 value - value of the cookie
		 [expires] - expiration date of the cookie
			 (defaults to end of current session)
		 [path] - path for which the cookie is valid
			 (defaults to path of calling document)
		 [domain] - domain for which the cookie is valid
			 (defaults to domain of calling document)
		 [secure] - Boolean value indicating if the cookie transmission requires
			 a secure transmission
		 * an argument defaults when it is assigned null as a placeholder
		 * a null placeholder is not required for trailing omitted arguments
	*/
	
	function setCookie(name, value, expires, path, domain, secure) {
		var curCookie = name + "=" + escape(value) +
				((expires) ? "; expires=" + expires.toGMTString() : "") +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				((secure) ? "; secure" : "");
		document.cookie = curCookie;
	}
	
	
	/*
		name - name of the desired cookie
		return string containing value of specified cookie or null
		if cookie does not exist
	*/
	
	function getCookie(name) {
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		if (begin == -1) {
			begin = dc.indexOf(prefix);
			if (begin != 0) return null;
		} else
			begin += 2;
		var end = document.cookie.indexOf(";", begin);
		if (end == -1)
			end = dc.length;
		return unescape(dc.substring(begin + prefix.length, end));
	}
	
	
	/*
		 name - name of the cookie
		 [path] - path of the cookie (must be same as path used to create cookie)
		 [domain] - domain of the cookie (must be same as domain used to
			 create cookie)
		 path and domain default if assigned null or omitted if no explicit
			 argument proceeds
	*/
	
	function deleteCookie(name, path, domain) {
		if (getCookie(name)) {
			document.cookie = name + "=" +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}
	
	// date - any instance of the Date object
	// * hand all instances of the Date object to this function for "repairs"
	
	function fixDate(date) {
		var base = new Date(0);
		var skew = base.getTime();
		if (skew > 0)
			date.setTime(date.getTime() - skew);
	}
	


/* script de swap class pour, entre autres, formulaire d'inscription aux formations */
function swapIt(id, newclass) { 
	if (document.getElementById) { 
		document.getElementById(id).className = newclass; 
	} 
} 


function getVideo(divId, videoUrl, langue, play){
/* Auteur : Jean-Philippe Grondin
   Date : 02 août 2007
	 Objectif : afficher un vidéo Flash et vérifier si le Player Flash est installé.
*/
	// Version maximale supportée.
	var requiredMajorVersion = 8;
	// Version minimale requise.
	var requiredMinorVersion = 0;
	// Révision minimum de Flash.
	var requiredRevision = 0;
	
	var alternateContent;
	var variableVideo;
	
	extension = videoUrl.match(/.flv/gi);
	
 	if(extension != null) { // si le url du fichier contient une extension ".swf" on l'enlève.
  	videoUrl = videoUrl.substring(0,videoUrl.length-4);
	}
	
	// Vérifier la version du Player Flash.
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

	if (hasReqestedVersion) {

		if (play == false) // Le vidéo ne doit pas jouer par défaut.
			variableVideo = '&MM_ComponentVersion=1&skinName=/pls/portal/docs/page/librairie_fr/video/Halo_Skin_3&streamName=' + videoUrl + '&autoPlay=false&autoRewind=true'; 
		else // Le vidéo joue dès qu'il apparaît dans la page.
			variableVideo = '&MM_ComponentVersion=1&skinName=/pls/portal/docs/page/librairie_fr/video/Halo_Skin_3&streamName=' + videoUrl + '&autoPlay=true&autoRewind=true'; 		
		
		insererVideoFlash(divId,'FLVPlayer','342', '291', '/pls/portal/docs/page/librairie_fr/video/FLVPlayer_Progressive.swf', variableVideo, '');
	} 	
	else {  // Le Flash Player n'est pas installé, alors on affiche un message pour inviter l'utilisateur à télécharger le "plug-in".
		if (langue == 'en') {
			alternateContent = '<p style="font-size: 10px;">This content requires the installation of <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Get Flash Player</a></li></ul>';
			+ '<style>div.popUpVideo ul.listeCommunication li.internet { background: none; padding-left: 0px; } div.infoVideo { display: none; }</style>';
		}
		else {
			alternateContent = '<p style="font-size: 10px;">Pour afficher le contenu, vous devez installer <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Flash Player</a></li></ul>';
			+ '<style>div.popUpVideo ul.listeCommunication li.internet { background: none; padding-left: 0px; } div.infoVideo { display: none; }</style>';
		}
			
		document.write(alternateContent);  // Insérer le code HTML
	}

}

function getVideo_W_H(divId, videoUrl, langue, play, v_width, v_height){
/* Auteur : Jean-Philippe Grondin
			Iann Troalen (ajout des dimensions du vidéo dans paramètres de la fonction)
			
   Date : 02 août 2007
	 Objectif : afficher un vidéo Flash et vérifier si le Player Flash est installé.
*/
	
	// Ajouter à la grandeur du vidéo ce qu'il manque pour avoir la grandeur du player avec vidéo à l'intérieur
	v_width = (parseInt(v_width) + 22).toString();
	v_height = (parseInt(v_height) + 51).toString();
	
	
	// Version maximale supportée.
	var requiredMajorVersion = 8;
	// Version minimale requise.
	var requiredMinorVersion = 0;
	// Révision minimum de Flash.
	var requiredRevision = 0;
	
	var alternateContent;
	var variableVideo;
	
	extension = videoUrl.match(/.flv/gi);
	
 	if(extension != null) { // si le url du fichier contient une extension ".swf" on l'enlève.
  	videoUrl = videoUrl.substring(0,videoUrl.length-4);
	}
	
	// Vérifier la version du Player Flash.
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

	if (hasReqestedVersion) {

		if (play == false) // Le vidéo ne doit pas jouer par défaut.
			variableVideo = '&MM_ComponentVersion=1&skinName=/pls/portal/docs/page/librairie_fr/video/Halo_Skin_3&streamName=' + videoUrl + '&autoPlay=false&autoRewind=true'; 
		else // Le vidéo joue dès qu'il apparaît dans la page.
			variableVideo = '&MM_ComponentVersion=1&skinName=/pls/portal/docs/page/librairie_fr/video/Halo_Skin_3&streamName=' + videoUrl + '&autoPlay=true&autoRewind=true'; 		
		
		insererVideoFlash(divId,'FLVPlayer', v_width, v_height, '/pls/portal/docs/page/librairie_fr/video/FLVPlayer_Progressive.swf', variableVideo, '');
	} 	
	else {  // Le Flash Player n'est pas installé, alors on affiche un message pour inviter l'utilisateur à télécharger le "plug-in".
		if (langue == 'en') {
			alternateContent = '<p style="font-size: 10px;">This content requires the installation of <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Get Flash Player</a></li></ul>';
			+ '<style>div.popUpVideo ul.listeCommunication li.internet { background: none; padding-left: 0px; } div.infoVideo { display: none; }</style>';
		}
		else {
			alternateContent = '<p style="font-size: 10px;">Pour afficher le contenu, vous devez installer <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Flash Player</a></li></ul>';
			+ '<style>div.popUpVideo ul.listeCommunication li.internet { background: none; padding-left: 0px; } div.infoVideo { display: none; }</style>';
		}
			
		document.write(alternateContent);  // Insérer le code HTML
	}

}


function insererFlash(DivID, ObjectID, Width, Height, Url, BgColor, langue){
/* Auteur : Iann Troalen
   modifié par : Jean Philippe Grondin
	 Date : 16 août 2007
*/
	// Version maximale supportée.
	var requiredMajorVersion = 8;
	// Version minimale requise.
	var requiredMinorVersion = 0;
	// Révision minimum de Flash.
	var requiredRevision = 0;

	// Vérifier la version du Player Flash.
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

	if (hasReqestedVersion) { // Insérer le flash dans la page à l'intérieur d'un Div.
  	var d = document.getElementById(DivID);
  	d.innerHTML = '<object type="application/x-shockwave-flash" width=' + Width + ' height=' + Height +' data=' + Url + ' id=' + ObjectID + '><param name="movie" value=' + Url + '><param name="bgcolor" value=' + BgColor + '/></object>';
	} 	
	else {  // Le Flash Player n'est pas installé, alors on affiche un message pour inviter l'utilisateur à télécharger le "plug-in".
		if (langue == 'en') {
			alternateContent = '<p style="font-size: 10px;">This content requires the installation of <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Get Flash Player</a></li></ul>';
		}
		else {
			alternateContent = '<p style="font-size: 10px;">Pour afficher le contenu, vous devez installer <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Flash Player</a></li></ul>';
		}
			
		document.write(alternateContent);  // Insérer le code HTML
	}
	
}
function insererFlashFP9(DivID, ObjectID, Width, Height, Url, BgColor, langue){
/* Auteur : Iann Troalen
   modifié par : Luc Normandin
	 Date : 30 Mai 2008
*/
	// Version maximale supportée.
	var requiredMajorVersion = 9;
	// Version minimale requise.
	var requiredMinorVersion = 0;
	// Révision minimum de Flash.
	var requiredRevision = 0;

	// Vérifier la version du Player Flash.
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	
	if (hasReqestedVersion) { // Insérer le flash dans la page à l'intérieur d'un Div.
  	var d = document.getElementById(DivID);
  	d.innerHTML = '<object type="application/x-shockwave-flash" width=' + Width + ' height=' + Height +' data=' + Url + ' id=' + ObjectID + '><param name="movie" value=' + Url + '><param name="bgcolor" value=' + BgColor + '/></object>';
	} 	
	else {  // Le Flash Player n'est pas installé, alors on affiche un message pour inviter l'utilisateur à télécharger le "plug-in".
		if (langue == 'en') {
			alternateContent = '<p style="font-size: 10px;">This content requires the installation of <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Get Flash Player</a></li></ul>';
		}
		else {
			alternateContent = '<p style="font-size: 10px;">Pour afficher le contenu, vous devez installer <strong>Adobe Flash Player '  + requiredMajorVersion + '</strong></p>'
			+ '<ul class="listeCommunication"><li class="internet"><a href="http://www.adobe.com/go/getflash/" target="_blank">Flash Player</a></li></ul>';
		}
			
		document.write(alternateContent);  // Insérer le code HTML
	}
	
}

function getBaseServer(url)
	{
		if(!url) return null;
		var position = url.indexOf('://') + 3;
		if(position < 0) return null;
		var position2 = url.indexOf('/',position);
		if(position2 < 0) return url;
		if(position2 == position) return null;
		return url.substring(0,position2);		
	}
	
	function getBasePath(serveur, url)
	{
		if(!url || !serveur) return null;
		var position = url.indexOf(serveur) + serveur.length;
		url = url.substring(position);
		position = url.lastIndexOf('/');
		if(position < 0) return '/';
		return url.substring(0,position) + '/';
	}
	
	function fixWebclippingIE7()
	{
		var webClip = typeof setOraWcCookie;
		if(!webClip || webClip != 'function') return;
		var linkServer = getBaseServer(document.location.href);
		var linkPath = getBasePath(linkServer,document.location.href);
		var allBase = document.getElementsByTagName('base');
		if(!allBase) return;
		for(var x = 0; x < allBase.length; x++)
		{
			var parent = allBase[x].parentNode;
			if(parent && parent.nodeName)
			{
				if(parent.nodeName.toUpperCase() == 'HEAD')
				{
					linkServer = getBaseServer(allBase[x].href);
					linkPath = getBasePath(linkServer,allBase[x].href);
				}
				else
				{
					var baseServer = getBaseServer(allBase[x].href);
					var basePath = getBasePath(baseServer,allBase[x].href);
					var nextDiv = allBase[x].nextSibling;
					while(nextDiv && nextDiv.tagName != 'DIV') nextDiv = nextDiv.nextSibling;
					if(nextDiv == null || nextDiv.tagName != 'DIV') continue;			
					var tagsNames = new Array('img','input','script','object');
					for(var y = 0; y < tagsNames.length; y++)
					{
						var tags = nextDiv.getElementsByTagName(tagsNames[y]);
						for(var z = 0; z < tags.length; z++)
						{
							if(!tags[z].src) continue;
							var newLine = /\s/g;
							var src = /.*<.*src[ ]*=[ ]*"(.*)".*>/i;
							var lien = tags[z].outerHTML.replace(newLine,' ').replace(src,'$1');
							if(lien.indexOf('/') == 0)
							{
								tags[z].src = baseServer + lien;	
							}
							else if(lien.indexOf('://') == -1)
							{
								tags[z].src = baseServer + basePath + lien;	
							}
						}
					}
				}
			}
		}
	}
	

function getQTVR(DivID, UrlMov, widthMov, heightMov){
	
/* Auteur : Jean-Philippe Grondin
   Date : 15 août 2007
	 Objectif : insérer un vidéo de type Quick Time VR dans la page.
*/

	var d = document.getElementById(DivID);
  	
	d.innerHTML = '<embed src="' + UrlMov + '" width="' + widthMov + '" height="' + heightMov + '" autohref="false" controller="true"></embed>';

}


function openQTVR(DivID, UrlMov, UrlImg, widthImg, heightImg){
	
/* Auteur : Jean-Philippe Grondin
   Date : 15 août 2007
	 Objectif : afficher un vidéo Quick Time VR en ouvrant le logiciel QT installé dans l'ordinateur local.
	 Paramètres : DivId = le id d'un div mis avant l'appel de la fonction dans la page HTML.
	              UrlMov = Url du fichier QT.
								UrlImg = Url de l'image cliquable qui fera ouvrir le logiciel QT.
								widthImg et heightImg = Largeur et hauteur de l'image.
*/

	var d = document.getElementById(DivID);
	
	if ((UrlImg == "" && widthImg == "" && heightImg == "") ||
		  (!UrlImg && !widthImg && !heightImg))	{
		
		UrlImg = '/pls/portal/docs/page/librairie_fr/images/spacer_gris.gif';
		widthImg = '1';
		heightImg = '1';
		
		d.innerHTML = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="' + widthImg + '" height="' + heightImg + '" standby="Data is loading..." codebase ="http://www.apple.com/qtactivex/qtplugin.cab">' +
									'<param name="src" value="' + UrlImg + '" />' + 
									'<param name="autohref" value="true" />' + // Ouvrir le lecteur QT.
									'<param name="controller" value="false" />' + 
									'<param name="href" value="' + UrlMov + '" />' + 
									'<param name="target" value="quicktimeplayer" />' + 
									'<embed src="' + UrlImg + '" type="image/x-quicktime" width="' + widthImg + '" height="' + heightImg + '" autohref="true" controller="false" href="' + UrlMov + '" target="quicktimeplayer"></embed>' +
									'</object>';			
	}
	else {
		d.innerHTML = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="' + widthImg + '" height="' + heightImg + '" standby="Data is loading..." codebase ="http://www.apple.com/qtactivex/qtplugin.cab">' +
									'<param name="src" value="' + UrlImg + '" />' + 
									'<param name="autohref" value="false" />' + // Ne pas ouvrir par défaut le lecteur QT (attendre que la personne clique sur l'image.
									'<param name="controller" value="false" />' + 
									'<param name="href" value="' + UrlMov + '" />' + 
									'<param name="target" value="quicktimeplayer" />' + 
									'<embed src="' + UrlImg + '" type="image/x-quicktime" width="' + widthImg + '" height="' + heightImg + '" autohref="false" controller="false" href="' + UrlMov + '" target="quicktimeplayer"></embed>' +
									'</object>';
	}
									
}

// -------------------------------------
// DÉBUT - Faire apparaître et disparaître les popup de fenêtre layer

function findObject(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObject(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function showHideInfoDiv() { //v6.0
  var i,p,v,obj,args=showHideInfoDiv.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=findObject(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

// FIN - Faire apparaître et disparaître les capsules
// -------------------------------------
// -------------------------------------
// DÉBUT - Générer un questionnaire
function createQuestion(set,url,col,w,h){	
/*	set: javascript ou flash
	url: lien flash
	col: 2 ou 3 colonnes
	w: largeur flash
	h: hauteur flash
*/
	if(set=="java"){
		
			var paramUrl=url;
		//Appelant en provenance de javascript
			
			var so = new SWFObject("/pls/portal/docs/page/librairie_fr/flash/Questionnaire_"+col+"col.swf", 	//URL
								   "questionnaire", // Object name
								   w, // Width
								   h, // Height
								   "9", // Flash player version (9)
								   "#FFFFFF"); // Backgroundcolor (not use)
							so.write("flashcontent"); // flashcontent is the div id
						document.getElementById("flashcontent").innerHTML+="<div id='src' style='display:none'>"+paramUrl+"</div>"

		
		}else{
			
			var paramUrl=document.getElementById("src").innerHTML;
			document.getElementById("src").innerHTML="";
			// Call in album_loader object, inFoXML function with bInfo parameter
			if(navigator.appName.indexOf("Microsoft") != -1)
			{
			
                questionnaire.inFoXML(paramUrl);	
			}
			else
			{
				window.document.questionnaire.inFoXML(paramUrl);
			};
			
		//Appelant en provenance de flash
		
		};
	
	
	
	
};

// FIN - Générer un questionnaire
// -------------------------------------





// -------------------------------------
// DÉBUT - Générer un album photo
function createAlbum(set,url,numAlbum){
	

	if(set=="java"){
			var paramUrl=url;
		//Appelant en provenance de javascript
			
			var so = new SWFObject("/pls/portal/docs/page/librairie_fr/flash/album_loader.swf", 	//URL
								   "album_loader", // Object name
								   "545", // Width
								   "775", // Height
								   "9", // Flash player version (9)
								   "#FFFFFF"); // Backgroundcolor (not use)
							so.write("flashcontent"); // flashcontent is the div id
						document.getElementById("flashcontent").innerHTML+="<div id='src' style='display:none'>"+paramUrl+"</div><div id='num' style='display:none'>"+numAlbum+"</div>"

		
		}else{
			var paramUrl=document.getElementById("src").innerHTML;
			var numAlbum = document.getElementById("num").innerHTML;
			document.getElementById("src").innerHTML="";
			// Call in album_loader object, inFoXML function with bInfo parameter
			if(navigator.appName.indexOf("Microsoft") != -1)
			{
				
                album_loader.inFoXML(paramUrl,numAlbum);	
			}
			else
			{
				window.document.album_loader.inFoXML(paramUrl,numAlbum);
			};
			
		//Appelant en provenance de flash
		
		};
	
	
	
	
};

// FIN - Générer un album photo
// -------------------------------------


// -------------------------------------
// DÉBUT - Valider les champs obligatoire des formulaire d'envoi de commentaire du BAM

function valideCommentBam(langue){
	 
	var tblMessage = new Array(new Array(), new Array());

	tblMessage[0][0] = "Veuillez choisir une ville ou un arrondissement.";
	tblMessage[1][0] = "Please choose a city or a borough.";
	tblMessage[0][1] = "Veuillez entrer votre courriel.";
	tblMessage[1][1] = "Please enter your e-mail address.";
	tblMessage[0][2] = "Veuillez entrer un courriel valide.";
	tblMessage[1][2] = "Please enter a valid e-mail adress.";	
	tblMessage[0][3] = "Veuillez entrer votre message.";
	tblMessage[1][3] = "Please enter your message.";
	tblMessage[0][4] = "Veuillez entrer vos nom et prénom.";
	tblMessage[1][4] = "Please enter your last and first name.";	
	tblMessage[0][5] = "Veuillez entrer votre code postal.";
	tblMessage[1][5] = "Please enter your postal code.";
	tblMessage[0][6] = "Veuillez entrer votre téléphone.";
	tblMessage[1][6] = "Veuillez entrer your phone number.";
		  
	with (document.form_courriel) {

		if (recipient.value == "#" ) { // vérifie qu'on a un destinataire valide (donc un courriel): validation qui se fait dans un formulaire du portail central
			alert(tblMessage[langue][0]); 
			recipient.focus();
			return false;
		}

		if (courriel.value == "") { // vérifie qu'on a entré un courriel
			alert(tblMessage[langue][1]); 
			courriel.focus();
			return false;
		}
		else {
			if (courriel.value != ""){			  
				 var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$/
				 if (reg.exec(courriel.value)==null) { // vérifie si le champ courriel est valide 
					alert(tblMessage[langue][2]);
					courriel.focus();
					return false;
				 }
			}
		}

		if (message.value == "" ) {
			alert(tblMessage[langue][3]); 
			message.focus();
			return false;
		}
		
		if (nom.value == "" ) {
			alert(tblMessage[langue][4]); 
			nom.focus();
			return false;
		}

		if (code_postal.value == "") {
			alert(tblMessage[langue][5]); 
			code_postal.focus();
			return false;
		}		
		
		if (telephone.value == "") {
			alert(tblMessage[langue][6]); 
			telephone.focus();
			return false;
		}	

	}
}

// FIN - Valider les champs obligatoire des formulaire d'envoi de commentaire du BAM
// -------------------------------------

function url_redirection(set_url) {
	window.location = set_url;

}

// DEBUT - Pour le bloc d'archives de l'application des nouvelles
// -------------------------------------

function populateMonthArchives() { 
	annee = document.archives.an.value;
	for (i = 0; i < 12; i++) {
		document.archives.mo.options[0] = null;
	}
	if (annee == courrentYear) {
		for (i = 0; i < courrentYearMonth.length; i++) {
			document.archives.mo.options[i] = new Option([courrentYearMonth[i]], i + 1, false, false);
		}
	} else {
		for (i = 0; i < yearMonth.length; i++) {
			document.archives.mo.options[i] = new Option([yearMonth[i]], i + 1, false, false);
		}
	}
}

// FIN - Pour le bloc d'archives de l'application des nouvelles
// -------------------------------------