function cargaUsuarios(id,url,nombreId) {

    imgAjaxCargando = findObj('cargandoUsuariosAjax');
    imgTemporal = imgAjaxCargando.src;
    imgAjaxCargando.src = CONTEXTO + '/imagenes/ajax-loader.gif';
    
    
    ocultarSelects();
    deleteChilds('raizidUsuarios');
    
    if (isIE) {
        var selects=new Array();
        for (var i=0;i<document.forms.length;i++){
            var f=document.forms[i];
            for (var j=0;j<f.elements.length;j++){
                var o=f.elements[j];
                if (o.type&&o.type.indexOf("select")!=-1){
                    selects[selects.length]=o;
                }
            }
        }
        for (var i=0;i<selects.length;i++){
            var o=selects[i];
            o.style.visibility='hidden';
        }
    }
    idRaiz=id;
    idCapa=id;

    if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
    var params=new Array();
    params[0]='nombreId='+nombreId;
    params=tratarParametros(params);
    var sendf=params.join('&');
    xhttp.open('POST',url,true);
    xhttp.onreadystatechange=cargarUsuarios;
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    xhttp.setRequestHeader('Connection','close');
    xhttp.send(sendf);
    mostrarUsuarios(id+'Capa');
}

function cargarUsuarios(){
    
    if(xhttp.readyState==4&&xhttp.status==200){
        var respuesta=xhttp.responseXML; // responseText
        
        
        var nodoPadre=findObj('raizidUsuarios');  
        
        var doc=window.document;  
        var elementos=(respuesta.getElementsByTagName('elementos')[0]).childNodes[0].nodeValue;
        var nombreId=(respuesta.getElementsByTagName('nombreId')[0]).childNodes[0].nodeValue;

        var li = doc.createElement('li'); //Cabecera
        li.id="filas_listado_h";
        var innerHTML = "<span style=\"display: block; float: left; width: 450px;\" onclick=\"javascript:ordenarUsuarios('nombre','"+nombreId+"')\" title=\"Ordenar por nombre\">";
        innerHTML += "<div>Usuarios</div>";
        innerHTML += "</span>";
        
        
       
        li.innerHTML = innerHTML;
        
        nodoPadre.appendChild(li);
        
        if(elementos>0){
            for(i=0;i<elementos;i++){
                //alert('i: '+i);
                var elemento=doc.createElement('li');
                //var icono=doc.createElement('img');
                var value=(respuesta.getElementsByTagName('value')[i]).childNodes[0].nodeValue;
                //alert('value: '+value);
                var texto=(respuesta.getElementsByTagName('texto')[i]).childNodes[0].nodeValue;
                //alert('texto: '+texto);
                var titulo=(respuesta.getElementsByTagName('titulo')[i]).childNodes[0].nodeValue;
                
                elemento.id=nombreId+"_"+idCapa+"_"+value;
                elemento.titulo=titulo;
                elemento.title=texto;
                elemento.innerHTML="<a href=\"javascript:seleccionIdUsuario('"+idCapa+"','"+value+"')\" class=\"__fila_td\">  <span class=\"__fila_td\" style=\"display: block; float: left; width: 450px; text-align: left;\">&nbsp;"+titulo+"</span> </br></a>";
                
                nodoPadre.appendChild(elemento);
            }
            var seleccionTodos = "";
            for(i=0;i<elementos;i++){
                var value2=(respuesta.getElementsByTagName('value')[i]).childNodes[0].nodeValue;
                if (seleccionTodos != "") 
                  seleccionTodos = seleccionTodos + ",";
                seleccionTodos = seleccionTodos + value2;
            } 
                var elemento2 =doc.createElement('li');
                //var icono=doc.createElement('img');
                elemento2.id=nombreId+"_"+idCapa+"_Todos";
                elemento2.titulo="Seleccionar Todos";
                elemento2.title="Aniade a todos en el combo";
                elemento2.innerHTML="<a href=\"javascript:seleccionTodos('"+idCapa+"','"+seleccionTodos+"')\" class=\"__fila_td\">  <span class=\"__fila_td\" style=\"display: block; float: left; width: 450px; text-align: left;\">&nbsp;Seleccionar Todos</span> </br></a>";
                nodoPadre.appendChild(elemento2);
        }else{
            var elemento=doc.createElement('li');
            elemento.appendChild(doc.createTextNode('La búsqueda no devolvió resultados'));
            nodoPadre.appendChild(elemento);
        }
        
        imgAjaxCargando.src = imgTemporal;
    }
}
function filtraUsuarios(id,url,nombreId){  
    
    imgAjaxCargando = findObj('cargandoUsuariosAjax');
    imgTemporal = imgAjaxCargando.src;
    imgAjaxCargando.src = CONTEXTO + '/imagenes/ajax-loader.gif';
    
    deleteChilds('raizidUsuarios');
    
    if (isIE) {
        var selects=new Array();
        for (var i=0;i<document.forms.length;i++){
            var f=document.forms[i];
            for (var j=0;j<f.elements.length;j++){
                var o=f.elements[j];
                if (o.type&&o.type.indexOf("select")!=-1){
                    selects[selects.length]=o;
                }
            }
        }
        for (var i=0;i<selects.length;i++){
            var o=selects[i];
            o.style.visibility='hidden';
        }
    }
    idRaiz=id;
    idCapa=id;

    if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
    
    var nombreBusqueda = findObj('nombreBusquedaUsuario').value; 
    
    var params=new Array();
    params[0]='nombreId='+nombreId;
    params[1]='nombreBusqueda='+nombreBusqueda;
    params=tratarParametros(params);
    var sendf=params.join('&');
    xhttp.open('POST',url,true);
    xhttp.onreadystatechange=cargarUsuarios;
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    xhttp.setRequestHeader('Connection','close');
    xhttp.send(sendf);
}
function ordenarUsuario(ordenarPor,  nombreId){
    //alert('ordenar por '+ordenarPor);
    
    deleteChilds('raizidUsuarios');
    
    var params=new Array();
    params[0]='ordenarPor='+ordenarPor;
    params[1]='nombreId='+nombreId;
    var sendf=params.join('&');
    
    
    xhttp.open('POST',"enviosBoletin.ajaxOrdenarUsuarios.do",true);
    xhttp.onreadystatechange=cargarUsuarios;
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    xhttp.setRequestHeader('Connection','close');
    xhttp.send(sendf);
}



function mostrarUsuarios(id) {
    if (findObj(id).style.display=='block') {
        findObj(id).style.display='none';
        findObj(id).style.visibility='hidden';
    } else {
        var scrolTop = getPosicionScroll();
        findObj(id).style.top = scrolTop+"px";
        findObj(id).style.marginTop = '10%';
        findObj(id).style.marginLeft = '10%';
        findObj(id).style.zIndex = '150';
        findObj(id).style.display='block';
        findObj(id).style.visibility='visible';
    }
}


function cerrarUsuarios(id) {
    
    if (isIE) {
        var selects=new Array();
        for (var i=0;i<document.forms.length;i++){
            var f=document.forms[i];
            for (var j=0;j<f.elements.length;j++){
                var o=f.elements[j];
                if (o.type&&o.type.indexOf("select")!=-1){
                    selects[selects.length]=o;
                }
            }
        }
        for (var i=0;i<selects.length;i++){
            var o=selects[i];
            o.style.visibility='visible';
        }
    }
    if (findObj(id).style.display=='block') {
        findObj(id).style.display='none';
        findObj(id).style.visibility='hidden';
        findObj('nombreBusquedaUsuario').value='';
    } else {
        findObj(id).style.display='block';
        findObj(id).style.visibility='visible';
    }
}


function eliminarUsuario(id){
    var a=0;
    var campo=document.getElementById(id);
    var index;
    var noElementos=true;
    do{
        if(campo.options.length>0){
            if(campo.options[a].selected){
                index=a;
                noElementos=false;
                break;
            }else{
                a++;
            }
        }else{
            noElementos=true;
        }
    }while(a<campo.options.length);
    if (noElementos){alert(USR_NO_SELECCION);return;}

    var url=CONTEXTO+'/enviosBoletin.borrarUsuario.do';
    if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
    var params=new Array();
    params[0]='index='+index;
    params[1]='nombreCampo=usuarios';
    params=tratarParametros(params);
    var sendf=params.join('&');
    xhttp.open('POST',url,true);
    xhttp.onreadystatechange=dibujarCamposComboUsariosSinCerrar;
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    xhttp.setRequestHeader('Connection','close');
    xhttp.send(sendf);
}

function dibujarCamposComboUsuarios() {
    //tengo que recuperar el xml y pintar todos los datos que me vienen en el select de actividad
    if(xhttp.readyState==4&&xhttp.status==200) {
        var respuesta=xhttp.responseXML; // responseText
        var doc=window.document;  
        var numero=(respuesta.getElementsByTagName('numero')[0]).childNodes[0].nodeValue;
        var nombreCampo=(respuesta.getElementsByTagName('nombreCampo')[0]).childNodes[0].nodeValue;
        var tamCampo=(respuesta.getElementsByTagName('tam')[0]).childNodes[0].nodeValue;
        
        var campoSelect=findObj(nombreCampo);
        if(campoSelect.tagName=="SELECT"){
            campoSelect.innerHTML="";
        } 
        
        if(numero>0){
            for(i=0;i<numero;i++){
                var orden=(respuesta.getElementsByTagName('orden')[i]).childNodes[0].nodeValue;
                var descripcion=(respuesta.getElementsByTagName('descripcion')[i]).childNodes[0].nodeValue;
                var option = doc.createElement('option');
                option.value=orden;
                option.innerHTML=descripcion;
                campoSelect.appendChild(option);
            }
            
        }
        if(tamCampo>1){
            if(numero>1){
                 findObj('flechasOrden'+nombreCampo).style.display='block';
                 findObj('flechasOrden'+nombreCampo).style.visibility='visible';
            }else{
                 findObj('flechasOrden'+nombreCampo).style.display='none';
                 findObj('flechasOrden'+nombreCampo).style.visibility='hidden';
            }
        }
        if(numero>0){
            findObj('iconoBorrar'+nombreCampo).style.display='block';
            findObj('iconoBorrar'+nombreCampo).style.visibility='visible';
        }else{
            findObj('iconoBorrar'+nombreCampo).style.display='none';
            findObj('iconoBorrar'+nombreCampo).style.visibility='hidden';
        }
        
        cerrarUsuarios('idUsuariosCapa');
    }
}
    
function dibujarCamposComboUsuariosSinCerrar() {
    //tengo que recuperar el xml y pintar todos los datos que me vienen en el select de actividad
    if(xhttp.readyState==4&&xhttp.status==200) {
        var respuesta=xhttp.responseXML; // responseText
        var doc=window.document;  
        var numero=(respuesta.getElementsByTagName('numero')[0]).childNodes[0].nodeValue;
        var nombreCampo=(respuesta.getElementsByTagName('nombreCampo')[0]).childNodes[0].nodeValue;
        var tamCampo=(respuesta.getElementsByTagName('tam')[0]).childNodes[0].nodeValue;
        
        var campoSelect=findObj(nombreCampo);
        if(campoSelect.tagName=="SELECT"){
            campoSelect.innerHTML="";
        } 
        
        if(numero>0){
            for(i=0;i<numero;i++){
                var orden=(respuesta.getElementsByTagName('orden')[i]).childNodes[0].nodeValue;
                var descripcion=(respuesta.getElementsByTagName('descripcion')[i]).childNodes[0].nodeValue;
                var option = doc.createElement('option');
                option.value=orden;
                option.innerHTML=descripcion;
                campoSelect.appendChild(option);
            }
            
        }
        if(tamCampo>1){
            if(numero>1){
                 findObj('flechasOrden'+nombreCampo).style.display='block';
                 findObj('flechasOrden'+nombreCampo).style.visibility='visible';
            }else{
                 findObj('flechasOrden'+nombreCampo).style.display='none';
                 findObj('flechasOrden'+nombreCampo).style.visibility='hidden';
            }
        }
        if(numero>0){
            findObj('iconoBorrar'+nombreCampo).style.display='block';
            findObj('iconoBorrar'+nombreCampo).style.visibility='visible';
        }else{
            findObj('iconoBorrar'+nombreCampo).style.display='none';
            findObj('iconoBorrar'+nombreCampo).style.visibility='hidden';
        }
    }
}
 
 
 

function eliminarUsuario(id){
    var a=0;
    var campo=document.getElementById(id);
    var index;
    var noElementos=true;
    do{
        if(campo.options.length>0){
            if(campo.options[a].selected){
                index=a;
                noElementos=false;
                break;
            }else{
                a++;
            }
        }else{
            noElementos=true;
        }
    }while(a<campo.options.length);
    if (noElementos){alert(USR_NO_SELECCION);return;}

    var url=CONTEXTO+'/enviosBoletin.borrarUsuario.do';
    if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
    var params=new Array();
    params[0]='index='+index;
    params[1]='nombreCampo=usuarios';
    params=tratarParametros(params);
    var sendf=params.join('&');
    xhttp.open('POST',url,true);
    xhttp.onreadystatechange=dibujarCamposComboUsuariosSinCerrar;
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    xhttp.setRequestHeader('Connection','close');
    xhttp.send(sendf);
}

function deleteChilds(elementId) { //Obtenido de http://forum.de.selfhtml.org/archiv/2004/8/t87522/ (en aleman)
 /* Version 2 by caru */
 
 elem = document.getElementById(elementId); // the element with elementId
 if (!elem) { return }
 else if ( elem.hasChildNodes() ) {
  while ( elem.hasChildNodes() ) {
   child = elem.firstChild;
   elem.removeChild(child);
   }
  } else { return }
}

function getPosicionScroll(){
    var scrolTop=0;
    if(self.pageYOffset){scrolTop=self.pageYOffset;}
    else if(document.documentElement&&document.documentElement.scrollTop){scrolTop=document.documentElement.scrollTop;}
    else if(document.body){scrolTop = document.body.scrollTop;}
    return scrolTop;
}


function bajarOrdenUsuario(id){
    var a=0;
    var campo=findObj(id);
    var campoBajar;
    var numElemento = "";
    var noElementosBajar= new Boolean(true);
    do{
        if(campo.options.length>0){
            if(campo.options[a].selected){
                campoBajar=a;
                //campoBajar=campo.options[a].value;
                noElementosBajar=false;
                numElemento = a+"";
                break;
            }else{
                a++;
            }
        }else{
            noElementosBajar=true;
        }
    }while(a<campo.options.length);  
    if (!noElementosBajar){
        if(numElemento==campo.options.length-1){
            alert(USR_BAJAR_ULTIMO);return;
        }
        if(campoBajar==campo.options.length-1){
            alert(USR_BAJAR);return;
        }
        var url=CONTEXTO+'/enviosBoletin.bajarOrdenUsuario.do';
        if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
        else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
        var params=new Array();
        params[0]='nombreCampo='+id;
        params[1]='campoBajar='+campoBajar;
        var params=tratarParametros(params);
        var sendf=params.join('&');
        xhttp.open('POST',url,true);
        xhttp.onreadystatechange=dibujarCamposComboUsuariosSinCerrar;
        xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
        xhttp.setRequestHeader('Connection','close');
        xhttp.send(sendf);
    } else {
        alert(USR_NO_SELECCION);
    }
}
function subirOrdenUsuario(id){
    var a=0;
    var campo=findObj(id);
    var campoSubir;
    var numElemento = "";
    var noElementosSubir = new Boolean(true);
    do{
        if(campo.options.length>0){
            if(campo.options[a].selected){
                //campoSubir=campo.options[a].value;
                campoSubir=a;
                numElemento = a+"";
                noElementosSubir=false;
                break;
            }else{
                a++;
            }
        }else{
            noElementosSubir=true;
        }
    }while(a<campo.options.length);
    if (!noElementosSubir){
        if( numElemento == "0"){
            alert(USR_SUBIR_PRIMERO);return;
        }
        if(campoSubir==0){
            alert(USR_SUBIR);return;
        }
        var url=CONTEXTO+'/enviosBoletin.subirOrdenUsuario.do';
        if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
        else if(window.ActiveXObject){xhttp=new ActiveXObject('Microsoft.XMLHTTP');}
        var params=new Array();
        params[0]='nombreCampo='+id;
        params[1]='campoSubir='+campoSubir;
        var params=tratarParametros(params);
        var sendf=params.join('&');
        xhttp.open('POST',url,true);
        xhttp.onreadystatechange=dibujarCamposComboUsuariosSinCerrar;
        xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
        xhttp.setRequestHeader('Connection','close');
        xhttp.send(sendf);
    } else {
        alert(USR_NO_SELECCION);
    }
}
