var place;
var map;
var position_w = 0;
var position_h = 0;
var position_z = 0;
var ustawienia = 0;
var parametry;

function addMarker(longitude, latitude, description)
{
	var marker = new GMarker(new GLatLng(latitude, longitude));
	if (description) {
		GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(description);
		});
	}
	map.addOverlay(marker);
}

function addUser(longitude, latitude, miasto, wojewodztwo, nick, ilosc, userid )
{
	addMarker(longitude, latitude, '<div class="infobox"><strong>'+nick+'</strong><br /><b>'+miasto+', '+wojewodztwo+'</b><br />Ilość ogłoszeń: <b>'+ilosc+'</b><br /><a href="uzytkownik'+userid+'.html">Pokaż ogłoszenia tego użytkownika</a><br /><a href="wiadomosc,0,'+userid+'.html">Wyślij wiadomość do tego użytkownika</a></div>')
}

function getDistance(p1, p2)
{
	var a=Math.deg2rad(90-p1.y);
	var b=Math.deg2rad(90-p2.y);
	var theta=Math.deg2rad(p2.x-p1.x);
	var c=Math.acos(Math.cos(a)*Math.cos(b)+Math.sin(a)*Math.sin(b)*Math.cos(theta));
	var odl=c*EARTH_RADIUS;
	if (odl > 1000) odl = parseInt(odl/100)/10 + ' km';
	else odl = parseInt(odl) + ' m';
	return odl;
}

function getRandomPoint() {
	var lat = 48.25 + (Math.random() - 0.5)*14.5;
	var lng = 11.00 + (Math.random() - 0.5)*36.0;
	return new GLatLng(Math.round(lat*10)/10, Math.round(lng*10)/10);
}

function punkty(n)
{
	var batch = [];
	for (var i = 0; i < n; ++i) {
		batch.push(new GMarker(getRandomPoint()));
	}
	return batch;
}

function load() {
	if (GBrowserIsCompatible()) {
		if (document.getElementById("mapa2")) {
			map = new GMap2(document.getElementById("mapa2"));
			map.addControl(new GOverviewMapControl());
			map.addControl(new GMapTypeControl());
			map.addControl(new GLargeMapControl());

			if (position_w && position_h && position_z) {
				map.setCenter(new GLatLng(position_w, position_h), position_z);
				place = new GMarker(new GLatLng(position_w, position_h));
				map.addOverlay(place);
			} else {
				map.setCenter(new GLatLng(52.133488040771496, 19.1162109375), 6);
			}

			if (ustawienia) {
				GEvent.addListener(map, 'click', function(overlay, point) {
					if (point) {
						document.getElementById('wsp').google_h.value = point.x;
						document.getElementById('wsp').google_w.value = point.y;
						document.getElementById('wsp').google_z.value = map.getZoom();
						if (place) map.removeOverlay(place);
						place = new GMarker(point);
						map.panTo(point);
						map.addOverlay(place);
					}
				});
			} else {
				new Ajax('mapdata.php', {postBody: 'bounds='+map.getBounds()+'&'+parametry, onComplete:function(r){eval(r)}}).request();
				GEvent.addListener(map, "moveend" , function(){if(map.getInfoWindow().isHidden())new Ajax('mapdata.php', {postBody: 'bounds='+map.getBounds()+'&'+parametry, onComplete:function(r){eval(r)}}).request()});
			}
		} else {
			map = new GMap2(document.getElementById("mainmap"));
			map.addControl(new GMapTypeControl());
			map.addControl(new GLargeMapControl());
			map.setCenter(new GLatLng(52.1065,18.9404), 5);

			new Ajax('mapdata.php', {postBody: 'bounds='+map.getBounds(), onComplete:function(r){eval(r)}}).request();
			GEvent.addListener(map, "moveend" , function(){if(map.getInfoWindow().isHidden())new Ajax('mapdata.php', {postBody: 'bounds='+map.getBounds(), onComplete:function(r){eval(r)}}).request()});
		}
	}
}

window.addEvent('load', load);
window.addEvent('unload', GUnload);
