var global= new function() {};

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 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 decision(message, url){
	if(confirm(message)) location.href = url;
	}
/*****
 * setCookie : Fonction servant à « setté » le cookie...
 */
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;
}

function deleteCookie(cookieName)
{
	var cookieDate= new Date();  // Date d'aujourd'hui.

	cookieDate.setTime(cookieDate.getTime() - 3600); // Date d'expiration : y'a une heure.
	document.cookie= cookieName+= "=; expires=" + cookieDate.toGMTString();
}
	
function Trim(string) 
{
	while (string.substring(0, 1) == " ")
		string = string.substring(1, string.length);
		
	while (string.substr(string.length - 1, 1) == " ") {
		string = string.substring(0, string.length - 1);
	}
	
	return string;
}

/*****
 * getFocus : Permet de donner le focus à un champ dans le HTML.
 *			  Souvent utilisé lors d'affichage de message box.
 */
function getFocus(p_objet)
{
	try {
		document.getElementById(p_objet).focus();
	}
	catch(ex) {
	    //alert(ex.message);
	}
}

/*****
 * selectText
 */
function selectText(p_objet)
{
	try {
		document.getElementById(p_objet).select();
	}
	catch(ex) {
	    //alert(ex.message);
	}
}
	
function popupCentre(page, largeur, hauteur, toolbar, resizable, scrollbars)
{
	var top= ((screen.height - hauteur) / 2) - 30;
	var left= (screen.width - largeur) / 2;
	
	window.open(page, "", "top = " + top + ", left = " + left + ", width = " + largeur + ", height = " + hauteur + ", resizable = " + resizable + ", menubar = " + toolbar + ", toolbar = " + toolbar + ", scrollbars = " + scrollbars + ", statusbar = " + toolbar);
}

function ValiderLogin(errUsager, errMotDePasse)
{
	if (!errUsager && !errMotDePasse) {
		errUsager= "Veuillez spécifier un nom d'usager.";
		errMotDePasse= "Veuillez spécifier un mot de passe.";
	}
		
	nomUsager= document.getElementById("nomUsager").value;
	motDePasse= document.getElementById("motDePasse").value;
	
	if (nomUsager == "") {
		alert(errUsager);
		getFocus("nomUsager");
		
		return false;
    }
	
	if (motDePasse == "") {
		alert(errMotDePasse);
		getFocus("motDePasse");
		
		return false;
    }
	
	return true;
}

function Impression()
{
	document.getElementById("footer").style.visibility= 'hidden';
	window.print();
	
	setTimeout("document.getElementById('footer').style.visibility= 'visible'", 3000);
}
	
function OuvrirCalendrier(url, width, height, champ, language)
{
	var dateChoisie= document.getElementById(champ).value;
	
	var ajout= "dateChoisie=" + dateChoisie + "&";
	ajout+= "champ=" + champ;
	
	if (url.indexOf("?", 0) >= 0)
		urlFinal= url + "&" + ajout;
	else
		urlFinal= url + "?" + ajout;
	
	if (window.showModalDialog) {
		var modal= window.showModalDialog(urlFinal, dateChoisie, "status: no; scroll: no; resizable: no; help: no; dialogWidth: " + width + "px; dialogHeight: " + height + "px;");
		
		if (modal != undefined) {
			document.getElementById(champ).value= modal;
			document.getElementById(champ + "_texte").value= FormatterDate(modal, language);
		}
	}
	else {
		var top= ((screen.height - height) / 2) - 30;
		var left= (screen.width - width) / 2;
		
		var modalFF= window.open(urlFinal, dateChoisie,
		                         'top=' + top + ', left=' + left + ', height=' + (height - 30) + ', width=' + width + ', toolbar=no, directories=no, status=no, ' +
		                         'menubar=no, scrollbars=no, resizable=no, modal=yes');
	}
}
 
global.ObtenirMois= function(moisEnChiffre, avecMajuscule, language) {
	var janvier=   (language == "a") ? "january"   : "janvier";
	var fevrier=   (language == "a") ? "february"  : "février";
	var mars=      (language == "a") ? "march"     : "mars";
	var avril=     (language == "a") ? "april"     : "avril";
	var mai=       (language == "a") ? "may"       : "mai";
	var juin=      (language == "a") ? "june"      : "juin";
	var juillet=   (language == "a") ? "july"      : "juillet";
	var aout=      (language == "a") ? "august"    : "août";
	var septembre= (language == "a") ? "september" : "septembre";
	var octobre=   (language == "a") ? "october"   : "octobre";
	var novembre=  (language == "a") ? "november"  : "novembre";
	var decembre=  (language == "a") ? "december"  : "décembre";
	
	var retour= "";
	switch (moisEnChiffre) {
		case "01": retour= janvier;   break;
		case "02": retour= fevrier;   break;
		case "03": retour= mars;      break;
		case "04": retour= avril;     break;
		case "05": retour= mai;       break;
		case "06": retour= juin;      break;
		case "07": retour= juillet;   break;
		case "08": retour= aout;      break;
		case "09": retour= septembre; break;
		case "10": retour= octobre;   break;
		case "11": retour= novembre;  break;
		case "12": retour= decembre;  break;
	}
	
	if (avecMajuscule) {
		retour= retour.substr(0, 1).toUpperCase() + retour.substring(1, retour.length);
	}
		
	return retour;
};
	
global.FormatterDate= function(date, language) {
	var retour= "";
	
	if (date != "") {
		var annee= date.substr(0, 4);
		var mois=  date.substr(5, 2);
		var jour=  date.substr(8, 2);
			
		if (annee != "0000" && mois != "00" && jour != "00") {
			if (language == "a") {
				retour= global.ObtenirMois(mois, true, language) + " " + jour + ", " + annee;
			}
			else {
				retour= jour + " " + global.ObtenirMois(mois, false, language) + ", " + annee;
		    }
		}
	}
		
	return retour;
};
	
function AffecterChoixDate(valeur, champ)
{
	if (window.showModalDialog) {
		window.returnValue= valeur;
		window.close();
	}
	else {
		parent.opener.document.getElementById(champ).value= valeur;
		
		// FLS est toujours en français
		parent.opener.document.getElementById(champ + "_texte").value= FormatterDate(valeur, "f");
		
		parent.close();
	}
}
	
function AffecterCalendrierAnnees(annee, champ)
{
	var mois= document.getElementById("mois").value;
	var iframe= document.getElementById("iframeCalendrier");	
	
	if (window.showModalDialog) {
		var dateChoisie= window.dialogArguments;
	}
	else {
		var dateChoisie= parent.opener.document.getElementById(champ).value;
	}
	
	var ajout= (dateChoisie != "" && dateChoisie != "undefined") ? "&dateChoisie=" + dateChoisie : "";	
	iframe.src= "iframeCalendrier.php?mois=" + mois + "&annee=" + annee + ajout + "&champ=" + champ;
}
	
function AffecterCalendrierMois(mois, champ)
{
	var annee= document.getElementById("annees").value;
	var iframe= document.getElementById("iframeCalendrier");
	
	if (window.showModalDialog) {
		var dateChoisie= window.dialogArguments;
	}
	else {
		var dateChoisie= parent.opener.document.getElementById(champ).value;
	}
		
	var ajout= (dateChoisie != "" && dateChoisie != "undefined") ? "&dateChoisie=" + dateChoisie : "";	
	iframe.src= "iframeCalendrier.php?mois=" + mois + "&annee=" + annee + ajout + "&champ=" + champ;
}
	
function cellOnCalendrier(cellule, couleur)
{
	cellule.style.border= "1 solid " + couleur;
}
	
function cellOffCalendrier(cellule, couleur)
{
	cellule.style.border= "1 solid " + couleur;
}
	
function cellBackgroundCalendrierFull(cellule, couleur)
{
	cellule.style.background= couleur;
}

function printWindow(fermerFenetre)
{
	bV= parseInt(navigator.appVersion);
	
	if (bV >= 4) {
		window.print();
	}
	
	if (fermerFenetre) {
		window.close();
	}
}
	
function ValiderCourriel()
{
	return document.getElementById("courriel").value;
}
	
function TraiterSuppressionPhoto(id, lien)
{
	if (confirm('Êtes-vous certain de vouloir supprimer l\'image ?')) {
		document.getElementById(id).href= lien;
	}
	else {
		document.getElementById(id).href= "#";
	}
}
	
function ActiverFlash()
{
	//Determine browser, we only need this for Internet Explorer
	if (navigator.appName == "Microsoft Internet Explorer") {
		//Array of elements to be replaced
		var arrElements= new Array(3);
		
		arrElements[0]= "object";
		arrElements[1]= "embed";
		arrElements[2]= "applet";
		
		//Loop over element types
		for (n= 0; n < arrElements.length; n++) {
			//set object for brevity
			replaceObj= document.getElementsByTagName(arrElements[n]);

			//loop over element objects returned
			for (i= 0; i < replaceObj.length; i++) {
				//set parent object for brevity
				parentObj= replaceObj[i].parentNode;

				//grab the html inside of the element before removing it from the DOM
				newHTML= parentObj.innerHTML;

				//remove element from the DOM
				parentObj.removeChild(replaceObj[i]);

				//stick the element right back in, but as a new object
				parentObj.innerHTML = newHTML;
			}
		}
	}
}	
	
function TrierListe(list, idGenerale)
{
	arrayOptions= new Array();
	
	for (var i= 0; i != list.options.length; i++) {
		arrayOptions[i]= new Array();
		
		arrayOptions[i][0]= list.options[i].text;
		arrayOptions[i][1]= list.options[i].value;
		arrayOptions[i][2]= idGenerale;
    }
		
	arrayOptions.sort();    
    ViderOptionsListe(list);    
	
	for (var i= 0; i != arrayOptions.length; i++) {
		AjouterOptionListe(list, arrayOptions[i][0], arrayOptions[i][1],arrayOptions[i][2] + i);
	}
}

function AjouterOptionListe(liste, texte, valeur, idOption)
{
	var option= document.createElement("OPTION");
	
	option.text=  texte;
	option.value= valeur;
	option.label= texte;
	option.id=    idOption;
	
	liste.options.add(option);
}

function ViderOptionsListe(liste)
{
	for (var i= liste.options.length - 1; i >= 0; i--) {
		liste.remove(i);
	}
}
	
function RetirerOptionsListe(liste, valeur)
{	
	for (var i= liste.options.length - 1; i >= 0; i--)
	{
		if (liste.options[i].valeur == valeur) {
			liste.remove(i);
		}
	}
}

/**
 * addEvent
 */
function addEvent(obj, evType, fn)
{ 
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    }
    else if (obj.attachEvent) {
        var r= obj.attachEvent("on"+evType, fn);
        return r;
    }
    else {
        return false;
    }
}

function getElementByTabIndex(tabIndex)
{
    var noForm= 0;
    if (arguments[1] != "undefined" && arguments[1] != null) {
        if (!isNaN(arguments[1])) {
            noForm= arguments[1];
        }
    }
    
    var form= document.forms[noForm];
    
    for (var i= 0; i < form.elements.length; i++) {
        var element= form.elements[i];
        
        if (element.tabIndex && element.tabIndex == tabIndex) {
            return element;
        }
    }

    return null;
}

function RGBtoHex(rouge, vert, bleu) {
	var valeurHex= function(nombre) {
		var data= "0123456789ABCDEF";
		
		if (nombre == null) {
		    return "00";
		}
		
		nombre= parseInt(nombre); 
		
		if (nombre == 0 || isNaN(nombre)) {
		    return "00";
		}
		
		nombre= Math.round(Math.min(Math.max(0,nombre), 255));
		return data.charAt((nombre - nombre % 16) / 16) + data.charAt(nombre % 16);
	};
	
	return valeurHex(rouge) + valeurHex(vert) + valeurHex(bleu);
}

function DisableSelection(cible)
{
    if (typeof cible.onselectstart != "undefined") {
	    cible.onselectstart= function() {return false;};
    }
    else if (typeof cible.style.MozUserSelect != "undefined") {
	    cible.style.MozUserSelect= "none";
	}
    else {
	    cible.onmousedown= function() {return false;};
	}
	
	$(cible).css("cursor", "default");
}

function EnableSelection(cible)
{
    if (typeof cible.onselectstart != "undefined") {
	    cible.onselectstart= null;
    }
    else if (typeof cible.style.MozUserSelect != "undefined") {
	    cible.style.MozUserSelect= null;
	}
    else {
	    cible.onmousedown= null;
	}
}

function GetDivErreur(message, idDiv)
{
    var avecBR= true;
    if (arguments[2] != "undefined" && arguments[2] != null) {
        avecBR= arguments[2];
    }
    
    var nouvelleDiv= document.createElement("div");
        
    var table= document.createElement("table");
    table.border=        0;
    table.width=         "600";
    table.cellpadding=   "0";
    table.cellspacing=   "0";
    table.bgColor=       "#FFFECE";
    table.style.cssText= "border: 1px solid #C11A22";
    
    var tbody= document.createElement("tbody");
    
    var tr= document.createElement("tr");
    
    var td=           document.createElement("td");
    td.align=         "center";
    td.width=         "125";
    td.style.cssText= "font-family: Trebuchet MS; font-size: 12pt; color: #DC000A; font-weight: Bold;";
    
    var img=           document.createElement("img");
    img.style.cssText= "margin-top: 10px;";
    img.border=        "0";
    img.src=           "images/attention.jpg";
    
    td.appendChild(img);
    td.appendChild(document.createElement("br"));
    
    var textNode= document.createTextNode("Attention !");
    td.appendChild(textNode);
    tr.appendChild(td);
    
    var td2= document.createElement("td");
    
    td2.className=     "centre";
    td2.style.cssText= "font-family: Trebuchet MS; font-size: 9pt;";
    
    var divTable= document.createElement("div");
    divTable.style.cssText= "color: #DC000A; font-weight: Bold; text-align: Center;";
    
    var textNode2= document.createTextNode(message);
    divTable.appendChild(textNode2);
    
    td2.appendChild(divTable);
    tr.appendChild(td2);
    tbody.appendChild(tr);
    table.appendChild(tbody);
    
    nouvelleDiv.id= idDiv;
    nouvelleDiv.width= "600";
    nouvelleDiv.appendChild(table);
    
    if (avecBR) {
        nouvelleDiv.appendChild(document.createElement("br"));
    }
    
    return nouvelleDiv;
}

function GetDivSucces(message, idDiv)
{
    var avecBR= true;
    if (arguments[2] != "undefined" && arguments[2] != null) {
        avecBR= arguments[2];
    }
    var width= 600;
    if (arguments[3] != "undefined" && arguments[3] != null) {
        width= arguments[3];
    }
    
    var nouvelleDiv= document.createElement("div");
        
    var table= document.createElement("table");
    table.border=        0;
    table.width=         width;
    table.cellpadding=   "0";
    table.cellspacing=   "0";
    table.bgColor=       "#FFFECE";
    table.style.cssText= "border: 1px solid #050AF3";
    
    var tbody= document.createElement("tbody");
    var tr= document.createElement("tr");
    
    var td=           document.createElement("td");
    td.align=         "center";
    td.vAlign=        "middle";
    td.width=         "100%";
    td.style.cssText= "font-family: Trebuchet MS; font-size: 12pt; color: #050AF3; font-weight: Bold;";
    
    var table2= document.createElement("table");
    table2.height=      "60";
    table2.cellpadding= "0";
    table2.cellspacing= "0";
    table.border=       "0";
    
    var tbody2= document.createElement("tbody");
    var tr2=    document.createElement("tr");
    
    var td2=    document.createElement("td");
    td2.width=  "40";
    td2.align=  "right";
    td2.vAlign= "middle";
    
    var img=           document.createElement("img");
    img.style.cssText= "margin-right: 10px;";
    img.border=        "0";
    img.src=           "images/succes.jpg";
    
    td2.appendChild(img);
    tr2.appendChild(td2);
    
    td2=        document.createElement("td");
    td2.align=  "left";
    td2.vAlign= "middle";
    
    var span=           document.createElement("span");
    span.style.cssText= "color: #050AF3; font-weight: Bold; font-family: Trebuchet MS; font-size: 9pt;";
    span.appendChild(document.createTextNode(message));
    
    td2.appendChild(span);
    tr2.appendChild(td2);
    tbody2.appendChild(tr2);
    table2.appendChild(tbody2);
    td.appendChild(table2);
    tr.appendChild(td);    
    tbody.appendChild(tr);
    table.appendChild(tbody);
    
    nouvelleDiv.id=    idDiv;
    nouvelleDiv.width= width;
    nouvelleDiv.appendChild(table);
    
    if (avecBR) {
        nouvelleDiv.appendChild(document.createElement("br"));
    }
    
    return nouvelleDiv;
}

global.AppliquerReglesAuDOM= function() {
    $(".swap").mouseover(function(e) {
		var id= this.id;
		
		var aSwapper= $("#" + id);
		
		if (aSwapper) {
		    var remplacement= $(aSwapper).attr("src").replace(/f1/g, "f2");
		    
		    if (remplacement != $(aSwapper).attr("src")) {
			    MM_swapImage(id, "", remplacement, 1);
			}
        }    
    }).mouseout(function(e) {
        MM_swapImgRestore();
    });
    
    $("a").mouseover(function() {
        self.status= "";
        return true;
    });
    
    $("a").mouseout(function() {
        self.status= "";
        return true;
    });
    
    $(".imgDeleteCalendrier").click(function(e) {
    	var a= this.id.split("-");
		
		if (a.length != 2) {
		    return;
		}
		
		var input= document.getElementById(a[1]);
		if (!input) {
		    return;
		}
		
		input.value= "";
		
		var input_texte= document.getElementById(input.id + "_texte");
		if (!input_texte) {
		    return;
		}
		
		input_texte.value= "";
    });
    
    $("span.lienFermerThickbox").click(function(e) {
        try {
            tb_remove();
        }
        catch (ex) {
            try {
                parent.tb_remove();
            }
            catch (ex) {
            }
        }
    });
    
    $("img#imgThickBox").click(function() {
        try {
            tb_remove();
        }
        catch (ex) {
            try {
                parent.tb_remove();
            }
            catch (ex) {
            }
        }
    });
    
    $("img.imgMenu").mouseover(function() {
        try {
            var nomMenu= $(this).attr("name");
            MM_showMenu(eval("mm_menu_" + nomMenu), 0, 39, null, nomMenu);
        }
        catch (ex) {
        }        
    }).mouseout(function() {
        MM_startTimeout();
    });

    try {
        // On donne le focus au premier champ filtre qu'on trouve!
        if (typeof $("input.focus")[0] != "undefined") {
            $("input.focus")[0].focus();
        }
    }
    catch (ex) {
    }
};

$(document).ready(function() {
    global.AppliquerReglesAuDOM();
});