function goToPos (frm_name)
{
	frm_obj = document.forms[frm_name];
	n_deg = parseInt (frm_obj.elements['to_pos_n_deg'].value);
	n_min = parseInt (frm_obj.elements['to_pos_n_min'].value);
	n_sec = parseInt (frm_obj.elements['to_pos_n_sec'].value);

	if (n_deg < 0 || isNaN(n_deg) || n_min < 0 || isNaN(n_min) || n_sec < 0 || isNaN(n_sec))
		return alert ('Nieprawidłowe współrzędne N');

	e_deg = parseInt (frm_obj.elements['to_pos_e_deg'].value);
	e_min = parseInt (frm_obj.elements['to_pos_e_min'].value);
	e_sec = parseInt (frm_obj.elements['to_pos_e_sec'].value);

	if (e_deg < 0 || isNaN(e_deg) || e_min < 0 || isNaN(e_min) || e_sec < 0 || isNaN(e_sec))
		return alert ('Nieprawidłowe współrzędne E');

	n_pos = n_deg+(n_min/60)+(n_sec/3600);
	e_pos = e_deg+(e_min/60)+(e_sec/3600);

	point = new GLatLng(n_pos, e_pos)
	map.setCenter(point);

	map.clearOverlays();
	map.addOverlay(new GMarker(point));
	updatePos ('gpos_n', n_pos);
	updatePos ('gpos_e', e_pos);
	document.getElementById("frm_pos_e").value = e_pos;
	document.getElementById("frm_pos_n").value = n_pos;
	document.getElementById("frm_pos_zoom").value = map.getZoom();
}


function updatePos (id_prefix, dpos)
{
	dpos = parseFloat (dpos);
	if (dpos <= 0.0)
	{
		if (document.getElementById(id_prefix+'_deg'))
			document.getElementById(id_prefix+'_deg').innerHTML = '--';
		if (document.getElementById(id_prefix+'_min'))
			document.getElementById(id_prefix+'_min').innerHTML = '--';
		if (document.getElementById(id_prefix+'_sec'))
			document.getElementById(id_prefix+'_sec').innerHTML = '--';
	}
	else
	{
		var frac = dpos - Math.floor(dpos);
		var tmp_sec = frac*3600;
		var min = Math.floor(tmp_sec/60);
		var sec = Math.round(tmp_sec-(min*60)) % 60;

		if (document.getElementById(id_prefix+'_deg'))
			document.getElementById(id_prefix+'_deg').innerHTML = Math.floor(dpos);
		if (document.getElementById(id_prefix+'_min'))
			document.getElementById(id_prefix+'_min').innerHTML = min;
		if (document.getElementById(id_prefix+'_sec'))
			document.getElementById(id_prefix+'_sec').innerHTML = sec;
	}
}



function initGmap ()
{
	var start_e = parseFloat(document.getElementById("frm_pos_e").value.replace(',', '.'));
	var start_n = parseFloat(document.getElementById("frm_pos_n").value.replace(',', '.'));
	var start_zoom = parseInt(document.getElementById("frm_pos_zoom").value);
	var no_marker = 0;

	if (start_e <= 0 || isNaN(start_e) || start_n <= 0 || isNaN(start_n) || start_zoom <= 0 || isNaN (start_zoom))
	{
		no_marker = 1;
		start_n = 53.56354;
		start_e = 20.99519;
		start_zoom = 8;
	}

    if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));

		map.setCenter(new GLatLng(start_n, start_e), start_zoom);

		map.setMapType (G_NORMAL_MAP);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(0, 0)));

		if (!no_marker)
		{
			map.addOverlay(new GMarker(new GLatLng(start_n, start_e)));
			updatePos ('gpos_n', start_n);
			updatePos ('gpos_e', start_e);
			document.getElementById("frm_pos_e").value = start_e;
	    document.getElementById("frm_pos_n").value = start_n;
		}

		GEvent.addListener (map, 'moveend', function() {
			document.getElementById("frm_pos_zoom").value = map.getZoom();
		});

    GEvent.addListener(map, "click", function(overlay, point) {
         if (overlay) {
      map.removeOverlay(overlay);
			updatePos ('gpos_n', 0);
			updatePos ('gpos_e', 0);
	    document.getElementById("frm_pos_e").value = 0;
	    document.getElementById("frm_pos_n").value = 0;

          } else {
            map.clearOverlays();
            map.addOverlay(new GMarker(point));
						updatePos ('gpos_n', point.y);
						updatePos ('gpos_e', point.x);
	    document.getElementById("frm_pos_e").value = point.x;
	    document.getElementById("frm_pos_n").value = point.y;
	    document.getElementById("frm_pos_zoom").value = map.getZoom();

          }
	});
	}
}


