var PhotoGallery = {
	init: function() {
		$('#thumbnails a').click( function() {
		        var imageSource = $(this).attr("href");
				PhotoGallery.showImage(imageSource);
				return false;
			}
		);
	},

	showImage: function(src) {
		$("#mainphoto img").fadeOut("normal").remove();
		var largeImage = new Image();
		$(largeImage).load(function() {
			$(this).hide();
			$("#mainphoto").append(this);
			$(this).fadeIn("slow");              
		});    
		$(largeImage).attr("src", src);                                                                               
	}
}



var Map = {
	init: function()
	{
		if ( document.getElementById("GoogleMap") )
		{
			$("#GoogleMap").load("/google_maps");
		}
	},
	
	
	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);
	}
}



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



$(document).ready(function() {
						// fix transparent pngs in IE6
						$('#hd').pngFix()						
						PhotoGallery.init();
						Map.init();
					});