if (document.domain.indexOf("wunderground.com") >= 0) {
	document.domain = "wunderground.com";
}

/**
	gmap_everything.js
	Weather Underground data onto the map
	Author: Yaniv Zimet
	Copyright 2007-2009 Weather Underground, Inc.
*/

var googlemap;
var wundermap;
//<![CDATA[

function xGetElementById(e) {
	if(typeof(e)!='string') return e;
	if(document.getElementById) e=document.getElementById(e);
	else if(document.all) e=document.all[e];
	else e=null;
	return e;
}

function setupAd(){
	var options = {
		'format': google.ads.HALF_BANNER,
		'ad_slot': '1275309138',
		'ad_channel': '6446528445'
	};
	var ad = new google.ads.MapAd(googlemap, 'pub-0983527230240367', 'adblock', options);
}

function LoadMap(lat,lon,zoom,units,typeAbbr,debug,top,opts) {
	googlemap = new GMap2(document.getElementById("map"));
	googlemap.addMapType(G_PHYSICAL_MAP);
	if (is_defined('WUMAPS')) {
		googlemap.addMapType(WUMAPS);
	}
	googlemap.addControl(new GLargeMapControl());
	googlemap.addControl(new GMapTypeControl());
	googlemap.addControl(new GScaleControl());

	
	// choose a map type
	var type;
	switch (typeAbbr) {
		case "map":
			type = G_NORMAL_MAP;
			break;
		case "sat":
			type = G_SATELLITE_MAP;
			break;
		case "hyb":
			type = G_HYBRID_MAP;
			break;
		case "ter":
			type = G_PHYSICAL_MAP;
			break;
		case "wui":
			if (is_defined('WUMAPS')) {
				type = WUMAPS;
				break;
			}
		default:
			var type = G_HYBRID_MAP;
	}
	googlemap.setCenter(new GLatLng(lat,lon), zoom, type);
	
	wundermap = new WunderMap(googlemap, {units:units});
	// when map moves, changes types, layers toggle, etc
	wundermap.enableLinkToThisPage("linkToThisPage");
	// activate the search box
	wundermap.enableSearchBox("mapSearchForm", "mapSearchBox", "mapFavorites");
	// when the link is clicked, save the prefs
	wundermap.enableSavePreferences("linkToSavePrefs", "linkToSavePrefsStatus", "GMAP");
	// return to the position before an info window caused the map to move
	// wundergmap.enableReturnToSavedPosition();
	// add the wunderground logo
	wundermap.addLogo("http://icons.wxug.com/i/wu_small.gif");
	// add the local, region, continent buttons
	wundermap.addQuickJump({'name':'Quick Jump'});

	// highlite link to this page when search result chosen
	var mapSearch = wundermap.getSearch();
	var bgChange = new Fx.Style($('linkToThisPage'), 'background-color', {duration:1500, wait:false, fps:30});
	GEvent.addListener(mapSearch, "viewchange", function() {
		bgChange.start('#9A5121', '#FFFFFF');
	});

	// objects that the layers will use
	var streets = new StreetsOverlay(googlemap);
	wundermap.enableStreetsOverlay(streets);
	var displayArea = new DisplayArea("mapDisplayArea", "mapDisplayAreaScrolling");
	wundermap.enableDisplayArea(displayArea);
	var mastersBlog = new SharedLayerRegion("mapMastersBlog");
	var legends = new SharedLayerRegion("mapLegends");
	var brand = "";

	// sync the radar and satellite layers when both enabled
	wundermap.RadSatSyncPrepare("rad", "sat");
	
	// add layers!
	wundermap.addLayer("rad", RadarLayer, 'LayerRadarAnimGif', true, {debug:debug, legends:legends, streets:streets, displayArea:displayArea});
	wundermap.addLayer("wxsn", WeatherStations, 'LayerWeatherStations', true, {debug:debug, legends:legends, displayArea:displayArea, units:units});
	wundermap.addLayer("svr", SevereLayer, 'LayerSevere', false, {debug:debug, legends:legends, streets:streets});
	wundermap.addLayer("cams", Webcams, 'LayerWebcams', false, {debug:debug, legends:legends});
	wundermap.addLayer("sat", SatelliteLayer, 'LayerSatellite', false, {debug:debug, legends:legends, streets:streets});
	wundermap.addLayer("riv", USGSRiver, 'LayerUSGSRiver', false, {debug:debug, legends:legends, displayArea:displayArea, units:units});
	wundermap.addLayer("mm", ModelDataLayer, 'LayerModelData', false, {debug:debug, legends:legends, streets:streets, displayArea:displayArea});
	wundermap.addLayer("hur", HurricaneLayer, 'LayerHurricane', false, {debug:debug, legends:legends, displayArea:displayArea, mastersBlog:mastersBlog, streets:streets, units:units});
	wundermap.addLayer("fire", FireLayer, 'LayerFire', false, {debug:debug, legends:legends, displayArea:displayArea});
	//wundermap.addLayer("ft", FlightTracker, 'LayerFlight', false, {debug:debug, legends:legends, displayArea:displayArea});
	//wundermap.addLayer("sur", SurfaceLayer, 'LayerSurface', false, {debug:debug, legends:legends, streets:streets});
	//wundermap.addLayer("sl", SeaLevelLayer, 'LayerSeaLevel', false, {debug:debug, legends:legends, streets:streets});
	wundermap.addLayer("tor", Tornado, 'LayerTornado', false, {debug:debug, legends:legends, displayArea:displayArea});
	wundermap.addLayer("ndfd", NDFDLayer, 'LayerNDFD', false, {debug:debug, legends:legends, streets:streets});
	wundermap.addLayer("pix", Photos, 'LayerPhotos', false, {debug:debug, legends:legends, displayArea:displayArea});
	wundermap.addLayer("dir", Directions, 'LayerDirections', false, {debug:debug, legends:legends, displayArea:displayArea, units:units});

	// sync the radar and satellite layers when both enabled
	wundermap.RadSatSync("rad", "sat");

	// choose the default options panel to be open
	wundermap.showFirstActiveOptionsPanel();
	
	// show the requested top layer on top
	wundermap.moveToTop(top);
	
	// refresh all the layers every 10 minutes (they listen for the moveend event)
	var refreshInterval = setInterval(refreshLayers, 1000*600);
	function refreshLayers() {
		GEvent.trigger(googlemap, "moveend");
	}
	
	// enable additional controls
	var keyboardHandler = new GKeyboardHandler(googlemap);
	
	// refresh when the window is resized
	wundermap.enableResizeRefresh();
	
	// enable dynamic ad
	wundermap.enableDynamicAd("topBanner", "banner", {"width":733});
	
	// enable a marker that is pinned to the given lat/lon
	wundermap.enablePinMarker(opts);
	
	// enable full screen mode
	wundermap.enableFullScreen();
}

// YAZ hack until iframes don't call these function directly
function MapCallback(weatherStations) {
	wundermap.layers["wxsn"].instance.MapCallback(weatherStations);
}
function WebcamsMapCallback(webCams) {
	wundermap.layers["cams"].instance.handleData(webCams);
}
function TornadoMapCallback(tornadoes, stats) {
	wundermap.layers["tor"].instance.MapCallback(tornadoes, stats);
}
// YAZ hack until caller can listen to popout load/unload event in IE with cross-domain issue
function popoutLoaded(index) {
	wundermap.layers["mm"].instance.layer_.popoutLoaded(index);
}
function popoutClosed(index) {
	wundermap.layers["mm"].instance.layer_.popoutClosed(index);
}

//]]>
