var SiteConnect = SiteConnect || {};

SiteConnect.PE = {
	init: function() {
		if ( jQuery.fn.equalHeights )
			$('.equal-heights .yui-u').equalHeights();
	}
}

SiteConnect.PhotoGallery = {
	init: function() {
		this.initGallery();
		this.initThumbs();
	},
	
	initGallery: function() {
		$("#photos").hover(
			function() {
				$.browser.msie ? $("#thumbnails").show() : $("#thumbnails").fadeIn("normal");
				$.browser.msie ? $("#morephotos").hide() : $("#morephotos").fadeOut("normal");
			}, function() {
				$.browser.msie ? $("#thumbnails").hide() : $("#thumbnails").fadeOut("normal");
				$.browser.msie ? $("#morephotos").show() : $("#morephotos").fadeIn("normal");
			});
	},
	
	initThumbs: function() {
		$('#thumbnails a').click( function() {
		        var imageSource = $(this).attr("href");
				SiteConnect.PhotoGallery.showImage(imageSource);
				return false;
			}
		);
	},
	
	showImage: function(src) {
		var oldImg = $("#mainphoto img");
		var newImage = new Image();
		
		$.browser.msie ? $('#loader').show() : $('#loader').fadeIn("slow");
		$(newImage).load(function() {
			$("#mainphoto").prepend($(this));
			$.browser.msie ? $('#loader').hide() : $('#loader').fadeOut("slow");
			$(this).hide().fadeIn("slow");
			$(oldImg).fadeOut("slow", function() {
				$(this).remove();
			});
		});
		$(newImage).attr("src", src);
	}
}



SiteConnect.Map = {
	init: function()
	{
		if ( document.getElementById("GoogleMap") )
		{
			$("#GoogleMap").load("/google_maps");
		}
	},
	
	
	loadMaps: function()
	{
		if ( !document.getElementById("GoogleMap") )
			return;
		
		google.load("maps", "2", {"callback" : SiteConnect.Map.createMap});
	},
	
	
	createMap: function()
	{
		if ( google.maps.BrowserIsCompatible() )
		{
			SiteConnect.Map.map = new google.maps.Map2(document.getElementById("GoogleMapMap"));
			
			var mapCenter = new google.maps.LatLng(MapOptions.default_lt, MapOptions.default_ln);
			SiteConnect.Map.map.setCenter(mapCenter, MapOptions.default_zm);
			
			SiteConnect.Map.map.addControl( new google.maps.LargeMapControl() );
			SiteConnect.Map.map.addControl( new google.maps.MapTypeControl() );
			
			SiteConnect.Map.addPoints(MapOptions.points);
			
			$('GoogleMapWrap').removeClass('loading');
			
			$(window).bind('unload', google.maps.Unload);
			
			
			google.maps.Event.addListener(SiteConnect.Map.map, "dragend", function() {
//				SiteConnect.Map.setMapPoint( SiteConnect.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);
		
		var lat = RegExp.$1;
		var lon = RegExp.$2;
		
		$('#Lat').val(lat);
		$('#Lng').val(lon);
	}
}


SiteConnect.Forms = {
	init: function() {
	    $('.clear-on-focus').focus( function() {
			if ( this.value == this.title )
				this.value = '';
	    });
	}
}


$(document).ready(function() {
						SiteConnect.PE.init();
						SiteConnect.PhotoGallery.init();
						SiteConnect.Map.init();
						SiteConnect.Forms.init();
					});
