//// GoogleMaps support ( © 2008 buienradar.nl)
//// Version		1.2
//// Author			B. Hendriks
////
//// GoogleMapsSupport is a script contains functions for displaying radar images as an overlay
//// ontop of the googlemap.
//// 
	
//// Global variables ////
var overlayimages = new Array();
var imagetimestamp = new Array();
var mapindex = 0;
var map = null;
var looptime = 0;

//// public functions ////
function initialize() {
	if(gup('panorama')!="")
	{
		window.moveTo(0, 0);
		window.resizeTo(screen.width, screen.height);
	}

	map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
//    map.addMapType(G_PHYSICAL_MAP);
    if(overname==1||overname==2)
    {
    }
    else
    {
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        if(overname==-1)
        {
            var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
            map.addControl(new GSmallZoomControl(),bottomRight);
        }
        if(overname==6)
        {
            var topRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
            map.addControl(new GLargeMapControl(),topRight);
        }
    }
	map.addControl(new GOverviewMapControl(new GSize(150,150)));

	getImageData();
	window.setTimeout(function() {if (overlayimages.length > 0){nextOverlay();}}, 2000);
}

//// private functions ////
function getImageData()
{
	var boundaries = new GLatLngBounds(new GLatLng(51.9799581,-8.433688595), new GLatLng(72.94886964,42.09180402));

	GDownloadUrl(imageuri, function(data) 
	{
		var xml = GXml.parse(data);
		var images = xml.documentElement.getElementsByTagName("image");
		var animimage = xml.documentElement.getElementsByTagName("ani-image");
	    var kaart="G_HYBRID_MAP";
		switch(kaarttype)
		{
		    case 1:
        		map.setCenter(new GLatLng(latwaarde,lngwaarde), zoomlevel, G_HYBRID_MAP);
        		break;
            case 2:
        		map.setCenter(new GLatLng(latwaarde,lngwaarde), zoomlevel, G_SATELLITE_MAP);
        		break;
            case 3:
        		map.setCenter(new GLatLng(latwaarde,lngwaarde), zoomlevel, G_NORMAL_MAP);
        		break;
		    case 4:
        		map.setCenter(new GLatLng(latwaarde,lngwaarde), zoomlevel, G_HYBRID_MAP);
        		break;
		   		    
		}

		// Due to googlemaps limitations this way of showing the images is only suitable for ie7.
		if (navigator.userAgent.indexOf('MSIE 7') != -1||navigator.userAgent.indexOf('Safari') != -1||navigator.userAgent.indexOf('MSIE 8') != -1||navigator.userAgent.indexOf('Opera') != -1||navigator.userAgent.indexOf('Firefox/3') != -1)  
		{
			for (var i = 0; i < images.length; i++) 
			{
				var image = images[i].getAttribute("url");
				preloadImage(image);
				overlayimages[i] = new GGroundOverlay(image, boundaries);
				imagetimestamp[i] = images[i].getAttribute("time");;
			}
		}
		else
		{
			var image = animimage[0].getAttribute("url");
			preloadImage(image);
			overlayimages[0] = new GGroundOverlay(image, boundaries);
		}
		// setting timestamp of the most recent image
	//	document.getElementById("latesttimestamp").innerHTML = "(laatste " +images[images.length -1].getAttribute("time") + ")";		
	});
}

function nextOverlay()
{
	// reload images
	if (looptime >= (reloadtimer*60*1000)) // reloadtimer is in minutes
	{
		getImageData();
		looptime = 0;
	}
	
	// replacing overlay
	map.clearOverlays();
    map.addOverlay(overlayimages[mapindex]);
	
	// replacing timestamp
	if (imagetimestamp.length > 0)
	{
//		document.getElementById("timestamp").innerHTML = imagetimestamp[mapindex];
		document.getElementById("timestamp2").innerHTML = imagetimestamp[mapindex];
	}
	
	mapindex++;

	// determing timer for next overlay
	var timer = 0;
	if (overlayimages.length == 1)
	{
		// overlayimages contains one image: is animated image.
		timer = reloadtimer*60*1000;
	}
	else if (mapindex >= overlayimages.length)
	{
		// now showing the last image in the array.
		timer = 4000;
		mapindex = 0;
	}
	else 
	{
		timer = 250;
	}
	
	looptime = looptime + timer;
	window.setTimeout(function() {nextOverlay();}, timer);

// refspots laden
    
    laadspots();

}

function gup( name )
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
	{
		return "";
	}
	else
	{
		return results[1];
	}
}

function preloadImage(image)
{
	var preloadimage = document.createElement('img');
	preloadimage.setAttribute('src',image);
}


