/**
 * The MarkerClusterer object.
 * @type {MarkerCluster}
 */
var mc = null;

/**
 * The Map object.
 * @type {google.maps.Map}
 */
var idmap = 'default_map';
var map = null;
var critsearch = '';
var optionsmap;
var map_2 = null;

/**
 * The MarkerManager object.
 * @type {MarkerManager}
 */
var mgr = null;
var interets = '';
var interets_2 = '';
/**
 * Marker Clusterer display/hide flag.
 * @type {boolean}
 */
var showMarketClusterer = false;
var infowindow = new google.maps.InfoWindow();
var contain_info = '';
/**
 * Toggles Marker Clusterer visibility.
 */
function toggleMarkerClusterer() {
  showMarketClusterer = !showMarketClusterer;
  if (showMarketClusterer || search) {
		// alert('here');
    if (mc && !search) {
			alert('first');
      mc.addMarkers(markers.locations);
      // mc = new MarkerClusterer(map, markers.locations, {maxZoom: 19});
    } else { // ICI
			// var iconMarker = new google.maps.MarkerImage(url_site+'template/img/pins.gif');			
      mc = new MarkerClusterer(map, markers.locations, {maxZoom: 8});
    }
  } else {		
		mc.clearMarkers();
		mc = new MarkerClusterer(map, markers.locations, {maxZoom: 8}); 
  }
}


/**
 * Initializes the map and listeners.
 */
function initialize() {
	var valZoom = (map != null) ? map.getZoom() : 4;
	optionsmap = {
		// center: new google.maps.LatLng(c_lat, c_lng),
		zoom: valZoom,
	  // disableDefaultUI: true,
	  mapTypeControl: false,
		mapTypeControlOptions: {
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
		},
	  streetViewControl: false,
	  zoomControl: true,
		maxZoom: 8,
		minZoom: 3	
	};
	
	map = new google.maps.Map(document.getElementById(idmap),optionsmap);
	// if(home)
		// map.mapTypeId =  google.maps.MapTypeId.HYBRID;
	// else	
		map.mapTypeId =  google.maps.MapTypeId.ROADMAP;
	
  // google.maps.event.addDomListener(document.getElementById('mc-cb'),
      // 'click', toggleMarkerClusterer);

  // Prepares the marker object, creating a google.maps.Marker object for each
  // location, place and country
	traiteMarkers(true);
}

function initialize_search() {

	var valZoom = (map != null) ? map.getZoom() : 8;
	optionsmap = {
	  mapTypeControl: false,
	  streetViewControl: false,
	  zoomControl: true,
		maxZoom: 8,
		minZoom: 3		
	};
	
	map = new google.maps.Map(document.getElementById('default_map'),optionsmap);
	map.mapTypeId =  google.maps.MapTypeId.ROADMAP;
	if(markers){
		var bounds = new google.maps.LatLngBounds();
    for (var level in markers) {					
      for (var i = 0; i < markers[level].length; i++) {			
        var details = markers[level][i];				
        markers[level][i] = new google.maps.Marker({
          title: 'Cliquez pour visualiser les solutions logistiques',
          id_: details.id_,
          position: new google.maps.LatLng(details.location[0], details.location[1]),
          clickable: true,
          draggable: false,
          flat: true
        });
				bounds.extend(new google.maps.LatLng(details.location[0], details.location[1]));
      }
    }
		map.fitBounds(bounds);
	}
	if(markers){
		if(markers.locations.length < 2)	
			setTimeout('centerMyMap()',300);
	}

	toggleMarkerClusterer();
}

function centerMyMap(){
	map.setZoom(12);
}

function traiteMarkers(autozoom){
  if (markers) {	
		var bounds = new google.maps.LatLngBounds();
    for (var level in markers) {					
      for (var i = 0; i < markers[level].length; i++) {			
        var details = markers[level][i];	
        markers[level][i] = new google.maps.Marker({
          title: 'Cliquez pour visualiser les solutions logistiques',
          id_: details.id,
          position: new google.maps.LatLng(details.lati, details.longi),
          clickable: true,
          draggable: false,
          flat: true
        });
				if(autozoom)
					bounds.extend(new google.maps.LatLng(details.lati, details.longi));
      }
    }
		if(autozoom)
			map.fitBounds(bounds);
  }
	if(markers){
		if(markers.locations.length < 2 && autozoom)	
			setTimeout('centerMyMap()',300);
	}

	toggleMarkerClusterer();
}
if(search){	
	google.maps.event.addDomListener(window, 'load', initialize_search);
}
else if(home){
	idmap = 'default_map';
	google.maps.event.addDomListener(window, 'load', initialize);
}
else if(entrepot){	
	var coords = $('#coords').val();
	centre = coords.split('|');
	var options = {
		center: new google.maps.LatLng(centre[0],centre[1]),
		zoom: 10,
		maxZoom: 10,
		minZoom: 7,		
	  // disableDefaultUI: true,
	  overviewMapControl: true,
	  scrollwheel: false,
	  mapTypeControl: false,
	  streetViewControl: false,
	  zoomControl: true,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
		
	map = new google.maps.Map(document.getElementById('map_entrepot'),options);
	
	var iconCentre = new google.maps.MarkerImage(url_site+'theme/'+theme_site+'img/picto_site.png',
		/* dimensions de l'image */
		new google.maps.Size(26,38),
		/* Origine de l'image 0,0. */
		new google.maps.Point(0,0),
		/* l'ancre (point d'accrochage sur la map) du picto
		(varie en fonction de ces dimensions) */
		new google.maps.Point(13,38)
	);
	
	var markerCentre_1 = new google.maps.Marker({
		position: new google.maps.LatLng(centre[0],centre[1]),
		title: 'Le secteur oł se situe le site',
		draggable: false,
		clickable: true,
		flat: true,
		icon: iconCentre,
		map: map
	});
	
}else{
	idmap = 'little_map';
	google.maps.event.addDomListener(window, 'load', initialize);
}

function removeMarkers(type){
	for (var level in interets){	
		for (var i = 0; i < interets[level].length; i++) {					
			var details = interets[level][i];				
			if(details.categorie == type || type == 'all')
				interets[level][i].setMap(null);
		}
	}
	for (var level in interets_2){	
		for (var i = 0; i < interets_2[level].length; i++) {					
			var details = interets_2[level][i];				
			if(details.categorie == type || type == 'all')
				interets_2[level][i].setMap(null);
		}
	}
}

function replaceMarkers(type){
	for (var level in interets){	
		for (var i = 0; i < interets[level].length; i++) {					
			var details = interets[level][i];				
			if(details.categorie == type)
				interets[level][i].setMap(map);
		}
	}
	for (var level in interets_2){	
		for (var i = 0; i < interets_2[level].length; i++) {					
			var details = interets_2[level][i];				
			if(details.categorie == type)
				interets_2[level][i].setMap(map_2);
		}
	}
}








