var set = false;
var lat = '';
var lng = '';
var loaded = false;
    
$(function() { 
   
  // only init if latlng field exists   
  if($('#hfLatLng').length != 0){

    var latlng = $("#hfLatLng").val(); 
    var active = $("#cbUseMap").is(':checked'); 

    if(latlng != ''){
      latlng = latlng.split(',');
      lat = latlng[0];
      lng = latlng[1];
      set = true;
    } else {
      var place = $("#residenceForMap").val() +', Nederland';
    }

    if(set == false){
      $("#map").goMap({address: place, zoom: 15, maptype: 'ROADMAP'});
    } else {
      $("#map").goMap({latitude: lat, longitude: lng, zoom: 15, maptype: 'ROADMAP'});
    }
   
	$("#cbUseMap").change(function() {
 		if($(this).is(':checked')==true){
 		  placeDragMarker();
 		} else {
 		  $.goMap.removeMarker('dragMarker'); 
 		  $("#hfLatLng").val('');
 		  set = false;
 		}
	});

	$.goMap.createListener({type:'map'}, 'tilesloaded', function(event) { 
      if(loaded==false) { if(active==true) { placeDragMarker(); } }
      $('#cbUseMap').removeAttr("disabled"); 
	});     
   } 
    
});

function placeDragMarker(){
  if(set == false){
     var center = $.goMap.getCenter();  
     lat = center.lat();
     lng = center.lng();
  }
        
  $.goMap.createMarker({  
      latitude: lat, 
      longitude: lng, 
      id: 'dragMarker',
      draggable: true 
  });

  $('#hfLatLng').val(lat+","+lng);

  $.goMap.createListener({type:'marker', marker:'dragMarker'}, 'dragend', function(marker){
     latlng = $.goMap.getMarkers();
     latlng = latlng[0].split(',')
     lat = latlng[0];
     lng = latlng[1];
     $('#hfLatLng').val(latlng);
  });

  
  loaded = true;
}
