switch (document.domain) {
	case 'localhost:1234':
		var APIkey = 'ABQIAAAATMF0dwzxaAHFcR--KQHfmBSQhI7IgjIf0FGXvTrJEc5YDCnF-RTZicTXi1LLFQXanpz8Uqg7cpJT8g';
		break;
	case 'syzygyweb':
		var APIkey = 'ABQIAAAAjHHFtN7QvMvSbLXLRc3u1hQsOQw7zisGgQ36-jURlm2iSBEk8xTu73qoopjnBW2e9PM-TNpRQoNwRQ';
		break;
	case '172.16.100.122':
		var APIkey = 'ABQIAAAAjHHFtN7QvMvSbLXLRc3u1hSef_mwC_UJSKjWdQJs552kmIovWBTkZkRQ8ocqa4iJGfWqZdEBayEnsw';
		break;
	case 'www.syzygy.co.uk':
	case 'syzygy.co.uk':
		var APIkey = 'ABQIAAAAjHHFtN7QvMvSbLXLRc3u1hTD6JCXyWJUnnHuieFFA1ELBUnf3RQMhhHHxj9TsnBvrFC3EuO9CXBjtA';
		break;
	default: var APIkey = 'foo';
}

document.writeln('\n\t<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='+APIkey+'" type="text/javascript"></script>\n');

var Gmap = function() {
	var location = {lat: null, lng: null, zoom: null, showPin: false};
	var map, point;

    
    function handleNoFlash(errorCode) {
      if (errorCode == 603) {
        alert("Error: Flash doesn't appear to be supported by your browser");
        return;
      }
    } 
    
	function initGmap(elem) {
		location = getGmapParams(elem);

		map = new GMap2($(elem)[0]);
		map.addControl(new GSmallMapControl());
		
		//var svPanorama = new GStreetviewPanorama($(elem)[0]);
		//var pov = {yaw:370.64659986187695,pitch:-20};
      	//svPanorama.setLocationAndPOV(getGmapPoint(location.lat, location.lng), pov);
      	//GEvent.addListener(svPanorama, "error", handleNoFlash);
		
		
		//maps.GMapOptions();
		map.addControl(new GSmallMapControl());
		map.checkResize();
		if (location.showPin) createPoint(location.lat, location.lng);
		
		map.setCenter(getGmapPoint(location.lat, location.lng), location.zoom);
		
		$(window).unload(function() {  //register unload handler
			if (typeof GUnload !== 'undefined') GUnload();
		});
	};
	
	function createPoint(lat,lng, n) {
		n = (n !== undefined) ? n : false;
		var point = new GLatLng(lat, lng);
		var markerOptions = {};
		if (n !== false) {
			var letterIcon = new GIcon(G_DEFAULT_ICON);
			if (typeof n == 'string') {
				letterIcon.image = 'http://maps.google.com/intl/en_ALL/mapfiles/marker_white' + n.toUpperCase() + '.png';
				/*if (n == '') {
					letterIcon.image = '/img/mazda_icon.png';
					letterIcon.printImage = '/img/mazda_icon.gif';
					letterIcon.mozPrintImage  = '/img/moz_mazda_icon.gif';
				}*/
			} else {
				letterIcon.image = 'http://maps.google.com/intl/en_ALL/mapfiles/marker' + String.fromCharCode("A".charCodeAt(0) + n) + '.png';
			}
			markerOptions = { icon: letterIcon };
		}
		var p = new GMarker(point, markerOptions);
		map.addOverlay(p);
		return p;
	};
	function getGmapParams(elem) {
		var params = $(elem).children('code');
		if (params.length) {
			return {
				lat: parseFloat(params.find('var.lat').html()),
				lng: parseFloat(params.find('var.lng').html()),
				zoom: (params.find('var.zoom').length) ? parseInt(params.find('var.zoom').html(), 10) : 1,
				showPin: (params.find('var.showPin').length) ? parseBool(params.find('var.showPin').html()) : false
			};			
		} else {
			return false;
		}
	};
	function getGmapPoint(lat,lng) {
    	return new GLatLng(lat, lng);
	};
	return {
		init: function(elem) {
			initGmap(elem);
		},
		isEnabled: function(){
			if (typeof window.GBrowserIsCompatible == 'undefined' || !GBrowserIsCompatible()) return false;
			return true;
		}
	};
}();

function parseBool(bol){
	if (bol.toLowerCase() == 'false') return false;
	return true;
};