//FASSES
var modoDetalleFase="";
var limpiando = false;
function inicializar01(){
	//console.log(1);
	$("#FasesExpedientes_feedback").rup_feedback({
		fadeSpeed: 600,
		block:false
	});
	
	//Quito el evento click del botón guardar
	$("#FasesExpedientes_detail_button_save").die("click");

	
	//Combo situación en pantalla búsqueda
	$("#situ01_filter_table").rup_combo({
		source:[
		        {i18nCaption:$.rup.i18n.app.situ_detail_table.todas, value:""},
		        {i18nCaption:$.rup.i18n.app.situ_detail_table.alta, value:"A"},
		        {i18nCaption:$.rup.i18n.app.situ_detail_table.baja, value:"B"}
		],
		sourceParam:{},
		ordered: false,
		method: 'GET',
		style: "dropdown",

		onLoadSuccess: function(){
			$("#situ01_filter_table").rup_combo("selectLabel", $("situ01_filter_table").val());
		}
	});
	//Ponemos por defecto el filtro de búsqueda en situación Alta
	$("#situ01_filter_table").rup_combo("select","A");
	
	
	//Combo multiselección Servicios para posterior búsqueda
	$("#cserv01_filter_table").rup_combo(
	{
		source: "../aa21b15s01/comboServiciosResponsables",
		sourceParam : {
			label : idioma == 'es' ? "DServ13"
					: "EServ13",
			value : "CServ13"
		},
		width : 300,
		showValue: true,
		token: " - ",
//		multiselect : true,
//		multiOptgroupIconText : true,
		submitAsString : true,
		method : 'GET',
		filterMultiple:true,
		disabled:true,
		selected:$("#cserv13_filter_table").val()
	});
	
	//Combo multiselección Servicios para posterior búsqueda
	$("#ctipoe01_filter_table").rup_combo(
	{
		//parent : [ "cserv01_filter_table" ],
		source: "../aa21b02s01/comboTiposExpedienteServicio?cserv01="+$("#cserv13_filter_table").val(),
		sourceParam : {
			label : idioma == 'es' ? "dtipoe02"
					: "etipoe02",
			value : "ctipoe02"
		},
		width : 300,
		showValue: true,
		token: " - ",
		method : 'GET',
		multiselect : true,
		multiOptgroupIconText : true,
		submitAsString : true,
		filterMultiple:true
	});
	
	/**
	 * Función para que cuando cambie el valor en el combo de tipo expediente, se filtre automáticamente los
	 * resultados
	 */
 
	$("#ctipoe01_filter_table").on("change",function(event) {
		if (!limpiando) {
			setTimeout(function() {
				$("#FasesExpedientes_filter_filterButton").click();
			}, 100);
		}
	});
	
	
	/**
	 * Función cuando cambia el valor en el combo de servicios
	 */
	$("#cserv01_filter_table").on("change",function(event) {
		setTimeout(function() {
			
			var numSeleccionados = $("#cserv01_filter_table").rup_combo("value").length;
			if (numSeleccionados != 0) {
				
				// retrasamos la recarga del combo de organos, para
				// asegurarnos que se ha recogido el valor del dpto
				$("#ctipoe01_filter_table").rup_combo("enable");
				$("#ctipoe01_filter_table").rup_combo("reload");
			} else {
				$("#ctipoe01_filter_table").rup_combo("clear");
				$("#ctipoe01_filter_table").rup_combo("disable");
			}
			
			$("#FasesExpedientes").rup_table("setSelection", $("#FasesExpedientes").rup_table("getSelectedRows"), false);
			if($("#cserv01_filter_table").val() != null){
				$("#FasesExpedientes").rup_table("filter");
			}else{
				$("#FasesExpedientes").rup_table("clearGridData");
			}	
		},200);
		
	});
	
	//Combo tipos expedientes detalle
	$("#cserv01_detail_table").rup_combo(
	{
		source: "../aa21b13s01/comboServicios",
		sourceParam : {
			label : idioma == 'es' ? "DServ13"
					: "EServ13",
			value : "CServ13"
		},
		width : "550",
		blank: "",
		selected:""
	});
	
	
	//Combo tipos expedientes detalle
	$("#ctipoe01_detail_table").rup_combo(
	{
		parent:["cserv01_detail_table"],
		source: "../aa21b02s01/comboTiposExpedienteServicio",
		sourceParam : {
			label : idioma == 'es' ? "dtipoe02"
					: "etipoe02",
			value : "ctipoe02"
		},
		width : "550",
		blank: "",
		selected:""
	});
	
	//Tabla grid fases expedientes
	$("#FasesExpedientes").rup_table({
		rowNum:20,
		url: "../aa21b01s01",
		colNames: [
		    "id",
		    $.rup.i18n.app.aa21b01s01.gfase01,
		    $.rup.i18n.app.aa21b01s01.ctipoe01,
		    $.rup.i18n.app.aa21b01s01.cfase01,
		    $.rup.i18n.app.aa21b01s01.dfase01,
		    $.rup.i18n.app.aa21b01s01.efase01,
		    $.rup.i18n.app.aa21b01s01.situ01,
		    $.rup.i18n.app.aa21b01s01.ndocu01,
		    $.rup.i18n.app.aa21b01s01.tdocu01
			
		],
		colModel: [
		    { 	
		    	name: "idFase", 
		    	label: "id",
		    	hidden: true 
		    },       
			{ 	name: "cserv01", 
			 	label: "cserv01",
				align: "left", 
				hidden: true 
			},
			{ 	name: "ctipoe01", 
			 	label: "ctipoe01",
				align: "left", 
				width: 75, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: false
			},
			{ 	name: "cfase01", 
			 	label: "cfase01",
				align: "right", 
				width: 75, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: false
			},
			{ 	name: "dfase01", 
			 	label: "dfase01",
				align: "left", 
				width: 250, 
				editable: true, 
				fixed: false, 
				hidden:  false, 
				resizable: true, 
				sortable: false
			},
			{ 	name: "efase01", 
			 	label: "efase01",
				align: "left", 
				width: 250, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: false
			},
			{ 	name: "situ01", 
			 	label: "situ01",
				align: "left", 
				width: 100, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: false
			},
			{ 	name: "codPid01", 
			 	label: "codPid01",
				hidden: true 
			},
			{ 	name: "tdocu01", 
			 	label: "tdocu01",
				hidden: true 
			}
			
        ],

        model:"Aa21b01s01",
        usePlugins:[
			"formEdit",
        	"feedback",
			"toolbar",
        	"contextMenu",
        	"fluid",
        	"filter",
        	"multiselection"
         	],
		primaryKey: "idFase",
		multiplePkToken:";",
		//sortname: $.rup.lang=="es"?"situ01,dfase01":"situ01,efase01",
		//sortorder: "asc",
		loadOnStartUp: false,
		loadComplete:fncTableCompleteFasesExpedientes,
		toolbar:{
			newButtons:[
			    {
			    	id:"detalle",
			    	obj: {id:"detalle",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.detalle, css: "detalle"},
			    	ocultar:true,
			    	comportamiento:"edit",
			    	click:handlerConsultaFaseExp
			    },
			    {
					id:"cambioEstado",
					obj: {id:"cambioEstado",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.cambioEstado, css: "cambioEstado"},
					ocultar:true,
					comportamiento:"delete",
					click: handlerCambioEstadoFasesExp
				},
			    {
					id:"imprimir",
					obj: {id:"imprimir",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.imprimir, css: "rup-icon rup-icon-print"},
					comportamiento:"add",
					click: function() { handlerImprimirServTipoFase('01'); }
			    },
			    {
			    	id:"excel",
			    	obj: {id:"excel",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.excel, css: "excel"},
			    	comportamiento:"add",
			    	click: function() { handlerExcelServTipoFase('01'); }
			    }]
		},
		afterInsertRow : function(rowid, rowdata) {
			pintarFilaSituacion(rowid, rowdata, $(this), "situ01");
		},
        formEdit:{
        	detailForm: "#FasesExpedientes_detail_div",
			fillDataMethod: "clientSide",
			validate:{ 
    			rules:{
    				"cserv01":{
						required: true
    					},
    				"ctipoe01":{
						required: true
    					},
    				"cfase01":{
						required: true,dni:true
    					},
    				"dfase01":{
						required: true
    					},
    				"situ01":{
						required: true
    					},
    				"codPid01":{
						required: false
    					},
    				"tdocu01":{
						required: false
    					},
    				"efase01":{
						required: false
    					}
    				}
    		},
			addOptions:{
				beforeShowForm:function(){
					modoDetalleFase = "A";
					$("#fieldExpAsocFases").hide();
					//Ponemos el titulo en modo añadir y mostramos las marcas de obligatorio
					$("#ui-dialog-title-FasesExpedientes_detail_div").text($.rup.i18nParse($.rup.i18n.app,"mensajesMantGenerales.msjNuevoFase"));
					$("#labelObligFases").show();
					$(".asterisco").show();
					
					
					//Pongo los parámetros para que suba el documento con el formulario
					jQuery("#FasesExpedientes_detail_form").attr("enctype","multipart/form-data");	
					jQuery("#FasesExpedientes_detail_form").attr("method","POST");
					//action upload
					jQuery("#FasesExpedientes_detail_form").attr("action","../aa21b01s01/crearFaseExpediente");
					
					//Reseteo del formulario para dejar todo en modo alta y en blanco
					$("#cserv01_detail_table").rup_combo("enable");
					$("#ctipoe01_detail_table").rup_combo("enable");
					$("#FasesExpedientes").rup_table("resetForm", $("#FasesExpedientes_detail_form"));
					
					//Oculto el campo situación, al crear la fase, siempre será alta, le asigno el valor
					$("#divSituacion01").hide();
					$("#situ01_detail_table").val("A");
					
					//Muestro el botón cancelar
					$("#FasesExpedientes_detail_link_cancel").css("display","block");
					
					//oculto el campo código de la fase (será correlativo)
					$("#codFase").hide();
				},
				afterShowForm:function(){
					/**Funcion que valida si la fase tiene documento asociado o no**/
					validacionExisteDocumento();
					/**Funcion para que aparezca el botón guardar o no detalle**/
					validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
					
					//Pasamos al campo servicio y tipo los valores filtrados en la pantalla
					//suponiendo que quiere dar de alta una fase de ese servicio y tipo
					if($("#cserv01_filter_table").val() != null && $("#cserv01_filter_table").val() != ""){
						$("#cserv01_detail_table").rup_combo("select",$("#cserv01_filter_table").val());
						$("#cserv01_detail_table").rup_combo("setRupValue",$("#cserv01_filter_table").val());
					}else{
						$("#cserv01_detail_table").val("");
					}
					if($("#ctipoe01_filter_table").val() != null && $("#ctipoe01_filter_table").val() != ""){
						$("#ctipoe01_detail_table").rup_combo("select",$("#ctipoe01_filter_table").val());
						$("#ctipoe01_detail_table").rup_combo("setRupValue",$("#ctipoe01_filter_table").val());
					}else{
						$("#ctipoe01_detail_table").val("");
					}
					//
				},
				reloadAfterSubmit:true,
				width:"660"
			},
			
			editOptions:{
				beforeShowForm:function(){
					modoDetalleFase = "E";
					//Cargo expedientes asociados
					cargaAsociadosFase();
					
					var control=$("#docu01_detail_table"); 
           		 	control.replaceWith( control = control.clone( true ) );
           		 	
           		 	//Upload integrado en formulario
           			jQuery("#FasesExpedientes_detail_div").rup_upload({				
           				fileInput: $("#docu01_detail_table"),	
           				submitFormButton:$("#FasesExpedientes2_detail_button_save"),			
           				submitInForm:true
           			});
           		 	
           		 	
					//muestro el campo código de la fase (correlativo)
					$("#codFase").show();
					$("#situ01_detail_table").rup_combo("disable");
					//Si es consulta deshabilitaremos los campos
					if($("#modoDetalleFases").val() == "C"){
						$("#FasesExpedientes_detail_div :input").attr("readonly","readonly");
						
						$("#FasesExpedientes_detail_link_cancel").css("display","none");
						$("#adjuntarDocFase").hide();
						

						//Ponemos el titulo en modo modificar y mostramos las marcas de obligatorio
						$("#ui-dialog-title-FasesExpedientes_detail_div").text($.rup.i18nParse($.rup.i18n.base,"rup_grid.view.caption"));
						$("#labelObligFases").hide();
						$(".asterisco").hide();
						$(".ui-selectmenu-status").css("color","black");
						
					}else{
						//Ponemos el titulo en modo consulta y ocultamos las marcas de obligatorio
						$("#ui-dialog-title-FasesExpedientes_detail_div").text($.rup.i18nParse($.rup.i18n.base,"rup_grid.edit.editCaption"));
						$("#labelObligFases").show();
						$(".asterisco").show();
						
						$("#FasesExpedientes_detail_div :input").removeAttr("readonly");

						$("#FasesExpedientes_detail_link_cancel").css("display","block");
						$("#adjuntarDocFase").show();
						
					}
					validacionExisteDocumento();
					
					$("#cserv01_detail_table").rup_combo("disable");
					$("#ctipoe01_detail_table").rup_combo("disable");
					$("#cfase01_detail_table").attr("class","formulario_linea_input_disabled");
					$("#cfase01_detail_table").attr("readonly","readonly");
					$("#divSituacion01").show();
					
				},
				reloadAfterSubmit:true,
				width:"660"
			},
			addEditOptions:{
				afterShowForm:function(){
					$("#Servicios2_feedback").css("width","94%");
					/**Funcion para que aparezca el botón guardar o no detalle**/
					validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
					
					/**
					 * Hacer que cuando haga click en los botones de navegación recargue
					 * correctamente la validacion del botón guardar 
					 */
						$("#first_FasesExpedientes").on('click', function(){
							validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
						});
						$("#back_FasesExpedientes").on('click', function(){
							validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
						});
						$("#forward_FasesExpedientes").on('click', function(){
							validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
						});
						$("#last_FasesExpedientes").on('click', function(){
							validacionBotonGuardadoDocs('FasesExpedientes2','FasesExpedientes');
						});
				}
			},
			deleteOptions:{
				/* INI: BLOQUEO Y DESBLOQUEO AL ELIMINAR*/
				afterShowForm:function(){
					$("#Servicios2_feedback").css("width","94%");
					jQuery("#delmodFasesExpedientes").off("dialogclose.bloqueo").on("dialogclose.bloqueo", function() {
						desbloquear(jQuery("#FasesExpedientes"), "aa21b01s01");
					});
				}
				/* FIN: BLOQUEO Y DESBLOQUEO AL ELIMINAR */
			}	
    		
    		
        },
        feedback:{
        	id:"Servicios2_feedback"
        },
        onPaging: function(){
        	//Al paginar se deseleccionan todos los registros
        	
			$("#FasesExpedientes").rup_table("deselectAllRows");
		}
	});

	
	
	//Cambio de títulos y textos filtrar
	$("#FasesExpedientes_filter_toggle_label").text($.rup.i18n.app.comun.critBusq);
	$("#FasesExpedientes_filter_filterButton").val($.rup.i18n.app.comun.buscar);
	

	/**Función para que compruebe si tiene documento y cargue los expedientes
	 * asociados al pulsar en los botones de paginación 
	 */ 
	jQuery("#FasesExpedientes").on("jqGridAddEditAfterClickPgButtons", function(){
		validacionExisteDocumento();
		cargaAsociadosFase();
		return;
	});
	
	
	/* INI: BLOQUEO Y DESBLOQUEO */
	jQuery("#FasesExpedientes").on("rupTable_beforeDeleteRow", function(event, row) {
		//Creo el campo idFase con la concatenación de los campos PK y lo asigno a la variable del model
		$("#idFase_detail_table").val($("#cserv01_detail_table").val() + "-" + $("#ctipoe01_detail_table").val() + "-" + $("#cfase01_detail_table").val());
		return bloquear('edit', $(this), "aa21b01s01", "ctipoe01");
	});
	jQuery("#FasesExpedientes").on("jqGridAddEditBeforeInitData", function(event, form, oper) {
		if($("#modoDetalleFases").val() != "C"){
			return bloquear(oper, $(this), "aa21b01s01", "ctipoe01");
		}else{
			return true;
		}	
	});
	/**
	 * Función al cerrar la ventana dialogo. Desbloquea la fase,
	 * inicializa el campo file y limpia los registros de la tabla
	 */
	jQuery("#FasesExpedientes_detail_div").on("dialogclose", function() {
		if($("#modoDetalleFases").val() != "C"){
			desbloquear(jQuery("#FasesExpedientes"), "aa21b01s01");
		}
		$("#modoDetalleFases").val("");
		newFileInput=jQuery("#docu01_detail_table").clone(true).attr("value","").insertAfter(jQuery("#docu01_detail_table"));
		jQuery("#docu01_detail_table").remove();
		$("#ExpAsociadosDepar").rup_table("clearGridData",true);
		$("#FasesExpedientes").rup_table("deselectAllRows");
		$("#FasesExpedientes").rup_table("filter");
	});
	
	jQuery(window).bind('beforeunload', function() {
        // Aquí iría la función que desbloquea : 
		if($("#modoDetalleFases").val() != "C"){
			desbloquear(jQuery("#FasesExpedientes"), "aa21b01s01");
		}	
	});
	/* FIN: BLOQUEO Y DESBLOQUEO */
	

	/**
	 * Función al hacer click en el botón guardar
	 */
	$("#FasesExpedientes2_detail_button_save").on("click", function(event){
		//Si esta en la pantalla de editar, el código de fase tendra dato
		//Si no, le ponemos un 0 para que no casque la conversión con Jackson del campo idFase
		if($("#cfase01_detail_table").val() != ""){
			$("#idFase_detail_table").val($("#cserv01_detail_table").val() + "-" + $("#ctipoe01_detail_table").val() + "-" + $("#cfase01_detail_table").val());
		}else{
			$("#idFase_detail_table").val($("#cserv01_detail_table").val() + "-" + $("#ctipoe01_detail_table").val() + "-0");
		}	
		
		
		var properties={
				feedback:$("#FasesExpedientes_detail_feedback"),
		 	success: function(data) {
		 		$("#FasesExpedientes_detail_div").rup_dialog("close");
		 		$("#Servicios2_feedback").rup_feedback("option", "delay", defaultDelay);
		 		$("#Servicios2_feedback").rup_feedback("set",$.rup.i18nParse($.rup.i18n.base,"rup_table.modifyOK"), "ok");
		 		$("#Servicios2_feedback").rup_feedback("show");
		 	},	          	
		 	error : function(xhr, ajaxOptions, thrownError) {
	        	 var errorTXT = $.rup.i18nParse($.rup.i18n.base,"rup_maint.validateError"), errors = null, errorKey = null, causedErrors = null, errMsg = "", errorMesg = "";
	        	 if (xhr.responseText != null && xhr.responseText != "") {	
	        		 if (xhr.status === 406) {//si ha habido algun error...
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", null);
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("set",errorTXT + " " + xhr.responseText,"error");
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", defaultDelay);
	        		 } else {
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", null);
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("set", errorTXT, "error");								
	        			 $("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", defaultDelay);
	        		 }
	        	 }
      		},
      		validate:{ 
    			rules:{
    				"cserv01":{
						required: true
    					},
    				"ctipoe01":{
						required: true
    					},
    				"cfase01":{
						required: true
    					},
    				"dfase01":{
						required: true
    					},
    				"situ01":{
						required: true
    					},
    				"codPid01":{
						required: false
    					},
    				"tdocu01":{
						required: false
    					},
    				"efase01":{
						required: false
    					}
    				}
    		}
		};
		
		
		var valido = false;
		var formatosValidos = "rtf txt jpg doc docx pdf xlsx dot dotx";
		var formatos = formatosValidos.split(" ");
		var documento = $("#docu01_detail_table").val();
		if(documento == ""){
			valido = true;
		}else{
			var punto = documento.lastIndexOf('.');
			punto++;
			documento=documento.substring(punto, documento.length);
			documento=documento.toLowerCase();
			for (i=0;i<formatos.length;i++){
				if(documento==formatos[i]){
					valido=true;
					break;
				}
			}
		}	
		if(!valido){
			var errorTXT = $.rup.i18nParse($.rup.i18n.base,"rup_maint.validateError");
			$("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", null);
			$("#FasesExpedientes_detail_feedback").rup_feedback("set", errorTXT + " " + $.rup.i18n.app.mensajesMantGenerales.etFormatoDocNoVal, "error");								
			$("#FasesExpedientes_detail_feedback").rup_feedback("option", "delay", defaultDelay);
			
			$("<img src='/organizaciondocumental/rup/basic-theme/images/exclamation.png' class='error rup-maint_validateIcon'/>").appendTo($("#adjuntarDocFase"));
			
  	 		
		}else{
			$("#FasesExpedientes_detail_form").rup_form("destroy");
			$("#FasesExpedientes_detail_form").rup_form(properties);
		
			jQuery("#FasesExpedientes_detail_form").attr("enctype","multipart/form-data");	
			jQuery("#FasesExpedientes_detail_form").attr("method","POST");
			if(modoDetalleFase == "A"){
				jQuery("#FasesExpedientes_detail_form").attr("action","../aa21b01s01/crearFaseExpediente");
			}else{
				//	action upload
				jQuery("#FasesExpedientes_detail_form").attr("action","../aa21b01s01/guardarFaseExpediente");
			}
		
			jQuery("#FasesExpedientes_detail_form").submit();
		}	
				
	});
	
	/* 
	 * INI: Funciones para controlar si el estado es baja que no pueda editar
	 */
	jQuery("#FasesExpedientes").on("jqGridSelectRow", function(event, form, oper) {
		if(oper){
			if(!todosEnAlta($(this),"situ01")){
				desactivar('FasesExpedientes');
		 	 }
		 	 else{
		 		activar('FasesExpedientes');
		 	 }
		}	
		comprobacionEliminar('FasesExpedientes');
	});
	jQuery("#FasesExpedientes").on("rupTable_beforeEditRow", function(event, form, oper) {
		if($("#modoDetalleFases").val() != "C"){
			return  todosEnAlta($(this),"situ01");
		}else{
			return true;
		}	
	});
	/*
	 * FIN: Funciones control si estado es baja no pueda editar 
	 */
	
	
	/**
	 * Función al hacer doble click en la tabla asociados
	 * muestra un dialog con los datos del expediente en modo Consulta
	 */
	$("#ExpAsociadosFase").on("jqGridDblClickRow", function(event, form, oper) {
		var posLinea = $("#ExpAsociadosFase").rup_table("getSelectedLines");
		var refExp = $("#ExpAsociadosFase").rup_table("getRowData")[posLinea].refExp;
		var idExpAsoc = $("#ExpAsociadosFase").rup_table("getRowData")[posLinea].idExpe;
		dialogoConsultaEspedientesAsociados.abrirDialogo(idExpAsoc,refExp);
		return false;
	});
	
	$("#ExpAsociadosFase").on("rupTable_beforeEditRow", function(event, form, oper) {
		return false;
	});
	
	//Tabla grid expedientes asociados al departamento
	$("#ExpAsociadosFase").rup_table({
		rowNum:6,
		colNames: [
		    $.rup.i18n.app.aa21b20s01.refer20,
		    $.rup.i18n.app.aa21b20s01.refer20,
		    $.rup.i18n.app.aa21b20s01.refer20,
			$.rup.i18n.app.aa21b20s01.cesta20,
			"cserv20",
			"cexpe20",
			"aexpe20",
			"nexpe20",
			"grupo",
			"objeto20"
		],
		colModel: [
		    {  name: "refExp", 
		       label: "refExp",
        	   align: "center", 
        	   width:280, 
        	   editable: true, 
        	   fixed: false, 
        	   hidden: false, 
        	   resizable: false, 
        	   sortable: true
            },
            {   name: "grupo", 
        	   label: "grupo",
        	   hidden: true 
		    },
			{ 	name: "idExpe", 
			 	label: "idExpe",
				align: "left", 
				width: 75, 
				editable: true, 
				fixed: false, 
				hidden: true, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "cesta20", 
			 	label: "cesta20",
				align: "left", 
				width: 75, 
				editable: true, 
				fixed: false, 
				hidden: true, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "cserv20", 
	        	label: "cserv20",
	        	hidden: true 
	        },
	        { 	name: "cexpe20", 
	        	   label: "cexpe20",
	        	   hidden: true 
	        },
	        { 	name: "aexpe20", 
	        	   label: "aexpe20",
	        	   hidden: true 
           },
           { 	name: "nexpe20", 
        	   label: "nexpe20",
        	   hidden: true 
           },   
           { 	name: "grupo", 
        	   label: "grupo",
        	   hidden: true 
           },
           {
        	 name: "objeto20",
        	 label: "objeto20",
        	 hidden: true
           },
	        
        ],
        model:"Aa21b20s01",
        usePlugins:[
			"toolbar",
        	"filter",
        	"formEdit",
           	"fluid",
           	"feedback"
         	],
     	filter:{
		},
		afterInsertRow : function(rowid, rowdata) {
			pintarFilaSituacionExpediente(rowid, rowdata, $(this), "cesta20");
			
			/**
			 * Cambiamos el tooltip para que al posicionarse encima de la celda en vez de aparecer el titulo con la referencia
			 * aparezca el objeto
			 */
			var ref = rowdata["refExp"];
			var objeto20 = rowdata["objeto20"];
			$("td[rup_tooltip='" + ref + "'").attr("rup_tooltip",objeto20);
		},
		primaryKey: "idExpe",
		sortname: "faper20",
		sortorder: "asc",
		loadOnStartUp: false,
		loadComplete:fncTableCompleteExpAsociadosFase,
		toolbar:{
			defaultButtons:{
				   add: false,
				   edit: false,
				   cancel: false,
				   save: false,
				   clone: false,
				   "delete": false
				},
				newButtons:[{
				id:"detalleExpAsociadoUbicacion",
				obj: {i18nCaption:$.rup.i18n.app.botonerasMantGenerales.detalle, css: "rup-icon detalle"},
				click:function(event, form, oper){
					handlerDetalleExpAsociadoFase();
				}
			}]
		}
	});
	
	//Oculto de la barra de paginación lo que no me interesa de la tabla asociados Depar
	$(".ui-paging-info").hide();
	$(".ui-pg-selbox").hide();
	$("#first_ExpAsociadosFase_pager").hide();
	$("#last_ExpAsociadosFase_pager").hide();
	$("#ExpAsociadosFase_pager_left").hide();
	
	
	//Combo situación en pantalla detalle
	$("#situ01_detail_table").rup_combo({
		source:[
		        {i18nCaption:$.rup.i18n.app.situ_detail_table.alta, value:"A"},
		        {i18nCaption:$.rup.i18n.app.situ_detail_table.baja, value:"B"}
		],
		sourceParam:{},
		ordered: false,
		blank: "",
		method: 'GET',
		style: "dropdown",
		onLoadSuccess: function(){
			$("#situ01_detail_table").rup_combo("selectLabel", $("situ01_detail_table").val());
		}
	});
	
	//Asigno la función al boton ver documento adjunto de la fase
	$("[id='ver_documento_fase']").click(handlerVerDocAsociado);
	
	//Ocultamos el botón de clonar
	$("[id='FasesExpedientes_toolbar"+$.rup.i18n.base.rup_maint.clone+"']").css("display","none");
	$("#FasesExpedientes_cb div").hide();
	$("#TiposExpedientes_cb div").hide();
	
	
	dialogoConsultaEspedientesAsociados.ocultarElementos();
	dialogoFase.ocultarElementos();
	dialogoHistorico.ocultarElementos();
	dialogoDocumentos.ocultarElementos();
	
	$("#FasesExpedientes").unbind("dblclick");
};


/**
 * Función que añade el icono al cursor para indicar que el botón secundario tiene una función. 
 * También para cambiar el tooltip indicando instrucciones.
 */
function fncTableCompleteFasesExpedientes(e){
	
	$('[aria-describedby="FasesExpedientes_cserv01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_ctipoe01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_cfase01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_dfase01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_situ01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_codPid01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_tdocu01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	$('[aria-describedby="FasesExpedientes_efase01"]').css("cursor", "url("+$.rup.RUP+"/basic-theme/cursors/context-menu.cur),default" );
	
	//Recorremos la tabla comprobando el campo situación. Si es Baja, le asignaremos el color de fondo a rojo
	if (e.rows != undefined && e.rows.length>0){					
		for (var i=0; i<e.rows.length; i++) {	
			var fila = e.rows[i];
			if(fila.situ01=="B"){
				$("tr[id='" + fila.cserv01 + "-" + fila.ctipoe01 + "-" + fila.cfase01 + "']").attr("class","ui-widget-content jqgrow ui-row-ltr");
				$("tr[id='" + fila.cserv01 + "-" + fila.ctipoe01 + "-" + fila.cfase01 + "']").css("font-style","italic");
				$("tr[id='" + fila.cserv01 + "-" + fila.ctipoe01 + "-" + fila.cfase01 + "']").css("background","#848484");
			}
		}
		
		//Si hay registros, mostramos los botones de Imprimir y de Excel
		$("[id='FasesExpedientes_toolbar##imprimir']").show();
		$("[id='FasesExpedientes_toolbar##excel']").show();
	}else{
		//Si no hay registros, ocultamos los botones de imprimir y de Excel
		$("[id='FasesExpedientes_toolbar##imprimir']").hide();
		$("[id='FasesExpedientes_toolbar##excel']").hide();
	}
	
	
	$.each ($('[aria-describedby="FasesExpedientes_cserv01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_ctipoe01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_cfase01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_dfase01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_situ01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});

	$.each ($('[aria-describedby="FasesExpedientes_codPid01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_tdocu01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	$.each ($('[aria-describedby="FasesExpedientes_efase01"]'), function(index, object){
		$(object).attr("grid_tooltip", "<b>"+$(object).attr("grid_tooltip") + "</b><br/><i>" + $.rup.i18n.app.comun.tooltipMenuContextual)+ "<i/>" ;
	});
	
	
	$(".rup-icon-clone").parent().css("display","none");
	
	
}

/**
 * Función para cambiar las situación de Alta a Baja o viceversa
 */
function handlerCambioEstadoFasesExp(){
	var registros = [];
	var regBloqueados = [];
	var indiceBloq = 0;
	if($("#FasesExpedientes").rup_table("getSelectedRows") != ""){
		
		$.rup_messages("msgConfirm", { 
			title: $.rup.i18n.app.mensajesMantGenerales.titPreguntaConfirmar,
			message: $.rup.i18n.app.mensajesMantGenerales.msjConfirmarCambioSit,
			siNo:true,
			OKFunction: function() {
				   
			   registros = $("#FasesExpedientes").rup_table("getSelectedLines");
			   cambiarEstadoLineaFase(registros);
				   
			   
			   $("#FasesExpedientes").rup_table("filter");
			   
			   $("#FasesExpedientes").rup_table("setSelection", regBloqueados, true);
			}
		});
		
	}else{
		$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.msjNoRegistro});
	}
};

function cambiarEstadoLineaFase(registros){
	
	for(var i=0;i<registros.length;i++){
		   var indice = registros[i]-1;
		   var exp = $("#FasesExpedientes").rup_table("getRowData")[indice];
		   var codigo = exp.cserv01+"-"+exp.ctipoe01+"-"+exp.cfase01;
		   
		   var noBloqueado = bloquear("change", $("#FasesExpedientes"), "aa21b01s01", "dfase01",codigo);
		   if(noBloqueado)
		   {
			   var send = {};
			   send["cserv01"] = exp.cserv01;
			   send["ctipoe01"] = exp.ctipoe01;
			   send["cfase01"] = exp.cfase01;
			   send["dfase01"] = exp.dfase01;
			   if(exp.situ01 == "Alta"){
				   send["situ01"] = "B";
			   }else if(exp.situ01 == "Baja"){
				   send["situ01"] = "A";
			   }
			   send["codPid01"] = exp.codPid01;
			   send["tdocu01"] = exp.tdocu01;
			   send["efase01"] = exp.efase01;
			   
			   var dt = jQuery.toJSON(send);
			   $.ajax({
				   url: "../aa21b01s01/cambioEstadoFasesExpediente",
				   type: "POST",
				   contentType: "application/json; charset=utf-8",
				   dataType: "json",
				   data: dt,
				   async:false,
				   cache:false,
				   error: callback_error,
				   success: function(data) {
					   desbloquear(jQuery("#FasesExpedientes"), "aa21b01s01");
					   $("#Servicios2_feedback").rup_feedback("option", "delay", defaultDelay);
					   if(registros.length > 1){
						   $("#Servicios2_feedback").rup_feedback("set",$.rup.i18nParse($.rup.i18n.app,"aa21b01s01.cambioEstadoOK"), "ok");
					   }else{
						   $("#Servicios2_feedback").rup_feedback("set",$.rup.i18nParse($.rup.i18n.app,"aa21b01s01.cambioEstadoOK"), "ok");
					   } 
					   $("#Servicios2_feedback").rup_feedback("show");
					   $("#FasesExpedientes").rup_table("setSelection", codigo, false);
					   
					   registros = $("#FasesExpedientes").rup_table("getSelectedLines");
					   cambiarEstadoLineaFase(registros);
				   }
			   });
		   }else{
			   regBloqueados[indiceBloq] = codigo;
			   indiceBloq++;
			   
		   }	
	   }
	
};

function callback_error(xhr, ajaxOptions, thrownError){
	 var errorTXT = $.rup.i18nParse($.rup.i18n.base,"rup_maint.validateError"), errors = null, errorKey = null, causedErrors = null, errMsg = "", errorMesg = "";
	 if (xhr.responseText != null && xhr.responseText != "") {	
		 if (xhr.status === 406) {//si ha habido algun error en las validaciones...
			 $("#Servicios2_feedback").rup_feedback("option", "delay", null);
			 $("#Servicios2_feedback").rup_feedback("set",errorTXT + " " + xhr.responseText,"error");
			 $("#Servicios2_feedback").rup_feedback("option", "delay", defaultDelay);
		 } else {
			 $("#Servicios2_feedback").rup_feedback("option", "delay", null);
			 $("#Servicios2_feedback").rup_feedback("set", errorTXT, "error");								
			 $("#Servicios2_feedback").rup_feedback("option", "delay", defaultDelay);
		 }
	 }
}

function limpiarFases(){
	limpiando = true;
	$("#FasesExpedientes").rup_table("deselectAllRows");
	$("#FasesExpedientes_filter_summary").html("<i></i>");
	$("#FasesExpedientes").rup_table("clearGridData", true);
	$("#FasesExpedientes").rup_table("resetForm", $("#FasesExpedientes_filter_form"));
	$("#cserv01_filter_table").rup_combo("setRupValue",$("#cserv13_filter_table").val());
	limpiando = false;
}


function desactivarFase(){
	$("[id='FasesExpedientes_toolbar##"+$.rup.i18n.base.rup_maint.edit+"']").attr("class","rup-toolbar_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary ui-button-disabled ui-state-disabled");
	$("[id='FasesExpedientes_toolbar##"+$.rup.i18n.base.rup_maint.edit+"']").prop("disabled",true);
}
function activarFase(){
	$("[id='FasesExpedientes_toolbar##"+$.rup.i18n.base.rup_maint.edit+"']").attr("class","rup-toolbar_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary");
	$("[id='FasesExpedientes_toolbar##"+$.rup.i18n.base.rup_maint.edit+"']").prop("disabled",false);
}

function handlerConsultaFaseExp(){
	$("#modoDetalleFases").val("C");
	$("#FasesExpedientes").rup_table("editElement");
}

function handlerVerDocAsociado(){
	var url="../aa21b01s01/getDocumentoFase?idFaseExp="+$("#cserv01_detail_table").val() + "-" + $("#ctipoe01_detail_table").val() + "-" + $("#cfase01_detail_table").val();
	window.location.href=url;
}

function validacionExisteDocumento(){
	
	/**
	 * Si tiene documento, mostraremos el botón para ver/descargar el documento
	 * Si no tiene, mostraremos el botón para adjuntar el documento
	 */
	if($("#codPid01_detail_table").val() != null && $("#codPid01_detail_table").val() != 0 && $("#codPid01_detail_table").val() != "0"){
		$("#adjuntarDocFase").hide();
		$("#verDocFase").show();
	}else{
		if($("#modoDetalleFases").val() != "C"){
			$("#adjuntarDocFase").show();
			$("#verDocFase").hide();
		}else{
			$("#adjuntarDocFase").hide();
			$("#verDocFase").hide();
		}
		
	}
}

function cargaAsociadosFase(){
	$("#ExpAsociadosFase").rup_table("setGridParam", {url: "../aa21b01s01/obtenerExpedientesFaseServ/" + $("#idFase_detail_table").val()});
	$("#ExpAsociadosFase").rup_table("filter");
}

/**
 * Función que cambia el color de la línea de registro si el estado de baja 
 */
function fncTableCompleteExpAsociadosFase(e){
	
	//Recorremos la tabla comprobando el campo situación. Si es Baja, le asignaremos el color de fondo a rojo
	if (e.rows != undefined && e.rows.length>0){	
		$("#fieldExpAsocFases").show();
		/*for (var i=0; i<e.rows.length; i++) {	
			var fila = e.rows[i];
			if(fila.cesta20=="4"){
				$("tr[id='" + fila.idExpe + "']").attr("class","ui-widget-content jqgrow ui-row-ltr");
				$("tr[id='" + fila.idExpe + "']").css("font-style","italic");
				$("tr[id='" + fila.idExpe + "']").css("background","#848484");
			}
		}*/
	}else{
		$("#fieldExpAsocFases").hide();
	}	
	
}

function handlerDetalleExpAsociadoFase(){
	var posLinea = $("#ExpAsociadosFase").rup_table("getSelectedLines");
	var refExp = $("#ExpAsociadosFase").rup_table("getRowData")[posLinea].refExp;
	var idExpAsoc = $("#ExpAsociadosFase").rup_table("getRowData")[posLinea].idExpe;
	dialogoConsultaEspedientesAsociados.abrirDialogo(idExpAsoc,refExp);
}