	var URLRetornofavoritos='';

	function getContent(){
		var oListParams = document.getElementsByTagName("DIV")
		for (i=0; i < oListParams.length-1; i++){
				if (oListParams[i].getAttribute("content")!= null){
					utilAjax.getHtmlContent("<root>" + oListParams[i].innerHTML + "</root>" , getContent_callback);
					//alert (oListParams[i].innerHTML);
				}
		}
	}
					
	function getContentPag(id,div,cab,col,row,pag){
		utilAjax.getHtmlContent2( id, div, cab, col, row, pag, getContent_callback);
	}				
					
	function getContent_callback(response){
					
		if (response.error != null){
			alert(response.error.Message);
			return;
		}
		var resp = response.value;
		//alert (document.getElementById("zon" + resp.div).innerHTML);
		document.getElementById("zon" + resp.div).innerHTML = resp.html;
		new Rico.Effect.Round( "div", "fondo0");
		new Rico.Effect.Round( "div", "fondolight");
					
	}
					
	function addLoadEvent(func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				if (oldonload) {
					oldonload();
				}
				func();
			}
		}
	} 
					
	function ejecutarQueryURL(urlQuery, capa) {

		var params = new Array();
		var inputs = document.getElementsByTagName("input");
		var selects = document.getElementsByTagName("select");
		
		for(var i=0; i<inputs.length; i++) {
			insertarParametro(inputs[i], params);
		}
		for(var i=0; i<selects.length; i++) {
			insertarParametro(selects[i], params);
		}
		
		//AJAXPro.PortalWeb.Frontal.timeoutPeriod = 30000;
		AjaxPro.timeoutPeriod = 30000;
		AJAXPro.PortalWeb.Frontal.ejecutarQueryURL(idPortal, urlQuery, params, buscar_callback, $(capa));
		 
	}
	
	// Nueva version de query, la 2.0, ordena lo especificado en el CMS, si quisiesemos cambiar el orden por un 
	// parametro especifico deberiamos conseguirnos el tag de lucene y luego crear una expression, p.ej:
	// nombreTag ASC|DESC STR|INT|SCORE y esto podria quedar algo asi:
	// para Color27, ascendente de tipo integer: Color27 ASC INT
	// *si queremos ordenar por mas de un campo lo separamos por comas. 
	// Si quisiesemos recuperar valores de metadatos, nos conseguimos en la tabla T_CMS_CATALOGACION_METADATOS el idmetadato.
	// Maximo 3 valores a la vez.
	
	function ejecutarQueryURLv20(urlQuery, capa, orden, metadato1, metadato2, metadato3) {
		var params = new Array();
		var inputs = document.getElementsByTagName("input");
		var selects = document.getElementsByTagName("select");
		
		for(var i=0; i<inputs.length; i++) {
			insertarParametro(inputs[i], params);
		}
		for(var i=0; i<selects.length; i++) {
			insertarParametro(selects[i], params);
		}
	    
		//AJAXPro.PortalWeb.Frontal.timeoutPeriod = 30000;
		AjaxPro.timeoutPeriod = 30000;
		AJAXPro.PortalWeb.Frontal.ejecutarQueryURLv20(idPortal, urlQuery, params, orden, metadato1, metadato2, metadato3, 0,0,0,0,0,0,0,1, buscar_callback, $(capa));
		 
	}

	// MR - desarrollada para desplegar las urls amigables publidadas	
	function getEjecutarQueryURL(urlQuery, capa, opcion) {
	    AjaxPro.timeoutPeriod = 30000;
		//AJAXPro.PortalWeb.Frontal.timeoutPeriod = 30000;
		AJAXPro.PortalWeb.Frontal.getEjecutarQueryURL(idPortal, urlQuery, opcion, buscar_callback, $(capa));
	}
	
	// MR - Permite realizar la opción de inserción de favoritos
	function setInsertarFavoritos(tipofavorito, urlAmigable, idCms, params){
		if (idCms==null && params==null){
			AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, 0, '', InsertarFavoritos_callback);
		}else{
			if (idCms!=null && params==null){
				AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, idCms, '', InsertarFavoritos_callback);
			}else{
				if (idCms==null && params!=null) {
					AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, 0, params, InsertarFavoritos_callback);
				}else{
					AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, idCms, params, InsertarFavoritos_callback);
				}
			}
		}
	}
	
	// JA - Permite realizar la opción de inserción de favoritos, con retorno a la url especificada
	function setInsertarFavoritosUrlRetorno(tipofavorito, urlAmigable, idCms, params, urlRetorno){
		URLRetornofavoritos=urlRetorno;
		if (idCms==null && params==null){
			AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, 0, '', InsertarFavoritosURL_callback);
		}else{
			if (idCms!=null && params==null){
				AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, idCms, '', InsertarFavoritosURL_callback);
			}else{
				if (idCms==null && params!=null) {
					AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, 0, params, InsertarFavoritosURL_callback);
				}else{
					AJAXPro.PortalWeb.Frontal.setInsertFavoritos(idPortal, tipofavorito, urlAmigable, idCms, params, InsertarFavoritosURL_callback);
				}
			}
		}
	}
	
	function InsertarFavoritos_callback(res) {
		if(res.error != null) {
			alert(res.error.Message);
			return false;
		}else{
			//alert('El archivo seleccionado ha sido asociado a favoritos');
			document.location.reload(document.location.href);
		}
	}
	
	function InsertarFavoritosURL_callback(res) {
		if(res.error != null) {
			alert(res.error.Message);
			return false;
		}else{
			//alert('El archivo seleccionado ha sido asociado a favoritos');
			document.location.href = URLRetornofavoritos;
		}
	}
	
	function ejecutarQuery(idQuery, idPlantilla,capa) {
		var params = new Array();
		var inputs = document.getElementsByTagName("input");
		var selects = document.getElementsByTagName("select");
		
		for(var i=0; i<inputs.length; i++) {
			insertarParametro(inputs[i], params);
		}
		for(var i=0; i<selects.length; i++) {
			insertarParametro(selects[i], params);
		}
		
		//AJAXPro.PortalWeb.Frontal.timeoutPeriod = 30000;
		AjaxPro.timeoutPeriod = 30000;
		AJAXPro.PortalWeb.Frontal.ejecutarQuery(idPortal, idQuery,idPlantilla, params, buscar_callback,$(capa));
	}
	
//	function buscar_callback(res) {
//		if(res.error != null) {
//			alert(res.error.Message);
//			return;
//		}
//		//paginaActual = 1;
//		paginaActual = document.getElementById("numero_pagina").value;
//		totalPaginas = null;
//		res.context.innerHTML= res.value;
//		
//		// asignamos el total de páginas para refrescar la paginación de boton y para asignar el 
//		// total de páginas que se han retornado desde el procedimiento de ajax que ejecuta la query
//		if (document.getElementById("tblResultados")!=null){
//			var tp = (totalPaginas != null) ? totalPaginas : document.getElementById("tblResultados").getAttribute("totpags");
//			if (tp > 1) { actualizaPaginador();}
//		}
//	}

    function buscar_callback(res) {
		if(res.error != null) {
			alert(res.error.Message);
			return;
		}
		
		//paginaActual = 1;
		paginaActual = $('numero_pagina').value;
		totalPaginas = null;
		//res.context.style.display = "none";
		//res.context.innerHTML = res.value;
		
		$('divtemp').style.display = 'none';
		$('divtemp').innerHTML = res.value;
		
		if ($('hdUrl') != null) {
		    
		    document.location.href = $('hdUrl').value;
		
		}else{
		    res.context.innerHTML = $('divtemp').innerHTML;
		    res.context.style.display = 'block';
		    
		    if ($('Biblioteca_Digital') != null) { $('Biblioteca_Digital').style.display = 'block'; }
		    // asignamos el total de páginas para refrescar la paginación de boton y para asignar el 
		    // total de páginas que se han retornado desde el procedimiento de ajax que ejecuta la query
		    if ($('tblResultados')!=null){
			    var tp = (totalPaginas != null) ? totalPaginas : $('tblResultados').getAttribute('totpags');
			    if (tp > 1) { actualizaPaginador(); }
		    }
		}
	}
	
	function insertarParametro(input, params) {
		var modo = input.getAttribute("modo");
		var tipo = input.getAttribute("tipo");
		var id = input.id.substr(input.id.indexOf("_")+1, input.id.length);
		var idTipoMetadato = input.getAttribute("idTipoMetadato");
		var idMetadato = input.getAttribute("idMetadato");
		
		// agregados para administrar los datos de paginación de resultados
		var pagina = document.getElementById("numero_pagina").value;
		
		if(input.id.indexOf("restriccion") < 0 && input.id.indexOf("agrupacion") < 0) {
			return;
		}
		
		var po = new Param(id);
		po.setModo(modo);
		po.setTipo(tipo);
		po.setIdMetadato(idMetadato);
		po.setIdTipoMetadato(idTipoMetadato);
		po.setPagina(pagina);
		
		if(input.type == "text" && input.value.length > 0) {
			if(tipo == "pub" && idTipoMetadato == 3) {
				//Fecha de publicacion
				if(input.value != 'dd/mm/aaaa') {
					var pos = input.getAttribute("posicion");
					if(pos != null && pos == 'inicial') {
						var ddl = document.getElementById("operador_"+ id);
						if(ddl != null) {
							po.setOperador(ddl.options[ddl.selectedIndex].value);
						}
						po.addValor(input.value);
						if(po.getOperador() == 'BTW') {
							var txtFechaFinal = document.getElementById(input.getAttribute("idFin"));
							if(txtFechaFinal != null) {
								po.addValor(txtFechaFinal.value);
							}
						}
						params.push(po);
					}
				}
			}
			else {
				po.addValor(input.value);
				params.push(po);
			}
		}
		else if(input.type == "select-one") {
			valor = input.options[input.selectedIndex].value;
			if(valor.length > 0) {
				po.addValor(valor);
				params.push(po);
			}
		}
		else if(input.type == "select-multiple") {
			valor = "";
			for(var i = 0; i < input.options.length; i++) {
				if(input.options[i].selected) {
					po.addValor(input.options[i].value);
				}
			}
			if(po.getTotalValores() > 0) {
				params.push(po);
			}
		}
		else if(input.type == "radio" && input.checked && input.value.length > 0) {
			po.addValor(input.value);
			params.push(po);
		}
	}
	
	function Param(id) {
		this.initilize(id);
	}
	Param.prototype = {
		initilize: function(id) {
			this.id = id;
			this.setOperador("IN");
			this.valores = new Array();
		},
		setModo: function(modo) {
			this.modo = modo;
		},
		setTipo: function(tipo) {
			this.tipo = tipo;
		},
		setIdTipoMetadato: function(idTipoMetadato) {
			this.idTipoMetadato = idTipoMetadato;
		},
		setIdMetadato: function(idMetadato) {
			this.idMetadato = idMetadato;
		},
		setOperador: function(operador) {
			this.operador = operador;
		},
		setPagina: function(pagina) {
			this.pagina = pagina;
		},
		getOperador: function() {
			return(this.operador);
		},
		addValor: function(valor) {
			this.valores.push(valor);
		},
		getTotalValores: function() {
			return this.valores.length;
		}
	}
	
	function crearParametro(input) {
		var tipo = input.getAttribute("tipo");
		var id = input.id.substr(input.id.indexOf("_")+1, input.id.length);
		var idTipoMetadato = input.getAttribute("idTipoMetadato");
		var idMetadato = input.getAttribute("idMetadato");
		//var pagina = input.getAttribute("pagina");
		//var totalPaginas = '';
		
		return paramObj;
	}
	
	// MR - Permite la navegación de posición de páginas, 
	// utiliza un iframe para guardar los datos
	//function navegarFrame(iPagina, iId, iTablaId){
	//	var cadena = "opcion=" + iPagina + "&id=" + iId + "&sTabla=" + iTablaId
		//$("ifrNavegar").setAttribute("src", "/plantillas/profesnetrecursosenred/navegar.html?" + cadena);
	//	$("ifNavegar").setAttribute("src", "/plantillas/profesnetrecursosenred/navegar.html?" + cadena);
	//}

	// MR - actualiza la información de la página refrescando el número 
	// seleccionado con anterioridad en el historial del navegador 
	//function frameDatoRescatar(pagina, id, tabla){
		//verPagina(pagina, id);
	//}
	
	function verPaginaAnterior(id) {
		var np = (paginaActual != null) ? paginaActual : 1;
		if(np > 1) {
			verPagina(np - 1, id);
		}
	}
	
	function verPaginaSiguiente(id) {
		var np = (paginaActual != null) ? paginaActual : 1;
		var tp = (totalPaginas != null) ? totalPaginas : document.getElementById("tblResultados").getAttribute("totpags");
		if(np < tp) {
			verPagina(np + 1, id);
		}
	}

	function verPagina(numPagina, id) {
		
		var totPaginas = (totalPaginas != null) ? totalPaginas : $("tblResultados").getAttribute("totpags");
		var np = (paginaActual != null) ? paginaActual : 1;
		var pag = $("result_"+ id +"_p"+ np);

		if(pag != null) { paginaActual = numPagina; }
		
        if (paginaActual != $("numero_pagina").value) {
			$('numero_pagina').value = numPagina;
			document.forms['frm'].submit();
		}
	}
	
	function verPaginaV2queryAvanzada(numPagina, id) {
		
		var totPaginas = (totalPaginas != null) ? totalPaginas : document.getElementById("tblResultados").getAttribute("totpags");
		var np = (paginaActual != null) ? paginaActual : 1;
		var pag = document.getElementById("result_"+ id +"_p"+ np);

		if(pag != null) {
		paginaActual = numPagina;
		}
		
		if (paginaActual != document.getElementById("numero_pagina").value) {
			document.getElementById('numero_pagina').value = paginaActual;
			var urlactual = document.location.href;
			while (urlactual.indexOf('/')>=0){
			    urlactual = urlactual.substring(urlactual.indexOf('/')+1);
			    
			}
			urlactual = urlactual.substring(0,urlactual.indexOf('.html'));
			var scurso= document.getElementById('select_Curso').value
			var sasignatura= document.getElementById('select_Asignatura').value
			var srestriccion_1324977376= document.getElementById('restriccion_1324977376').value
			var scampoLibreC= document.getElementById('campoLibreC').value
			var sagrupacion_474947396= document.getElementById('agrupacion_474947396').value
			var sagrupacion_386126070= document.getElementById('agrupacion_386126070').value
			/*var snumero_pagina= document.getElementById('numero_pagina').value*/
			document.location.href=urlactual + '.html?select_Curso=' + scurso + '&select_Asignatura=' + 
			sasignatura + '&restriccion_1324977376=' + srestriccion_1324977376 + '&campoLibreC=' + 
			scampoLibreC + '&agrupacion_474947396=' + sagrupacion_474947396 + '&agrupacion_386126070=' +
			sagrupacion_386126070 + '&numero_pagina=' + paginaActual;
			
		}
	}
	
	function actualizaPaginador(){
		var tp = (totalPaginas != null) ? totalPaginas : $("tblResultados").getAttribute("totpags");
		
		// MR agregado para actualizar el despliegue de páginas, cuando el procedimiento
		// retorne la información necesaria se debe inhabilitar este ciclo for
		
		var np = (paginaActual != null) ? paginaActual : 1;
		var id = $("tblResultados").getAttribute("idPaginacion");
				
		if ($("result_"+ id +"_p" + np) != null) {
		    var pag = $("result_"+ id +"_p" + np);
		    pag.style.display = "";

		    // ocultamos todas las páginas existentes 
		    for (i=1; i <= tp; i++){
		        if ($("result_" + id + "_p" + i) != null && i != np)
		            $("result_" + id + "_p" + i).style.display="none";
		    }
		}
		
		for (i=1; i < tp+1 ;i++){
			if (i != np){
				if ($("paginadorNumPag_" + i + "_1")!=null){
					$("paginadorNumPag_" + i + "_1").href = "#";
					$("paginadorNumPag_" + i + "_2").href = "#";
				}
			}				
		
			if ((i < 3) || (i > tp-2) || (np == i) || (np + 1 == i) || (np - 1 == i) ){
				if (i <= tp) {
					$("paginadorNumPag_" + i + "_1").style.visibility="visible";
					$("paginadorNumPag_" + i + "_1").style.display="block";
					$("paginadorNumPag_" + i + "_1").className="paginacionQuery";
						
					$("paginadorNumPag_" + i + "_2").style.visibility="visible";
					$("paginadorNumPag_" + i + "_2").style.display="block";
					$("paginadorNumPag_" + i + "_2").className="paginacionQuery";
				}
			}
			else {
				if (i <= tp){			
					$("paginadorNumPag_" + i + "_1").style.visibility="hidden";
					$("paginadorNumPag_" + i + "_1").style.display="none";
					$("paginadorNumPag_" + i + "_1").className="paginacionQuery";
						
					$("paginadorNumPag_" + i + "_2").style.visibility="hidden";
					$("paginadorNumPag_" + i + "_2").style.display="none";
					$("paginadorNumPag_" + i + "_2").className="paginacionQuery";
				}
			}


			if ((tp > 5)){
				if (np >= 5 ){
					$("paginadorSeparador1_1").style.visibility="visible";
					$("paginadorSeparador1_1").style.display="block";
					
					$("paginadorSeparador1_2").style.visibility="visible";
					$("paginadorSeparador1_2").style.display="block";
				}
				else{
					$("paginadorSeparador1_1").style.visibility="hidden";
					$("paginadorSeparador1_1").style.display="none";
						
					$("paginadorSeparador1_2").style.visibility="hidden";
					$("paginadorSeparador1_2").style.display="none";
				}

				if (np <= (tp -4) ){
					$("paginadorSeparador2_1").style.visibility="visible";
					$("paginadorSeparador2_1").style.display="block";
						
					$("paginadorSeparador2_2").style.visibility="visible";
					$("paginadorSeparador2_2").style.display="block";
				}
				else{
					$("paginadorSeparador2_1").style.visibility="hidden";
					$("paginadorSeparador2_1").style.display="none";
						
					$("paginadorSeparador2_2").style.visibility="hidden";
					$("paginadorSeparador2_2").style.display="none";
				}				
			}
			if (np == i){
				$("paginadorNumPag_" + i + "_1").className="paginacionQuerySelected";
				$("paginadorNumPag_" + i + "_2").className="paginacionQuerySelected";
			}
		}
	}