window.addEvent('load', function(){
	document.getElementById("map_canvas").style.display = "block";
	initMapBiens();
});

function explode (delimiter, string, limit) {
    var emptyArray = {        0: ''
    };
    if (arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined') {        return null;
    }
 
    if (delimiter === '' || delimiter === false || delimiter === null) {
        return false;    }
 
    if (typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object') {
        return emptyArray;
    } 
    if (delimiter === true) {
        delimiter = '1';
    }
     if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        var splitted = string.toString().split(delimiter.toString());        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

function addMarker(path, w, h, x, y, map, title, position){
	var image = new google.maps.MarkerImage(path,
		new google.maps.Size(w, h),
		new google.maps.Point(0,0),
		new google.maps.Point(x, y)
	);
	var mark = new google.maps.Marker({
		position: position, 
		map: map, 
		icon: image, 
		title: title
	});
	return mark;
}

function initMapBiens() {

	document.getElementById("map_canvas").innerHTML = '<div class="loadinfo"><img src="css/images/ajax-loader.gif" /><br/>Chargement ...</div>';
	
	loadAjaxJson("routeForAjax.php?ctrl=Product&act=JsonMandatPoint", function(points) {
		var bounds = new google.maps.LatLngBounds();
		var myOptions = {
			zoom: 14,
			center: bounds.getCenter(),
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
		for(var i in points){
			var point = points[i];
			if(point.lat){
				var latlng = new google.maps.LatLng(point.lat, point.lon);
				bounds.extend(latlng);
				var wm = 50;var wa = 44;var wt = 60;
				if(point.maison!=0){
					var x = wm/2;var y = 37;
					if(point.appartement!=0 && point.terrain!=0)x=wm+(wa/2);
					if(point.appartement!=0 && point.terrain==0)x=(wm+wa)/2;
					if(point.appartement==0 && point.terrain!=0)x=(wm+wt)/2;
					var markerMaison = addMarker('generate_icone.php?nb='+point.maison+'&type=maison', wm, 29, x, y, map, point.maison+" maison(s) ра "+point.ville, latlng);
					
					google.maps.event.addListener(markerMaison, 'click', function() {
						var mytitle = this.getTitle();
						var elems = explode("(s) ра ", mytitle);
						loadAjaxData("GET", "routeForAjax.php?ctrl=Product&act=MapList&mapVille="+elems[1]+"&mapType=maison", document.getElementById("content"));
					});
				}
				if(point.appartement!=0){
					var x = wa/2;var y = 37;
					if(point.maison!=0 && point.terrain!=0)x=wa/2;
					if(point.maison!=0 && point.terrain==0)x=(wa-wm)/2;
					if(point.maison==0 && point.terrain!=0)x=(wa+wt)/2;
					var markerAppartement = addMarker('generate_icone.php?nb='+point.appartement+'&type=appartement', wa, 29, x, y, map, point.appartement+" appartement(s) ра "+point.ville, latlng);
					
					google.maps.event.addListener(markerAppartement, 'click', function() {
						var mytitle = this.getTitle();
						var elems = explode("(s) ра ", mytitle);
						loadAjaxData("GET", "routeForAjax.php?ctrl=Product&act=MapList&mapVille="+elems[1]+"&mapType=appartement", document.getElementById("content"));
					});
				}
				if(point.terrain!=0){
					var x = wt/2;var y = 37;
					if(point.maison!=0 && point.appartement!=0)x=-1*(wa/2);
					if(point.maison!=0 && point.appartement==0)x=(wt-wm)/2;
					if(point.maison==0 && point.appartement!=0)x=(wt-wa)/2;
					var markerTerrain = addMarker('generate_icone.php?nb='+point.terrain+'&type=terrain', wt, 29, x, y, map, point.terrain+" terrain(s) ра "+point.ville, latlng);
					
					google.maps.event.addListener(markerTerrain, 'click', function() {
						var mytitle = this.getTitle();
						var elems = explode("(s) ра ", mytitle);
						loadAjaxData("GET", "routeForAjax.php?ctrl=Product&act=MapList&mapVille="+elems[1]+"&mapType=terrain", document.getElementById("content"));
					});
				}
			}
		}
		
		map.fitBounds(bounds);
	});
}
