function createREQ(){
    try {
        req = new XMLHttpRequest(); /* p.e. Firefox */
    } 
    catch (err1) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
        } 
        catch (err2) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
            } 
            catch (err3) {
                req = false;
            }
        }
    }
    return req;
}

function requestGET(url, query, req){
    myRand = parseInt(Math.random() * 99999999);
    req.open("GET", url + '?' + query + '&rand=' + myRand, true);
    req.send(null);
}

function requestPOST(url, query, req){
    req.open("POST", url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(query);
}

//  script, var, capa, get o post, funcionJS, 1 ó 0, ruta img, mensaje
function doAjax(url, query, retorna, metodo, funcion, formato, cargando, mensaje, alto_capa){
    // crea la instancia del objeto XMLHTTPRequest 
    var req = createREQ();
    
    req.onreadystatechange = function(){
        if (req.readyState == 4) {
            if (req.status == 200) {
                if (formato == 1) {
                    modo = req.responseXML;
                }
                else {
                    modo = req.responseText;
                }
                if (funcion) {
                    eval(funcion + '(modo)');
                }
                else {
                    document.getElementById(retorna).innerHTML = modo;
                }
            }
        }
        else {
            //    document.getElementById(retorna).innerHTML = '<div style="text-align:center; margin-top:'+ alto_capa/3 +'px"><img src="images/'+cargando+'.gif" /><br /><br />'+mensaje+'</div>';
            document.getElementById(retorna).innerHTML = '<div style="text-align:center; "><img src="images/' + cargando + '.gif" /><br /><br />' + mensaje + '</div>';
        }
    }
    if (metodo == 'post') {
        requestPOST(url, query, req);
    }
    else {
        requestGET(url, query, req);
    }
}

//--- Función para recorrer formularios y tomar los valores ---//

function recorrer_form(nameform){
    var elemento = document.forms[nameform].elements;
    var retorno = "";
    //bucle for para recorrer todos los elementos del formulario
    for (i = 0; i < elemento.length; i++) {
        if (elemento[i].type == "radio") {
            if (elemento[i].checked == true) {
                retorno += elemento[i].name + '=' + encodeURIComponent(elemento[i].value) + "&";
            }
        }
        else 
            if (elemento[i].type == "checkbox") {
                if (elemento[i].checked == true) {
                    retorno += elemento[i].name + '=' + encodeURIComponent(elemento[i].value) + "&";
                }
            }
            else 
                if (elemento[i].value) {
                    retorno += elemento[i].name + '=' + encodeURIComponent(elemento[i].value) + "&";
                }
    }
    retorno = retorno.substring(0, retorno.lastIndexOf('&'));
    return retorno;
    //alert (retorno);
}

