//
// ---------- GLOBAL VARS ----------
//

gLocCoords = [
    [49.238326, 6.977761, 'big']

];
gLocNames  = [
    'FVS'
];
gLocHTMLs  = [
    '<p><img src="img/Logo_FVS_GMaps.gif" width="138" height="48"><br><b><!--Kunden-Service-Center & Akquisition--></b></p><p>St. Johanner Straße 101–105<br>66115 Saarbrücken</p><a class="a_arrow" href="http://maps.google.de/maps?f=d&saddr=&daddr='+gLocCoords[0][0]+','+gLocCoords[0][1]+'&hl=de&geocode=&mra=dme&mrcr=0&mrsp=1&sz=16&sll='+gLocCoords[0][0]+','+gLocCoords[0][1]+'&sspn=0.008448,0.016844&ie=UTF8&z=16" target="_blank">Route hierher berechnen</a>'
];

gInitZoom  = 15;

gMap = null;



//
// ---------- INITS ----------
//

addEvent(window, 'load', initMap);
addEvent(window, 'unload', GUnload);



//
// ---------- FUNCTIONS ----------
//

function initMap() {  // called by load event
  var i,k;
  if (GBrowserIsCompatible()) {
    // Display the map, with some controls and set the initial location 
    gMap = new GMap2(document.getElementById("map_canvas"));
    gIconBig   = MapIconMaker.createMarkerIcon({width: 40, height: 40, primaryColor: "#F4A040", strokeColor: "#004186"});
    gIconSmall = MapIconMaker.createMarkerIcon({width: 26, height: 26, primaryColor: "#F4A040", strokeColor: "#004186"});
    gMap.addControl(new GLargeMapControl());
    gMap.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(3,17)));
    gMap.addControl(new GOverviewMapControl());
    gMap.enableScrollWheelZoom();
    gMap.enableContinuousZoom();

    gLocPoints = [];
    gMarks = [];

    for(i=0; i<gLocCoords.length; i++){
      gLocPoints[i] = new GLatLng(gLocCoords[i][0], gLocCoords[i][1]);
      if(i==0)  gMap.setCenter(gLocPoints[0], gInitZoom);
      gMarks[i] = createMarker(gLocNames[i], (gLocCoords[i][2]=='big'?gIconBig:gIconSmall), gLocPoints[i], gLocHTMLs[i]);
    }
    
//    gMap.setCenter(gLocPoints[0], gInitZoom);
    gMarks[0].showBubble();
    
    // init directions object and attach listener to handle route loads from function drawRoute
    gDir = new GDirections();
    gPoly = null;
    GEvent.addListener(gDir, 'load', function(){
      gPoly = gDir.getPolyline();
      gMap.addOverlay(gPoly);

      // zoom & pan to poly        
      var polyBds  = gPoly.getBounds();
      var polyZoom = gMap.getBoundsZoomLevel(polyBds);
      gMap.setZoom(polyZoom);
      gMap.panTo(polyBds.getCenter());
    });

  }
  
  // display a warning if the browser was not compatible
  else {
    alert("Sorry, the Google Maps API is not compatible with this browser");
  }
}


function createMarker(markName, markIcon, markPoint, markHTML){
  //var myMarker = new GMarker(gInitialCenterPoint);
  var markOpts = {};
  markOpts.icon = markIcon;
  markOpts.title = markName;
  var myMarker = new GMarker(markPoint, markOpts);
  gMap.addOverlay(myMarker);

  myMarker.showBubble = function() { gMap.openInfoWindowHtml(markPoint, markHTML); };
  // click event shows info bubble
  GEvent.addListener(myMarker, "click", myMarker.showBubble);
  var mt = new MarkerTracker(myMarker, gMap);
  
  return myMarker;
}


function showRoute(n,m){
  window.location.hash="GMAP";
  if(gPoly!=null)  gPoly.hide();
  gMap.getInfoWindow().hide();
  var routeStarts=['49.313530,6.969109', '49.282163,7.010651', '49.245307,6.906967', '49.206854,7.057514'];
  // GMaps empfiehlt Abbiegen von Westspange in Hafenstraße: nicht möglich!
  // daher alle Ziele der Geschäftsführung (m>0) über Trierer Str. als zwischenziel planen
  var korrOver = ( m>0 ? ' to:'+gLocCoords[1][0]+','+gLocCoords[1][1] : '');
  gDir.load('from: '+routeStarts[parseInt(n)]+korrOver+' to:'+gLocCoords[m][0]+','+gLocCoords[m][1], {getPolyline:true});
}

function showLocation(m){
  if(gPoly!=null)  gPoly.hide();
  gMarks[m].showBubble();
}
