﻿	var map;
	var geocoder;
   	var xml;
   	var markers;
   	var address;
	var id;
	var nome;
	
	var icon1 = new GIcon();
      	icon1.image = '_widgets/gmap-xml/_images/icon_blue_twn.png';
	  	icon1.iconSize = new GSize(30, 40);
      	icon1.iconAnchor = new GPoint(9, 34);
      	icon1.infoWindowAnchor = new GPoint(9, 0);
      	icon1.infoShadowAnchor = new GPoint(18, 25);
	  
	var icon2 = new GIcon();
      	icon2.image = '_widgets/gmap-xml/_images/icon_blue_ngh.png';
	   	icon2.iconSize = new GSize(20, 25);
        icon2.iconAnchor = new GPoint(9, 34);
        icon2.infoWindowAnchor = new GPoint(9, 0);
        icon2.infoShadowAnchor = new GPoint(18, 25);
 	
	

	
   // On page load, call this function
   function load_mapsearch()
   {
      // Create new map object
      map = new GMap2(document.getElementById("gmap_search"));  
 
	   // Set map center location	  
	  //map.setCenter(new GLatLng(39.724089,-8.02002), 6);
	  
	   // Add Map Controls
      		//map.addControl(new GSmallMapControl());
       		//map.addControl(new GMapTypeControl());
			var customUI = map.getDefaultUI();
        	customUI.controls.scalecontrol = false;
        	map.setUI(customUI);
	   
      // Create new geocoding object
      geocoder = new GClientGeocoder();
	  
  	  // Download the data in data.xml and load it on the map.
	   GDownloadUrl("_widgets/gmap-xml/_xml/list_twn.spk?ord=2", function(data) {
          xml = GXml.parse(data);
          markers = xml.documentElement.getElementsByTagName("marker");
		  
          for (var i = 0; i < markers.length; i++) {
            address = markers[i].getAttribute("address");
			id = markers[i].getAttribute("id");
			nome = markers[i].getAttribute("nome");
			twn_lat = markers[i].getAttribute("lat");
			twn_lng = markers[i].getAttribute("lng");
			if (!twn_lat && !twn_lng) {
        		findAddress_twn(address,id,nome);
     		} else {
			  marker = createMarker_twn(new GLatLng(twn_lat, twn_lng), nome, id);
			  map.addOverlay(marker);
			}
			
			}
        });   
   }
   // CONCELHOS 
   
	  function createMarker_twn(point,nome,id) {

        var marker = new GMarker(point,icon1);
        // The new marker "click" listener     
		 map.setCenter(point, 5); 
        GEvent.addListener(marker,"click", function() {
         map.setCenter(point, 11); 
				 load_ngh(id,nome);
				 var tabs = [new GInfoWindowTab('tab1','<span class="infowindow">Está a pesquisar imóveis para o concelho de <strong>'+nome+'</strong></span><div class="bt_standard_cinza"><a href="listagem.spk?twn='+id+'" ><span>'+list+'</span></a></div>')];
				marker.openInfoWindowTabsHtml(tabs,{maxWidth:180});
        });        
        
        return marker;
      }
	  
	  function findAddress_twn(anAddress,id,nome)
      {
        if (geocoder) 
        {
          geocoder.getLatLng(anAddress, function(aPoint) 
          {
            if (!aPoint) 
            {
              alert("can't locate [" + anAddress + "]");
            } 
            else 
            {

			  point = aPoint;
			
			  
			  marker = createMarker_twn(point, nome);
			  map.addOverlay(marker);

            }
          });
        }
      }
	  
	  // FREGUESIAS 
	  
	  function createMarker_ngh(point,nome,id,twn_nome) {

        var marker = new GMarker(point,icon2);
        // The new marker "click" listener     
		 map.setCenter(point, 11); 
        GEvent.addListener(marker,"click", function() {
         map.setCenter(point, 11); 
		 
				 
				 
				 var tabs = [new GInfoWindowTab('tab1','<span class="infowindow">Está a pesquisar imóveis para a freguesia de <strong>'+nome+'</strong>, concelho de <strong>'+twn_nome+'</strong></span><div class="bt_standard_cinza"><a href="listagem.spk?ngh='+id+'"><span>'+list+'</span></a></div>')];
				 
				 marker.openInfoWindowTabsHtml(tabs,{maxWidth:180});
        });        
        
        return marker;
      }
	  
	  function findAddress_ngh(anAddress,id,nome,twn_nome)
      {
        if (geocoder) 
        {
          geocoder.getLatLng(anAddress, function(aPoint) 
          {
            if (!aPoint) 
            {
              alert("can't locate [" + anAddress + "]");
            } 
            else 
            {
              
			  point = aPoint;
			  
			  marker = createMarker_ngh(point, nome, id, twn_nome);
			  map.addOverlay(marker);
			  
            }
          });
        }
      }

// This function adds the point to the map
	  
	  function load_ngh(id,twn_nome){
	  
  	  // Download the data in data.xml and load it on the map.
	   GDownloadUrl("_widgets/gmap-xml/_xml/list_ngh.spk?twn="+id+"ord=1", function(data) {
          xml = GXml.parse(data);
          markers = xml.documentElement.getElementsByTagName("marker");
		  
          for (var i = 0; i < markers.length; i++) {
            address = markers[i].getAttribute("address");
			id = markers[i].getAttribute("id");
			nome = markers[i].getAttribute("nome");
			ngh_lat = markers[i].getAttribute("lat");
			ngh_lng = markers[i].getAttribute("lng");
			
			if (!ngh_lat && !ngh_lng) {
        		findAddress_ngh(address,id,nome,twn_nome);
     		} else {
			  marker = createMarker_ngh(new GLatLng(ngh_lat, ngh_lng), nome, id, twn_nome);
			  map.addOverlay(marker);
			}
			
			
			}
        });   
		  
		  }

	  
	 
      
  
