// Declare B&W Map Types

		var runOnLocalhost = false;
		//var runOnLocalhost = true;

		var tileServer = 0;
		var tileVersion = 2.39;
		
		var cycleAddresses = false;
		//var cycleAddresses = true;
		
		var baseAddress;
		//baseAddress = 'tin06/';
		if(runOnLocalhost == true)
			baseAddress = 'localhost/';
		else
			baseAddress = '66.129.71.21/';
		
		var applicationDirectory;
		//var applicationDirectory = 'GFXTest/';
		if(runOnLocalhost == true)
			applicationDirectory = 'HotBlack/';
		else
			applicationDirectory = '';

		// Define Projection objects
		var BlackAndWhiteProjection = new GMercatorProjection(17);

		// Define Copyrights
		copyrights = new GCopyrightCollection('Map Imagery:');
		
		//var test = true;
		var test = false;

		// Define Tilesets
		var BlackAndWhiteTiles = new GTileLayer(copyrights,0,17);
		BlackAndWhiteTiles.getTileUrl = function(tile,zoom) {
			tileServer++;
			if(tileServer > 3) tileServer = 0;

			var standardUrl = G_NORMAL_MAP.getTileLayers()[0].getTileUrl(tile, zoom);
			//var satelliteUrl = G_SATELLITE_MAP.getTileLayers()[0].getTileUrl(tile, zoom);
			//var hybridUrl = G_HYBRID_MAP.getTileLayers()[0].getTileUrl(tile, zoom);

			// Standard "Normal" URL's appear to be like this:
			// http://mt0.google.com/mt?n=404&v=ap.41&x=127&y=85&zoom=9
			// e.g. 'http://mt0.google.com/mt?n=404&v=ap.41&x=' + tile.x + '&y=' + tile.y +'&zoom=' + (17 - zoom) + '';

			//var outputUrl = 'http://tin06/GFXTest/Greyscale.ashx?Filename=' + escape(standardUrl);
			//var outputUrl = 'http://www' + tileServer.toString() +'.tin06/GFXTest/Greyscale.ashx?Filename=' + escape(standardUrl);
			var outputUrl = 'http://'
			if(cycleAddresses == true)
				outputUrl += 'www' + tileServer.toString() + '.';
			
			outputUrl += baseAddress;
			outputUrl += applicationDirectory;
			
			outputUrl += 'Greyscale.ashx';
			
			outputUrl += '?Filename=' + escape(standardUrl);
			
			if(test == true)
			{
				alert(outputUrl);
				test == false;
			}
			
			return outputUrl;
		};
		
		BlackAndWhiteTiles.getCopyright = function(tile, zoom) {
			return G_NORMAL_MAP.getTileLayers()[0].getCopyright(tile,zoom);
		};
		BlackAndWhiteTiles.isPng = function() { return false; }
		BlackAndWhiteTiles.getOpacity = function() { return 1.0; }

		var BlackAndWhiteSatelliteTiles = new GTileLayer(copyrights,0,17);
		BlackAndWhiteSatelliteTiles.getTileUrl = function(tile, zoom) {
			tileServer++;
			if(tileServer > 3) tileServer = 0;

			var satelliteUrl = G_SATELLITE_MAP.getTileLayers()[0].getTileUrl(tile,zoom);

			//return 'http://tin06/GFXTest/Greyscale.ashx?Filename=' + escape(satelliteUrl);
			return 'http://www' + tileServer.toString() + '.tin06/GFXTest/Greyscale.ashx?Filename=' + escape(satelliteUrl);
		}
		BlackAndWhiteSatelliteTiles.getCopyright = function(tile,zoom) {
			return G_SATELLITE_MAP.getTileLayers()[0].getCopyright(tile, zoom);
		};
		BlackAndWhiteSatelliteTiles.isPng = function() { return false; }
		BlackAndWhiteSatelliteTiles.getOpacity = function() { return 1.0; }

		var BlackAndWhiteHybridTiles = new GTileLayer(copyrights,0,17);
		BlackAndWhiteHybridTiles.getTileUrl = function(tile,zoom) {
			tileServer++;
			if(tileServer > 3) tileServer = 0;

			var hybridUrl = G_HYBRID_MAP.getTileLayers()[0].getTileUrl(tile,zoom);

			//var outputUrl = 'http://tin06/GFXTest/Greyscale.ashx?Filename=' + escape(hybridUrl);
			var outputUrl = 'http://www' + tileServer.toString() + '.tin06/GFXTest/Greyscale.ashx?Filename=' + escape(hybridUrl);
			return outputUrl;
		};
		BlackAndWhiteHybridTiles.getCopyright = function(tile,zoom) {
			return G_HYBRID_MAP.getTileLayers()[0].getCopyright(tile,zoom);
		};
		BlackAndWhiteHybridTiles.isPng = function() { return false; };
		BlackAndWhiteHybridTiles.getOpacity = function() { return 1.0; };

		var BlackAndWhiteHybridOverlayTiles = new GTileLayer(copyrights,0,17);
		BlackAndWhiteHybridOverlayTiles.getTileUrl = function(tile, zoom) { 
			tileServer++;
			if(tileServer > 3) tileServer = 0;

			var hybridOverlayUrl = G_HYBRID_MAP.getTileLayers()[1].getTileUrl(tile, zoom);
			//var outputUrl = 'http://tin06/GFXTest/Greyscale.ashx?Filename=' + escape(hybridOverlayUrl) + '&FileExtension=png';
			var outputUrl = 'http://www' + tileServer.toString() + '.tin06/GFXTest/Greyscale.ashx?Filename=' + escape(hybridOverlayUrl) + '&FileExtension=png';
			var output = document.getElementById('output');

			if(output)
				output.innerHTML += '<br/>' + outputUrl;

			return outputUrl;
		};
		BlackAndWhiteHybridOverlayTiles.getCopyright = function(tile, zoom)
		{
			return G_HYBRID_MAP.getTileLayers()[1].getCopyright(tile, zoom);
		};
		BlackAndWhiteHybridOverlayTiles.isPng = function() { return G_HYBRID_MAP.getTileLayers()[1].isPng(); }
		BlackAndWhiteHybridOverlayTiles.getOpacity = function() { return G_HYBRID_MAP.getTileLayers()[1].getOpacity(); }

		// Define Map Types
		var G_BLACK_AND_WHITE_TYPE = new GMapType(
			[BlackAndWhiteTiles],
			BlackAndWhiteProjection,
			/*'Black And White',*/ 'Map',
			{
				//shortName:'B&W',
				shortName:'Map',
				tileSize:256,
				maxResolution:17,
				minResolution:0
			}
		);

		var G_BLACK_AND_WHITE_SATELLITE = new GMapType(
			[BlackAndWhiteSatelliteTiles],
			BlackAndWhiteProjection,
			'B&W Satellite',
			{
				shortName:'B&WSAT',
				tileSize:256,
				maxResolution:17,
				minResolution:0
			}
		);

		var G_BLACK_AND_WHITE_HYBRID = new GMapType(
			[BlackAndWhiteHybridTiles, BlackAndWhiteHybridOverlayTiles],
			BlackAndWhiteProjection,
			'B&W Hybrid',
			{
				shortName:'B&WHYB',
				tileSize:256,
				maxResolution:17,
				minResolution:0
			}
		);

/*

	Example Usage:-
	
	map.addMapType(G_BLACK_AND_WHITE_TYPE);
	map.addMapType(G_BLACK_AND_WHITE_SATELLITE);
	map.addMapType(G_BLACK_AND_WHITE_HYBRID);

	
	//map.setMapType(G_SATELLITE_TYPE);
	//alert(G_HYBRID_MAP.getTileLayers().length.toString());
	map.setMapType(G_BLACK_AND_WHITE_TYPE);

*/