/** AjaxConn - Simple XMLHTTP Interface - eliasbg@gmail.com - 17/Feb/2006
 ** Código Liberado por: Elías Barrientos García
 ** página: eliasbg.dynalias.com/AJAX/paginacion                    
 ** weblog: eliasbg.blogspot.com
**/

<script language=”javascript”>

var peticion = false;
var  testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject(”Msxml2.XMLHTTP”);
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject(”Microsoft.XMLHTTP”);
} catch (failed) {
peticion = false;
}
}
}
if (!peticion){
alert(”ERROR AL INICIALIZAR!”);
}
function cargarCombo (url, comboAnterior, element_id) {

//Obtenemos el contenido del div
//donde se cargaran los resultados
var element =  document.getElementById(element_id);
//Obtenemos el valor seleccionado del combo anterior
var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value
//construimos la url definitiva
//pasando como parametro el valor seleccionado
var fragment_url = url+’Id=’+x;
element.innerHTML = ‘<img src=”images/loading.gif” mce_src=”load.gif” />’;
//abrimos la url
peticion.open(”GET”, fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
//escribimos la respuesta
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}</script> 

function AJAXConn(sDestino, sCargando)
{
    var xmlhttp, bCompleto = false;

    try { 
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch (excepcion) { 
        try { 
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        }
        catch (excepcion) { 
            try { 
                xmlhttp = new XMLHttpRequest(); 
            }
            catch (excepcion) { 
                xmlhttp = false; 
            }
        }
    }
    if (!xmlhttp) return null;

    this.connect = function(sURL, sMetodo, sVars)    {
        if (!xmlhttp) return false;
        bCompleto = false;
        sMetodo = sMetodo.toUpperCase();

        try {
              if (sMetodo == "GET") {
                xmlhttp.open(sMetodo, sURL+"?"+sVars, true);
                sVars = "";
              }
              else {
                xmlhttp.open(sMetodo, sURL, true);
                xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
                xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
              }
              
              xmlhttp.onreadystatechange = function(){
                //    Estado del Objeto:    //
                ST_UNINITIALIZED     = 0;
                ST_LOADING            = 1;
                ST_LOADED            = 2;
                ST_INTERACTIVE        = 3;
                ST_COMPLETE            = 4;

                if (xmlhttp.readyState == ST_LOADING) {
                    document.getElementById(sDestino).innerHTML = sCargando;
                }

                if (xmlhttp.readyState == ST_COMPLETE && !bCompleto) {
                    bCompleto = true;
                    document.getElementById(sDestino).innerHTML = xmlhttp.responseText; 
                }
            };
            xmlhttp.send(sVars);
        }   
        catch(excepcion) { 
            return false; 
        }
        return true;
    };
  return this;
}
function cambio(id)
{	var index=document.getElementById(id).selectedIndex;
	var url;
	var detino;
       /*de acuerdo al combo que cambie carga el dato del siguiente combo
combo "departamento" carga "provincias" y "provincias" carga "distritos" */
	url="fa3c?idestado=" + (index+1); /*a la variable se le suma 1 ya que el indice del combo empieza en 0*/
			destino='idestado';
		
	cargarDatos(url, "action", destino);//esta es una funcion que llama al ajax
}
function cargarDatos(pagina, dir, target)	
{	var page = false;
	var target;
	var url;
	url="./" + dir + "/" + pagina;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        page = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            page = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versi&oacute;n antigua
            try
            {
                page = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
    else
	{	return false;}
	
    page.onreadystatechange = function ()
    {
        // funci&oacute;n de respuesta
		if (page.readyState != 4) {
			document.getElementById (target).innerHTML= '<div id="loader"><img src="./img/ajax-loaderC.gif" > Cargando datos...</div>';
		}else{
			//window.setTimeout("cargarpagina(page);",2000); //pretendemos demorar la respuesta unos segundos
			cargarpagina(page, target);
		} 		
    }
	
    page.open ('GET', url, true); // asignamos los m&eacute;todos open y send
    page.send (null);	

}

function cargarpagina(page, target)
{
    if (page.readyState == 4 && (page.status == 200 || window.location.href.indexOf ("http") == - 1))
		document.getElementById (target).innerHTML = page.responseText;
}