﻿// JScript File
   
	function get_mapa_frame(){
		return parent.webepl_mapa;
	}

	function get_mapa(){
		return get_mapa_frame().document.Form_Mapa.MAPA;
	}

	function msg_mapa_ocupado(){
		window.alert ("Aguarde até que a leitura do mapa termine. Obrigado.");
	}

    function map_ortos(){
		var mapa = get_mapa();
		if (mapa!=null){
		
		    mapa.stop();
		    mapa.setAutoRefresh(false);

                var activo=false;
                
                var grp=mapa.getMapLayerGroup("ortofotomapas");
                if(grp!=null) {
                    grp.setVisibility(!grp.getVisibility());
                    activo=!grp.getVisibility();
                }
                
                var grp=mapa.getMapLayerGroup("Ortos_5000");
                if(grp!=null) grp.setVisibility(!grp.getVisibility());
                
                var grp=mapa.getMapLayerGroup("Cartografia 2.000 - Textos");
                if(grp!=null) grp.setVisibility(activo);
                var grp=mapa.getMapLayerGroup("Cartografia 5.000 - Textos");
                if(grp!=null) grp.setVisibility(activo);
                var grp=mapa.getMapLayerGroup("Cartografia 5.000");
                if(grp!=null) grp.setVisibility(activo);
                var grp=mapa.getMapLayerGroup("Cartografia 2.000");
                if(grp!=null) grp.setVisibility(activo);

		    mapa.setAutoRefresh(true);
		    mapa.refresh();
		    
		}
		
	}

	function map_select()
	{
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();	
				mapa.selectMode();
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}

	function map_refresh(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.stop();
				mapa.refresh();
			}
			else{
				mapaOcupado();
			}
		}
	}
	function getBBox(){

			mapa=get_mapa();
			if (mapa!=null){
				bbox = mapa.getMapExtent(true,true);
				var valor=bbox.getminx() + "~" + bbox.getminy() + "~" + bbox.getmaxx() + "~" + bbox.getmaxy();				
				return valor;
			}
			return "";
		}
	function getCoords(){

			mapa=get_mapa();
			if (mapa!=null){
			
				var lay=mapa.getMapLayer("_temp_layer_pretensao_");
				if (lay!=null){
					if(lay.getMapObjects().size()>0)
						var obj=lay.getMapObjects().item(0);

				}
				
				if (obj!=null){
					primitivas = obj.getPrimitives();
					if (primitivas.count>0){
						valor = "";				
						primitiva = primitivas.item(0);
						vertices = mapa.createobject("MGCollection");
						vertices_num = mapa.createobject("MGCollection");
						primitiva.getVertices(vertices, vertices_num);
						
						for (v=1;v<=vertices.count;v++){
							ponto = vertices.item(v-1);
							valor = valor + ponto.getX() + "~" + ponto.getY() + "/";							
						}					
						return valor;
					}
				}
			}
			return "";
		}
		
    function map_drag(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.stop();
				mapa.panMode();
			}
			else{
				msg_mapa_ocupado();
			}
		}
	}

	function map_measure(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.stop();
				mapa.viewDistance("KM");
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}

function map_point(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();
				mapa.selectMode();
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}
	
	function map_print(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();
				if(mapa.getScale()>15000 && mapa.getScale<5000){
				    alert("O Mapa só pode ser imprimido à escala 1:10000");
				}
				else{
				    mapa.getPageSetup().setInclude("mg_legend",false);
				    mapa.getPageSetup().setInclude("mg_northarrow",false);
				    mapa.getPageSetup().setInclude("mg_scalebar",true);
				    mapa.getPageSetup().setInclude("mg_title",true);
				    mapa.getPageSetup().setInclude("mg_timestamp",true);
				    mapa.getPageSetup().setInclude("mg_url",false);
    				
				    mapa.getPageSetup().setUsePlotScale(true);
				    mapa.getPageSetup().setPlotScale(10000);
    				
				    mapa.printDlg();
                }
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}

	function map_stop(){
		mapa = get_mapa();
		if (mapa!=null)
			mapa.stop();
	}

	function zoom_area(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();	
				mapa.zoomInMode();
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}

	function zoom_in(){
		mapa = get_mapa();
		
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();
				mapa.zoomScale(mapa.getLat(),mapa.getLon(),mapa.getScale()/2);
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}
	function zoom_out(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false)
			{
				mapa.stop();
				mapa.zoomScale(mapa.getLat(),mapa.getLon(),mapa.getScale()*2);
			}
			else
			{
				msg_mapa_ocupado();
			}
		}
	}
	
	function zoom_default(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.setAutoRefresh(false);
				mapa.zoomOut();
				mapa.setAutoRefresh(true);
				mapa.refresh();
				
			}
			else{
				msg_mapa_ocupado();
			}
		}
	}

	function zoom_back(){
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.stop();
				mapa.zoomPrevious();
			}
			else{
				msg_mapa_ocupado();
			}
		}
	}

	function map_localiza(lon, lat, alt, escala)	
	{
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.isBusy()==false){
				mapa.zoomScale(lat, lon, escala); 
			}
			else{
				msgMapaOcupado();
			}
		}        
	}

	function map_digitize()
	{
		mapa = get_mapa();
		if (mapa!=null){
			if(mapa.getScale()<=5000){
				frame = get_mapa_frame();
				if (frame!=null)
					frame.map_digitize();
				}
			else{
				alert("Só é possivel desenhar com uma escala igual ou superior a 1:5000.");
			}
		}
}
