﻿jQuery(document).ready(function() 
{
  buildMapsFromHTML();
}
)

/*****************
*  MAP SEETINGS  *
*****************/
var map;
var geocoder;
var zoomLevel = 13;

/*****************
*  MAP FUNCTIONS *
*****************/
function buildMapsFromHTML(){
  var googleMaps = jQuery(".CompanyMap");
  var i;
  for (i = 0; i < googleMaps.length; i++) 
  {
    addMap(googleMaps[i]);
  }
}



function addMap(CompanySetting) {
  // GET SETTINGS FROM HTML
  var setting = jQuery(CompanySetting).children(".CompanyMapSettings");
  var mapId = jQuery(setting).children(".googlemapId").html();
  var longtitude = jQuery(setting).children(".longtitude").html();
  var latitude = jQuery(setting).children(".latitude").html();
  var centerLongtitude = jQuery(setting).children(".longtitude").html();
  var centerLatitude = jQuery(setting).children(".latitude").html();
  var address = jQuery(setting).children(".address").html();


  initializeMap(mapId);
    
  if (latitude != "Na" || longtitude != "Na") { 
    addMarkerToMap(longtitude, latitude);
    centerMap(longtitude, latitude);
  }
  else{
    generateMapFromAddress(address);
  }
  
}

function initializeMap(mapId) {
  map = new GMap2(document.getElementById(mapId));
  map.enableDragging(false);
  map.disableDragging();

}

function generateMapFromAddress(address) {
  var coordinate = cordinatesFromGoogle(address)
}

function cordinatesFromGoogle(address) {
  geocoder = new GClientGeocoder();
  geocoder.getLatLng(address, function(point) {  
  if(point) {
      var longtitude = point.lng().toFixed(5)
      var latitude = point.lat().toFixed(5)
      addMarkerToMap(longtitude, latitude);
      centerMap(longtitude, latitude);
    }
  })
}

function addMarkerToMap(longtitude, latitude) {
  var point = new GLatLng(latitude, longtitude);
  var marker = new GMarker(point,{clickable:false});
  
  map.addOverlay(marker);
}

function centerMap(longtitude, latitude) {
   var point = new GLatLng(latitude, longtitude);
   map.setCenter(point, zoomLevel);
}

