/**********************************************
* Browser definition                          *
**********************************************/
var browserOK = false;
if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && navigator.userAgent.toLowerCase().indexOf('opera') == -1) {
	var isIE = true;
	var menutimer;
	//get IE version
	if (navigator.userAgent.toLowerCase().indexOf("msie 5.5") != -1) {
		var isIE55 = true;
		browserOK = true;
	} else if (navigator.userAgent.toLowerCase().indexOf("msie 6") != -1)  {
		var isIE6 = true;
		browserOK = true;
	} else if (navigator.userAgent.toLowerCase().indexOf("msie 7") != -1)  {
		var isIE7 = true;
		browserOK = true;
	}
	var timerdiv;
	var timerli;
	var elementdiv;
	var elementli;
} else if (navigator.userAgent.toLowerCase().indexOf('opera') != -1) {
	//not compatible for now (tried with opera 8 & 9)
	var isOp = true;
} else if (navigator.userAgent.toLowerCase().indexOf('firefox') != -1 || 
		  (navigator.userAgent.toLowerCase().indexOf('mozilla') != -1 && (navigator.userAgent.toLowerCase().indexOf('rv:1.7') != -1 || navigator.userAgent.toLowerCase().indexOf('rv:1.8') != -1))) {
	browserOK = true;
	var isMoz = true;
}

// function getE()
if (typeof 'getE' != 'function') {
	function getE(id) {
		if (el = document.getElementById(id)) {
			return el;
		} else {
			return false;
		}
	}
}

/* Add events on object*/
if (typeof 'addEvent' != 'function') {
	function addEvent(obj, evType, fn)
	{
		if (obj.addEventListener) {
			obj.addEventListener(evType, fn, true);
			return true;
		} else if (obj.attachEvent) {
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		} else {
			return false;
		}
		return true;
	}
}
/*add some events on menu for IE compatibility only*/
function startMenu() {
	if (isIE && !isIE7) {
		var liMenu = document.getElementById("menuTopBlock").getElementsByTagName('li');
		for (var i=0; i<liMenu.length; i++) {
			li = liMenu[i];
		  	if (li.nodeName=="LI" && li.className == "CMS_lvl1 number0") {
		  		li.onmouseenter=function() {
		  			this.className = "CMS_lvl1 number0 over";
		    	}
		  		li.onmouseleave=function() {
		  			this.className = "CMS_lvl1 number0";
				}
			}
		}
	}
}
/* add some flash */
function startFlash() {
	if(document.getElementById("flash")){
		var so = new SWFObject("/swf/accueil.swf", "accueil", "850", "188", "9");
		so.addParam("wmode", "transparent");
		so.write("flash");
	}
}

/* //////////////////////////////////////////
FUNCTION getElementsByClassName
Examples of how to call the function:

- To get all a elements in the document with a "info-links" class:
getElementsByClassName(document, "a", "info-links");

- To get all div elements within the element named "container", with a "col" and a "left" class:
getElementsByClassName(document.getElementById("container"), "div", ["col", "left"]);
 ////////////////////////////////////////// */

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

/* Array support for the push method in IE 5 */
if(typeof Array.prototype.push != "function"){
	Array.prototype.push = ArrayPush;
	function ArrayPush(value){
		this[this.length] = value;
	}
}

/* Function to hide all magic rows */
function hideMagicRows(showFirstRow){
	var showFirstRow = showFirstRow;
	var clientspace = getE('clientspace');
	if(clientspace){
		var rows = getElementsByClassName(clientspace, "div", "magicRow");
		if(rows[0]){
			for(var i=0; i<rows.length; i++){
				var div = rows[i].getElementsByTagName('div')[0];
				var h3 = rows[i].getElementsByTagName('h3')[0];
				div.style.display = 'none';
				h3.className = '';
				h3.style.cursor = 'pointer';
				if(showFirstRow == true && i == 0){
					div.style.display = 'block';
					h3.className = 'hightlight';
				}
			}
		}
	}
}
function switchMagicRow(id){
	var id = id;
	var e = getE(id);
	if(e){
		var div = e.getElementsByTagName('div')[0];
		var h3 = e.getElementsByTagName('h3')[0];
		if(div.style.display == 'none'){
			hideMagicRows();
			div.style.display = 'block';
			h3.className = 'hightlight';
		} else {
			div.style.display = 'none';
			h3.className = '';
		}
	}
}


/** 
  * Add window.onload event
  * launch some functions according to the current page
  */
addEvent(window, 'load', function(){
	startMenu();
	startFlash();
	if(typeof sIFR == "function"){
		// This is the preferred "named argument" syntax
		sIFR.replaceElement(named({sSelector:"h1", sFlashSrc:"/swf/centuryGothic.swf", sColor:"#FFFFFF", sBgColor:"Null", nPaddingTop:8, nPaddingBottom:8, sFlashVars:"textalign=left", sWmode:"transparent"}));
	}
	
	// Code for magic rows
	var inAdmin = document.location.href.indexOf('/automne/admin');
	if(inAdmin == '-1'){
		hideMagicRows(true);
	}
	
	return true;
});