var map; 
var geocoder;
var marker;
var icon;
var curcol = 1;

var sensorvisuals = 0;

var sensor1 = 0;
var sensor2 = 0;
var sensor3 = 0;

var blink_sensor1 = 0;
var blink_sensor2 = 0;
var blink_sensor3 = 0;

var currentX = "52.03101";
var currentY = "5.601222";

var jumplength = 0.000200;
var interval = 100;
var counter = 0;

function gmap_load(maptypenr) 
{
      if (GBrowserIsCompatible()) 
      {
        map = new GMap2(document.getElementById("map_canvas"));
        geocoder = new GClientGeocoder();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(currentX, currentY), 17);

        /* map.setMapType(G_SATELLITE_MAP); */
  
        switch (maptypenr)
        {
          case 1  : map.setMapType(G_NORMAL_MAP); break;
          case 2  : map.setMapType(G_SATELLITE_MAP); map.setCenter(new GLatLng(currentX, currentY), 16); break;
          case 3  : map.setMapType(G_SATELLITE_MAP); break;
          case 4  : map.setMapType(G_NORMAL_MAP); map.setCenter(new GLatLng(currentX, currentY), 12); break;
          default : map.setMapType(G_NORMAL_MAP); break;
        } 

        /*52 01.1760N,5 38.1683E  Michiel */
        /*52#22.3785N,004#53.5998E  de Dam */
        
        icon = new GIcon();
        
        //icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
        //icon_yellow.iconSize = new GSize(12, 20);
		    //icon_yellow.shadowSize = new GSize(22, 20);
		    //icon_yellow.iconAnchor = new GPoint(6, 20);
		    //icon_yellow.infoWindowAnchor = new GPoint(5, 1);
		    
        icon.image = "http://google-maps-icons.googlecode.com/files/regroup.png";
		    icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		    icon.iconSize = new GSize(32, 37);
		    icon.shadowSize = new GSize(30, 34);
		    icon.iconAnchor = new GPoint(10, 34);
		    icon.infoWindowAnchor = new GPoint(7, 1);
		    
        // Creates a marker at the given point with the given label
		    var point = new GLatLng(currentX, currentY);
		    map.addOverlay(createMarker(point, 'Uw huidige positie<br><div id="Sensordata"></div>'));
      }
}

function createMarker(point, textmsg) 
{
  marker = new GMarker(point, { icon: icon });
  /*marker.setPoint(point);*/
  GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(textmsg); });
  return marker;
}

function jump_to(newLong, newLat)
{
  map.setCenter(new GLatLng(newLong, newLat), 17);	
  var point = new GLatLng(newLong, newLat);
  map.addOverlay(createMarker(point, "Latitude: "+newLat+"<br>Longitude: "+newLong));
}

function navigate_to(newLong, newLat)
{
  map.panTo(new GLatLng(newLong, newLat), 17);	
  var point = new GLatLng(newLong, newLat);
  /*marker = createMarker(point, "Latitude: "+newLat+"<br>Longitude: "+newLong);*/
  marker.setPoint(point);
  map.removeOverlay(marker);
  map.addOverlay(marker);  
  set_markercolor()
  
  /* repositions the infowindow (textballoon) to match the current position of the marker */ 
  var offset= new GSize(0,-30); 
  
  var iw = map.getInfoWindow();
  //var h = parseInt(iw.getContentContainers()[0].style.height);
  //var w = parseInt(iw.getContentContainers()[0].style.width);
  // test iw.reset(marker.getPoint(), iw.getTabs(), new GSize(20,20), iw.getPixelOffset(), iw.getSelectedTab() );
  
  /*
  map.getInfoWindow().reposition(marker.getPoint(),offset); 
  
  map.getInfoWindow().reposition = function(p) {
    var h = parseInt(this.getContentContainers()[0].style.height);
    var w = parseInt(this.getContentContainers()[0].style.width);
    this.reset(p,
       this.getTabs(),
       new GSize(w,h),
       this.getPixelOffset(),
       this.getSelectedTab()
    );
  } 
  */
  
  /* if infowindow is not hidden, alter it's test */
  /* if (!map.getInfoWindow().isHidden()) test */
  /* { marker.openInfoWindowHtml('Uw huidige positie'); } test */
}

function navigate_fuzzy(Location)
{
	
	
  map.setMapType(G_SATELLITE_MAP);
  map.setCenter(new GLatLng(currentX, currentY), 16);
  geocoder.getLatLng(Location, function(point) { map.panTo(point); marker.setPoint(point); });
  map.removeOverlay(marker);
  map.addOverlay(marker); 
  set_markercolor()
}

function refresh_markertext()
{
  /*
  if (document.getElementById('Sensordata'))
  { 
  document.getElementById('Sensordata').innerHTML = document.getElementById('sensorvalues').value; 
  }
  */
}

function set_markercolor() 
{
  switch (curcol)
  { 
    case 0  : marker.setImage("trackMarker.png"); /* red */ break;
    case 1  : marker.setImage("trackMarker.png"); /* yellow */ break;
    case 2  : marker.setImage("trackMarker.png"); /* blueish */ break;
    case 3  : marker.setImage("trackMarker.png"); /* green */ break;
    default : marker.setImage("trackMarker.png"); /* red */ break;
  }    
}
