var engine = {}

function initialize() {
	if (GBrowserIsCompatible()) {
		var canvas = document.getElementById("map_canvas");
		var map = new GMap2(canvas);
		
		// map.setCenter(new GLatLng(30.307938, -104.019072), 14);
		map.setCenter(new GLatLng(40.7046, -74.0169), 14);
		map.setMapType(G_SATELLITE_MAP);
		map.disableDragging();
		map.disableDoubleClickZoom();
		
		canvas.style.position = "fixed";
		
		engine.recenter = function(lat, lng) {
			map.clearOverlays();
			
			if (engine.timeout) {
				clearTimeout(engine.timeout);
				engine.timeout = null;
			}
			
			var inputCoordinates = new GLatLng(lat, lng);
			var size = map.getSize();
			var center = new GPoint(size.width / 2, size.height / 2);
			var delta = new GPoint(875 - center.x, 0); // y - center.y
			
			
			var pixel = map.fromLatLngToContainerPixel(inputCoordinates);
			var transformedCoordinates = map.fromContainerPixelToLatLng(
				new GPoint(pixel.x - delta.x, pixel.y - delta.y));
			
			map.panTo(transformedCoordinates);
			
			var icon = new GIcon();
			icon.image = "http://static.sodiumdreams.com/resources/circ50.png";
			icon.iconSize = new GSize(50, 50);
			icon.iconAnchor = new GPoint(25, 25);
			
			var marker = new GMarker(inputCoordinates, {
					icon: icon,
					draggable: false,
					clickable: false
				}
			);
			engine.timeout = setTimeout(function() { 
				map.addOverlay(marker) 
			}, 500);
		}
	}
}

function getGeohashFromTags(element) {
	$(element).children('.tag').each(
		function(idx, elt) {
			var tags = this.className.split(/\s+/);
			var len = tags.length;
			for (var i = 0; i < len; i++) {
				if (tags[i].substr(0, 4) === 'geo-') {
					return tags[i].substr(4);
				}
			}
		}
	);
}

function centerOnTag() {
	$(
		function() {
			$('.tag').each(
				function(idx, elt) {
					var tags = this.className.split(/\s+/);
					var len = tags.length;
					for (var i = 0; i < len; i++) {
						if (tags[i].substr(0, 4) === 'geo-') {
							var point = decodeGeoHash(tags[i].substr(4));
							// alert(point.latitude + ', ' + point.longitude);
							engine.recenter(point.latitude[0], point.longitude[0]);
						}
					}
				}
			);
		}
	);
}

$(
	function () {
		$('#page_nav a').hover(
			function (evt) {
				var target = $(evt.target);
				var name = target.attr('name');
				target.attr('src', 'http://static.sodiumdreams.com/resources/' + name + '-hov.png');
			},
			function (evt) {
				var target = $(evt.target);
				var name = target.attr('name');
				target.attr('src', 'http://static.sodiumdreams.com/resources/' + name + '-up.png');
			}
		);
		
		$('#page_nav a').mousedown(
			function (evt) {
				var target = $(evt.target);
				var name = target.attr('name');
				target.attr('src', 'http://static.sodiumdreams.com/resources/' + name + '-dn.png');
			}
		);
		
		$('.toggle').click(
			function (evt) {
				var target = $(evt.target).parent().parent().siblings('.toggled');
				
				if (target.hasClass('hidden')) {
					target.show('500');
				} else {
					target.hide('500');
				}
				
				target.toggleClass('hidden');
				return false;
			}
		);
	}
);

