// JavaScript Document
 var map = null;
var geocoder = null;
var icon = null;
var markers = [];
var activeWindow = 0;
function load() {
	
	map = new google.maps.Map(dojo.byId("gmap"), {
	mapTypeId: google.maps.MapTypeId.ROADMAP,
	navigationControl:true,
	navigationControlOptions: {style:google.maps.NavigationControlStyle.ZOOM_PAN},
		mapTypeControl: false,
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR}
	})
	geocoder = new google.maps.Geocoder();

	icon = new google.maps.MarkerImage(
		"/images/gmap/marker-green.png", 
		new google.maps.Size(20, 34),
		new google.maps.Point(0, 0),
		new google.maps.Point(5, 5)
	);
}  

function showAddress(address,bedrijfsnaam,adres, sponsor, sponsor1, geocodes) {
	var myLatlng = new google.maps.LatLng(parseFloat(geocodes.split(",")[1]),parseFloat(geocodes.split(",")[0])); 
	var marker = new google.maps.Marker({
		position: myLatlng,
		map: map,
		icon: icon
	});
	markers.push(marker);
		
	var infowindow = new google.maps.InfoWindow({
		content: adres
	});
	google.maps.event.addListener(marker, 'click', function() {
		//pageTracker._trackPageview("voorstelling/<%=activeProductie%>/bijuindebuurt/"+sponsor1+"-"+sponsor);
		infowindow.open(map,marker);
	});
}
  
function setMapPosition(address, zoom) {
 
	if (geocoder) {
		geocoder.geocode({address: address, country: "NL"}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK && results.length) {
			console.log('lokatie',results[0].geometry.location);
			map.setCenter(results[0].geometry.location);
			map.setZoom(zoom);
		}
		});		
	}

}

function setAddresses(postcode, straal, keywords, gemeente, letter) {
	dojo.xhrPost({
		url: "/ajax/adressenJson.asp?keywords="+keywords+"&gemeente="+gemeente+"&letter="+letter+"",
		handleAs: "json",
		content: {
			postcode: postcode,
			straal: straal	
		},
		load: function(data) {
			//clear markers
			dojo.forEach(markers, function(marker) {
				marker.setMap(null);
				delete marker;
			})
			markers = [];
			
			setMapPosition(data.address, data.zoom)
			dojo.forEach(data.addresses, function(address) {
				if (address.geocodes) {
					 //alert('1');
					 showAddress(address.address, address.bedrijfsnaam, address.adres, address.sponsor, address.sponsor1, address.geocodes);	
			  	} 
				
			});
		},
		error: function(data) {
			if (data == 'OVER_QUERY_LIMIT') {
				alert(data);		
			}
		}		
	});
	
	dojo.byId('keyw').focus();
}

function setAddress(postcode, straal, tid) {
	dojo.xhrPost({
		url: "/ajax/adressenJson.asp?tid="+tid+"",
		handleAs: "json",
		content: {
			postcode: postcode,
			straal: straal	
		},
		load: function(data) {
			//clear markers
			dojo.forEach(markers, function(marker) {
				marker.setMap(null);
				delete marker;
			})
			markers = [];
			
		
			dojo.forEach(data.addresses, function(address) {
				if (address.geocodes) {
					setMapPosition(address.p, data.zoom)
					showAddress(address.address, address.bedrijfsnaam, address.adres, address.sponsor, address.sponsor1, address.geocodes);	
			  	} 
				
			});
		},
		error: function(data) {
			if (data == 'OVER_QUERY_LIMIT') {
				alert(data);		
			}
		}		
	});
}


function setAddressesList(postcode, straal, keywords, gemeente, letter) {
	dojo.xhrPost({
		url: "/ajax/adressenJson.asp?json=false&keywords="+keywords+"&gemeente="+gemeente+"&letter="+letter+"",
		load: function(data) {
			dojo.byId('resultaat').innerHTML = data;
		}, error: function(data) {
			
		}		
	});
}

function setScale() {
	setAddresses(null,null,null,null,null);
	return false;
}


function zoekMap(nr,extra) {
	
	if (nr == 1) {
		if (dojo.byId('keyw').value) {
			dojo.query('a', 'alfabet').removeClass('active');
			dojo.query('a', 'gemeentelijst').removeClass('active');
			setAddresses(null,null,dojo.byId('keyw').value,null,null);
			setAddressesList(null,null,dojo.byId('keyw').value,null,null);
			return false;
		}
	}
	
	if (nr == 2) {
		if (extra) {
			dojo.query('a', 'alfabet').removeClass('active');
			dojo.query('a', 'gemeentelijst').removeClass('active');
			dojo.addClass(dojo.byId('gemeente'+extra+''),'active');
			setAddresses(null,null,null,extra,null);
			setAddressesList(null,null,null,extra,null);
			return false;
		}
	}
	
	if (nr == 3) {
		if (extra) {
			dojo.query('a', 'alfabet').removeClass('active');
			dojo.query('a', 'gemeentelijst').removeClass('active');
			dojo.addClass(dojo.byId('letter'+extra+''),'active');
			setAddresses(null,null,null,null,extra);
			setAddressesList(null,null,null,null,extra);
			return false;
		}
	}
}

