_map = function() {
	return {
		
		/***  Variables  ***/
		map				: null,
		markerClusterer	: null,
		data			: null,
		links			: {},
		
		/***  Methods  ***/
		init: function() {
			_map.map = yiimap;
			_map.markerClusterer = new MarkerClusterer(_map.map, { }, { maxZoom: 13, gridSize: 50 });
			
			_map.getData();
		},
		
		getData: function() {
			var params = {};
			
			var url = _map.links.listLink;
			
			$.getJSON(url, params, function(data) {
				if (data.error) {
					return;
				}
				
				_map.data = data;
				
				_map.doUpdateMap();
			});
		},
		
		doUpdateMap: function() {
			_map.markerClusterer.clearMarkers();
			
			var markers = [];
			for (var i = 0; i < _map.data.results.length; i++) {
				var tone = _map.data.results[i];
				if (tone.latitude && tone.longitude) {
					var latlng = new GLatLng(tone.latitude, tone.longitude);
					var marker = new GMarker(latlng);
					
					marker.tone = tone;
					marker.tone.showLink = _map.links.showLink + "/" + tone.id;
					
					markers.push(marker);
				}
			}
			
			_map.markerClusterer.addMarkers(markers);
			
			$("#mapcount").html(markers.length + " local ringtones <span>Now on a Map!</span>");
		}
		
	};
}();