
///////////////////////
/// FUNCIONALIDADES ///
///////////////////////

//
// Gestor de los eventos de la barra de herramientas
//

//
// Convenio id herramientas
//
// "100X" HERRAMIENTAS DE SELECCION:
//
//      "1001" Seleccion puntual
//      "1002" Seleccion rectangular
//      "1003" Seleccion circular
//      "1004" Seleccion poligonal
//      "1005" Quitar seleccion
//
// "200X" HERRAMIENTAS DE NAVEGACION:
//
//      "2001"  Desplazar (pan)
//      "2002"  Zoom rectangular
//      "2003"  Zoom acercar
//      "2004"  Zoom alejar
//      "2005"  Vista completa
//      "2006"  Vista previa
//      "2007"  Vista inicial
//      "2008"  Actualizar vista
//      "2009"  Medir distancia
//      "2010"  Medir area

 
// "300X", "400X", .... HERRAMIENTAS MAPACIUDAD:
//
//      "3001"  Información (I)
//      "3002"  Cargar ortofoto
//      "3003"  Mostrar catálogo mapas
//      "3004"  Mostrar/esconder POIS
//
//      "4001"  Mostrar idiomas
//      "4002"  Mostrar ayuda
//
//      "5001"  Abrir googleMaps
//      "5002"  Abrir virtualEarth
//
//      "6001"  Desplazar accesorios margen
//      "6002"  Mostrar/ocultar accesorios/
//      "6003"  Quitar carteles
//      "6004"  Abrir url externa en
//					<Sección id="ABS.Atlas.MapaCiudad">
// 						<Param id="UrlExterna" 
//		        		valor="http://miweb/indice.htm" />				          
				

// "700X"  HERRAMIENTAS URBANET:
//      "7001"  Abrir url externa (normativa, pdf, ...) en 
//					<Sección id="ABS.Atlas.Urbanismo">
//						<Param id="UrlRef" 
//		        		valor="/absatlas/Normativa/sjv/indice.htm" />
//      "7002"  Abrir informe parcela urbanístico en
//					<Sección id="ABS.Atlas.Urbanismo">
// 						<Param id="InformeExterno" 
//		       		 valor="si" />	
//     			 <Param id="UrlInforme" 
//		   		     valor="/absatlas/absurbanet/ws/gestor.ashx" /> 

// "800X"  IMPRESION Y ENVIO:
//      "8001"  Imprimir mapa
//      "8002"  Imprimir informe
//      "8003"  Imprimir mapa en PDF
//      "8004"  Imprimir informe en PDF
//      "8005"  Enviar mapa por correo
//      "8006"  Enviar ficha por correo
//      "8007"  Enviar sugerencia por correo

/*
	En este ejemplo vemos como
	enviar comandos desde JavaScript al 
	control visor de mapas mediante ABSDiferirComando(cmd).
	
	De esta manera podemos sustituir la barra
	de herramientas predeterminada.
	
	Los comandos disponibles son:

'VstActualizar'	    - Refrescar la imagen del mapa
'VstAcercar'        - Reducir la escala del mapa
'VstAlejar'         - Aumentar la escala del mapa
'VstCompleta'	    - Mostrar la vista completa
'VstPrevia'			- Mostrar la vista anteriormente seleccionada
'VstInicial'		- Mostrar la vista inicial

'SelQuitar'  		- Quitar la selección
	
'FrmBuscar'			- Muestra el formulario de búsquedas
'FrmEstilos'		- Muestra el formulario de Estilos
'FrmVista'			- Mostrar el formulario de ajuste de vista
'FrmCapas'		    - Mostrar el formulario de contorl de capas
'FrmAcerca'			- Mostrar el formulario Acerca de...

'HrmZoom'			- Activar herramienta zoom
'HrmDesplazar'      - Activar herramienta desplazamiento
'HrmSelectorPt'     - Activar el selector puntual
'HrmSelectorRc'     - Activar el selector rectangular
'HrmSelectorCr'     - Activar el selector circular
'HrmSelectorPl'     - Activar el selector poligonal
'HrmDibujarPt'      - Activar herramienta dibujo puntos
'HrmDibujarPl'      - Activar herramienta dibujo polígonos
'HrmDibujarLn'      - Activar herramienta dibujo líneas
'HrmMedirDs'        - Activar herramienta medir distancias
'HrmMedirAr'        - Activar herramienta medir áreas
	

*/


function GestorClick( oItem){	              
		
		// Inici - Modificació EDUARD 07-05-2010 (1/2)
		copiarXY = false;
		// Fi - Modificació EDUARD 07-05-2010 (1/2)
		
		if (oItem=="1001") {
		  ABSMapaCiudad.herrSeleccion="selector";
			ABSDiferirComando("HrmSelectorPt");  			      
		}
		else if (oItem=="1002") {	
		  ABSMapaCiudad.herrSeleccion="selector";	   
			ABSDiferirComando("HrmSelectorRc");			         
		}
		else if (oItem=="1003") {		
		  ABSMapaCiudad.herrSeleccion="selector";
			ABSDiferirComando("HrmSelectorCr");			          
		}
		else if (oItem=="1004") {	
		  ABSMapaCiudad.herrSeleccion="selector";
			ABSDiferirComando("HrmSelectorPl");			          
		}	
		else if (oItem=="1005") {		   
			ABSDiferirComando("SelQuitar");			          
		}			
		else if (oItem=="2001") {
			ABSDiferirComando("HrmDesplazar");             
		}
		else if (oItem=="2002") {
			ABSDiferirComando("HrmZoom");             
		}
		else if (oItem=="2003") {
			ABSDiferirComando("VstAcercar");             
		}
		else if (oItem=="2004") { 		  
			ABSDiferirComando("VstAlejar");           
		}
		else if (oItem=="2005") {
			ABSDiferirComando("VstCompleta");             
		}
		else if (oItem=="2006") { 		  
			ABSDiferirComando("VstPrevia");            
		}
		else if (oItem=="2007") {		   
			ABSDiferirComando("VstInicial");			          
		}
		else if (oItem=="2008") {		   
			ABSDiferirComando("VstActualizar");			          
		}
		else if (oItem=="2009") {		   
			ABSDiferirComando("HrmMedirDs");			          
		}
		else if (oItem=="2010") {		   
			ABSDiferirComando("HrmMedirAr");			          
		}
		
		else if (oItem=="3001") {	
		  ABSMapaCiudad.herrSeleccion="selectorInfo";
			ABSDiferirComando("HrmSelectorPt");			            			          
		}					
		else if (oItem=="3002") {		    
			ABSMapaCiudad.CargarOrtofoto(); 			          
		}		
		else if (oItem=="3003") {		   
			ABSMapaCiudad.MostrarListaMapas(1); 		          
		}			
		else if (oItem=="3004") {		 
			ABSMapaCiudad.VisualizarTodasCategorias(); 		          
		}		
		
		else if (oItem=="4001") {			       
			ABSMapaCiudad.MostrarIdiomas( ); 
		}
		else if (oItem=="4002") {		    
			ABSMapaCiudad.MostrarAyuda();  			          
		}		
		
		else if (oItem=="5001") {		    
			ABSMapaCiudad.ConectarVisorExterno('GoogleMaps');  			          
		}
		else if (oItem=="5002") {		    
			ABSMapaCiudad.ConectarVisorExterno('VirtualEarth');  			          
		}	

		else if (oItem=="6001") {		    
			ABSMapaCiudad.MoverAccesoriosMargenMapa();  			          
		}	
		else if (oItem=="6002") {		    
			ABSMapaCiudad.MostrarAccesorios();  			          
		}		
		else if (oItem=="6003") {		    
			ABSMapaCiudad.QuitarCarteles();  			          
		}
    else if (oItem=="6004") {		 	     
			ABSMapaCiudad.AbrirURLExterna();		          
		}
		else if (oItem=="7001") {  
			ABSMapaCiudad.MostrarUrlExterna(); 		          
		}
		else if (oItem=="7002") {	 
		  ABSMapaCiudad.herrSeleccion="selectorInfoUrbanet";		     
			ABSDiferirComando("HrmSelectorPt");        
		}	
		else if (oItem=="8001") {		    
			ABSMapaCiudad.ImprimirMapa('html'); 			            			          
		}
		else if (oItem=="8002") {		    
			ABSMapaCiudad.ImprimirInforme('html'); 			            			          
		}
		else if (oItem=="8003") {		   
			ABSMapaCiudad.ImprimirMapa('pdf'); 		          
		}	
		else if (oItem=="8004") {		   
			ABSMapaCiudad.ImprimirInforme('pdf'); 		          
		}	
		else if (oItem=="8005") {		   
			ABSMapaCiudad.EnviarPDFCorreo('MAPA'); 		          
		}
		else if (oItem=="8006") {		   
			ABSMapaCiudad.EnviarPDFCorreo('FICHA'); 		          
		}		
		else if (oItem=="8007") {		   
			ABSMapaCiudad.EnviarPDFCorreo('BUZON'); 		          
		}		
		
// Inici - Modificació EDUARD 07-05-2010 (2/4)
		else if (oItem=="9001") {		    
      copiarXY = true;	    
      ABSMapaCiudad.herrSeleccion="selector";		     
			ABSDiferirComando("HrmSelectorPt");   			          
		}
		else if (oItem=="9002") {
		  var Coordenades = "0";  
		  var PosicioComa = 0;  
      var UTM_X = "0";
      var UTM_Y = "0";
      var res = location.href;
      var parameterName = "coords=";
      if (res.length > 0) {
        begin = res.indexOf(parameterName);
        if (begin != -1) {
          begin = begin + parameterName.length;
          end = res.indexOf("&", begin);
          if (end == -1) {
            end = res.length;
          }
          Coordenades = unescape(res.substring(begin, end));
        }
      }
      if (Coordenades != "0") {
        PosicioComa = Coordenades.indexOf(",");
        if (PosicioComa > 0) {
          UTM_X = Coordenades.substr(0, PosicioComa);
          UTM_Y = Coordenades.substr(PosicioComa + 1);
        }
        if ((UTM_X != "0") && (UTM_Y !="0")) {
          var urlMapaGran = "http://www.sitges.cat/jsp/planol/planol.jsp" + "?x=" + UTM_X + "&y=" + UTM_Y;
          window.open(urlMapaGran);
        }
      }
      else
      {
        var urlMapaGran = "http://www.sitges.cat/jsp/planol/planol.jsp";
        window.open(urlMapaGran);
      }
		}
		else if (oItem=="9003") {
      var regexp = new RegExp("(.*mapaVirtual=)(MC_SITGES_[^&]+)(&.*)", "g");
      var res = regexp.exec(location.href);		    
      window.open(res[1] + "MC_SITGES_102" + res[3]);
		}
// Fi - Modificació EDUARD 07-05-2010 (2/4)
		
}


// Inici - Modificació EDUARD 07-05-2010 (3/4)
var IE=window.external&&(navigator.platform=="Win32"||(window.ScriptEngine&&ScriptEngine().indexOf("InScript")+1));
var FF=(navigator.userAgent.toLowerCase().indexOf("firefox")+1)?true:false;
var OP=window.opera&&window.print;
var NS=window.netscape&&!OP;

function copiar(contingut)
{
    if(window.clipboardData||NS) 
    {
        if(IE&&!FF) 
        {
            if(!window.clipboardData.setData("text",contingut)) 
            {
                alert("El vostre navegador no permet copiar les coordenades al portapapers.");
                return false;
            }
        }
        else 
        {
            try 
            {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
            }
            catch(e) 
            {
                alert("El vostre navegador no permet copiar les coordenades al portapapers.");
                return false;
            }
            try 
            {
                e=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard)
            }
            catch(e) 
            {
                return false;
            }
            try 
            {
                b=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
            }
            catch(e) 
            {
                return false;
            }
            b.addDataFlavor("text/unicode");
            o=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
            o.data=contingut;
            b.setTransferData("text/unicode",o,contingut.length*2);
            try 
            {
                t=Components.interfaces.nsIClipboard;
            }
            catch(e) 
            {
                return false
            }
            e.setData(b,null,t.kGlobalClipboard)
        }
    }
    else 
    {
        alert("El vostre navegador no permet copiar les coordenades al portapapers.");
        return false
    }
    Posicio_Espai = contingut.indexOf(" ");
    if (Posicio_Espai > 0) 
    {
      UTM_X = contingut.substr(0, Posicio_Espai);
      UTM_Y = contingut.substr(Posicio_Espai + 1);
    }
    alert("S'han copiat correctament les coordenades X i Y al portapapers.\r\n" + "- Coordenada UTM X:   " + UTM_X + "\r\n- Coordenada UTM Y:   " + UTM_Y);
    return false
}

var copiarXY = false;
// Fi - Modificació EDUARD 07-05-2010 (3/4)


// Método que se se lanza tras una selección
function GestorPreseleccion(params){

// Inici - Modificació EDUARD 07-05-2010 (4/4)
//ABSMapaCiudad.GestorPreseleccion(params);
  if (copiarXY) 
  {
    params.formaM.WKT();
    copiar(new Number(params.formaM.x[0]).toFixed(2) + " " + new Number(params.formaM.y[0]).toFixed(2));
  }
  else
  {
    ABSMapaCiudad.GestorPreseleccion(params);
  }
// Fi - Modificació EDUARD 07-05-2010 (4/4)

}


// Método que se se lanza previo una selección
function GestorSeleccion(params){
 ABSMapaCiudad.GestorSeleccion(params);
}

// Método que se se lanza después render mapa 
function GestorVistaMapa( absmapas )
{
  ABSMapaCiudad.GestorVistaMapa(absmapas);
}






