//powołujemy obiekt MapGO Api
var mapobject=createMapgoObject();
//var map_offset_x = (screen.width - 1024)/2;
mapobject.initMap(19.250000,52.000000,18,400,350,0,0);
//pokazujemy toolbar do obsługi skali i przesuwania mapy
mapobject.showToolbar();


//funkcja nasłuchująca na wynik geokodowania
function geoListener(geo_ans){
	if (geo_ans.city_list){
		//tworzymy html listy miejscowości
		var list_txt=makeCityList(geo_ans.city_list);		
		var lists=document.getElementById("listy");
		//wstawiamy w div listę miejscowości
		lists.innerHTML=list_txt;
		//pokazujemy div z listą
		lists.style.display='block';
		lists.style.visibility='visible';
	}
	else
	//jeśli w odpowiedzi otrzymamy listę ulic to generujemy listę nazw ulic do wyboru
	if (geo_ans.street_list){
		//tworzymy html listy miejscowości
		var list_txt=makeStreetList(geo_ans.street_list);
		var lists=document.getElementById("listy");
		//wstawiamy w div listę miejscowości
		lists.innerHTML=list_txt;
		//pokazujemy div z listą
		lists.style.display='block';
		lists.style.visibility='visible';		
	}
	else
	//jeśli znaleźliśmy adres to ustaw centrum mapy na współrzędne adresu oraz dodaj ikonę
//oznaczającą ten punkt
	if (geo_ans.state && geo_ans.state>2){
		document.getElementById("listy").style.visibility='hidden';
		document.getElementById("listy").style.display='none';
		//alert('Znalazłem adres.X='+geo_ans.X+',Y='+geo_ans.Y);
		document.getElementById("lon").value=geo_ans.X+'';
		document.getElementById("lat").value=geo_ans.Y+'';
		var object_list=new Array();
		//tworzymy obiekt ikony
		var icon1=new MapgoIcon();
		/* icon1.image='img/mark.png';
		icon1.width=38;
		icon1.height=38;
		icon1.icon_offx=-19;
		icon1.icon_offy=-38; */
		icon1.dragable=true;
		icon1.afterdrag_function=afterDragListener;

//podajemy opis obiektu - pojawi się w dymku po najechaniu kursorem myszy na obiekt
		//icon1.descr=document.getElementById('adres').value;

		//ustawiamy współrzędne ikony na współrzędne adresu
		icon1.lon=geo_ans.X;
		icon1.lat=geo_ans.Y;		
		object_list.push(icon1);		
		//dodajemy ikonę do mapy
		mapobject.addIconsToMap(object_list,"address_layer");
		//ustalamy centrum mapy na współrzędne adresu i ustalamy skalę na 5
		mapobject.centerMap(geo_ans.X,geo_ans.Y,5);		
		mapobject.findPointDescr(geo_ans.X,geo_ans.Y,ageolistener);		
	}
}

//funkcja tworząca listę miejscowości,kliknięcie na każdy element listy powoduje ponowne
//szukanie adresu z wybraną miejscowością
function makeCityList(city_list){
	var outstr='';
	for (var i=0;i<city_list.length;i++){outstr+='<div class="lista_wynikow" onclick="mapobject.chooseCity('+i+');">'+city_list[i].city_name+', woj. '+city_list[i].woj_name+', '+'powiat '+city_list[i].pow_name+'</div><br>';
	}
	return outstr;
}

//funkcja tworząca listę ulic do wyboru, kliknięcie na dany element listy powoduje ponowne
//szukanie adresu z wybraną ulicą
function makeStreetList(street_list){
	var outstr='';
	for (var i=0;i<street_list.length;i++){outstr+='<div class="lista_wynikow" onclick="mapobject.chooseStreet('+i+');">'+street_list[i].street_name+'</div><br>';
	}
	return outstr;
}

//funkcja uruchamia szukanie adresu
function search(address){
	mapobject.removeLayerByName("address_layer");
	if (address.length==0)
		return;
	var city='';
	var str_no='';
	if (address.indexOf(",")<=0){
		city=address;
	}
	else{
		city=address.substring(0,address.indexOf(","));
		str_no=address.substring(address.indexOf(",")+1);	
	}		
	//szukamy adresu podając jako parametry dane adresowe oraz nazwę funkcji nasłuchującej
//na wynik geokodowania
	mapobject.findAddress(city,str_no,geoListener);
}

function afterDragListener(feature){	
	document.getElementById("lon").value=feature.lon+'';
	document.getElementById("lat").value=feature.lat+'';	
}



function coordsListener(lonlat){
	//jeśli pierwsze kliknięcie to start trasy	
		//usuwamy ikony startu/konca trasy		
		mapobject.removeLayerByName('address_layer');

		var object_list=new Array();
		//tworzymy obiekt ikony
		var icon1=new MapgoIcon();
		/* icon1.image='img/mark.png';
		icon1.width=38;
		icon1.height=38;
		icon1.icon_offx=-19;
		icon1.icon_offy=-38; */
		icon1.dragable=true;
		icon1.afterdrag_function=afterDragListener;
//podajemy opis obiektu - pojawi się w dymku po najechaniu kursorem myszy na obiekt
		//icon1.descr=document.getElementById('adres').value;

		//ustawiamy współrzędne ikony na współrzędne adresu
		icon1.lon=lonlat.lon;
		icon1.lat=lonlat.lat;		
		object_list.push(icon1);		
		//dodajemy ikonę do mapy
		mapobject.addIconsToMap(object_list,"address_layer");	
		mapobject.setCursorMode('hand');		
		document.getElementById("lon").value=lonlat.lon+'';
		document.getElementById("lat").value=lonlat.lat+'';	
		mapobject.findPointDescr(lonlat.lon,lonlat.lat,ageolistener);		
}

var ___woj__='';
var ___powiat__='';
var ___miejsc__='';
var ___gmina__='';

function ageolistener(resp){	
	___woj__=resp.list[0].voiw;
	___powiat__=resp.list[0].distr;
	___miejsc__=resp.list[0].city;
	___gmina__=resp.list[0].comm;
}

