// 06-marzo-2007
// js para APIJava

var arbolTOC = null;
var arregloPartes = null;
var verifica_parte = null;
var id_parte_cargada = '';
var id_nota_al_pie = '';   // para buscar la nota al pie desde una parte
var _navegar_norma_js_ = true;

function goToExportar(){
	var idNorma = document.getElementById("idNorma").value;
	var fechaVigencia = document.getElementById("idVersion").value;
	var selectNorma = idNorma+"."+fechaVigencia+".0.0";
	var form = document.createElement("form");

	form.setAttribute("action",parent.urlServidor+"/../Consulta/exportarLista");
	form.setAttribute("method","get");
	form.setAttribute("id","formExpDirectaNorma");

	var InputSelectNorma = document.createElement("input");
	InputSelectNorma.setAttribute("type","hidden");
	InputSelectNorma.setAttribute("value",selectNorma);
	InputSelectNorma.setAttribute("name",'selectNorma');
	InputSelectNorma.setAttribute("id",'selectNorma');
	
	document.body.appendChild(form);
	form.appendChild(InputSelectNorma);
	
	var obj = document.createElement("input");
	obj.setAttribute("type",'checkbox');
    obj.setAttribute('idnorma',idNorma);
	obj.setAttribute('fechavigencia',fechaVigencia);
	obj.setAttribute('idpartenorma','0');
	obj.setAttribute('idversionparte','0');
	obj.setAttribute('checked',true);
	
	EnviarAExportar(obj,'carritoNorma');
    recalcularCarro('carritoNorma');
	
	form.submit();
}

function detenerMoverMenuLateral(){
	if(__interval_move_div__ != -1){
		clearInterval(__interval_move_div__);
		__interval_move_div__ = -1;
	}
}
function reiniciarMoverMenuLateral(){
	return true;
	if (__interval_move_div__ == -1) {
		JSFX_FloatTopDiv();
	}
}
/**
 * objetoDeTextosCacheados se crea cuando se carga la pagina;
 */
/*
function creaJSONParaCache(){
	objetoDeTextosCacheados = new Object();
	var j =0;
	for (var i = 0; i < _totalNodosNavegar_; i++) {
		var parte = arregloPartes[i];
		var objTexto = parte[6];
		if (objTexto.estado == "completo" && objTexto.cargando==false) {
			objetoDeTextosCacheados[objTexto.getIdObjeto()] = objTexto.textoFinal;
		}
	}
	var txtJSON = JSON.stringify(objetoDeTextosCacheados);
	$('textareaCache').value  = txtJSON;
	$('idVersionCache').value = $('idVersion').value;
	$('idNormaCache').value   = $('idNorma').value;
	$('idParteCache').value   = "0";
	$('fullCache').value   	  = "True";
	$('formCache').submit();
}
var _DETENER_CACHEO_ = false;
function detenerCacheo(){
	_DETENER_CACHEO_ = true;
}
*/
function creaToc() {
    //Crear el TOC
    var url = document.getElementById('url').value;
	var xml = unescape(XML);
	
	XML = null; //esta variable ya no se usará más por lo que se libera la memoria
	var urlImg = document.getElementById('urlImg').value;
  	arbolTOC = new dTree('arbolTOC',urlImg); 

	arbolTOC.config.inOrder=true;
	arbolTOC.config.useLines=false;
	arbolTOC.config.useCookies=false;
	// Parsear la Norma
	var p = new ParseaNorma(xml);
	xml = null;
	try{
		p.parsea();
	}catch(e){
		if (e.indexOf('tiposVersion') > -1) {
			window.location.href = window.location.href;
		}
		else {
			alert(e);
		}
    }	
	arregloPartes = p.getArregloPartes();
	_totalNodosNavegar_ = arregloPartes.length;

	// Antes de generar el arbol seteamos el titulo principal
	if (_totalNodosNavegar_ > 0){
		var metadatosNorma = arregloPartes[0][2];
		setTituloNorma(metadatosNorma);
	}
	
	// Si navegamos a una parte entonces se carga esa parte
	// sino se carga la Norma completa
	var idParteSelect = window.parent.idParte;
    var parte_encontrada = false;
	var toExecutePost = 'void(0);';
	if (idParteSelect != '' && idParteSelect != '0') 
	{
        var parte = '';
		for(var i=0; i < _totalNodosNavegar_; i++){
			if (arregloPartes[i][3] == idParteSelect) {
                parte = arregloPartes[i][0];
                parte_encontrada = true;
				break;
			}
		}	
        if (parte!='') {
            toExecutePost = 'arbolTOC.openTo('+parte+', true);';
            cargaParte(parte);
        }
        else {
            parte_encontrada = false;
            alert("No se encontro la parte con id: "+idParteSelect+". Se cargara la Norma completa.")
        }
	}
	if (!parte_encontrada)
	{  
		cargaParte(arregloPartes[0][0]);
		toExecutePost = 'arbolTOC.s('+arregloPartes[0][0]+');';
	}


  	// Se genera el arbol de navegacion a la izquierda
	//setTimeout(function(){generaArbol(toExecutePost);},1);
	onEndCargaTexto = "generaArbol('"+toExecutePost+"');"
}

function generaArbol(toExecutePost) {
	/**Después de crear el árbol, hay que dejar seleccionado a los que ya estan en 
	 * el carrito
	 * Y mostrar en el campo del carro, la cantidad de documentos
	 */
	ArbolGen = new Arbol();
	ArbolGen.ejecutarOnEnd  = toExecutePost+"recalcularCarro('carritoNorma');";
	ArbolGen.intervalNumber = setInterval('ArbolGen.procesa();',getValorParametro(__time_inteval_creacion_arbol__));
}

function createXSLT() {
    var xslt = document.getElementById("xslt").value;
    var url = window.parent.url;
    
    var processor = new XSLTProcessor();
    var xslDoc = Sarissa.getDomDocument();
    xslDoc = (new DOMParser()).parseFromString(xslt, "text/xml");
    processor.importStylesheet(xslDoc);
    return processor;
} 

function posicionaScrollInicio(){
	window.scrollTo(0,0);
}

function workingSimple(){
	return $('tipo_navegacion_s').checked;
}

var prevPosTo = null;
function postToParte(id){
	var arr 	= arregloPartes[id];
	var idParte_= arr[3];
	var objRef  = $('ancla_parte_simple_'+idParte_);
	var pos 	= findPos(objRef);
	if (mostrarNotas()) {
		window.scrollTo(pos[0], pos[1] - 20);
		var objRefParent = objRef.parentNode;
		if (prevPosTo) {
			prevPosTo.style.backgroundColor = "";
		}

		objRefParent.style.backgroundColor = "#FFFFCC"; 
		prevPosTo = objRefParent;
	}else{
		var objRef  = $('ancla_parte_simple_sn'+idParte_);
		var next    = objRef.nextSibling;
		var pos 	= findPos(next);
		window.scrollTo(pos[0], pos[1] - 20);
		
		if (prevPosTo) {
			prevPosTo.style.backgroundColor = "";
		}
		next.style.backgroundColor = "#FFFFCC";
		prevPosTo = next;
	}
					
	return true;
}

var id_parte_cargada_s = 0;
var se_cargo_norma = false;
function cargaParte(id,desde) {
	
    id_parte_cargada = id;
	
	if(id > 0 && workingSimple() && se_cargo_norma){
		id_parte_cargada_s = id;
		se_cargo_norma = true;
		return postToParte(id);
	}
	
	if(!se_cargo_norma){
		id_parte_cargada_s = id;
	}
	
	se_cargo_norma = true;
	document.getElementById('mensaje_carga').innerHTML = "Cargando... espere un momento..."+getImagenCargando("");
	document.getElementById('mensaje_carga').style.display = "";
	cargaParte2(id, desde);
	setTimeout(function(){posicionaScrollInicio()},10);
	parent.construyePath();
}

var onEndCargaTexto = "void(0);";

function cargaParte2(id, desde){
    var url 		= window.parent.url;
    var idNorma 	= window.parent.idNorma;
    var idVersion 	= window.parent.idVersion;
    var buscar 	= window.parent.buscar;
    var arr 	= arregloPartes[id];
	var idParte = arr[3];
	var objTexto = arr[6];

    var iframe = document.getElementById("iframeContenido_norma");

	if (typeof(desde) == 'undefined') {
	    documentoCargado = false;
	    cargando_textoNorma = false;
	    CargarContenidoAjax(idNorma,idVersion,idParte,buscar,id);
	}else{
		if(desde == 'navSimple'){
			if(id_parte_cargada_s > 0){
				onEndCargaTexto = 'setTimeout("cargaParte('+id_parte_cargada_s+');",1000);';
			}else{
				onEndCargaTexto = 'void(0);';
			}
		}else{
			onEndCargaTexto = "void(0);";
		}
		parent.CambiaValoresParametrosInternos(idNorma,idVersion,idParte);

		parent.cargarVersionesAjax(idNorma,idVersion,idParte,id_parte_cargada);
		setTimeout(function(){
			parent.CargarLinkModificatoria(idNorma,idVersion,idParte);
		},100)

		setTimeout(function(){
			parent.CargarMetadatos(idNorma,idVersion,idParte);
		},500)
	
		setTimeout(function(){
			parent.CargarVinculaciones(idNorma,idVersion,idParte,id);
		},1000)

		setTimeout(function(){
			parent.CargarAlertas(idNorma,idVersion,idParte);
		},1500)

	}
    if(Interval_CompletarCargaTexto == -1)
    	Interval_CompletarCargaTexto = setInterval('CompletarCargaTexto()',500);    
} 

function setAsunto() {
	return;
    var metadato=arregloPartes[id_parte_cargada][2];
    var asunto = metadato.getTituloArbol();
    if (asunto=="") {
        asunto = "Sin Titulo";
    }
    doc = getIframeDoc();
    //alert("Pendiente: setAsunto (navegar_norma.js)");
    doc.getElementById('correoAsunto').value=asunto;
}
    
function construyePath() {
	if(ArbolGen.estado != "terminado"){
		setTimeout('construyePath();',1000);
		return;
	}
    var LARGO_PATH = 50;
	var LARGO_PARTE_PATH = 15;
    var nodo = id_parte_cargada;
    var arrPath = new Array();
    var arrAuxFullTitulo = new Array();
    var primer_titulo_full = false;
    while(nodo != -1) {
        for(var i=0; i<arbolTOC.aNodes.length; i++) 
        {
            if(arbolTOC.aNodes[i].id == nodo) 
            {
				var titulo_full = arregloPartes[i][2].getTituloArbol();
				if (primer_titulo_full === false){
					primer_titulo_full = titulo_full;
				}
				arrAuxFullTitulo.push(titulo_full);		
                var titulo = cortaPalabra(titulo_full, LARGO_PARTE_PATH);
                arrPath.push(titulo);
                nodo = arbolTOC.aNodes[i].pid;
            }
        }
    }
    arrPath.reverse();
    var stringPath = arrPath.join(' | ');
    if(stringPath.length > LARGO_PATH){
    	arrPath = generaPathConLimite(arrPath,LARGO_PATH,2);
    }
    	
    doc = getIframeDoc();
	var htmlPathArbol = "<span alt='"+primer_titulo_full+"' title='"+primer_titulo_full+"'>"+arrPath.join(' | ')+"</span>";
	try {
		doc.getElementById('pathArbol').innerHTML = htmlPathArbol;
		doc.getElementById('datosNormaOParteTitulo').innerHTML = arrAuxFullTitulo[0];
	} 
	catch (e) {
		setTimeout(function(){doc.getElementById('pathArbol').innerHTML = htmlPathArbol;},1000);
	}
}

/*
 * Los valores aceptados para ultimo_nodo, nodo son desde 1 hasta arrPath.length
 */
function generaPathConLimite(arrPath,LARGO_PATH,ultimo_nodo){
	if (ultimo_nodo > 0 && ultimo_nodo < arrPath.length) {
		arrPath[arrPath.length - ultimo_nodo] = "...";
	}
	else {
		var stringPath = arrPath.join(' | ');
		if (stringPath.length > LARGO_PATH) {
			return generaPathConLimite2(arrPath, LARGO_PATH, 2);
		}
		else {
			return arrPath
		}
	}
	var stringPath = arrPath.join(' | ');
    if(stringPath.length > LARGO_PATH){
    	return generaPathConLimite(arrPath,LARGO_PATH,ultimo_nodo+1);
    }else{
    	return arrPath
    }
}

function generaPathConLimite2(arrPath,LARGO_PATH,ultimo_nodo){
	arrPathOriginal = arrPath;
	var primero = arrPath.shift();
	var ultimo = arrPath.pop();
	
	if (ultimo_nodo > 0 && ultimo_nodo < (arrPath.length+2)) {
		arrPath.pop();
	}
	else {
		return arrPathOriginal;
	}
	arrPrimero = new Array();
	arrPrimero.push(primero);
	arrPrimero = arrPrimero.concat(arrPath);
	arrUltimo = new Array();
	arrUltimo.push(ultimo);
	arrPrimero = arrPrimero.concat(arrUltimo);
	arrPath = arrPrimero;
	var stringPath = arrPath.join(' | ');
    if(stringPath.length > LARGO_PATH){
    	return generaPathConLimite2(arrPath,LARGO_PATH,ultimo_nodo+1);
    }else{
    	return arrPath;
    }
}
function buscaIdParte(idparte) {
    var aux = false;
    var arregloPartes = parent.arregloPartes;
    for(var i=0; i < _totalNodosNavegar_; i++){
        if (arregloPartes[i][3] == idparte) {
            aux = true;
            arbolTOC.openTo(arregloPartes[i][0], false);
            arbolTOC.s(arregloPartes[i][0]);
            cargaParte(arregloPartes[i][0],'buscaIdParte');
			break;
        }
    }
    if (!aux) { alert("No se encuentra la parte."); }
}
var docIframe = null;
function getIframeDoc(){
	
	return window.document;
	//Se cambio la forma de cargar "contenido_norma"
	var iframe = document.getElementById("iframeContenido_norma");
	  if (iframe.contentDocument) {
	    // For NS6
	    docIframe = iframe.contentDocument; 
	  } else if (iframe.contentWindow) {
	    // For IE5.5 and IE6
	    docIframe = iframe.contentWindow.document;
	  } else if (iframe.document) {
	    // For IE5
	    docIframe = iframe.document;
	  } else {
	    return true;
	  }
	 return docIframe;
}
function cargaTexto(){
	var arr = arregloPartes[id_parte_cargada];
	var docIframe = getIframeDoc();
	div = docIframe.getElementById('norma_texto');
	textObj = arr[6];
	textObj.setWriterObj(div);
	textObj.iframe = docIframe;
	var percent = document.getElementById('porcentaje_carga');
	var mensaje = document.getElementById('mensaje_carga');
	textObj.setLabelPercent(percent);
	textObj.setDivMensaje(mensaje);
	
	__CACHE_CARGADO__ = false;
	__CACHE_CARGADO__C_NOTAS_ = false;
	
	if (id_parte_cargada == 0) {
		if (mostrarNotas(undefined, false)) {
			setTimeout(function(){
				obtenerTextosCacheados(idNorma, $F('idVersion_interna'), 0, "conNotas")
			}, 1);
		}
		else {
			setTimeout(function(){
				obtenerTextosCacheados(idNorma, $F('idVersion_interna'), 0)
			}, 1);
		}
	}
	else {
		
		if (mostrarNotas(undefined, false)) {
			setTimeout(function(){
				obtenerTextosCacheados(idNorma, $F('idVersion_interna'), arr[11], "conNotas")
			}, 1);
		}
		else {
			setTimeout(function(){
				obtenerTextosCacheados(idNorma, $F('idVersion_interna'), arr[11])
			}, 1);
		}
		/*
		
		 setTimeout(function(){
		
		 obtenerTextosCacheados(idNorma, arr[10], arr[11], "conNotas")
		
		 }, 1);*/
		
	}
	
	cargarEnIntervalos(textObj);
}

// Carga trozos de texto en intervalos de tiempo
textObj_anterior = null; // guarda el ultimo objeto Texto
function cargarEnIntervalos(textObj) {
	   var iframe = getIframeDoc();
	   if (textObj_anterior != null)
	       textObj_anterior.detenerCarga();
           
	   if(textObj.cargando==true) // Se ha cargado todo el texto, o esta ocupado
           return;
		   
	   if(mostrarNotas(undefined, false)){
		   if (!__CACHE_CARGADO__C_NOTAS_){
		   		setTimeout(function(){cargarEnIntervalos(textObj);},100);
				return;
		   }
	   }else{
		   if (!__CACHE_CARGADO__){
		   		setTimeout(function(){cargarEnIntervalos(textObj);},100);
				return;
		   }
	   }

		var SePuedeReusar = true;

		//Implementando el cacheo de textos con notas
			try {
				if(SePuedeReusar && mostrarNotas(undefined,false)){
					var id_item = creaIdItemCache($F('idNorma'),$F('idParte_interna'),$F('idVersion_interna'));
					var nombre  = "texto_con_notas";
					if (CacheClient.existe(id_item, nombre)) {
						document.getElementById('mensaje_carga').style.display = "none";
						document.getElementById('mensaje_carga').innerHTML = "";
						$('norma_texto').innerHTML = CacheClient.get(id_item, nombre);
						$('old_div').innerHTML = CacheClient.get(id_item, nombre);
						mostrarBusquedaCNotas();
						ordenarLasNotas('norma_texto');
						textObj.detenerCarga();
						textObj_anterior = null;
						
						if (cambiaronPreferencias() && textObj.TienePartesEliminadas) {
							muestra_partes_eliminadas();
						}
						
						try {
							eval(onEndCargaTexto);
						} 
						catch (e) {
						}
						parent.ajustarTam('norma','iframeContenido_norma');
						return true;
					}
					else {
						var idParteC  = $F('idParte_interna');
						if(!idParteC){
							idParteC = "0";
						}
						var Key = $F('idNorma') + "_" + idParteC + "_" + $F('idVersion_interna');
						if (objetoDeTextosCacheadosCNotas[Key]) {
							$('norma_texto').innerHTML = objetoDeTextosCacheadosCNotas[Key];
							$('old_div').innerHTML = objetoDeTextosCacheadosCNotas[Key];
							objetoDeTextosCacheadosCNotas[Key] = null;
							textObj.detenerCarga();
							textObj_anterior = null;
							
							if (cambiaronPreferencias() && textObj.TienePartesEliminadas) {
								muestra_partes_eliminadas();
							}
							
							try {
								eval(onEndCargaTexto);
							} 
							catch (e) {
							}

							cachearDivConNotasProcesadas($('norma_texto'), false);

							mostrarBusquedaCNotas();
							ordenarLasNotas('norma_texto');

							document.getElementById('mensaje_carga').style.display = "none";
							document.getElementById('mensaje_carga').innerHTML = "";

							parent.ajustarTam('norma','iframeContenido_norma');
							return true;
						}
					}
				}else if(SePuedeReusar && !mostrarNotas(undefined,false)){
					var id_item = creaIdItemCache($F('idNorma'),$F('idParte_interna'),$F('idVersion_interna'));
					var nombre  = "texto_sin_notas";
					if (CacheClient.existe(id_item, nombre)) {
						$('norma_texto_sin_notas').innerHTML = CacheClient.get(id_item, nombre);
						$('old_norma_texto_sin_notas').innerHTML = CacheClient.get(id_item, nombre);

						document.getElementById('mensaje_carga').style.display = "none";
						document.getElementById('mensaje_carga').innerHTML = "";

						document.getElementById('norma_texto').style.display = 'none';
						document.getElementById('norma_texto_sin_notas').style.display = 'block';
						
						if (parent.document.getElementById('buscar').value != '') {
							if (document.getElementById('ops_ver_marcas').value == "1") {
								parent.fnBuscarentexto_sin_notas(document.getElementById('buscar').value, 'norma_texto_sin_notas');
							}
						}
						
						textObj.detenerCarga();
						textObj_anterior = null;
						
						if (cambiaronPreferencias() && textObj.TienePartesEliminadas) {
							muestra_partes_eliminadas();
						}
						
						try {
							eval(onEndCargaTexto);
						} 
						catch (e) {
						}
						parent.ajustarTam('norma','iframeContenido_norma');
						return true;
					}
					
				}
			} catch (e) {
				alert("al implemetar el cache de textos con notas: "+e);
			}
			


		try{
			var textoCacheado = objetoDeTextosCacheados[textObj.getIdObjeto()]
			if(textoCacheado){
				textObj.estado = "completo";
				textObj.textoFinal = textoCacheado;
				textoCacheado = null;
				textObj.borrarNodosTextos();
				objetoDeTextosCacheados[textObj.getIdObjeto()] = false;
			}
		}catch(e){
			
		}
		
		if (textObj.estado == "completo") {
			if (SePuedeReusar) {
				respaldo_norma_texto = "";
				textObj.print("");
				parent.despliega_notas();
				parent.encuentra_nota_al_pie();
				document.getElementById('mensaje_carga').style.display = "none";
				document.getElementById('mensaje_carga').innerHTML = "";
				if (cambiaronPreferencias() && textObj.TienePartesEliminadas) {
					muestra_partes_eliminadas();
				}
				try{eval(onEndCargaTexto);}catch(e){}
				return;
			}
		}
         
       // Solo puede haber un proceso corriendo por nodo
       if (textObj.interval == -1) {
	   		detenerMoverMenuLateral();
       		textObj.indice_cuerpos = 0;
       		textObj.indice_cuerpo = 0;
       		textObj.cuerpos_cargados = 0;
       		textObj.textoFinal = "";
       		textObj.interval = setInterval('textObj.parsea()', getValorParametro(__time_interal_crear_texto__));
       }
       textObj_anterior = textObj;
}


function cargaMetadatos(indice) {
	
	var metadato = arregloPartes[indice][2];
 	parent.frames[2].document.getElementById('contenido_metadatos').innerHTML = metadato.metadatosHtml();
}

function cargaEnlaces() {
	var id 				= id_parte_cargada;
	var metadato		= arregloPartes[id][2];
	
	var cumple_ws_masivo= cumpleCriterioWs(metadato);
	var cumple_jurisprudencia=cumple_historia_ley=cumple_proyectos=cumple_doctrina=cumple_enlaces=cumple_otros_sistemas=false;

	for (var i = 0; i < cumple_ws_masivo.length; i++) {
		var n_enlace 		= cumple_ws_masivo[i][0];
		switch (n_enlace){
			case 'jurisprudencia': 	cumple_jurisprudencia = true;break;
			case 'historia_ley': 	cumple_historia_ley   = true;break;
			case 'proyectos': 		cumple_proyectos 	  = true;break;
			case 'otros_sistemas': 	cumple_otros_sistemas = true;break;
			case 'doctrina': 		cumple_doctrina 	  = true;break;
			default:break;
		}
	}

	//Enlaces a Historia de la Ley
	if (!cumple_historia_ley) {//Carga los enlaces sólo si no coincide con criterios de ws masivos.-
		var enlaces_hl = metadato.getEnlacesHL();
		__debe_mostrar_enlaces_hl__ = true;
	}else{
		var enlaces_hl = new Array();
	}

	//Enlaces a Otros Sistemas
	if (!cumple_otros_sistemas) {//Carga los enlaces sólo si no coincide con criterios de ws masivos.-
		var enlaces_os = metadato.getEnlacesOS();
		__debe_mostrar_enlaces_os__ = true;
	}else{
		var enlaces_os = new Array();
	}

	//Enlaces a Proyectos de Ley
	if (!cumple_proyectos) {//Carga los enlaces sólo si no coincide con criterios de ws masivos.-
		var enlaces_proy = metadato.getEnlacesProyectos();
		__debe_mostrar_enlaces_proy__ = true;
	}else{
		var enlaces_proy = new Array();
	}

	//Enlaces a Jurisprudencia
	if (!cumple_jurisprudencia) {//Carga los enlaces sólo si no coincide con criterios de ws masivos.-
		var enlaces_jur = metadato.getEnlacesJurisprudencia();
		__debe_mostrar_jurisprudencia__ = true;
	}else{
		var enlaces_jur = new Array();
	}

	//Enlaces a Doctrina
	if (!cumple_doctrina) {//Carga los enlaces sólo si no coincide con criterios de ws masivos.-
		var enlaces_doct = metadato.getEnlacesDoctrina();
		__debe_mostrar_doctrina__ = true;
	}else{
		var enlaces_doct = new Array();
	}
	
	enlaces_hl = enlaces_hl.join("</UL><br/><UL>");
	enlaces_hl = enlaces_hl!=""?"<UL>"+enlaces_hl+"</UL>":"";

	enlaces_proy = enlaces_proy.join("</UL><br/><UL>");
	enlaces_proy = enlaces_proy!=""?"<UL>"+enlaces_proy+"</UL>":"";

	enlaces_jur  = enlaces_jur.join("</UL><br/><UL>");
	enlaces_jur  = enlaces_jur!=""?"<UL>"+enlaces_jur+"</UL>":"";
	enlaces_doct = enlaces_doct.join("</UL><br/><UL>");
	enlaces_doct = enlaces_doct!=""?"<UL>"+enlaces_doct+"</UL>":"";
	
	enlaces_os = enlaces_os.join("</UL><br/><UL>");
	enlaces_os = enlaces_os!=""?"<UL>"+enlaces_os+"</UL>":"";
	
	var iframeDoc = getIframeDoc();
	iframeDoc.getElementById('historiaLey').innerHTML = enlaces_hl;
	if(enlaces_hl==""){
		if(iframeDoc.getElementById('info_historia').style.display=="block"){
			verInfo('info','texto');
			cambiaClase('item1');
		}
		iframeDoc.getElementById('item3').style.display = "none";
	}else{
		iframeDoc.getElementById('item3').style.display = "";
	}
	
	iframeDoc.getElementById('otrosSistemas').innerHTML = enlaces_os;
	
	
	if(enlaces_os==""){
		if(iframeDoc.getElementById('info_enlaces').style.display=="block"){
			verInfo('info','texto');
			cambiaClase('item1');
		}
		iframeDoc.getElementById('item5').style.display = "none";
	}else{
		iframeDoc.getElementById('item5').style.display = "";
	}
	iframeDoc.getElementById('ProyectosNorma').innerHTML = enlaces_proy;
	if(enlaces_proy==""){
		if(iframeDoc.getElementById('info_proyectos').style.display=="block"){
			verInfo('info','texto');
			cambiaClase('item1');
		}
		iframeDoc.getElementById('item4').style.display = "none";
	}else{
		iframeDoc.getElementById('item4').style.display = "";
	}

	iframeDoc.getElementById('boxJurisprudencia').innerHTML = enlaces_jur;
	if(enlaces_jur==""){
		if(iframeDoc.getElementById('info_jurisprudencia').style.display=="block"){
			verInfo('info','texto');
			cambiaClase('item1');
		}
		iframeDoc.getElementById('item8').style.display = "none";
	}else{
		iframeDoc.getElementById('item8').style.display = "";
	}
	
	iframeDoc.getElementById('boxDoctrina').innerHTML = enlaces_doct;
	if(enlaces_doct==""){
		if(iframeDoc.getElementById('info_doctrina').style.display=="block"){
			verInfo('info','texto');
			cambiaClase('item1');
		}
		iframeDoc.getElementById('item9').style.display = "none";
	}else{
		iframeDoc.getElementById('item9').style.display = "";
	}
	
	//Llamada a carga de enlaces vía Web Services Automáticos en wsMasivos.js
	//Carga todos los enlaces, de una pestaña, cuando coincide con criterios de ws masivos.
	setMetasNormasRefundidasPorEstaNormaAsync(metadato);
	cargaEnlacesWsAutomaticos(metadato);
}

function listarItems(arrElemento) {
	var res = "";
	if (arrElemento && arrElemento.lenght > 0) 
	{
		for(var i=0; i<arrElemento.lenght; i++) 
		{
			res+= '* '+ arrElemento[i] + '<br/>'; 
		}
	}
	else 
	{
		res = 'No Tiene';
	}
	return res;
}

var __USUARIO_PUEDE_VER_INTERMEDIAS__ = false;
var __INTERVAL_USUARIO_INTERMEDIA__ = -1;
var __TERMINO_AJAX_USUARIO_INTERMEDIA__ = false;
var __ID_VERSION_A__ = "strVigenteHastaEncabezado";


function revisarUsuarioIntermedias(){
	if(__TERMINO_AJAX_USUARIO_INTERMEDIA__){
		var divVersOriginal = document.getElementById(__ID_VERSION_A__);
		if (__USUARIO_PUEDE_VER_INTERMEDIAS__) {
			divVersOriginal.style.display = "";
		}else{
			divVersOriginal.style.display = "none";
		}
		clearInterval(__INTERVAL_USUARIO_INTERMEDIA__);
	}
	
}

function setTituloNorma(normaObj) {
	var titulo = "";
	
	var tipos_num = normaObj.getTiposNumeros();
	var strTiposNum = "";
	for(var i=0; i<tipos_num.length; i++) 
	{
		strTiposNum += tiposNorma.getItem(tipos_num[i][0]) + " " + tipos_num[i][1] + " <br />";
		
	}
	var strTitulo = normaObj.getTitulo();
	if (!strTitulo) {
		strTitulo = "Sin Titulo";
	}
	var strFecha = normaObj.getFechaPublicacion();
	if (!strFecha) {
		strFecha = "no tiene";
	}
	var strFechaPromulgacion = normaObj.getFechaPromulgacion();
	if (!strFechaPromulgacion) {
		strFechaPromulgacion = "no tiene";
	}
	var strVigenteDesde = normaObj.getVigenteDesde();
	if (strVigenteDesde == '2222-02-02') {
		var eventoInicio = normaObj.getEventoInicio();
	}else{
		var eventoInicio = "";
	}
	if (eventoInicio) {
		strVigenteDesde = eventoInicio;
	}else if(!strVigenteDesde){
		strVigenteDesde = "";
	}

	var tipoVersion = normaObj.getTipoVersion();
	var strVigenteHasta = normaObj.getVigenteHasta();
	if (!strVigenteHasta) {
		strVigenteHasta = "";
	}
	else {
	
		//Se valida si puede ver la Fecha "A" de la version Original
		var _versionOriginal = "Texto Original";//tiposVersion.getItem(0);// 0 Corresponde a la version original.
		var _versionIntermedia = "Intermedio";//tiposVersion.getItem(1);// 1 Corresponde a la version Intermedia.
		if (tipoVersion == _versionOriginal || tipoVersion == _versionIntermedia) {
			__INTERVAL_USUARIO_INTERMEDIA__ = setInterval("revisarUsuarioIntermedias()", 500);
		}
	}
	
	var strVersion = "";
	if (!normaObj.inicio_por_evento) {
	    strVersion = window.parent.idVersion;
	}
	
	    
	var organismos	= normaObj.getOrganismos();
	var strOrganismos	= organismos.join("; ");
	var	materias	= normaObj.getMaterias();
	if (materias.length ==0){
	    var strMaterias	= "Sin Materias";
	}else{
	    var strMaterias	= materias.join("; ");
	}    
	titulo = '<p id="tit_norma">'+strTitulo+'</p>';
	titulo += '<br><div id="spanEsCodigo" style="display:none;float:left;padding-left:10px;">(Texto no Oficial)</div>';
	document.getElementById('tituloNorma').innerHTML = titulo;
	
	checkInteroperabilidad();	
	
	if (!_activar_2_0_){
		titulo =  '<table class="encabezado">';
		titulo += '<tr>';
		titulo += '<td class="nombre"><span class="destacado">Norma: </span>'+strTiposNum+'</td>';
		titulo += '<td><span class="destacado">Versión: </span>'+tipoVersion+'</td>';
		if (strVigenteHasta != '') {
			titulo += '<td class="nombre"><span class="destacado">De: </span>'+fechaLegis(strVigenteDesde)+'';
			titulo += '<div id="'+__ID_VERSION_A__+'" style="display:none"><br /><span class="destacado">A : </span><span> ' + fechaLegis(strVigenteHasta) + '</span></td>';
		}else{
			titulo += '<td class="nombre"><span class="destacado">De: </span>'+fechaLegis(strVigenteDesde);
			titulo += '<div id="'+__ID_VERSION_A__+'" style="display:none"><br /><br /><span class="destacado">A : </span><span> ' + fechaLegis(strVigenteHasta) + '</span></td>';
		}
		titulo += '<td><span class="destacado">Fecha Publicación: </span>'+fechaLegis(strFecha)+'</td>';
		titulo += '<td class="nombre"><span class="destacado">Fecha Promulgación: </span>'+fechaLegis(strFechaPromulgacion)+'</td>';
		titulo += '</tr>';
		titulo += '<tr>';
		titulo += '<td colspan="5" class="altoOrganismo"><span class="destacado">Organismo: </span>'+strOrganismos+'</td>';
		titulo += '</tr>';
		titulo += '<tr>';
		titulo_ = '<td colspan="5" class="altoOrganismo"><span class="destacado">Materias: </span><span id="metas_Materias" onmouseout="onMouseOutTextoMetas(this)" onmouseover="onMouseOverTextoMetas(this)" valores="'+replace(JSON.stringify(materias),'"',"'")+'" alt="Materias de la Norma" title="Materias de la Norma">'+strMaterias+'</span></td>';
		titulo += titulo_;
		titulo += '</tr>';
		titulo += '</table>';
	}else{
		titulo =  '<table class="encabezado_aporte"><tr><td>';
		titulo +=  '<table>';
		titulo += '<tr>';
		titulo += '<td  colspan="2"><span class="destacado">Norma: </span>'+strTiposNum+'</td>';
		titulo += '</tr>';
		titulo += '<tr>';
		titulo += '<td><span class="destacado">Versión: </span>'+tipoVersion+'</td>';
		if (strVigenteHasta != '') {
			titulo += '<td ><span class="destacado">De: </span>'+fechaLegis(strVigenteDesde)+'';
			titulo += '<div id="'+__ID_VERSION_A__+'" style="display:none"><br /><span class="destacado">A : </span><span> ' + fechaLegis(strVigenteHasta) + '</span></td>';
		}else{
			titulo += '<td ><span class="destacado">De: </span>'+fechaLegis(strVigenteDesde);
			titulo += '<div id="'+__ID_VERSION_A__+'" style="display:none"><br /><br /><span class="destacado">A : </span><span> ' + fechaLegis(strVigenteHasta) + '</span></td>';
		}
		titulo += '</tr>';
		titulo += '<tr>';
		titulo += '<td colspan="2"><span class="destacado">Fecha Publicación: </span>'+fechaLegis(strFecha)+'</td>';
		titulo += '<tr>';
		titulo += '</tr>';
		titulo += '<td colspan="2"><span class="destacado">Fecha Promulgación: </span>'+fechaLegis(strFechaPromulgacion)+'</td>';
		titulo += '</tr>';
		titulo += '<tr>';
		titulo += '<td colspan="2"><span class="destacado">Organismo: </span>'+replace(strOrganismos,';','<br/>')+'</td>';
		titulo += '</tr>';
		titulo += '<tr>';
		titulo_ = '<td colspan="2"><span class="destacado">Materias: </span><span id="metas_Materias" onmouseout="onMouseOutTextoMetas(this)" onmouseover="onMouseOverTextoMetas(this)" valores="'+replace(JSON.stringify(materias),'"',"'")+'" alt="Materias de la Norma" title="Materias de la Norma">'+replace(strMaterias,';','<br />')+'</span></td>';
		titulo += titulo_;
		titulo += '</tr>';
		titulo += '</table>';
		titulo += '</td><td style="width:45%">';

		titulo += htmlDivHerramientas();
		
		titulo +=  '</td></tr></table>';
		$('AtributosNorma').style.border = '1px solid #DDDDDD';
	}
	document.getElementById('AtributosNorma').innerHTML = titulo;
	setAlertasNorma(normaObj);
	obtenerEsCodigo();

}

function setAlertasNorma(normaObj){
	 var idNorma = normaObj.getID();
	 var idVersion = normaObj.getVigenteDesde();
	 CargaAlertas(idNorma,'',idVersion,document.getElementById('AlertasNorma'));
}

CargaAlertas = function(idNorma, idParte, idVersion, div) {
	CargaAlertasJS(idNorma, idParte, idVersion, div);
	return true;
    var url = document.getElementById('url').value;
    
    this.successCA = function(req){
		var div = document.getElementById('AlertasNorma');
        div.innerHTML = req.responseText;
    };
	
    this.failureCA = function(){ 
    };
    
    var params = {
        method:'get',
        onSuccess: this.successCA, 
        onFailure: this.failureCA,
        parameters:  {idNorma: idNorma, idVersion: idVersion,idParte: idParte}
    };

    this.requestCA = new Ajax.Request(url + '/scripts/alertas', params);
}

function cortaPalabra(titulo, largo) {
	var tmp;
	if (titulo.length > largo) {
		// Buscar el ultimo espacio en blanco o salto de linea
		for(var i=largo; i>=0; i--) {
			tmp = titulo.substring(i-1,i);
			if (titulo.substring(i-1,i)=='\n' || titulo.substring(i-1,i)==' ') {
				titulo = titulo.substring(0, i) + "...";
				return titulo
			}
		}
	}
	return titulo;
}

function CompararNorma(idNorma,idParte,idVersion,idVersionContexto, revisarNormasGrandes){
	/**
	 * Traza
	 */
	TrazarCompararVersiones(idNorma,idParte,idVersion,idVersionContexto);
	
	if(typeof(revisarNormasGrandes)=='undefined'){
		revisarNormasGrandes = true;
	}
	if (revisarNormasGrandes) {
		var arrParte  	= getArregloByIdParte(idParte);
		var metadatos 	= arrParte[2];
		var idTipoParte = metadatos.getTipoParteID();
		
		if (!(idTipoParte in oc(["6", "10", "11"]))) {
			if (_totalNodosNavegar_ > sizeNormasGrandes) {//sizeNormasGrandes variable global definida en master.pt
				setMensajeNormasGrandes(idNorma, idParte, idVersion, '', idVersionContexto);
				return;
			}
		}
	}
	
	var form = document.createElement("form");
	form.setAttribute('id','Form_'+idNorma+idParte+idVersion);
	form.setAttribute('action',urlServidor+'/../Navegar/controlCambios');
	form.setAttribute('method','get');
	
	var InputidNorma = document.createElement("input");
	InputidNorma.setAttribute('type','hidden');
	InputidNorma.setAttribute('value',idNorma);
	InputidNorma.setAttribute('name','idNorma');
	form.appendChild(InputidNorma);
	
	var InputidParte = document.createElement("input");
	InputidParte.setAttribute('type','hidden');
	InputidParte.setAttribute('value',idParte);
	InputidParte.setAttribute('name','idParte');
	form.appendChild(InputidParte);
	
	var InputidVersion = document.createElement("input");
	InputidVersion.setAttribute('type','hidden');
	InputidVersion.setAttribute('value',idVersion);
	InputidVersion.setAttribute('name','idVersion');
	form.appendChild(InputidVersion);

	var InputidVersionContexto = document.createElement("input");
	InputidVersionContexto.setAttribute('type','hidden');
	InputidVersionContexto.setAttribute('value',idVersionContexto);
	InputidVersionContexto.setAttribute('name','idVersionContexto');
	form.appendChild(InputidVersionContexto);
	
	document.body.appendChild(form);
	//Se da 1/2 segundo para que alcance a enviar la traza
	setTimeout(function(){form.submit();},500);
}

cargarVersionesJs = function(){

	var mensajeAbierto = false;
	if (document.getElementById('mensaje_carga').style.display != "") {
		document.getElementById('mensaje_carga').innerHTML = "Cargando... espere un momento..." + getImagenCargando("");
		document.getElementById('mensaje_carga').style.display = "";
		mensajeAbierto = true;
	}

	var idParte 	= $F('idParte_interna');
	var idVersion 	= $F('idVersion_interna');
	
	var arrParte 	= getArregloByIdParte(idParte);
	if(!arrParte){
		alert("No se ha encontrado la parte con ID = "+idParte)
		return false;
	}
	
	var fechasVigencias  = "";
	var fechasFinVigencia= "";
	var metadatos 		 = arrParte[2];
	var attributos 		 = metadatos.getAtributos();
	var idTipoParte  	 = metadatos.getTipoParteID();
	var movido_de		 = metadatos.movido_de();
	var movido_a		 = metadatos.movido_a();
	
	/**************************************************
	 * Deteccion de Textos Refundidos o Modificaciones
	 **************************************************/
	var cantidades 		 = metadatos.getCantidadesVinculaciones();
	var texto_refundido  = "";
	for (var i = 0; i < cantidades.length; i++) {
		if(cantidades[i].tipo == "TEXTO REFUNDIDO" ||cantidades[i].tipo == "MODIFICACION"){
			texto_refundido  += cantidades[i].tipo;
		}
	}
	
	/***********************************
	 * Deteccion de si es agrupador o no
	 ***********************************/
	if(!(idTipoParte in oc(["0","170","6","10","11"]))){
		var listaIdsVinc  	= metadatos.getListaIdsVinc();
		listaIdsVinc 		= listaIdsVinc.join(",");
	}else{
		listaIdsVinc		= "";	
	}

	/***********************************
	 * Obtencion de Vigencias
	 ***********************************/
	var vigencias 		= metadatos.getVigencias(idVersion);
	
	/***********************************
	 * Deteccion de movido a
	 ***********************************/
	if(movido_a){
		var datosMovidoA = ObtenerFechaVersionMovidoA(movido_a, idParte);
		if (!datosMovidoA[1]){
			datosMovidoA[1] = fechaLegis(datosMovidoA[0]);
		}
		var vig = { 'desde':			'movido_a',
					'hasta':			'',
					'id_parte':			movido_a,
					'tipoVersionStr':	'Movido a',
					'misma_version': 	false,
					'movido': 			true,
					'fechaMovido': 		datosMovidoA[0],
					'desdeStr': 		datosMovidoA[1],
					'hastaStr': 		''};
		vigencias.push(vig);
	}
	vigencias.reverse();
	
	/***********************************
	 * Deteccion de movido de
	 ***********************************/
	if(movido_de){
		var datosMovidoDe = ObtenerFechaVersionMovidoDe(movido_de, idParte);
		if (!datosMovidoDe[1]){
			datosMovidoDe[1] = fechaLegis(datosMovidoDe[0]);
		}
		var vig = { 'desde':			'movido_de',
					'hasta':			'',
					'id_parte':			movido_de,
					'tipoVersionStr':	'Movido de',
					'misma_version': 	false,
					'movido': 			true,
					'fechaMovido': 		datosMovidoDe[0],
					'desdeStr': 		datosMovidoDe[1],
					'hastaStr': 		''};
		vigencias.push(vig);	
	}
	
	var strHTML = '<div>';
	strHTML += '<table style="width:100%">';
	strHTML += '	  <tr class="encabezados">';
	strHTML += '	    <td style="width:15%">Tipo Versión</td>';
	strHTML += '		<td align="center" style="display:none" name="fechaDerogacion">Fecha Derogación</td>';
	strHTML += '	    <td style="width:15%">De</td>';
	strHTML += '	    <td style="width:15%">A</td>';
	strHTML += '	    <td>Vinculaciones</td>';
	strHTML += '	    <td style="width:25%" class="sinborde">Comparar Versiones</td>';
	//bucle
	for (var i = 0; i < vigencias.length; i++) {
		var vigencia = vigencias[i];
		fechasVigencias  += vigencia.desde+"||";
		
		if (!vigencia.movido) {
			fechasFinVigencia += vigencia.hasta + "||";
		}
		else {
			if (vigencia.desde == "movido_a") {
				fechasFinVigencia 	 += "||";
				if (!vigencias[i + 1].hasta && vigencia.fechaMovido) {
					vigencias[i + 1].hasta = vigencia.fechaMovido;
				}
			}else{
				fechasFinVigencia += vigencias[i-1].desde + "||";
			}
		}
		
		strHTML += '	  </tr>';

		for (var j = 0; j < 10; j++) {
			/***********************************
			 * Filas para los Refundido por
			 ***********************************/
			strHTML += '      <tr id="tr_refundido_por_'+j+'" style="display:none" class="datosVersiones" bgcolor="#FFFFFF">';
			strHTML += '      	  <td id="td_refundido_por_tipo_'+j+'" style="text-align:left"></td>';
			strHTML += '		  <td style="display:none" name="fechaDerogacion" style="text-align:left"></td>';
			strHTML += '          <td id="td_refundido_por_ini_v_'+j+'"></td>';
			strHTML += '          <td></td>';
			strHTML += '          <td id="td_refundido_por_vinc_'+j+'"></td>';
			strHTML += '          <td></td>';
			strHTML += '	  </tr>';
		}
		if (vigencia.misma_version) {
			strHTML += '        <tr class="datosVersiones" bgcolor="#CCCCCC">';
		}
		else {
			strHTML += '        <tr class="datosVersiones" bgcolor="#FFFFFF">';
		}
		strHTML += '      	  <td style="text-align:left">';
		if (vigencia.misma_version) {
			strHTML += '      	    	<blink>' + vigencia.tipoVersionStr + '</blink>';
		}else if (vigencia.movido){
			strHTML += '<a href="javascript:NavegarNorma(\''+idNorma+'\',\''+vigencia.id_parte+'\',\''+vigencia.fechaMovido+'\');">'+vigencia.tipoVersionStr+'</a>';
		}else{
			strHTML += '<a href="javascript:NavegarNorma(\''+idNorma+'\',\''+idParte+'\',\''+vigencia.desde+'\',\'\',true,\'\','+vigencia.tipo_version+');">'+vigencia.tipoVersionStr+'</a>';
		}
		strHTML += '          </td>';
		strHTML += '		  <td style="display:none" name="fechaDerogacion" style="text-align:left">';
		strHTML += '           	Fecha Derogación';
		strHTML += '          </td>';
		strHTML += '          <td>';
		strHTML += '           	'+vigencia.desdeStr;
		strHTML += '          </td>';
		strHTML += '          <td>';
		strHTML += '           	'+vigencia.hastaStr;
		strHTML += '          </td>';
		strHTML += '          <td>';
		strHTML += '		  <span id="vinc_vers_'+vigencia.desde+'">'+getImagenCargandoGris('')+'</span>';
		strHTML += '		  </td>';
		strHTML += '          <td>';
		
		if (!vigencia.misma_version && !vigencia.movido) {
			strHTML += '          	<a href="javascript:window.parent.CompararNorma(\'' + idNorma + '\',\'' + idParte + '\',\'' + idVersion + '\',\'' + vigencia.desde + '\');">[Comparar]</a>';
		}else{
			strHTML += '';
		}
		strHTML += '          </td>';
		strHTML += '        </tr>';
	}

		for (var j = 0; j < 10; j++) {
		
			/***********************************
			 * Fila para los Refunde a
			 ***********************************/
			strHTML += '      <tr id="tr_refunde_a_'+j+'" style="display:none" class="datosVersiones" bgcolor="#FFFFFF">';
			strHTML += '      	  <td id="td_refunde_a_tipo_'+j+'" style="text-align:left"></td>';
			strHTML += '		  <td style="display:none" name="fechaDerogacion" style="text-align:left"></td>';
			strHTML += '          <td id="td_refunde_a_ini_v_'+j+'"></td>';
			strHTML += '          <td></td>';
			strHTML += '          <td id="td_refunde_a_vinc_'+j+'"></td>';
			strHTML += '          <td></td>';
			strHTML += '	  </tr>';
		}

	//bucle
	strHTML += ' </table>';
	strHTML += '</div>';

 	document.getElementById('box_versiones').innerHTML = strHTML;
	
	FnMostrarFechaDerogacion("false");
	
	cargaVinculacionesVersionesAjax(idNorma, idParte, fechasVigencias, listaIdsVinc, fechasFinVigencia, mensajeAbierto, movido_a, movido_de, texto_refundido);
	ajustarTam('norma','iframeContenido_norma');
}
cargaVinculacionesJS = function(){
	var idParte 	= $F('idParte_interna');
	var idVersion 	= $F('idVersion_interna');
	
	var arrParte 	= getArregloByIdParte(idParte);
	if (!arrParte) {
		alert("No se ha encontrado la parte con ID = " + idParte)
		return false;
	}
	
	var metadatos 	= arrParte[2];
	var cantidades 	= metadatos.getCantidadesVinculaciones();
	var tipoParte  	= metadatos.getTipoParteID();
	
	var strHtml = '<table id="table_vincs_box_vincs" onmouseout="onMouseOutDiv20Vincs(this)" onmouseover="onMouseOverTextoVincs(this,\''+idParte+'\')" style="font-size:8pt;margin-bottom:2px;" border="0" cellspacing="2">';
	strHtml += '	<tr>';
	
	for (var i = 0; i < cantidades.length; i++) {
		strHtml += '		<td>';
		strHtml += '			<a href="javascript:NavegarVinculaciones(\'' + idNorma + '\',\'' + idParte + '\',\'' + cantidades[i].tipo + '\',\'' + idVersion + '\',\'' + tipoParte + '\');">[' + cantidades[i].tipo + ']</a>';
		strHtml += '		</td>';
	}
	
	if (cantidades.length == 0) {
		strHtml += '		<td>';
		strHtml += '			No se encontraron vinculaciones';
		strHtml += '		</td>';
	}
	strHtml += '	</tr>';
	strHtml += '</table>';

	document.getElementById('box_vinculaciones').innerHTML   = strHtml;
	document.getElementById('box_vinculaciones2').innerHTML  = strHtml;
}

function getArregloByIdParte(idParte){
	for (var i=0;i<_totalNodosNavegar_;i++){
		var arr = arregloPartes[i];
		if(arr[3] == idParte){
			return arr;
		}
	}
	return null;
}

function setearVinculacionesVersiones(strRes){
	strRes = strRes.substr(strRes.indexOf("</head>")+"</head>".length+1);
	var False = false;
	var None  = null;
	var resultado 	= eval("("+strRes+")");
	var lista 		= resultado.versiones;
	var refundidos 	= resultado.refundidos;
	
	for (var i = 0; i < lista.length; i++) {
		var version = lista[i];
		var fecha = version.fecha;
		var strHML = "";
		for (var j = 0; j < version.vinculaciones.length; j++) {
			var v = version.vinculaciones[j];
			var accion = "Modificada";
			if (v["claseVinculacion"] == "RECTIFICACION") {
				accion = "Rectificada";
			}
			
			if (!(v['idNorma'] in oc([0, '']))) {
				var href = "javascript:window.parent.RegistrarNevegarNorma(6,'" + v['idNorma'] + "','" + v['idVersion'] + "',14,'" + v['idParte'] + "','" + v['idVersion'] + "');";
				href += "window.parent.NavegarNorma('" + v['idNorma'] + "','" + v['idParte'] + "','" + v['idVersion'] + "',buscar);";
				strHML += '<a href="' + href + '">' + accion + ' por: ' + v['tiposNumeros'] + ' ' + v["organismos"] + ' ' + v["fechaPublicacion"] + '</a><br/>';
			}
			else {
				if (v['tiposNumeros']) {
					strHML += '<span title="En proceso de migración">' + accion + ' por: ' + v['tiposNumeros'] + ' ' + v["organismos"] + ' ' + v["fechaPublicacion"] + '</span><br/>';
				}
				else {
				//strHML += '<span>' + v['operacionVinculacion'] + ' </span><br/>';
				}
			}
			
		}
		try {
			document.getElementById("vinc_vers_" + fecha).innerHTML = strHML;
		}catch(e){
			break;
		}
	}
	
	for (var i = 0; i < refundidos.length; i++) {
		var refundido = refundidos[i];
		var id_tr 	  = "";
		var id_td1	  = "";		
		var id_td2	  = "";
		var id_td3	  = "";
		
		if(refundido.tipoVersion == "Refundido por"){
			id_tr 	  = "tr_refundido_por_"+i;
			id_td1 	  = "td_refundido_por_ini_v_"+i;
			id_td2 	  = "td_refundido_por_vinc_"+i;
			id_td3 	  = "td_refundido_por_tipo_"+i;
		}else{
			id_tr 	  = "tr_refunde_a_"+i;
			id_td1 	  = "td_refunde_a_ini_v_"+i;
			id_td2 	  = "td_refunde_a_vinc_"+i;
			id_td3 	  = "td_refunde_a_tipo_"+i;
		}
		
		var tr 	= $(id_tr);
		var td1 = $(id_td1);
		var td2 = $(id_td2);
		var td3 = $(id_td3);
		
		tr.style.display = "";
		//td1.innerHTML 	 = refundido.inicioVigenciaMesStr;
		var vi = replace(refundido.linkRefundido,"|!|","<");
		vi 	   = replace(vi,"|!!|",">");

		td3.innerHTML 	 = vi;
		
		for (var j = 0; j < refundido.vinculaciones.length; j++) {
			var vi = replace(refundido.vinculaciones[j].vinculacion,"|!|","<");
			vi 	   = replace(vi,"|!!|",">");
			td2.innerHTML = td2.innerHTML + vi + "<br/>";
		}
				
	}
	ajustarTam('norma','iframeContenido_norma');
}

CargaAlertasJS = function (idNorma, idParte, idVersion, div){
	var arrParte = getArregloByIdParte(idParte);
	if (!arrParte) {
		alert("No se ha encontrado la parte con ID = " + idParte)
		return false;
	}

	var metadatos 	= arrParte[2];
	var alertasHTML = metadatos.getAlertasHTML();
	div.innerHTML 	= alertasHTML;
}

CargaAlertasNivelParteJS = function (idNorma, idParte, idVersion){
	var div = document.getElementById("box_alertas");
	var arrParte = getArregloByIdParte(idParte);
	if (!arrParte) {
		alert("No se ha encontrado la parte con ID = " + idParte)
		return false;
	}

	var metadatos 	= arrParte[2];
	var alertasHTML = metadatos.getAlertasHTMLNivelParte();
	div.innerHTML 	= alertasHTML;
};


cargarMetadatosJS = function(){
	return true;
	var idParte 	= $F('idParte_interna');
	var idVersion 	= $F('idVersion_interna');
	var arrParte 	= getArregloByIdParte(idParte);
	if (!arrParte) {
		alert("No se ha encontrado la parte con ID = " + idParte)
		return false;
	}
	
	var metadatos 	= arrParte[2];
	var metasHTML 	= metadatos.metadatosHtml();
	document.getElementById('_box_metadatos_').innerHTML = metasHTML;
	ajustarTam('norma','iframeContenido_norma');
};

function setCookieSimpleAvanzada (value){
	setCookie( 'cookieNavSimpleAvanzada', value, '', '/', '', '' );
}
function setNavegacionSegunCookie(){
	return true;
	var valor = getCookie('cookieNavSimpleAvanzada');
	if(!valor || $('tipo_navegacion_a').checked){
		return;
	}
	if(valor.indexOf("avanzada") > -1){
		$('tipo_navegacion_a').checked = true;
	}else if(valor.indexOf("simple") > -1){
		$('tipo_navegacion_s').checked = true;
	}
}

function registrarTrazaNavegarExterno(){
	var registrarTraza = $('registrarTraza').value;
	try{
		var tmp = parseInt(idNorma);
		if(!tmp){
			registrarTraza = "False";
		}
	}catch(e){
		registrarTraza = "False";
	}
	if (registrarTraza != "False") {
		if (registrarTraza) {
			var consulta = "HTTP_REFERER(" + registrarTraza + ")";
		}else{
			var consulta = "";
		}
		if (idParte) {
			RegistrarNevegarNorma(6, idNorma, idVersion, -1, idParte, idVersion, consulta);
		}else{
			RegistrarNevegarNorma(6, idNorma, idVersion, -1, 0, 0, consulta);
		}
	}
}

function muestraWS(nombre, url){
	id_input_carga = 'input_'+nombre;
	if (document.getElementById(nombre).style.display == 'block'){
		document.getElementById(nombre).style.display = 'None';
		ajustarTam('norma','iframeContenido_norma');
	}
	else {
		document.getElementById(nombre).style.display = 'block';
		if (document.getElementById(id_input_carga).value != 'cargado') {
			cargaWebServicesAjax(nombre, url);
		}else{
			ajustarTam('norma','iframeContenido_norma');
		}
	}
}

function exportarNorma(formato){
	var d = document;
	var radioExportar = d.createElement("input");
	var exportar_formato = d.createElement("input");
	var nombrearchivo = d.createElement("input");
	var exportar_con_notas_bcn = d.createElement("input");
    var exportar_con_notas_originales = d.createElement("input");
    var exportar_con_notas_al_pie = d.createElement("input");
	var hddResultadoExportar = d.createElement("input");
	var f = d.createElement("form");
	
	radioExportar.setAttribute("name","radioExportar");
	exportar_formato.setAttribute("name","exportar_formato");
	nombrearchivo.setAttribute("name","nombrearchivo");
	exportar_con_notas_bcn.setAttribute("name","exportar_con_notas_bcn");
    exportar_con_notas_originales.setAttribute("name","exportar_con_notas_originales");
    exportar_con_notas_al_pie.setAttribute("name","exportar_con_notas_al_pie");
	hddResultadoExportar.setAttribute("name","hddResultadoExportar");
	
	radioExportar.value = "Normas";
	exportar_formato.value = formato;
	
	var metasNorma = arregloPartes[0][2];
	
	nombrearchivo.value = metasNorma.nombreArchivoDescarga();
	
	exportar_con_notas_bcn.value = $('ops_ver_notas_bcn').checked?"True":"";
    exportar_con_notas_originales.value = $('ops_ver_notas_originales').checked?"True":"";;
    exportar_con_notas_al_pie.value = $('ops_ver_notas_al_pie').checked?"True":"";;
    
	hddResultadoExportar.value = idNorma+"."+idVersion+".0.0#";

	f.setAttribute("action",urlServidor+"/../Consulta/Exportar")
	f.setAttribute("method","get");
	f.setAttribute("target","_blank");
	f.style.display="none";
	d.body.appendChild(f);
	
	f.appendChild(radioExportar);
	f.appendChild(exportar_formato);
	f.appendChild(nombrearchivo);
	f.appendChild(exportar_con_notas_bcn);
	f.appendChild(exportar_con_notas_originales);
	f.appendChild(exportar_con_notas_al_pie);
	f.appendChild(hddResultadoExportar);
	
	/* Se utiliza esta funcion para registrar la traza porque ocupa los mismos parametros
	 * El evento trazado es "Exportar desde Navegar"  (Modulo Navegar = 14)
	 */
	RegistrarNevegarNorma(59,idNorma,idVersion,14,0,0,'');

	f.submit();
}

function obtenerEsCodigo(){
	obtenerEsCodigoONo(idNorma);
}
function revisarModificarPDFEnTitulo(){
	if(__total_archivos_pdf__ != 1){
		return;
	}
	if(__tiene_estructuras_func__){
		return;
	}
	if(!__last_href_archivo_pdf){
		return;
	}
	$('bot_exp_norma_pdf').setAttribute('href',__last_href_archivo_pdf);
	
}
/**
 * Para exportar los listados de proyectos asociados a una norma.
 * @param {Object} formato
 */
function exportarProyectos(formato){
	var idNorma 	= $F('idNorma_interna');
	var idVersion 	= $F('idVersion_interna');
	var idParte 	= $F('idParte_interna');
	var url 		= urlServidor+"/../Consulta/script/exportarProyectos?idNorma="+idNorma+"&idParte="+idParte+"&idVersion="+idVersion+"&formato="+formato;
	var opened  	= window.open(url);
}
function getElementsByNameNav(obj, name){
	var lista = [];
	for (var i = 0; i < obj.childNodes.length; i++) {
		if (obj.childNodes[i].getAttribute) {
			if (obj.childNodes[i].getAttribute('name') == name) {
				lista.push(obj.childNodes[i]);
			}
			else {
				var n_lista = getElementsByNameNav(obj.childNodes[i], name);
				for (var j = 0; j < n_lista.length; j++) {
					lista.push(n_lista[j]);
				}
			}
		}
	}
	return lista;
}
function showThisAnioWs(anio){
	var trs = getElementsByNameNav($('boxJurisprudencia'), 'tr_' + anio);
	for (var i = 0; i < trs.length; i++) {
		var tr = trs[i];
		if (tr.style.display == "none") {
			tr.style.display = "";
		}
		else {
			tr.style.display = "none";
		}
	}
	ajustarTam('norma', 'iframeContenido_norma');
}
//EOF
