    var sendReq = getXmlHttpRequestObject();
    //Gets the browser specific XmlHttpRequest Object
    function getXmlHttpRequestObject() {
        if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } else {            
            document.getElementById('status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
        }
    }
      
    //Send a message
    function filtra_tipo_by_categoria(url, clean) {
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/get_tipo/' + document.getElementById("categoria_id").value, clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_filtra_tipo_by_categoria; 
            var param = '';
            sendReq.send(param);
        }                            
    }


    function handle_filtra_tipo_by_categoria() {    
        if (sendReq.readyState == 4) {
            document.getElementById("tipo_id").innerHTML = sendReq.responseText;
        }
    }

    //Send a message
    function filtra_galeria_by_tipo(url, clean) {
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/get_galeria/' + document.getElementById("select_tipo_id").value, clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_filtra_galeria_by_tipo; 
            var param = '';
            sendReq.send(param);
        }                            
    }


    function handle_filtra_galeria_by_tipo() {
        if (sendReq.readyState == 4) {
            document.getElementById("galeria_id").innerHTML = sendReq.responseText;
        }
    }
    
    



    function orden_subir_categoria(url, clean, div_id1) {
        var div_id2 = (div_id1 - 1);
        var origen = document.getElementById("span_categoria_" + div_id1).innerHTML;
        var destino = document.getElementById("span_categoria_" + div_id2).innerHTML;
        orden_cambia_categoria(url, clean, origen, destino, div_id1, div_id2);
    }
    function orden_bajar_categoria(url, clean, div_id1) {
        var div_id2 = (div_id1 + 1);
        var origen = document.getElementById("span_categoria_" + div_id1).innerHTML;
        var destino = document.getElementById("span_categoria_" + div_id2).innerHTML;
        orden_cambia_categoria(url, clean, origen, destino, div_id1, div_id2);
    }
    function orden_cambia_categoria(url, clean, uno, dos, div_id1, div_id2) {
        // hace llamada y configuramos retorno en
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/ordena_categoria/' + uno + '/' + dos + '/' + div_id1 + '/' + div_id2, clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_orden_cambia_categoria;
            var param = '';
            sendReq.send(param);
        }
    }        
    // cambiamos posiciones de categorias en divs de la pagina
    function handle_orden_cambia_categoria() {
        if (sendReq.readyState == 4) {
            respuesta = sendReq.responseText;
            if(respuesta.indexOf(',' != -1)) {
                temp = respuesta.split(',');
                div_id1 = temp[0];
                div_id2 = temp[1];
            } else {
                return (true);
            }
            // cambio titulo
            var temp = document.getElementById("titulo_categoria_" + div_id1).innerHTML;
            document.getElementById("titulo_categoria_" + div_id1).innerHTML = document.getElementById("titulo_categoria_" + div_id2).innerHTML;
            document.getElementById("titulo_categoria_" + div_id2).innerHTML = temp;
        }
    }    




    
    function orden_subir_tipo(url, clean, div_id1) {
        var div_id2 = (div_id1 - 1);
        var origen = document.getElementById("span_tipo_" + div_id1).innerHTML;
        var destino = document.getElementById("span_tipo_" + div_id2).innerHTML;
        orden_cambia_tipo(url, clean, origen, destino, div_id1, div_id2);
    }
    function orden_bajar_tipo(url, clean, div_id1) {
        var div_id2 = (div_id1 + 1);
        var origen = document.getElementById("span_tipo_" + div_id1).innerHTML;
        var destino = document.getElementById("span_tipo_" + div_id2).innerHTML;
        orden_cambia_tipo(url, clean, origen, destino, div_id1, div_id2);
    }
    function orden_cambia_tipo(url, clean, uno, dos, div_id1, div_id2) {
        // hace llamada y configuramos retorno en
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/ordena_tipo/' + uno + '/' + dos + '/' + div_id1 + '/' + div_id2, clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_orden_cambia_tipo;
            var param = '';
            sendReq.send(param);
        }
    }        
    // cambiamos posiciones de tipos en divs de la pagina
    function handle_orden_cambia_tipo() {
        if (sendReq.readyState == 4) {
            respuesta = sendReq.responseText;
            if(respuesta.indexOf(',' != -1)) {
                temp = respuesta.split(',');
                div_id1 = temp[0];
                div_id2 = temp[1];
            } else {
                return (true);
            }
    // cambio titulo
            var temp = document.getElementById("titulo_tipo_" + div_id1).innerHTML;
            document.getElementById("titulo_tipo_" + div_id1).innerHTML = document.getElementById("titulo_tipo_" + div_id2).innerHTML;
            document.getElementById("titulo_tipo_" + div_id2).innerHTML = temp;
    // cambio galerias
            var temp = document.getElementById("galerias_" + div_id1).innerHTML;
            document.getElementById("galerias_" + div_id1).innerHTML = document.getElementById("galerias_" + div_id2).innerHTML;
            document.getElementById("galerias_" + div_id2).innerHTML = temp;
        }
    }    








    function orden_subir_galeria(url, clean, tipo, div_id1) {
        var div_id2 = (div_id1 - 1);
        var origen = document.getElementById("span_galeria_" + tipo + "_" + div_id1).innerHTML;
        var destino = document.getElementById("span_galeria_" + tipo + "_" + div_id2).innerHTML;
        orden_cambia_galeria(url, clean, origen, destino, tipo, div_id1, div_id2);
    }
    function orden_bajar_galeria(url, clean, tipo, div_id1) {
        var div_id2 = (div_id1 + 1);
        var origen = document.getElementById("span_galeria_" + tipo + "_" + div_id1).innerHTML;
        var destino = document.getElementById("span_galeria_" + tipo + "_" + div_id2).innerHTML;
        orden_cambia_galeria(url, clean, origen, destino, tipo, div_id1, div_id2);
    }
    function orden_cambia_galeria(url, clean, uno, dos, tipo, div_id1, div_id2) {
        // hace llamada y configuramos retorno en
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/ordena_galeria/' + uno + '/' + dos + '/' + tipo + '/' + div_id1 + '/' + div_id2, clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_orden_cambia_galeria;
            var param = '';
            sendReq.send(param);
        }
    }        
    // cambiamos posiciones de galerias en divs de la pagina
    function handle_orden_cambia_galeria() {
        if (sendReq.readyState == 4) {
            respuesta = sendReq.responseText;
            if(respuesta.indexOf(',' != -1)) {
                temp = respuesta.split(',');
                tipo    = temp[0];
                div_id1 = temp[1];
                div_id2 = temp[2];
            } else {
                return (true);
            }
    // cambio titulo
            var temp = document.getElementById("titulo_galeria_" + tipo + '_' + div_id1).innerHTML;
            document.getElementById("titulo_galeria_" + tipo + '_' + div_id1).innerHTML = document.getElementById("titulo_galeria_" + tipo + '_' + div_id2).innerHTML;
            document.getElementById("titulo_galeria_" + tipo + '_' + div_id2).innerHTML = temp;
    // cambio descripcion
            var temp = document.getElementById("descripcion_galeria_" + tipo + '_' + div_id1).innerHTML;
            document.getElementById("descripcion_galeria_" + tipo + '_' + div_id1).innerHTML = document.getElementById("descripcion_galeria_" + tipo + '_' + div_id2).innerHTML;
            document.getElementById("descripcion_galeria_" + tipo + '_' + div_id2).innerHTML = temp;
        }
    }
    


    
    
    
    function orden_subir_imagen(url, clean, galeria, div_id1) {
        var div_id2 = (div_id1 - 1);
        var origen = document.getElementById("span_imagen_" + galeria + "_" + div_id1).innerHTML;
        var destino = document.getElementById("span_imagen_" + galeria + "_" + div_id2).innerHTML;
        orden_cambia_imagen(url, clean, origen, destino, galeria, div_id1, div_id2);
    }
    function orden_bajar_imagen(url, clean, galeria, div_id1) {
        var div_id2 = (div_id1 + 1);
        var origen = document.getElementById("span_imagen_" + galeria + "_" + div_id1).innerHTML;
        var destino = document.getElementById("span_imagen_" + galeria + "_" + div_id2).innerHTML;
        orden_cambia_imagen(url, clean, origen, destino, galeria, div_id1, div_id2);
    }
    function orden_cambia_imagen(url, clean, uno, dos, galeria, div_id1, div_id2) {
        // hace llamada y configuramos retorno en
        if (sendReq.readyState == 4 || sendReq.readyState == 0) {
            sendReq.open("POST", get_clean_url(url, 'ajax/ordena_imagen/' + uno + '/' + dos + '/' + galeria + '/' + div_id1 + '/' + div_id2,clean) , true);
            sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sendReq.onreadystatechange = handle_orden_cambia_imagen;
            var param = '';
            sendReq.send(param);
        }
    }        
    // cambiamos posiciones de galerias en divs de la pagina
    function handle_orden_cambia_imagen() {
        if (sendReq.readyState == 4) {
            respuesta = sendReq.responseText;
            if(respuesta.indexOf(',' != -1)) {
                temp = respuesta.split(',');
                galeria = temp[0];
                div_id1 = temp[1];
                div_id2 = temp[2];
            } else {
                return (true);
            }
    // cambio ank de imagen
            var temp = document.getElementById("a_imagen_" + galeria + "_" + div_id1).href;
            document.getElementById("a_imagen_" + galeria + "_" + div_id1).href = document.getElementById("a_imagen_" + galeria + "_" + div_id2).href;
            document.getElementById("a_imagen_" + galeria + "_" + div_id2).href = temp;
    // cambio imagen
            var temp = document.getElementById("imagen_" + galeria + "_" + div_id1).src;
            document.getElementById("imagen_" + galeria + "_" + div_id1).src = document.getElementById("imagen_" + galeria + "_" + div_id2).src;
            document.getElementById("imagen_" + galeria + "_" + div_id2).src = temp;
    // cambio alt de imagen
            var temp = document.getElementById("imagen_" + galeria + "_" + div_id1).alt;
            document.getElementById("imagen_" + galeria + "_" + div_id1).alt = document.getElementById("imagen_" + galeria + "_" + div_id2).alt;
            document.getElementById("imagen_" + galeria + "_" + div_id2).alt = temp;
        }
    }
    function get_clean_url(url, param, clean) {
        if (clean == 1) {
            var retorna = url + param;
        } else {
            var retorna = url + "index.php?q=" + param;
        }
        return (retorna);
    }
    