var codEdificioSel="";
var usuario= $("#uidPer").val();
var accion = document.editarTecnicoForm.accion.value;	
$( document ).ready(function() {

	       
	buscaEdificios(); // rellenamos los combos de edificios

    
	// Al pulsar el botón guardar enviamos los campos del formulario al Controller
	$("#bt_guardar").bind("click", confirmarModificar);

	$("#bt_Volver").bind("click", volver);
	$("#bt_nuevo").bind("click", nuevo);
	
	
});	    

/***************************************************************************/
/********************   TOOLTIPS *******************************************/
/***************************************************************************/
$("#imgBuscarServicios").rup_tooltip({
	content: {
	text: $.rup.i18n.app.nuevo.ventanaSeleccion
	}
});

/***************************************************************************/
/********************   SERVICIOS *******************************************/
/***************************************************************************/
function btn_BuscarServicios(){
	var urlServicios="";
	if (accion == "NUEVO") {
		urlServicios="../servicios/obtenerServiciosAlta";
	}else{
		urlServicios="../servicios/obtenerServicios";
	}
	
	$("#idTablaServicios").empty();
	var textoBaja="";
	//Obtener la lista de Servicios
	$.ajax({
		type: "POST",
		url: urlServicios,
		success: function(data){
			var miselect=$("#idTablaServicios");
			$("#idTablaServicios").empty();
            for (var i=0; i<data.length; i++) {
            	var descripcion = "";
            	if (data[i].baja=="1"){
            		textoBaja="(" + $.rup.i18n.app.GRID_cabeceras.baja  + ") ";
            	}else{
            		textoBaja= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            	}
              	if ($.rup_utils.capitalizedLang() =="Es") {	
              		descripcion =  textoBaja + data[i].cservicio;
              	} else {
              		descripcion = textoBaja + data[i].eservicio;
              	}
              	miselect.append('<option value="' + data[i].idservicio + '">' + descripcion + '</option>');
             	}								  
			},
		  dataType: "json"
		});

	
	//Mostrar la ventana de lupa Servicios
	$("#lupaServicios").rup_dialog({      
		type: jQuery.rup.dialog.DIV,
		modal:true,
        height:300,
        width:450,  
        resizable:false,
        title:$.rup.i18n.app.comun.serviciosVigentes,
        autoOpen:true,
        showLoading:true,
        async:false, 
        zIndex: -1,
        buttons:[{
	        	id: "aceptarlupaServicios",
	        	text: $.rup.i18n.base.rup_global.aceptar,
	        	click: function() {
	        		//No se permitirá cambiar el servicio si es responsable y tiene tecnicos asociados.
	        		if (accion != "NUEVO" && $("#responsable").is(':checked') && $('#tecnicosOcupados option').size()>0) {
	        			$.rup_messages("msgAlert", { 
	        	 			title: $.rup.i18n.app.comun.control,
	        		 		message: $.rup.i18n.app.mensajesServicio.noCambio
	        		 	});
	        		}else{
		        		//Pintar el texto de servicio 
		        		$("#idServicio").val($("#idTablaServicios option:selected").val());
		        		var texto = $("#idTablaServicios option:selected").html();
		        		texto = texto.replace(/&nbsp;/g, "");
		        		$("#textoServicio").val(texto);

		        		$("#lupaServicios").rup_dialog("close");
	        		}
	        		}
        	},
	        {
	    		id: "cerrarlupaServicios",
	    		text: $.rup.i18n.base.rup_global.cancelar,
	        	click: function() {
	        		$("#lupaServicios").rup_dialog("close");
	        	},
	        	btnType:$.rup.dialog.LINK
        	}]
      });
   

}

/********************************* MODIFICAR  ****************************************************************/	

function confirmarModificar (){
	var codigoUsuario = $("#uidPer").val();
	var idTecnico = $("#idtecnico").val();
	var bUsuEnXLNets = false;
	var bUsuDuplicado = false;

	//Comprobar si el puesto existe en XLNET
	$.ajax({
		  type: "POST",
		  url: "../usuarioXLNET/existePuestoXLNET",
		  data:  { puestoIntroducido:codigoUsuario},
		  success: function(data){
				  if (data){
					  bUsuEnXLNets = true;
				  }else{
					  bUsuEnXLNets = false;
				  }
				  if (bUsuEnXLNets == false){
						if (!(codigoUsuario.substring(0,2)=="88" && codigoUsuario.length==8)){
							  // El puesto indicado no existe en XL-Nets y, en ese caso, debe empezar por 88 y tener una longitud de 8 caracteres (88xxxxxx).
							  $.rup_messages("msgError", { 
						 			title: $.rup.i18n.app.comun.control,
							 		message: $.rup.i18n.app.mensajesUsuarios.codPuestoNOXLNetsErr
							 	});
								return false;
						}
				  }
				  // Independientemente de que el puesto exista en XLNET.
				  //Validar que no exista ya otro tecnico con ese UIDPUESTO
				  $.ajax({
					  type: "POST",
					  url: "../tecnicos/UIDPUESTOduplicado",
					  data:  { puestoIntroducido:codigoUsuario, idTecnico:idTecnico},
					  success: function(data){
							  if (data){
								  bUsuDuplicado = true;
//									if (usuario==codigoUsuario){ //Sobra en el alta
//										bUsuDuplicado = false;
//									}
							  }else{
								  bUsuDuplicado = false;
							  }
							  if (bUsuDuplicado==true){
								  // El UDIPUESTO ya lo tiene otro técnico
								  $.rup_messages("msgError", { 
							 			title: $.rup.i18n.app.comun.control,
								 		message: $.rup.i18n.app.mensajesUsuarios.uidPuestoDuplicado
								 	});
									return false;
							  }
								$.rup_messages("msgConfirm", {
									title: $.rup.i18nParse($.rup.i18n.app,"accionesRegistros.modificar"),			
									message: $.rup.i18nParse($.rup.i18n.app,"accionesRegistros.deseaModificar"),
									OKFunction: function(){
										//... y si da el visto bueno se modifica el técnico
										modificarTecnico();	
									},
										CANCELFunction : function(){
									}
									});
							  },
								 error: function(data){
									 alert( data);
								 },
							  dataType: "json"
							});
			  },
			 error: function(data){
				 alert( data);
			 },
		  dataType: "json"
		});
}

function modificarTecnico () {
	
	// Convertimos los checkbox a 0 y 1 en funcion de si están seleccionados o no
	$("input[type=checkbox]").each (function() {						
		$(this).val(this.checked ? "1" : "0");
	});
	
	var properties={
			url:"../tecnicos/modificarTecnico",
			feedback:$("#feedbackEditarTecnico"),
			 beforeSend : function(data) {
					//Mostrar div de sincronizando
				  $("#dialogoGuardar").rup_dialog(
							{
								type : $.rup.dialog.DIV,
								height : 200,
								width : 500,
								modal : true,
								showLoading : true,
								autoOpen : false,
								title : $.rup.i18n.app.mensajesEdificios.guardando
							});
					$("#dialogoGuardar").rup_dialog("open");
			  },
			useJsonIfPossible: true,
			 error: function(data) {
				 $("#dialogoGuardar").rup_dialog("close");
				  	$("#dialogoGuardar").rup_dialog("destroy");
				 alert(data.responseText);
				 mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errormodificar + " --- " + data.responseText + "</strong></p>");
			 },
			 success: function(){		
				 $("#dialogoGuardar").rup_dialog("close");
				  	$("#dialogoGuardar").rup_dialog("destroy");
				 mensajeInfo("<p><strong>" +  $.rup.i18n.app.accionesRegistros.guardadook + "</strong></p>");
				 //Refrescamos las listas de edificios por si ha dado de baja el edificio.
				 buscaEdificios();
			 },
			 validate: {
				 rules: {
						"nombre":{required:true},
						"textoServicio" : {required:true}
				 }
			 }
			};
			$("#editarTecnicoForm").rup_form(properties);
			
			$("#editarTecnicoForm").submit();
		
}

/********************************* FIN MODIFICAR  ****************************************************************/

/********************************* BOTON NUEVO  ****************************************************************/

function nuevo(){
	window.location = "/aa20bMaqPartesWar/tecnicos/nuevoTecnico";
}
/********************************* FIN VOLVER  ****************************************************************/

/********************************* BOTON VOLVER  ****************************************************************/

function volver(){
	if ($("#ventanaOrigen").val()=="mantTecnicos"){
		window.location = "/aa20bMaqPartesWar/tecnicos/maintVolver";	
	}else if ($("#ventanaOrigen").val()=="tecnicosEdificios"){
		window.location = "/aa20bMaqPartesWar/tecnicoedif/maintVolver";	
	}else{
		history.back();	
	}
}
/********************************* FIN VOLVER  ****************************************************************/


/********************************* TECNICOS ************************************************/

function buscaEdificios() {
	var codigoTecnico = $("#idtecnico").val();
	var UIDPuesto = $("#uidPer").val();
	var strEdificio="";
	$("#edificiosLibres").empty();
	$("#edificiosOcupados").empty();
	
	$.ajax({
		  type: "POST",
		  url: "../edificios/obtenerEdificiosTecnicoLibres",
		  data:  { idTecnico:codigoTecnico,UIDPuesto:UIDPuesto},
		  success: function(data){
			  $("#edificiosLibres").empty();
              var miselect=$("#edificiosLibres");
			    for (var i=0; i<data.length; i++) {
			    	strEdificio="";
			    	if ($.rup_utils.capitalizedLang() =="Es") {
			    		strEdificio=data[i].cedificio;
			    	}else{
			    		strEdificio=data[i].eedificio;
			    	}
                	miselect.append('<option value="' + data[i].idedificio + '">' + strEdificio + '</option>');
                }								  
			  },
			 error: function(data){
				 alert( data);
			 },
		  dataType: "json"
		});
	$.ajax({
		  type: "POST",
		  url: "../edificios/obtenerEdificiosTecnicoOcupados",
		  data:  { idTecnico:codigoTecnico},
		  success: function(data){
			  $("#edificiosOcupados").empty();
              var miselect=$("#edificiosOcupados");
			  for (var i=0; i<data.length; i++) {
		    	strEdificio="";
		    	if ($.rup_utils.capitalizedLang() =="Es") {
		    		strEdificio=data[i].cedificio;
		    	}else{
		    		strEdificio=data[i].eedificio;
		    	}
              	miselect.append('<option value="' + data[i].idedificio + '">' + strEdificio + '</option>');
              }								  
			  },
			 error: function(data){
				 alert( data);
			 },
		  dataType: "json"
		});
  }
	

$("#siguienteEdificio").bind("click", confirmarSumaEdificios);
$("#anteriorEdificio").bind("click", confirmarRestaEdificios);

function confirmarSumaEdificios(){
	$.rup_messages("msgConfirm", {
		title: $.rup.i18nParse($.rup.i18n.app,"mensajesTecnicos.alta"),			
		message: $.rup.i18nParse($.rup.i18n.app,"mensajesTecnicos.sumaEdificio"),
		OKFunction: function(){
			sumaEdificios();		
		},
		CANCELFunction : function(){
		}
		});
}

function confirmarRestaEdificios (){
	//Comprobar si tiene zonas asinadas a ese edificio
	var codigoTecnico = $("#idtecnico").val();
	var edificiosSeleccionados = $('#edificiosOcupados').val();
	
	$.ajax({
		  type: "POST",				  
		  url: "../tecnicoedif/comprobarEdificioTieneZonaTecnico",
		  data:  { idTecnico:codigoTecnico,edificiosSeleccionados:formaArrayJson(edificiosSeleccionados)
			  },
		  success: function(data4){
			  if(data4==""){
					$.rup_messages("msgConfirm", {
						title: $.rup.i18nParse($.rup.i18n.app,"mensajesTecnicos.baja"),			
						message: $.rup.i18nParse($.rup.i18n.app,"mensajesTecnicos.restaTecnico"),
						OKFunction: function(){
							restaEdificios();		
						},
						CANCELFunction : function(){
						}
						});
			  }else{
				  $.rup_messages("msgError", { 
			 			title: $.rup.i18n.app.comun.control,
				 		message: $.rup.i18n.app.mensajesTecnicos.noElimEdificio
				 	});
			  }
			 },
		  error: function() {
			  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errorguardar + "</strong></p>");
		  },
		  dataType: "json"
		});
}

function formaArrayJson (lista) {
	var listaJson = "";
	for (i=0; i<lista.length; i++ ) {
		listaJson += lista[i];			
		if (i!= (lista.length - 1) ) {
			listaJson += ",";
		}		
	}			
	return listaJson;
}

function sumaEdificios() {
	var codigoTecnico = $("#idtecnico").val();
	var edificiosSeleccionados = $('#edificiosLibres').val();
		
	$.ajax({
		  type: "POST",				  
		  url: "../edificios/sumaEdificiosTecnico",
		  data:  { idTecnico:codigoTecnico,edificiosSeleccionados:formaArrayJson(edificiosSeleccionados)
		  },
		  success: function(data4){					 
			  	!$('#edificiosLibres option:selected').remove().appendTo('#edificiosOcupados'); 		  
			  },
		  error: function() {
			  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errorguardar + "</strong></p>");
		  },
		  dataType: "json"
		});

}
function restaEdificios() {
	var codigoTecnico = $("#idtecnico").val();
	var edificiosSeleccionados = $('#edificiosOcupados').val();
		
	$.ajax({
		  type: "POST",				  
		  url: "../edificios/restaEdificiosTecnico",
		  data:  { idTecnico:codigoTecnico,edificiosSeleccionados:formaArrayJson(edificiosSeleccionados)
		  },
		  success: function(data4){					 
			  	!$('#edificiosOcupados option:selected').remove().appendTo('#edificiosLibres'); 	
				$("#zonasLibres").empty();
				$("#zonasOcupadas").empty();
			  },
		  error: function() {
			  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errorBorrar + "</strong></p>");
		  },
		  dataType: "json"
		});
	
}
/********************** FIN EDIFICIOS *********************************/

/********************** ZONAS *********************************/
function buscaZonas(codEdificio){
	$("#zonasLibres").empty();
	$("#zonasOcupadas").empty();
	codEdificioSel=codEdificio;
	
	$.ajax({
		  type: "POST",
		  url: "../tecnicoedif/buscaZonasEdificioTecnicoLibres",
		  data:  { codEdificio:codEdificio, idTecnico: $("#idtecnico").val()},
		  success: function(data){
			  var miselect=$("#zonasLibres");
			  $("#zonasLibres").empty();
                for (var i=0; i<data.length; i++) {
                	var descripcion = "";
                	if ($.rup_utils.capitalizedLang() =="Es") {	
                		descripcion = data[i].czona;
                	} else {
                		descripcion = data[i].ezona;
                	}
                	miselect.append('<option value="' + data[i].idzona + '">' + descripcion + '</option>');
                }								  
			  },
		  dataType: "json"
		});
	
	$.ajax({
		  type: "POST",
		  url: "../tecnicoedif/buscaZonasEdificioTecnicoOcupadas",
		  data:  { codEdificio:codEdificio, idTecnico: $("#idtecnico").val()},
		  success: function(data2){
			  var miselect2=$("#zonasOcupadas");
			  $("#zonasOcupadas").empty();
                for (var i=0; i<data2.length; i++) {
                	var descripcion2 = "";
                	if ($.rup_utils.capitalizedLang() =="Es") {	
                		descripcion2 = data2[i].czona;
                	} else {
                		descripcion2 = data2[i].ezona;
                	}
                    miselect2.append('<option value="' + data2[i].idzona + '">' + descripcion2 + '</option>');
                }								  
			  },
		  dataType: "json"
		});
  }

$("#siguienteZonas").bind("click", confirmarSumaZonas);
$("#anteriorZonas").bind("click", confirmarRestaZonas);

function confirmarSumaZonas (){
	$.rup_messages("msgConfirm", {
		title: $.rup.i18nParse($.rup.i18n.app,"mensajesEdificios.alta"),			
		message: $.rup.i18nParse($.rup.i18n.app,"mensajesEdificios.sumaZona"),
		OKFunction: function(){
			sumaZonas();		
		},
		CANCELFunction : function(){
		}
		});
}

function confirmarRestaZonas (){
	//Comprobar si tiene partes asinados en esas zonas que quiere eliminar
	var codEdificio = codEdificioSel;
	var zonasSeleccionadas = $('#zonasOcupadas').val();
	
	$.ajax({
		  type: "POST",				  
		  url: "../partes/comprobarParteZonaTecnico",
		  data:  { codEdificio:codEdificio, idTecnico: $("#idtecnico").val(),zonasSeleccionadas:formaArrayJson(zonasSeleccionadas)
		  },
		  success: function(data4){
			  if(data4==""){
					$.rup_messages("msgConfirm", {
						title: $.rup.i18nParse($.rup.i18n.app,"mensajesEdificios.baja"),			
						message: $.rup.i18nParse($.rup.i18n.app,"mensajesEdificios.restaZona"),
						OKFunction: function(){
							restaZonas();		
						},
						CANCELFunction : function(){
						}
						});
			  }else{
				  $.rup_messages("msgError", { 
			 			title: $.rup.i18n.app.comun.control,
				 		message: $.rup.i18n.app.mensajesTecnicos.noElimZona + " ----- " + data4
				 	});
			  }
			 },
		  error: function() {
			  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errorguardar + "</strong></p>");
		  },
		  dataType: "json"
		});
	
}

function sumaZonas () {	
	var codEdificio = codEdificioSel;
	var zonasSeleccionadas = $('#zonasLibres').val();
		
	
	$.ajax({
		  type: "POST",				  
		  url: "../tecnicoedif/sumaZonasEdifTec",
		  data:  { codEdificio:codEdificio, idTecnico: $("#idtecnico").val(),zonasSeleccionadas:formaArrayJson(zonasSeleccionadas)
		  },
		  success: function(data4){		
			  $("#error").rup_feedback("hide");
			  !$('#zonasLibres option:selected').remove().appendTo('#zonasOcupadas');
			  // deseleccionamos los combos
			  $("#zonasLibres").val([]);
			  $("#zonasOcupadas").val([]);
			  },
		  error: function() {
			  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.errorguardar + "</strong></p>");
		  },
		  dataType: "json"
		});
}

function restaZonas () {
	var codEdificio =codEdificioSel;
	var zonasSeleccionadas = $('#zonasOcupadas').val();
	if (zonasSeleccionadas == null) { 
		mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.debeSeleccionarBaja + "</strong></p>");
		return ; }
	$.ajax({
		  type: "POST",				  
		  url: "../tecnicoedif/restaZonasEdifTec",
		  data:  { codEdificio:codEdificio, idTecnico: $("#idtecnico").val(),zonasSeleccionadas:formaArrayJson(zonasSeleccionadas)
		  },
		  success: function(data4){	
			  $("#error").rup_feedback("hide");
			  
			  !$('#zonasOcupadas option:selected').remove().appendTo('#zonasLibres');
			  // deseleccionamos los combos
			  $("#zonasLibres").val([]);
			  $("#zonasOcupadas").val([]);
			  },
			  error: function() {
				  mensajeError("<p><strong>" +  $.rup.i18n.app.accionesRegistros.eliminadoEnUso + "</strong></p>");
			  },
		  dataType: "json"
		});
}

/********************** FIN ZONAS *********************************/

/********************************* FEEDBACK MENSAJES OK  ****************************************************************/

function mensajeInfo (texto) {
	 var properties = {
				type: "ok",
				fadeSpeed: 600,
				gotoTop: false,
				block: false,
				closeLink: false
			};
	
		$("#feedbackEditarTecnico").rup_feedback (properties);

		$("#feedbackEditarTecnico").rup_feedback("set", texto);

		$("#feedbackEditarTecnico").rup_feedback("show");
}

function mensajeError (texto) {
	 var properties = {
				type: "error",
				fadeSpeed: 600,
				gotoTop: false,
				block: false,
				closeLink: false
			};

		$("#feedbackEditarTecnico").rup_feedback (properties);

		$("#feedbackEditarTecnico").rup_feedback("set", texto);

		$("#feedbackEditarTecnico").rup_feedback("show");
}

/********************************* FIN FEEDBACK MENSAJES OK  ****************************************************************/

function obtenerIdioma(){
    var idioma="";       
    if ($.rup_utils.capitalizedLang() =="Es") {    
          idioma = "c";
    } else idioma="e";
    return idioma;
}

// Esto es necesario para que salgan los mensajes de validacion de uda
jQuery("#feedbackEditarTecnico").rup_feedback({
	  type: "ok",                  
	  closeLink: true,                  
	  delay: 1000,                  
	  fadeSpeed: 500,                  
	  block:false          
	  }); 
