jQuery(document).ready(function (){
	
	// Deshabilito los destinatarios ya marcados
	$(desactivarDestinos).each(function(el){
		desactivaDestinatario(desactivarDestinos[el]);
	});

	//Las comunicaciones de osalan e inspeccion solamente las pueden mandar los usuarios de osalan e inspeccion
	if(!estadoCierreRealizado) {
		if (fase==1 && (tramite==4 || tramite==5)){
			if ((fase==1 && tramite==4 && esUsuarioOsalanTer) ||
				(fase==1 && tramite==5 && esUsuarioInspeccionTer)){
				$("#comunicaciones_toolbar").rup_toolbar({
					buttons:
						[{id:"AnadirComunicacion", i18nCaption:$.rup.i18n.app.botones.AnadirComunicacion, left:true},
						 {id:"RelanzarComunicacion", i18nCaption:$.rup.i18n.app.botones.RelanzarComunicacion, left:true},
						 {id:"EnviarComunicacion", i18nCaption:$.rup.i18n.app.botones.EnviarComunicacion, left:true}]
				});
			}
		} else {
			if((esUsuarioModificacion ||  
			   (fase==6 && esUsuarioDireccion))){
					$("#comunicaciones_toolbar").rup_toolbar({
						buttons:
							[{id:"AnadirComunicacion", i18nCaption:$.rup.i18n.app.botones.AnadirComunicacion, left:true},
							 {id:"RelanzarComunicacion", i18nCaption:$.rup.i18n.app.botones.RelanzarComunicacion, left:true},
							 {id:"EnviarComunicacion", i18nCaption:$.rup.i18n.app.botones.EnviarComunicacion, left:true}]
					});
				}		
			
		}
}
	
	//Si el expediente está cerrado, quitamos todos los botones y deshabilitamos los campos
	/*  esto es lo que habia antes de acotar las comunicaciones para los usuarios de osalan e inspeccion
	if(!estadoCierreRealizado && 
		(esUsuarioModificacion ||  
		(fase==1 && tramite==4 && esUsuarioOsalanTer) ||
		(fase==1 && tramite==5 && esUsuarioInspeccionTer) ||
		(fase==6 && esUsuarioDireccion))){
		$("#comunicaciones_toolbar").rup_toolbar({
			buttons:
				[{id:"AnadirComunicacion", i18nCaption:$.rup.i18n.app.botones.AnadirComunicacion, left:true},
				 {id:"RelanzarComunicacion", i18nCaption:$.rup.i18n.app.botones.RelanzarComunicacion, left:true},
				 {id:"EnviarComunicacion", i18nCaption:$.rup.i18n.app.botones.EnviarComunicacion, left:true}]
		});
	}
	*/
	
	$("#comunicaciones_feedback").rup_feedback({ 
		type: "ok",
		closeLink: true,
		delay: 800,
		fadeSpeed: 800,
		block:false
	});	
	
	//se inicializan los botones de relanzar y enviar comunicacion, para que si no hay comunicaciones esten deshabilitados
	$("[id='comunicaciones_toolbar##RelanzarComunicacion']").button("disable");
	$("[id='comunicaciones_toolbar##EnviarComunicacion']").button("disable");
	// todos los posibles destinatarios que se muestran en la ventana dialogo, se muestran seleccionados por defecto
	$("input[type='checkbox'][id^='destinatarios_']").prop( "checked", true);
	
	// se recogen todas las comunicaciones que existan para el expediente en el tramite actual
	var tComunicLista = $("input[type='hidden'][id^='tComunic_']");
	for (i=0;i<tComunicLista.length;i++){
		idcampo = tComunicLista[i].id;
		valor =  $("#"+idcampo).val();
		tipo = valor.substring(0,1);
		
		//Si no se ha hecho el cierre, se puede seguir mandando comunicaciones (estadoCierreRealizado=false)
		if(!estadoCierreRealizado && 
				(esUsuarioModificacion ||  
				(fase==1 && tramite==4 && esUsuarioOsalanTer) ||
				(fase==1 && tramite==5 && esUsuarioInspeccionTer) ||
				(fase==6 && esUsuarioDireccion))){	
			// Si el tramite está firmado o con visto bueno, o es si es el tramite "cierre" y está en tramitación
			// Si son diferentes tramites y estan en estado realizado
			// se puede mandar la comunicacion a la empresa (habMisGestiones=S)
			if (habMisGestiones == 'S') {
				//Si se trata de la comunicacion a la empresa (tipo=E)
				if(tipo=="E"){
					// Si la comunicacion esta enviada y es correcta se deshabilita la opcion de volverlo a enviar (estado=1)
					if ($("#estado_"+valor).val() == '1'){
						//$("#destino_"+valor).prop("checked", true);
						$("#destino_"+valor).attr("disabled", true);
					}
					
					// Si la comunicacion esta enviada pero termina con error, se deshabilita el check de Mis gestiones, 
					//porque solo se puede mandar una vez. Ahora lo van a tener que relanzar si o si (estado=2)
					if ($("#estado_"+valor).val() == '2'){
						$("#destino_"+valor).attr("disabled", true);
					}
				}
			}else{
				// Si el tramite no está firmado o no con visto bueno, o es si es el tramite "cierre" y no está en tramitación
				// Si son diferentes tramites y no estan en estado realizado
				// no se puede mandar la comunicación a la empresa (habMisGestiones=N)
				
				//Si se trata de la comunicacion a la empresa (tipo=E)
				if(tipo=="E"){
					//No se puede mandar la comunicación a la empresa y deshabilita el destinatario de la empresa
					$("#destino_"+valor).attr("disabled", true);
					
					if ($("#estado_"+valor).val() == '1'){
						//$("#destino_"+valor).prop("checked", true);
					}
				}
			}
			
			// Si la comunicacion esta enviada y se pone que ha ido ok (estado=1)
			if ($("#estado_"+valor).val() == '1'){
				$("#tOk_"+valor).css("display",'block');
			}
			
			// Si la comunicacion esta enviada pero termina con error, se habilita el boton de relanzar los errores (estado=2)
			if ($("#estado_"+valor).val() == '2'){
				$("[id='comunicaciones_toolbar##RelanzarComunicacion']").button("enable");
				$("#tError_"+valor).css("display",'block');
			}
		}else{
			//Si se ha hecho el cierre, no se puede seguir mandando comunicaciones (estadoCierreRealizado=true)
			$("#destino_"+valor).attr("disabled", true);
			
			// Si la comunicacion esta enviada y se pone que ha ido ok (estado=1)
			if ($("#estado_"+valor).val() == '1'){
				$("#tOk_"+valor).css("display",'block');
			}
			
			// Si la comunicacion esta enviada pero termina con error, se pone que ha ido con error (estado=2)
			if ($("#estado_"+valor).val() == '2'){
				$("#tError_"+valor).css("display",'block');
			}
		}
	
		//Se habilita el botón de enviar las comunicaciones
		$("[id='comunicaciones_toolbar##EnviarComunicacion']").button("enable");
	}
	
	$("[id='comunicaciones_toolbar##AnadirComunicacion']").click(function(){
			var dialogDestinos = $("#destinatariosCom");

			dialogDestinos.rup_dialog({
				title: $.rup.i18n.app.comunicacion.seleccione,
				type: $.rup.dialog.DIV,
				autoOpen: true,
				closeOnEscape: true,
				modal: true,
				resizable: true,
				minWidth: 500,
				buttons: [{
					text: $.rup.i18n.base.rup_global.close,
					click: function() {
						dialogDestinos.rup_dialog("destroy");
					},
					btnType: $.rup.dialog.LINK
				},
				{	text: $.rup.i18n.base.rup_global.aceptar,
					click: function() {
						dialogDestinos.rup_dialog("destroy");
						nuevosDestinatarios();
					}
				}],
				open: function() {
					//$("input[type='checkbox'][id^='destino_']").prop( "checked", true);
				},
				close: function() {
					//l61bUtils.feedback.cerrarFeedbacks($("#tramitacion_feedback"));
				}
			});		
	});

	$("[id='comunicaciones_toolbar##EnviarComunicacion']").click(function(){
		lista = $("input[type='checkbox'][id^='destino_']");
		var eCorrectos = [];
		var eErroneos = [];
		for (i=0;i<lista.length;i++){
			idcampo = lista[i].id;
			valor =  $("#"+idcampo).val();
			if ($("#"+idcampo).is(':checked')){
				//if ($("#estado_"+valor).val() == '0') {
					eCorrectos.push(valor);
				//}
			}
		}
		
		if (eCorrectos.length == 0){
    		ab03bUtils.feedback.pintarFeedbackError($.rup.i18n.app.comunicacion.seleccioneCom,  $("#tramitacion_feedback"));			
		} else {
		   $.rup_ajax({
	    	url : $.rup.CTX_PATH + "comunicaciones/enviarComunicacion",
	    	dataType: 'json',
	    	data:{
	    		'destinos':eCorrectos.join("#"),
				"id014HistoTram": id014,
				"idProvincia": idProvincia,
				"idAno": idAno,
				"idExpediente": idExpediente,
				"url": $.rup.APP_STATICS
	    		},
	    	cache: false,
	    	type: "GET",
	    	contentType: 'application/json',
	    	success: function (resultado, ajaxOptions) {
	    		hayerror = 0;
	    		for (var campo in resultado){
	    			var estadoMasCierre = resultado[campo].split("_");
					var estado = estadoMasCierre[0];
					var cierre = estadoMasCierre[1];
					if(cierre == 'S'){
						estadoCierreRealizado=true;
					}else{
						estadoCierreRealizado=false;
					}
    				if (estado == '2'){
    					ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.errorEnvioComunicacion, "error", $("#tramitacion_feedback"));			
    					hayerror=1;
    				}
    			}
	    		if (hayerror==0){
	    			ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.okEnvioComunicacion,  "ok",$("#tramitacion_feedback"));
	    		}
	    		//Si todo ok, se recaga la pantalla para mostrar la nueva informacion
	    		location.href = $.rup.CTX_PATH + "expedientes/detalle/tramitacion/irTramite/" + idProvincia + "/" + idAno + "/" + idExpediente+"/"+id014+"/"+estadoCierreRealizado+"?tab=1";
	    	},
	   		error: function (xhr, textStatus, errorThrown) {
				ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.errorEnvioComunicacion, "error", $("#tramitacion_feedback"));
			},
			beforeSend : function() {
				ab03bUtils.util.bloquearInterfaz();
			},
			complete: function() {
				ab03bUtils.util.desBloquearInterfaz();
			}
	    });
		}
	});

	$("[id='comunicaciones_toolbar##RelanzarComunicacion']").click(function(){
		
		//ab03bUtils.util.bloquearInterfaz();
		
		var lista = $("input[type='checkbox'][id^='destino_']");
		var relanzar = [];
		for (i=0;i<lista.length;i++){
			idcampo = lista[i].id;
			valor =  $("#"+idcampo).val();
			if ($("#estado_"+valor).val() == '2') {
				relanzar.push(valor);
			}
		}
		//var relanzar = $("[id*='estado_'][value='2']").map(function(index,el){return el.id;}).toArray();
		if (relanzar.length > 0){
			//waitDialog();
			$.rup_ajax({
		    	url : $.rup.CTX_PATH + "comunicaciones/enviarComunicacion",
		    	dataType: 'json',
		    	data:{
		    		'destinos':relanzar.join("#"),
		    		"id014HistoTram": id014,
					"idProvincia": idProvincia,
					"idExpediente": idExpediente,
					"idAno": idAno
		    		},
		    	cache: false,
		    	type: "GET",
		    	contentType: 'application/json',
		    	success: function (resultado, ajaxOptions) {
		    		hayerror = 0;
		    		for (var campo in resultado){
		    			//var estado = resultado[campo];
		    			
		    			var estadoMasCierre = resultado[campo].split("_");
		    			//alert ("estadoMasCierre:"+estadoMasCierre);
		    			
						var estado = estadoMasCierre[0];
						
						var cierre = estadoMasCierre[1];
						//alert ("cierre:"+cierre);
						
						if(cierre == 'S'){
							estadoCierreRealizado=true;
						}else{
							estadoCierreRealizado=false;
						}
						
	    				if (estado == '2'){
	    					ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.errorEnvioComunicacion, "error", $("#tramitacion_feedback"));			
	    					hayerror=1;
	    				}
	    			}
		    		if (hayerror==0){
		    			ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.okEnvioComunicacion, "ok",$("#tramitacion_feedback"));
		    		}
		    		//Si todo ok, se recaga la pantalla para mostrar la nueva informaci�n
		    		location.href = $.rup.CTX_PATH + "expedientes/detalle/tramitacion/irTramite/" + idProvincia  + "/" +idAno  + "/" + idExpediente+"/"+id014+"/"+estadoCierreRealizado+"?tab=1";
		    	},
		   		error: function (xhr, textStatus, errorThrown) {
					ab03bUtils.feedback.pintarFeedback($.rup.i18n.app.mensajes.errorEnvioComunicacion, "error", $("#tramitacion_feedback"));
				},
				beforeSend : function() {
					ab03bUtils.util.bloquearInterfaz();
				},
				complete: function() {
					ab03bUtils.util.desBloquearInterfaz();
				}
		    });
		}
	});
});


//Marca y desactiva aquellos destinatarios para los que ya se ha creado la comunicación
function desactivaDestinatario(el){
	$("#destinatarios_"+el).prop( "checked", false ).attr("disabled", true);
	$("#destinatarios_"+el).addClass("NOGENERAR");
}

function nuevosDestinatarios(){

	lista = $("input[type='checkbox'][id^='destinatarios_']");
	var arrayDestinos = [];
	for (i=0;i<lista.length;i++){
		idcampo = lista[i].id;
		valor =  $("#"+idcampo).val();
		if ($("#"+idcampo).is(':checked') && $("#"+idcampo).attr("disabled") != 'disabled'){
			arrayDestinos.push(valor);
		}
	}

	if (arrayDestinos.length > 0) {
		$.rup_ajax({
			url : $.rup.CTX_PATH + "comunicaciones/addComunicaciones",
			dataType: 'json',
			data: {
				"destinos": arrayDestinos.join("#"),
				"id014HistoTram": id014
			},
	    	type: "GET",
	    	contentType: 'application/json',
			success: function (retorno){
				if (retorno = 'add'){
					//Si se dan de alta los registros en la tabla de comunicaciones se repinta la pantalla
					location.href = $.rup.CTX_PATH + "expedientes/detalle/tramitacion/irTramite/" + idProvincia + "/" + idAno + "/" + idExpediente+"/"+id014+"/"+estadoCierreRealizado+"?tab=1";
				}
			},
			error: function(error){
				ab03bUtils.feedback.pintarFeedbackError(error.responseText, $("#comunicaciones_feedback"));
			}
		});
	}
}






