	ICON_HOUSE = CreateGIcon('pin_bien.png');
	ICON_HOUSE_XS = CreateGIcon('pin_XS.png');
	ICON_BABY = CreateGIcon('pin_creche.png');
	ICON_KID = CreateGIcon('pin_maternelle.png');
	ICON_SMALL_SCHOOL = CreateGIcon('pin_elementaire.png');
	ICON_COLLEGE = CreateGIcon('pin_college.png');
	ICON_HIGH_SCHOOL = CreateGIcon('pin_lycee.png');
	ICON_STADE = CreateGIcon('pin_stade.png');
	ICON_SUPERMARKET = CreateGIcon('pin_supermarche.png');
	ICON_HOSPITAL = CreateGIcon('pin_hopital.png');
	ICON_POSTE = CreateGIcon('pin_poste.png');

	var map;
	var TypeToMarkers = {};
	TypeToMarkers['HOUSE'] = [];
	TypeToMarkers['HOUSE_XS'] = [];
	TypeToMarkers['BABY'] = [];
	TypeToMarkers['KID'] = [];
	TypeToMarkers['SMALL_SCHOOL'] = [];
	TypeToMarkers['COLLEGE'] = [];
	TypeToMarkers['HIGH_SCHOOL'] = [];
	TypeToMarkers['STADE'] = [];
	TypeToMarkers['SUPERMARKET'] = [];
	TypeToMarkers['HOSPITAL'] = [];
	TypeToMarkers['POSTE'] = [];

	var TypeToIcon = {};
	TypeToIcon['HOUSE'] = ICON_HOUSE;
	TypeToIcon['HOUSE_XS'] = ICON_HOUSE_XS;
	TypeToIcon['BABY'] = ICON_BABY;
	TypeToIcon['KID'] = ICON_KID;
	TypeToIcon['SMALL_SCHOOL'] = ICON_SMALL_SCHOOL;
	TypeToIcon['COLLEGE'] = ICON_COLLEGE;
	TypeToIcon['HIGH_SCHOOL'] = ICON_HIGH_SCHOOL;
	TypeToIcon['STADE'] = ICON_STADE;
	TypeToIcon['SUPERMARKET'] = ICON_SUPERMARKET;
	TypeToIcon['HOSPITAL'] = ICON_HOSPITAL;
	TypeToIcon['POSTE'] = ICON_POSTE;

	var MarkToType = {};
	MarkToType['MARK_HOUSE'] = 'HOUSE';
	MarkToType['MARK_BABY'] = 'BABY';
	MarkToType['MARK_KID'] = 'KID';
	MarkToType['MARK_SMALL_SCHOOL'] = 'SMALL_SCHOOL';
	MarkToType['MARK_COLLEGE'] = 'COLLEGE';
	MarkToType['MARK_HIGH_SCHOOL'] = 'HIGH_SCHOOL';
	MarkToType['MARK_STADE'] = 'STADE';
	MarkToType['MARK_SUPERMARKET'] = 'SUPERMARKET';
	MarkToType['MARK_HOSPITAL'] = 'HOSPITAL';
	MarkToType['MARK_POSTE'] = 'POSTE';


	function CreateMarker(lat, lng, _type, htmlContent) {
		icon = TypeToIcon[_type];
		var marker = new GMarker(new GLatLng(lat, lng),icon);
		marker.bindInfoWindowHtml(htmlContent);
		TypeToMarkers[_type].push(marker);
		map.addOverlay(marker);
		return marker;
	}

	function CreateGIcon(img) {
		var icon = new GIcon();
		icon.image = '/images/pict/'+img;
		icon.shadow = '/images/pict/shadow.png';
		icon.iconSize = new GSize(45, 45);
			icon.shadowSize = new GSize(65, 50);
			icon.iconAnchor = new GPoint(18, 42);
			icon.infoWindowAnchor = new GPoint(15, 5);
		return icon;
	}



	function RemoveMarker(marker) {
		map.removeOverlay(marker);
	}

	function RemoveMarkersOfType(_type) {
		lst = TypeToMarkers[_type];
		for (var i = 0; i < lst.length; i++) {
				RemoveMarker(lst[i]);
			}
		TypeToMarkers[_type] = [];
	}

	function handleMarkJson(_type) {
		var res = function(json) {
			for (var i = 0; i < json.length; i++) {
				var mark = json[i];
				var htmlContent = "<div>"+mark.description+"</div>";
				CreateMarker(mark.y, mark.x, _type, htmlContent);
			}
		}
		return res;
	}

	var markSelectorClicked = function() {
		_type = MarkToType[this.id];		
		if (this.checked) {
			var center = map.getCenter();
			var url = '/wadReadGeoloc.php?type='+_type+'&lon='+center.lng()+'&lat='+center.lat();			
			jQuery.getJSON(url, handleMarkJson(_type));
		}
		else {
			RemoveMarkersOfType(_type);
		}
	}

	function init_carto(clag, clng) {
		map = new GMap2(document.getElementById("gmap"));
		map.setCenter(new GLatLng(clag, clng), 14);
		map.setUIToDefault();		
		jQuery('.marker_selector').bind('click', markSelectorClicked);

	}
	
	