var _Arbol_js_ = true;
Arbol = function(){
	this.procesando  		= false;
	this.ultimo_i    		= 0;
	this.itersPorVez 		= getValorParametro(__nodos_por_vez__);
	this.totalIteraciones 	= 0;
	this.intervalNumber		= -1;
	this.estado 			= "inicial";
	this.ejecutarOnEnd		= "void(0);";
	this.dtree				= $('dtree');
	this.dtreeMsg	        = $('dtreeMsg');
	this._idVersionNorma 	= 0;
	try{
		this.total_partes		= _totalNodosNavegar_;
	}catch(e){
		this.total_partes		= 0;
	}
	this.procesa = function (){
		if(this.procesando){
			return false;
		}
		
		//detenerMoverMenuLateral();
		this.procesando = true;
		var iteraciones = 0;
		
		for(var i = this.ultimo_i; (i < this.total_partes && iteraciones < this.itersPorVez); i++){
			this.ultimo_i = i + 1;
			var arr = arregloPartes[i];
			var id = arr[0];
			var pid = arr[1];
			
	        // Tomar el titulo que llevara el nodo
			var metadatos = arr[2];
			var titulo = metadatos.getTituloArbol();
	        var titulo2 = cortaPalabra(titulo, 100);
			var idParte = arr[3];
			var tiene_hijos = arr[4];
			var es_ultimo = arr[5];
	        // el arr[i][6] es el nodo texto
	        var eliminada = arr[7];
			var visible = arr[8];

	        if(eliminada && !$('ops_ver_partes_eliminadas').checked){
				visible = false;
			}else if(eliminada && $('ops_ver_partes_eliminadas').checked){
				visible = true;	
			}
	        
			//arr[i][12] es el tagName del nodo
			var _idParte = "0";
			var _idVersion = "";
			var _idVersionParte = "";
			var _iniVigParte    = "";
			if(arr[12]=="NORMA"){
				this._idVersionNorma = $F('idVersion');
				_idVersion = arr[10];
				_idVersionParte = 0;
				_iniVigParte    = 0;
			}else{
				_idVersion = this._idVersionNorma;
				_idVersionParte = arr[13];
				_iniVigParte = arr[10];
				_idParte = arr[11];	
			}
			var _idNorma = arr[9];
			var _value_ = _idNorma+"."+_idVersion+"."+_idParte+"."+_idVersionParte+"."+_iniVigParte;

			var urlImg = document.getElementById('urlImg').value;
			var titulotemp = titulo;
			var tituloGrande = titulotemp.toUpperCase();
			if (tituloGrande == "ENCABEZADO") {
				arbolTOC.add(id, pid, titulo2, 'javascript:cargaParte(' + id + ',\'A\');R(\''+_idNorma+'\',\''+_idVersion+'\',\''+_idParte+'\',\''+_idVersionParte+'\','+14+');', idParte, titulo, tiene_hijos, es_ultimo, eliminada, visible, _value_,'' ,urlImg + 'img/ico_encabezado_ley.jpg');
			}
			else {
				if (tituloGrande == "PROMULGACION") {
					arbolTOC.add(id, pid, titulo2, 'javascript:cargaParte(' + id + ',\'A\');R(\''+_idNorma+'\',\''+_idVersion+'\',\''+_idParte+'\',\''+_idVersionParte+'\','+14+');', idParte, titulo, tiene_hijos, es_ultimo, eliminada, visible, _value_, '', urlImg + 'img/ico_promulgacion_ley.jpg');
				}
				else {
					//fin del codigo de prueba
					arbolTOC.add(id, pid, titulo2, 'javascript:cargaParte(' + id + ',\'A\');R(\''+_idNorma+'\',\''+_idVersion+'\',\''+_idParte+'\',\''+_idVersionParte+'\','+14+');', idParte, titulo, tiene_hijos, es_ultimo, eliminada, visible, _value_);
				}
			}
			
			iteraciones++;
			this.totalIteraciones++;
		}
		
		//reiniciarMoverMenuLateral();
		
		if(this.totalIteraciones >= this.total_partes){
			this.terminar();
		}else{
			if(ClaseNotas.estado == "terminado"){
				this.itersPorVez = 99999;
			}
			this.mostrarAvance();
		}
		this.procesando = false;
	};
	
	this.show = function(){
		try{
			this.dtree.innerHTML = "";
			var strArbol = arbolTOC.toHTMLIE('dtree');
			startIntervalDibujoArbol();
		}catch(e){
			alert(e);
		}
	}

	this.mostrarAvance = function(){
		var porc = parseInt((this.totalIteraciones*100)/this.total_partes)+"%";
		this.dtreeMsg.innerHTML  = "Cargando Arbol("+porc+")";
	}

	this.terminar = function(){
		clearInterval(this.intervalNumber);
		this.intervalNumber = -1;
		this.procesando = false;
		this.estado = "terminado";

		this.show();
		//this.dtreeMsg.style.display = "none";
		eval(this.ejecutarOnEnd);
	}
	
};

addChildRecusive = function(padre, hijos){
	var total = hijos.childNodes.length;
	for (var i = 0; i < total; i++) {
		padre.appendChild(hijos.childNodes[i]);
	}
}
function removeChildNodes(ctrl)
{
  while (ctrl.childNodes[0])
  {
    ctrl.removeChild(ctrl.childNodes[0]);
  }
}


function startIntervalDibujoArbol(){
	$('dtreeMsg').innerHTML = "Construyendo Arbol <span class='cargandoGris'>&nbsp;</span>";
	if (arbolTOC.ejecuta_posterior.length > 0) {
		var toEval = arbolTOC.ejecuta_posterior.shift();
		eval(toEval);
		setTimeout("startIntervalDibujoArbol()", getValorParametro(__factor_creacion_arbol__));
	}else{
		arbolTOC.estado = "terminado";
		$('dtreeMsg').style.display = "none";
		eval(ArbolGen.ejecutarOnEnd);
	}
}

ArbolGen = new Arbol();
