var sNomDiv, sNomImg, sIncioUrl, sIdDivContenido;
var idsAllDivs = new Array(); 
var idsAllImgs = new Array(); 
var idsAllCats = new Array();  

var bparar = true;
var ncategoria = 0;

    
function cargaXmlCollapse(inicioUrl, idDivContenido) {    
    // imagen de cargando
    var divContenido = document.getElementById(idDivContenido);
    divContenido.style.display = ""; 
    divContenido.style.visibility = "visible";
    var labelCargando = document.createElement("label");
    labelCargando.setAttribute("style", "font-family: Arial; font-size: 10px; color: #000000; font-weight: normal;");
    var labelCargando_text = document.createTextNode("Cargando...");
    labelCargando.appendChild(labelCargando_text);
    divContenido.appendChild(labelCargando);                	    
    var sUrl = inicioUrl + "?readviewentries&collapseview";
    // var sUrl = "http://localhost:3799/WebAytoGranada/XMLCollapse.xml";
    sIncioUrl = inicioUrl;
    sIdDivContenido = idDivContenido;
    if (window.XMLHttpRequest) {
        xmlDoc= new XMLHttpRequest();
        xmlDoc.onreadystatechange = parseXmlCollapse;
        xmlDoc.open("GET", sUrl , true);
        xmlDoc.send(null);
        // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
        if (xmlDoc) {
            xmlDoc.onreadystatechange = parseXmlCollapse;
            xmlDoc.open("GET", sUrl , true);
            xmlDoc.send();
        }
    }
}


 // handle onreadystatechange event of xmlDoc object
function parseXmlCollapse() {           
    // only if xmlDoc shows "loaded"
    if (xmlDoc.readyState == 4) {
        // only if "OK"
        if (xmlDoc.status == 200) {              
        // PARSER XML                    
        var tablaContent = document.createElement("table");
        tablaContent.width = "100%";
        tablaContent.valign = "top";
        tablaContent.setAttribute("id", "idTabContColl");	
        var tbodyContent = document.createElement("tbody");	  
         
        var cont = -1; 
          
        var xmlDocNav = null;
        if (navigator.appName == "Opera") xmlDocNav = xmlDoc.responseXML.childNodes.item(1).childNodes;
        else xmlDocNav = xmlDoc.responseXML.lastChild.childNodes; 
        var conta = 0;
        for(var i=0; i<xmlDocNav.length; i++){
            if (xmlDocNav.item(i).nodeName == "viewentry"){  
                for(var j=0; j<xmlDocNav.item(i).attributes.length; j++){
                    if (xmlDocNav.item(i).attributes.item(j).nodeName == "children"){                        
                        conta = conta + parseInt(xmlDocNav.item(i).attributes.item(j).nodeValue);
                        break;
                    }
                } 
            }
        }
        
        if ((navigator.appVersion.match("MSIE 8")) || (navigator.appVersion.match("MSIE 7")) || (navigator.appVersion.match("MSIE 6"))) document.getElementById("calcula").innerHTML =  mistit[valorIndex] + ", Total: " + conta.toString() + " doc.";
        else document.getElementById("calcula").innerHTML = mistit[valorIndex] + ", Total: " + conta.toString() + " doc.";
        
        //alert(calculonum);
        for(var i=0; i<xmlDocNav.length; i++){ 
        
            if (xmlDocNav.item(i).nodeName == "viewentry"){   
                var parcial = "";
                for(var m=0; m<xmlDocNav.item(i).attributes.length; m++){
                    if (xmlDocNav.item(i).attributes.item(m).nodeName == "children"){                        
                        parcial =  parseInt(xmlDocNav.item(i).attributes.item(m).nodeValue);
                        break;
                    }
                } 
            
            
            
                                   
                // contador de todos los elementos entrydata dentro de cada viewentry                         
                for(var j=0; j<xmlDocNav.item(i).childNodes.length ; j++){                        
                    // contador de todos los elementos dentro de cada entrydata
                    for(var k=0; k<xmlDocNav.item(i).childNodes.item(j).childNodes.length; k++)
                    {  
                        
                        var sNodeName = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).nodeName;
                        var sNodeText = "";

                        if ((navigator.appVersion.match("MSIE 8")) || (navigator.appVersion.match("MSIE 7")) || (navigator.appVersion.match("MSIE 6"))) sNodeText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).text;
                        else sNodeText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).textContent;                        
                        var elem_tr = document.createElement("tr");
                        
                        if (sNodeName == "text")
                        {   
                            cont++;
                            var elem_td = document.createElement("td");
                            var imgCarga = document.createElement("img");
                            imgCarga.setAttribute("id", "img" + cont);
                            imgCarga.setAttribute("src", "/icons/expand.gif");
                            imgCarga.setAttribute("alt", "desplegar");
                            imgCarga.setAttribute("title", "desplegar");
                            imgCarga.setAttribute("width", "16");
                            imgCarga.setAttribute("height", "16");
                            imgCarga.style.border = "none";
                            elem_tr.appendChild(elem_td);                             
                            var elem_atext = document.createTextNode(sNodeText + " (" + parcial + " doc.)"); 
       	                    var elem_a = document.createElement("a");
       	                    elem_a.className = "vinculointernoo";
       	                    elem_a.appendChild(imgCarga);
       	                    elem_a.appendChild(elem_atext);
                            elem_a.setAttribute("href", "javascript:cargaXmlRestrict('" + sIncioUrl + "', '" + sNodeText + "', '" + "div" + cont + "', '" + "img" + cont + "')");
                            elem_td.appendChild(elem_a); 
                            tbodyContent.appendChild(elem_tr);  
                            // tr de los div contenedores de las categorias
                            var divCarga = document.createElement("div");
                            divCarga.setAttribute("id", "div" + cont);
                            //divCarga.className = "bordetablaexterior1";
                            divCarga.style.visibility = "hidden";                                
                            // array de divs
                            idsAllDivs[cont] = ("div" + cont);
                            // array de imgs
                            idsAllImgs[cont] = ("img" + cont);
                            // array de categorias
                            idsAllCats[cont] = sNodeText;                                
                            var elem_tr = document.createElement("tr");
                            var elem_td = document.createElement("td"); 
                            elem_td.style.paddingLeft = "20px";
                            elem_td.style.paddingRight = "10px";                                
                            elem_td.appendChild(divCarga);  
                            elem_tr.appendChild(elem_td);
                            tbodyContent.appendChild(elem_tr);
                        }                        
                    }//fin for entrydata         
                }// fin for viewentry
                //tbodyContent.appendChild(elem_tr);              
            } // fin if "viewentry"
        }// fin for principal
        tablaContent.appendChild(tbodyContent);
        var divContenido = document.getElementById(sIdDivContenido);
        divContenido.innerHTML="";
        divContenido.appendChild(tablaContent);
        } 
        else 
        {
            alert("Existe un problema cargando la subPágina:\n" + xmlDoc.statusText);
        }
    }
}
   
function cargaXmlRestrict(inicioUrl, categoria, nombreDiv, nombreImg) 
{
     
    var divDesp = document.getElementById(nombreDiv);
    if (divDesp.style.visibility == "visible")
    {
        var imgTrian = document.getElementById(nombreImg);
        imgTrian.src =  "/icons/expand.gif";
        imgTrian.setAttribute("alt", "desplegar");
        imgTrian.setAttribute("title", "desplegar");
        divDesp.style.display = "none";
        divDesp.style.visibility = "hidden";
    }
    else
    {
       divDesp.style.display = ""; 
       divDesp.style.visibility = "visible";            
       
       if (divDesp.innerHTML.length == 0)
       {
            //imagen de cargando
            var labelCargando = document.createElement("label");
            labelCargando.setAttribute("style", "font-family: Arial; font-size: 10px; color: #000000; font-weight: normal;");
            var labelCargando_text = document.createTextNode("Cargando...");
            labelCargando.appendChild(labelCargando_text);
            divDesp.appendChild(labelCargando);
            var sUrl =  inicioUrl + "?readviewentries&restricttocategory=" + categoria;
            //var sUrl =  "http://localhost:3799/WebAytoGranada/XMLRestrict.xml";
            sNomDiv = nombreDiv;
            sNomImg = nombreImg;
            sIncioUrl = inicioUrl;
           
            if (window.XMLHttpRequest) {
                xmlDoc= new XMLHttpRequest();
                xmlDoc.onreadystatechange = parseXmlRestrict;
                xmlDoc.open("GET", sUrl , true);
                xmlDoc.send(null);
            // branch for IE/Windows ActiveX version
            } 
            else if (window.ActiveXObject) {                     
                isIE = true;
                xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
                if (xmlDoc) {
                    xmlDoc.onreadystatechange = parseXmlRestrict;  
                    xmlDoc.open("GET", sUrl , true);
                    xmlDoc.send();
                }
            }
        }
        else 
        {
        	if (!bparar){
        		var ncat=parseInt(nombreDiv.substr(3));
        	 	sacaSiguiente(ncat);
        	}
            var imgTrian = document.getElementById(nombreImg);
            imgTrian.src =  "/icons/collapse.gif";
            imgTrian.setAttribute("alt", "plegar");
            imgTrian.setAttribute("title", "plegar");
        }
    }
}    

 // handle onreadystatechange event of xmlDoc object
function parseXmlRestrict() { 
               
    // only if xmlDoc shows "loaded"
    if (xmlDoc.readyState == 4) 
    {
        
        // only if "OK"
        if (xmlDoc.status == 200) 
        {       
                    
            //cargar el div 
            var divDesp = document.getElementById(sNomDiv);               
            var imgTrian = document.getElementById(sNomImg);
            imgTrian.src =  "/icons/collapse.gif";
            imgTrian.setAttribute("alt", "plegar");
            imgTrian.setAttribute("title", "plegar");                
           
            // PARSER XML                
            var sSalida = "<table id='idTabContRest' width='100%'><tbody>"		            
            // array de titulos
            if (typeof(titulosColumnas)!="undefined"){
                var sTrsTitulos = "<tr>";
                for(var k=0; k<titulosColumnas.length; k++)
                {
                    if (k==0) sTrsTitulos = sTrsTitulos + "<td width='70%' class='scap'>" + titulosColumnas[k] + "</td>"; 
                    else sTrsTitulos = sTrsTitulos + "<td class='scap'>" + titulosColumnas[k] + "</td>";                        
                }//fin for array 
                sTrsTitulos = sTrsTitulos + "</tr>";
                sSalida = sSalida + sTrsTitulos
            } 
            
            var xmlDocNav = null;
            if (navigator.appName == "Opera") xmlDocNav = xmlDoc.responseXML.childNodes.item(1).childNodes;
            else xmlDocNav = xmlDoc.responseXML.lastChild.childNodes;
           
                          
            // contador de todos los viewentry
            
            for(var i=0; i<xmlDocNav.length; i++)
            {
                var aHref = "";
                if (xmlDocNav.item(i).nodeName == "viewentry")
                {   
                    var bText = false;
                    // contador del unid como atributo
                    for(var j=0; j<xmlDocNav.item(i).attributes.length; j++)
                    {
                        if (xmlDocNav.item(i).attributes.item(j).nodeName == "unid")
                        {
                            aHref = "href='" + sIncioUrl + "/" + xmlDocNav.item(i).attributes.item(j).nodeValue + "'>"
                            break;
                        }
                    } 
                    var sTds = "";                                                      
                    // contador de todos los elementos entrydata dentro de cada viewentry                         
                    for(var j=0; j<xmlDocNav.item(i).childNodes.length; j++)
                    {                            
                        // contador de todos los elementos dentro de cada entrydata                             
                        for(var k=0; k<xmlDocNav.item(i).childNodes.item(j).childNodes.length; k++)
                        {
                            var sNodeName = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).nodeName;
                            var sNodeText = "";
                            if ((navigator.appVersion.match("MSIE 8")) || (navigator.appVersion.match("MSIE 7")) || (navigator.appVersion.match("MSIE 6"))) sNodeText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).text;
                            else 
                            {
                                sNodeText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).textContent;
                            }
                            var sTd = "";  
                            sNodeText = quitaCorchete(sNodeText);                              
                            if (sNodeName == "text")
                            {    
                                if (bText == false)
                                {   
                                    sTd = "<td><li style='list-style-type:none; padding-left: 15px;'><img src='/v70/vin_azulh.gif' />&nbsp;<a class='vinculoexternoo' " + aHref + sNodeText + "</a></td>";
                                    bText = true;                                 
                                }
                                else
                                { 
                                    sTd = "<td><li style='list-style-type:none; padding-left: 15px;'><img src='/v70/vin_azulh.gif' />&nbsp;" + sNodeText + "</td>";                                         
                                }
                            }
                            else if (sNodeName == "textlist")
                            {   
                                var sCadena = ""; 
                                var sNText = ""
                                for(var n=0; n<xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).childNodes.length;n++)
                                {
                                    if (xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).childNodes.item(n).nodeName == "text")
                                    {
                                        if ((navigator.appVersion.match("MSIE 8")) || (navigator.appVersion.match("MSIE 7")) || (navigator.appVersion.match("MSIE 6"))) sNText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).childNodes.item(n).text;
                                        else sNText = xmlDocNav.item(i).childNodes.item(j).childNodes.item(k).childNodes.item(n).textContent;
                                    }
                                    if (sCadena == "") sCadena = sNText;
                                    else sCadena = sCadena + ", " + sNText;
                                } 
                                sTd = "<td><li style='list-style-type:none; padding-left: 15px;'><img src='/v70/vin_azulh.gif' />&nbsp;" + sCadena + "</td>"; 
                            }
                            else if (sNodeName == "datetime")
                            { 
                                sNodeText = formateaFecha(sNodeText);  
                                sTd = "<td><li style='list-style-type:none; padding-left: 15px;'><img src='/v70/vin_azulh.gif' />&nbsp;" + sNodeText + "</td>";  
                            } 
                            sTds = sTds + sTd;                                                                                              
                        }//fin for entrydata                                
                    }// fin for viewentry
                    sSalida = sSalida + "<tr>"  + sTds + "</tr>";              
                } // fin if "viewentry"
            }// fin for principal
            divDesp.innerHTML="";
            //sSalida = sSalida + "<tr><td align='right' colspan=4><input class='sbtn' type=button value='Plegar esta' onclick=plegarItem('" + sNomDiv.toString() + "'); /></td></tr></tbody></table>"
            sSalida = sSalida + "</tbody></table>"
            divDesp.innerHTML = sSalida; 
            var ncategoria=parseInt(sNomDiv.substr(3));
                          
            //para desplegar todas
            if (!bparar) sacaSiguiente(ncategoria);  
                          
        } //fin if (xmlDoc.status == 200)
        else 
        {
            alert("Existe un problema cargando la subPágina:\n" + xmlDoc.statusText);
        }
    }//fin if (xmlDoc.readyState == 4)
}

function sacaSiguiente(numerodiv){
	if (numerodiv<(idsAllDivs.length-1)){
    	var i = numerodiv + 1;                   
            var categ = idsAllCats[i];
            cargaXmlRestrict(sIncioUrl, categ, idsAllDivs[i],idsAllImgs[i]); 
    }else bparar=true;   
}

function formateaFecha(sFecha)//20071101
{
    if (sFecha.length == 8)
    {
        var sAnio = sFecha.substr(0,4);
        var sMes = sFecha.substr(4,2);
        var sDia = sFecha.substr(6,2);
        return (sDia + "/" + sMes + "/" +sAnio) 
    }
    else return sFecha;
}


function quitaCorchete(sText)
{
    sText = sText.replace("[", "");
    sText = sText.replace("]", "");
    return sText;
}

function plegarItem(sIdDiv)
{
    var idImg = "img" + sIdDiv.substr(3);
    var imgTrian = document.getElementById(idImg);
    imgTrian.src =  "/icons/expand.gif";
    imgTrian.setAttribute("alt", "desplegar");
    imgTrian.setAttribute("title", "desplegar");
    var idDiv = document.getElementById(sIdDiv);
    idDiv.style.display = "none";
    idDiv.style.visibility = "hidden";       
}

function plegarTodas()
{
	bparar=true;
    for (var i=0; i<idsAllDivs.length; i++)
    {            
        var idImg = document.getElementById(idsAllImgs[i]);
        idImg.src =  "/icons/expand.gif";
        idImg.setAttribute("alt", "desplegar");
        idImg.setAttribute("title", "desplegar");
        var divI = document.getElementById(idsAllDivs[i]);
        divI.style.display = "none";
        divI.style.visibility = "hidden";     
    }
}
    
function desplegarTodas()
{
    if (idsAllDivs.length>0)
    {   
        bparar=false;
        cargaXmlRestrict(sIncioUrl, idsAllCats[0], idsAllDivs[0],idsAllImgs[0]); 
    }        
}



