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_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_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];}
}

// http://v2studio.com/k/code/lib/
// Librarie developee by Caio Chassot
// Modifiee par Pierre Lemieux, plemieux@caractera.com

// ARRAY EXTENSIONS

if (!Array.prototype.push) Array.prototype.push = function() {
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}
Array.prototype.find = function(value, start) {
    start = start || 0;
    for (var i=start; i<this.length; i++)
        if (this[i]==value)
            return i;
    return -1;
}
Array.prototype.has = function(value) {
    return this.find(value)!==-1;
}

// FUNCTIONAL

function map(list, func) {
    var result = [];
    func = func || function(v) {return v};
    for (var i=0; i < list.length; i++) result.push(func(list[i], i, list));
    return result;
}
function filter(list, func) {
    var result = [];
    func = func || function(v) {return v};
    map(list, function(v) { if (func(v)) result.push(v) } );
    return result;
}

// DOM

function getElem(elem) {
    if (document.getElementById) {
        if (typeof elem == "string") {
            elem = document.getElementById(elem);
            if (elem===null) throw 'cannot get element: element does not exist';
        } else if (typeof elem != "object") {
            throw 'cannot get element: invalid datatype';
        }
    } else throw 'cannot get element: unsupported DOM';
    return elem;
}
function hasClass(elem, className) {
    return getElem(elem).className.split(' ').has(className);
}
function getElementsByClass(className, tagName, parentNode) {
    parentNode = !isUndefined(parentNode)? getElem(parentNode) : document;
    if (isUndefined(tagName)) tagName = '*';
    return filter(parentNode.getElementsByTagName(tagName),
        function(elem) { return hasClass(elem, className) });
}

// DOM EVENTS

function listen(event, elem, func) {
    elem = getElem(elem);
    if (elem.addEventListener){ // W3C DOM
        elem.addEventListener(event,func,false);
	}else if (elem.attachEvent){ // IE DOM
        elem.attachEvent('on'+event, function(){ func(new W3CDOM_Event(elem)) } );
        // for IE we use a wrapper function that passes in a simplified faux Event object.
    //else throw 'cannot add event listener';
	//else elem['on'+event] = function(){ func(new W3CDOM_Event(elem)) };
	}else{
		var oldfunc = elem['on'+event];
		if (typeof elem['on'+event] != 'function'){
			elem['on'+event] = function(){ func(new W3CDOM_Event(elem)) };
		}else{
			elem['on'+event] = function(){
				oldfunc();
				func(new W3CDOM_Event(elem));
			}
		}
	}
}
function mlisten(event, elem_list, func) {
    map(elem_list, function(elem) { listen(event, elem, func) } );
}
function W3CDOM_Event(currentTarget) {
    this.currentTarget = currentTarget;
	this.target = window.event.srcElement;
    this.preventDefault = function() { window.event.returnValue = false }
	return this;
}

// MISC CLEANING-AFTER-MICROSOFT STUFF

function isUndefined(v) {
    var undef;
    return v===undef;
}

// OUVRE/FERME LE SOUS-MENU (MENU GAUCHE)
function open_menu(e) {
	var m = e.currentTarget;
	var t = (e.target) ? e.target : e.srcElement;
	if (t) {
		if (t.nodeType == 3) t = t.parentNode;	// defeat Safari bug
		if (m != t) return;
	}
	m = m.firstChild;
	while (m.nodeName != 'UL') m = m.nextSibling;
	m.style.display = (m.style.display != 'block') ? 'block' : 'none';
	m.parentNode.className = (m.style.display == 'block') ? 'smenu select' : 'smenu';
}
function set_current() {
	var currnav = document.getElementById('currnav');
	if (currnav != null) {
		while (currnav.parentNode.className != 'smenu' && currnav.parentNode.className != 'menu') currnav = currnav.parentNode;
		if (currnav.parentNode.className == 'smenu') {
			currnav.style.display = "block";
			currnav.parentNode.className = "smenu select";
		}
	}
}

function popupWin(url, popup_w, popup_h) {
	// les valeurs attendus pour popup_w et popup_h
	// sont la largeur et la hauteur de la photo à présentée
	if (isUndefined(popup_w)) popup_w = 800;
	if (isUndefined(popup_h)) popup_h = 600;
	// s'assure que la taille ne dépasse pas le dénominateur commun
	if (popup_w > 800) popup_w = 800;
	if (popup_h > 600) popup_h = 600;
	features = 'location=0,status=0,toolbar=0,menubar=0,scrollbars=1,resizable=1,width='+popup_w+',height='+popup_h;
	var theWindow = window.open(url, 'win', features);
	theWindow.focus();
	return theWindow;
}

//demarrage des librairies sur onLoad

listen('load', window, function() {
	set_current();
	mlisten('click', getElementsByClass('smenu','li'), open_menu );
});

MM_preloadImages('/fr/img/entete/dec_over.gif','/fr/img/entete/continue_over.gif','/fr/img/entete/vie_over.gif','/fr/img/entete/college_over.gif','/fr/img/entete/international_over.gif','/fr/img/entete/etudiants_over.gif','/fr/img/entete/population_over.gif','/fr/img/entete/entreprises_over.gif','/fr/img/entete/employes_over.gif','/fr/img/entete/pisp_over.gif','/fr/img/corps/admission_over.gif');
