function showRemark(){
	document.getElementById("remark").innerHTML="The underlying 128 megapixel night imagery from NASA uses a map projection different from Google Maps'. The two are aligned near the NYC-Madrid-Tokyo axis only.";
}


var map= null;
var maps= null;

function getWindowHeight() {
	if (window.self && self.innerHeight) {
		return self.innerHeight;
	}
	if (document.documentElement &&	document.documentElement.clientHeight) {
		return document.documentElement.clientHeight;
	}
	return 0;
}

function resizeMap() {
	var offset= 0;
	for (var elem= document.getElementById("map"); elem!=null; elem= elem.offsetParent) {
		offset+= elem.offsetTop;
	}
	var windowHeight= getWindowHeight();
	var height= windowHeight - offset - 20;
	if (height >= 0) {
		document.getElementById("map").style.height= height + "px";
	}
}

function updateTheme(theme_i){
	if (maps!=null){
		map.addControl(maps);
	}
}


function onLoad() {
	if (GBrowserIsCompatible()) {
		map= new GMap2(document.getElementById("map"));
		//map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());
		//map.addControl(new GScaleControl());
		resizeMap();

		mapEarthNight();
	}
    	else {
		alert("Sorry, this map is not compatible with your browser.");
    	}
}

function clearMaps(){
	mapt= map.getMapTypes();
	for (i=0; i<4; i++){
	    map.removeMapType(mapt[i]);
	}
	while (G_DEFAULT_MAP_TYPES.length>0)
		G_DEFAULT_MAP_TYPES.pop();
	map.removeMapType(G_SATELLITE_MAP);
	//map.removeMapType(G_NORMAL_MAP);
	//map.removeMapType(G_HYBRID_MAP);
	
	if (maps!=null){
		map.removeControl(maps);
	}
	//maps= new GMapTypeControl();
}

function cloneMapType(maptype){
	newtype= new GMapType(maptype.getTileLayers(), maptype.getProjection(), "");
	newtype.getErrorMessage= function(){ return "No data available"; }
	newtype.getName= maptype.getName;
	newtype.getMinimumResolution= maptype.getMinimumResolution;
	newtype.getMaximumResolution= maptype.getMaximumResolution;
	newtype.getProjection= maptype.getProjection;
	newtype.getCopyright= maptype.getCopyright;
	newtype.getLinkColor= maptype.getLinkColor;
	newtype.getTextColor= maptype.getTextColor;
	//layers:
	newtype.getTileLayers= maptype.getTileLayers;
	return newtype;
}


function mapEarthNight() {
	clearMaps();
		
	//day:
	daymap= cloneMapType(G_SATELLITE_MAP);
	daymap.getName= function() { return "Day"; }
	daymap.getMaximumResolution= function() { return 20; }
	daymap.getTileLayers= function(){ return [G_SATELLITE_MAP.getTileLayers()[0]];}
	//install:
	//G_DEFAULT_MAP_TYPES.push(daymap);
	//map.addMapType(daymap);

	//night:
	nightmap= cloneMapType(G_NORMAL_MAP);
	nightmap.getName= function() { return "Europa"; }
	nightmap.getMinimumResolution= function() { return 0; }
	nightmap.getMaximumResolution= function() { return 6; }
	nightmap.getLinkColor= function() {return "white";}
	nightmap.getTextColor= function() {return "white";}
	//layers:
	earthlights= new GTileLayer(new GCopyrightCollection(), 0, 6);
	//earthlights.getCopyright= function() {return "2006 Peter Pesti - Imagery &copy;2000 NASA";}
	earthlights.isPng= function() { return false; }
	earthlights.baseUrls= ["./t-e2/"];
	earthlights.getTileUrl= function(a, z) {
    		var c= (a.x + a.y) % this.baseUrls.length;
    		return this.baseUrls[c]+z+"/"+a.x+"-"+a.y+".jpeg";
	} 
	earthlights.getOpacity= function() { return 1; }
	var nightlayers= [earthlights];
	nightmap.getTileLayers= function() { return nightlayers; }

	//dusk:
	duskmap= cloneMapType(nightmap);
	duskmap.getName= function() { return "Dusk"; }
	//layers:
	earthlights2= new GTileLayer(new GCopyrightCollection(), 0, 6);
	//earthlights2.getCopyright= earthlights.getCopyright;
	earthlights2.isPng= earthlights.isPng;
	earthlights2.baseUrls= earthlights.baseUrls;
	earthlights2.getTileUrl= earthlights.getTileUrl;
	earthlights2.getOpacity= function() { return 0.6; }
	var dusklayers= [G_HYBRID_MAP.getTileLayers()[0], earthlights2];
	duskmap.getTileLayers= function() { return dusklayers; }
	//install:
	//G_DEFAULT_MAP_TYPES.push(duskmap);
	//map.addMapType(duskmap);

	//G_DEFAULT_MAP_TYPES.push(nightmap);
	map.addMapType(nightmap);



	//day+map:
	daymap2= cloneMapType(G_HYBRID_MAP);
	daymap2.getName= function() { return "Day map"; }
	daymap2.getMaximumResolution= function() { return 20; }
	daymap2.getTileLayers= function(){ return [G_HYBRID_MAP.getTileLayers()[0], G_HYBRID_MAP.getTileLayers()[1]];}
	//G_DEFAULT_MAP_TYPES.push(daymap2);
	//map.addMapType(daymap2);

	//dusk+map:
	duskmap2= cloneMapType(nightmap);
	duskmap2.getName= function() { return "Dusk map"; }
	var dusklayers2= [dusklayers[0], dusklayers[1], G_HYBRID_MAP.getTileLayers()[1]];
	duskmap2.getTileLayers= function() { return dusklayers2; }
	//install:
	//G_DEFAULT_MAP_TYPES.push(duskmap2);
	//map.addMapTyle(duskmap2);

	//night+map:
	nightmap2= cloneMapType(nightmap);
	nightmap2.getName= function() { return "Night map"; }
	//layers:
	var nightlayers2= [earthlights, G_HYBRID_MAP.getTileLayers()[1]];
	nightmap2.getTileLayers= function() { return nightlayers2; }
	//install:
	//G_DEFAULT_MAP_TYPES.push(nightmap2);
	//map.addMapType(nightmap2);
	
	updateTheme(0);
	map.setCenter(new GLatLng(0, 0), 2, nightmap);	
}
