Map = function(_id) {

	this.Load = function(_id) {

		this.id = _id;

		var value = new String($('#Fieldtype_' + this.id).val());
		value = value.split('[===]');
		var map_settings = value[0];
		map_settings = map_settings.split('[---]');

		var latlng = new google.maps.LatLng(parseFloat(map_settings[0]), parseFloat(map_settings[1]));

		var myOptions = {
			zoom: parseInt(map_settings[2]),
			center: latlng,
			mapTypeId: map_settings[3]
		};

		this.gmap = new google.maps.Map(document.getElementById(this.id),myOptions);
		this.infowindow = new google.maps.InfoWindow({maxWidth: 400});
	
		this.markers = new Array();				

		map_clickListener(this);
	

		for(var i = 1;i<value.length;i++)
		{
			var latlng = value[i];
			latlng = latlng.split('[---]');
			
			var marker = new google.maps.Marker({
				position: new google.maps.LatLng(parseFloat(latlng[0]),parseFloat(latlng[1])),
				map: this.gmap,
				_map: this,
				info:latlng[2],
				draggable: false
			});


			this.markers[this.markers.length] = marker;

			marker_clickListener(marker);
		}

	}

	this.Load(_id);
}

function map_clickListener(map) {
	map.clickListener = google.maps.event.addListener(map.gmap, "click", function(event) {
		map.infowindow.close();
	});
}


function marker_clickListener(marker) {
	marker.clickListener = google.maps.event.addListener(marker, "click", function() {
		openInfoWindow(marker);
	});
}


function openInfoWindow(marker)
{
	if(marker.info.length > 0){
		var content = '<div class="GMap_info_window"><pre>' + marker.info + '</pre></div>';
		marker._map.infowindow.marker = marker;
		marker._map.infowindow.setContent(content);
		marker._map.infowindow.open(marker.map,marker);
	}
}

