jQuery(function($) {
	
	initRupI18nPromise.then(function () {
		initFilter();			
		initTable();
	});	
	
	
	const initFilter = () => {
		Ad74aUtils.configCombo($("#idProcedimiento00_filter_table"), {
			loadFromSelect: true,
			onLoadSuccess: function(obj){
				$("#idProcedimiento00_filter_table").rup_combo("setRupValue", $("#procedureid12").val());
				$("#idProcedimiento00_filter_table").rup_combo("refresh");
			}
		});
	}
		
	
	const initTable = () => {		
		
		const getColumnsModel = function () {
			const getColumnModel = function (name, index, editable, hidden, orderable) {
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					orderable: orderable
					
				}
			};
			let columnsModel = [];
			columnsModel.push(getColumnModel("numExpediente00", "numExpediente00", false, false));
			columnsModel.push(getColumnModel("solicitantes.identificador01", "solicitantes.identificador01", false, false));
			columnsModel.push(getColumnModel("solicitantes.nombre01", "solicitantes.nombre01", false, false));
			
			return columnsModel;
		};

		const getColumnsDefs = function () {
			return [
				{ 
					"targets": 2,
	    		    "render": function(data, type, rowData, settings){
	    		    	if(rowData.solicitantes != null && typeof rowData.solicitantes != 'undefined'){
	    		    		let identificador = rowData.solicitantes.identificador01 != null ? rowData.solicitantes.identificador01 : '';
	    		    		let nombre = rowData.solicitantes.nombre01 != null ? rowData.solicitantes.nombre01 : '';
	    		    		let ape1  = rowData.solicitantes.apellido101 ? rowData.solicitantes.apellido101 : '';
	    		    		let ape2 =  rowData.solicitantes.apellido201 ? rowData.solicitantes.apellido201 : '';
	    		    		return  ape1 + " " + ape2 + ", " + nombre;	
		//		    		return  identificador + " - " + ape1 + " " + ape2 + ", " + nombre;	
	    		    	}else return '';
	    		    	
	    		    	
	    		    }
				}
			];
		};

		const getCustomButtons = function () {
			let customButons = [];
			
			const FN_SeleccionarDisplay = {};
			FN_SeleccionarDisplay.test  = function(){
				const selectedRows  = $("#buscarExpediente").rup_table("getSelectedRows");	
				if ( selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			const seleccionarButton = {
				text: function () {
					return $.rup.i18n.app.botonera.seleccionar;
				},
				id: 'seleccionar', // Campo obligatorio si se quiere usar desde el contextMenu
				className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
				icon: "mdi-check-bold",
				displayRegex: FN_SeleccionarDisplay,
				insideContextMenu: true,
				//type: 'view',
				action: function (e, dt) {
					const expediente = $("#buscarExpediente").rup_table("getSelectedRows");
					$("#idExpediente00Detail").val(expediente.idExpediente00);
					$("#numExpediente00Detail").val(expediente.numExpediente00);
					$("#numExpediente00Buscar").val(expediente.numExpediente00);
					$("#clearExpedienteBtn").removeClass("d-none");
					cerrarCapaBuscarExpediente();
				}
			};
			customButons.push(seleccionarButton);
			
			const cancelButton = {
					text: function () {
						return $.rup.i18n.app.botonera.cancelar;
					},
					id: 'cancelSeleccionar', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-danger-medium-emphasis table_toolbar_btnView',
					icon: "mdi-close",
					displayRegex: /^\d+$/,
					insideContextMenu: true,
					//type: 'view',
					action: function (e, dt) {
						cerrarCapaBuscarExpediente();
					}
				};
			
				customButons.push(cancelButton);
			
			return customButons;
		};
		
		$("#buscarExpediente").rup_table({
			colReorder: {
				fixedColumnsLeft: 1
			},
			colModel: getColumnsModel(),
			columnDefs: getColumnsDefs(),
			primaryKey: "idExpediente00",
			filter: {
				id: "buscarExpediente_filter_form",
				filterToolbar: "buscarExpediente_filter_toolbar",
				collapsableLayerId: "buscarExpediente_filter_fieldset"
			},
			createTooltipBody: false,// No muestra el tooltip automático de las columnas de la tabla
			select: {
				activate: true
			},
			loadOnStartUp: false,
			buttons: {
				activate: true,
				blackListButtons: ['reportsButton', 'addButton', 'editButton', 'cloneButton', 'deleteButton'],
				myButtons: getCustomButtons()
			},
			"rowCallback": function( row, data, index ) {},
			drawCallback: function( settings ) {},
			columnOrderArrows: {
			    showOnlyActive: false,
			    display: 'inline'
			},
			order: [[0, "desc"]]
		});
		
		const cerrarCapaBuscarExpediente = () => {
			$("#expediente_filter_layer").addClass("plegado");
			$("#detalleAportacionLayer").removeClass("on");
			$("#overlay-buscar").addClass("d-none");
		}
						
	}
	
			
});