$extend( TBM, {

	initMaps: function()
	{
		var googleApiKey = '';
		
		switch ( top.location.host )
		{
			case 'druadan.puppy.bluetree8.com.au':
				googleApiKey = 'ABQIAAAAq3u7EBMySLnL1uc1Z74vnxRuRtAIgtSQZQJfCm_68VfnmsiKcRTZF83BHRBvfhpD3uGnHPU6XWWksQ';
			break;
			
			case 'tastefood.net.au':
				googleApiKey = 'ABQIAAAAq3u7EBMySLnL1uc1Z74vnxTROraD0RyaFAwRB1VdwPcsfuo6DhQQNp4kyGGFjlliOFmb-qGCHDaqaw';
			break;
			
			case 'www.tastebaguette.com.au':
				googleApiKey = 'ABQIAAAAq3u7EBMySLnL1uc1Z74vnxRrASOI8x5KPw5NNZ8TFETxyqt8ZxTQIpHCSQiK6CW21Y8EujYmDNd7qw';
			break;
			
			case 'www.tastebaguette.com':
				googleApiKey = 'ABQIAAAAq3u7EBMySLnL1uc1Z74vnxS_XWVhFgEks9gFYSl2TVg05eqBHxTaNJllRASegiE9HpwnAg2uLSSPIw';
			break;

			default:
				// If we don't have a valid API key to use, don't bother or google will alert an error
				$log( 'URL not configured to use Google Maps!' );
				return;
		}
		
		Asset.javascript( "http://maps.google.com/maps?file=api&v=2.x&key=" + googleApiKey + "&c&async=2&", { type: 'text/javascript', language: 'javascript' } );
		
		var checkGoogleReady = function() {
		
			// $log( 'Checking if Google Maps is ready to use...' );
			
			if ( window.GMap && TBM.onGoogleReady )
				TBM.onGoogleReady();
			else
				checkGoogleReady.delay( 100 );
							
		}.bind( this );
		
		( function() {
			checkGoogleReady();
		}).delay( 500 );
		
	},
	
	onGoogleReady: function() {
	
		$$( '.mapLocation' ).each( function(i) {
		
			var location = i.get( 'text' ).clean();
			var element = i.getParent().getElement( '.map' );
			
			var map = null;
		    var geocoder = null
		
		    if ( GBrowserIsCompatible() )
			{
		        map = new GMap2( element );
		    	geocoder = new GClientGeocoder();
		    }
		
			$log( 'Requesting map of location: ' + location );
		    
		    if ( geocoder ) {
		    	geocoder.getLatLng( location, function(point) {
		    	    if ( !point )
					{
		    			$log( 'Warning: Location not found.' );
		    	    }
					else
					{
			    		var marker = new GMarker( point );
			    		map.setCenter( point );
			    		map.addOverlay( marker );
			    		map.addControl( new GSmallMapControl() );
			    		map.setZoom( 15 );
		    	    }
		    	});
		    }

		});
	}
	
});

window.addEvent( 'domready', function() {

	TBM._initHooks.push( TBM.initMaps() );

});