/***********************************************************************************************/

var informacionB;
var consulta=false;
 //Ext.onReady(function(){
function lTrim(sStr){
	 while (sStr.charAt(0) == " ")
	  sStr = sStr.substr(1, sStr.length - 1);
	 return sStr;
};
function rTrim(sStr){
	 while (sStr.charAt(sStr.length - 1) == " ")
	  sStr = sStr.substr(0, sStr.length - 1);
	 return sStr;
};
function allTrim(sStr){
	 return rTrim(lTrim(sStr));
};

function CrearArbolConsulta(consultaresult)
{
  root = new Ext.tree.TreeNode({
									text:'Capas',
									id:'id',
									draggable: false,
 	                expanded: true
									
	});
  capas = consultaresult.split("capa:");
  var nombrecapa = new Array();
  var partescapa = new Array();
  var campos = new Array();
  var partesfila = new Array();
  var campovalor = new Array();
  var i,j,k;
  var objcapas;
  var nombcapa;
  var cadenacampovalor="";
  var arreglo_seleccion = new Array();
  
  for(i=1;i<capas.length;i++)
  {
     partescapa = capas[i].split('|');
     if(partescapa!="")
		 { 
		      cadena= allTrim(partescapa[1]);
          longitud=cadena.length;
					campos = cadena.substr(0,longitud-1).split(',');
          cadena= allTrim(partescapa[2]);
          longitud=cadena.length;
					filas = cadena.substr(5,longitud-5).split('fila:');
					nombcapa = partescapa[0];
          nombrec = allTrim(partescapa[0])+" (" + filas.length + ")";
          objcapas = new Ext.tree.TreeNode({
                          text: nombrec ,
                          id: nombcapa , 
                          leaf:false, 
                          cls:"folder",
        			  listeners: {  click: function(nodo, event) 
							{
							  consulta=true;
							  var child = nodo.childNodes;
							  var idn = new Array();
							  for(p=0;p<child.length;p++)
						    {
									var longitudn = child[p].text.length;
									var temp = child[p].text.substr(4,longitudn);
									idn[p] = temp;
								}
							  document.getElementById('hilight_layer').value = nodo.id;
							  document.getElementById('hilight_ids').value = idn;
							  }
					}
          }); 
          for(j=0;j<filas.length;j++)
					{
              cadena= allTrim(filas[j]);
              longitud=cadena.length;
	            partesfila = cadena.substr(6,longitud-6).split('celda:');
              objid=nombrec+j;
              objnombre= allTrim(campos[0]) + ":  " + allTrim(partesfila[0]);
              objectoext= new Ext.tree.TreeNode({
                          text: objnombre ,
                          id: objid , 
                          leaf: false, 
                          cls: "folder",
													listeners: { dblclick: function(nodo, event) 
														{
														  consulta=true;
															var longitudn = nodo.text.length;
															var idn = nodo.text.substr(4,longitudn);
															var capa_nomb = nodo.id.split(' ');
															document.getElementById('hilight_layer').value = capa_nomb[0];
															document.getElementById('hilight_ids').value = idn;
															CartoWeb.trigger('Draw.Perform');
														}
													}
              }); 
              
             for(k=0;k<partesfila.length;k++)
							{
								if ((campos[k]!="") && (partesfila[k]))
                {
                      valor= allTrim(campos[k]) + ":  " + allTrim(partesfila[k]);
                      objectcampocalor = new Ext.tree.TreeNode({
                          text: valor ,
                          id: valor , 
                          leaf: true, 
                          cls: "file"
                        });
                      objectoext.appendChild(objectcampocalor);										  
                }
							} 
              objcapas.appendChild(objectoext);
					}
					if(allTrim(nombcapa)==allTrim(document.getElementById('hilight_layer').value))
					{
						arreglo_seleccion =	document.getElementById('hilight_ids').value.split(',');
						if(arreglo_seleccion.length>0)
						{
							 objcapas.expanded=false;
							 var selec=false; 
							 for(s=0;s<arreglo_seleccion.length;s++)	
						    {
						      for(n=0;n<objcapas.childNodes.length;n++)
						      {
						        var tempcad=objcapas.childNodes[n].text;
						        tempcad=tempcad.substr(4,tempcad.length);
						        if(allTrim(arreglo_seleccion[s])==allTrim(tempcad))
						        {
						          objcapas.childNodes[n].setText("<B><I>" + objcapas.childNodes[n].text + "</I></B>");
						          selec=true;
						          break;
						        }
						      }
						    }	
						    if(selec==true)	
						     objcapas.expanded=true;
						    
						}     	
					}
          root.appendChild(objcapas);
    }
  }
  cantcap = capas.length -1;
  nombrecap="Capas"+ "(" + cantcap + ")";
  root.setText(nombrecap);
   return root;
};


function CrearGridConsulta(consultaresult)
{
  
  /*capas = consultaresult.split("capa:");
  var nombrecapa = new Array();
  var partescapa = new Array();
  var campos = new Array();
  var partesfila = new Array();
  var campovalor = new Array();
  var i,j,k;
  var objcapas;
  var nombcapa;
  var cadenacampovalor="";
  var arreglo_seleccion = new Array();
  partescapa = consultaresult.split('|');
  campos = partescapa[1];
  campovalor= partescapa[2];
  
  
  var reader = new Ext.data.ArrayReader({},[
       {name: campos[0]},
       {name: campos[1]}
    ]);


   ////////////////////////////////////////////////////////////////////////////////////////
    // Grid 4
    ////////////////////////////////////////////////////////////////////////////////////////
    var xg = Ext.grid;
    var sm2 = new xg.CheckboxSelectionModel();
    var grid4 = new xg.GridPanel({
        id:'button-grid',
        store: new Ext.data.Store({
            reader: reader,
            data: campovalor
        }),
        cm: new xg.ColumnModel([
            sm2,
            {id:campos[0],header: campos[0], width: 40, sortable: true, dataIndex: campos[0]},
            {header: campos[1], width: 20, sortable: true, dataIndex: campos[1]}
        ]),
        sm: sm2,

        viewConfig: {
            forceFit:true
        },

        // inline buttons
        buttons: [{text:'Save'},{text:'Cancel'}],
        buttonAlign:'center',

        // inline toolbars
        tbar:[{
            text:'Add Something',
            tooltip:'Add a new row',
            iconCls:'add'
        }, '-', {
            text:'Options',
            tooltip:'Blah blah blah blaht',
            iconCls:'option'
        },'-',{
            text:'Remove Something',
            tooltip:'Remove the selected item',
            iconCls:'remove'
        }],

        width:600,
        height:300,
        frame:true,
        title:'Support for standard Panel features such as framing, buttons and toolbars',
        iconCls:'icon-grid'
    });
    pInformacionBasica = new Ext.Panel({
				    width:350,
                        height: 250,
				    collapsible:true,
				    layout:'fit',
 				    //autoScroll: true,
                        containerScroll: true,
				    items:[{ layout:'column',
						   frame: true,
						   items:[{
							 	  columnWidth: 1,
								  layout : 'form',
                                          items: grid4 						
	  						     }]
						}]
    })
    var coordx=620;
    var coordy=105;
    var posicion= new Array();
    if(informacionB != undefined){
        
       if(informacionB.isVisible())
        {
		      posicion = informacionB.getPosition();
		      coordx=posicion[0];
		      coordy=posicion[1];
        }
        
      	informacionB.destroy();
      }
      
	informacionB = new Ext.Window({
	    title	    : 'Informaci&oacute;n B&aacute;sica',
	    renderTo    : document.body,
	    layout      : 'fit',
	    width       : 378,
	    height      : 300,
	    closeAction :'close',
	    resizable   : false,
	    shadow       : true,
			animCollapse : true,
			collapsible  : true,
	    plain       : true,
	    x           : coordx,
	    y           : coordy,
	    items		: pInformacionBasica	    
	});
      consultatemp = resultHtml;
      consulta = false;			
      informacionB.show();
    
*/

   
};
  
	 
InformacionB = function(resultHtml)
{	
 herramienta = xGetElementById('tool').value;
if((resultHtml != "") && ((herramienta == "query_by_point") || (herramienta == "query_by_bbox")  || (herramienta == "query_by_circle")   || (herramienta == "query_by_polygon")))
{
    capa = document.getElementById('hilight_layer').value;
    objeto = document.getElementById('hilight_ids').value;
    document.getElementById('hilight_layer').value = "";
		document.getElementById('hilight_ids').value = ""; 
    if((resultHtml == " ") && (consulta==true))
    {
      resultHtml = consultatemp;
      document.getElementById('hilight_layer').value = capa;
		  document.getElementById('hilight_ids').value = objeto; 
    }  
     if((document.getElementById('hilight_layer').value == "") && (document.getElementById('hilight_ids').value == ""))
      	CartoWeb.trigger('Select.Clear');   
    //CrearGridConsulta(resultHtml);
    capas2 = CrearArbolConsulta(resultHtml);
    arbol = new Ext.tree.TreePanel({
									style:'margin:0 0 0 2;',
									width:350,
									height: 250,
									autoScroll: true,
									region:'center'
														
		});
    arbol.setRootNode(capas2); 
    pInformacionBasica = new Ext.Panel({
												width:350,
                        height: 250,
												collapsible:true,
												layout:'fit',
												//autoScroll: true,
                        containerScroll: true,
												items:[{
															layout:'column',
															frame: true,
															items:[{
																columnWidth: 1,
																layout : 'form',
                                 items:
																				arbol 						
																}]
												}]
    })
    var coordx=620;
    var coordy=105;
    var posicion= new Array();
    if(informacionB != undefined){
        
       if(informacionB.isVisible())
        {
		      posicion = informacionB.getPosition();
		      coordx=posicion[0];
		      coordy=posicion[1];
        }
        
      	informacionB.destroy();
      }
      
	informacionB = new Ext.Window({
	    title	    : 'Informaci&oacute;n B&aacute;sica',
	    renderTo    : document.body,
	    layout      : 'fit',
	    width       : 378,
	    height      : 300,
	    closeAction :'close',
	    resizable   : false,
	    shadow       : true,
			animCollapse : true,
			collapsible  : true,
	    plain       : true,
	    x           : coordx,
	    y           : coordy,
	    items		: pInformacionBasica,
	    listeners: { close : function()
	    							{
	    							  document.getElementById('hilight_layer').value = "";
											document.getElementById('hilight_ids').value = "";
											enableTool('pan'); 
											CartoWeb.trigger('Query.Clear');
											informacionB = undefined;
	    							 }	    
	    						}
	    
	});
      consultatemp = resultHtml;
      consulta = false;			
      informacionB.show();
}
};

//});
/************************************************************************************************/

