var idioma=$.rup.lang;
var modo;
var configMsgEspera = {
		centerX : true,
		centerY : false,
		css : {
			width : "430px",
			height : "120px",
			top : "240px",
			textAlign : "center",
			backgroundColor : "#FFFFFF",
			color : "#666666",
			cursor : "wait"
		},
		overlayCSS : {
			backgroundColor : '#131313',
			opacity : 0.6
		},
		message : getJQueryWaitWindowMsg(jQuery.rup.i18n.app.comun.msgCargando)
	};
jQuery(function($){
	
	//Dialog que muestra el combo para seleccionar el usuario para filtrar
	// expedientes
	$("#dialogoSelUsuario").rup_dialog(
	{
		type : $.rup.dialog.DIV,
		height : 150,
		width : 700,
		modal : true,
		showLoading : true,
		autoOpen : false,
		title : $.rup.i18n.app.aa21b20s01.selUsuarioTit,
		buttons : [ {
			text : $.rup.i18n.base.rup_global.aceptar,
			click : function() {
				$("#crespo20_filter_table").val($("#crespo20pre_filter_table").val());
				$("#crespo20_filter_table").rup_combo("setRupValue",$("#crespo20pre_filter_table").val());
				
				$("#dialogoSelUsuario").rup_dialog("close");
				
				$("#Expedientes").rup_table("filter");
			}
		} ]
	});
	//Dialogo con el mensaje y barra de copiando expediente...
	$("#dialogoCopiandoExp").rup_dialog(
	{
		type : $.rup.dialog.DIV,
		height : 200,
		width : 500,
		modal : true,
		showLoading : true,
		autoOpen : false,
		title : $.rup.i18n.app.aa21b20s01.copiandoExpTit
	});
	
	//Combo usuarios expedientes
	$("#crespo20pre_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "500",
		blank: "",
		selected:""
	});
	
	
	
	//Campos fechas
	$.rup_date({		
		from: "faper20_desde_filter_table",
		to: "faper20_hasta_filter_table",
		//Resto igual que en date
		labelMaskId : "intervalo-mask",
		numberOfMonths: 2
	});
	$.rup_date({		
		from: "fcier20_desde_filter_table",
		to: "fcier20_hasta_filter_table",
		//Resto igual que en date
		labelMaskId : "intervalo-mask",
		numberOfMonths: 2
	});
	$.rup_date({		
		from: "fvto20_desde_filter_table",
		to: "fvto20_hasta_filter_table",
		//Resto igual que en date
		labelMaskId : "intervalo-mask",
		numberOfMonths: 2
	});
	
	//Tabla grid expedientes
	$("#Expedientes").rup_table({
		rowNum:20,
		url: "../aa21b20s01",
		colNames: [
		    "",
		    "id",
			"cserv20",
			$.rup.i18n.app.aa21b20s01.cexpe20,
			$.rup.i18n.app.aa21b20s01.cexpe20,
			"aexpe20",
			"nexpe20",
			$.rup.i18n.app.aa21b20s01.objeto20,
			$.rup.i18n.app.aa21b20s01.faper20,
			$.rup.i18n.app.aa21b20s01.fcier20,
			"refer20",
			"crespo20",
			"cpais20",
			"cprov20",
			"cmuni20",
			"obser20",
			"moneda20",
			"eimpor20",
			"pimpor20",
			"eimpora20",
			"pimpora20",
			"cdepar20",
			"carchi20",
			"ubica20",
			$.rup.i18n.app.aa21b20s01.cesta20,
			$.rup.i18n.app.aa21b20s01.cesta20,
			"fvto20"
		],
		colModel: [
		    {
		        name: "activo",
		        index: "activo",
		        width: "30",
		        formatter: "actions",
		        align: "center",
		        sortable: false,
		        classes : "ui-ellipsis"
		    },       
           { 	
		    	name: "idExpe", 
 				label: "idExpe",
				hidden: true 
			},       
			{ 	name: "cserv20", 
			 	label: "cserv20",
				hidden: true 
			},
			{ 	name: "refExp", 
			 	label: "refExp",
				align: "left", 
				width: 150, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "cexpe20", 
			 	label: $.rup.i18n.app.aa21b20s01.cexpe20,
				hidden: true 
			},
			{ 	name: "aexpe20", 
			 	label: "aexpe20",
				hidden: true 
			},
			{ 	name: "nexpe20", 
			 	label: "nexpe20",
				hidden: true 
			},
			{ 	name: "objeto20", 
			 	label: $.rup.i18n.app.aa21b20s01.objeto20,
				align: "left", 
				width: 150, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "faper20", 
			 	label: $.rup.i18n.app.aa21b20s01.faper20,
				align: "left", 
				width: 150, 
				editable: true, 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: true
			},
			
			{ 	name: "fcier20", 
			 	label: $.rup.i18n.app.aa21b20s01.fcier20,
				align: "left", 
				width: 150, 
				editable: true, 
				ruptype: "datepicker", 
				fixed: false, 
				hidden: false, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "refer20", 
			 	label: "refer20",
				hidden: true 
			},
			{ 	name: "crespo20", 
			 	label: "crespo20",
				hidden: true 
			},
			{ 	name: "cpais20", 
			 	label: "cpais20",
				hidden: true 
			},
			{ 	name: "cprov20", 
			 	label: "cprov20",
				hidden: true 
			},
			{ 	name: "cmuni20", 
			 	label: "cmuni20",
				hidden: true 
			},
			{ 	name: "obser20", 
			 	label: "obser20",
				hidden: true 
			},
			{ 	name: "moneda20", 
			 	label: "moneda20",
				hidden: true 
			},
			{ 	name: "eimpor20", 
			 	label: "eimpor20",
				hidden: true 
			},
			{ 	name: "pimpor20", 
			 	label: "pimpor20",
				hidden: true 
			},
			{ 	name: "eimpora20", 
			 	label: "eimpora20",
				hidden: true 
			},
			{ 	name: "pimpora20", 
			 	label: "pimpora20",
				hidden: true 
			},
			{ 	name: "cdepar20", 
			 	label: "cdepar20",
				hidden: true 
			},
			{ 	name: "carchi20", 
			 	label: "carchi20",
				hidden: true 
			},
			{ 	name: "ubica20", 
			 	label: "ubica20",
				hidden: true 
			},
			{ 	name: "cesta20", 
			 	label: $.rup.i18n.app.aa21b20s01.cesta20,
				hidden: true 
			},
			{ 	
				name: idioma=="es"?"desta":"eesta", 
			 	label: idioma=="es"?"desta":"eesta", 
				align: "left", 
				width: 150, 
				editable: true, 
				fixed: false, 
				hidden: true, 
				resizable: true, 
				sortable: true
			},
			{ 	name: "fvto20", 
			 	label: "fvto20",
				hidden: true 
			}
        ],

        model:"Aa21b20s01",
        usePlugins:[
			"formEdit",
        	"feedback",
			"toolbar",
        	"fluid",
        	"filter"
         	],
		primaryKey: "idExpe",
		sortname: "faper20",
		sortorder: "desc",
		loadOnStartUp: false,
		toolbar:{
			newButtons:[
			    {
			    	id:"copiaExpediente",
			    	obj: {id:"copiaExpediente",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.copiaExp, css: "copiaDoc"},
			    	ocultar:true,
			    	comportamiento:"edit",
			    	click:handlerCopiaExpediente
			    },
	            {
			    	id:"detalle",
			    	obj: {id:"detalle",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.detalle, css: "detalle"},
			    	ocultar:true,
			    	comportamiento:"edit",
			    	click:handlerConsultaExpedienteDetalle
	            },
	            {
	            	id:"filtrar",
	            	obj: {id:"filtrar",i18nCaption:$.rup.i18n.app.botonerasMantGenerales.filtrar, css: "rup-icon rup-icon-filter"},
	            	comportamiento:"add",
	            	click: function(){
	            		$("#Expedientes").rup_table("toggleFilterForm");
	            	}
	            }]
		},
		afterInsertRow : function(rowid, rowdata) {
			//Función que pinta en el registro Alta o Baja según sea A o B
			pintarFilaSituacionExpediente(rowid, rowdata, $(this), "cesta20");
		},
        formEdit:{
        	detailForm: "#Expedientes_detail_div",
			fillDataMethod: "clientSide",
         	validate:{ 
    			rules:{
    				"cserv20":{
						required: true
    					},
    				"cexpe20":{
						required: false
    					},
    				"aexpe20":{
						required: true
    					},
    				"nexpe20":{
						required: true
    					},
    				"faper20":{
						required: true
    					},
    				"objeto20":{
						required: true
    					},
    				"fcier20":{
						required: false
    					},
    				"refer20":{
						required: false
    					},
    				"crespo20":{
						required: true
    					},
    				"cpais20":{
						required: false
    					},
    				"cprov20":{
						required: false
    					},
    				"cmuni20":{
						required: false
    					},
    				"obser20":{
						required: false
    					},
    				"moneda20":{
						required: false
    					},
    				"eimpor20":{
						required: false
    					},
    				"pimpor20":{
						required: false
    					},
    				"eimpora20":{
						required: false
    					},
    				"pimpora20":{
						required: false
    					},
    				"depar20":{
						required: false
    					},
    				"carchi20":{
						required: false
    					},
    				"ubica20":{
						required: false
    					},
    				"cesta20":{
						required: false
    					},
    				"fvto20":{
						required: false
    					}
    				}
    		}
        },
        onPaging: function(){
			$("#Expedientes").rup_table("deselectAllRows");
		}
	});
	
	//Combo tipos expedientes
	$("#cexpe20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "500",
		blank: "",
		selected:""
	});
	
	//Combo usuarios expedientes
	$("#crespo20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "530",
		blank: "",
		selected:""
	});
	
	//Combo estados expedientes
	$("#cesta20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "150",
		blank: "",
		selected:""
	});
	
	//Combo ubicacion expedientes
	$("#carchi20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "210",
		blank: "",
		selected:""
	});
	
	//Combo departamentos expedientes
	$("#depar20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "530",
		blank: "",
		selected:""
	});
	
	//Combo paises 
	$("#cpais20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "180",
		blank: "",
		selected:""
	});
	
	//Combo provincias 
	$("#cprov20_filter_table").rup_combo(
	{
		loadFromSelect:true,
		width : "180",
		blank: "",
		selected:""
	});
	
	//Combo municipios
	$("#cmuni20_filter_table").rup_combo({
		source : "../nora/municipioExp",
		sourceParam : {label:"dsO", value:"id"},
		parent: ["cprov20_filter_table"],
		width : "530",
		blank : ""
	});

	//Apertura dialogo selección responsable
	$("#dialogoSelUsuario").rup_dialog("open");
	
	
	//Ya que no voy a utilizar el formulario de editar y añadir de UDA, asigno
	//a los botones añadir y editar mis funciones.
	$("[id='Expedientes_toolbar##"+$.rup.i18n.base.rup_maint.new+"']").click(handlerAltaExpediente);
	$("[id='Expedientes_toolbar##"+$.rup.i18n.base.rup_maint.edit+"']").click(handlerModificarExpediente);
	
	//Deshabilito las funciones por defecto de UDA
	$("#Expedientes").on("rupTable_beforeAddRow", function(deleteOptions,selectedRow){
		return false;
	});
	$("#Expedientes").on("rupTable_beforeEditRow", function(deleteOptions,selectedRow){
		return false;
	});

	//Asigno al doble click en la tabla, que lleve a la pantalla de consulta de ese
	//expediente
	jQuery("#Expedientes").on("jqGridDblClickRow", function(event, form, oper) {
		
		//Consulta
		handlerConsultaExpedienteDetalle();
		return false;
	});
	
	//Ocultamos el botón de clonar y el de eliminar
	$("[id='Expedientes_toolbar"+$.rup.i18n.base.rup_maint.clone+"']").css("display","none");
	$("[id='Expedientes_toolbar##"+$.rup.i18n.app.botonerasMantGenerales.eliminar+"']").css("display","none");

	$("#Expedientes_filter_cleanLink").unbind("click");
	$("#Expedientes_filter_cleanLink").click(limpiarExpedientes);
});

/**
 * Función que cambia el color dependiendo de si el expediente esta de baja o no
 */
function fncTableCompleteExpedientes(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){					
		/*for (var i=0; i<e.rows.length; i++) {	
			var fila = e.rows[i];
			if(fila.cesta20=="4"){
				$("tr[id='" + fila.cexpe20 + "']").attr("class","ui-widget-content jqgrow ui-row-ltr");
				$("tr[id='" + fila.cexpe20 + "']").css("font-style","italic");
				$("tr[id='" + fila.cexpe20 + "']").css("background","#848484");
			}
		}*/
	}	
	
	$(".rup-icon-clone").parent().css("display","none");
	$(".rup-icon-delete").parent().css("display","none");
	
	
}

/**
 * Función crear expediente. Apertura de una ventana dialogo con los campos
 * para dar de alta el expediente
 */
function handlerAltaExpediente(){
	
	$("#dialogoAltaExpediente").rup_dialog({	
		type:$.rup.dialog.AJAX,
		url:"/aa21bOrgDocumentalWar/aa21b20s01/altaexpediente",
		modal:true,
		height:840,
		minHeight:400,
		width:1000,	
		minWidth:435,	
		resizable:false,
		title:$.rup.i18n.app.aa21b20s01.altaExpedienteTit,
		autoOpen:false,
		showLoading:true,
        async:false, 
        zIndex: -1 
	});

	$("#dialogoAltaExpediente").rup_dialog("open");
	
	
}
/**
 * Función modificar expediente. Apertura de un dialogo
 * pasandole como parámetro el idExpe (concatenación PK)
 * 
 */
function handlerModificarExpediente(){
	
	if($("#Expedientes").rup_table("getSelectedRows") != ""){
		var registros = $("#Expedientes").rup_table("getSelectedLines");
		
		if(registros.length == 1){
			var indice = registros;
			var expediente = $("#Expedientes").rup_table("getRowData")[indice];
			if(expediente.cesta20 != "4"){
				var bloqueado =  bloquear("edit", $("#Expedientes"), "aa21b20s01", "objeto20");
				if(bloqueado){
					$("#dialogoAltaExpediente").rup_dialog({	
						type:$.rup.dialog.AJAX,
						url:"/aa21bOrgDocumentalWar/aa21b20s01/modificarexpediente?idexpe="+expediente.idExpe,
						modal:true,
						height:840,
						minHeight:400,
						width:1000,	
						minWidth:435,	
						resizable:false,
						title:$.rup.i18n.app.aa21b20s01.modificacionExpedienteTit + " " + expediente.refExp,
						autoOpen:false,
						showLoading:true,
						async:false 
					});
					
					$("#dialogoAltaExpediente").rup_dialog("open");
				
				}else{
					return bloqueado;
				}
			}	
		}else{
			$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
		}
	}else{
		$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
	}
}
/**
 * Función consulta expediente. Apertura del dialogo alta, modificar con
 * los campos deshabilitados. Pasando como parámetro el idExpe (concatenación PK)
 */
function handlerConsultaExpedienteDetalle(){
	if($("#Expedientes").rup_table("getSelectedRows") != ""){
		var registros = $("#Expedientes").rup_table("getSelectedLines");
		
		if(registros.length == 1){
			var indice = registros;
			var expediente = $("#Expedientes").rup_table("getRowData")[indice];
			$("#dialogoAltaExpediente").rup_dialog({	
					type:$.rup.dialog.AJAX,
					url:"/aa21bOrgDocumentalWar/aa21b20s01/consultarexpediente?idexpe="+expediente.idExpe,
					modal:true,
					height:840,
					minHeight:400,
					width:1000,	
					minWidth:435,	
					resizable:false,
					title:$.rup.i18n.app.aa21b20s01.consultaExpedienteTit + " " + expediente.refExp,
					autoOpen:false,
					showLoading:true,
					async:false 
			});
			
			$("#dialogoAltaExpediente").rup_dialog("open");
	
		}else{
			$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
		}
	}else{
		$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
	}
}
/**
 * Función copia expediente.
 * Se hace una copia del expediente seleccionado, asignandole un nuevo correlativo
 * y después se abre el dialogo modificar para ese expediente nuevo creado.
 */
function handlerCopiaExpediente(){
	if($("#Expedientes").rup_table("getSelectedRows") != ""){
		var registros = $("#Expedientes").rup_table("getSelectedLines");
		
		if(registros.length == 1){
			var indice = registros;
			var expediente = $("#Expedientes").rup_table("getRowData")[indice];
			
			
			var send = {};
			send["cserv20"] = expediente.cserv20;
			send["cexpe20"] = expediente.cexpe20;
			send["aexpe20"] = expediente.aexpe20;
			send["nexpe20"] = expediente.nexpe20;
			
			var dt = jQuery.toJSON(send);
			$.ajax({
				type : "POST",
				dataType : "json",
				data : dt,
				contentType : "application/json",
				url :  "/aa21bOrgDocumentalWar/aa21b20s01/copiarExpediente",
				beforeSend : function(xhr, settings) {
					//Mostrar div de copiando expediente
					$("#dialogoCopiandoExp").rup_dialog("open");
					xhr.setRequestHeader("bean", "Aa21b20s01");
				},
				success : function(xhr, options) {
				   datosExpedienteCopia = xhr;
					//Ocultar dialog de copiando expediente
					$("#dialogoCopiandoExp").rup_dialog("close");
					
				   //Abrir la pantalla de edición del expediente recien copiado
					//Añado el registro a la tabla de usuarios asignados
					$("#Expedientes").rup_table("addRowData", datosExpedienteCopia.idExpe, datosExpedienteCopia, "first");
					$("#Expedientes").jqGrid('setSelection', datosExpedienteCopia.idExpe,true);
					
					handlerModificarExpediente();
			    		
				   
				},
				error : function(xhr, ajaxOptions, thrownError) {
					//Ocultar dialog de copiando expediente
					$("#dialogoCopiandoExp").rup_dialog("close");
					 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...
							 $("#Expedientes_feedback").rup_feedback("option", "delay", null);
							 $("#Expedientes_feedback").rup_feedback("set",errorTXT + " " + xhr.responseText,"error");
							 $("#Expedientes_feedback").rup_feedback("option", "delay", defaultDelay);
						 } else {
							 $("#Expedientes_feedback").rup_feedback("option", "delay", null);
							 $("#Expedientes_feedback").rup_feedback("set", errorTXT, "error");								
							 $("#Expedientes_feedback").rup_feedback("option", "delay", defaultDelay);
						 }
					 }
				}
			});
			
	
		}else{
			$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
		}
	}else{
		$.rup_messages("msgAlert", {message: $.rup.i18n.app.mensajesMantGenerales.seleccionFila});
	}
}



//visualizar icono documento en grid
//mostrar imagen en grid
$.fn.fmatter.actions = function(cellval, opts, rwd) {
	var str = '';
	//En el campo situación ponemos la imagen dependiendo de 
	//1º si el expediente esta cerrado
	//2º si el expediente esta cerrado no incluido
	//3º si el expediente esta de baja
	if (opts.colModel.name == 'activo') {
		var op = {
				keys : false,
				editbutton : false,
				delbutton : false,
				editformbutton : false,
				activoButton : true
		};
		if (!jQuery.fmatter.isUndefined(opts.colModel.formatoptions)) {
			op = jQuery.extend(op, opts.colModel.formatoptions);
		}
		var rowid = opts.rowId, str = "", ocl;
		if (typeof (rowid) == 'undefined' || jQuery.fmatter.isEmpty(rowid)) {
			return "";
		}
		if (op.activoButton) {
			var estado = rwd['cesta20'];
			
			if ( estado == 4){
				str = "<div><img src='"
					+ $.rup.APP_STATICS
					+ "/images/expBaja.png' width='15px' height='15px' alt='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "' title='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "'/></div>";
			}else if( estado == 2){
				str = "<div><img src='"
					+ $.rup.APP_STATICS
					+ "/images/expCerradoNoIncluido.png' width='15px' height='15px' alt='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "' title='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "'/></div>";
			}else if( estado == 1){
				str = "<div><img src='"
					+ $.rup.APP_STATICS
					+ "/images/expCerrado2.png' width='15px' height='15px' alt='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "' title='"
					+ $.rup.i18n.app.botonerasMantGenerales.nuevo
					+ "'/></div>";
			}
		}
	}
	
	return str;
};

function openHelp(){
	crearAyuda($.rup.i18n.app.ayudaExpedientes,"ayuda_feedback");
}

function limpiarExpedientes()
{
	$("#Expedientes").rup_table("clearGridData",true);
	$("#Expedientes_filter_summary").html("<i></i>");
	$("#Expedientes").rup_table("resetForm", $("#Expedientes_filter_form"));
}