	
	// init
	var map;
	maps = new Array();	
	var baseIcon = new GIcon();
	// gmap
	gmap=function(canvas) {
		if(maps[canvas]==undefined) {
			if (GBrowserIsCompatible()) {
				maps[canvas] = new GMap2(document.getElementById(canvas));
				maps[canvas].setCenter(new GLatLng(45,0), 3);
				maps[canvas].enableContinuousZoom();
				maps[canvas].enableDoubleClickZoom();
				maps[canvas].addControl(new GMapTypeControl());
				maps[canvas].setMapType(G_PHYSICAL_MAP) ;
				maps[canvas].addControl(new GLargeMapControl());
				maps[canvas].addControl(new GOverviewMapControl(false));
				maps[canvas].removeMapType(G_HYBRID_MAP);
				maps[canvas].addMapType(G_PHYSICAL_MAP) ;
			}
			map = maps[canvas];
			GEvent.addListener(map,'moveend',function() {
				updateMarkers();
			});
			updateMarkers();
		};
	}
	// updateMarkers
	updateMarkers=function() {
		if(map.getInfoWindow().isHidden()){
			map.clearOverlays();//remove the existing points
			var bounds = map.getBounds();//create the boundary for the data
			var southWest = bounds.getSouthWest();
			var northEast = bounds.getNorthEast();
			var zoomStep = map.getZoom();
			var getVars = 'ne=' + northEast.toUrlValue() + '&sw=' + southWest.toUrlValue() + '&zoom=' + zoomStep;
			searchPosts(getVars);
		}
	}
	// searchPosts
	searchPosts = function(vars){
		var http = ajax_createRequestObject (); 
		http.open("GET", 'codes/designers/map.ajax.php?' + vars);
		http.onreadystatechange = function() {
			if(http.readyState == 4) {
				var json = eval('('+ http.responseText +')');
				displaypostsMarker(json);
			}
		}
		http.send(null);
	}
	// displaypostsMarker
	displaypostsMarker = function (json){
		var points = new Array();
		if(json){
			for(var i=0;i < json.markers.length;i++) {
				if(json.markers[i]['nbre_users'] > 1){
					baseIcon.iconSize=new GSize(30,26);
					baseIcon.shadowSize=new GSize(27,26);
					baseIcon.iconAnchor=new GPoint(5,5);
					baseIcon.infoWindowAnchor=new GPoint(5,1);
					var iconToLoad = '/media/map/map_multi_users.png';
					iconeWNB = new GIcon(baseIcon, iconToLoad, null, '/media/map/map_multi_users_shadow.png');				
				}
				else{
					baseIcon.iconSize=new GSize(20,20);
					baseIcon.shadowSize=new GSize(27,26);
					baseIcon.iconAnchor=new GPoint(5,5);
					baseIcon.infoWindowAnchor=new GPoint(5,1);
					var iconToLoad = '/media/users/' + json.markers[i]['avatar'];
					iconeWNB = new GIcon(baseIcon, iconToLoad, null, '/media/map/map_single_user_shadow.png');				
				}
				var params = '';
				points[i] = new GLatLng(json.markers[i]['lat'], json.markers[i]['lng'] );
				if(json.markers[i]['id_user']) params+="&id_user="+json.markers[i]['id_user']+"&nbre_users="+json.markers[i]['nbre_users'];
				var bounds = map.getBounds();//create the boundary for the data
				var southWest = bounds.getSouthWest();
				var northEast = bounds.getNorthEast();
				var zoomStep = map.getZoom();
				params += '&ne=' + northEast.toUrlValue() + '&sw=' + southWest.toUrlValue() + '&zoom=' + zoomStep;
				var marker = createMarker(points[i], params);
				map.addOverlay(marker);
			}
		}
	}
	// createMarkers
	createMarker = function(point, vars) {
	  var marker = new GMarker(point, iconeWNB);
	  GEvent.addListener(marker, 'click', function() {
		  currentMarker=marker;
		  displayContent(vars);
	  });
	  return marker;
	}
	// displayContent
	displayContent=function(vars) {
		var script = document.createElement('script');
    	script.setAttribute('id', 'contentSearch');
    	script.setAttribute('type', 'text/javascript');
		script.setAttribute('src', 'codes/designers/map.json.php?action=legend&callback=infowindow&' + vars);
    	document.documentElement.firstChild.appendChild(script);
	}
	// infowindow
	infowindow=function(json) {
		tabs=new Array();
		for(var i=0;i<json.length;i++) {
			var label = json[i].label ;
			var html = json[i].html ;
			tabs.push(new GInfoWindowTab(label,html));
		}
		currentMarker.openInfoWindowTabsHtml(tabs);
	}
    // trigger
	window.onload = function (){gmap('map_canvas');}
	window.onunload = function (){GUnload()};
