
/*                                      AJAX-GENÉRICO 
====================================================================================================

					Copyright (c) 2006 Alejandro G. Secades - Mediasur Networks S.L.
					
					   AJAX-GENÉRICO.vb,v 1.1 2006/07/03 07:59:38 - [by Sekades]

====================================================================================================

	Las siguientes funciones representan la forma más simple de utilizar la metodología de 
	programación de ajax. 
	
	Estas funciones simplemente cargan archivos externos, o sea, que son las encargadas de 
	introducir los datos en el código html de la página que se desee. De estas manera, el 
	controlador de los datos y dibujo de estos se realizará en un archivo externo, pudiendo 
	ser archivos en PHP, JavaScript, vbScript, etc.
	
	AJAX-GENÉRICO es una forma simple cargar los datos e insertarlos en la página deseada, 
	el procesamiento de los datos se ha de hacer desde un archivo externo.
	
	Por ejemplo:
	
		Se tiene un archivo externo llamado: tabla2.php.
		
		El código que contiene es:
			
			<?php
				echo "<br><table bgcolor='#F7GYU6' cellspacing='3'><tr><td> Se ha dibujado la tabla </td></tr></table>";
			?>

		Se quieren pintar estos datos en un div con id: variable_resultado. Para ello la llamada 
		sería la siguiente:
		
			ajax('tabla.php','variable_resultado');
		
		Se podrá especificar tambiénel tipo de paso de parametros que se quiere utilizar. Simplemente se
		ha de especificar como un tercer parametro. Si se pasa un 1, el metodo será GET, si es 2, el metodo
		será por POST. 
		
			Por lo que:
				ajax('tabla.php','variable_resultado','1'); //cargará el archivo anterior con un paso de parametros por GET.
		
		*La llamada se ha de realizar en un evento (onClick, onSubmit, onMouseOver, ...).
		
		La respuesta a este comportamiento sería el dibujo de la tabla que se ha establecido en 
		el archivo tabla2 en el div en el que se halla introducido la llamada de la función.
		
====================================================================================================
*/



/* --------- Declaración del objeto --------- 

	Función encargada de la declaración del objeto para los distintidos exploradores de internet.
	
*/

function objeto() {
         try {
                 _objeto = new ActiveXObject("Msxml2.XMLHTTP");
        } catch ( e) {
                 try {
                         _objeto = new ActiveXObject ("Microsoft.XMLHTTP");
                 } catch (E) {
                          _objeto= false;
                }
        }
        if (! _objeto && typeof XMLHttpRequest!= 'undefined') {
                 _objeto = new XMLHttpRequest();
        }
        return _objeto;
}

/* --------- Carga y devolución de los datos --------- 
	
	Esta función es la encargada de llamar el archivo que se va a cargar en el archivo principal y de
	introducir los datos en él. Para ello necesita un archivo externo, que será el procesador de los
	datos y un div en el que introducir esos datos.
	
		Direccion: es la localización en la que se encuentra el archivo que se va a cargar.
		
		Div: es la etiqueta div en la que se va a cargar el resultado.

		Paso_parametros: es la opción de envío de datos entre el formulario principal
		y el archivo que se va a ejecutar.
		
		El parametro de "paso_parametros" recibe los valores 1 y 2, de los cuales, si la ocpión
		es 1, se pasará por GET, si es 2, se pasará por POST.
		
		*paso_parametros es un parametro opcional
*/

function ajax(direccion, div ,paso_parametros)
{
	
    try {
        _ajax=objeto() //Declaracion del objeto Ajax
		_target=document.getElementById(div) //Carga de los div en los que se van a pintar los datos
		if (paso_parametros==1 || paso_parametros==null)
		{
        	_ajax.open("GET",direccion,true); //Apertura del archivo con para por parametros GET
		}
		else if(paso_parametros==2)
		{
			_ajax.open("POST",direccion,true); //Apertura del archivo con para por parametros POST
		}
		else
		{
			alert("Error en Ajax-Generico: El parametro opcional 'paso_parametros' ha de tener un valor entre 1 y 2")
			return
		}
        _ajax.onreadystatechange=function() {
			if(_ajax.readyState==1) 
            {
				//_target.innerHTML = "Se estan procesando los datos..."; //Sentencia de devoluación de los datos cargados del archivo externo
            }
			if(_ajax.readyState==2) 
            {
				//_target.innerHTML = "Se esta realizando el envío de los datos..."; //Sentencia de devoluación de los datos cargados del archivo externo
            }
			if(_ajax.readyState==3)
            {
				//_target.innerHTML = "Recibiendo datos..."; //Sentencia de devoluación de los datos cargados del archivo externo
            }
			if(_ajax.readyState==4) //Comprobación de que _ajax ya está cargado
            {
				_target.innerHTML = _ajax.responseText; //Sentencia de devolución de los datos cargados del archivo externo
            }
        }
        _ajax.send(null);
    }
    catch (e) { //Captura de errores
        alert((e.message)?e.message:e.description);
    }
    return
}
/*
====================================================================================================

					      |   Copyright (c) 2006 Alejandro G. Secades   |
						  |                                             |
					      |   -- Powered By MEDIASUR NETWORKS S.L. --   |

====================================================================================================
*/
