
var actx;
var acty;
var actz;
var type;

var edit = true;
var listener;
var mark;
var polygon;
var line;
var selected;

	function found(point) {
		actx = point.y;
		acty = point.x;

		$('iobiekt_tbl_iobiekt_x').value = point.y;
		$('iobiekt_tbl_iobiekt_y').value = point.x;
	}
	
	/* Zakladki do dymka z formularzami */	
	function edform(item) {
		var i=0;
		var ret = Array();
		
		// Opis
		var descDiv = document.createElement('div');
		descDiv.className = 'gpopup';
		descDiv.id = item.id;
		var desc = document.createElement('textarea');
		desc.id = "opis_"+item.id;
		desc.innerHTML = item.desc;
		descDiv.appendChild(desc);
		alldesc[item.id] = descDiv;
		//ret[i] = {label: "Opis", content: descDiv};
		//i++;
		
		// Adres
		var addrDiv = document.createElement('div');
		addrDiv.innerHTML = 'TODO: formularz Adresu';
		//ret[i] = {label: "Adres", content: addrDiv};
		//i++;
		
		if (item.type == 'marker') {
			var icoDiv = markerTab(item);
			ret[i] = {label: "Ikona", content: icoDiv};
			i++;
		}
		if (item.type == 'poly') {
			var polyDiv = polyTab(item);
			ret[i] = {label: "Obszar", content: polyDiv};
			i++;
		}
		if (item.type == 'line') {
			var lineDiv = lineTab(item);
			ret[i] = {label: "Linia", content: lineDiv};
			i++;
		}
		return ret;
	}
	
	function gshow (panel) {
		if (panel && panel != 'reset') {
/*			if ($(panel).style.display == 'none') 
				setTimeout(function(){
					new Effect.BlindDown(panel);
				}, 500); */
/*			if (listener) { 
	    		GEvent.removeListener(listener);
	    		listener = null;
	    	} */
		}
		if (panel == 'marker') {
			selected = panel;
			select("placemark_b");
			if (polygon) { 
				map.removeOverlay(polygon);
			}
			$('iobiekt_tbl_iobiekt_type').value = "marker";
/*			new Effect.BlindUp('poly');
			new Effect.BlindUp('line'); */
		}
		else if (panel == 'poly'){
			selected = panel;
			select("shape_b");
			if (polygon) { 
				map.removeOverlay(polygon);
			}
			if (mark) map.removeOverlay(mark);
			$('iobiekt_tbl_iobiekt_type').value = "poly";
/*			new Effect.BlindUp('line');
			new Effect.BlindUp('marker'); */
		}
		else if (panel == 'line'){
			selected = panel;
			select("line_b");
			if (polygon) { 
				map.removeOverlay(polygon);
			}
			if (mark) map.removeOverlay(mark);
			$('iobiekt_tbl_iobiekt_type').value = "line";
/*			new Effect.BlindUp('poly');
			new Effect.BlindUp('marker'); */
		} else if (panel == 'reset') {
/*			if (selected) {
				new Effect.toggle(selected, 'blind');
			} */
		}
		else {	
/*			new Effect.BlindUp('poly');
			new Effect.BlindUp('line');
			new Effect.BlindUp('marker'); */
		}
	}
	
	function placeMarker() {
		if (curro) {
			curro.places[0].posn = [actx, acty]; 
		} else {
			var curro = {"places":[{"posn":[0,0]}]}
		}
  		makeMarker(curro);
  		listener = GEvent.addListener(map, "click", function(overlay, latlng){
			if (latlng) {
				mark.setLatLng(latlng);
				// select("hand_b");
				found(latlng);
			}
		});
	}

function select(buttonId) {
//map.clearOverlays();
  $("hand_b").className="unselected";
  $("shape_b").className="unselected";
  $("line_b").className="unselected";
  $("placemark_b").className="unselected";
  $(buttonId).className="selected";
}

function stopEditing() {
  select("hand_b");
}

/* Funkcje wyszukiwarki */
var results = Array();

function addAddressToMap(response) {
 	//map.setZoom(10);
 	if (!response || response.Status.code != 200) {
 			alert("Serwer nie udzielił prawidłowej odpowiedzi (status "+response.Status.code+")");
 	} else {
 		divs = '';
 		if (response.Placemark.size() == 0) {
 			alert("Przykro mi, serwer nie zwrócił prawidłowej lokalizacji.\n Sprawdź czy adres jest prawidłowy.");
 		} else if (response.Placemark.size() > 1) {
 			results = Array();
 			var i=0;
 			response.Placemark._each(function(place){
 				divs = divs+"<span style='cursor: pointer;' onclick='setLocation(results["+i+"]);return true;'>"+(i+1)+". "+place.address+"</span><br/>"; 
 				results.push(place.Point);
 				i++;
 			});
 			Element.show('results');
 		} else {
 			setLocation(response.Placemark[0].Point);
 		}
 		$('results_out').innerHTML = divs;
 	}
}

function setLocation(place) {
	place = new GLatLng(place.coordinates[1],place.coordinates[0]);
	map.setZoom(14);
	map.panTo(place);
	found(place);
	mark.setLatLng(place);
}

function showLocation() {
	var address = $('geoCode').value;
	geocoder.getLocations(address, addAddressToMap);
}

/* Funkcje formularza lokalizacja */

function saveMap() {
	/* Aktualizacja nazwy obiektu (mogła zmienić się przy zapisie) */
	//var id = $('itresc_tbl_1_tresc_iobiekt_id').value;
	//$('2_'+id+'_text').innerHTML =  $('itresc_tbl_1_tresc_nazwa').value;
	//$('2_'+id+'_icon').src = basedir+'/images/ikony/20x20/'+$('iobiekt_ikona').value;
	//$('temp_icon').src = basedir+'/images/ikony/48x48/'+$('iobiekt_ikona').value;
	/* Przepisanie formularza POT	*/
	//rewrite();
	/* 	zapisanie aktualnego zoomu;	*/
	if  (map) {
		if ($('iobiekt_tbl_iobiekt_type').value != 'marker') {
			var center = map.getCenter();
			$('iobiekt_tbl_iobiekt_x').value = center.y;
			$('iobiekt_tbl_iobiekt_y').value = center.x;
		} /*else { // Nie działa jak powinno i jest redudantne do found();
			$('iobiekt_tbl_iobiekt_x').value = actx;
			$('iobiekt_tbl_iobiekt_y').value = acty;
		} */
		$('iobiekt_tbl_iobiekt_z').value = map.getZoom();
	}
}

function startEdit() {	
	actx = Number($('iobiekt_tbl_iobiekt_x').value);
	acty = Number($('iobiekt_tbl_iobiekt_y').value);
	actz = Number($('iobiekt_tbl_iobiekt_z').value);
	/* Skrypt startujacy dzialanie zakladek */
	var tabber1 = new Yetii({ id: 'tab-container-1' });
	var tabber2 = new Yetii({ id: 'tab-container-2',tabclass:'tab2' });
	/* FIXME: Odpalanie mapy - można by to było na zakładce zostawić... */
	//startmap();
}

function startmap() {
	checkMap();
	type = $('iobiekt_tbl_iobiekt_type').value;
	if (type == '' || type == 'marker') {
		type = 'marker';
		placeMarker();
		gshow('marker');
	} else {
		prepareLatLngFromJson($('polygon').value);
	}
}

function updateMap() {
	map.checkResize();
	map.setCenter(new GLatLng(actx,acty), actz);
}

function geoDialog() {
	//Element.show('geoDialog');
	$('geoCode').value = $('iobiekt_tbl_iobiekt_ulica').value+' '+
		$('iobiekt_tbl_iobiekt_numer').value+', '+
		$('iobiekt_tbl_iobiekt_kod_pocztowy').value+' '+
		$('iobiekt_tbl_iobiekt_miasto').value;
}

