
/**
	responseHTML
	(c) 2007 xul.fr		
	Licence Mozilla 1.1
*/	


/**
	Searches for body, extracts and return the content
*/

function getBody(content)
{
	var x = content.indexOf("<body");
	if(x == -1) return "";
		
	x = content.indexOf(">", x);
	if(x == -1) return "";

	var y = content.lastIndexOf("</body>");
	if(y == -1) return "";

	var z = content.slice(x + 1, y);
	return z;
}


/**
	Loads a HTML page
	Put the content of the body tag into the current page.
	Arguments:
		url of the other HTML page to load
		id of the tag that has to hold the content
*/		

function loadHTML(url, fun, storage, param)
{
	var xhr = createXHR();
	xhr.onreadystatechange=function()
	{ 
		if(xhr.readyState == 4)
		{
			//if(xhr.status == 200)
			{
				storage.innerHTML = getBody(xhr.responseText);
				//fun(storage, param);
			}
		} 
	}; 

	xhr.open("GET", url , true);
	xhr.send(null); 

} 

	/**
		Callback
		Assign directly a tag
	*/		


	function processHTML(temp, target)
	{
		target.innerHTML = temp.innerHTML;
	}


	function showSidebar() {

	  if (document.all) document.all.sidebar.style.display = "";
	  else { 
	        //document.getElementById('sidebar').visibility="SHOW";         //Netscape 4
	        //document.getElementById('sidebar').style.visibility="SHOW";   //Netscape 4
		document.getElementById('sidebar').style.display = "";		//Netscape 6 et +
	  }
	}

	function hideSidebar() {

	  if (document.all) document.all.sidebar.style.display = "none"; 
	  else {
		//document.getElementById('sidebar').visibility="hide";
		//document.getElementById('sidebar').style.visibility="hidden";
		document.getElementById('sidebar').style.display = "none"; 
	  }  
	}


	function loadPage(url)
	{
		var y = document.getElementById("storage");
		var x = document.getElementById("page_div");
		loadHTML(url, processHTML, x, y);
		showSidebar();
	}

	function loadWholePage(url)
	{
		var y = document.getElementById("storage");
		var x = document.getElementById("page_div");
		loadHTML(url, processHTML, x, y);
		hideSidebar();
	}


	/**
		Create responseHTML
		for acces by DOM's methods
	*/	
	
	function processByDOM(responseHTML, target)
	{
		target.innerHTML = "Extracted by id:<br />";

		var message = responseHTML.getElementsByTagName("div").namedItem("two").innerHTML;
		target.innerHTML += message;

		target.innerHTML += "<br />Extracted by name:<br />";
		
		message = responseHTML.getElementsByTagName("form").namedItem("ajax");
		target.innerHTML += message.dyn.value;
	}
	
	function accessByDOM(url)
	{
		//var responseHTML = document.createElement("body");	// Bad for opera
		var responseHTML = document.getElementById("storage");
		var y = document.getElementById("main_div");
		loadHTML(url, processByDOM, responseHTML, y);
	}	

