		var postcode;
		var coordinates;
		var buildstring;
		var offset;
		var map;
		var localSearch = new GlocalSearch();
		var fcode = "99da9b2afa389ae1e1b9f27c1ba98239";
		var acode = "A5689224885";
		var ycode = "7N4yLyzX3BGik6PJ6kjTQA";


		function load()
		{
			if (GBrowserIsCompatible()){
        		map = new GMap2(document.getElementById("map"));
        		map.setCenter(new GLatLng(52.000, 5.250), 8);
     		}
		}
		
		function drawMap(f)
		{
			if (getPostcodeFromForm(f)) {
				getLatLongFromPostcode(postcode,mapCenter);
			}
		}

		function getPostcodeFromForm(formobject)
		{
			postcode="";
			postcode=formobject.postcode.value;
			if (postcode.length!=4) {
        			alert("Voer de vier cijfers van de postcode in.");
        			return false;
        	}
			showProgress('progress');
			return true;
		}

		function getLatLongFromPostcode(postcode,callbackFunction)
		{
			localSearch.setSearchCompleteCallback(null, function(){
				if (localSearch.results[0]){    
        			var resultLat = localSearch.results[0].lat;
        			var resultLng = localSearch.results[0].lng;
       				coordinates = new GLatLng(resultLat,resultLng);
        			callbackFunction(coordinates);
				}else{
        			alert("Voer een geldige Nederlandse postcode in.");
				}
			});
    		localSearch.execute(postcode + ", NL");
		}

		function mapCenter(coordinates)
		{
			map.setCenter(coordinates, 12);
			map.addControl(new GSmallMapControl());
    		map.addControl(new GMapTypeControl());
    		map.addOverlay(new GMarker(coordinates));
    
 			getWeatherFromCoordinates(coordinates);
		}
		
		function getWeatherFromCoordinates(coordinates)
		{
			weatherstring = 'http://pipes.yahoo.com/pipes/pipe.run?Acode=' + acode + '&latitude='+ coordinates.lat() + '&longitude=' + coordinates.lng() + '&_id='+ycode+'&_run=1&_render=json&_callback=pipesCallback';
			addScript(weatherstring);
		}

		function addScript(uri)
		{
			var myscript = document.createElement('script');
			myscript.src = uri;
			document.body.appendChild(myscript);
		}
		
		function pipesCallback(response)
		{
			if (response == null) {
				alert("Results niet geparsed");
				return;
			}
			buildstring ="";
			for (x = 0; x < response.count ; x++)
 			{
				buildstring = response.value.items[x].description;
 			}
			offset = 0.1;
			getNearestFlickrImage(coordinates,offset);
		}

		function getNearestFlickrImage(coordinates,offset)
		{
			minlat = (parseFloat(coordinates.lat()) - offset);
			minlng = (parseFloat(coordinates.lng()) - offset);
			maxlat = (parseFloat(coordinates.lat()) + offset);
			maxlng = (parseFloat(coordinates.lng()) + offset);
			flickrstring='http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=' + fcode + '&min_taken_date=2004-01-01+00%3A00%3A00&sort=interestingness-desc&bbox=' + minlng + '%2C+' + minlat + '%2C+' + maxlng + '%2C+' + maxlat + '&per_page=1&format=json';
			addScript(flickrstring);
		}

		function jsonFlickrApi(rsp)
		{
			if (rsp.stat != "ok")
			{
				alert ("Flickr service-fout");
				return;
			}
			if (rsp.photos.pages == "0")
			{
				alert ("Geen foto's gevonden, zoekgebied wordt uitgebreid");
				offset = (parseFloat(offset)+ 0.001);
				getNearestFlickrImage(coordinates,offset);
				return;
			}
	
			var photo = rsp.photos.photo[0];
			var photostring = "";
			var phototitle = ";"
			
			photostring = '<img src="http://farm' + photo.farm + '.static.flickr.com/' + photo.server + '/' + photo.id + '_' + photo.secret + '_t.jpg">';
			phototitle = photo.title;
			buildstring = buildstring + "</br>" + photostring + "</br>" + phototitle;
	
			var marker = createMarker(coordinates,buildstring);
  			map.addOverlay(marker);
			hideProgress('progress');
		}

		function createMarker(point,html)
		{
			marker = new GMarker(point);
    		GEvent.addListener(marker, "click", function() {
    			marker.openInfoWindowHtml(html);
			});
    		return marker;
		}
		
		function showProgress(name)
		{
			prg = "<IMG SRC='/modules/googlemapashup/pleasewait.gif'> Gegevens ophalen";
    		progressViewer = document.getElementById(name);
    		progressViewer.innerHTML = prg;
		}
   
		function hideProgress(name)
		{
			progressViewer = document.getElementById(name);
    		progressViewer.innerHTML = "";
		}
		
		function enterKey(myfield,e)
		{
			var keycode;
			if (window.event) keycode = window.event.keyCode;
			else if (e) keycode = e.which;
			else return true;

			if (keycode == 13)
   			{
				drawMap(myfield.form);
			   return false;
   			}
			else
		   return true;
		}
