function q(str){window.alert(str);}

var Map = {
	init: function()
	{
		if ( !document.getElementById("GoogleMap") )
			return;
		
		Map.loadMaps();
	},
	
	
	loadMaps: function()
	{
		if ( !document.getElementById("GoogleMap") )
			return;
		
		google.load("maps", "2", {"callback" : Map.createMap});
	},
	
	
	createMap: function()
	{
		if ( google.maps.BrowserIsCompatible() )
		{
			Map.map = new google.maps.Map2(document.getElementById("GoogleMapMap"));
			
			var mapCenter = new google.maps.LatLng(MapOptions.default_lt, MapOptions.default_ln);
			Map.map.setCenter(mapCenter, MapOptions.default_zm);
			
			Map.map.addControl( new google.maps.LargeMapControl() );
			Map.map.addControl( new google.maps.MapTypeControl() );
			
			Map.addPoints(MapOptions.points);
			
			$('GoogleMapWrap').removeClass('loading');
			
			$(window).bind('unload', google.maps.Unload);


			google.maps.Event.addListener(Map.map, "dragend", function() {
//				Map.setMapPoint( Map.map.getCenter().toString() );
			});
				
		}
	},


	addPoints: function(points)
	{
		for ( var i = 0; i < points.length; i++ )
		{
			var point = new google.maps.LatLng(points[i][0], points[i][1]);
			var popuphtml = points[i][2] ;
			var marker = this.createMarker(point, popuphtml);
			this.map.addOverlay(marker);
			if (points[i][3]) marker.openInfoWindowHtml(points[i][2]);
		}
	},
	
	
	createMarker: function(point, popuphtml, windowOpen)
	{
		var popuphtml = "<div class=\"GoogleMapPopup\">" + popuphtml + "<\/div>";
		var marker = new google.maps.Marker(point);
		google.maps.Event.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(popuphtml);
		});
		return marker;
	},
	
	
	setMapPoint: function(p)
	{
		re = /^\(([\d\.]+), ([\d\.]+)\)$/;
		
		var point = p.match(re);
		
		document.getElementById('Lat').value = RegExp.$1;
		document.getElementById('Lng').value = RegExp.$2;
		
		$('Lat').attr('value', RegExp.$1);
		$('Lng').attr('value', RegExp.$2);
	}
}


$(document).ready(function() {
						Map.init();
					});