var planoBase=null;
var planoLupa=null;
var accion ="";
var codZona="0";
var codPlanta="0";
var codEdificio="0";
var arrayPlanos = new Array();
var planoFinal = true;

jQuery(function($){
	
	/******************************* PESTAÑAS***************************************/
	if($("#ventanaOrigen").val() == "consultarPartesUsuNormal"){
		
		$("#aa20bMaqPartesWar_menu").hide();
		$("#contentMV").css("margin-left", "0px");
		$("#aa20bMaqPartesWar_migas").hide();
		$("#tituloAplicacion").html($.rup.i18n.app.nuevo.titulo);
		
		
		$("#consultarParte").rup_tabs({
			tabs : [
			        {i18nCaption:$.rup.i18n.app.partes.datosGenerales, layer:"#tabContenidoGeneral"}
		    ],
		    cache:false
		});
		
		
		$("#idTiempoReal").hide();
		$("#idTiempoRealLabel").hide();
		$("#vipLabel").hide();
		$("#vip").hide();
		
		
	}else{
		$("#consultarParte").rup_tabs({
			tabs : [
			        {i18nCaption:$.rup.i18n.app.partes.datosGenerales, layer:"#tabContenidoGeneral"},
			        {i18nCaption:$.rup.i18n.app.partes.tecnicos, url:"../tecnicos/tecnicosDelParteSoloLectura"}
		    ],
		    cache:false,
		    select: function(){
		    	if ($("#consultarParte").tabs('option', 'selected')==1){
		    		//Ha pinchado en la pestaña Datos Generales. ReCargar los datos de Ejecucion por si los ha modificado en la pestaña de Técnicos.
		    		$.ajax({
		    			type: "POST",
		    			url: "../partes/obtenerDatosEjecucion",
		    			  data:  { idparte:$("#idparte").val()},
		    			success: function(data){
		    				if(data.ejecutado==1){
		    					$("#idEjecutado").prop('checked', true);
		    				}else{
		    					$("#idEjecutado").prop('checked', false);
		    				}
		    				$("#idTiempoReal").attr('disabled',false);
		    				$("#idTiempoReal").val(data.tiempoReal);
		    				$("#idFechaEj").attr('disabled',false);
		    				$("#idFechaEj").val(data.fechaej);
		    			},
		    			  dataType: "json"
		    			});
		    	}
				}
		});
	}
	
	//si no tiene actuacion asociada se oculta la parte de Actuacion asociada y maquina asociada
	if ($("#idActuac").val()>0){
		$("#divPreventivoAsociado").show();
	}
	
	$("#divNumAveria").hide();

	var ctxPunto ;
	var cPunto ;
	
	var sClase="";
	var sCodigo="";
	var sCodClase="";
	var sCodCodigo="";
	var pos;

	
	accion = document.nuevoParteForm.accion.value;	
	if(accion == "VER_DETALLE"){
		
		$("#divNumParte").show();
		$("#divParteFin").show();
		
		$("#datosPersmanualspan").show();
		$("#locAveriaxlnetspan").show();
		$("#divPuesto").show();

		$("#idNombre").attr('disabled','disabled');
		$("#txtDpto").attr('disabled','disabled');
		$("#txtDireccion").attr('disabled','abled');
		$("#txtEdificio").attr('disabled','disabled');
		$("#idTelefono").attr('disabled','disabled');
		$("#idEmail").attr('disabled','disabled');
		$("#vip").attr('disabled','disabled');
		$("#urgente").attr('disabled','disabled');
		$("#idDescripcion").attr('disabled','disabled');
		$("#idDescripcion").css('background-color','#fffeda');
		
		
		if ($.rup_utils.capitalizedLang() =="Es") {	
			$("#claseActivo").val($("#idCClase").val());
			$("#activo").val($("#idCCodigo").val());
		}else{
			$("#claseActivo").val($("#idEClase").val());
			$("#activo").val($("#idECodigo").val());
		}
		$("#vip").attr('disabled','disabled');	
		
		obtenerPlano();
		
		//Se deshabilita el marco del plano
		$('#canvaPunto').on('mouseup', function(e){});

		//$("#divCanvas").attr('disabled','disabled');
		
		modoConsulta();
		
		codPlanta=$("#idPlanta").val();
		codZona=$("#idZona").val();
		
		if($("#tienePDF").val() == "si"){
			//Mostramos el botón para poder descargarse el pdf
			$("#descargarPDF").show();
			var urldesc = "../partes/getDocumentoPDF?idParte="+$("#idparte").val();
			$('a#btn_descargarPdf').attr({target: '_blank',href  : urldesc});
		}else{
			$("#descargarPDF").hide();
		}
	}
	
	/*************************************************************************/
	$("#bt_salir").bind("click", salir);
	$("#bt_imprimir").bind("click", imprimir);
	$("#bt_Volver").bind("click", comprobarVolver);
	
	$("#divContenido").show();
	$("#dialogoEspera").hide();
	
	/***************************************************************************/
	/********************   PLANOS - *******************************************/
	/***************************************************************************/

	//Si estamos en el plano final, cuando haga click pintaremos un punto rojo
	//Si no es un plano final, cogeremos la coordernada en la que ha hecho clik y comprobaremos si es una zona que tiene que abrir el plano hijo
	$('#canvaPlano1').on('mouseup', function(e){
		var pos = getMousePos(this, e);
		if (planoFinal==true){
			pintarX(pos.x,pos.y);
			
		}else if (planoFinal==false){
			//recorremos el array de coordenada para ver si ha pinchado en una zona alrededor de un punto rojo (+-15) 
			jQuery.each( arrayPlanos, function( i, val ) {
				if ((parseInt(arrayPlanos[i].coordX) - 15)<(parseInt(pos.x)) && (parseInt(arrayPlanos[i].coordX) + 15)>(parseInt(pos.x)) && 
						(parseInt(arrayPlanos[i].coordY) - 15)<(parseInt(pos.y)) && (parseInt(arrayPlanos[i].coordY) + 15)>(parseInt(pos.y))		
				) {
					//Cargar el plano hijo
					cargarCanvasLupaIDPlano(arrayPlanos[i].idplano);
					 planoFinal=true;
				}
			});
		}
	});
	
});

function vaciarMapa(){
	//Ocultar el mapa y vaciar el campo que guarda el mapa
	var canvas = $('#canvaPunto')[0]; 
	canvas.width = canvas.width;
	$("#planoMarca").val("");

}
function getMousePos(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
    };
}

function modoConsulta(){
	$("input").attr('disabled','disabled');
	$("textarea").attr('readonly','readonly');

	$("#imgBuscarEspacio").attr("onclick", false);
	$("#imgBuscarClases").attr("onclick", false);
	//$("#imgBuscar").attr("onclick", false);
	
}
function comprobarVolver(){
	volver();
}

function volver(){

		if ($("#ventanaOrigen").val()=="Ficha"){
			 //el origen ha sido una ficha. Volver a la ficha origen.
			 editarFichasForm.idEditarFicha.value = $("#ficha").val();
			 editarFichasForm.submit();
			$("#editarFichasForm").submit();
		}else if ($("#ventanaOrigen").val()=="PlanificacionGeneral"){
				window.location = "/aa20bMaqPartesWar/maquinas/planGeneralVolver";	
		}else if ($("#ventanaOrigen").val()=="MantPartes"){
			window.location = "/aa20bMaqPartesWar/partes/maintVolver";	
		}else if ($("#ventanaOrigen").val()=="PartesCorr"){
			window.location = "/aa20bMaqPartesWar/partes/listadoPartesCorrVolver";	
		}else if ($("#ventanaOrigen").val()=="EjecTecnico"){
			window.location = "/aa20bMaqPartesWar/partes/listadoEjecTecnicoVolver";	
		}else if ($("#ventanaOrigen").val()=="EjecFecha"){
			window.location = "/aa20bMaqPartesWar/partes/listadoEjecFechaEjVolver";	
		}else if ($("#ventanaOrigen").val()=="CorrPendAsignar"){
			window.location = "/aa20bMaqPartesWar/partes/corrPendAsignarVolver";	
		}else if ($("#ventanaOrigen").val()=="CorrPendAutomatico"){
			window.location = "/aa20bMaqPartesWar/partes/corrAutVolver";	
		}else if ($("#ventanaOrigen").val()=="CorrPendManual"){
			window.location = "/aa20bMaqPartesWar/partes/corrManVolver";	
		}else if ($("#ventanaOrigen").val()=="PartesCorrSoloLectura"){
			window.location = "/aa20bMaqPartesWar/partes/listadoPartesCorrVolver";
		}else{
			history.back();	
		}

	
}


function getMousePos(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
    };
}

function salir(){
	location.href="/aa20bMaqPartesWar/partes/maint";
}
function imprimir(){
	window.print();
}


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

function mostrarLocalizacion(valor){
	if (valor==1){
		$("#divOtroSitio").show();
		$("#divPuesto").hide();
		//Poner los valores seleccionados en los combos
		$("#idZona").val($("#comboZonas").val());
		$("#idPlanta").val($("#comboPlantas").val());
		$("#imgBuscarEspacio").show();
	}else if (valor==0){
		$("#divOtroSitio").hide();
		$("#divPuesto").show();
		//Poner los valores que han venido de XLNET
		$('#comboZonas').rup_combo("setRupValue","");
		$('#comboPlantas').rup_combo("setRupValue","");
		$("#idZona").val(codZona);
		$("#idPlanta").val(codPlanta);
		
		$("#idespacio").val("");
		$("#idCEspacio").val("");
		$("#idEEspacio").val("");
		$("#textoEspacio").val("");
		$("#imgBuscarEspacio").hide();
	}
	//Ocultar el mapa y vaciar el campo que guarda el mapa
	var canvas = $('#canvaPunto')[0]; 
	canvas.width = canvas.width;
	$("#planoMarca").val("");
}


/******************************* MANEJO DEL CANVAS y PLANO ***************************************/

function getPos(e){
    var ev=e || window.event;
    var obj=ev.target || ev.srcElement;
    obj.style.position='relative'; 
    posX=ev.layerX || ev.offsetX || 0;
    posY=ev.layerY || ev.offsetY || 0;
    return {x:posX,y:posY};
}  

function marcarX(e){
	pos=getPos(e);
	pintarX(pos.x,pos.y);
}

function cargarCanvasPlanoCorto(){
	
	var canvasGrande; 
	canvasGrande=document.getElementById("canvaPlano1");
	
	 cPunto = document.getElementById("canvaPunto");
	 ctxPunto = cPunto.getContext("2d");
	
	planoBase = new Image();
	ctxPunto.clearRect( 0, 0, 300, 240);
	ctxPunto.drawImage(canvasGrande, 0, 0, 300, 240);
}

function btn_cargarPlano(){
	var idParteA =$("#idparte").val();
	//Comprobar si el parte ya tiene un plano guardado.
	  $.ajax({
		  type: "POST",
		  url: "../parteplano/parteTienePlano",
		  data:  { idParte:idParteA},
		  success: function(data){
				  if (data==true){
					  //Tiene plano seleccionado.
					  cargarZoomPlanoAsociado();
				  }else{
					  cargarPlanoEdificio();
				  }
				  },
					 error: function(data){
						 alert( data);
					 },
				  dataType: "json"
	});
	


}

function cargarPlanoEdificio(){

	
	var codEdif = $("#idEdificio").val();
	var codPlanta = $("#idPlanta").val();
	var codZonaP = $("#idZona").val();
	
	//Obtener el plano para ese edificio zona y planta y los planos hijos si los tuviera  
	$.ajax({
		type: "GET",
		url: "../planos/obtenerListaPlanos",
		data:  { codEdif:codEdif, codPlanta:codPlanta, codZona:codZonaP },
		success: function(data){
			//Si no hay ningun registro no pintar el icono para mostrar el plano
			if (data.length==0){
				$.rup_messages("msgAlert", { 
		 			title: $.rup.i18n.app.comun.control,
			 		message: $.rup.i18n.app.nuevo.noHayPlano
			 	});
			}else{
				//Si solamente hay un registro-->se trata de un plano final. Se podrá marcar un punto rojo en el plano
				if (data.length==1){
					planoFinal=true;
				}else{
					planoFinal=false;
					//Si hay mas de un registro-->se trata de un plano intermedio. cogeremos las coordenadas de los planos hijos
					for (var i = 0; i < data.length; i++) {
					    var valor = {idplano:data[i].idplano, coordX: data[i].ejexdesde, coordY:data[i].ejeydesde};
					    arrayPlanos.push(valor);
					}
				}
				//Abrimos la ventana y cargamos el plano
				cargarZoomPlano(codEdif,codPlanta, codZonaP);
			}
		},
		  dataType: "json"
		});


}


function cargarZoomPlanoAsociado(){
	//Mostrar la ventana de lupa del plano
	$("#lupaPlano").rup_dialog({      
		type: jQuery.rup.dialog.DIV,
		modal:true,
        height:750,
        width:850,  
        resizable:false,
        title:"",
        autoOpen:true,
        showLoading:true,
        async:false, 
        zIndex: -1,
        buttons:[
	        {
	    		id: "cerrarLupaPlano",
	    		text: $.rup.i18n.base.rup_global.cancelar,
	        	click: function() {
	        		$("#lupaPlano").rup_dialog("close");
	        	},
	        	btnType:$.rup.dialog.LINK
        	}]
      });
	
	 cPunto = document.getElementById("canvaPlano1");
	 ctxPunto = cPunto.getContext("2d");
	
	 planoLupa = new Image();
	 planoLupa.onload=function(){
		 ctxPunto.clearRect( 0, 0, 800, 640);
			ctxPunto.drawImage(planoLupa, 0, 0, 800, 640);
	};
	planoLupa.src="../parteplano/mostrarPlanoParte?idParte=" + $("#idparte").val();


}

function cargarZoomPlano(codEdif,codPlanta, codZona){
	//Mostrar la ventana de lupa del plano
	$("#lupaPlano").rup_dialog({      
		type: jQuery.rup.dialog.DIV,
		modal:true,
        height:750,
        width:850,  
        resizable:false,
        title:"",
        autoOpen:true,
        showLoading:true,
        async:false, 
        zIndex: -1,
        buttons:[{
	        	id: "aceptarLupaPlano",
	        	text: $.rup.i18n.base.rup_global.aceptar,
	        	click: function() {
	        		
	        		//Copiar la imagen del plano grande al corto
	        		cargarCanvasPlanoCorto();
	        		
	        		$("#lupaPlano").rup_dialog("close");
	        		
	        	}
        	},
	        {
	    		id: "cerrarLupaPlano",
	    		text: $.rup.i18n.base.rup_global.cancelar,
	        	click: function() {
	        		$("#lupaPlano").rup_dialog("close");
	        	},
	        	btnType:$.rup.dialog.LINK
        	}]
      });
		//cultamos el botón de aceptar y solo se mostrará cuando estemos en Alta de Parte y se haya hecho click en alguna parte del plano. 
		//Para que no se guarden en la base de datos planos sin pinchar
		$("#aceptarLupaPlano").hide();	
	
	cargarCanvasLupa(codEdif,codPlanta, codZona);
}
	
function cargarCanvasLupaIDPlano(idPlano){
	
	 cPunto = document.getElementById("canvaPlano1");
	 ctxPunto = cPunto.getContext("2d");
	
	 planoLupa = new Image();
	 planoLupa.onload=function(){
		 ctxPunto.clearRect( 0, 0, 800, 640);
			ctxPunto.drawImage(planoLupa, 0, 0, 800, 640);
	};
	planoLupa.src="../planos/cargarPlano?idPlano=" + idPlano;
	
}

function cargarCanvasLupa(codEdif,codPlanta, codZona){
	
	 cPunto = document.getElementById("canvaPlano1");
	 ctxPunto = cPunto.getContext("2d");
	
	 planoLupa = new Image();
	 planoLupa.onload=function(){
		 ctxPunto.clearRect( 0, 0, 800, 640);
			ctxPunto.drawImage(planoLupa, 0, 0, 800, 640);
	};
	planoLupa.src="../planos/mostrarPlano?edificio=" + codEdif + "&planta=" + codPlanta + "&zona=" + codZona;

}

function cargarCanvas(codEdif,codPlanta,codZona){
	
	if(planoBase==null){
		 cPunto = document.getElementById("canvaPunto");
		 ctxPunto = cPunto.getContext("2d");
		
		planoBase = new Image();
		planoBase.onload=function(){
			 ctxPunto.clearRect( 0, 0, 300, 240);
				ctxPunto.drawImage(planoBase, 0, 0, 300, 240);
		};
		planoBase.src="../planos/mostrarPlano?edificio=" + codEdif + "&planta=" + codPlanta + "&zona=" + codZona;
	}
	
	
}


function obtenerPlano(){
	var planoParte=null;

	cPunto = document.getElementById("canvaPunto");
	ctxPunto = cPunto.getContext("2d");
	
	planoParte = new Image();
	planoParte.onload=function(){
		ctxPunto.clearRect( 0, 0, 300, 240);
		ctxPunto.drawImage(planoParte, 0, 0, 300, 240);
	};
	planoParte.src="../parteplano/mostrarPlanoParte?idParte=" + $("#idparte").val();
	
}

function pintarX(x,y){

    //Si estamos en nuevo parte habilitamos el botón de Aceptar para que se pueda guardar la posición marcada
    if (accion == "NUEVO") {
    	$("#aceptarLupaPlano").show();	

		ctxPunto.clearRect( 0, 0, 800, 640);
		ctxPunto.drawImage(planoLupa, 0, 0, 800, 640);
		ctxPunto.fillStyle="#FF0000";
		ctxPunto.beginPath(); 
		ctxPunto.arc(x, y, 10, 0, 2 * Math.PI, true); 
		ctxPunto.fill();
		
		var canvas; 
		canvas=document.getElementById("canvaPlano1");
		var url = canvas.toDataURL();
		 var byteString;
		 if (url.split(',')[0].indexOf('base64') >= 0) {
		     byteString = url.split(',')[1];
		 } 
		 
		 //Metemos la imagen en el input que se va a enviar para guardar en base de datos la imagen
		$("#planoMarca").val(byteString);
    }
}


/******************************* AYUDA ***************************************/
function openHelp(){
	abrirAyudaInicio();
}
/******************************* AYUDA ***************************************/
