$j(document).ready(function()
{
		
	var centerLatitude = 52.356583;
	var centerLongitude = 4.657853;
	var startZoom = 7;
	var map;
	var deselectCurrent = function(){};
	
	
	function form_validate()
	{
		if($j('#zoek_map').val() == '')
		{
			alert("Vul een zoekterm in.\n Add a search term.");
			return false;
		}
		else
		{
			
				removechilds();
				map.clearOverlays();
				var getVars = "?zoek_type="+ $j('#zoek_type').val() + "&text=" + $j('#zoek_map').val() ;
				geocoder = new GClientGeocoder();
				GDownloadUrl('/ajax/map_datasearch.php'+ getVars, function(data, responseCode) 
				{
					var xml = GXml.parse(data);
					var markers = xml.documentElement.getElementsByTagName("marker");
					for (var i = 0; i < markers.length; i++) {
						var adres = markers[i].getAttribute("address");
						var html = markers[i].getAttribute("html");
						var pic = markers[i].getAttribute("type");
						var postcode = markers[i].getAttribute("postcode");
						var plaats = markers[i].getAttribute("plaats");
						var telefoon = markers[i].getAttribute("telefoon");
						var toevoegsel = markers[i].getAttribute("toevoegsel");
						var website = markers[i].getAttribute("website");
						var land = markers[i].getAttribute("land");
						var lat = markers[i].getAttribute("lat");
						var lon = markers[i].getAttribute("lon");
						addMarker(adres,html,pic,toevoegsel,postcode,plaats,telefoon,website,land,lat,lon,i);
					}
				});
			
		}
	}
	function addMarker(address,html,pic,toevoegsel,postcode,plaats,telefoon,website,land,lat,lon,id)
	{
		var algemeen = '<p>'+ html +'</p>';
		var info= '<p>'+ address +' '+ toevoegsel +'<br />'+ postcode +' '+ plaats +'<br />T: '+ telefoon +' / W: <a href="http://'+ website +'" target="_blank">'+ website +'</a></p>';
		var route = '<p>vul als volgt in, uw: straat nummer, plaats OF plaats<br /><form action="http://maps.google.nl/maps" method="get"><input type="hidden" name="daddr" value="'+address +'@'+ lat +','+lon+'" /><input type="hidden" value="nl" name="hl" /><input type="text" size="40" name="saddr" /><input type="submit" value=" GO " /></form></p>';
				
		var infoTabs = [
			new GInfoWindowTab("Algemeen",algemeen),
			new GInfoWindowTab("Studies","binnenkort beschikbaar / soon available"),
			new GInfoWindowTab("Info",info),
			new GInfoWindowTab("Route",route)
		];
		var latlng = new GLatLng(parseFloat(lat),parseFloat(lon));
		var icon = new GIcon();
		icon.image = '/images/'+pic;
		icon.iconSize = new GSize(15,15);
		icon.iconAnchor = new GPoint(14,14);
		icon.infoWindowAnchor = new GPoint(14,14);
		var marker = new GMarker(latlng,icon);
	
		var lihtml = '<strong>' + html + '</strong><span>' + address + ', '+ postcode +', '+ plaats +'</span>';
		var thisid = $j('<li><a href="#" id="'+id+'" class="ahs_info">'+lihtml+'</a></li>');
		
		var focusPoint = function() {
			$j('#sidebar-list').children().removeClass('current');
			thisid.addClass('current');
			var whichid = thisid.find('.ahs_info').attr('id');
			marker.openInfoWindowTabsHtml(infoTabs,{selectedTab:0,maxWidth:400});
			map.panTo(latlng);
			scrollToItem(whichid);
			return false;
		}
	 
		GEvent.addListener(marker, 'click', focusPoint);
		thisid.click(function(){
			
			focusPoint();
			return false;
		});	
		$j('#sidebar-list').append(thisid);
		map.addOverlay(marker);
		return marker;	
	}
	function removechilds()
	{
		$j("#sidebar-list").empty();
	}
	function showHos()
	{
		if($j('#type').val() != "")
		{
			var getVars = "?land="+ $j('#land').val() + "&type=" + $j('#type').val() ;
	
			removechilds();
			var request = GXmlHttp.create();
			request.open('GET','/ajax/map_data.php'+ getVars , true);
			request.onreadystatechange = function (){
				if(request.readyState == 4 && request.status == 200)
				{
					var xml = request.responseXML;
		
					var markers = xml.documentElement.getElementsByTagName("marker");
				
					for (var i = 0; i < markers.length; i++) {
						var adres = markers[i].getAttribute("address");
						var html = markers[i].getAttribute("html");
						var pic = markers[i].getAttribute("type");
						var postcode = markers[i].getAttribute("postcode");
						var plaats = markers[i].getAttribute("plaats");
						var telefoon = markers[i].getAttribute("telefoon");
						var toevoegsel = markers[i].getAttribute("toevoegsel");
						var website = markers[i].getAttribute("website");
						var land = markers[i].getAttribute("land");
						var lat = markers[i].getAttribute("lat");
						var lon = markers[i].getAttribute("lon");
						addMarker(adres,html,pic,toevoegsel,postcode,plaats,telefoon,website,land,lat,lon,i);
					}
					ajaxInfo('hide');
				}
			}
			request.send(null);
			return false;
		}
	}
	function ajaxInfo(type)
	{
		switch(type)
		{
			case 'show':
				$j('#alert').show();
			break;
			case 'hide':
				$j('#alert').hide();
			break;
		}
	}
		
		//handleResize();
		
		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map"));
			map.addControl(new GMapTypeControl());
			map.addControl(new GLargeMapControl());
			var location = new GLatLng(centerLatitude, centerLongitude);
			map.setCenter(location, startZoom,G_SATELLITE_MAP);

			$j('#type').change(function(){
				ajaxInfo('show');						
				map.clearOverlays();
				showHos();
			});
			
			$j('#mapsearch').submit(function(){
				form_validate();
				return false;
			});
			
		}
	
	$j('#button-sidebar-hide').click(function(){
			$j('#map_sidebar').hide();
			$j('#map-wrapper').css('margin','0px');
			$j(this).hide();
			$j('#button-sidebar-show').show();
		});
	$j('#button-sidebar-show').click(function(){
		$j('#map_sidebar').show();
		$j('#map-wrapper').css('marginRight','300px');
		$j(this).hide();
		$j('#button-sidebar-hide').show(); 
	});
	function scrollToItem(whichid) {
		var scroll = 0;
		var items = $j("#sidebar-list li a");
		var items_count = $j("#sidebar-list li").size();
	
		for(i = 0; i < items_count; i++) {
	
			if ($j(items[i]).attr("id")) {
				if ($j(items[i]).attr("id") == whichid) {
					break;
				}
				scroll += items[i].offsetHeight + 5;
			}
		}
		$j("#map_sidebar").animate({scrollTop:scroll},"slow");
	}	
});
window.onunload = GUnload;
