// Define las caracteristicas de los enlaces de las categorías. Modos: 'sitio' y 'admin'
var arbol_categorias_modo = "sitio";

imagen=new Array("/imagenes/arbol/mas_v2.png","/imagenes/arbol/menos_v2.png","/imagenes/arbol/vacio_v2.png","/imagenes/arbol/linea_t.png","/imagenes/arbol/linea_l.png");
var p_simbolo=new Array();
var id_elemento_tmp = new Array();
for(var x=0; x<imagen.length; x++)
{
	p_simbolo[x]=new Image();
	p_simbolo[x].src=imagen[x];
}

function arbol_categorias_cargar(id_contenedor)
{
	if(id_contenedor == 0)		// Inicializa la función
	{
		var cont_rama = document.getElementById("arbol_categorias");
		cont_rama.innerHTML = "";	
	}
	else
	{
		var cont_rama = document.getElementById("cat_"+id_contenedor+"_hijos");
		_simb = document.getElementById(id_contenedor);
		_simb.alt="menos";
		_simb.src=p_simbolo[1].src; // [-]
	}

	var _tabla_categorias = document.createElement("table");
	_tabla_categorias.id="tabla_categorias_"+id_contenedor;
	_tabla_categorias.cellSpacing='1';
	_tabla_categorias.cellPadding='0';

	var _tb_cuerpo = document.createElement("tbody");
	_tabla_categorias.appendChild(_tb_cuerpo);
	
	cont_rama.appendChild(_tabla_categorias);
	var c_categorias = document.getElementById("tabla_categorias_"+id_contenedor).getElementsByTagName("tbody")[0];		

	var params = 'id_contenedor='+id_contenedor;

	new Ajax.Request( '/categorias_xml' , 
	{
		method: 'get', parameters: params,	
 		onSuccess: function(transport) {
			if(transport.responseXML != null)
			{				
				var ajax_xml = transport.responseXML;
				var id_elemento = ajax_xml.getElementsByTagName("id_elemento");
				var id_contenedor = ajax_xml.getElementsByTagName("id_contenedor");				
				var titulo = ajax_xml.getElementsByTagName("titulo");
				var productos = ajax_xml.getElementsByTagName("productos");
				var hijos = ajax_xml.getElementsByTagName("hijos");
				var ruta = ajax_xml.getElementsByTagName("ruta");
				
				for(x=0; x<id_elemento.length; x++)
				{				
					_tr_cat_elemento = document.createElement("tr");					
					_td_cat_elemento = document.createElement("td");
					_td_cat_elemento.style.paddingTop='4px';
					_td_cat_simbolo = document.createElement("td");
					_td_cat_simbolo.style.paddingTop='4px';
					simbolo = document.createElement("img");
					simbolo.id=id_elemento[x].firstChild.data;
					
					_td_cat_elemento.id="cat_"+id_elemento[x].firstChild.data;
					_objetivo = "";
									
					switch(arbol_categorias_modo)	// En que modo opera el árbol
					{
						case "admin": _objetivo = "\/admin\/categorias?id_elemento="+id_elemento[x].firstChild.data; break;
						case "sitio": _objetivo = '\/'+ruta[x].firstChild.data; break;	
					}
					_td_cat_elemento.innerHTML = '<a href="'+_objetivo+'"><span id="cat_'+id_elemento[x].firstChild.data+'_lbl">'+titulo[x].firstChild.data+'</span></a><br />'+hijos[x].firstChild.data+' Subcategorias';				
					
					if(hijos[x].firstChild.data == "0")
					{
						simbolo.src=p_simbolo[2].src;	// [ ]
						simbolo.alt = "vacio";
					}
					else
					{
						simbolo.src=p_simbolo[0].src;	// [+]
						simbolo.alt = "mas";
						simbolo.style.cursor = "pointer";
						
						// Acción al click
						simbolo.onclick = function()
						{			
							switch(this.alt)
							{
								case "mas": 
									arbol_categorias_cargar(this.id);
								break;
								
								case "menos":
									this.alt="mas";
									this.src=p_simbolo[0].src; // [+]
									document.getElementById("cat_"+this.id+"_hijos").innerHTML ="";
								break;
							}
						}
					}
					// Elementos hijos?				
					_tr_cat_elemento_hijos = document.createElement("tr");
					_td_cat_elemento_hijos = document.createElement("td");
					_td_cat_elemento_hijos.id = "cat_"+id_elemento[x].firstChild.data+"_hijos";					
					_td_cat_elemento_hijos.colSpan="2";
					_td_cat_elemento_hijos.style.paddingLeft="24px";
					_tr_cat_elemento_hijos.appendChild(_td_cat_elemento_hijos);
					
					_td_cat_simbolo.appendChild(simbolo);
					_tr_cat_elemento.appendChild(_td_cat_simbolo);
					_tr_cat_elemento.appendChild(_td_cat_elemento);
					
					c_categorias.appendChild(_tr_cat_elemento);
					c_categorias.appendChild(_tr_cat_elemento_hijos);
				}
			}
		}
	}
	);	
}

function arbol_categorias_extender(id_elemento)
{
	var intervalo = 1000;
	var incremento = 1000;
	var rama = 1;
	var params = 'id_elemento='+id_elemento;
	new Ajax.Request( '/categorias_xml' , 
	{
		method: 'get', parameters: params,	
 		onSuccess: function(transport) {
			if(transport.responseXML != null)
			{		
				var ajax_xml = transport.responseXML;
				var id_elemento_ruta = 	ajax_xml.getElementsByTagName("id_elemento");
				_max_prof = (id_elemento_ruta.length - 1);
				for(x=0; x<_max_prof; x++)
				{				
					setTimeout('arbol_categorias_cargar('+id_elemento_ruta[x].firstChild.data+')',intervalo);	// Abre la rama
					intervalo = (intervalo + incremento);			
				}
				intervalo = (intervalo + 250);
				// Marca el ultimo elemento (supuesto que se visita)
				setTimeout('arbol_categorias_marcar_elemento('+id_elemento_ruta[x].firstChild.data+')',intervalo);
			}
		}
	}
	);	
}

function arbol_categorias_marcar_elemento(id_elemento)
{
	_elemento = document.getElementById("cat_"+id_elemento+"_lbl");
	_elemento.style.background = "#fff67d";	
	_elemento.style.textDecoration="underline";
}
