function getRequestedFile(filename){
	var Path = (filename.pathname.indexOf("/") == 0) ? filename.pathname.substring(1,filename.pathname.indexOf(".")) : filename.pathname.substring(0,filename.pathname.indexOf("."));
	var Param = (filename.search.indexOf("?") == 0) ? filename.search : (filename.length > 0) ? "?"+filename.search : "";
	
	return Path+Param;
}

function getXHR(){
	var xhr = false;
	try{ xhr = new ActiveXObject('Microsoft.XMLHTTP');}
	catch(a){
		try{ xhr = new ActiveXObject('Msxml2.XMLHTTP');}
		catch(e){
			try{ xhr = new XMLHttpRequest();}
			catch(i){
				xhr = false;
			}
		}
	}
	return xhr;
}

function getFile(e){
	var item = this;
	var requestedFile = (typeof(e) == "string") ? e : getRequestedFile(item);
	
	if(!requestedFile) document.location.href = "index.php";
	document.getElementById("global").className = "off";
	document.getElementById("loading").style.visibility = "visible";
	
	var xhrFile = false;
	var hsetter = false;
	var data = null;
	
	xhrFile = new getXHR();
	
	if(!xhrFile){
		if(requestedFile.charAt(0) == "&") document.location.search += requestedFile;
		else if(requestedFile.indexOf("?") == 0) document.location.search = requestedFile;
		else{
			redirection = (requestedFile.indexOf("?") > 0) ? requestedFile.replace(new RegExp("[?]","g"),".php?") : requestedFile+".php";
			document.location.href = redirection;
		}
	}
	
	xhrFile.onreadystatechange = function(){
		if(xhrFile.readyState == 4 && xhrFile.status == 200){
			document.getElementById("main").innerHTML = xhrFile.responseText;
			if(document.getElementById("map_canvas")) initialize();
			//alert(hsetter+" - "+requestedFile);
			document.location.hash = hsetter;
			hash_actuel = hsetter;
		}
	};
	
	h = document.location.hash;
	
	switch(requestedFile.charAt(0)){
		case "?":
			file_to_include = (h.indexOf("?") > -1) ? h.substring(1,h.indexOf("?")) : h.substring(1);
			qsa = requestedFile.substring(1);
			
			break;
		
		case "&":
			file_to_include = h.substring(1,h.indexOf("?"));
			qsa = (h.indexOf("?") > -1) ? h.substring(h.indexOf("?")+1)+requestedFile : requestedFile.substring(1);
			
			break;
		
		default:
			file_to_include = (requestedFile.indexOf("?") > -1) ? requestedFile.substring(0,requestedFile.indexOf("?")) : requestedFile;
			qsa = (requestedFile.indexOf("?") > -1) ? requestedFile.substring(requestedFile.indexOf("?")+1) : false;
	}
	
	data = (qsa) ? "requestedFile="+file_to_include+"&"+qsa : "requestedFile="+requestedFile;
	hsetter = (qsa) ? file_to_include+"?"+qsa : file_to_include;
	
	
	xhrFile.open('POST','ajax.php',true);
	xhrFile.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xhrFile.send(data);
	
	return false;
}

window.onload = function(){
	if((x = getXHR()) !== false){
		tab_link = document.getElementsByTagName("a");
		for(var i=0; i<tab_link.length; i++){
			if(tab_link[i].pathname.indexOf("://") == -1 && tab_link[i].pathname != "/") tab_link[i].onclick = getFile;
		}
		
		if(document.location.href.indexOf("#") > -1){
			getFile(document.location.href.substr(document.location.href.indexOf("#")+1));
			return false;
		}
	}
};