// Inicialitzacions del portlet
// Afegim els events necesaris als components de la pantalla
function initTucarroyaPortlet(portletId, idioma){
	if (jQuery('#'+portletId+"_PARAM_v_idprovincia") && jQuery('#'+portletId+"_PARAM_v_idcomarca")) {
		jQuery('#'+portletId+"_PARAM_v_idprovincia").bind("change", function(e){cercador_getComarquesByProvincia(portletId, idioma);});
	}
	if (jQuery('#'+portletId+"_PARAM_v_idprovincia") && jQuery('#'+portletId+"_PARAM_v_idcp")) {
		jQuery('#'+portletId+"_PARAM_v_idprovincia").bind("change", function(e){cercador_getMunicipisByProvincia(portletId, idioma);});
	}
	if (jQuery('#'+portletId+"_PARAM_v_idprovincia") && jQuery('#'+portletId+"_PARAM_localitat")) {
		jQuery('#'+portletId+"_PARAM_v_idprovincia").bind("change", function(e){cercador_getLocalitatsByProvincia(portletId, idioma);});
	}
	
	if (jQuery('#'+portletId+"_PARAM_v_idcomarca") && jQuery('#'+portletId+"_PARAM_v_idcp")) {
		jQuery('#'+portletId+"_PARAM_v_idcomarca").bind("change", function(e){cercador_getMunicipisByComarca(portletId, idioma);});
	}
	if (jQuery('#'+portletId+"_PARAM_v_idcomarca") && jQuery('#'+portletId+"_PARAM_v_localitat")) {
		jQuery('#'+portletId+"_PARAM_v_idcomarca").bind("change", function(e){cercador_getLocalitatsByComarca(portletId, idioma);});
	}
	
	if (jQuery('#'+portletId+"_PARAM_v_idcp") && jQuery('#'+portletId+"_PARAM_v_localitat")) {
		jQuery('#'+portletId+"_PARAM_v_idcp").bind("change", function(e){cercador_getLocalitatsByMunicipi(portletId, idioma);});
	}
	jQuery('#'+portletId+"_btoCercar").bind("click", function(e){cercador_ferCerca(portletId, idioma);});
}

// Realitza la cerca, inicialitzant la paginacio
function cercador_ferCerca(portletId, idioma){
	getPage(portletId,1);
}
// Recupera les comarques de la provincia
function cercador_getComarquesByProvincia(portletId, idioma) {
	var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
	LocalitatsService.getComarquesByProvincia(idProvincia, idioma, 
			function(data){
				cercador_getComarquesCallback(portletId, data);
			}, addError);
}
// Recupera els municipis de la provincia
function cercador_getMunicipisByProvincia(portletId, idioma){
	var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
	
	if (idProvincia != null && idProvincia.trim() != '') {
		LocalitatsService.getMunicipisByProvincia(idProvincia, idioma, 
				function(data){
					cercador_getMunicipisCallback(portletId, data);
				}, addError);
	} else{
		// Si la provincia no es troba seleccionada, recuperem la comarca
		var idComarca = jQuery('#'+portletId+'_PARAM_v_idcomarca')[0].value;
		LocalitatsService.getMunicipisByComarca(idComarca, idioma, 
				function(data){
					cercador_getMunicipisCallback(portletId, data);
				}, addError);
	}
}
// Recupera els municipis de la comarca
function cercador_getMunicipisByComarca(portletId, idioma) {
	var idComarca = jQuery('#'+portletId+'_PARAM_v_idcomarca')[0].value;
	if (idComarca != null && idComarca.trim() != '') {
		LocalitatsService.getMunicipisByComarca(idComarca, idioma, 
			function(data){
				cercador_getMunicipisCallback(portletId, data);
			}, addError);
	} else {
		// Mirem els municipis de la provincia
		var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
		LocalitatsService.getMunicipisByProvincia(idProvincia, idioma, 
			function(data){
				cercador_getMunicipisCallback(portletId, data);
			}, addError);
	}
}
// Recupera les localitats de la provincia
function cercador_getLocalitatsByProvincia(portletId, idioma) {
	var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
	if (idProvincia != null && idProvincia.trim() != '') {
		LocalitatsService.getLocalitatsByProvincia(idProvincia, idioma, 
			function(data){
				cercador_getLocalitatsCallback(portletId, data);
			}, addError);
	} else {
		var idComarca = jQuery('#'+portletId+'_PARAM_v_idcomarca')[0].value;
		if (idComarca != null && idComarca.trim() != '') {
			LocalitatsService.getLocalitatsByComarca(idComarca, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		} else {
			var idCp = jQuery('#'+portletId+'_PARAM_v_idcp')[0].value;
			LocalitatsService.getLocalitatsByMunicipi(idCp, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		}
	}
}
// Recupera les localitats de la comarca
function cercador_getLocalitatsByComarca(portletId, idioma) {
	var idComarca = jQuery('#'+portletId+'_PARAM_v_idcomarca')[0].value;
	if(idComarca != null && idComarca.trim() != ''){
		LocalitatsService.getLocalitatsByComarca(idComarca, idioma, 
			function(data){
				cercador_getLocalitatsCallback(portletId, data);
			}, addError);
	} else {
		var idCp = jQuery('#'+portletId+'_PARAM_v_idcp')[0].value;
		if (idCp != null && idCp.trim() != '') {
			LocalitatsService.getLocalitatsByMunicipi(idCp, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		} else {
			var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
			LocalitatsService.getLocalitatsByProvincia(idProvincia, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		}
	}
}
//Recupera les localitats del municipi
function cercador_getLocalitatsByMunicipi(portletId, idioma) {
	var idCp = jQuery('#'+portletId+'_PARAM_v_idcp')[0].value;
	if (idCp != null && idCp.trim() != '') {
		LocalitatsService.getLocalitatsByMunicipi(idCp, idioma, 
			function(data){
				cercador_getLocalitatsCallback(portletId, data);
			}, addError);
	} else {
		var idComarca = jQuery('#'+portletId+'_PARAM_v_idcp')[0].value;
		if(idComarca != null && idComarca.trim() != ''){
			LocalitatsService.getLocalitatsByComarca(idComarca, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		} else {
			var idProvincia = jQuery('#'+portletId+'_PARAM_r_idprovincia')[0].value;
			LocalitatsService.getLocalitatsByProvincia(idProvincia, idioma, 
				function(data){
					cercador_getLocalitatsCallback(portletId, data);
				}, addError);
		}
	}
}

// Funcio de callback que omple la llista de localitats recuperada
function cercador_getLocalitatsCallback(portletId,data)
{
	var jsonData = eval('(' + data + ')');
	// Eliminem les opcions actuals
	jQuery('#'+portletId+"_PARAM_v_localitat")[0].length = 1;
	// Afegim les noves
	for(var i=0;i<jsonData.length;i++) {
		jQuery('#'+portletId+"_PARAM_v_localitat").append("<option value='"+jsonData[i].id+"'>"+jsonData[i].descripcion+"</option>");
	}
}
//Funcio de callback que omple la llista de localitats recuperada
function cercador_getMunicipisCallback(portletId,data)
{
	var jsonData = eval('(' + data + ')');
	// Eliminem les opcions actuals
	jQuery('#'+portletId+"_PARAM_v_idcp")[0].length = 1;
	// Afegim les noves
	for(var i=0;i<jsonData.length;i++) {
		jQuery('#'+portletId+"_PARAM_v_idcp").append("<option value='"+jsonData[i].cp+"'>"+jsonData[i].descripcion+"</option>");
	}
}
//Funcio de callback que omple la llista de localitats recuperada
function cercador_getComarquesCallback(portletId,data)
{
	var jsonData = eval('(' + data + ')');
	// Eliminem les opcions actuals
	jQuery('#'+portletId+"_PARAM_v_idcomarca")[0].length = 1;
	// Afegim les noves
	for(var i=0;i<jsonData.length;i++) {
		jQuery('#'+portletId+"_PARAM_v_idcomarca").append("<option value='"+jsonData[i].id+"'>"+jsonData[i].descripcion+"</option>");
	}
}
// Recupera la pagina pasada per paràmetre
function getPage(portletId, page) {
	// La primera peticio no existeix la paginacio
	if (jQuery('#'+portletId+'_page')[0] != undefined) {
		jQuery('#'+portletId+'_page')[0].value = page;
	}
	jQuery('#'+portletId+'_form')[0].submit();
}