<!--
// JavaScript Document (Sab 05/Jul/2008 02:04:33)
/*
#######################################################
###													###
###		FUNCIONES DE CARGAS PARA AJAX				###
###		----------------------------------			###
###													###
###		Desarrolladas por Wallace Solution			###
###		www.ws.com.ve								###
###		Valerio Piselli / Rodrigo Velásquez			###
###													###
###		______________________________________		###
###		En caso de necesitar información sobre		###
###		derechos, sugerencias, preguntas o 			###
###		comentearios. Escribir a: info@ws.com.ve	###
###													###
###		V2.0 Ahora con soporte para carga de JS		###
###		dentro de un archivo cargado usando AJAX	###
###													###
###													###
#######################################################
*/ 



/********************************************************/
/* OBTIENE EL ELEMENTO DONDE SE CARGARA EL CONTENIDO	*/
/********************************************************/
/* 
V0.1
*/
function $(id)
{
		return document.getElementById(id);
}



/********************************************************/
/* CONEXIONES CON EL NVAEGADOR							*/
/********************************************************/
/* 
V1.0
*/
function http()
{
	if(window.XMLHttpRequest)
	{
		return new XMLHttpRequest();	
	}
	else
	{
		try
		{
			return new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch(e)
		{
			alert('Error al crear el ActiveXObject');
        	return false;
		}	
	}
}


/********************************************************/
/* FUNCION PROTOTYPE QUE PROCESA LOS JS					*/
/********************************************************/
/* 
V1.0
NOTA:	Esta función obtiene el contenido a mostrar incluidos los JS o funciones JS y los agregar al archivo de funciones JS del navegador
		para que puedan estar disponibles aun si la pagina fue cargada completamente.
*/
String.prototype.tratarResponseText	=	function()
{
	var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
	var pat2=/\b\s+src=[^>\s]+\b/g;
	var elementos = this.match(pat) || [];
	
	for(i=0;i<elementos.length;i++)
	{
		var nuevoScript		=	document.createElement('script');
		nuevoScript.type	=	'text/javascript';
		var tienesrc		=	elementos[i].match(pat2) || [];
		
		if(tienesrc.length)
		{
			nuevoScript.src		=	tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
		}
		else
		{
			var elemento		=	elementos[i].replace(pat,'$1','');
			nuevoScript.text	=	elemento;
		}
		document.getElementsByTagName('body')[0].appendChild(nuevoScript);
	}
	return this.replace(pat,'');
}


/********************************************************/
/* FUNCION QUE OBTIENE LOS SCRIPTS Y EL CONTENIDO		*/
/********************************************************/
/* 
V1.0
*/
function SetContainerHTML(id_contenedor,responseText)
{
	var mydiv		=	$(id_contenedor);
	mydiv.innerHTML =	responseText.tratarResponseText();
}


/********************************************************/
/* CARGA DE CONTENIDO COMPLEJO							*/
/********************************************************/
/* 
V2.0
RECIBE COMO PARÁMETROS
	$codigo_usr		: La clave o contrasena que el usuario usara en AEI

VARIABLES GLOBALES
		contenedor	: Id del contenedor que recibira los resultados
		url			: direccion del archivos que genarlos resultado (.php)
		metodo		: GET, POST 
		variables	: Parametros a pasar al archhivo
		cargando	: Mensaje que se mostrara mientras carga el ajax

RETURN
					: Regresa los resultados contenidos en los archivos dinámicos (PHP, XML, JSP, ASP, TXT, etc.)
		
FUENTE
					: "http://www.marciobarrios.com/ejemplo-ajax"

NOTA:
*/
function cargar_contenido(contenedor,url,metodo,variables,cargando)
{
	var miAjax	=	new http();
	miAjax.open(metodo,url+'?'+variables,true);
	miAjax.onreadystatechange	=	function()
	{
		if(miAjax.readyState==4)
		{
			SetContainerHTML(contenedor,miAjax.responseText);
			miAjax.onreadystatechange	=	null;
		}
		else
		{
			$(contenedor).innerHTML		=	cargando;
		}
	}
	
	miAjax.send(null);
}
function carga_contenido(contenedor,url,metodo,variables,cargando)
{
	var miAjax	=	new http();
	miAjax.open(metodo,url+'?'+variables,true);
	miAjax.onreadystatechange	=	function()
	{
		if(miAjax.readyState==4)
		{
			SetContainerHTML(contenedor,miAjax.responseText);
			miAjax.onreadystatechange	=	null;
		}
		else
		{
			$(contenedor).innerHTML		=	cargando;
		}
	}
	
	miAjax.send(null);
}




/********************************************************/
/* CARGA DE CONTENIDO CONCATENADO						*/
/********************************************************/
/* 
V1.0


NOTA: NO HA SIDO ACTUALIZADA ESTA FUNCION
*/

function concatenar_contenido(target,url,metodo,parametros,cargando)
{
	//alert(parametros);
	//alert("funcion carga contenido !!!!!!!!! ");
	//alert(cargando);
	var contenido_actual, etiqueta_div;

	contenido_actual	=	document.getElementById(target).innerHTML;
	
    document.getElementById(target).innerHTML = contenido_actual + cargando;
    var myConn = new XHConn();
        if (!myConn) alert("XMLHTTP no esta disponible. Inténtalo con un navegador más actual.");
        var peticion = function (oXML)
		{
			document.getElementById(target).innerHTML = contenido_actual +  oXML.responseText;
		};
        myConn.connect(url, metodo, parametros, peticion);
}
