



function incluirFragmentoConContador(campoFragmento, nombreURL, campoContador,limiteSuperior, mensaje) 
{
	if (DWRUtil.getValue(campoContador) == limiteSuperior) {
		if (mensaje != null)
			alert(mensaje);
	} else { 		
		ProxyDWR.obtenerFragmento(nombreURL, function(data) {
			$j('#'+campoFragmento).before(data); 
			DWRUtil.setValue(campoContador, new Number(DWRUtil.getValue(campoContador))+ 1);
		});
	}	
}


function borrarFragmento(arrayElementosABorrar, campoContador, limiteInferior, mensaje)
{
	if (DWRUtil.getValue(campoContador) == limiteInferior) {
		if (mensaje != null)
		alert(mensaje);
	} else {
		for (var i in arrayElementosABorrar)
			$j('#'+arrayElementosABorrar[i]).remove();
		DWRUtil.setValue(campoContador, new Number(DWRUtil.getValue(campoContador))- 1);
	}
}

//	return function (){var m1=requestData; m2=showDialog; m1(''); m2();};

function autocompletarCampo(campoACompletar, urlAInvocar, funcionFormateo, parametrosExtra)
{

	$j("#"+campoACompletar).unbind();
	$j("#"+campoACompletar).autocomplete(
		urlAInvocar,
		{
			delay:1,
			minChars:1,
			matchSubset:1,
			cacheLength:100,
			formatItem:funcionFormateo,
			autoFill:true,
			selectOnly:true,
//			mustMatch:1,
//			selectFirst:true,
			extraParams:parametrosExtra
		});
}

/*
 * autocompletarMunicipio: Realiza el autocompletado de un campo de texto
 * de municipio (dentro de una provincia)
 * 
 * @param campoACompletar: Campo del municipio a autocompletar Ej. 'h1c04'
 * @param nombreProvincia: Nombre de la provincia Ej. 'SEVILLA'
 */
function autocompletarMunicipio(campoACompletar, nombreProvincia)
{	

	ocultarResultados(campoACompletar);
	$(campoACompletar).value='';
	autocompletarCampo(campoACompletar,
						"../../modelos/comun/buscarMunicipios.jsp",
						formatearMunicipio,
						{'provincia':nombreProvincia});
}

//crs006: carga las descripciones de los conceptos según la fecha de devengo
function autocompletarDescripcionConcepto600(campoACompletar)
{	
	var fdevengo = $('h1c002').value;
	var concepto = $('concepto').value;
	if(esVacio(fdevengo)){
		return
	}else{
		if(esVacio(concepto)){
			$(campoACompletar).value='';
		}
		ocultarResultados(campoACompletar);
		autocompletarCampo(campoACompletar,
						"buscarDescripcionConcepto.jsp",
						formatearDescripcionConcepto600,
						{'casilla':fdevengo});
	}
}

function autocompletarDescripcionConcepto600Lupa(campoACompletar)
{	
	var fdevengo = $('h1c002').value;
	var concepto = $('concepto').value;
	if(esVacio(fdevengo)){
		alert("Debe rellenar la Fecha de Devengo");
	}else if (esVacio(concepto))
	{
		ocultarResultados(campoACompletar);
		$(campoACompletar).value='';
		autocompletarCampo(campoACompletar,
						"buscarDescripcionConcepto.jsp",
						formatearDescripcionConcepto600,
						{'casilla':fdevengo});
		
		
	}
}

//crs006: si borramos el concepto, reseteamos la descripcion
function actualizaConcepto600(){
	
	var concepto = $('concepto').value;
	var devengo = $('h1c002').value;
	
	if(esVacio(devengo)){
	    document.forms[0].concepto.value = "";
		document.forms[0].h1c004.value = "";
		document.forms[0].descripcionc.value = "";
	    alert("Introduzca la fecha de devengo antes de seleccionar el concepto.");
		document.forms[0].h1c002.focus();
	}else{
		if(esVacio(concepto)){
			$('descripcionc').value='';
			$('h1c004').value='';
			autocompletarDescripcionConcepto600('descripcionc');
		}
	}
	
	
}

function actualizaDescripcion600(){
	var descripcion = $('descripcionc').value;
	if(esVacio(descripcion)){
		$('concepto').value='';
		$('h1c004').value='';
		autocompletarDescripcionConcepto600('descripcionc');
	}
}

function autocompletarMunicipioVuelta(campoACompletar, nombreProvincia)//, e)
{	

	if ($(campoACompletar).autocompleter==null && nombreProvincia!="")
	{
	 	var estadoAnterior=$('estado').value;
		//$j('#'+campoACompletar).focus();
		autocompletarCampo(campoACompletar,
						"../../modelos/comun/buscarMunicipios.jsp",
						formatearMunicipio,
						{'provincia':nombreProvincia});
		$('estado').value=estadoAnterior; // Restauro el estado anterior
	}
}



function mostrarListaLupaMunicipios(campoACompletar,nombreProvincia)
{
	// Si le da a la lupa pero no tiene cargado el evento se carga primero
	autocompletarMunicipioVuelta(campoACompletar,nombreProvincia);
	// Se hace la petición al servidor para que despliegue la lista
	desplegarLista(campoACompletar);
}

function formatearMunicipio(row) 
{	
	return row[0]; 
}


// Despliega la lista sin ningún dato (es el funcionamiento requerido par las lupas)
function desplegarLista(campoACompletar)
{
	// Cuando pulsas si no esta cargado el evento no tiene que hacer la llamada
		if ($(campoACompletar).readOnly!=true) {	
			
			if ($(campoACompletar).autocompleter!=null)
			{		
				//$(campoACompletar).value='';
				$j('#'+campoACompletar).focus();
				$(campoACompletar).autocompleter.requestData('');
			}
	}
	else {
		alert("No es posible modificar el campo.");
	}
	
}


// Está función se invocará en el onBlur
// hay que poner la detección del tab o del enter (incluso del click)
// para que se ejecute solamente al cambiar realmente de casilla
// sino da problemas en IExplorer
function ocultarResultados(campoACompletar)
{
	if ($(campoACompletar).autocompleter!=null)
	{
		$(campoACompletar).autocompleter.hideResults();
	}
}

function manejadorEventos (campo, event) {
         var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
         if (keyCode == 13) //Tecla Intro
         {
         	ocultarResultados(campo.id);
	 		cambiarFoco(campo);         	
         }
         else if (keyCode == 9) // Tecla TAB
		 {
		 		ocultarResultados(campo.id);
	//	 			 		cambiarFoco(campo);         	
		 }
         else
        	 return true;
     }    
     
function cambiarFoco(campo)
{
	indiceSiguiente=campo.tabIndex+1;
 	encontrado=false;
 	frm=document.forms[0];
 	for (var e=0; e<frm.length && !encontrado; e++){
        if(frm[e].type=="text" && frm[e].tabIndex == indiceSiguiente)
        {
        	encontrado=true;
        	if (!frm[e].disabled)
	        	frm[e].focus();
        }
    } 
}
