/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* 
Este script nos permite cargar una página externa dentro de un div de otra, sin tener que recargar ésta última.
Por cuestiones de seguridad, la página a cargar debe estar dentro del mismo dominio, si no no se mostraría, aunque,
los css y js que use podrían estar en cualquier parte.

Para utilizar el script se pone en la página donde se encuentre el div:

	<script language="javascript" src="cargapaginas.js"></script>

Para un enlace normal a una página del mismo dominio llamada test.htm y que queremos cargar en un div llamado 
contentarea

	<a href="javascript:ajaxpage('test.htm', 'contentarea');">test</a>
	<div id="contentarea"></div>
	
Si queremos una página externa, esta debe ser abierta mediante un click

	<script type="text/javascript">
	ajaxpage('test.htm', 'rightcolumn') //load "test.htm" into "rightcolumn" DIV
	</script>
	
Si quisiéramos usar una lista donde se pudieran seleccionar las páginas a cargar tendríamos:
	<script type="text/javascript">
	function ajaxcombo(selectobjID, loadarea){
		var selectobj=document.getElementById? document.getElementById(selectobjID) : ""
		if (selectobj!="" && selectobj.options[selectobj.selectedIndex].value!="")
			ajaxpage(selectobj.options[selectobj.selectedIndex].value, loadarea)
	}
	</script>
	<form>
		<select id="ajaxmenu" size="1">
			<option value="page1.htm">Page 1</option>
			<option value="page2.htm">Page 2</option>
			<option value="subdirectory/page3.htm">Page 3</option>
		</select>
		<input type="button" onClick="ajaxcombo('ajaxmenu', 'contentarea')" value="Go" />
	</form>

	<div id="contentarea"></div>

O de forma más fácil, seleccionando directamente de la lista

	<form>
		<select id="ajaxmenu" size="1" onChange="ajaxcombo('ajaxmenu', 'contentarea')">
			<option value="">Select A file to load</option>
			<option value="page1.htm">Page 1</option>
			<option value="page2.htm">Page 2</option>
			<option value="subdirectory/page3.htm">Page 3</option>
		</select>
	</form>
	
La síntaxis de loadobjs() es
	
	loadobjs('external.css') //load one CSS file
	loadobjs('external.css', 'external2.css', 'feature.js') //load 2 CSS files & 1 JS file
	loadobjs('feature.js', 'feature2.js', 'feature3.js') //load 3 JS files
*/

var loadedobjects=""
// Esto no es necesario si se le pasa la ruta de la imagen
var rootdomain="http://"+window.location.hostname

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
page_request.open('GET', url, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}


