
/* Se llama al cargar los resultados */
function loadedResults(idTab){
	//Si no hay resultados no lanzamos los ajax
	if(getObject("frmFilter" + idTab) && getObject("frmFilter" + idTab).total){
		if(getObject("frmFilter" + idTab).total.value == "0")
			return;

		//Filtros de la pantalla de resultados
		if (getObject("frmFilter" + idTab).cbosort)
			getObject("frmFilter" + idTab).cbosort.value = getObject("frmBusqueda" + idTab).sort.value;
		if (getObject("frmFilter" + idTab).cboresults)
			getObject("frmFilter" + idTab).cboresults.value = getObject("frmBusqueda" + idTab).recordsPerPage.value;
	
		//Paginacion
		if (getObject("pag1Jur"))
			DrawPaging(idTab, getObject("frmFilter" + idTab).total.value, getObject("frmFilter" + idTab).records.value, '10', getObject("frmFilter" + idTab).page.value, getObject("pag1Jur"));
		if (getObject("pag2Jur"))
			DrawPaging(idTab, getObject("frmFilter" + idTab).total.value, getObject("frmFilter" + idTab).records.value, '10', getObject("frmFilter" + idTab).page.value, getObject("pag2Jur"));
		
		if (getObject("vistaDoc")) {
			markOpenedLinks('vistaDoc');
		}
	}
}

/* INICIO PAGINACION */
function DrawPagingSimple(idTab, target){		
	var page = parseInt(getObject("frmFilter" + idTab).page.value,10) + 1;
	var pageBack = parseInt(page,10) -1;	//valor de la pagina para volver atras
	var pageForward = parseInt(page,10)+1;	//valor de la pagina para ir hacia delante
	var result="";
	result += "<td align=\"left\">";
	if (canBack(idTab)){				
		result+="<a href=\"javascript:goToPage('" + idTab + "','" + pageBack + "')\" style=\"margin-bottom: 2px;\"><img border=\"0\" src=\"juez/img/bot_retrocede.gif\"></a>";
	}else{
		result+="<img width=\"65\" width=\"65\" height=\"20\" border=\"0\" src=\"juez/img/pix.gif\">";
	}
	result += "</td><td align=\"center\" class=\"numpaginacion\">" + page + "</td><td align=\"right\">";
	if (canForward(idTab)){
		result+="<a href=\"javascript:goToPage('" + idTab + "','" + pageForward + "')\" style=\"margin-bottom: 2px;\"><img border=\"0\" src=\"juez/img/bot_avanza.gif\"></a>";
	}else{
		result+="<img width=\"65\" width=\"65\" height=\"20\" border=\"0\" src=\"juez/img/pix.gif\">";
	}
	result +="</td>";
	target.innerHTML = result;
}

function makePageActive(idTab, number){
	var result="";
	result += "<li><a href=\"javascript:goToPage('" + idTab + "','" + number + "')\" class=\"on\" title=\"Página " + number + "\">" + number + "</a></li>";
	return result;
}

function makePageItem(idTab, number){
	var result="";			
	result += "<li><a href=\"javascript:goToPage('" + idTab + "','" + number + "')\" class=\"off\" title=\"Página " + number + "\">" + number + "</a></li>";
	return result;
}		

function makeFirstPage(idTab){
	var result="";			
	result += "<li><a href=\"javascript:goToPage('" + idTab + "','1')\" class=\"off\" title=\"Página 1\">1</a></li>";
	return result;
}

function DrawPaging(idTab, recordCount, itemsPerPage, numOfPages, pageNumber, target){
	var objPage="";		
	var index=0;
	var maxPage = parseInt(recordCount,10)/parseInt(itemsPerPage,10);
	var intRecordCount = parseInt(recordCount,10);
	var intItemsPerPage = parseInt(itemsPerPage,10);
	var intNumOfPages = parseInt(numOfPages,10);
	var intPageNumber = parseInt(pageNumber,10);

	intMaxPage = parseInt(maxPage,10);

	if ( (parseInt(recordCount,10) % parseInt(itemsPerPage,10))  != 0 ) intMaxPage++;	

	if (intPageNumber >= intNumOfPages){				
		index = intPageNumber;				
	}else{
		if (intPageNumber < (intNumOfPages - intItemsPerPage)){
			index = index - intNumOfPages;
		}
	}
	if ((index+10)>intMaxPage) index=intMaxPage-10;			
	if (index<1) index=1;
	if (intPageNumber>=(intNumOfPages/2)) index=intPageNumber+1 - (intNumOfPages/2);	
	objPage += "<ul>";
	//Comprobamos si tenemos que dibujar el enlace a la primera pagina
	if (parseInt(index) > 1){
		objPage += makeFirstPage(idTab);
	}

	if (pageNumber - intNumOfPages/2 > 0) {
		index = 2;
	}
	if (pageNumber - intNumOfPages + 1 > 0) {
		index = pageNumber - intNumOfPages + 2;
	}

	for (var i=index;(i<index+intNumOfPages) && (i <= intMaxPage);i++){							
		if (i==pageNumber){
			objPage += makePageActive(idTab, i);
		}else{
			objPage += makePageItem(idTab, i);
		}
	}
	objPage += "</ul>";
	if (target)	
		target.innerHTML = objPage;
}	

function DrawButtonPaging(idTab, page){
	var priorPage = parseInt(page) - 1;
	var nextPage = parseInt(page) + 1;
	if (canBack(idTab)){
		document.write("<a href=\"javascript:goToPage('" + idTab + "','" + priorPage + "');\" accesskey=\"a\" class=\"button before\" title=\"Página anterior\">");
		document.write("<strong>anterior</strong>");
		document.write("</a>");						
	}
	if (canBack(idTab) || canForward(idTab)){
		document.write("<a href=\"javascript:goToPage('" + idTab + "','1');\">");
		document.write("<img hspace=\"5\" vspace=\"5\" border=\"0\" src=\"juez/img/bot_navegacion_home.gif\">");
		document.write("</a>");
	}
	if (canForward()){
		document.write("<a href=\"javascript:goToPage('" + idTab + "','" + nextPage + "');\" accesskey=\"s\" class=\"button after\" title=\"Página siguiente\">");
		document.write("<strong>siguiente</strong>");
		document.write("</a>");						
	}
}

function goToPage(idTab, toPage){
	getObject("frmBusqueda" + idTab).start.value = ((toPage-1) * getObject("frmFilter" + idTab).records.value)+1;
	getObject("frmBusqueda" + idTab).maxresults.value = parseInt(getObject("frmBusqueda" + idTab).start.value, 10) + parseInt(getObject("frmFilter" + idTab).records.value, 10) - 1;
	submitForm("frmBusqueda" + idTab, idTab, getObject(idTab + "resultados"));
}

function canBack(idTab){
	var recPerPage = parseInt(getObject("frmFilter" + idTab).records.value,10);
	var page = parseInt(getObject("frmFilter" + idTab).page.value,10);
	if ((page*recPerPage) > recPerPage){
		return true;
	}else{
		return false;
	}		
}

function canForward(idTab){
	var numHits =  parseInt(getObject("frmFilter" + idTab).total.value,10);
	var recPerPage = parseInt(getObject("frmFilter" + idTab).records.value,10);
	var page = parseInt(getObject("frmFilter" + idTab).page.value,10);
	if ((page*recPerPage) < numHits){
		return true;
	}else{
		return false;
	}		
}

function prior(idTab){
	if (canBack(idTab)){
		goToPage(idTab, getObject("frmFilter" + idTab).page.value);
	}
}

function next(idTab){
	if (canForward(idTab)){
		goToPage(idTab, getObject("frmFilter" + idTab).page.value);
	}
}								
/* FIN PAGINACION */

/* INICIO REFINAR */
function ordenar(idTab, enviar){
	if (getObject("frmFilter" + idTab)){
		if (getObject("frmFilter" + idTab).cbosort){
			getObject('frmBusqueda' + idTab).sort.value = getObject("frmFilter" + idTab).cbosort.value;
		}
		if (getObject("frmFilter" + idTab).cboresults){
			getObject("frmBusqueda" + idTab).recordsPerPage.value = getObject("frmFilter" + idTab).cboresults.value;
		}
	}
	refinar(idTab, enviar);
}

function refinar(idTab, enviar){
	getObject("frmBusqueda" + idTab).action.value = "query";
	getObject("frmBusqueda" + idTab).maxresults.value = "";
	getObject("frmBusqueda" + idTab).start.value = "1";

	//NUMERO ROJ			 
	if ((trim(getObject("frmBusqueda" + idTab).ROJ1.value)!='') &&
	    (trim(getObject("frmBusqueda" + idTab).ROJ2.value)!=''))
		getObject("frmBusqueda" + idTab).ROJ.value = getObject("frmBusqueda" + idTab).ROJ1.value + "/" +
	  		getObject("frmBusqueda" + idTab).ROJ2.value;
	//NUMERO DE RECURSO			 
	if ((trim(getObject("frmBusqueda" + idTab).NUMERORECURSO1.value)!='') &&
	    (trim(getObject("frmBusqueda" + idTab).NUMERORECURSO2.value)!=''))
		getObject("frmBusqueda" + idTab).NUMERORECURSO.value = getObject("frmBusqueda" + idTab).NUMERORECURSO1.value + "/" +
	  		getObject("frmBusqueda" + idTab).NUMERORECURSO2.value;			 
	//Si el campo de añadidos de las comunidades esta vacio y tiene seleccionado alguna CCAA o provincia
	//advertimos al usuario
	if (getObject("frmBusqueda" + idTab).VALUESCOMUNIDAD != undefined && trim(getObject("frmBusqueda" + idTab).VALUESCOMUNIDAD.value) == ''){
		var comunidad = getObject("frmBusqueda" + idTab).COMUNIDADEDI.value;
		var provincia = getObject("frmBusqueda" + idTab).PROVINCIAEDI.value;
		var sede = getObject("frmBusqueda" + idTab).SEDEEDI.value;
		var entro = false;
		if (comunidad.length > 0 && comunidad != 'TODAS') entro = true;
		if (provincia.length > 0 && provincia != 'TODAS') entro = true;
		if (sede.length > 0 && sede != 'TODAS') entro = true;
		
		if (entro){
		    alert('No ha añadido los valores seleccionados de las comunidades.');
		    return false;
		}
	}
	//Validamos las fechas
	var fecha = getObject("frmBusqueda" + idTab).FECHARESOLUCIONDESDE.value;
	fecha = trim(fecha);
	if ((fecha.length > 0 && !isDate(fecha)) || (fecha.length > 0 && !anyo4digitos(fecha))){
		alert("El contenido del campo Fª Resolución desde no es válido.\n Los formatos de fechas que aceptamos son DD/MM/AAAA y DD-MM-AAAA");
		return false;
	}
	var fecha = getObject("frmBusqueda" + idTab).FECHARESOLUCIONHASTA.value;
	fecha = trim(fecha);
	if ((fecha.length > 0 && !isDate(fecha)) || (fecha.length > 0 && !anyo4digitos(fecha))){
		alert("El contenido del campo Fª Resolución hasta no es válido.\n Los formatos de fechas que aceptamos son DD/MM/AAAA y DD-MM-AAAA");
		return false;
	}
	if (enviar){
		submitForm("frmBusqueda" + idTab, idTab, getObject(idTab + "resultados"));
	}
}

function limpiar(idTab){
	var inputs = getObject("frmBusqueda" + idTab).getElementsByTagName("INPUT");
	for (var i=0; i<inputs.length; i++){
		var input = inputs[i];
		if (input.type == 'hidden' || input.type == 'text'){
			if (input.id.toLowerCase()!='action' && input.id.toLowerCase()!='databasematch')
				input.value = '';
		}else if (input.type == 'checkbox'){
			input.checked = false;
		}else if (input.type == 'radio'){
			if (input.value == "TODAS" || input.value == "Texto"){
				input.checked = true;
			}else{
				input.checked = false;
			}
		}
	}
	var selects = document.getElementsByTagName("SELECT");
	for (var i=0; i<selects.length; i++){
		var select = selects[i];
		select.options[0].selected = true;
	}
	var textareas = document.getElementsByTagName("TEXTAREA");
	for (var i=0; i<textareas.length; i++){
		var textarea = selects[i];
		textarea.value = "";
	}
}

function setText(idTab, text){
	getObject("frmBusqueda" + idTab).TEXT.value = text;
	refinar(idTab, true);
}

function addText(idTab, text){
	if (getObject("frmBusqueda" + idTab).TEXT.value.length > 0){
		getObject("frmBusqueda" + idTab).TEXT.value += " AND ";
	}
	getObject("frmBusqueda" + idTab).TEXT.value += text;
	refinar(idTab, true);
}

var txt = null;

function setInput(caja){
	txt = caja;
}
	
function addOperator(operator, formName){
	if (txt){
		if (txt.getAttribute("autocomplete")==null || operator==' OR ' || operator==' NOT ') {
			txt.focus();
			txt.value = txt.value + operator;
		    setCursorAtEnd(txt); 
		}
	} else if (getObject(formName)){
		getObject(formName).TEXT.focus();
		getObject(formName).TEXT.value = getObject(formName).TEXT.value + operator;
		setCursorAtEnd(getObject(formName).TEXT); 
	}
}

function setCursorAtEnd(obj){
	if(obj.createTextRange) { 
		var range = obj.createTextRange(); 
		range.move("character", obj.value.length); 
		range.select();
	} else if(obj.selectionStart) { 
		obj.setSelectionRange(obj.value.length, obj.value.length); 
		obj.scrollLeft=obj.value.length;
	}
}
/* FIN REFINAR */

/* Funcion que parsea una url y establece los valores de los parametros 
	en sus correspondientes cajas */
function parseUrl(idTab, url){
	//Limpiamos el formulario
	limpiar(idTab);
	//Establecemos los parametros
	if (url.indexOf("?") != -1){
		url = url.substring(url.indexOf("?")+1);
	}
	var params = url.split("&");
	var inputs = getObject("frmBusqueda" + idTab).getElementsByTagName("INPUT");
	for (var p=0; p<params.length; p++){
		var param = params[p];
		var values = param.split("=");
		for (var i=0; i<inputs.length; i++){
			var input = inputs[i];
			if (input.name == values[0]){
				if (input.tagName.toLowerCase() == "input"){
					if (input.type == 'hidden' || input.type == 'text'){
						input.value = values[1];
					}else if (input.type == 'radio' || input.type == 'checkbox'){
						if (input.value == values[1]){
							input.checked = true;
						}
					}
				}else if (input.tagName.toLowerCase() == "select"){
					input.value = values[1];
				}
			}
		}
	}
}

/* Realizar la búsqueda de últimas 50 sentencias */
function getLastResults(texto, seccion){
	//Limpiamos el formulario
	limpiar("jurisprudencia");
	//Establecemos los parametros
	getObject("frmBusquedajurisprudencia").action.value = "getlastsentences";
	getObject("frmBusquedajurisprudencia").JURISDICCION.value = texto;
	getObject("frmBusquedajurisprudencia").JURISDICCIONTMP.value = texto + ",";
	getObject(texto).checked = true;
	getObject("frmBusquedajurisprudencia").TIPORESOLUCION.value = "SENTENCIA";
	getObject("frmBusquedajurisprudencia").TIPORESOLUCIONTMP.value = "SENTENCIA,";
	getObject("SENTENCIA").checked = true;
	//getObject("frmBusquedajurisprudencia").TIPOORGANOPUB.value = "11|12|13|14|15|16";
	getObject("frmBusquedajurisprudencia").recordsPerPage.value = "10";
	getObject("frmBusquedajurisprudencia").sort.value = "IN_FECHARESOLUCION:numberdecreasing";
	getObject("frmBusquedajurisprudencia").databasematch.value = "TS";
	if (seccion)
		getObject("frmBusquedajurisprudencia").SECCION.value = seccion;
	//Lanzamos la busqueda
	submitForm("frmBusquedajurisprudencia", "jurisprudencia", getObject("jurisprudenciaresultados"));
}


var openedDocs = new Array();

function markOpenedDoc(alinkid){
	var alink = getObject(alinkid);
	if (alink && alink.id.length>0) {
		markLink(alink);
		if (!contiene(openedDocs, alink.id))
			openedDocs[openedDocs.length]=alink.id;
	}	
}

function markLink(alink){
	if (alink && alink.style)
		alink.style.color="#1212FF";
}

function contiene(arr, item){
	for(var i=0;i<arr.length;i++) {
		if (arr[i]==item) {return true;} 
	}
	return false;
}

function markOpenedLinks(container){
	
	var alinks = getObject(container).getElementsByTagName("a");
	
	for (var i=0; i<openedDocs.length; i++){
		alink = getObject(openedDocs[i]);
		if (alink) {
			markLink(alink);
		}
	}
}