var _wsMasivos_js1_ = true;
function getValorParametroWsAutomatico(campo, metadato){
	/**
	 * Excepcion agregada para ws automáticos de normas refundidas
	 */
	if (typeof metadato.es_simulado != 'undefined') {
		try {
			return metadato[campo];
		}catch(e){
			return "";
		}
	}
	else {
		switch (campo) {
			case 'numero_norma':
				return metadato.getTiposNumeros()[0][1];
				break;
			case 'nro_norma':
				return metadato.getTiposNumeros()[0][1];
				break;
			case 'organismo':
				return metadato.getOrganismos()[0];
				break;
			case 'organismos':
				return metadato.getOrganismos().join(";");
				break;
			default:
				return "";
				break;
		}
	}
}

function cargaEnlacesWsAutomaticos(metadato){
	if (__BUSCANDO_NORMAS_REFUNDIDAS__){
		setTimeout(function(){
			cargaEnlacesWsAutomaticos(metadato);
		},200);
		return true;
	}
	if(typeof __CRITERIOS_WS__['jurisprudencia'] == 'undefined'){
		setTimeout(function(){
			cargaEnlacesWsAutomaticos(metadato);
		},200);
		return true;
	}
	var cumple_con = cumpleCriterioWs(metadato);
	if (cumple_con.length == 0) {
		return true;
	}
	
	var wsJurisprudencia 	= new Array();
	var wsHistoriaLey 		= new Array();
	var wsProyectos 		= new Array();
	var wsDoctrina 			= new Array();
	var wsOtrosSistemas 	= new Array();

	for (var i = 0; i < cumple_con.length; i++) {
		var n_enlace 		= cumple_con[i][0];
		var posicion 		= cumple_con[i][1];
		var metadato 		= cumple_con[i][2];
		var webservice		= __CRITERIOS_WS__[n_enlace][posicion];

		switch (n_enlace) {
			case 'jurisprudencia':
				wsJurisprudencia.push(new Array(webservice, metadato, n_enlace));
				break;
			case 'historia_ley':
				wsHistoriaLey.push(new Array(webservice, metadato, n_enlace));
				break;
			case 'proyectos':
				wsProyectos.push(new Array(webservice, metadato, n_enlace));
				break;
			case 'doctrina':
				wsDoctrina.push(new Array(webservice, metadato, n_enlace));
				break;
			case 'otros_sistemas':
				wsOtrosSistemas.push(new Array(webservice, metadato, n_enlace));
				break;
			default:
				break;
		}
	}
	
	validarWsMasivos(wsJurisprudencia,wsHistoriaLey,wsProyectos,wsDoctrina,wsOtrosSistemas);
}

function validarWsMasivos(wsJurisprudencia, wsHistoriaLey, wsProyectos, wsDoctrina, wsOtrosSistemas){
	var id_nodo = '';
	if (wsJurisprudencia.length == 0) {
		__VALIDANDO_WS_JUR__ = false;
	}
	else {
		__VALIDANDO_WS_JUR__ = true;
		var wsJ = wsJurisprudencia.pop();
		var id_nodo = wsJ[1].creaIdItemCache();
		var urlwsJ 	= getUrlWsFromWsObj(wsJ);
		checkCargaWebServicesMasivosAjax(urlwsJ, wsJ, wsJurisprudencia, '__VALIDANDO_WS_JUR__ = false;');
	}

	if (wsHistoriaLey.length == 0) {
		__VALIDANDO_WS_HL__ = false;
	}
	else {
		__VALIDANDO_WS_HL__ = true;
		var id_nodo 	= wsHistoriaLey[0][1].creaIdItemCache();
		intervalWSHL 	= setInterval(function(){
			if (__VALIDANDO_WS_JUR__) {
				return;
			}
			clearInterval(intervalWSHL);
			intervalWSHL = -1;
			
			var wsHL = wsHistoriaLey.pop();
			var urlwsHL = getUrlWsFromWsObj(wsHL);
			checkCargaWebServicesMasivosAjax(urlwsHL, wsHL, wsHistoriaLey, '__VALIDANDO_WS_HL__ = false;');
		}, 1000);
	}

	if (wsProyectos.length == 0) {
		__VALIDANDO_WS_PRL__ = false;
	}
	else {
		__VALIDANDO_WS_PRL__ = true;
		var id_nodo 	= wsProyectos[0][1].creaIdItemCache();
		intervalWSPRL = setInterval(function(){
			if (__VALIDANDO_WS_HL__||__VALIDANDO_WS_JUR__) {
				return;
			}
			
			clearInterval(intervalWSPRL);
			intervalWSPRL = -1;
			
			var wsPRL 		= wsProyectos.pop();
			var urlwsPRL 	= getUrlWsFromWsObj(wsPRL);
			checkCargaWebServicesMasivosAjax(urlwsPRL, wsPRL, wsProyectos, '__VALIDANDO_WS_PRL__ = false;');
		}, 1000);
		
	}
	if (wsDoctrina.length == 0) {
		__VALIDANDO_WS_DOC__ = false;
	}
	else {
		__VALIDANDO_WS_DOC__ = true;
		var id_nodo 	= wsDoctrina[0][1].creaIdItemCache();
		intervalWSDOC = setInterval(function(){
			if (__VALIDANDO_WS_PRL__||__VALIDANDO_WS_JUR__||__VALIDANDO_WS_HL__) {
				return;
			}
			
			clearInterval(intervalWSDOC);
			intervalWSDOC = -1;
			
			var wsDOC 		= wsDoctrina.pop();
			var urlwsDOC 	= getUrlWsFromWsObj(wsDOC);
			checkCargaWebServicesMasivosAjax(urlwsDOC, wsDOC, wsDoctrina, '__VALIDANDO_WS_DOC__ = false;');
		}, 1000);
	}
	if (wsOtrosSistemas.length == 0) {
		__VALIDANDO_WS_OS__ = false;
	}
	else {
		__VALIDANDO_WS_OS__ = true;
		var id_nodo 	= wsOtrosSistemas[0][1].creaIdItemCache();
		intervalWSOS = setInterval(function(){
			if (__VALIDANDO_WS_DOC__||__VALIDANDO_WS_JUR__||__VALIDANDO_WS_HL__||__VALIDANDO_WS_PRL__) {
				return;
			}
			
			clearInterval(intervalWSOS);
			intervalWSOS = -1;
			
			var wsOS 		= wsOtrosSistemas.pop();
			var urlwsOS 	= getUrlWsFromWsObj(wsOS);
			checkCargaWebServicesMasivosAjax(urlwsOS, wsOS, wsOtrosSistemas, '__VALIDANDO_WS_OS__ = false;');
		}, 1000);
	}
	intervalCargaEnlacesConWsMasivos = setInterval("cargaEnlacesConWsMasivos('"+id_nodo+"');",1000);
}
function cargaEnlacesConWsMasivos(id_nodo){
	if(__VALIDANDO_WS_DOC__||__VALIDANDO_WS_JUR__||__VALIDANDO_WS_HL__||__VALIDANDO_WS_PRL__||__VALIDANDO_WS_OS__){
		return;
	}
	clearInterval(intervalCargaEnlacesConWsMasivos);
	intervalCargaEnlacesConWsMasivos = -1;
	var hay_ws_de 	  = new Array();
	var ws_reales_jur = new Array();
	var ws_reales_doc = new Array();
	var ws_reales_hl  = new Array();
	var ws_reales_prl = new Array();
	var ws_reales_os  = new Array();
	var metadato 	  = null;
	
	for (var key in __WS_REVISADOS__) {
		if (!key) {
			continue;
		}
		if (id_nodo != __WS_REVISADOS__[key]['id_nodo']) {
			continue;
		}
		var ws = __WS_REVISADOS__[key]['ws'];
		var resultado = __WS_REVISADOS__[key]['resultado'];
		var tipo = ws[2];
		hay_ws_de.push(tipo);
		metadato = ws[1];
		if (resultado != false) {
			var estructura = ws[0];
			switch (tipo) {
				case 'jurisprudencia':
					ws_reales_jur.push(estructura);
					break;
				case 'doctrina':
					ws_reales_doc.push(estructura);
					break;
				case 'historia_ley':
					ws_reales_hl.push(estructura);
					break;
				case 'proyectos':
					ws_reales_prl.push(estructura);
					break;
				case 'otros_sistemas':
					ws_reales_os.push(estructura);
					break;
				default:
					break;
			}
		}
	}
	if(hay_ws_de.length == 0){
		return;
	}
	var iframeDoc = getIframeDoc();
	var metadato2 = metadato;
	if (typeof metadato.es_simulado != 'undefined'){
		metadato = arregloPartes[0][2];//El nodo de la Norma
	}else{
		metadato2 = metadato;
	}
	if ('jurisprudencia' in oc(hay_ws_de)) {
		var enlaces_jur = getEnlacesJurisprudenciaWsOrdenados(metadato,ws_reales_jur, metadato2);
		enlaces_jur  = enlaces_jur.join("</UL><br/><UL>");
		enlaces_jur  = enlaces_jur!=""?"<UL>"+enlaces_jur+"</UL>":"";
		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 = "";
		}
	}
	__debe_mostrar_jurisprudencia__ = true;
	if ('doctrina' in oc(hay_ws_de)) {
		var enlaces_doct = getEnlacesDoctrinaWsOrdenados(metadato, ws_reales_doc);
		enlaces_doct = enlaces_doct.join("</UL><br/><UL>");
		enlaces_doct = enlaces_doct != "" ? "<UL>" + enlaces_doct + "</UL>" : "";
		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 = "";
		}
	}
	if ('proyectos' in oc(hay_ws_de)) {
		var enlaces_proy = getEnlacesProyectosWsOrdenados(metadato, ws_reales_prl);
		enlaces_proy = enlaces_proy.join("</UL><br/><UL>");
		enlaces_proy = enlaces_proy != "" ? "<UL>" + enlaces_proy + "</UL>" : "";
		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 = "";
		}
	}
	if ('otros_sistemas' in oc(hay_ws_de)) {
		var enlaces_os = getEnlacesOtrosSistemasWsOrdenados(metadato, ws_reales_os);
		enlaces_proy = enlaces_proy.join("</UL><br/><UL>");
		enlaces_proy = enlaces_proy != "" ? "<UL>" + enlaces_proy + "</UL>" : "";
		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 = "";
		}
	}
	__debe_mostrar_doctrina__		= true;
	__debe_mostrar_enlaces_hl__     = true;
	__debe_mostrar_enlaces_os__     = true;
	__debe_mostrar_enlaces_proy__ 	= true;
	__debe_mostrar_jurisprudencia__ = true;
	
}

function getEnlacesProyectosWsOrdenados(metadato, ws_reales_prl){
	var enl_prl = getEnlacesProyectosSinOrden(metadato.nodo);
	for (var i = 0; i < ws_reales_prl.length; i++) {
		var ws = ws_reales_prl[i];
		
		var enlace 			= ws['url'];
		var informacion 	= ws['informacion'];
		var nroBoletin 		= ws['nroBoletin'];
		var categoria 		= ws['categoria'];
		var sub_categoria 	= ws['sub_categoria'];
		var parametros 		= ws['parametros'];
		var params 			= "";
		if (enlace) {
			var txtAMostrar = enlace;
			
			if (informacion) {
				txtAMostrar = informacion;
			}
			
			if (nroBoletin) {
				txtAMostrar += ", " + nroBoletin;
			}
			
			if (categoria) {
				categoria = categoria;
			}
			else {
				categoria = "";
			}
			
			if (sub_categoria) {
				sub_categoria = sub_categoria;
			}
			else {
				sub_categoria = "";
			}
			if (parametros) {
				var parametros_url = "";
				for (var i = 0; i < parametros.length; i++) {
					var campo = parametros[i]['campo'];
					var nombre = parametros[i]['nombre'];
					var valor = parametros[i]['valor'];
					
					if (!campo && valor != 'por sistema' && valor) {
						valor = valor;
					}
					else 
						if (campo && valor == 'por sistema') {
							valor = getValorParametroWsAutomatico(campo, metadato);
						}
						else {
							alert("El parametro " + nombre + ": No tiene valor");
							continue;
						}
					parametros_url += nombre + "=" + valor + "&";
				}
				var params = enlace + "?" + parametros_url;
			}
			else {
				alert('no vienen');
			}
			
			var esta = false;
			for (var k = 0; k < enl_prl.length; k++) {
				var tmp = enl_prl[k][3];
				if(tmp == params){
					esta = true;
					break;
				}
			}
			if(esta){
				continue;
			}
			enl_prl.push(new Array('<a onclick="javascript:TrazarClickEnlace(\'56\',\'' + enlace + '\'); muestraWS(\'' + txtAMostrar + '\', \'' + params + '\');" style="cursor:pointer;">' + txtAMostrar + '</a><input id="input_' + txtAMostrar + '" type="hidden" value=""/><div id="' + txtAMostrar + '" style="display:none;">Cargando...<img src="'+urlStatic+'/imagenes_Navegar/cargando.gif"/></div>', categoria, nroBoletin, params));
		}
	}
	
	var 	enlaces_prl	 = getEnlacesProyectosOrdenados(enl_prl);
	return 	enlaces_prl;
}
function getEnlacesDoctrinaWsOrdenados(metadato, ws_reales_doc){
	var enl_doc = getEnlacesDoctrinaSinOrden(metadato.nodo);
	for (var i = 0; i < ws_reales_doc.length; i++) {
		var ws = ws_reales_doc[i];
		
		var enlace 			= ws['url'];
		var informacion 	= ws['informacion'];
		var nroBoletin 		= ws['nroBoletin'];
		var categoria 		= ws['categoria'];
		var sub_categoria 	= ws['sub_categoria'];
		var parametros 		= ws['parametros'];
		var params 			= "";
		if (enlace) {
			var txtAMostrar = enlace;
			
			if (informacion) {
				txtAMostrar = informacion;
			}
			
			if (nroBoletin) {
				txtAMostrar += ", " + nroBoletin;
			}
			
			if (categoria) {
				categoria = categoria;
			}
			else {
				categoria = "";
			}
			
			if (sub_categoria) {
				sub_categoria = sub_categoria;
			}
			else {
				sub_categoria = "";
			}
			if (parametros) {
				var parametros_url = "";
				for (var i = 0; i < parametros.length; i++) {
					var campo = parametros[i]['campo'];
					var nombre = parametros[i]['nombre'];
					var valor = parametros[i]['valor'];
					
					if (!campo && valor != 'por sistema' && valor) {
						valor = valor;
					}
					else 
						if (campo && valor == 'por sistema') {
							valor = getValorParametroWsAutomatico(campo, metadato);
						}
						else {
							alert("El parametro " + nombre + ": No tiene valor");
							continue;
						}
					parametros_url += nombre + "=" + valor + "&";
				}
				var params = enlace + "?" + parametros_url;
			}
			else {
				alert('no vienen');
			}
			
			var esta = false;
			for (var k = 0; k < enl_doc.length; k++) {
				var tmp = enl_doc[k][3];
				if(tmp == params){
					esta = true;
					break;
				}
			}
			if(esta){
				continue;
			}
			enl_doc.push(new Array('<a onclick="javascript:TrazarClickEnlace(\'56\',\'' + enlace + '\'); muestraWS(\'' + txtAMostrar + '\', \'' + params + '\');" style="cursor:pointer;">' + txtAMostrar + '</a><input id="input_' + txtAMostrar + '" type="hidden" value=""/><div id="' + txtAMostrar + '" style="display:none;">Cargando...<img src="'+urlStatic+'/imagenes_Navegar/cargando.gif"/></div>', categoria, sub_categoria, params));
		}
	}
	
	var 	enlaces_doc	 = getEnlacesDoctrinaOrdenados(enl_doc);
	return 	enlaces_doc;
}
function getEnlacesJurisprudenciaWsOrdenados(metadato, ws_reales_jur, metadato2){
	var enl_jur = getEnlacesJurisprudenciaSinOrden(metadato.nodo);
	for (var i = 0; i < ws_reales_jur.length; i++) {
		var ws = ws_reales_jur[i];
		
		var enlace = ws['url'];
		var informacion 	= ws['informacion'];
		var nroBoletin 		= ws['nroBoletin'];
		var categoria 		= ws['categoria'];
		var sub_categoria 	= ws['sub_categoria'];
		var parametros 		= ws['parametros'];
		var params 			= "";
		var idWS			= "";
		if (enlace) {
			var txtAMostrar = enlace;
			
			if (informacion) {
				txtAMostrar = informacion;
			}
			
			if (nroBoletin) {
				txtAMostrar += ", " + nroBoletin;
			}

			idWS = txtAMostrar;

			if (categoria) {
				categoria = categoria;
				idWS += "-"+categoria.replace(" ","_");
			}
			else {
				categoria = "";
			}
			
			if (sub_categoria) {
				sub_categoria = sub_categoria;
				idWS += "-"+sub_categoria.replace(" ","_");
			}
			else {
				sub_categoria = "";
			}
			if (parametros) {
				var parametros_url = "";
				for (var j = 0; j < parametros.length; j++) {
					var campo = parametros[j]['campo'];
					var nombre = parametros[j]['nombre'];
					var valor = parametros[j]['valor'];
					
					if (!campo && valor != 'por sistema' && valor) {
						valor = valor;
					}
					else 
						if (campo && valor == 'por sistema') {
							valor = getValorParametroWsAutomatico(campo, metadato2);
						}
						else {
							alert("El parametro " + nombre + ": No tiene valor");
							continue;
						}
					parametros_url += nombre + "=" + valor + "&";
				}
				var params = enlace + "?" + parametros_url;
			}
			else {
				alert('no vienen');
			}
			
			var esta = false;
			for (var k = 0; k < enl_jur.length; k++) {
				var tmp = enl_jur[k][3];
				if(tmp == params){
					esta = true;
					break;
				}
			}
			if(esta){
				continue;
			}
			enl_jur.push(new Array('<a onclick="javascript:TrazarClickEnlace(\'56\',\'' + enlace + '\'); muestraWS(\'' + idWS + '\', \'' + params + '\');" style="cursor:pointer;">' + txtAMostrar + '</a><input id="input_' + idWS + '" type="hidden" value=""/><div id="' + idWS + '" style="display:none;">Cargando...<img src="'+urlStatic+'/imagenes_Navegar/cargando.gif"/></div>', categoria, sub_categoria, params, '', txtAMostrar));
		}
	}
	
	var enlaces_jur	 = getEnlacesJurisprudenciaOrdenados(enl_jur);
	return enlaces_jur;
}

function getUrlWsFromWsObj(ws){
	var wsEstructura = ws[0];
	var wsMetadato 	 = ws[1];
	var wsNEnlace 	 = ws[2];
	
	var parametros 	 = wsEstructura["parametros"];
	var urlws 	 	 = wsEstructura["url"];
	var parametros_url = "";
	for (var i = 0; i < parametros.length; i++) {
		var campo 	= parametros[i]['campo'];
		var nombre 	= parametros[i]['nombre'];
		var valor 	= parametros[i]['valor'];
		
		if(!campo && valor != 'por sistema' && valor){
			valor = valor;
		}else if (campo && valor == 'por sistema'){
			valor = getValorParametroWsAutomatico(campo, wsMetadato);
		}else{
			alert("El parametro "+nombre+": No tiene valor");
			continue;
		}
		parametros_url += nombre+"="+valor+"&";
	}
	
	urlws = urlws+"?"+parametros_url;
	return urlws;
}
var __VALIDANDO_WS_JUR__ = true;
var __VALIDANDO_WS_HL__  = true;
var __VALIDANDO_WS_PRL__ = true;
var __VALIDANDO_WS_DOC__ = true;
var __VALIDANDO_WS_OS__  = true;

var __BUSCANDO_NORMAS_REFUNDIDAS__  = true;
var __INFO_NORMAS_REFUNDIDAS__	= new Object();

var __WS_REVISADOS__ = new Object();
var __CRITERIOS_WS__ = new Object();
var __TODOS_LOS_ENLACES__ = ['jurisprudencia','historia_ley','proyectos','doctrina','otros_sistemas'];
__CRITERIOS_WS__['jurisprudencia'] 	= new Array();
__CRITERIOS_WS__['historia_ley'] 	= new Array();
__CRITERIOS_WS__['proyectos'] 		= new Array();
__CRITERIOS_WS__['doctrina'] 		= new Array();
__CRITERIOS_WS__['otros_sistemas'] 	= new Array();
/*

__CRITERIOS_WS__['jurisprudencia'].push(new Object());
__CRITERIOS_WS__['jurisprudencia'][0]['tipo_norma'] 	= "XX1"; 
__CRITERIOS_WS__['jurisprudencia'][0]['organismo']  	= "MINISTERIO DEL INTERIOR"; 
__CRITERIOS_WS__['jurisprudencia'][0]['fecha_pub']  	= "2010-01-01|2010-03-31";
__CRITERIOS_WS__['jurisprudencia'][0]['parametros'] 	= [{'campo':null,'nombre':'OpenAgent','valor':'0'},
														   {'campo':'numero_norma','nombre':'n','valor':'por sistema'}];
__CRITERIOS_WS__['jurisprudencia'][0]['url']  			= "http://www.contraloria.cl/LegisJuri/jurisprudencia.nsf/GeneraXMLDictamenesLey";
__CRITERIOS_WS__['jurisprudencia'][0]['categoria']  	= "Administrativa";
__CRITERIOS_WS__['jurisprudencia'][0]['sub_categoria']  = "Contraloria";
__CRITERIOS_WS__['jurisprudencia'][0]['informacion']  	= "Dictamenes";


__CRITERIOS_WS__['proyectos'].push(new Object());
__CRITERIOS_WS__['proyectos'][0]['tipo_norma'] 	= "XX1";
__CRITERIOS_WS__['proyectos'][0]['organismo']  	= "MINISTERIO DE AGRICULTURA"; 
__CRITERIOS_WS__['proyectos'][0]['fecha_pub']  	= "1996-01-01|";
__CRITERIOS_WS__['proyectos'][0]['parametros'] 	= [{'campo':null,'nombre':'OpenAgent','valor':'0'},
												   {'campo':'numero_norma','nombre':'n','valor':'por sistema'}];
__CRITERIOS_WS__['proyectos'][0]['url']  		= "http://www.contraloria.cl/LegisJuri/jurisprudencia.nsf/GeneraXMLDictamenesLey";
__CRITERIOS_WS__['proyectos'][0]['categoria']  	= "Administrativa";
__CRITERIOS_WS__['proyectos'][0]['nroBoletin']		= "2005-02";
__CRITERIOS_WS__['proyectos'][0]['sub_categoria']	= "Contraloria";
__CRITERIOS_WS__['proyectos'][0]['informacion'] 	= "Doctrinas Varias";*/

function cumpleCriterioWs(metadato){
	var cumple_con 			= new Array();
	if (metadato.getTipoParteID() != 0) {// 0 -> Es a Nivel de Norma
		return cumple_con;
	}
	
	var tiposNumeros_array 		= new Array(metadato.getTiposNumeros());
	var organismos_array 		= new Array(metadato.getOrganismos());
	var fecha_publicacion_array = new Array(metadato.getFechaPublicacion());
	
	/**
	 * Intervenir en este punto para saber si la norma actual refunde a otra norma y esta otra norma cumple con los criterios de Ws automáticos 
	 * si es así se debe mostrar además esos otros ws en caso de existir.
	 */
	var metas_normas_refundidas = getMetasNormasRefundidasPorEstaNorma(metadato);
	
	for (var m = 0; m < metas_normas_refundidas.length; m++) {
		tiposNumeros_array.push(metas_normas_refundidas[m]['tiposNumeros']);
		organismos_array.push(metas_normas_refundidas[m]['organismos']);
		fecha_publicacion_array.push(metas_normas_refundidas[m]['fecha_publicacion']);
	}
	
	for (var m = 0; m < tiposNumeros_array.length; m++) {
		
		var tiposNumeros 		= tiposNumeros_array[m];
		var organismos 			= organismos_array[m];
		var fecha_publicacion 	= fecha_publicacion_array[m];
		fecha_publicacion 		= fecha_publicacion ? new Date(fecha_publicacion.split("-")[0], fecha_publicacion.split("-")[1] - 1, fecha_publicacion.split("-")[2]) : "";
	
		for (var j = 0; j < __TODOS_LOS_ENLACES__.length; j++) {
			var n_enlace = __TODOS_LOS_ENLACES__[j];
			var criterios = __CRITERIOS_WS__[n_enlace];
			
			for (var i = 0; i < criterios.length; i++) {
				var tipo_norma = criterios[i]['tipo_norma'];
				var organismo = criterios[i]['organismo'];
				var fecha_pub = criterios[i]['fecha_pub'].split("|");
				var fecha_de = fecha_pub[0] ? new Date(fecha_pub[0].split("-")[0], fecha_pub[0].split("-")[1] - 1, fecha_pub[0].split("-")[2]) : "";
				var fecha_a = fecha_pub[1] ? new Date(fecha_pub[1].split("-")[1], fecha_pub[1].split("-")[1] - 1, fecha_pub[1].split("-")[2]) : "";
				;
				
				var cumple_tipo = false;
				var cumple_orga = false;
				var cumple_fech = false;
				
				//Revisa si cumple con criterio para Tipo Norma
				if (tipo_norma) {
					for (var k = 0; k < tiposNumeros.length; k++) {
						if (tiposNumeros[k][0] == tipo_norma) {
							cumple_tipo = true;
							break;
						}
					}
				}
				else {
					cumple_tipo = true;
				}
				
				//Revisa si cumple con criterio para Organismo
				if (organismo) {
					for (var k = 0; k < organismos.length; k++) {
						if (organismos[k] == organismo) {
							cumple_orga = true;
							break;
						}
					}
				}
				else {
					cumple_orga = true;
				}
				
				//Revisa si cumple con criterio para Fecha de Publicación
				if (fecha_de && fecha_a) {//Fecha limite inferior y fecha límite superior
					if (fecha_publicacion >= fecha_de && fecha_publicacion <= fecha_a) {
						cumple_fech = true;
					}
				}
				else 
					if (fecha_de) {//Fecha limite inferior solamente
						if (fecha_publicacion >= fecha_de) {
							cumple_fech = true;
						}
					}
					else 
						if (fecha_a) {//Fecha límite superior solamente
							if (fecha_publicacion <= fecha_a) {
								cumple_fech = true;
							}
						}
						else {//Sin restricciones de fecha
							cumple_fech = true;
						}
				
				if (cumple_fech && cumple_tipo && cumple_orga) {
					//alert("falta diferenciar metadato de norma actual y de norma refundida");
					if ( m > 0){
						var meta_to_cumple = {'es_simulado':true,'numero_norma':tiposNumeros[0][1],'nro_norma':tiposNumeros[0][1],'organismo':organismos[0],'organismos':organismos.join(";"),creaIdItemCache:function(){return 123}};
					}else{
						var meta_to_cumple = metadato;
					}
					cumple_con.push([n_enlace, i, meta_to_cumple]);
				}
			}
		}
	}
	return cumple_con;
}
function getMetasNormasRefundidasPorEstaNorma(metadato){
	//alert("aun falta implemtar esta funcion (getMetasNormasRefundidasPorEstaNorma), esto debe hacerse en forma asincrónica por lo que hay que pensarlo bien");
	var default_value = [];
	
	if(typeof __INFO_NORMAS_REFUNDIDAS__.normas == 'undefined'){
		return default_value;
	}
	return __INFO_NORMAS_REFUNDIDAS__.normas;
}
function setMetasNormasRefundidasPorEstaNormaAsync(metadato){
	__BUSCANDO_NORMAS_REFUNDIDAS__ = true;
	
	var default_value = false;
	if(typeof __INFO_NORMAS_REFUNDIDAS__.normas != 'undefined'){
		__BUSCANDO_NORMAS_REFUNDIDAS__ = false;
		return default_value;
	}
	
	if (!metadato.getRefunde_a()){
		__BUSCANDO_NORMAS_REFUNDIDAS__ = false;
		return default_value;
	}
	var tiene_texto_ref = false;
	var c = metadato.getCantidadesVinculaciones();
	for (var i = 0; i < c.length; i++) {
		if (c[i].tipo == 'TEXTO REFUNDIDO') {
			tiene_texto_ref = true;
			break;
		}
	}
	if (!tiene_texto_ref){
		__BUSCANDO_NORMAS_REFUNDIDAS__ = false;
		return default_value;
	}
	
	getInfoNormasRefundidas(metadato.getID_Norma());
	
	return true;
}
function getInfoNormasRefundidas(idNorma,random){
	if(typeof random == 'undefined'){
		random = false;
	}
	this.success = function(req){
		try {
			__INFO_NORMAS_REFUNDIDAS__ 		= eval('(' + req.responseText + ')');
			__BUSCANDO_NORMAS_REFUNDIDAS__ 	= false;
		}catch(e){
			getInfoNormasRefundidas(idNorma,true);
		}
	};
	
	this.failure = function(req){
		__INFO_NORMAS_REFUNDIDAS__ 		= new Object();
		__BUSCANDO_NORMAS_REFUNDIDAS__ 	= false;
	};
	var r = getRandomAjax(random);
	if (r){
		var parameters = {idNorma: idNorma, r : r};
	}else{
		var parameters = {idNorma: idNorma};
	}
	var params = {
		method:'get',
		onSuccess: this.success, 
		onFailure: this.failure,
		parameters: parameters
	};
	
	this.request = new Ajax.Request(url + '/scripts/getInfoNormasRefundidas', params);
		
}

