/*	Originally written by Kenny
	http://blog.webinventif.fr/index.php?2007/04/17/39-navigation-ajax-sans-rechargement-html
*/
/*************************************************
	Fonction de definition de l'object xhr
**************************************************/
function new_xhr(){
	var xhr_object = null;
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
	   try {
                xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { // XMLHttpRequest non supporte par le navigateur
	   alert("Your browser does not support XMLHTTPRequest objects (necessary for AJAX browsing)...");
	   xhr_object = false;
	}
	return xhr_object;
}
/*****************************************************
	Fonction qui va recharger le contenu
******************************************************/
function load_page(select) {
	var xhr2 = new_xhr();//On cree un nouvel objet XMLHttpRequest
	xhr2.onreadystatechange = function()
	{
		if ( xhr2.readyState == 4 ){//Actions executees une fois le chargement fini
			if(xhr2.status  != 200){//Message si il se produit une erreur
				document.getElementById("loading").innerHTML = "";
				document.getElementById("content").innerHTML = "Error code " + xhr2.status;
			} else {//On met le contenu du fichier externe dans la div "content"
				document.getElementById("content").innerHTML = xhr2.responseText;
				codeContact01("contact-01");
				codeContact02("contact-02");
				addToggleImages("toggle");
				// Collapse some divs
				toggleDiv("toggle_travels");
				toggleDiv("toggle_research");
				toggleDiv("toggle_multimedia");
				toggleDiv("toggle_virtualworlds");
				toggleDiv("toggle_downloads");
				toggleDiv("toggle_virtual-landscape");
				toggleDiv("toggle_qualscape");
				toggleDiv("toggle_calc2dokuwiki-install");
				toggleDiv("toggle_phd_fr_resume");
				javascript:scrollTo(0,0);
				setTimeout('document.getElementById("loading").innerHTML = ""', 1000);
			}
		} else {//Icone affichee pendant le chargement
			document.getElementById("loading").innerHTML = "<img src='loading.gif' alt=''/>";
		}
	}
	var pageTitle = select.split('?page=')[1]
	xhr2.open("GET", pageTitle+".php", true);//Appel du fichier externe
	xhr2.send(null);
	document.title = 'Luc Sorel, ' + pageTitle;
}

/*	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com/index.php?p=256
	Revised version May 11th 2007*/
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}	
	}
	return returnElements;
}

/*	Codage d'adresse électronique : http://www.aspirine.org/emailcode.php */
	/*codage courrier electronique 01*/
function codeContact01(myElementName)
{
	var d1="";
	for(var w2=0;w2<368;w2++)
		d1+=String.fromCharCode((";&7D(saFF_+47L;&7D?1aT_?1`VYY_?1OOM(sOaw97.3,R+742g-&7g4)*LLFMMLa\'E.8+X,bGGE5435;9+5;:bG:./9H.X8+,b\"L\"L`GE5435;9+5<+8bGX:./9H.8+,b\"L3\'/2:5X_2;)H958+2LS8+62\')+MTXT-QGqGS9;(9:8MVNNPx:8/4-S,853h.\'8h5*+M[YNPL-3\'/2H)53\"L`GE:/:2+bG|8/:+@E:5Eq;)Ex58+2GE8+2bG3@\'/2Gcq;)Ex@58+2aT\'cLS8+62\')+MT@T-Q!!GG#!!U#NNS8+62\')+MT\"HT-QGSGNNFR(-&7g4)*e9L?1MQLUMOT=W+MIL]NTO]YMOT=VTM_*;&1L(sM".charCodeAt(w2)-(99-63)+-24+87)%(95)+32);
	var result=eval(d1);
	var e=getElementsByClassName(myElementName);
	for(var i=0;i<e.length;i++){
		e[i].innerHTML=result;
	}
}

	/*codage courrier electronique 02*/
function codeContact02(myElementName)
{
	var v5="";
	for(var p6=0;p6<422;p6++)
		v5+=String.fromCharCode(("@+<I/`fK/=?97t89tI&K&Kf0/<2It+teP&&f0/<2/[YY?&&=32>&Ktf</@9<WP6/<9=/[B&&-?6c9>63+7P+2-W&Ki&KTR&K&KU1XtXQ/-+6://<WPA@96@0@@3,?PTRYQ>j<<>|TR\'Y%\'&K&K%U1X@XQ/-+6:8PTR_]Q/.9l<+2l79<0W183&&=32>&Kf>?9/=?9789I&KP&&>/!&Kfs/6>3>I&KP&&P&&f0/<2/[B03,?QI6/<9|I-?uI9>I/>3<|sI-?ug&K63+7&Kf6/<I&KRA96/<WPg+XeRsA9603,?QI6/<9R&K&KU1XsXQ/-+6:Kd-`fKKd09<Q@+<I-)fYd-)e/`W6/81>2d-)Tf[\\R-`Tf/`W=?,=><Q-)U[\\RW=:63>QKKRW</@/<=/QRW4938QKKRd/@+6Q-`R".charCodeAt(p6)-(77-36)+7*4+35)%(0x5f)+120-88);
	var result=eval(v5);
	var e=getElementsByClassName(myElementName);
	for(var i=0;i<e.length;i++){
		e[i].innerHTML=result;
	}
}

/*	Showing/hiding div code by Justin Barlow: http://www.netlobo.com/div_hiding.html
	Modified by Luc Sorel for the animations*/
function toggleDiv(whichLayer)
{
	var elem, vis, toggleImageAction;
	if( document.getElementById ) // this is the way the standards work
		elem = document.getElementById( whichLayer );
	else if( document.all ) // this is the way old msie versions work
		elem = document.all[whichLayer];
	else if( document.layers ) // this is the way nn4 works
		elem = document.layers[whichLayer];
	if (elem != null) {
		vis = elem.style;
		// if the style.display value is blank we try to figure it out here
		if ((vis.display=='') && (elem.offsetWidth!=undefined) && (elem.offsetHeight!=undefined))
			vis.display = (elem.offsetWidth!=0 && elem.offsetHeight!=0) ? 'block':'none';
		vis.display = (vis.display=='' || vis.display=='block') ? 'none':'block';
		// Animations (Luc)
		if (vis.display == 'none') {
			document.getElementById("image_"+whichLayer).setAttribute('src', 'files/div_collapsed.png');
			toggleImageAction = "document.getElementById('image_"+whichLayer+"').setAttribute('src', 'files/div_expand.png')";
			setTimeout(toggleImageAction, 500);
			document.getElementById("image_"+whichLayer).setAttribute('alt', '+');
		} else {
			document.getElementById("image_"+whichLayer).setAttribute('src', 'files/div_expanded.png');
			toggleImageAction = "document.getElementById('image_"+whichLayer+"').setAttribute('src', 'files/div_collapse.png')";
			setTimeout(toggleImageAction, 500);
			document.getElementById("image_"+whichLayer).setAttribute('alt', '-');
		}
	}
}

/*	Code by Luc Sorel*/
function addToggleImages(myElementName)
{
	var e=getElementsByClassName(myElementName);
	var myId;
	var imgNode;
	// For Internet Explorer (this works with FF but causes Konqueror to crash)
	if (navigator.appName == "Microsoft Internet Explorer") {
		var myContent;
		for(var i=0;i<e.length;i++){
			myContent=e[i].innerHTML;
			myId=e[i].id;
			e[i].innerHTML = myContent + " <img id='image_toggle_" + myId + "' src='files/div_collapse.png' width=14 height=14 align='bottom' alt='-' style='cursor:pointer;' onmousedown=toggleDiv('toggle_" + myId + "')>";
		}
	// For the other browsers (ok with FF, Konqueror)
	} else {
		for(var i=0;i<e.length;i++){
			myId=e[i].id;
			imgNode = document.createElement("img");
			imgNode.setAttribute("id", "image_toggle_" + myId);
			imgNode.setAttribute("src", "files/div_collapse.png");
			imgNode.setAttribute("width", "16");
			imgNode.setAttribute("height", "12");
			imgNode.setAttribute("align", "bottom");
			imgNode.setAttribute("alt", "-");
			imgNode.setAttribute("onmousedown", "toggleDiv('toggle_" + myId + "')");
			imgNode.setAttribute("style", "cursor:pointer;");
			e[i].appendChild(imgNode);
		}
	}
}