/**
* googleMaps
* Map based on latitude and longitude
*
* @param float lat
* @param float lng
* @param string addr
* @param int zoom
* @param string type
* @return void
*/

var map;
var xml;
var kaartmarkersxml = new Array();
var markerGroups = new Array();
var zoom =0;
var oldzoom =0;
var oldcenter;
var xmltable = 0;
var onManualZoom = 0;
var phoneActive = 0;
var v3markersArray = [];


function googleMaps(lat, lng, addr, zoom)
{	
	var latlng = new google.maps.LatLng(lat, lng);
	var options = {
		navigationControl: false,
		mapTypeControl: false,
		mapTypeControlOptions: {
			style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
			position: google.maps.ControlPosition.TOP_LEFT
		},
		zoom: zoom,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.HYBRID
	};
	
	map = new google.maps.Map(document.getElementById('googleMap'), options);
	map.panBy(document.getElementById('meldingen').offsetWidth/2, 0);
	//--- make custom zoom control ---//
	var zoomControls = document.createElement('DIV');
	zoomControls.style.padding = 19 + 'px';
    var zoomInControl = new addCustomControl(zoomControls, map, 'zoomIn');
    zoomControls.index = 1;
    var zoomOutControl = new addCustomControl(zoomControls, map, 'zoomOut');
    map.controls[google.maps.ControlPosition.TOP_LEFT].push(zoomControls);
	//--- end custom zoom control ---//
	
	oldzoom = zoom;
	var width = (document.getElementById('kaart').offsetWidth+473)/2;
	var height = document.getElementById('kaart').offsetHeight/2;
	//oldcenter = getLatLonFromPixel(width, height);
	
	google.maps.event.addListener(map, "move" , function()
	{
		var multiplemarkers = document.getElementById('multiplemarkers');
		multiplemarkers.innerHTML = '';
	});
	
	var moveMapRefreshMarkers = 0;
	/*google.maps.event.addListener(map, "dragend" , function()
	{
		clearTimeout(moveMapRefreshMarkers);
		moveMapRefreshMarkers = setTimeout(function(){getMessageDetails('drag');},2000);

		//getMessageDetails('drag');
		var width = (document.getElementById('kaart').offsetWidth-473)/2;
		var height = document.getElementById('kaart').offsetHeight/2;
		oldcenter = getLatLonFromPixel(width, height);
    });*/
	
	google.maps.event.addListener(map, "tilesloaded" , function()
	{
		document.getElementById('searchQuery').removeAttribute('disabled');
		//replaceGoogle();
	});
	
	google.maps.event.addListener(map, "idle" , function()
	{
		$('.label').remove();
		if(onManualZoom != 0)
		{
			getMessageDetails('drag');			
		}
		else
		{
			onManualZoom = 1;
		}
		setTimeout(function(){	alert		
			oldzoom = map.getZoom();
			var width = (document.getElementById('kaart').offsetWidth-473)/2;
			var height = document.getElementById('kaart').offsetHeight/2;
			oldcenter = getLatLonFromPixel(width, height);
			}, 200);
		
	});
	
	setTimeout(function(){
		$('#lmc3d').click(function() 
		{
			//alert("hij doet het");
			if(map.getZoom() > oldzoom)
			{
				map.setCenter(oldcenter);
				var width = (document.getElementById('kaart').offsetWidth+473)/2;
				var height = document.getElementById('kaart').offsetHeight/2;
				var newLatLng = getLatLonFromPixel(width, height);
				map.setCenter(newLatLng);
			}
			else if (map.getZoom() < oldzoom)
			{
				map.setCenter(oldcenter);
				var width = (document.getElementById('kaart').offsetWidth+473)/2;
				var height = document.getElementById('kaart').offsetHeight/2;
				var newLatLng = getLatLonFromPixel(width, height);
				map.setCenter(newLatLng);
			}
			else{}
			oldzoom = map.getZoom();
			var width = (document.getElementById('kaart').offsetWidth-473)/2;
			var height = document.getElementById('kaart').offsetHeight/2;
			oldcenter = getLatLonFromPixel(width, height);
		});
	},1000);
		
}


/**
* placeMarker
* Put a marker on the map
*
* @param float latlng
* @param string addr
* @param int center
* @param int type
* @return void
*/
var clickvar = 0;
var overigemeldingencount = 0;
var titletagnumber = 0;

function placeMarker(markerArray)
{
	titletagnumber++;
	var lat = markerArray['lat'];
	//alert(lat);
	var lng = markerArray['lng'];
	markerArray['latitude'] = markerArray['lat'];
	//alert(markerArray['latitude']);
	markerArray['longitude'] = markerArray['lng'];
	var service = markerArray['service'];
	var melding = markerArray['melding'];
	melding = melding.replace(/(\d{10)|(\d{3}\x2D\d{7})|(\d{2}\x2D\d{4} \d{4})|(\d{2}\x2D\d{8})|(\d{4}\x2D\d{6})/g,"*REPLACE*");
	var messageLabel = markerArray['label'];
	var capcode = markerArray['capcode'];
	var markertimestamp = markerArray['markertimestamp'];
	var id = markerArray['id'];
	var urgency = markerArray['urgency'];
	var latlng = markerArray['latlng'];
	var messageRegionName = markerArray['messageRegionName'];
	var googleAddress = markerArray['googleAddress'];
	var googlePlaatsnaam = markerArray['googlePlaatsnaam'];
	var googleProvincie = markerArray['googleProvincie'];
	var blocked = markerArray['blocked'];
	var alreadylabeled = 0;

	var tempArray = new Array();
	//alert(kaartmarkersxml.length);
	for(var i=0;kaartmarkersxml.length > i; i++)
	{
		//alert("kaartdingen: " + kaartmarkersxml[i].getAttribute('messageGoogleAddress') + ", googleadres: " + googleAddress);
		if(kaartmarkersxml[i].getAttribute('messageGoogleAddress') == googleAddress)
		{
			tempArray.push(kaartmarkersxml[i]);
		}
	}
	if(tempArray.length > 1)
	{
		var img = "multiplemarkers.png";
		var label = "Op deze plaats zijn meerdere meldingen.<br/>Klik op dit icoontje om deze meldingen te bekijken";
		alreadylabeled = 1;
	}
	else if(blocked == "0"){
		//if maybe blacklist
		var img = "mapiconyellow.png";
	}
	else if(service == "Brandweer"){
		var img = "mapiconred.png";
		}
	else if(service == "Ambulance"){
		var img = "mapiconblue.png";
		}
	else if(service == "Politie"){
		var img = "mapicongreen.png";
		}
	else {
		var img = "mapicongreen.png";
	}
	
	
	if(blocked == "1")
	{	
		if(blocked == "0"){
			//if maybe blacklist
			var img = "mapiconyellow.png";
		}
		else if(service == "Brandweer"){
			var img = "mapiconred.png";
			}
		else if(service == "Ambulance"){
			var img = "mapiconblue.png";
			}
		else if(service == "Politie"){
			var img = "mapicongreen.png";
			}
		else {
			var img = "mapicongreen.png";
		}
		$('#meldingenOverigContainer').show();
		document.getElementById('meldingenOverig').innerHTML += '<div id="overigemelding'+overigemeldingencount+'" class="overigemelding"><img alt="' + melding + '" onmouseover="meldingenOverigAddTitle(' + overigemeldingencount + ',' + "'" + melding + "'" +')" onmouseout="meldingenOverigRemoveTitle(' + overigemeldingencount + ')" onclick="getMessageDetailsOnLocationTablePopup('+id+', '+"'kaart'"+')" src=' + getBaseUrl() + '/public/images/' + img + '></div>';
		overigemeldingencount++;
		//if blacklist
		//alert("blacklist alert");
	}
	else if(blocked == "2" || blocked == 0 || blocked == null){
		//if whitelist
		/*var newIcon = new GIcon(G_DEFAULT_ICON);
		newIcon.image = getBaseUrl() + '/public/images/' + img;	
		newIcon.imageMap = new Array(0,0, 21,0, 21,21, 0,21);
		newIcon.shadow = getBaseUrl() + '/public/images/marker_shadow.png';
		newIcon.shadowSize = new GSize(32.0, 21.0);

		newIcon.iconSize = new GSize(21, 21);
		newIcon.iconAnchor = new GPoint(11, 20);*/
		
		var image = new google.maps.MarkerImage(getBaseUrl() + '/public/images/' + img,
		new google.maps.Size(21, 21),
		new google.maps.Point(0,0),
		new google.maps.Point(11,20));
		
		var shadow = new google.maps.MarkerImage(getBaseUrl() + '/public/images/marker_shadow.png',
		new google.maps.Size(32, 21),
		new google.maps.Point(0,0),
		new google.maps.Point(11,20));

		var marker = new google.maps.Marker({
			position: latlng,
			map: map,
			shadow: shadow,
			icon: image
		});
		v3markersArray.push(marker);

		//var marker = new GMarker(latlng);
		//map.addOverlay(marker);

		if(!alreadylabeled){
			var label = getLabel(melding);
		}
		//map.addOverlay(label);

		google.maps.event.addListener(marker, 'mouseover', function() {
			addTitleTag(latlng, label);
		  });
		  
		google.maps.event.addListener(marker, 'mouseout', function() {
			$('.label').remove();
		  });

		google.maps.event.addListener(marker, 'click', function() {
			//googleAddress
			var tempArray = new Array();
			//alert(kaartmarkersxml.length);
			for(var i=0;kaartmarkersxml.length > i; i++)
			{
				//alert("kaartdingen: " + kaartmarkersxml[i].getAttribute('messageGoogleAddress') + ", googleadres: " + googleAddress);
				if(kaartmarkersxml[i].getAttribute('messageGoogleAddress') == googleAddress)
				{
					tempArray.push(kaartmarkersxml[i]);
				}
			}
			if(tempArray.length > 1 && document.getElementById('multiplemarkers').innerHTML == '')
			{
				var overlay;
				overlay = new google.maps.OverlayView();
				overlay.draw = function() {};
				overlay.setMap(map);

				var position = overlay.getProjection().fromLatLngToContainerPixel(marker.getPosition());
				var multiplemarkers = document.getElementById('multiplemarkers');
				multiplemarkers.style.top = (position['y']-42) + 'px';
				multiplemarkers.style.position = "absolute";
				var width = tempArray.length * 21;
				var positionformarkers = position['x'];
				var positionx = position['x'] - (width/2);
				var positiony = position['y'];
				multiplemarkers.style.left = positionx + 'px';
				for(var i=0;tempArray.length>(i); i++)
				{
					if(tempArray[i].getAttribute('messageService') == "Brandweer"){
						var img = "mapiconred.png";
						}
					else if(tempArray[i].getAttribute('messageService') == "Ambulance"){
						var img = "mapiconblue.png";
						}
					else if(tempArray[i].getAttribute('messageService') == "Politie"){
						var img = "mapicongreen.png";
						}
					else {
						var img = "mapicongreen.png";
					}
					var left = multiplemarkers.style.left;
					left = left.replace(/px/,'');
					left = (Number(left)+(i)*(21))+11;
					var top = multiplemarkers.style.top;
					top = top.replace(/px/,'');
					top = Number(top)+21;
					multiplemarkers.innerHTML += '<img label="'+melding+'" alt="'+melding+'" onmouseover="javascript:addMultipleTitleTag('+left+', '+top+', '+"'"+tempArray[i].getAttribute('messageText')+"'"+')" onmouseout="javascript:$('+"'.label'"+').remove();" onclick="javascript: getMessageDetailsOnLocationTablePopup('+tempArray[i].getAttribute('messageID')+', '+"'kaart'"+')" src="' + getBaseUrl() + '/public/images/' + img + '"/>';
				}
			}
			else if(tempArray.length > 1)
			{
				var multiplemarkers = document.getElementById('multiplemarkers');
				multiplemarkers.innerHTML = '';
			}
			else
			{
				showPopupMessage(markerArray, 0);
			}
		
		  });
		}

	}


function removeCustomMarkers(diensten)
{
	$('#meldingenOverigContainer').hide();
	document.getElementById('multiplemarkers').innerHTML = '';
	document.getElementById('meldingenOverig').innerHTML = '';

	v3clearOverlays();
	//var markers = xml.documentElement.getElementsByTagName('marker');
	
	var markers = kaartmarkersxml;

	//alert(xml);
	if(markers.length == 0){markers = xml.documentElement.getElementsByTagName('tablemarker');}
	for(var i = 0; i < markers.length; i++) 
	{
		var markerArray = new Array();
		
		var lat = parseFloat(markers[i].getAttribute("messageLatitude"));
		var lng = parseFloat(markers[i].getAttribute("messageLongitude"));
		
		markerArray['lat'] = lat;
		markerArray['lng'] = lng;
		markerArray['latitude'] = lat;
		markerArray['longitude'] = lng;
		markerArray['latlng'] = new google.maps.LatLng(lat,lng);
		markerArray['melding'] = markers[i].getAttribute("messageText");
		markerArray['label'] = markers[i].getAttribute("messageLabel");
		markerArray['capcode'] = markers[i].getAttribute("message_capcode");
		markerArray['markertimestamp'] = markers[i].getAttribute("messageTimestamp");
		markerArray['id'] = markers[i].getAttribute("messageID");
		markerArray['service'] = markers[i].getAttribute("messageService");
		markerArray['urgency'] = markers[i].getAttribute("messageUrgency");
		markerArray['messageRegionName'] = markers[i].getAttribute("messageRegionName");
		markerArray['googleAddress'] = markers[i].getAttribute("messageGoogleAddress");
		markerArray['googlePlaatsnaam'] = markers[i].getAttribute("messageGooglePlaatsnaam");
		markerArray['googleProvincie'] = markers[i].getAttribute("messageGoogleProvincie");
		markerArray['blocked'] = markers[i].getAttribute("blocked");
		if(markerArray['urgency'] == 0){markerArray['urgency'] = 3;}
		
		var timestamp = new Date(strtotime(markerArray['markertimestamp']));
		timestamp = (timestamp.getTime());
		
		var service = markerArray['service'];
		var urgency = markerArray['urgency'];
		
		var sliderInMS = (diensten[6] * 60000);
		
		var currentTimestamp = new Date().getTime();
		
		if(diensten[0] == 1 && service == 'Brandweer' && timestamp >= (currentTimestamp - sliderInMS)){
			//als brandweer aanstaat
			for(var j = 1; j < 4; j++){
				if(diensten[j+2] == 1 && urgency == j){
					placeMarker(markerArray);
					}
			}
		}
		else if(diensten[1] == 1 && service == 'Ambulance' && timestamp >= (currentTimestamp - sliderInMS)){
			//als ambulance aanstaat
			for(var j = 1; j < 4; j++){
				if(diensten[j+2] == 1 && urgency == j){
					placeMarker(markerArray);
					}
			}
		}
		else if(diensten[2] == 1 && (service == 'Politie' || service == 'Onbekend' || service == 'Overig') && timestamp >= (currentTimestamp - sliderInMS)){
			//als politie en overig aanstaat
			for(var j = 1; j < 4; j++){
				if(diensten[j+2] == 1 && urgency == j){
					placeMarker(markerArray);
					}
			}
		}
	}
}

var markerRefreshId = 0;

function getMessageDetails(searchQuery, corners, dontzoom)
{
	clearTimeout(markerRefreshId);
	markerRefreshId = setTimeout(function(){$('.label').remove();var multiplemarkers = document.getElementById('multiplemarkers');multiplemarkers.innerHTML = '';getMessageDetails(searchQuery, corners, 'dontzoom');},90000);
	
	var searchQuery = searchQuery;
	$('#slider').slider( 'destroy' );
	v3clearOverlays(); 
	document.getElementById('bericht_column_left').innerHTML = "<div class='bericht_column_title'><h2>Brandweer</h2></div>";
	document.getElementById('bericht_column_middle').innerHTML = "<div class='bericht_column_title'><h2>Ambulance</h2></div>";
	document.getElementById('bericht_column_right').innerHTML = "<div class='bericht_column_title'><h2>Politie en Overig</h2></div>";
	$('#meldingenOverigContainer').hide();
	document.getElementById('meldingenOverig').innerHTML = "";
	
	if(searchQuery.match(/^regio /) || searchQuery.match(/ \x28regio\x29/))
	{
		var regio = searchQuery.replace(/regio /, '');
		regio = regio.replace(/ \x28regio\x29/, '');
		var regioWithoutSpaces = regio.replace(/\x2D/g, '_');
		var regioWithoutSpaces = regioWithoutSpaces.replace(/ /g, '-');
		var regioWithoutSpaces = regioWithoutSpaces.replace(/\x2F/g, '-');
		var ajaxlink = '/ajax/getnearbymarkers/regio/' + regio;
		var ajaxtablelink = '/ajax/getnearbymarkerstable/regio/' + regio;
		var rsslink = '/rss/generate/regio/' + regioWithoutSpaces;
		var twitteraccount = getRegioTwitterAccount(regioWithoutSpaces);
		var twitterlink = 'http://www.twitter.com/' + twitteraccount;
		var searchTitle = 'Laatste meldingen in regio ' + regio;
	}
	else if(searchQuery.match(/nederland/i) || searchQuery.match(/^holland$/i))
	{
		var ajaxlink = '/ajax/getnearbymarkers/nederland/nederland';
		var ajaxtablelink = '/ajax/getnearbymarkerstable/nederland/nederland';
		var rsslink = '/rss/generate/nederland/nederland';
		var twitterlink = "javascript:renderPopup('popupOverview.phtml',1);showPopup('popupOverview');";
		var searchTitle = 'Laatste meldingen in Nederland';
	}
	else if(searchQuery.match(/ \x28[A-Z]{2}\x29/))
	{
		//plaatsnaam
		//alert("plaatsnaam");
		var provincie = getTwoCharProvince(searchQuery);
		var stad = searchQuery.replace(/ \x28[A-Z]{2}\x29$/, '');
		var stadWithoutSpaces = stad.replace(/\x2D/g, '_');
		var stadWithoutSpaces = stadWithoutSpaces.replace(/ /g, '-');
		var stadWithoutSpaces = stadWithoutSpaces.replace(/\x2F/g, '-');
		var ajaxlink = '/ajax/getnearbymarkers/searchQuery/' + stad + '/provincie/' + provincie;
		var ajaxtablelink = '/ajax/getnearbymarkerstable/searchQuery/' + stad + '/provincie/' + provincie;
		var rsslink = '/rss/generate/plaats/' + stadWithoutSpaces + '/provincie/' + provincie;
		var twitterlink = "javascript:renderPopup('popupOverview.phtml',1);showPopup('popupOverview');";
		var searchTitle = 'Laatste meldingen in ' + searchQuery;
	}
	else if(searchQuery == "Drenthe" || searchQuery == "Flevoland" || searchQuery == "Friesland" || searchQuery == "Gelderland" || searchQuery == "Groningen (Provincie)" || searchQuery == "Limburg" || searchQuery == "Noord-Brabant" || searchQuery == "Noord-Holland" || searchQuery == "Overijssel" || searchQuery == "Utrecht (Provincie)" || searchQuery == "Zeeland (Provincie)" || searchQuery == "Zuid-Holland")
	{
		//provincie
		//alert("provincie");
		var provincie = searchQuery.replace(/ \x28Provincie\x29$/, '');
		var ajaxlink = '/ajax/getnearbymarkers/provincie/' + provincie;
		var ajaxtablelink = '/ajax/getnearbymarkerstable/provincie/' + provincie;
		var rsslink = '/rss/generate/provincie/' + provincie;
		var twitteraccount = getProvinceTwitterAccount(provincie);
		var twitterlink = 'http://www.twitter.com/' + twitteraccount;
		var searchTitle = 'Laatste meldingen in provincie ' + provincie;
	}
	else if(searchQuery.match(/^\d{4}([a-zA-Z]{2})?$/))
	{
		//postcode
		//alert("postcode");
		var postcode = searchQuery.replace(/[a-zA-Z]{2}$/, '');
		var ajaxlink = '/ajax/getnearbymarkers/postcode/' + postcode;
		var ajaxtablelink = '/ajax/getnearbymarkerstable/postcode/' + postcode;
		var rsslink = '/rss/generate/postcode/' + postcode;
		var twitterlink = "javascript:renderPopup('popupOverview.phtml',1);showPopup('popupOverview');";
		var searchTitle = 'Laatste meldingen op postcode ' + postcode;
	}
	else if(searchQuery == "drag")
	{
		//square
		//alert("square");
		if(!corners)
		{
			var corners = getCorners();
			var square = 1;
		}
		var ajaxlink = '/ajax/getnearbymarkers/minLat/' + corners['minLat'] + '/maxLat/' + corners['maxLat'] + '/minLng/' + corners['minLng'] + '/maxLng/' + corners['maxLng'];
		var ajaxtablelink = '/ajax/getnearbymarkerstable/minLat/' + corners['minLat'] + '/maxLat/' + corners['maxLat'] + '/minLng/' + corners['minLng'] + '/maxLng/' + corners['maxLng'];
		var rsslink = '/rss/generate/minLat/' + corners['minLat'] + '/maxLat/' + corners['maxLat'] + '/minLng/' + corners['minLng'] + '/maxLng/' + corners['maxLng'];
		var twitterlink = "javascript:renderPopup('popupOverview.phtml',1);showPopup('popupOverview');";
		var searchTitle = "Laatste meldingen in deze weergave";
	}
	else
	{
		//andere searchquery
		//alert("andere searchquery");
		gotoSearchQuery(searchQuery);
	}
	
	//---
	$.get(getBaseUrl() + ajaxlink, {}, function(data){
		//var xml = GXml.parse(data);
		//var markers = xml.documentElement.getElementsByTagName('marker');
		xml = data;
					
			if(xml.documentElement.getElementsByTagName('phoneactive')[0]){
				phoneActive = xml.documentElement.getElementsByTagName('phoneactive')[0].getAttribute("active");
				}
			else {phoneActive =0;}
			var markers = xml.documentElement.getElementsByTagName('marker');	

			kaartmarkersxml = markers;
			var oldestEpochTime;
			var currentEpochTime = Math.round(new Date().getTime()/1000.0);
			var bounds = new google.maps.LatLngBounds;
			var count = markers.length;
			if(count == 0)
			{
				//alert("Er zijn voor deze plaats nog geen meldingen");
				if(corners){
					bounds = new google.maps.LatLngBounds(new google.maps.LatLng(corners['minLat'], corners['minLng']), 
											   new google.maps.LatLng(corners['maxLat'], corners['maxLng']));
				}
				else
				{
					square = 1;
					gotoSearchQuery(searchQuery + ", Nederland");
					//getMessageDetails("Nederland");
				}
			}
			for(var i = 0; i < count; i++) 
			{
				//set bounds
				var latlng =  new google.maps.LatLng(parseFloat(markers[i].getAttribute("messageLatitude")),parseFloat(markers[i].getAttribute("messageLongitude")));
				bounds.extend(latlng);
				//set time
				var timestamp = new Date(strtotime(markers[i].getAttribute("messageTimestamp"))).getTime()/1000;
				if(oldestEpochTime == undefined || timestamp < oldestEpochTime)
				{
					oldestEpochTime = timestamp;
				}
			}

			if(square != 1 && dontzoom != 'dontzoom')
			{
				onManualZoom = 0;
				//------nieuwe poging
				map.fitBounds(bounds);
				
				var overlay;
				overlay = new google.maps.OverlayView();
				overlay.draw = function() {};
				overlay.setMap(map);
				map.panBy(document.getElementById('meldingen').offsetWidth/2, 0);
				//google.maps.event.addListener(map, 'projection_changed', function(event) {
					//var width = (document.getElementById('kaart').offsetWidth+473)/2;
					//var height = document.getElementById('kaart').offsetHeight/2;
					//var newLatLng = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(width, height));
					//map.setCenter(newLatLng, map.getZoom());
					
				//});
				//------nieuwe poging
				//map.fitBounds(bounds);
				
				//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
				
				/*var width = (document.getElementById('kaart').offsetWidth+473)/2;
				var height = document.getElementById('kaart').offsetHeight/2;

				var overlay;
				overlay = new google.maps.OverlayView();
				overlay.draw = function() {};
				overlay.setMap(map);

				google.maps.event.addListener(map, 'projection_changed', function(event) {
				var newLatLng = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(width, height));
				map.setCenter(newLatLng, map.getZoom());
				});*/
				
			}
			
			
			var timeDifference = Math.round((currentEpochTime - oldestEpochTime)/60);
			max = timeDifference + 2;
			value = max;
			setTimeSlider(value, max);
			
			var diensten = new Array();
			diensten[0] = document.getElementById('optionform').brandweer.checked;
			diensten[1] = document.getElementById('optionform').ambulance.checked;
			diensten[2] = document.getElementById('optionform').politie.checked;
			diensten[3] = document.getElementById('optionform').hoog.checked;
			diensten[4] = document.getElementById('optionform').midden.checked;
			diensten[5] = document.getElementById('optionform').laag.checked;
			diensten[6] = max;
			removeCustomMarkers(diensten);

	});

	document.getElementById('searchquery_messages').innerHTML = searchTitle;
	document.getElementById('rssimage').setAttribute('href', getBaseUrl() + rsslink);
	document.getElementById('rsstext').setAttribute('href', getBaseUrl() + rsslink);
	document.getElementById('twittertext').setAttribute('href', twitterlink);
	document.getElementById('twitterimage').setAttribute('href', twitterlink);
	
	//set limit of table markers
	var newheight = document.getElementById('container').offsetHeight - document.getElementById('header').offsetHeight - document.getElementById('navbar').offsetHeight - document.getElementById('optionbar').offsetHeight - 130;
	var limit = Math.floor(newheight / 38);
	//end set limit of table markers
	
	//set table markers
	if(limit > 0)
	{
		$.get(getBaseUrl() + ajaxtablelink + '/limit/' + limit, {}, function(data){
			//var xml = GXml.parse(data);
			//var markers = xml.documentElement.getElementsByTagName('marker');
			xml = data;

			document.getElementById('bericht_column_left').innerHTML = "<div class='bericht_column_title'><h2>Brandweer</h2></div>";
			document.getElementById('bericht_column_middle').innerHTML = "<div class='bericht_column_title'><h2>Ambulance</h2></div>";
			document.getElementById('bericht_column_right').innerHTML = "<div class='bericht_column_title'><h2>Politie en Overig</h2></div>";

			xmltable = xml;
			var tablemarkers = xml.documentElement.getElementsByTagName('tablemarker');
			setTableMarkers(tablemarkers, limit);
		});
	}
}	

function getLatLonFromPixel(x,y)
{
	var overlay;
	overlay = new google.maps.OverlayView();
	overlay.draw = function() {};
	overlay.setMap(map);

	/**google.maps.event.addListener(map, 'projection_changed', function(event) {
		var swpixel =
		overlay.getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
		var nepixel =
		overlay.getProjection().fromLatLngToPixel(map.getBounds().getNorthEast(),map.getZoom());
		return overlay.fromPixelToLatLng(new google.maps.Point(swpixel.x + x,nepixel.y + y),map.getZoom());
	});*/

	//google.maps.event.addListener(map, 'projection_changed', function(event) {
		return overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(x, y));
	//});
} 


function setTableMarkers(tablemarkers, limit)
{
	var countBrandweer = 0;
	var countAmbulance = 0;
	var countPolitie = 0;
	for(var i = 0; i < tablemarkers.length; i++) 
		{
			//in tabel zetten
			var messageTableTimestamp = new Date(strtotime(tablemarkers[i].getAttribute('messageTimestamp')));
			var uren = messageTableTimestamp.getHours();
			var minuten = messageTableTimestamp.getMinutes();
			var dag = messageTableTimestamp.getDate();
			var maand = messageTableTimestamp.getMonth();
			var maandArray = new Array();
			maandArray[0] = "januari";
			maandArray[1] = "februari";
			maandArray[2] = "maart";
			maandArray[3] = "april";
			maandArray[4] = "mei";
			maandArray[5] = "juni";
			maandArray[6] = "juli";
			maandArray[7] = "augustus";
			maandArray[8] = "september";
			maandArray[9] = "oktober";
			maandArray[10] = "november";
			maandArray[11] = "december";
			maand = maandArray[maand];
			if(uren < 10){uren = "0" + uren;}
			if(minuten < 10){minuten = "0" + minuten;}
			var messageText = tablemarkers[i].getAttribute('messageText');
			messageText = messageText.replace(/(\d{10)|(\d{3}\x2D\d{7})|(\d{2}\x2D\d{4} \d{4})|(\d{2}\x2D\d{8})|(\d{4}\x2D\d{6})/g,"*REPLACE*");
			var shortMessage = messageText.match(/^.{0,50}/);
			if(messageText.length > 50)
			{
				shortMessage = shortMessage + "...";
			}
			var dienst = tablemarkers[i].getAttribute('messageService');
			if(dienst == "Brandweer")
			{
				countBrandweer++;
				var column = "bericht_column_left";
				var berichtkleur = "bericht_rood";
				var color = 'r';
			}
			else if(dienst == "Ambulance")
			{
				countAmbulance++;
				var column = "bericht_column_middle";
				var berichtkleur = "bericht_blauw";
				var color = 'b';
			}
			else if((dienst == "Politie") || (dienst == "Onbekend") || (dienst == "Overig"))
			{
				countPolitie++;
				var column = "bericht_column_right";
				var berichtkleur = "bericht_groen";
				var color = 'g';
			}
			
			document.getElementById(column).innerHTML += ""+
			"<div id = 'marker"+i+"' class='bericht_" + color + "' title='" + messageText + "' onmouseover='document.getElementById(" + '"marker' +i+ '"' + ").setAttribute("+'"class"'+", " + '"bericht_'+ color +'_selected"' + ");' onmouseout='document.getElementById(" + '"marker' +i+ '"' + ").setAttribute("+'"class"'+", " + '"bericht_'+ color +'"' + ");' onclick='getMessageDetailsOnLocationTablePopup(" + tablemarkers[i].getAttribute('messageID') + ");' >"+
				"<div class='bericht_header'>"+
					"<div class='bericht_time'>"+
						"<p>" + uren + ":" + minuten + " | </p>"+
					"</div>"+
					"<div class='bericht_date'>"+
						"<p>" + dag + " " + maand + "</p>"+
					"</div>"+
				"</div>"+
				"<div class='" + berichtkleur +"'>"+
					"<p>" + shortMessage + "</p>"+
				"</div>"+
			"</div>";
		}
	//if(countBrandweer == 0){document.getElementById("bericht_column_left").innerHTML += '<p>geen meldingen</p>';}
	//if(countAmbulance == 0){document.getElementById("bericht_column_middle").innerHTML += '<p>geen meldingen</p>';}
	//if(countPolitie == 0){document.getElementById("bericht_column_right").innerHTML += '<p>geen meldingen</p>';}
	for(countBrandweer; countBrandweer < limit; countBrandweer++){document.getElementById("bericht_column_left").innerHTML += '<div class="bericht_placeholder"></div>';}
	for(countAmbulance; countAmbulance < limit; countAmbulance++){document.getElementById("bericht_column_middle").innerHTML += '<div class="bericht_placeholder"></div>';}
	for(countPolitie; countPolitie < limit; countPolitie++){document.getElementById("bericht_column_right").innerHTML += '<div class="bericht_placeholder"></div>';}
	
}

function getMessageDetailsOnLocationTablePopup(messageId, xmltype, skipzoom)
{
	
	if(xmltype == 'kaart')
	{
		var detailedMessages = kaartmarkersxml;
	}
	else if(xmltype == 'seperate')
	{
		var detailedMessages = new Array();
		showPopupMessage(messageId, "skip", skipzoom);
	}
	else
	{
		var detailedMessages = xmltable.documentElement.getElementsByTagName('tablemarker');
	}
	
	
	for(var i = 0; i < detailedMessages.length; i++) 
	{
		if(detailedMessages[i].getAttribute('messageID') == messageId){
			var markerArray = new Array();
			
			var lat = parseFloat(detailedMessages[i].getAttribute("messageLatitude"));
			var lng = parseFloat(detailedMessages[i].getAttribute("messageLongitude"));
			
			markerArray['latitude'] = lat;
			markerArray['longitude'] = lng;
			markerArray['latlng'] = new google.maps.LatLng(lat,lng);
			markerArray['melding'] = detailedMessages[i].getAttribute("messageText");
			markerArray['label'] = detailedMessages[i].getAttribute("messageLabel");
			markerArray['capcode'] = detailedMessages[i].getAttribute("message_capcode");
			markerArray['markertimestamp'] = detailedMessages[i].getAttribute("messageTimestamp");
			markerArray['id'] = detailedMessages[i].getAttribute("messageID");
			markerArray['service'] = detailedMessages[i].getAttribute("messageService");
			markerArray['urgency'] = detailedMessages[i].getAttribute("messageUrgency");
			markerArray['messageRegionName'] = detailedMessages[i].getAttribute("messageRegionName");
			markerArray['googleAddress'] = detailedMessages[i].getAttribute("messageGoogleAddress");
			markerArray['googlePlaatsnaam'] = detailedMessages[i].getAttribute("messageGooglePlaatsnaam");
			markerArray['googleProvincie'] = detailedMessages[i].getAttribute("messageGoogleProvincie");
			markerArray['blocked'] = detailedMessages[i].getAttribute("blocked");
			if(markerArray['urgency'] == 0){markerArray['urgency'] = 3;}
			showPopupMessage(markerArray, detailedMessages[i]);
			break;
		}
	}
} 

function make(url, title)
{	
	url = 'http://' + url;
	document.getElementById('sharethis').innerHTML = "";
	 var a = document.createElement('a');
	 a.setAttribute('class', 'addthis_button');
	 a.setAttribute("onmouseover", "return addthis_open(this, '', '"+url+"', '"+title+"')");
	 a.setAttribute("onclick", "return addthis_sendto()");
	 a.setAttribute("onmouseout", "addthis_close()");
	 a.innerHTML = '<img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" />';
	 document.getElementById('sharethis').appendChild(a);
}

function showPopupMessage(messageArray, newarray, skipzoom)
{	
	var newarraytype = typeof(newarray);
	
	var lat = messageArray['latitude'];
	var lng = messageArray['longitude'];
	messageArray['lat'] = lat;
	messageArray['lng'] = lng;
	if(newarraytype == "object"){
		//alert(kaartmarkersxml);
		//var newElement = new Object()
		/*var div = new Object();
		var newElement = document.createElement('marker');
		newElement.setAttribute('messageID',newarray.getAttribute('messageID'));
		newElement.setAttribute('messageLatitude',newarray.getAttribute('messageLatitude'));
		newElement.setAttribute('messageLongitude',newarray.getAttribute('messageLongitude'));
		newElement.setAttribute('messageText',newarray.getAttribute('messageText'));
		newElement.setAttribute('messageLabel',newarray.getAttribute('messageLabel'));
		newElement.setAttribute('message_capcode',newarray.getAttribute('message_capcode'));
		newElement.setAttribute('messageTimestamp',newarray.getAttribute('messageTimestamp'));
		newElement.setAttribute('messageService',newarray.getAttribute('messageService'));
		newElement.setAttribute('messageUrgency',newarray.getAttribute('messageUrgency'));
		newElement.setAttribute('messageRegionName',newarray.getAttribute('messageRegionName'));
		newElement.setAttribute('messageGoogleAddress',newarray.getAttribute('messageGoogleAddress'));
		newElement.setAttribute('messageGooglePlaatsnaam',newarray.getAttribute('messageGooglePlaatsnaam'));
		newElement.setAttribute('messageGoogleProvincie',newarray.getAttribute('messageGoogleProvincie'));
		newElement.setAttribute('blocked',newarray.getAttribute('blocked'));
		//div[0] = newElement;
		var nummer = kaartmarkersxml.length;
		
		//kaartmarkersxml[nummer] = newElement;
		var testje = new Array();
		//testje = kaartmarkersxml;
		testje.push(kaartmarkersxml);
		testje.push(newElement);
		kaartmarkersxml = testje;*/

		//alert(kaartmarkersxml.length);
		//kaartmarkersxml[nummer] = div[0];
		
		if(newarray.getAttribute('blocked') != 1)
		{
			placeMarker(messageArray);
		}
	}
	
	
	
	

	if(skipzoom == "yes"){
		var latlng = new google.maps.LatLng(lat,lng);
		onManualZoom = 0;
		//alert(latlng);
		map.setCenter(latlng);
		map.setZoom(15);
		//var width = (document.getElementById('kaart').offsetWidth+473)/2;
		//var height = document.getElementById('kaart').offsetHeight/2;
		//var newLatLng = getLatLonFromPixel(width, height);
		//map.setCenter(newLatLng, 15);
		map.panBy(document.getElementById('meldingen').offsetWidth/2, 0);
	}

	document.getElementById('messageID').innerHTML = messageArray['id'];
	
	var messageWithoutSpaces = messageArray['melding'].replace(/ /g, "-");
	messageWithoutSpaces = messageWithoutSpaces.replace(/\x2F/g, "-");
	messageWithoutSpaces = messageWithoutSpaces.replace(/\x25/g, "-");
	var url = top.location.host + '/id/' + messageArray['id'] + '/' + messageWithoutSpaces;

	var title = messageArray['melding'];
	make(url, title);
	messageArray['melding'] = messageArray['melding'].replace(/(\d{10)|(\d{3}\x2D\d{7})|(\d{2}\x2D\d{4} \d{4})|(\d{2}\x2D\d{8})|(\d{4}\x2D\d{6})/g,"*REPLACE*");
	document.getElementById('messageText').innerHTML = messageArray['melding'];
	document.getElementById('message_capcode').innerHTML = messageArray['capcode'];
	document.getElementById('messageLabel').innerHTML = messageArray['label'];
	var d = new Date(strtotime(messageArray['markertimestamp']));
	var date = d.getDate();
	var month = d.getMonth()+1;
	var year = d.getFullYear();
	var hours = d.getHours();
	var minutes = d.getMinutes();
	var seconds = d.getSeconds();
	if(hours < 10){hours = "0" + hours;}
	if(minutes < 10){minutes = "0" + minutes;}
	if(seconds < 10){seconds = "0" + seconds;}
	if(messageArray['urgency'] == 1){messageArray['urgency'] = 'Hoog';}
	else if(messageArray['urgency'] == 2){messageArray['urgency'] = 'Midden';}
	else if(messageArray['urgency'] == 3){messageArray['urgency'] = 'Laag';}
	else if(messageArray['urgency'] == 0){messageArray['urgency'] = 'Onbekend';}
	document.getElementById('messageTimestamp').innerHTML = date + "-" + month + "-" + year + " " + hours + ":" + minutes + ":" + seconds;
	document.getElementById('messageUrgency').innerHTML = messageArray['urgency'];
	document.getElementById('messageService').innerHTML = messageArray['service'];
	var regionWithoutSpaces = messageArray['messageRegionName'].replace(/\x2D/g, '_');
	var regionWithoutSpaces = regionWithoutSpaces.replace(/ /g, '-');
	var plaatsnaamWithoutSpaces = messageArray['googlePlaatsnaam'].replace(/\x2D/g, '_');
	var plaatsnaamWithoutSpaces = plaatsnaamWithoutSpaces.replace(/ /g, '-');
	
	document.getElementById('messageRegionName').innerHTML = '<a href="' + getBaseUrl() + '/regio/' + regionWithoutSpaces + '">' + messageArray['messageRegionName'] + '</a>';
	//document.getElementById('messageGoogleAddress').innerHTML = messageArray['googleAddress'];
	document.getElementById('messageGooglePlaatsnaam').innerHTML = '<a href="' + getBaseUrl() + '/plaats/' + plaatsnaamWithoutSpaces + '/provincie/' + messageArray['googleProvincie'] + '">' + messageArray['googlePlaatsnaam'] + '</a>';
	if(messageArray['googleProvincie'] != "Onbekend"){
		document.getElementById('messageGoogleProvincie').innerHTML = '<a href="' + getBaseUrl() + '/provincie/' + messageArray['googleProvincie'] + '">' + messageArray['googleProvincie'] + '</a>';
	}
	else
	{
		document.getElementById('messageGoogleProvincie').innerHTML = messageArray['googleProvincie'];
	}
	showPopup('popupDetail');
}


function gotoSearchQuery(searchQuery)
{
	var geocoder = new google.maps.Geocoder();
	var address = searchQuery;
	if(geocoder) 
	{
		var limitbounds = new google.maps.LatLngBounds;
		limitbounds.extend(new google.maps.LatLng(53.6756, 7.2276122));
		limitbounds.extend(new google.maps.LatLng(50.750449, 3.3316));
		geocoder.geocode({'address': address, 'bounds': limitbounds, 'region': 'nl', 'language': 'nl'}, function(results, status){
			if(status == google.maps.GeocoderStatus.OK) 
			{
				var corners = new Array();
				var bounds = results[0].geometry.viewport;

				corners['maxLat'] = bounds.getNorthEast().lat();
				corners['maxLng'] = bounds.getNorthEast().lng();
				corners['minLat'] = bounds.getSouthWest().lat();
				corners['minLng'] = bounds.getSouthWest().lng();
				getMessageDetails("drag", corners);
			}
			else
			{
				alert("Onbekende zoekopdracht");
				getMessageDetails("Nederland");
			}
		});
	}
}

function strtotime(str, now)
{

	str = str.replace(/\s{2,}|^\s|\s$/g, ' '); // unecessary spaces
	str = str.replace(/[\t\r\n]/g, ''); // unecessary chars 

	if (str == 'now') return (new Date()).getTime();
	else if (!isNaN(parse = Date.parse(str))) return parse;
	else if (now) now = new Date(now);
	else now = new Date();

	str = str.toLowerCase();

	var __is =
	{
		day:
		{
			'sun': 0, 'mon': 1, 'tue': 2, 'wed': 3,
			'thu': 4, 'fri': 5, 'sat': 6
		},
		mon:
		{
			'jan': 0, 'feb': 1, 'mar': 2, 'apr': 3, 'may': 4,  'jun': 5,
			'jul': 6, 'aug': 7, 'sep': 8, 'oct': 9, 'nov': 10, 'dec': 11
		}
	}

	var match = str.match(/^(\d{2,4}-\d{2}-\d{2})(\s\d{1,2}:\d{1,2}(:\d{1,2})?)?$/);

	if (match != null)
	{
		if (!match[2])
			match[2] = '00:00:00';
		else if (!match[3])
			match[2] += ':00';

		var s = match[1].split(/-/g);

		for (var i in __is.mon)
			if (__is.mon[i] == s[1] - 1)
				s[1] = i;

		return strtotime(s[2] + ' ' + s[1] + ' ' + s[0] + ' ' + match[2]);
	}

	var regex = '([+-]?\\d+\\s'
			  + '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'
			  + '|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'
			  + '|thu\.?|thursday|fri\.?|friday|sat\.?|saturday)'
			  + '|(last|next)\\s'
			  + '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'
			  + '|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'
			  + '|thu\.?|thursday|fri\.?|friday|sat\.?|saturday))'
			  + '(\\sago)?';

	match = str.match(new RegExp(regex, 'g'));

	if (match == null)
	{
		return false;
	}

	for (var i in match)
	{
		if (!process(match[i].split(' ')))
		{
			return false;
		}
	}

	return now;

	function process(m)
	{
		var ago = (m[2] && m[2] == 'ago');
		var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);

		switch (m[0])
		{
			case 'last':
			case 'next':

				switch (m[1].substring(0, 3))
				{
					case 'yea':
						now.setFullYear(now.getFullYear() + num);
						break;
					case 'mon':
						now.setMonth(now.getMonth() + num);
						break;
					case 'wee':
						now.setDate(now.getDate() + (num * 7));
						break;
					case 'day':
						now.setDate(now.getDate() + num);
						break;
					case 'hou':
						now.setHours(now.getHours() + num);
						break;
					case 'min':
						now.setMinutes(now.getMinutes() + num);
						break;
					case 'sec':
						now.setSeconds(now.getSeconds() + num);
						break;
					default:

						var day;

						if (typeof (day = __is_day[m[1].substring(0, 3)]) != 'undefined')
						{
							var diff = day - now.getDay();

							if (diff == 0)
							{
								diff = 7 * num;
							}
							else if (diff > 0)
							{
								if (m[0] == 'last') diff -= 7;
							}
							else
							{
								if (m[0] == 'next') diff += 7;
							}

							now.setDate(now.getDate() + diff);
						}
				}

				break;

			default:

				if (/\d+/.test(m[0]))
				{
					num *= parseInt(m[0]);

					switch (m[1].substring(0, 3))
					{
						case 'yea':
							now.setFullYear(now.getFullYear() + num);
							break;
						case 'mon':
							now.setMonth(now.getMonth() + num);
							break;
						case 'wee':
							now.setDate(now.getDate() + (num * 7));
							break;
						case 'day':
							now.setDate(now.getDate() + num);
							break;
						case 'hou':
							now.setHours(now.getHours() + num);
							break;
						case 'min':
							now.setMinutes(now.getMinutes() + num);
							break;
						case 'sec':
							now.setSeconds(now.getSeconds() + num);
							break;
					}
				}
				else
				{
					return false;
				}

				break;

		}

		return true;
	}

}


function replaceGoogle()
{
	$('#googleMap').find('img').eq(0).parent().parent().css({left:'25px',bottom:'150px'});
}

function meldingenOverigAddTitle(meldingID, label)
{
	$('#overigemelding'+meldingID).append('<div id="meldingoverig'+meldingID+'title" class="overigLabel">'+label+'</div>');
}

function meldingenOverigRemoveTitle(meldingID)
{
	$('#meldingoverig'+meldingID+'title').remove();
}


/**
 * Parses the given XML string and returns the parsed document in a
 * DOM data structure. This function will return an empty DOM node if
 * XML parsing is not supported in this browser.
 * @param {string} str XML string.
 * @return {Element|Document} DOM.
 */
function xmlParse(str) {
  if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') {
    var doc = new ActiveXObject('Microsoft.XMLDOM');
    doc.loadXML(str);
    return doc;
  }

  if (typeof DOMParser != 'undefined') {
    return (new DOMParser()).parseFromString(str, 'text/xml');
  }

  return createElement('div', null);
}

// Deletes all markers in the array by removing references to them
function v3deleteOverlays() {
  if (v3markersArray) {
    for (i in v3markersArray) {
      v3markersArray[i].setMap(null);
    }
    v3markersArray.length = 0;
  }
}

// Removes the overlays from the map, but keeps them in the array
function v3clearOverlays() {
  if (v3markersArray) {
    for (i in v3markersArray) {
      v3markersArray[i].setMap(null);
    }
  }
}


function setTimeSlider(value, max)
{	//alert("value: " + value + ", max: " + max);
	if(isNaN(value))
	{
		value = 5;
		max = 5;
	}
			$("#slider").slider({
				value:value,
				min: 5,
				max: max,
				step: 1,
				slide: function(event, ui) {
					var waarde =ui.value ;
					if(ui.value > 1440)
					{
						waarde = Math.ceil(ui.value/1440);
						document.getElementById('tijdsaanduiding').innerHTML = "dagen";
					}
					else if(ui.value > 60)
					{
						waarde = Math.ceil(ui.value/60);
						document.getElementById('tijdsaanduiding').innerHTML = "uur";
					}
					else
					{
						document.getElementById('tijdsaanduiding').innerHTML = "minuten";
					}
					$("#amount").val(waarde);
				}
			});
			var ui = $("#slider").slider("value");
			if(ui > 1440)
			{
				ui = Math.ceil(ui/1440);
				document.getElementById('tijdsaanduiding').innerHTML = "dagen";
			}
			else if(ui > 60)
			{
				ui = Math.ceil(ui/60);
				document.getElementById('tijdsaanduiding').innerHTML = "uur";
			}
			else
			{
				document.getElementById('tijdsaanduiding').innerHTML = "minuten";
			}
			$("#amount").val(ui);
}

function getTwoCharProvince(searchQuery)
{
	var provincie = searchQuery.match(/\x28[A-Z]{2}\x29/).toString();
	provincie = provincie.replace(/\x28/,'');
	provincie = provincie.replace(/\x29/,'');
	var provincieArray = new Array();
	provincieArray['DR'] = 'Drenthe';
	provincieArray['FL'] = 'Flevoland';
	provincieArray['FR'] = 'Friesland';
	provincieArray['GD'] = 'Gelderland';
	provincieArray['GR'] = 'Groningen';
	provincieArray['LB'] = 'Limburg';
	provincieArray['NB'] = 'Noord-Brabant';
	provincieArray['NH'] = 'Noord-Holland';
	provincieArray['OV'] = 'Overijssel';
	provincieArray['UT'] = 'Utrecht';
	provincieArray['ZL'] = 'Zeeland';
	provincieArray['ZH'] = 'Zuid-Holland';
	provincie = provincieArray[provincie];
	return provincie;
}

function getProvinceTwoChar(searchQuery)
{
	var provincieArray = new Array();
	provincieArray['Drenthe'] = 'DR';
	provincieArray['Flevoland'] = 'FL';
	provincieArray['Friesland'] = 'FR';
	provincieArray['Gelderland'] = 'GD';
	provincieArray['Groningen'] = 'GR';
	provincieArray['Limburg'] = 'LB';
	provincieArray['Noord-Brabant'] = 'NB';
	provincieArray['Noord-Holland'] = 'NH';
	provincieArray['Overijssel'] = 'OV';
	provincieArray['Utrecht'] = 'UT';
	provincieArray['Zeeland'] = 'ZL';
	provincieArray['Zuid-Holland'] = 'ZH';
	provincie = provincieArray[searchQuery];
	return provincie;
}

function getCorners()
{
	var overlay;
	overlay = new google.maps.OverlayView();
	overlay.draw = function() {};
	overlay.setMap(map);
	
	//google.maps.event.addListener(map, 'projection_changed', function(event) {
		//
		//
		//var newLatLng = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(width, height));
		//map.setCenter(newLatLng, map.getZoom());
		
	//});
	var width = (document.getElementById('kaart').offsetWidth+document.getElementById('meldingen').offsetWidth+10)/2;
	var height = document.getElementById('kaart').offsetHeight/2;

	var corners = new Array();
	corners['maxLat'] = map.getBounds().getNorthEast().lat(); //goed
	//corners['maxLng'] = map.getBounds().getNorthEast().lng();
	if(overlay.getProjection()){
		corners['maxLng'] = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(width, height)).lng();
		}
	else{
		setTimeout(function(){corners['maxLng'] = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(width, height)).lng();},1000);
	}

	corners['minLat'] = map.getBounds().getSouthWest().lat(); //goed
	//corners['minLng'] = map.getBounds().getSouthWest().lng();
	corners['minLng'] = map.getBounds().getSouthWest().lng();
	return corners;
}


function addTitleTag(latlng, melding) 
{
	//alert(map.getCenter());
	var titletag = document.createElement('div');
	//titletag.setAttribute("class","titletag");
	//titletag.setAttribute("class","label");
	//titletag.className = 'titletag';
	titletag.className = 'label';
	
	titletag.style.position = 'absolute';
	
	var overlay;
	overlay = new google.maps.OverlayView();
	overlay.draw = function() {};
	overlay.setMap(map);

	//google.maps.event.addListener(map, 'projection_changed', function(event) {
		titletag.style.left = overlay.getProjection().fromLatLngToContainerPixel(latlng).x + 'px';
		titletag.style.top = overlay.getProjection().fromLatLngToContainerPixel(latlng).y + document.getElementById('header').offsetHeight + document.getElementById('navbar').offsetHeight + 'px';
		//alert(map.fromLatLngToDivPixel(latlng));
		titletag.innerHTML = melding;
		document.body.appendChild(titletag);
	//});
	
}

function addMultipleTitleTag(left, top, melding) 
{
	//alert(map.getCenter());
	var titletag = document.createElement('div');
	//titletag.setAttribute("class","titletag");
	titletag.setAttribute("class","label");
	//titletag.className = 'titletag';
	//titletag.className = 'label';
	titletag.style.position = 'absolute';
	titletag.style.left = left + 'px';
	titletag.style.top = top + document.getElementById('header').offsetHeight + document.getElementById('navbar').offsetHeight + 'px';
	//alert(map.fromLatLngToDivPixel(latlng));
	titletag.innerHTML = melding;
	document.body.appendChild(titletag);
	
}


function getLabel(melding)
{
	if(melding.length > 80)
	{
		var part1 = melding.match(/.{40}.*? /);
		var part2 = melding.replace(part1, '');
		var part2safe = part2;
		part2 = part2.match(/.{40}.*? /);
		if(part2){
			var part3 = melding.replace(part1, '');
			part3 = part3.replace(part2, '');
			var label = part1 + "<br/>" + part2 + "<br/>" + part3;
		}
		else{var label = part1 + "<br/>" + part2safe;}
	}
	else if(melding.length > 40)
	{
		var part1 = melding.match(/.{40}.*? /);
		if(part1){
			var part2 = melding.replace(part1, '');
			var label = part1 + "<br/>" + part2 ;
		}
		else{var label = melding;}
	}
	else
	{
		var label = melding;
	}
	return label;
}


function getRegioTwitterAccount(regio)
{
	var ta = new Array();
	ta['Amsterdam-Amstelland'] = 'alarmcheckAdam';
	ta['Brabant-Midden-en-West'] = 'AlarmcheckBraMW';
	ta['Brabant-Noord'] = 'AlarmcheckBraNo';
	ta['Brabant-Zuid_Oost'] = 'AlarmcheckBraZO';
	ta['Drenthe'] = 'AlarmcheckRegDR';
	ta['Flevoland'] = 'AlarmcheckRegFL';
	ta['Friesland'] = 'AlarmcheckRegFR';
	ta['Gelderland-Midden'] = 'AlarmcheckGDMid';
	ta['Gelderland-Zuid'] = 'AlarmcheckGDZui';
	ta['Gooi-en-Vechtstreek'] = 'AlarmcheckGenV';
	ta['Groningen'] = 'AlarmcheckRegGR';
	ta['Haaglanden'] = 'AlarmcheckHL';
	ta['Hollands-Midden'] = 'AlarmcheckHolMi';
	ta['IJsselland'] = 'AlarmcheckIJs';
	ta['Kennemerland'] = 'AlarmcheckKen';
	ta['Kustwachtcentrum'] = 'AlarmcheckKust';
	ta['Lifeliner-1'] = 'AlarmcheckLife1';
	ta['Lifeliner-2'] = 'AlarmcheckLife2';
	ta['Lifeliner-3'] = 'AlarmcheckLife3';
	ta['Limburg-Noord'] = 'AlarmcheckLimNo';
	ta['Limburg_Zuid'] = 'AlarmcheckLimZu';
	ta['Noord-en-Oost-Gelderland'] = 'AlarmcheckGDNO';
	ta['Noord-Holland-Noord'] = 'AlarmcheckNHN';
	ta['Rotterdam-Rijnmond'] = 'AlarmcheckRR';
	ta['Twente'] = 'AlarmcheckTwent';
	ta['Utrecht'] = 'AlarmcheckRegUT';
	ta['Zaanstreek-Waterland'] = 'AlarmcheckZaWa';
	ta['Zeeland'] = 'AlarmcheckRegZL';
	ta['Zuid-Holland-Zuid'] = 'AlarmcheckZHZ';

	twitter = ta[regio];
	return twitter;
}

function getProvinceTwitterAccount(province)
{
	var ta = new Array();
	ta['Drenthe'] = 'AlarmcheckDRE';
	ta['Flevoland'] = 'AlarmcheckFL';
	ta['Friesland'] = 'AlarmcheckFR';
	ta['Gelderland'] = 'AlarmcheckGD';
	ta['Groningen'] = 'AlarmcheckGR';
	ta['Limburg'] = 'AlarmcheckLB';
	ta['Noord-Brabant'] = 'AlarmcheckNB';
	ta['Noord-Holland'] = 'AlarmcheckNH';
	ta['Overijssel'] = 'AlarmcheckOV';
	ta['Utrecht'] = 'AlarmcheckUT';
	ta['Zeeland'] = 'AlarmcheckZL';
	ta['Zuid-Holland'] = 'AlarmcheckZH';

	twitter = ta[province];
	return twitter;
}


function addCustomControl(controlDiv, map, controlName) {

  var controlUI = document.createElement('DIV');
  controlUI.style.padding = 0 + 'px';
  controlUI.style.margin = 0 + 'px';
  controlUI.style.lineHeight = 0 + 'px';
  controlUI.style.cursor = 'pointer';
  
  if(controlName == 'zoomIn'){
    controlUI.title = 'Inzoomen';
	controlUI.innerHTML = '<img src="'+getBaseUrl() + '/public/images/g_up.png"/>';
	}
  else if(controlName == 'zoomOut'){
    controlUI.title = 'Uitzoomen';
	controlUI.innerHTML = '<img src="'+getBaseUrl() + '/public/images/g_down.png"/>';
	}
  controlDiv.appendChild(controlUI);

  if(controlName == 'zoomIn'){
	  google.maps.event.addDomListener(controlUI, 'click', function() {
		map.setZoom(map.getZoom() + 1);
		map.panBy(-(document.getElementById('meldingen').offsetWidth/2), 0);
	  });
	  }
 else if(controlName == 'zoomOut'){
  google.maps.event.addDomListener(controlUI, 'click', function() {
		map.setZoom(map.getZoom() - 1);
		map.panBy(document.getElementById('meldingen').offsetWidth/4, 0); // KLOP NOG NIE
	  });
	 }
}

function success(position) {  
  var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
  
  var image = new google.maps.MarkerImage(getBaseUrl() + '/public/images/my-location.png',
  new google.maps.Size(22, 22),
  new google.maps.Point(0,0),
  new google.maps.Point(11,11));

  //icon: image,
  //shadow: shadow
  var marker = new google.maps.Marker({
      position: latlng, 
      map: map, 
      title:"Uw locatie",
      icon: image
  });
  
  setTimeout(function(){getMessageDetails(position.coords.latitude + ', ' + position.coords.longitude);},2000);
}

function error(msg) {
  var s = document.querySelector('#status');
  s.innerHTML = typeof msg == 'string' ? msg : "failed";
  s.className = 'fail';
  
  // console.log(arguments);
}


