// Fonctions JavaScript


//document.onselectstart = new Function("return true");



// Affiche l'état "ON" d'une ou plusieurs image(s)
// arg: Nom de l'image à mettre à l'état "ON" (Roll)
// Programmeur: Francois Morin
function imgOn()
{
	if (document.images)
	{
		args = imgOn.arguments;
		for(i=0; i<args.length; i++)  { document[args[i]].src = eval(args[i] + "_ON.src"); }
	}
}


// Affiche l'état "OFF" d'une ou plusieurs image(s)
// arg: Nom de l'image à mettre à l'état "OFF" (Normal)
// Programmeur: Francois Morin
function imgOff()
{
	if (document.images)
	{
		args = imgOff.arguments;
		for(i=0; i<args.length; i++)  { document[args[i]].src = eval(args[i] + "_OFF.src"); }
	}
}

// Affiche l'état "ON" d'une image, et son état "DESC" correspondant
// imgName: Nom de l'image à mettre à l'état "ON" (Roll)
// imgDescName: Nom de l'image qui contiendra l'état "DESC" de imgName (Description)
// Programmeur: Francois Morin
function imgDescOn(imgName, imgDescName)
{
	if (document.images)
	{
		document[imgName].src = eval(imgName + "_ON.src");
		document[imgDescName].src = eval(imgName + "_DESC.src");
	}
}


// Affiche l'état "OFF" d'une image, et de son image de description correspondante
// imgName: Nom de l'image à mettre à l'état "OFF" (Normal)
// imgDescName: Nom de l'image contenant l'état "DESC" de imgName (Description)
// Programmeur: Francois Morin
function imgDescOff(imgName, imgDescName)
{
	if (document.images)
	{
		document[imgName].src = eval(imgName + "_OFF.src");
		document[imgDescName].src = eval(imgDescName + "_OFF.src");
	}
}


// Affiche une image aléatoire dans le document courant
// Les images doivent être nommées comme ceci: "image_n.ext" où n = numéro de l'image et n >= 1
// imgAdr: Adresse relative du fichier de base de l'image (sans le "_n") (Ex.: "images/image.ext")
// nbrImg: Nombre d'images disponibles sur le serveur pour la sélection aléatoire
// Programmeur: Francois Morin
function displayRandomImage(imgAdr, imgW, imgH, nbrImg)
{
	pointIndex = imgAdr.lastIndexOf(".");
	adr = imgAdr.substring(0,pointIndex) + '_' + (randomNumber(nbrImg)+1) + imgAdr.substring(pointIndex,imgAdr.length);
	document.write('<img src="' + adr + '" width="' + imgW + '" height="' + imgH + '">');
}


// Retourne un nombre entier aléatoire compris entre 0 et la limite.
function randomNumber(limit)
{
	return Math.floor(Math.random() * limit);
}


/*******************************************/
/***** Pour le menu en DHTML (accueil) *****/
/*******************************************/
// Inspiré de :
// http://simplythebest.net/scripts/DHTML_scripts/dhtml_script_41.html

window.onerror = null;
var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var NS4 = (bName == "Netscape" && bVer >= 4);
var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
var NS3 = (bName == "Netscape" && bVer < 4);
var IE3 = (bName == "Microsoft Internet Explorer" && bVer < 4);

if (NS4 || IE4) 
{
	if (navigator.appName == "Netscape") 
	{
		layerStyleRef="layer.";
		layerRef="document.layers";
		styleSwitch="";
	}
	else
	{
		layerStyleRef="layer.style.";
		layerRef="document.all";
		styleSwitch=".style";
	}
}

// VRAI "SHOW MENU" (Celui à utiliser dans le mouseOver des menus)
function showMenu(layerName1,layerName2)
{
	// On cache le(s) menu(s) qui sont peut-être ouverts [ON DOIT GÉRER TOUS LES MENUS (DIV) EXISTANTS ICI]
	if (layerName1 != 'menu_etudes' && layerName2 != 'menu_etudes')
	{
		hideLayer('menu_etudes');
		imgOff('Etudes'); // On enlève le rollover parce que c'est un menu principal (pas sous menu)
	}
	if (layerName1 != 'sous_menu_etudes_1' && layerName2 != 'sous_menu_etudes_1')
	{
		hideLayer('sous_menu_etudes_1'); 
		hideLayer('filet_smenu_adm');
	}
	if (layerName1 != 'sous_menu_etudes_2' && layerName2 != 'sous_menu_etudes_2')
	{
		hideLayer('sous_menu_etudes_2');
		hideLayer('filet_smenu_services');
	}
	if (layerName1 != 'sous_menu_etudes_3' && layerName2 != 'sous_menu_etudes_3')
	{
		hideLayer('sous_menu_etudes_3');
		hideLayer('filet_smenu_prg');
	}
	if (layerName1 != 'sous_menu_etudes_4' && layerName2 != 'sous_menu_etudes_4')
	{
		hideLayer('sous_menu_etudes_4');
		hideLayer('filet_smenu_crs');
	}
	if (layerName1 != 'menu_teluq' && layerName2 != 'menu_teluq')
	{
		hideLayer('menu_teluq');
		imgOff('Teluq'); // On enlève le rollover parce que c'est un menu principal (pas sous menu)
	}
	if (layerName1 != 'sous_menu_teluq_1' && layerName2 != 'sous_menu_teluq_1')
	{
		hideLayer('sous_menu_teluq_1'); 
		hideLayer('filet_smenu_organisation');
	}
	if (layerName1 != 'sous_menu_teluq_2' && layerName2 != 'sous_menu_teluq_2')
	{
		hideLayer('sous_menu_teluq_2');
		hideLayer('filet_smenu_etudiants');
	}
	if (layerName1 != 'menu_recherche' && layerName2 != 'menu_recherche')
	{
		hideLayer('menu_recherche');
		imgOff('Recherche'); // On enlève le rollover parce que c'est un menu principal (pas sous menu)
	}
	
	// Affichage
	if (layerName1 != null && layerName1 != "")
	{
		showLayer(layerName1); // On montre le menu désiré (il devrait toujours y en avoir un)
		
		if (layerName1 == "sous_menu_etudes_1")
			showLayer('filet_smenu_adm');
		
		if (layerName1 == "sous_menu_etudes_2")
			showLayer('filet_smenu_services');
			
		if (layerName1 == "sous_menu_etudes_3")
			showLayer('filet_smenu_prg');
		
		if (layerName1 == "sous_menu_etudes_4")
			showLayer('filet_smenu_crs');
			
		if (layerName1 == "sous_menu_teluq_1")
			showLayer('filet_smenu_organisation');
			
		if (layerName1 == "sous_menu_teluq_2")
			showLayer('filet_smenu_etudiants');
	}
	if (layerName2 != null && layerName2 != "")
	{
		showLayer(layerName2); // On montre le sous menu désiré (s'il y en a un)
		
		if (layerName2 == "sous_menu_etudes_1")
			showLayer('filet_smenu_adm');
		
		if (layerName2 == "sous_menu_etudes_2")
			showLayer('filet_smenu_services');
			
		if (layerName2 == "sous_menu_etudes_3")
			showLayer('filet_smenu_prg');
		
		if (layerName2 == "sous_menu_etudes_4")
			showLayer('filet_smenu_crs');
			
		if (layerName2 == "sous_menu_teluq_1")
			showLayer('filet_smenu_organisation');
			
		if (layerName2 == "sous_menu_teluq_2")
			showLayer('filet_smenu_etudiants');
	}
}
  
// SHOW MENU et SHOW BULLE ROUGE
function showLayer(layerName)
{
	if (NS4)
	{
		document.getElementById(layerName).style.visibility="visible";
	}
	else if (IE4) 
	{
		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
	} 
}

// HIDE MENU et HIDE BULLE ROUGE
function hideLayer(layerName)
{
	if (NS4)
	{
		document.getElementById(layerName).style.visibility="hidden";
	}
	else if (IE4)
	{
		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
	}
}

// Change la couleur du texte du menu supérieur en plus d'afficher ou cacher la bulle rouge vis-à-vis
function menuSupActif(layerName, bulleName, ON)
{
	if (ON == true)
	{
		if (NS4)
		{
			document.getElementById(layerName).className="lien_accueil_menu_superieur";
		}
		else if (IE4)
		{
			eval(layerRef+'["'+layerName+'"].className="lien_accueil_menu_superieur"');
		}
		showLayer(bulleName);
	}
	else
	{
		if (NS4)
		{
			document.getElementById(layerName).className="lien_accueil_menu";
		}
		else if (IE4)
		{
			eval(layerRef+'["'+layerName+'"].className="lien_accueil_menu"');
		}
		hideLayer(bulleName);
	}
}

function ChangeClass(element, newClass)
{
	 if (document.getElementById) 
	 { 
	 	if (document.getElementById(element))
			document.getElementById(element).className = newClass;
	 }
}

function openWindow(url, parametres, nom_fenetre)
{
	if ( typeof( parametres ) == "undefined" )
		parametres = "scrollbars=no,menubar=no,width=500,height=300";

	if ( typeof( nom_fenetre ) == "undefined" )
		nom_fenetre = "popup";
		
	
	// Pour ouvrir la calculatrice
	if (parametres == "calculatrice")
	{
		nom_fenetre = "calculatrice";
		
		if (navigator.userAgent.indexOf("MSIE") != -1) // Trop grand
			parametres = "resizable=yes,scrollbars=no,menubar=yes,width=620,height=465";
		else
			parametres = "resizable=yes,scrollbars=no,menubar=yes,width=620,height=475";
	}
	
	new_window = window.open(url, nom_fenetre, parametres);
	new_window.focus();
}


// Obtient la valeur d'un paramètre dans l'URL (ex: index.html?nom_param=valeur)
// arg: Nom du paramètre dans l'URL (méthode GET) dont l'on veut sa valeur
// Programmeur: Andy Harvey
function getUrlParam(NomParamVoulu)
{
	var valeur = "";
	var temp_param_array;
	
	if (window.location)
	{
		url = "" + window.location; // On doit concaténer "" pour que la variable soit de type string
		
		// On enlève le signe "#" à la fin s'il y en a un
		var chr_pos = url.indexOf("#");
		if (chr_pos > 0)
			url = url.substr(0,chr_pos);
		
		var params=url.split("?"); // On coupe l'url pour séparer les arguments (grâce au type string)
		if (params.length > 1) // S'il y a un ou des arguments
		{
			params = params[1]; // On garde uniquement les arguments
		
			// Passe les arguments un par un pour voir si celui demandé est présent
			var params_array = params.split("&");
			var part_num=0;
			var trouve = false;
			while (part_num < params_array.length && !trouve)
			{
				temp_param_array = params_array[part_num].split("=");
				
				if (temp_param_array[0] == NomParamVoulu) // Si le nom du paramètre est celui désiré
				{
					valeur = temp_param_array[1]; // On va chercher sa valeur
					
					trouve = true;
				}
				part_num+=1;
			}
		}
	}
	
	if ( typeof( valeur ) == "undefined" || valeur == '' )
	{
		valeur = "";
	}
	
	return valeur;
}
