function TTECPoligonos(A,F,C,G,H,D,L,B,I){this.Id=A;this.Poligonos=new Array();this.Count=0;this.CountIds=0;this.Creando=false;this.Editando=false;this.Eliminando=false;this.Insertando=false;this.visible=true;this.PuntoSeleccionado=null;this.PuntoInsertar1=null;this.PuntoInsertar2=null;this.DesplazarEtiquetas=false;this.UsarVML=(window.navigator.userAgent.toLowerCase().indexOf("msie")!=-1);this.SinEdicion=false;this.ColorBorde="#ff0000";this.ColorRelleno="#CA0000";this.ColorItemSelBorde="#FFEF34";this.ColorItemSelRelleno="#CA0000";this.DivPuntos=F;this.DivDibujo=C;this.DivInfo=G;this.ULPols=null;this.totalArea=null;this.totalLongitud=null;this.LITotalArea=null;this.LITotalLongitud=null;this.onItemChange=this.funcionNull;if(this.DivInfo==undefined){this.DivInfo=null}else{var K=document.createElement("div");K.setAttribute("id","idDivTotales");var E=document.createElement("ul");this.LITotalLongitudTitle=document.createElement("li");this.LITotalLongitudTitle.className="TotalesTitleClass";this.LITotalLongitudTitle.innerHTML="Longitud total";this.LITotalAreaTitle=document.createElement("li");this.LITotalAreaTitle.className="TotalesTitleClass";this.LITotalAreaTitle.innerHTML="&Aacute;rea total";E.appendChild(this.LITotalLongitudTitle);E.appendChild(this.LITotalAreaTitle);var J=document.createElement("ul");this.LITotalLongitud=document.createElement("li");this.LITotalLongitud.innerHTML="0 m";this.LITotalArea=document.createElement("li");this.LITotalArea.innerHTML="0 m<sup>2</sup>";J.appendChild(this.LITotalLongitud);J.appendChild(this.LITotalArea);K.appendChild(E);K.appendChild(J);this.DivInfo.appendChild(K);this.ULPols=document.createElement("ul");this.DivULPols=document.createElement("div");this.DivULPols.className="TTECPolInfo";this.DivULPols.appendChild(this.ULPols);this.DivInfo.appendChild(this.DivULPols)}this.Top=H;this.Left=D;this.Height=L;this.Width=B;this.Datum=I;this.Min=new TTECCoordenada(this.Datum,0,0);this.Max=new TTECCoordenada(this.Datum,0,0);this.screenDPI=getScreenDPI();this.Escala=0;this.ItemSeleccionado=null}TTECPoligonos.prototype.cambiaVisibilidad=function(){if(this.visible){document.getElementById("btnOjo").className="TTECPolToolBarBotonHide";this.DivDibujo.className="divDibujoHidden";this.cambiaVisibilidadSoloPuntos(false);this.cambiaDisponibilidadToolBar("divTTECPolToolBar",false);this.cambiaDisponibilidadToolBar("divTTECPolToolBarEdit",false);this.onItemChange=this.funcionNull;this.visible=false;arbolCapas.refrescarChecks()}else{document.getElementById("btnOjo").className="TTECPolToolBarBotonView";this.DivDibujo.className="divDibujoVisible";this.onItemChange=eventoPoligonosItemChange;this.cambiaVisibilidadSoloPuntos(true);this.cambiaDisponibilidadToolBar("divTTECPolToolBar",true);this.cambiaDisponibilidadToolBar("divTTECPolToolBarEdit",true);this.visible=true;arbolCapas.refrescarChecks()}};TTECPoligonos.prototype.cambiaVisibilidadSoloPuntos=function(A){var C=this.DivPuntos.getElementsByTagName("DIV");for(var B=0;B<C.length;B++){if(C[B].className=="poligono"){C[B].style.visibility=((A)?"visible":"hidden");C[B].style.display=((A)?"block":"none")}}};var estadoAnterior=new Array();TTECPoligonos.prototype.cambiaDisponibilidadToolBar=function(C,A){var D=document.getElementById(C).getElementsByTagName("A");for(var B=0;B<D.length;B++){if(!A){estadoAnterior[D[B].id]=D[B].className}D[B].className=((A)?estadoAnterior[D[B].id]:D[B].id+"D TTECPolToolBarBotonDisabled");D[B].enabled=A}};TTECPoligonos.prototype.ponerAreaTotal=function(){var C=0;for(var B=0;B<this.Poligonos.length;B++){if(!this.Poligonos[B].EsPunto&&!this.Poligonos[B].EsLinea&&!this.Poligonos[B]._calculando){if(!this.Poligonos[B].getValido()&&(!this.Poligonos[B].Modificado||this.Poligonos[B].Editando)){this.LITotalArea.innerHTML="No válida";return }if(!this.Poligonos[B].EsAgujero){C+=this.Poligonos[B].Area(false)}}}var A=" m<sup>2</sup>";if(C>9999){A=" ha";C=metros2AHa(C)}this.LITotalArea.innerHTML=formateaNumero(C)+A};TTECPoligonos.prototype.ponerLongitudTotal=function(){var C=0;for(var B=0;B<this.Poligonos.length;B++){if(this.Poligonos[B].EsLinea){C+=this.Poligonos[B].Distancia(false)}}var A=" m";if(C>4999){A=" km";C=metrosAkm(C)}this.LITotalLongitud.innerHTML=formateaNumero(C)+A};TTECPoligonos.prototype.funcionNull=function(){};TTECPoligonos.prototype.setSize=function(C,A){this.Height=C;this.Width=A;for(var B=0;B<this.Poligonos.length;B++){if(this.Poligonos[B].VML){if(this.UsarVML){this.Poligonos[B].VML.style.height=C+"px";this.Poligonos[B].VML.style.width=A+"px";this.Poligonos[B].VML.coordsize=A+" "+C}else{this.Poligonos[B].VML.height=C;this.Poligonos[B].VML.width=A}}}};TTECPoligonos.prototype.AddPoligono=function(){return this._addElemento(3)};TTECPoligonos.prototype.AddAgujero=function(A){return this._addElemento(4,A)};TTECPoligonos.prototype.AddLinea=function(){return this._addElemento(2)};TTECPoligonos.prototype.AddPunto=function(){this._addElemento(1);return this.Poligonos[this.Count-1]};TTECPoligonos.prototype._addElemento=function(B,A){this.Poligonos[this.Count]=new TTECPoligono(this,B,this.CountIds,A);this.Count++;this.CountIds++;if(!sinDefinir(A)&&B==4){A.Agujeros[A.Agujeros.length]=this.Poligonos[this.Count-1]}return this.Poligonos[this.Count-1]};TTECPoligonos.prototype.GetScreenX=function(A){return(Math.round(this.Width*(A-this.Min.getX())/(this.Max.getX()-this.Min.getX())))};TTECPoligonos.prototype.GetScreenY=function(A){return(this.Top+this.Height-Math.round(this.Height*(A-this.Min.getY())/(this.Max.getY()-this.Min.getY())))};TTECPoligonos.prototype.Render=function(){this.Escala=(this.Max.getX()-this.Min.getX())/inchsToMeters(this.Width/this.screenDPI);var A="";for(var B=0;B<this.Poligonos.length;B++){this.Poligonos[B].Render(true)}if(!this.UsarVML){}};TTECPoligonos.prototype.renderPrint=function(F,C,A,E,B){if(sinDefinir(B)){B="items"}var G="";G+="<"+B+'><colores borde="'+this.ColorBorde+'" relleno="'+this.ColorRelleno+'" transparencia="0.25" rellenoAgujero="#FFFFFF" transparenciaAgujero="0.50" />';for(var D=0;D<this.Poligonos.length;D++){if(!this.Poligonos[D].EsAgujero){G+=this.Poligonos[D].renderPrint(F,C,A,E)}}G+="</"+B+">";return G};TTECPoligonos.prototype.EditarPoligonos=function(A){this.Editando=A;if(this.ItemSeleccionado){this.ItemSeleccionado.Editar(A)}};TTECPoligonos.prototype.InsertarPunto=function(){this.EditarPoligonos(true);this.Insertando=true};TTECPoligonos.prototype.EliminarPunto=function(){this.EditarPoligonos(true);this.Eliminando=true};TTECPoligonos.prototype.MoviendoPoligonos=function(E,C,I,G,D,B){if(this._ejecutandoMouseUp){return }if(this.PuntoSeleccionado==null){return }var A=this.PuntoSeleccionado.Padre;if(!A.Editando){return }if(this.Eliminando||this.Insertando){return }this._moviendo=true;A.Modificado=true;var J=Math.round(I-(D*this.PuntoSeleccionado.xMouseDown));var H=Math.round(G+(B*this.PuntoSeleccionado.yMouseDown));var F=(this.PuntoSeleccionado==A.Puntos[0]&&this.PuntoSeleccionado.Coor.getX()==A._etiqueta.Coor.getX()&&this.PuntoSeleccionado.Coor.getY()==A._etiqueta.Coor.getY());this.PuntoSeleccionado.Coor.setXY(this.Datum,J,H);if(F){A._etiqueta.Coor.setXY(this.Datum,J,H);A._etiqueta.Render(true)}this.PuntoSeleccionado.Render(true);A.ActualizaContenedor(this.PuntoSeleccionado)};TTECPoligonos.prototype.EliminarPoligono=function(E,A){var B=E.EsAgujero;var D;if(E.EsPoligono){while(E.Agujeros.length>0){this.EliminarPoligono(E.Agujeros[E.Agujeros.length-1],true)}}var F=0;if(E.EsAgujero){D=E.PolPadre;F=E.Orden;for(var C=F;C<=E.PolPadre.Agujeros.length-2;C++){E.PolPadre.Agujeros[C]=E.PolPadre.Agujeros[C+1];E.PolPadre.Agujeros[C].Orden=C;E.PolPadre.Agujeros[C].ActualizaTitulo()}E.PolPadre.Modificado=true;E.PolPadre.Agujeros.pop();E.Padre.Creando=true;if(!A){E.PolPadre.Render()}E.Padre.Creando=false}for(var C=0;C<this.Poligonos.length;C++){if(this.Poligonos[C]==E){F=C;break}}E.Dispose();E=null;for(var C=F;C<=this.Poligonos.length-2;C++){this.Poligonos[C]=this.Poligonos[C+1];if(!B&&!this.Poligonos[C].EsAgujero){this.Poligonos[C].Orden=this.Poligonos[C].Orden-1}this.Poligonos[C].ActualizaTitulo()}this.Poligonos.pop();this.Count--;if(B&&!A){D._verificaAgujeros()}this.ponerAreaTotal();this.ponerLongitudTotal();this.ItemSeleccionado=this.Poligonos[this.Count-1]};TTECPoligonos.prototype.EliminarPoligonos=function(){while(this.Poligonos.length>0){this.Poligonos[this.Poligonos.length-1].Dispose();this.Poligonos.pop()}this.Count=0;this.CountIds=0;this.Render()};TTECPoligonos.prototype.GetPoligono=function(B){for(var A=0;A<this.Poligonos.length;A++){if(this.Poligonos[A].IdAuto==B){return this.Poligonos[A]}}return null};TTECPoligonos.prototype.GetPoligonoOrden=function(B){for(var A=0;A<this.Poligonos.length;A++){if(this.Poligonos[A].Orden==B){return this.Poligonos[A]}}return null};TTECPoligonos.prototype.getUltimoOrdenPol=function(){var B=0;for(var A=0;A<this.Poligonos.length;A++){if(!this.Poligonos[A].EsAgujero){B++}}return B};TTECPoligonos.prototype.setItemSeleccionado=function(C,B){if(!this.visible){return }if(this.ItemSeleccionado){this.ItemSeleccionado.LIPol.className="TTECPolInfoOut"}var D=this.ItemSeleccionado;this.ItemSeleccionado=C;if(C){this.ItemSeleccionado.LIPol.className="TTECPolInfoActivo"}if(D&&D.EsPunto){D.Editar(false)}if(D&&!D.EsPunto){if(!this.UsarVML){D.Render()}else{D.VML.fillcolor=(D.EsAgujero?"#FFFFFF":this.ColorRelleno);D.VML.strokecolor=this.ColorBorde}if(!this.SinEdicion){for(var A=0;A<D.Puntos.length;A++){D.Puntos[A].Dispose()}}}if(C&&C.EsPunto){C.Editar(this.Editando)}if(C&&!C.EsPunto){if(!this.UsarVML){C.Render()}else{C.VML.fillcolor=(C.EsAgujero?"#FFFFFF":this.ColorItemSelRelleno);C.VML.strokecolor=this.ColorItemSelBorde}C.Editando=this.Editando;if(!this.SinEdicion&&(this.Editando||this.Creando||this.Eliminando||this.Insertando)){for(var A=0;A<C.Puntos.length;A++){C.Puntos[A].Render()}}}this.onItemChange(this.ItemSeleccionado,B)};TTECPoligonos.prototype.getContenedor=function(){if(this.Poligonos.length==0){return null}var E=new TTECEnvelope(this.Datum);var A=this.Poligonos[0].Min.getX();var F=this.Poligonos[0].Min.getY();var D=this.Poligonos[0].Max.getX();var C=this.Poligonos[0].Max.getY();for(var B=1;B<this.Poligonos.length;B++){if(this.Poligonos[B].Min.getX()<A){A=this.Poligonos[B].Min.getX()}if(this.Poligonos[B].Min.getY()<F){F=this.Poligonos[B].Min.getY()}if(this.Poligonos[B].Max.getX()>D){D=this.Poligonos[B].Max.getX()}if(this.Poligonos[B].Max.getY()>C){C=this.Poligonos[B].Max.getY()}}E.SetCoordenadas(this.Datum,A,F,D,C);return E};TTECPoligonos.prototype.refrescaPorCambioDatum=function(){for(var A=0;A<this.Poligonos.length;A++){var B=this.Poligonos[A];if(B.EsPunto){B.DOMPunto.innerHTML=B.Puntos[0].Coor.getX()+":"+B.Puntos[0].Coor.getY()+(B.Puntos[0].Coor.getZ()!=null?":"+B.Puntos[0].Coor.getZ():"")}else{B.eliminarListaPuntos()}}};function TTECPoligono(F,E,H,D){this.Tipo=E;this.EsPunto=(E==1);this.EsLinea=(E==2);this.EsPoligono=(E==3);this.EsAgujero=(E==4);this.Padre=F;this.IdAuto=H;this.Id=0;this.CountIds=0;this.Agujeros=new Array();this.SegmentosErr=new Array();this.Orden=F.getUltimoOrdenPol();if(this.EsAgujero){this.PolPadre=D;this.Orden=this.PolPadre.Agujeros.length}var G=H;while(G.length<4){G="0"+G}this.Nombre="p"+this.Padre.Id+"pol"+G;this.Etiqueta="";this.Porcentaje=100;this.Puntos=new Array;this.Editando=false;this.Modificado=false;this._area=0;this._perimetro=0;this._calculando=false;this._verificandoAgujeros=false;this._valido=(this.EsPunto);this._agujerosValidos=true;this._agujeroFuera=false;this.EscalaInicial=Math.round((this.Padre.Max.getX()-this.Padre.Min.getX())/inchsToMeters(this.Padre.Width/this.Padre.screenDPI));this.FueraDeZoom=false;this.Datum=F.Datum;this.Min=new TTECCoordenada(this.Datum,Number.MAX_VALUE,Number.MAX_VALUE);this.Max=new TTECCoordenada(this.Datum,Number.MIN_VALUE,Number.MIN_VALUE);this.DivPadre=F.DivPuntos;this.Div=document.createElement("div");this.Div.className="poligono";this.Div.style.top=F.Top+"px";this.Div.style.left=F.Left+"px";this.Div.style.height=F.Height+"px";this.Div.style.width=F.Width+"px";if(!this.EsPunto){var C=document.createElement((this.Padre.UsarVML?"v:shape":"canvas"));C.id=this.Nombre+"V";C.style.position="absolute";C.style.top="0";C.style.left="0";if(this.Padre.UsarVML){C.style.width=F.Width+"px";C.style.height=F.Height+"px";C.strokeweight="1pt";C.path="m0,0 l0,0";C.coordorigin="0 0";C.coordsize=F.Width+" "+F.Height;if(this.EsAgujero){C.strokecolor=this.Padre.ColorBorde;C.fillcolor="#FFFFFF";C.innerHTML="<v:fill opacity=50%>"}else{C.strokecolor=this.Padre.ColorBorde;C.fillcolor=this.Padre.ColorRelleno;if(this.EsLinea){C.filled="false"}else{C.innerHTML="<v:fill opacity=25%>"}}}else{C.width=F.Width;C.height=F.Height}this.Padre.DivDibujo.appendChild(C);this.VML=C}this.DivPadre.appendChild(this.Div);this._etiqueta=new TTECEtiqueta(this);if(F.ULPols!=null){this.LIPol=document.createElement("li");this.LIPol.className="TTECPolInfoOut";this.LIPol.PolId=this.IdAuto;EventMgr.add(this.LIPol,"mouseover",this.polMouseOver,false);EventMgr.add(this.LIPol,"mouseout",this.polMouseOut,false);EventMgr.add(this.LIPol,"click",this.polMouseClick,true);this.DOMTitulo=document.createElement("span");this.DOMTitulo.className="TTECPolInfoTitulo";this.DOMTitulo.PolId=this.IdAuto;EventMgr.add(this.DOMTitulo,"mouseover",this.polMouseOver,false);EventMgr.add(this.DOMTitulo,"mouseout",this.polMouseOut,false);EventMgr.add(this.DOMTitulo,"click",this.polMouseClick,true);this.LIPol.appendChild(this.DOMTitulo);var B=document.createElement("ul");this.LIPol.appendChild(B);this.DOMMedidas=null;this.DOMVerPuntos=null;this.DOMPunto=null;this.OLPuntos=null;if(this.EsPunto){var A=document.createElement("li");this.DOMPunto=document.createElement("span");this.DOMPunto.className="TTECPolInfoPunto";A.appendChild(this.DOMPunto);B.appendChild(A);this.DOMPunto.PolId=this.IdAuto;EventMgr.add(this.DOMPunto,"mouseover",this.polMouseOver,false);EventMgr.add(this.DOMPunto,"mouseout",this.polMouseOut,false);EventMgr.add(this.DOMPunto,"click",this.polMouseClick,true)}else{this.DOMMedidas=document.createElement("span");this.DOMVerPuntos=document.createElement("span");this.DOMVerPuntos.innerHTML="Coordenadas";this.DOMVerPuntos.className="TTECPolInfoVerPuntos";this.DOMVerPuntos.onclick=this.conmutaVisible;this.DOMVerPuntos.PolId=this.IdAuto;var A=document.createElement("li");A.appendChild(this.DOMMedidas);B.appendChild(A);A=document.createElement("li");A.appendChild(this.DOMVerPuntos);B.appendChild(A);if(this.EsPoligono){this.DOMAgujeros=document.createElement("ul");this.DOMAgujeros.className="TTECPolInfoAgujeros";A=document.createElement("li");A.appendChild(this.DOMAgujeros);B.appendChild(A)}this.DOMMedidas.PolId=this.IdAuto;EventMgr.add(this.DOMMedidas,"mouseover",this.polMouseOver,false);EventMgr.add(this.DOMMedidas,"mouseout",this.polMouseOut,false);EventMgr.add(this.DOMMedidas,"click",this.polMouseClick,true)}if(this.EsAgujero){this.PolPadre.DOMAgujeros.appendChild(this.LIPol)}else{F.ULPols.appendChild(this.LIPol)}}this.ActualizaTitulo()}TTECPoligono.prototype.GetPunto=function(B){for(var A=0;A<this.Puntos.length;A++){if(this.Puntos[A].Id==B){return this.Puntos[A]}}return null};TTECPoligono.prototype.Dispose=function(){while(this.Puntos.length>0){this.Puntos[this.Puntos.length-1].Dispose();this.Puntos.pop()}if(!this.EsPunto){this.Padre.DivDibujo.removeChild(this.VML)}this._etiqueta.Dispose();this.Padre.DivPuntos.removeChild(this.Div);if(this.Padre.ULPols!=null){if(this.EsAgujero){this.PolPadre.DOMAgujeros.removeChild(this.LIPol)}else{this.Padre.ULPols.removeChild(this.LIPol)}}this.DivPadre=null;this.Div=null;this.VML=null;this.LIPol=null;this.DOMTitulo=null;this.DOMMedidas=null;this.DOMVerPuntos=null;this.DOMPunto=null};TTECPoligono.prototype.ActualizaMedidas=function(B){if(this.EsPunto||this.Padre.ULPols==null){return }if(this._calculando||this._verificandoAgujeros){this.DOMMedidas.innerHTML="Calculando...";return }if(this.getValido()){this.DOMMedidas.innerHTML=this.Distancia(true)+(this.EsLinea?"":" - "+this.Area(true));this.DOMMedidas.className="";if(this.EsAgujero&&!B){this.PolPadre.ActualizaMedidas()}for(var A=0;A<this.Agujeros.length;A++){this.Agujeros[A].ActualizaMedidas(true)}}else{this.DOMMedidas.innerHTML="No valido";this.DOMMedidas.className="noValido";if(this.PolPadre){this.PolPadre.DOMMedidas.innerHTML="No valido";this.PolPadre.DOMMedidas.className="noValido"}}this.Padre.ponerAreaTotal();this.Padre.ponerLongitudTotal()};TTECPoligono.prototype.ActualizaTitulo=function(){var D="";var C="";C=this.Orden+1;D=C+".- ";var B=(this.Etiqueta.length>23?this.Etiqueta.substr(0,20)+"...":this.Etiqueta);if(this.Padre.ULPols!=null){if(B==""){if(this.EsPunto){B="Punto"}else{if(this.EsLinea){B="Línea"}else{if(this.EsPoligono){B="Polígono"}}}}if(this.EsAgujero){B="Agujero"}var A=D+B+(this.FueraDeZoom?" (fz)":"");if(this.Porcentaje!=100){A=A+" ("+this.Porcentaje+"%)"}this.DOMTitulo.innerHTML=A}if(this.Etiqueta==""){this._etiqueta.setTexto(C+(this.EsAgujero?" "+B:this.Etiqueta)+(this.Porcentaje!=100?" ("+this.Porcentaje+"%)":""))}else{this._etiqueta.setTexto((this.EsAgujero?" "+B:this.Etiqueta)+(this.Porcentaje!=100?" ("+this.Porcentaje+"%)":""))}this._etiqueta.Render(true)};TTECPoligono.prototype.ActualizaContenedor=function(B){if(B){var A=this.Min.getX();var F=this.Min.getY();var E=this.Max.getX();var D=this.Max.getY();if(B.Coor.getX()>E){E=B.Coor.getX()}if(B.Coor.getX()<A){A=B.Coor.getX()}if(B.Coor.getY()>D){D=B.Coor.getY()}if(B.Coor.getY()<F){F=B.Coor.getY()}this.Min.setXY(this.Datum,A,F);this.Max.setXY(this.Datum,E,D)}else{var E=this.Puntos[0].Coor.getX();var A=this.Puntos[0].Coor.getX();var D=this.Puntos[0].Coor.getY();var F=this.Puntos[0].Coor.getY();for(var C=1;C<this.Puntos.length;C++){if(this.Puntos[C].Coor.getX()>E){E=this.Puntos[C].Coor.getX()}if(this.Puntos[C].Coor.getX()<A){A=this.Puntos[C].Coor.getX()}if(this.Puntos[C].Coor.getY()>D){D=this.Puntos[C].Coor.getY()}if(this.Puntos[C].Coor.getY()<F){F=this.Puntos[C].Coor.getY()}}this.Max.setXY(this.Datum,E,D);this.Min.setXY(this.Datum,A,F)}if(this.Padre.OnChange!=null){this.Padre.OnChange(this)}};TTECPoligono.prototype.polMouseOver=function(C){C=(sinDefinir(C)?event:C);var A=_getVisorObj();var B=getTarget(C);if(sinDefinir(B.PolId)){return }var D=A.Poligonos.GetPoligono(B.PolId);if(A.Poligonos.ItemSeleccionado!=D){D.LIPol.className="TTECPolInfoOver"}};TTECPoligono.prototype.polMouseOut=function(C){C=(sinDefinir(C)?event:C);var A=_getVisorObj();var B=getTarget(C);if(sinDefinir(B.PolId)){return }var D=A.Poligonos.GetPoligono(B.PolId);if(A.Poligonos.ItemSeleccionado!=D){D.LIPol.className="TTECPolInfoOut"}};TTECPoligono.prototype.polMouseClick=function(C){C=(sinDefinir(C)?event:C);var A=_getVisorObj();var B=getTarget(C);if(sinDefinir(B.PolId)){return }var D=A.Poligonos.GetPoligono(B.PolId);A.Poligonos.setItemSeleccionado(D,true)};TTECPoligono.prototype.GetPuntoAnterior=function(A){if(this.EsPunto){return A}if(A.Index==0){return(this.EsLinea?null:this.Puntos[this.Puntos.length-1])}else{return this.Puntos[A.Index-1]}};TTECPoligono.prototype.GetPuntoSiguiente=function(A){if(this.EsPunto){return A}if(A.Index==this.Puntos.length-1){return(this.EsLinea?null:this.Puntos[0])}else{return this.Puntos[A.Index+1]}};TTECPoligono.prototype.Editar=function(A){if(this.Editando!=A){this.Editando=A;this.Render()}};TTECPoligono.prototype.AddPunto=function(E,D,C,F){if(F==null){F=true}var B=new Number(Math.round(E));var H=new Number(Math.round(D));var G=this.Puntos.length;this.Puntos[G]=new TTECPunto(this,this.CountIds++,B,H,C,G);if(F){this.Puntos[G].Render()}this.Puntos[G].Mover(this.Editando);if(this.EsPunto){this.DOMPunto.innerHTML=this.Puntos[G].Coor.getX()+":"+this.Puntos[G].Coor.getY()+(this.Puntos[G].Coor.getZ()!=null?":"+this.Puntos[G].Coor.getZ():"")}if(this.OLPuntos){var A=document.createElement("li");A.appendChild(document.createTextNode(this.Puntos[G].Coor.getX()+":"+this.Puntos[G].Coor.getY()+(this.Puntos[G].Z!=null?":"+this.Puntos[G].Z:"")));this.OLPuntos.appendChild(A)}if(!this._etiqueta.Coor){this._etiqueta.Coor=new TTECCoordenada(this.Datum,this.Puntos[G].Coor.getX(),this.Puntos[G].Coor.getY())}if(F){this._realizarCalculos(G)}this.ActualizaContenedor(this.Puntos[G]);if(F){this.ActualizaMedidas();this.Render()}return this.Puntos[G]};TTECPoligono.prototype.InsertarPunto=function(B){if(this.EsPunto){return }this.Modificado=true;if(this.PolPadre){this.PolPadre.Modificado=true}var H=this.Padre.PuntoInsertar1;var F=this.Padre.PuntoInsertar2;var C=H.Index;var E=F.Coor.getX()-Math.round((F.Coor.getX()-H.Coor.getX())/2);var D=F.Coor.getY()-Math.round((F.Coor.getY()-H.Coor.getY())/2);for(var A=this.Puntos.length-1;A>=C;A--){this.Puntos[A+1]=this.Puntos[A];this.Puntos[A+1].Index=A+1}this.Puntos[C]=new TTECPunto(this,this.CountIds++,E,D,null,C);this.Puntos[C].Render();this.Puntos[C].Mover(this.Editando);this.Padre.PuntoInsertar2.Div.className="puntoMover";this.Padre.PuntoInsertar2=this.Puntos[C];this.Padre.PuntoInsertar2.Div.className="puntoInsertar";if(this.OLPuntos){var G=document.createElement("li");G.appendChild(document.createTextNode(this.Puntos[C].Coor.getX()+":"+this.Puntos[C].Coor.getY()+(this.Puntos[C].Coor.getZ()!=null?":"+this.Puntos[C].Coor.getZ():"")));var I=this.OLPuntos.getElementsByTagName("li");this.OLPuntos.insertBefore(G,I[C])}};TTECPoligono.prototype.EliminarPunto=function(A){if(this.EsPunto){return }if(this.EsLinea&&this.Puntos.length<3){return }if((this.EsPoligono||this.EsAgujero)&&this.Puntos.length<4){return }this.Modificado=true;if(this.PolPadre){this.PolPadre.Modificado=true}var D=A.Index;if(this.OLPuntos){var B=this.OLPuntos.getElementsByTagName("li");this.OLPuntos.removeChild(B[D])}this._realizarCalculos(D,true);A.Dispose();A=null;for(var C=D;C<=this.Puntos.length-2;C++){this.Puntos[C]=this.Puntos[C+1];this.Puntos[C].Index=C}this.Puntos.pop();this.ActualizaContenedor();this.ActualizaMedidas();this.Render()};TTECPoligono.prototype.RenderNew=function(B){if(this.Padre.UsarVML&&!this.EsPunto){this.VML.path=""}var A=!(this.Puntos.length==0||this.Max.getX()<this.Padre.Min.getX()||this.Min.getX()>this.Padre.Max.getX()||this.Max.getY()<this.Padre.Min.getY()||this.Min.getY()>this.Padre.Max.getY());var C=!(((this.EscalaInicial/this.Padre.Escala)>0.1)&&((this.EscalaInicial/this.Padre.Escala)<10));if(this.FueraDeZoom!=C){this.FueraDeZoom=C;this.ActualizaTitulo()}if(A){if(this.EsPunto){this._etiqueta.Coor.setXY(this.Puntos[0].Coor.DatumActual,this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY());if(!this.Padre.SinEdicion){this._etiqueta.Render(true);this.Puntos[0].Render()}}else{if(this.Padre.UsarVML){this._renderVML(B)}else{this._renderCanvas(B)}}this.Div.style.visibility="visible"}else{this.Div.style.visibility="hidden";if(!this.EsPunto){this.VML.style.visibility="hidden"}}this._etiqueta.Render(A)};TTECPoligono.prototype._renderVML=function(D){var C=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelRelleno:this.Padre.ColorRelleno);var F=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelBorde:this.Padre.ColorBorde);var B;var A=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());var H=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());this.VML.fillcolor=(this.EsAgujero?"#FFFFFF":C);this.VML.strokecolor=F;var G="m "+A+","+H+" l";for(var E=0;E<this.Puntos.length;E++){A=this.Padre.GetScreenX(this.Puntos[E].Coor.getX());H=this.Padre.GetScreenY(this.Puntos[E].Coor.getY());G+=" "+A+","+H;if(!this.Padre.SinEdicion){if(this.Padre.ItemSeleccionado==this&&(this.Padre.Editando||this.Padre.Creando||this.Padre.Eliminando||this.Padre.Insertando)){this.Puntos[E].Render()}else{this.Puntos[E].Dispose()}}}if(this.EsPoligono||this.EsAgujero){A=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());H=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());G+=" "+A+","+H}this.VML.path=G;this.VML.style.visibility="visible"};TTECPoligono.prototype._renderCanvas=function(G){if(this.EsAgujero){return }var H=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelRelleno:this.Padre.ColorRelleno);var A=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelBorde:this.Padre.ColorBorde);var I;var F=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());var D=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());I=this.VML.getContext("2d");I.clearRect(0,0,this.Padre.Width,this.Padre.Height);I.fillStyle=(this.EsAgujero?colorHexToRgba("#FFFFFF",0.5):colorHexToRgba(H,0.25));I.strokeStyle=A;I.beginPath();I.moveTo(F,D);for(var C=0;C<this.Puntos.length;C++){F=this.Padre.GetScreenX(this.Puntos[C].Coor.getX());D=this.Padre.GetScreenY(this.Puntos[C].Coor.getY());I.lineTo(F,D);if(!this.Padre.SinEdicion){if(this.Padre.ItemSeleccionado==this&&(this.Padre.Editando||this.Padre.Creando||this.Padre.Eliminando||this.Padre.Insertando)){this.Puntos[C].Render()}else{this.Puntos[C].Dispose()}}}if(this.EsPoligono){F=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());D=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());I.lineTo(F,D);for(var B=0;B<this.Agujeros.length;B++){var E=this.Agujeros[B];F=this.Padre.GetScreenX(E.Puntos[0].Coor.getX());D=this.Padre.GetScreenY(E.Puntos[0].Coor.getY());I.moveTo(F,D);for(var C=0;C<E.Puntos.length;C++){F=this.Padre.GetScreenX(E.Puntos[C].Coor.getX());D=this.Padre.GetScreenY(E.Puntos[C].Coor.getY());I.lineTo(F,D);if(!this.Padre.SinEdicion){if(E.Padre.ItemSeleccionado==E&&(E.Padre.Editando||E.Padre.Creando||E.Padre.Eliminando||E.Padre.Insertando)){E.Puntos[C].Render()}else{E.Puntos[C].Dispose()}}}F=this.Padre.GetScreenX(E.Puntos[0].Coor.getX());D=this.Padre.GetScreenY(E.Puntos[0].Coor.getY());I.lineTo(F,D)}I.fill()}I.stroke();this.VML.style.visibility="visible"};TTECPoligono.prototype.Render=function(K){if(this.Padre.UsarVML&&!this.EsPunto){this.VML.path=""}var A="";var J="";var C="";var E="";var H=!(this.Puntos.length==0||this.Max.getX()<this.Padre.Min.getX()||this.Min.getX()>this.Padre.Max.getX()||this.Max.getY()<this.Padre.Min.getY()||this.Min.getY()>this.Padre.Max.getY());var F=!(((this.EscalaInicial/this.Padre.Escala)>0.1)&&((this.EscalaInicial/this.Padre.Escala)<10));if(this.FueraDeZoom!=F){this.FueraDeZoom=F;this.ActualizaTitulo()}if(H){if(this.EsPunto){this._etiqueta.Coor.setXY(this.Puntos[0].Coor.DatumActual,this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY());if(!this.Padre.SinEdicion){this._etiqueta.Render(true);this.Puntos[0].Render()}}else{var M=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelRelleno:this.Padre.ColorRelleno);var B=(this.Padre.ItemSeleccionado==this?this.Padre.ColorItemSelBorde:this.Padre.ColorBorde);var L;var I=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());var G=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());if(!this.Padre.UsarVML){L=this.VML.getContext("2d");L.clearRect(0,0,this.Padre.Width,this.Padre.Height);L.fillStyle=(this.EsAgujero?colorHexToRgba("#FFFFFF",0.5):colorHexToRgba(M,0.25));L.strokeStyle=B;L.beginPath();L.moveTo(I,G)}else{this.VML.fillcolor=(this.EsAgujero?"#FFFFFF":M);this.VML.strokecolor=B;J="m "+I+","+G+" l"}for(var D=0;D<this.Puntos.length;D++){I=this.Padre.GetScreenX(this.Puntos[D].Coor.getX());G=this.Padre.GetScreenY(this.Puntos[D].Coor.getY());if(this.Padre.UsarVML){J+=" "+I+","+G}else{L.lineTo(I,G)}if(!this.Padre.SinEdicion){if(this.Padre.ItemSeleccionado==this&&(this.Padre.Editando||this.Padre.Creando||this.Padre.Eliminando||this.Padre.Insertando)){this.Puntos[D].Render()}else{this.Puntos[D].Dispose()}}}if(this.EsPoligono||this.EsAgujero){I=this.Padre.GetScreenX(this.Puntos[0].Coor.getX());G=this.Padre.GetScreenY(this.Puntos[0].Coor.getY());if(this.Padre.UsarVML){J+=" "+I+","+G}else{L.lineTo(I,G)}}if(!this.Padre.UsarVML){if(this.EsPoligono||this.EsAgujero){L.fill()}L.stroke()}else{this.VML.path=J}this.VML.style.visibility="visible"}this.Div.style.visibility="visible"}else{this.Div.style.visibility="hidden";if(!this.EsPunto){this.VML.style.visibility="hidden"}}this._etiqueta.Render(H)};TTECPoligono.prototype.renderPrint=function(G,C,A,F){var B=!(this.Puntos.length==0||this.Max.getX()<G.getX()||this.Min.getX()>C.getX()||this.Max.getY()<G.getY()||this.Min.getY()>C.getY());if(!B){return""}var H="";H+='<item id="'+this.Id+'" ';H+='tipo="'+this.Tipo+'" ';H+='perimetro="'+this.Distancia(false)+'" ';H+='area="'+this.Area(false)+'" ';H+='texto="'+Encoder.XMLEncode(Encoder.htmlDecode(this._etiqueta._texto))+'" ';H+='x="'+this._etiqueta.Coor.getX()+'" ';H+='y="'+this._etiqueta.Coor.getY()+'" ';H+='posicion="'+this._etiqueta.getPosicion()+'" ';H+=">";H+="<coordenadas>";for(var D=0;D<this.Puntos.length;D++){H+=this.Puntos[D].Coor.getX()+","+this.Puntos[D].Coor.getY()+" "}H+="</coordenadas>";if(!sinDefinir(this.Agujeros)&&this.Agujeros.length>0){H+="<agujeros>";for(var E=0;E<this.Agujeros.length;E++){H+=this.Agujeros[E].renderPrint(G,C,A,F)}H+="</agujeros>"}H+="</item>";return H};TTECPoligono.prototype.eliminarListaPuntos=function(){if(!this.OLPuntos){return }this.OLPuntos.style.display="none";this.DOMVerPuntos.style.backgroundPosition="0 -2px";this.DOMVerPuntos.parentNode.removeChild(this.OLPuntos);this.OLPuntos=null};TTECPoligono.prototype.conmutaVisible=function(){var B=_getVisorObj();var A=B.Poligonos.GetPoligono(this.PolId);if(!A.OLPuntos){A.generarListaPuntos()}if(A.OLPuntos.style.display=="none"){A.OLPuntos.style.display="block";A.DOMVerPuntos.style.backgroundPosition="0 -24px"}else{A.OLPuntos.style.display="none";A.DOMVerPuntos.style.backgroundPosition="0 -2px"}};TTECPoligono.prototype.generarListaPuntos=function(){var A;var C;this.OLPuntos=document.createElement("ol");this.OLPuntos.className="TTECPolInfoPuntos";this.OLPuntos.style.display="none";this.DOMVerPuntos.parentNode.appendChild(this.OLPuntos);for(var B=0;B<this.Puntos.length;B++){C=this.Puntos[B].Coor.getX()+":"+this.Puntos[B].Coor.getY();if(this.Puntos[B].Coor.getZ()!=null){C+=":"+this.Puntos[B].Coor.getZ()}A=document.createElement("li");A.appendChild(document.createTextNode(this.Puntos[B].Coor.getX()+":"+this.Puntos[B].Coor.getY()+(this.Puntos[B].Z!=null?":"+this.Puntos[B].Z:"")));this.OLPuntos.appendChild(A)}};TTECPoligono.prototype.VerificaPoligono=function(D){if((this.EsLinea&&this.Puntos.length<2)||((this.EsPoligono||this.EsAgujero)&&this.Puntos.length<3)){return false}if(this.EsPunto||this.EsLinea||this.Puntos.length<4){return true}if(D){var E=this.Puntos[D];var A=this.Puntos[(D==0?this.Puntos.length-1:D-1)];var F=this.Puntos[(D==this.Puntos.length-1?0:D+1)];for(var C=0;C<this.Puntos.length-1;C++){if(this.Puntos[C]==A||this.Puntos[C]==E){continue}if(this.Puntos[C+1]!=A){if(this.hayInterseccion(this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),this.Puntos[C+1].Coor.getX(),this.Puntos[C+1].Coor.getY(),A.Coor.getX(),A.Coor.getY(),E.Coor.getX(),E.Coor.getY())){return false}}if(this.Puntos[C]!=F){if(this.hayInterseccion(this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),this.Puntos[C+1].Coor.getX(),this.Puntos[C+1].Coor.getY(),E.Coor.getX(),E.Coor.getY(),F.Coor.getX(),F.Coor.getY())){return false}}}if(this.Puntos[this.Puntos.length-1]!=A&&this.Puntos[this.Puntos.length-1]!=E){if(this.Puntos[0]!=A){if(this.hayInterseccion(this.Puntos[this.Puntos.length-1].Coor.getX(),this.Puntos[this.Puntos.length-1].Coor.getY(),this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY(),A.Coor.getX(),A.Coor.getY(),E.Coor.getX(),E.Coor.getY())){return false}}if(this.Puntos[this.Puntos.length-1]!=F){if(this.hayInterseccion(this.Puntos[this.Puntos.length-1].Coor.getX(),this.Puntos[this.Puntos.length-1].Coor.getY(),this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY(),E.Coor.getX(),E.Coor.getY(),F.Coor.getX(),F.Coor.getY())){return false}}}}else{for(var C=0;C<this.Puntos.length-1;C++){for(var B=C+2;B<this.Puntos.length-1;B++){if(this.hayInterseccion(this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),this.Puntos[C+1].Coor.getX(),this.Puntos[C+1].Coor.getY(),this.Puntos[B].Coor.getX(),this.Puntos[B].Coor.getY(),this.Puntos[B+1].Coor.getX(),this.Puntos[B+1].Coor.getY())){return false}}if(C!=0&&C<this.Puntos.length-2){if(this.hayInterseccion(this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),this.Puntos[C+1].Coor.getX(),this.Puntos[C+1].Coor.getY(),this.Puntos[this.Puntos.length-1].Coor.getX(),this.Puntos[this.Puntos.length-1].Coor.getY(),this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY())){return false}}}}return true};TTECPoligono.prototype.VerificaAgujeros=function(){if(this.Agujeros.length==0){return true}for(var F=0;F<this.Agujeros.length;F++){if(!this.Agujeros[F].Valido){this.Valido=false;return false}}for(var F=0;F<this.Agujeros.length;F++){var L=this.Agujeros[F];if(this.Min.getX()>L.Max.getX()||L.Min.getX()>this.Max.getX()||L.Min.getY()>this.Max.getY()||this.Min.getY()>L.Max.getY()){this.Valido=false;return false}}var D=0;var C=0;var Q=0;var N=0;for(var F=0;F<this.Puntos.length;F++){if(F==this.Puntos.length-1){D=this.Puntos.length-1;C=0}else{D=F;C=F+1}for(var G=0;G<this.Agujeros.length;G++){var O=this.Agujeros[G];for(var B=0;B<O.Puntos.length;B++){if(B==O.Puntos.length-1){Q=O.Puntos.length-1;N=0}else{Q=B;N=B+1}if(this.hayInterseccion(this.Puntos[D].Coor.getX(),this.Puntos[D].Coor.getY(),this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),O.Puntos[Q].Coor.getX(),O.Puntos[Q].Coor.getY(),O.Puntos[N].Coor.getX(),O.Puntos[N].Coor.getY())){this.Valido=false;return false}}}}for(var F=0;F<this.Agujeros.length;F++){var P=this.Agujeros[F].Puntos[0].Coor.getX();var M=this.Agujeros[F].Puntos[0].Coor.getY();var I=this.Max.getX()+10;var H=M;var A=0;for(var E=0;E<this.Puntos.length-1;E++){if(this.hayInterseccion(P,M,I,H,this.Puntos[E].Coor.getX(),this.Puntos[E].Coor.getY(),this.Puntos[E+1].Coor.getX(),this.Puntos[E+1].Coor.getY())){A++}}if(A%2==0){this.Valido=false;return false}}if(this.Agujeros.length==1){this.Valido=true;return true}for(var E=0;E<this.Agujeros.length;E++){var K=this.Agujeros[E];for(var F=0;F<K.Puntos.length;F++){if(F==K.Puntos.length-1){D=K.Puntos.length-1;C=0}else{D=F;C=F+1}for(var G=E+1;G<this.Agujeros.length;G++){var J=this.Agujeros[G];for(var B=0;B<J.Puntos.length;B++){if(B==J.Puntos.length-1){Q=J.Puntos.length-1;N=0}else{Q=B;N=B+1}if(this.hayInterseccion(K.Puntos[D].Coor.getX(),K.Puntos[D].Coor.getY(),K.Puntos[C].Coor.getX(),K.Puntos[C].Coor.getY(),J.Puntos[Q].Coor.getX(),J.Puntos[Q].Coor.getY(),J.Puntos[N].Coor.getX(),J.Puntos[N].Coor.getY())){this.Valido=false;return false}}}}}this.Valido=true;return true};TTECPoligono.prototype.hayInterseccion=function(W,G,U,F,S,E,R,D){var N=Math.min(W,U);var V=Math.min(G,F);var M=Math.max(W,U);var T=Math.max(G,F);var P=Math.min(S,R);var Z=Math.min(E,D);var O=Math.max(S,R);var Y=Math.max(E,D);var H=!(N>O||P>M||Z>T||V>Y);if(!H){return false}if(W>U){var a=W;var L=G;W=U;G=F;U=a;F=L}if(S>R){var X=S;var I=E;S=R;E=D;R=X;D=I}var B=(F-G)/(U-W);var K=G-(B*W);var A=(D-E)/(R-S);var J=E-(A*S);if(W==U){var C=(A*W)+J;return(W>=P&&W<=O&&C>=V&&C<=T)}if(S==R){var C=(B*S)+K;return(S>=N&&R<=M&&C>=Z&&C<=Y)}var Q=(J-K)/(B-A);return((Q>=N&&Q<=M)&&(Q>=P&&Q<=O))};TTECPoligono.prototype._realizarCalculos=function(I,B){if(this.Puntos.length<2||this.EsPunto){return }if(B){this._realizarCalculosEliminar(I);return }if(sinDefinir(I)){if(this.TimerId){window.clearTimeout(this.TimerId)}this.TimerId=null;this._calculosItemTratados=0;this._calculando=true;var F=this;if(document.all){this.TimerId=window.setTimeout(function(){F._realizarCalculosDelay(F)},10)}else{this.TimerId=window.setTimeout(this._realizarCalculosDelay,10,this)}return }var M=0;var L=0;if(this.Puntos.length==2){if(this.SegmentosErr.length!=0){this.SegmentosErr=new Array()}this._valido=true;M=Math.abs(this.Puntos[0].Coor.getX()-this.Puntos[1].Coor.getX());L=Math.abs(this.Puntos[0].Coor.getY()-this.Puntos[1].Coor.getY());this.Puntos[0]._longitud=Math.sqrt(Math.pow(M,2)+Math.pow(L,2));this.Puntos[0]._area=this.areaTriangulo(this.Puntos[0].Coor.getX(),this.Puntos[0].Coor.getY(),this.Puntos[1].Coor.getX(),this.Puntos[1].Coor.getY());this.Puntos[1]._longitud=0;this.Puntos[1]._area=0;this._perimetro=this.Puntos[0]._longitud;this._area=this.Puntos[0]._area;return }var G=null;var N=null;var K=null;if(this.EsLinea){if(I==0){N=this.Puntos[0];K=this.Puntos[1];this._perimetro-=N._longitud;N._longitud=Math.sqrt(Math.pow(Math.abs(N.Coor.getX()-K.Coor.getX()),2)+Math.pow(Math.abs(N.Coor.getY()-K.Coor.getY()),2));this._perimetro+=N._longitud;this._valido=true;return }if(I==this.Puntos.length-1){G=this.Puntos[I-1];N=this.Puntos[I];this._perimetro-=G._longitud;G._longitud=Math.sqrt(Math.pow(Math.abs(G.Coor.getX()-N.Coor.getX()),2)+Math.pow(Math.abs(G.Coor.getY()-N.Coor.getY()),2));this._perimetro+=G._longitud;this._valido=true;return }}G=this.Puntos[(I==0?this.Puntos.length-1:I-1)];N=this.Puntos[I];K=this.Puntos[(I==this.Puntos.length-1?0:I+1)];this._perimetro-=(G._longitud+N._longitud);G._longitud=Math.sqrt(Math.pow(Math.abs(G.Coor.getX()-N.Coor.getX()),2)+Math.pow(Math.abs(G.Coor.getY()-N.Coor.getY()),2));N._longitud=Math.sqrt(Math.pow(Math.abs(N.Coor.getX()-K.Coor.getX()),2)+Math.pow(Math.abs(N.Coor.getY()-K.Coor.getY()),2));this._perimetro+=(G._longitud+N._longitud);if(this.EsLinea){this._valido=true;return }this._area-=(G._area+N._area);G._area=this.areaTriangulo(G.Coor.getX(),G.Coor.getY(),N.Coor.getX(),N.Coor.getY());N._area=this.areaTriangulo(N.Coor.getX(),N.Coor.getY(),K.Coor.getX(),K.Coor.getY());this._area+=(G._area+N._area);var J=new Array();var H=0;var C=0;var A=0;for(var E=0;E<this.Puntos.length;E++){if(this.Puntos[E]==G||this.Puntos[E]==N){continue}H=(E==this.Puntos.length-1?0:E+1);if(this.Puntos[H]!=G){if(this.hayInterseccion(this.Puntos[E].Coor.getX(),this.Puntos[E].Coor.getY(),this.Puntos[H].Coor.getX(),this.Puntos[H].Coor.getY(),G.Coor.getX(),G.Coor.getY(),N.Coor.getX(),N.Coor.getY())){J.AddSortSiNoExiste(E);J.AddSortSiNoExiste(G.Index)}}if(this.Puntos[E]!=K){if(this.hayInterseccion(this.Puntos[E].Coor.getX(),this.Puntos[E].Coor.getY(),this.Puntos[H].Coor.getX(),this.Puntos[H].Coor.getY(),N.Coor.getX(),N.Coor.getY(),K.Coor.getX(),K.Coor.getY())){J.AddSortSiNoExiste(E);J.AddSortSiNoExiste(N.Index)}}for(var D=0;D<this.SegmentosErr.length;D++){if(this.SegmentosErr[D]==E-1||this.SegmentosErr[D]==E||this.SegmentosErr[D]==E+1||this.SegmentosErr[D]==G.Index||this.SegmentosErr[D]==N.Index){continue}C=this.SegmentosErr[D];A=(C==this.Puntos.length-1?0:C+1);if(this.hayInterseccion(this.Puntos[E].Coor.getX(),this.Puntos[E].Coor.getY(),this.Puntos[H].Coor.getX(),this.Puntos[H].Coor.getY(),this.Puntos[C].Coor.getX(),this.Puntos[C].Coor.getY(),this.Puntos[A].Coor.getX(),this.Puntos[A].Coor.getY())){J.AddSortSiNoExiste(E);J.AddSortSiNoExiste(C)}}}this.SegmentosErr=J;if(this.Agujeros.length!=0){this._verificaAgujeros()}if(this.EsAgujero){this.PolPadre._verificaAgujeros()}};TTECPoligono.prototype._verificaAgujeros=function(){if(this.TimerAgId){window.clearTimeout(this.TimerAgId)}this.TimerAgId=null;if(this.Agujeros.length==0){this._verificandoAgujeros=false;this._agujerosValidos=true;this.ActualizaMedidas();return }if(this.SegmentosErr.length!=0){this._verificandoAgujeros=false;this._agujerosValidos=false;this.ActualizaMedidas();return }this._verificandoAgujeros=true;this._agujerosValidos=false;for(var C=0;C<this.Agujeros.length;C++){this.Agujeros[C]._agujeroFuera=false}for(var C=0;C<this.Agujeros.length;C++){var A=this.Agujeros[C];if(!A.getValido()||A.Min.getX()<this.Min.getX()||A.Max.getX()>this.Max.getX()||A.Min.getY()<this.Min.getY()||A.Max.getY()>this.Max.getY()){this._verificandoAgujeros=false;A.agujeroFuera();this.ActualizaMedidas();return }}this._verificaAgTratados1=0;this._verificaAgTratados2=0;this._verificaAgTratados3=0;this._verificaAgTratados4=0;var B=this;if(document.all){this.TimerAgId=window.setTimeout(function(){B._verificaAgujerosDelay1(B)},100)}else{this.TimerAgId=window.setTimeout(this._verificaAgujerosDelay1,100,this)}return };TTECPoligono.prototype._verificaAgujerosDelay1=function(A){var E=0;var D=0;var M=0;var K=0;var L=null;var G=false;var C=0;var J=0;var B=0;var I=0;var H=0;for(A._verificaAgTratados1;A._verificaAgTratados1<A.Puntos.length;A._verificaAgTratados1++){E=A._verificaAgTratados1;D=(A._verificaAgTratados1==A.Puntos.length-1?0:A._verificaAgTratados1+1);C=Math.min(A.Puntos[E].Coor.getX(),A.Puntos[D].Coor.getX());J=Math.min(A.Puntos[E].Coor.getY(),A.Puntos[D].Coor.getY());B=Math.max(A.Puntos[E].Coor.getX(),A.Puntos[D].Coor.getX());I=Math.max(A.Puntos[E].Coor.getY(),A.Puntos[D].Coor.getY());for(A._verificaAgTratados2;A._verificaAgTratados2<A.Agujeros.length;A._verificaAgTratados2++){L=A.Agujeros[A._verificaAgTratados2];G=!(C>L.Max.getX()||L.Min.getX()>B||L.Min.getY()>I||J>L.Max.getY());if(!G){continue}for(A._verificaAgTratados3;A._verificaAgTratados3<L.Puntos.length;A._verificaAgTratados3++){M=A._verificaAgTratados3;K=(A._verificaAgTratados3==L.Puntos.length-1?0:A._verificaAgTratados3+1);if(A.hayInterseccion(A.Puntos[E].Coor.getX(),A.Puntos[E].Coor.getY(),A.Puntos[D].Coor.getX(),A.Puntos[D].Coor.getY(),L.Puntos[M].Coor.getX(),L.Puntos[M].Coor.getY(),L.Puntos[K].Coor.getX(),L.Puntos[K].Coor.getY())){A._verificandoAgujeros=false;L.agujeroFuera();A.ActualizaMedidas();return }if(H>200){A._verificaAgTratados3++;window.clearTimeout(A.TimerAgId);var F=A;if(document.all){A.TimerAgId=window.setTimeout(function(){F._verificaAgujerosDelay1(F)},10)}else{A.TimerAgId=window.setTimeout(A._verificaAgujerosDelay1,10,A)}return }H++}A._verificaAgTratados3=0}A._verificaAgTratados2=0}A._verificaAgTratados1=0;A._verificaAgTratados2=0;A._verificaAgTratados3=0;A._verificaAgTratados4=0;window.clearTimeout(A.TimerAgId);var F=A;if(document.all){A.TimerAgId=window.setTimeout(function(){F._verificaAgujerosDelay2(F)},100)}else{A.TimerAgId=window.setTimeout(A._verificaAgujerosDelay2,100,A)}};TTECPoligono.prototype._verificaAgujerosDelay2=function(A){var H=0;var D=0;var C=0;for(A._verificaAgTratados1;A._verificaAgTratados1<A.Agujeros.length;A._verificaAgTratados1++){D=A._verificaAgTratados1;var J=A.Agujeros[D].Puntos[0].Coor.getX();var I=A.Agujeros[D].Puntos[0].Coor.getY();var G=A.Max.getX()+10;var F=I;var B=0;for(A._verificaAgTratados2;A._verificaAgTratados2<A.Puntos.length-1;A._verificaAgTratados2++){C=A._verificaAgTratados2;if(A.hayInterseccion(J,I,G,F,A.Puntos[C].Coor.getX(),A.Puntos[C].Coor.getY(),A.Puntos[C+1].Coor.getX(),A.Puntos[C+1].Coor.getY())){A._verificaAgTratados3++}if(H>200){A._verificaAgTratados2++;window.clearTimeout(A.TimerAgId);var E=A;if(document.all){A.TimerAgId=window.setTimeout(function(){E._verificaAgujerosDelay2(E)},10)}else{A.TimerAgId=window.setTimeout(A._verificaAgujerosDelay2,10,A)}return }H++}if(A._verificaAgTratados3%2==0){A._verificandoAgujeros=false;A.Agujeros[D].agujeroFuera();A.ActualizaMedidas();return }A._verificaAgTratados2=0;A._verificaAgTratados3=0}A._verificaAgTratados1=0;A._verificaAgTratados2=0;A._verificaAgTratados3=0;A._verificaAgTratados4=0;window.clearTimeout(A.TimerAgId);var E=A;if(document.all){A.TimerAgId=window.setTimeout(function(){E._verificaAgujerosDelay3(E)},100)}else{A.TimerAgId=window.setTimeout(A._verificaAgujerosDelay3,100,A)}};TTECPoligono.prototype._verificaAgujerosDelay3=function(E){if(E.Agujeros.length==1){E._agujerosValidos=true;E._verificandoAgujeros=false;E.ActualizaMedidas();return }var F=0;for(E._verificaAgTratados1;E._verificaAgTratados1<E.Agujeros.length;E._verificaAgTratados1++){var B=E.Agujeros[E._verificaAgTratados1];if(E._verificaAgTratados2==0){E._verificaAgTratados2=E._verificaAgTratados1+1}for(E._verificaAgTratados2;E._verificaAgTratados2<E.Agujeros.length;E._verificaAgTratados2++){var A=E.Agujeros[E._verificaAgTratados2];var D=!(B.Min.getX()>A.Max.getX()||A.Min.getX()>B.Max.getX()||A.Min.getY()>B.Max.getY()||B.Min.getY()>A.Max.getY());if(!D){continue}for(E._verificaAgTratados3;E._verificaAgTratados3<B.Puntos.length;E._verificaAgTratados3++){i1=E._verificaAgTratados3;i2=(E._verificaAgTratados3==B.Puntos.length-1?0:E._verificaAgTratados3+1);for(E._verificaAgTratados4;E._verificaAgTratados4<A.Puntos.length;E._verificaAgTratados4++){p1=E._verificaAgTratados4;p2=(E._verificaAgTratados4==A.Puntos.length-1?0:E._verificaAgTratados4+1);if(E.hayInterseccion(B.Puntos[i1].Coor.getX(),B.Puntos[i1].Coor.getY(),B.Puntos[i2].Coor.getX(),B.Puntos[i2].Coor.getY(),A.Puntos[p1].Coor.getX(),A.Puntos[p1].Coor.getY(),A.Puntos[p2].Coor.getX(),A.Puntos[p2].Coor.getY())){E._verificandoAgujeros=false;B.agujeroFuera();A.agujeroFuera();E.ActualizaMedidas();return }if(F>200){E._verificaAgTratados4++;window.clearTimeout(E.TimerAgId);var C=E;if(document.all){E.TimerAgId=window.setTimeout(function(){C._verificaAgujerosDelay3(C)},10)}else{E.TimerAgId=window.setTimeout(E._verificaAgujerosDelay3,10,E)}return }F++}E._verificaAgTratados4=0}E._verificaAgTratados3=0}E._verificaAgTratados2=0}E._agujerosValidos=true;E._verificandoAgujeros=false;E.ActualizaMedidas();return };TTECPoligono.prototype._realizarCalculosEliminar=function(H){var M=0;var L=0;if(this.Puntos.length==2){if(this.SegmentosErr.length!=0){this.SegmentosErr=new Array()}this._valido=true;this.Puntos[0]._longitud=0;this.Puntos[0]._area=0;this.Puntos[1]._longitud=0;this.Puntos[1]._area=0;this._perimetro=0;this._area=0;return }var F=this.Puntos[(H==0?this.Puntos.length-1:H-1)];var O=this.Puntos[H];var J=this.Puntos[(H==this.Puntos.length-1?0:H+1)];var I=this.Puntos[(F.Index==0?this.Puntos.length-1:F.Index-1)];this._perimetro-=(F._longitud+O._longitud);F._longitud=Math.sqrt(Math.pow(Math.abs(F.Coor.getX()-J.Coor.getX()),2)+Math.pow(Math.abs(F.Coor.getY()-J.Coor.getY()),2));this._perimetro+=(F._longitud);if(this.EsLinea){this._valido=true;return }this._area-=(F._area+O._area);F._area=this.areaTriangulo(F.Coor.getX(),F.Coor.getY(),J.Coor.getX(),J.Coor.getY());this._area+=(F._area);var K=new Array();var G=0;var E=0;var B=0;var A=0;var N=0;for(var D=0;D<this.Puntos.length;D++){G=(D==this.Puntos.length-1?0:D+1);if(this.Puntos[D]==I||this.Puntos[D]==F||this.Puntos[D]==O||this.Puntos[D]==J){continue}if(this.hayInterseccion(this.Puntos[D].Coor.getX(),this.Puntos[D].Coor.getY(),this.Puntos[G].Coor.getX(),this.Puntos[G].Coor.getY(),F.Coor.getX(),F.Coor.getY(),J.Coor.getX(),J.Coor.getY())){K.AddSortSiNoExiste((D>H?D-1:D));K.AddSortSiNoExiste(F.Index)}for(var C=0;C<this.SegmentosErr.length;C++){if(this.SegmentosErr[C]==D-1||this.SegmentosErr[C]==D||this.SegmentosErr[C]==D+1||this.SegmentosErr[C]==F.Index||this.SegmentosErr[C]==O.Index||this.SegmentosErr[C]==I.Index||this.SegmentosErr[C]==J.Index){continue}B=this.SegmentosErr[C];A=(B==this.Puntos.length-1?0:B+1);if(this.hayInterseccion(this.Puntos[D].Coor.getX(),this.Puntos[D].Coor.getY(),this.Puntos[G].Coor.getX(),this.Puntos[G].Coor.getY(),this.Puntos[B].Coor.getX(),this.Puntos[B].Coor.getY(),this.Puntos[A].Coor.getX(),this.Puntos[A].Coor.getY())){K.AddSortSiNoExiste((D>H?D-1:D));K.AddSortSiNoExiste((B>H?B-1:B))}}}this.SegmentosErr=K};TTECPoligono.prototype._realizarCalculosDelay=function(D){if(D._calculosItemTratados==0){D._area=0;D._perimetro=0;if(D.SegmentosErr.length!=0){D.SegmentosErr=new Array()}}var G=0;var C=0;var F=0;var E=0;if(this.EsLinea){for(D._calculosItemTratados;D._calculosItemTratados<D.Puntos.length-1;D._calculosItemTratados++){C=D._calculosItemTratados;F=Math.abs(D.Puntos[C].Coor.getX()-D.Puntos[C+1].Coor.getX());E=Math.abs(D.Puntos[C].Coor.getY()-D.Puntos[C+1].Coor.getY());D.Puntos[C]._longitud=Math.sqrt(Math.pow(F,2)+Math.pow(E,2));D._perimetro+=D.Puntos[C]._longitud}}else{if(D.Puntos.length<4){for(D._calculosItemTratados;D._calculosItemTratados<D.Puntos.length-1;D._calculosItemTratados++){C=D._calculosItemTratados;F=Math.abs(D.Puntos[C].Coor.getX()-D.Puntos[C+1].Coor.getX());E=Math.abs(D.Puntos[C].Coor.getY()-D.Puntos[C+1].Coor.getY());D.Puntos[C]._longitud=Math.sqrt(Math.pow(F,2)+Math.pow(E,2));D._perimetro+=D.Puntos[C]._longitud;D.Puntos[C]._area=D.areaTriangulo(D.Puntos[C].Coor.getX(),D.Puntos[C].Coor.getY(),D.Puntos[C+1].Coor.getX(),D.Puntos[C+1].Coor.getY());D._area+=D.Puntos[C]._area}}else{for(D._calculosItemTratados;D._calculosItemTratados<D.Puntos.length-1;D._calculosItemTratados++){C=D._calculosItemTratados;for(var A=C+2;A<D.Puntos.length-1;A++){if(D.hayInterseccion(D.Puntos[C].Coor.getX(),D.Puntos[C].Coor.getY(),D.Puntos[C+1].Coor.getX(),D.Puntos[C+1].Coor.getY(),D.Puntos[A].Coor.getX(),D.Puntos[A].Coor.getY(),D.Puntos[A+1].Coor.getX(),D.Puntos[A+1].Coor.getY())){D.SegmentosErr.AddSortSiNoExiste(C);D.SegmentosErr.AddSortSiNoExiste(A)}}if(C!=0&&C<D.Puntos.length-2){if(D.hayInterseccion(D.Puntos[C].Coor.getX(),D.Puntos[C].Coor.getY(),D.Puntos[C+1].Coor.getX(),D.Puntos[C+1].Coor.getY(),D.Puntos[D.Puntos.length-1].Coor.getX(),D.Puntos[D.Puntos.length-1].Coor.getY(),D.Puntos[0].Coor.getX(),D.Puntos[0].Coor.getY())){D.SegmentosErr.AddSortSiNoExiste(C);D.SegmentosErr.AddSortSiNoExiste(D.Puntos.length-1)}}F=Math.abs(D.Puntos[C].Coor.getX()-D.Puntos[C+1].Coor.getX());E=Math.abs(D.Puntos[C].Coor.getY()-D.Puntos[C+1].Coor.getY());D.Puntos[C]._longitud=Math.sqrt(Math.pow(F,2)+Math.pow(E,2));D._perimetro+=D.Puntos[C]._longitud;D.Puntos[C]._area=D.areaTriangulo(D.Puntos[C].Coor.getX(),D.Puntos[C].Coor.getY(),D.Puntos[C+1].Coor.getX(),D.Puntos[C+1].Coor.getY());D._area+=D.Puntos[C]._area;if(G>100){D._calculosItemTratados++;window.clearTimeout(D.TimerId);var B=D;if(document.all){D.TimerId=window.setTimeout(function(){B._realizarCalculosDelay(B)},10)}else{this.TimerId=window.setTimeout(D._realizarCalculosDelay,10,D)}return }G++}}if(D.Puntos.length==0){return }F=Math.abs(D.Puntos[D.Puntos.length-1].Coor.getX()-D.Puntos[0].Coor.getX());E=Math.abs(D.Puntos[D.Puntos.length-1].Coor.getY()-D.Puntos[0].Coor.getY());D.Puntos[D.Puntos.length-1]._longitud=Math.sqrt(Math.pow(F,2)+Math.pow(E,2));D._perimetro+=D.Puntos[D.Puntos.length-1]._longitud;D.Puntos[D.Puntos.length-1]._area=D.areaTriangulo(D.Puntos[D.Puntos.length-1].Coor.getX(),D.Puntos[D.Puntos.length-1].Coor.getY(),D.Puntos[0].Coor.getX(),D.Puntos[0].Coor.getY());D._area+=D.Puntos[D.Puntos.length-1]._area}D._calculando=false;D.ActualizaMedidas()};TTECPoligono.prototype.getValido=function(){if(this.EsPunto||this.EsLinea){this._valido=true}else{this._valido=(this.SegmentosErr.length==0&&this._agujerosValidos);if(this.EsAgujero&&this._agujeroFuera){this._valido=false}if(!this._valido){return this._valido}for(var A=0;A<this.Agujeros.length;A++){if(this.Agujeros[A]._agujeroFuera){this._valido=false;return this._valido}}}return this._valido};TTECPoligono.prototype.Distancia=function(B){if(this.Puntos.length<2){return""}var C=Math.round(this._perimetro);if(!B){return C}var A=" m";if(C>4999){A=" km";C=metrosAkm(C)}return(this.EsLinea?"Longitud: ":"Perímetro: ")+formateaNumero(C)+A};TTECPoligono.prototype.Area=function(B){if(this.Puntos.length<3){return(!B)?0:""}var D=Math.abs(Math.round(this._area));for(var C=0;C<this.Agujeros.length;C++){D-=Math.abs(this.Agujeros[C].Area())}if(!B){return D}var A=" m<sup>2</sup>";if(D>9999){A=" ha";D=metros2AHa(D)}return"Área: "+formateaNumero(D)+A};TTECPoligono.prototype.areaTriangulo=function(D,B,C,A){return(((C-D)*(A+B))/2)};TTECPoligono.prototype.metrosAkm=function(A){if(A>100000){return Math.round(A/1000)}else{return Math.round(A/100)/10}};function metrosAkm(A){return A/1000}TTECPoligono.prototype.metros2Akm2=function(A){if(A>100000000){return Math.round(A/1000000)}else{return Math.round(A/100000)/10}};function metros2AHa(A){return new Number(A/10000).toFixed(2)}TTECPoligono.prototype.GetEscalaEdicion=function(){var A=0;for(var B=0;B<this.Puntos.length;B++){if(this.Puntos[B].Escala>A){A=this.Puntos[B].Escala}}return A};TTECPoligono.prototype.agujeroFuera=function(){this._agujeroFuera=true;this.ActualizaMedidas()};function TTECPunto(C,F,A,E,D,B){this.Id=F;if(isNaN(D)){D=null}if(D==""||D==undefined||(D.length>0&&D.charCodeAt(0)==13)){D=null}this.Coor=new TTECCoordenada(C.Datum,A,E,D);this.Index=B;this.Padre=C;this.Escala=Math.round((this.Padre.Padre.Max.getX()-this.Padre.Padre.Min.getX())/inchsToMeters(this.Padre.Padre.Width/this.Padre.Padre.screenDPI));this.Top="0px";this.Left="0px";this.Div=null;this.xMouseDown=0;this.yMouseDown=0;this._area=0;this._longitud=0}TTECPunto.prototype.Render=function(){var A=this.Padre.Padre;this.Left=(A.GetScreenX(this.Coor.getX())-4)+"px";this.Top=(A.GetScreenY(this.Coor.getY())-4)+"px";if(!A.Editando&&!this.Padre.EsPunto){this.Dispose();return }if(A.SinEdicion||(this.Top+8)<0||(this.Left+8)<0||this.Padre.FueraDeZoom||(A.Escala>10010&&this.Padre.EscalaInicial<=5000)){this.Dispose();return }if(this.Div==null){this.Div=document.createElement("div");this.Div.PuntoId=this.Id;this.Div.PolId=this.Padre.IdAuto;this.Div.onmousedown=this.mouseDown;this.Div.onmouseup=this.mouseUp;this.Div.onmouseover=this.mouseOver;this.Div.onmouseout=this.mouseOut;this.Padre.Div.appendChild(this.Div)}this.Div.className=(this.Padre.Editando?"puntoMover":"punto");this.Div.style.top=this.Top;this.Div.style.left=this.Left};TTECPunto.prototype.Dispose=function(){if(this.Div==null){return }this.Div.onmousedown=null;this.Div.onmouseup=null;this.Padre.Div.removeChild(this.Div);this.Div=null};TTECPunto.prototype.Mover=function(A){if(this.Div==null){return }if(A){this.Div.className="puntoMover"}else{this.Div.className="punto"}};TTECPunto.prototype.mouseOver=function(B){if(!objVisor.Poligonos.Insertando){return }var A=objVisor.Poligonos.GetPoligono(this.PolId);objVisor.Poligonos.PuntoInsertar1=A.GetPunto(this.PuntoId);objVisor.Poligonos.PuntoInsertar2=A.GetPuntoAnterior(objVisor.Poligonos.PuntoInsertar1);if(objVisor.Poligonos.PuntoInsertar1&&objVisor.Poligonos.PuntoInsertar2){objVisor.Poligonos.PuntoInsertar1.Div.className="puntoInsertar";objVisor.Poligonos.PuntoInsertar2.Div.className="puntoInsertar"}};TTECPunto.prototype.mouseOut=function(A){if(!objVisor.Poligonos.Insertando){return }if(objVisor.Poligonos.PuntoInsertar1){objVisor.Poligonos.PuntoInsertar1.Div.className="puntoMover"}if(objVisor.Poligonos.PuntoInsertar2){objVisor.Poligonos.PuntoInsertar2.Div.className="puntoMover"}};TTECPunto.prototype.mouseDown=function(D){var C=_getVisorObj(D);if(sinDefinir(C)){return }D=(sinDefinir(D)?event:D);var B=C.Poligonos.GetPoligono(this.PolId);var A=B.GetPunto(this.PuntoId);B.Padre.PuntoSeleccionado=A;A.xMouseDown=C.getEventoX(D)-A.Div.offsetLeft-4;A.yMouseDown=C.getEventoY(D)-A.Div.offsetTop-4};TTECPunto.prototype.mouseUp=function(G){var F=_getVisorObj(G);if(sinDefinir(F)){return }var E=(sinDefinir(this.PolId)?this.Padre:F.Poligonos.GetPoligono(this.PolId));var B=E.Padre;if(B.PuntoSeleccionado==null){return }var A=B.PuntoSeleccionado;B.PuntoSeleccionado=null;B._moviendo=false;if(B.Insertando){E.InsertarPunto(A);return }if(B.Eliminando){E.EliminarPunto(A);return }if(E.Editando){A.Escala=Math.round((B.Max.getX()-B.Min.getX())/inchsToMeters(B.Width/B.screenDPI));if(E.EsPunto){E.DOMPunto.innerHTML=A.Coor.getX()+":"+A.Coor.getY()+(A.Coor.getZ()!=null?":"+A.Coor.getZ():"")}else{if(E.OLPuntos){var C=E.OLPuntos.getElementsByTagName("li");C[A.Index].replaceChild(document.createTextNode(A.Coor.getX()+":"+A.Coor.getY()+(A.Coor.getZ()!=null?":"+A.Coor.getZ():"")),C[A.Index].firstChild)}}var D=E.getValido();E._realizarCalculos(A.Index);if(E.getValido()&&!D){E._realizarCalculos()}else{E.ActualizaMedidas()}E.ActualizaContenedor();E.Render()}return false};function TTECEtiqueta(A){this.Padre=A;this._texto="";this.Coor=null;this._posicion=4;this.xMouseDown=0;this.yMouseDown=0;this._desplazando=false;this.Div=document.createElement("div");this.Div.className="TTECEtiqueta";this.Div.style.display="none";this.Top="0px";this.Left="0px";this.divTxt=document.createElement("div");this.divTxt.className=(A.EsAgujero?"TTECEtiquetaTxtAgujero":"TTECEtiquetaTxt");this.Div.appendChild(this.divTxt);if(this.Padre.Padre.DesplazarEtiquetas){this.divEventos=document.createElement("div");this.divEventos.className="TTECEtiquetaEvento";this.divEventos.PolId=this.Padre.IdAuto;if(this.Padre.EsPunto||this.Padre.EsAgujero){this.divEventos.onclick=this.mouseClick}else{this.divEventos.onmousedown=this.mouseDown;this.divEventos.onmouseup=this.mouseUp}this.Padre.Padre.DivPuntos.appendChild(this.divEventos)}this.Padre.Padre.DivDibujo.appendChild(this.Div);this.Render(false)}TTECEtiqueta.prototype.getPosicion=function(){return this._posicion};TTECEtiqueta.prototype.setPosicion=function(A){this._posicion=A;if(A==1){this.Div.style.backgroundImage="url(./images/dibujar/puntaBoca4.gif)";this.Div.style.backgroundPosition="bottom right"}if(A==2){this.Div.style.backgroundImage="url(./images/dibujar/puntaBoca3.gif)";this.Div.style.backgroundPosition="bottom left"}if(A==3){this.Div.style.backgroundImage="url(./images/dibujar/puntaBoca2.gif)";this.Div.style.backgroundPosition="top right"}if(A==4){this.Div.style.backgroundImage="url(./images/dibujar/puntaBoca1.gif)";this.Div.style.backgroundPosition="top left"}if(A==5){this.Div.style.backgroundImage="none"}this.Render(true)};TTECEtiqueta.prototype.Render=function(C){if(this.Coor&&C){var B=this.Padre.Padre;var A=B.GetScreenX(this.Coor.getX());var D=B.GetScreenY(this.Coor.getY());if(this._posicion==1||this._posicion==3){A=A-this.Div.offsetWidth}if(this._posicion==1||this._posicion==2){D=D-this.Div.offsetHeight}if(this._posicion==5){A=A-Math.round(this.Div.offsetWidth/2);D=D-Math.round(this.Div.offsetHeight/2)}this.Left=A+"px";this.Top=D+"px";if(this.divEventos){this.divEventos.style.left=(A+5)+"px";this.divEventos.style.top=(D+4)+"px";this.divEventos.style.height=((this.Div.offsetHeight-10)<0?0:this.Div.offsetHeight-10)+"px";this.divEventos.style.width=((this.Div.offsetWidth-12)<0?0:this.Div.offsetWidth-12)+"px";this.divEventos.style.display="block"}if(!this._desplazando){this.Div.style.left=this.Left;this.Div.style.top=this.Top;this.Div.style.display="block"}}else{this.Div.style.display="none";if(this.divEventos){this.divEventos.style.display="none"}}};TTECEtiqueta.prototype.getTexto=function(){return this._texto};TTECEtiqueta.prototype.setTexto=function(A){this._texto=A;this.divTxt.innerHTML=this._texto};TTECEtiqueta.prototype.Dispose=function(){if(this.Div==null){return }if(this.divEventos){this.divEventos.onclick=null;this.divEventos.onmousedown=null;this.divEventos.onmouseup=null;this.Padre.Padre.DivPuntos.removeChild(this.divEventos)}this.Padre.Padre.DivDibujo.removeChild(this.Div);this.Div=null};TTECEtiqueta.prototype.mouseClick=function(C){var B=_getVisorObj(C);if(sinDefinir(B)){return }var A=B.Poligonos.GetPoligono(this.PolId);if(A!=B.Poligonos.ItemSeleccionado){B.Poligonos.setItemSeleccionado(A,true)}};TTECEtiqueta.prototype.mouseDown=function(C){var B=_getVisorObj(C);if(sinDefinir(B)){return true}C=(sinDefinir(C)?event:C);var A=B.Poligonos.GetPoligono(this.PolId);if(A!=B.Poligonos.ItemSeleccionado){B.Poligonos.setItemSeleccionado(A,true)}if(!B.Poligonos.Editando){return true}A.Padre.PuntoSeleccionado=A._etiqueta;switch(A._etiqueta.getPosicion()){case 1:A._etiqueta.xMouseDown=(B.getEventoX(C)-A._etiqueta.Div.offsetLeft)-A._etiqueta.Div.offsetWidth;A._etiqueta.yMouseDown=(B.getEventoY(C)-A._etiqueta.Div.offsetTop)-A._etiqueta.Div.offsetHeight;break;case 2:A._etiqueta.xMouseDown=B.getEventoX(C)-A._etiqueta.Div.offsetLeft;A._etiqueta.yMouseDown=(B.getEventoY(C)-A._etiqueta.Div.offsetTop)-A._etiqueta.Div.offsetHeight;break;case 3:A._etiqueta.xMouseDown=(B.getEventoX(C)-A._etiqueta.Div.offsetLeft)-A._etiqueta.Div.offsetWidth;A._etiqueta.yMouseDown=B.getEventoY(C)-A._etiqueta.Div.offsetTop;break;case 4:A._etiqueta.xMouseDown=B.getEventoX(C)-A._etiqueta.Div.offsetLeft;A._etiqueta.yMouseDown=B.getEventoY(C)-A._etiqueta.Div.offsetTop;break;case 5:A._etiqueta.xMouseDown=B.getEventoX(C)-A._etiqueta.Div.offsetLeft-Math.round(A._etiqueta.Div.offsetWidth/2);A._etiqueta.yMouseDown=B.getEventoY(C)-A._etiqueta.Div.offsetTop-Math.round(A._etiqueta.Div.offsetHeight/2);break}A._etiqueta.divEventos.className="TTECEtiquetaEventoVisible";A._etiqueta._desplazando=true;return false};TTECEtiqueta.prototype.mouseUp=function(B){var A=_getVisorObj(B);if(sinDefinir(A)){return true}if(!A.Poligonos.Editando){return true}if(A.Poligonos.PuntoSeleccionado&&A.Poligonos.PuntoSeleccionado._desplazando){A.Poligonos.PuntoSeleccionado.divEventos.className="TTECEtiquetaEvento";A.Poligonos.PuntoSeleccionado._desplazando=false;A.Poligonos.PuntoSeleccionado.Render(true)}A.Poligonos.PuntoSeleccionado=null;return false};function objCoordenadas(A,C,B){this.X=A;this.Y=C;this.Z=B}var posCoor=4;function CrearPoligono(H,F,G){if(objVisor.Datum.Id!=23030){objVisor.SetDatumId(23030)}var E=desgloseListaCoor(H);if(E==null){return }if(E[posCoor].length==1){CrearPuntos(H,F);return }if(E[posCoor].length==2){CrearLinea(H,F);return }if(F==null){F=5000}objVisor.Poligonos.EditarPoligonos(false);objVisor.Poligonos.ItemSeleccionado=objVisor.Poligonos.AddPoligono();creaPuntosPoligono(objVisor.Poligonos.ItemSeleccionado,E,F);creaPuntosAgujero(objVisor.Poligonos.ItemSeleccionado,E,F);if(G){for(var C=0;C<objVisor.Poligonos.Poligonos.length;C++){var D=objVisor.Poligonos.Poligonos[C];if(D==objVisor.Poligonos.ItemSeleccionado||D.Puntos.length!=objVisor.Poligonos.ItemSeleccionado.Puntos.length||D.Min.getX()!=objVisor.Poligonos.ItemSeleccionado.Min.getX()||D.Min.getY()!=objVisor.Poligonos.ItemSeleccionado.Min.getY()||D.Max.getX()!=objVisor.Poligonos.ItemSeleccionado.Max.getX()||D.Max.getY()!=objVisor.Poligonos.ItemSeleccionado.Max.getY()){continue}var B=true;for(var A=0;A<D.Puntos.length;A++){if(D.Puntos[A].Coor.getX()!=objVisor.Poligonos.ItemSeleccionado.Puntos[A].Coor.getX()||D.Puntos[A].Coor.getY()!=objVisor.Poligonos.ItemSeleccionado.Puntos[A].Coor.getY()){B=false;break}}if(B){objVisor.Poligonos.EliminarPoligono(objVisor.Poligonos.ItemSeleccionado)}}}}function CrearLinea(C,B){objVisor.SetDatumId(23030);var A=desgloseListaCoor(C);if(A==null){return }if(A[posCoor].length==1){CrearPuntos(C,B);return }if(B==null){B=5000}objVisor.Poligonos.EditarPoligonos(false);objVisor.Poligonos.ItemSeleccionado=objVisor.Poligonos.AddLinea();creaPuntosPoligono(objVisor.Poligonos.ItemSeleccionado,A,B)}function CrearPuntos(G,E){objVisor.SetDatumId(23030);var D=desgloseListaCoor(G);if(D==null){return }if(E==null){E=5000}objVisor.Poligonos.EditarPoligonos(false);for(var A=0;A<D[posCoor].length;A++){objVisor.Poligonos.ItemSeleccionado=objVisor.Poligonos.AddPunto();objVisor.Poligonos.Creando=true;var C=convierte(D[posCoor][A].X,D[posCoor][A].Y,D[0],"30").split(":");var B=objVisor.Poligonos.ItemSeleccionado.AddPunto(C[0],C[1],D[posCoor][A].Z);B.Escala=E;if(D[posCoor].length==1){if(D[1]<0){objVisor.Poligonos.ItemSeleccionado.Modificado=true}objVisor.Poligonos.ItemSeleccionado.Id=Math.abs(D[1]);objVisor.Poligonos.ItemSeleccionado.Etiqueta=D[2][0];if(D[2].length==2){var F=D[2][1].split(" ");objVisor.Poligonos.ItemSeleccionado._etiqueta.Coor.setXY(objVisor.Datum,F[0],F[1]);objVisor.Poligonos.ItemSeleccionado._etiqueta.setPosicion(F[2])}}objVisor.Poligonos.ItemSeleccionado.EscalaInicial=E;objVisor.Poligonos.ItemSeleccionado.ActualizaTitulo();objVisor.Poligonos.Creando=false}}function creaPuntosPoligono(B,E,F){objVisor.Poligonos.Creando=true;for(var A=0;A<E[posCoor].length;A++){var D=convierte(E[posCoor][A].X,E[posCoor][A].Y,E[0],"30").split(":");var C=B.AddPunto(D[0],D[1],E[posCoor][A].Z,false);C.Escala=F}B.EscalaInicial=F;if(E[1]<0){B.Modificado=true}B.Id=Math.abs(E[1]);B.Etiqueta=E[2][0];if(E[2].length==2){var G=E[2][1].split(" ");B._etiqueta.Coor.setXY(objVisor.Datum,G[0],G[1]);B._etiqueta.setPosicion(G[2])}if(E[3]!=""&&E[3]!=0&&E[3]!=100){B.Porcentaje=E[3]}B._realizarCalculos();B.ActualizaMedidas();B.Render();B.ActualizaTitulo();objVisor.Poligonos.Creando=false}function creaPuntosAgujero(C,G,H){if(G.length<=4){return }for(var B=posCoor+1;B<G.length;B++){var D=objVisor.Poligonos.AddAgujero(C);if(G[B]<0){D.Modificado=true}D.Id=Math.abs(G[B]);B++;for(var A=0;A<G[B].length;A++){var F=convierte(G[B][A].X,G[B][A].Y,G[0],"30").split(":");var E=D.AddPunto(F[0],F[1],G[B][A].Z,false);E.Escala=H}D.EscalaInicial=H;D._realizarCalculos();D.ActualizaMedidas();D.Render();D.ActualizaTitulo()}C.ActualizaMedidas();C.ActualizaTitulo()}function desgloseListaCoor(E){var H=new Array();H[0]="30";H[1]="0";H[2]=new Array("");H[3]=0;var L;var F=new Array();if(E.indexOf("|")>-1){L="|"}else{L="\n"}var J=E.split("agujero");var G=J[0].split(L);for(var C=0;C<G.length;C++){if(G[C]!=""&&G[C].charCodeAt(0)!=13){if(G[C].toUpperCase().indexOf("H30")>=0){H[0]="30"}else{if(G[C].toUpperCase().indexOf("H31")>=0){H[0]="31"}else{var A=(G[C].indexOf(":")>=0?":":" ");var I=G[C].split(A);if(I[0].toUpperCase()=="ID"){H[1]=I[1]}else{if(I[0].toUpperCase()=="ETI"){H[2][0]=I[1]}else{if(I[0].toUpperCase()=="POR"){H[3]=I[1]}else{if(I[0].toUpperCase()=="ETIPOS"){H[2][1]=I[1]}else{var D=true;if(I.length==2&&!isNaN(I[0])&&!isNaN(I[1])){D=false;F[F.length]=new objCoordenadas(I[0],I[1],null)}if(I.length==3&&!isNaN(I[0])&&!isNaN(I[1])&&!isNaN(I[2])){D=false;F[F.length]=new objCoordenadas(I[0],I[1],I[2])}if(D){alert("Error: El formato no es correcto en la línea "+G[C]);return null}}}}}}}}}if(F.length==0){alert("Error: No ha indicado ninguna coordenada.");return null}H[posCoor]=F;for(var K=1;K<J.length;K++){var B=0;F=new Array();G=J[K].split(L);for(var C=0;C<G.length;C++){if(G[C]!=""&&G[C].charCodeAt(0)!=13){var A=(G[C].indexOf(":")>=0?":":" ");var I=G[C].split(A);if(I[0].toUpperCase()=="ID"){B=I[1]}else{var D=true;if(I.length==2&&!isNaN(I[0])&&!isNaN(I[1])){D=false;F[F.length]=new objCoordenadas(I[0],I[1],null)}if(I.length==3&&!isNaN(I[0])&&!isNaN(I[1])&&!isNaN(I[2])){D=false;F[F.length]=new objCoordenadas(I[0],I[1],I[2])}if(D){alert("Error: El formato no es correcto en la línea \n\t"+G[C]);return null}}}}if(F.length==0){alert("Error: No ha indicado ninguna coordenada en algun agujero.");return null}H[H.length]=B;H[H.length]=F}return H}function ayudaPolTxt(){var A="El formato de las coordenadas es:\n";A+="   - Huso:\n\tPuede ser H30 o H31. Es opcional y el valor por defecto es H30.\n";A+="\tSe indicara en la primera linea, previo a las coordenadas.\n";A+='   - Coordenadas:\n\tLas coordenadas X, Y y Z (opcional) irán separadas por ":" (dos puntos) o espacio en blanco.\n';A+="\tCada bloque XYZ estara en una linea.\n";A+="\nEl polígono, línea o punto se crea a una escala 1:5.000.";alert(A)}var convierteDT30;var convierteDT31;function convierte(A,E,D,B){if(sinDefinir(convierteDT30)){convierteDT30=new TTECDatum(23030)}if(sinDefinir(convierteDT31)){convierteDT31=new TTECDatum(23031)}if(D==B){return A+":"+E}if(D=="31"){var C=new TTECCoordenada(convierteDT31,A,E);C.DatumActual=convierteDT30}if(D=="30"){var C=new TTECCoordenada(convierteDT30,A,E);C.DatumActual=convierteDT31}return C.getX()+":"+C.getY()}function GetInfoPoligonos(){var B=objVisor.Datum.Id;objVisor.SetDatumId(23030);var E="";for(var C=0;C<objVisor.Poligonos.Poligonos.length;C++){var D=objVisor.Poligonos.Poligonos[C];E+=D.Id+":";E+=D.IdAuto+":";E+=D.Modificado+":";E+=D.getValido()+":";E+=D.Tipo+":";E+=D.Distancia(false)+":";E+=D.Area(false)+":";E+=D.GetEscalaEdicion()+":";if(D.Tipo==4){E+=":"}else{E+=D.Etiqueta.replace(":","&dospuntos;")+"&partes;"+D._etiqueta.Coor.getX()+"&partes;"+D._etiqueta.Coor.getY()+"&partes;"+D._etiqueta.getPosicion()+":"}E+=D.Porcentaje+":";if(D.Tipo==4){E+=D.PolPadre.Id+":"+D.PolPadre.IdAuto+":"}else{E+="0:0:"}if(D.Id==0||D.Modificado){for(var A=0;A<D.Puntos.length;A++){E+=D.Puntos[A].Coor.getX()+":"+D.Puntos[A].Coor.getY()+":"+(D.Puntos[A].Coor.getZ()!=null?":"+D.Puntos[A].Coor.getZ():"")+":"}}E=E.substring(0,E.length-1)+"|"}E=E.substring(0,E.length-1);document.getElementById("infoPoligonos").Value=E;objVisor.SetDatumId(B)}
