/* -------------------------------------------------------------------------
     Zestaw fukcji obsługi obiektu google.maps serwisu SAR
		 (c) 2007, developed by Leszek Szamocki
     v10.40a
   ------------------------------------------------------------------------- */

var selected;
	 
function markers_update(map)
{
	var zoom = map.getZoom();
	
	for(i=0; i < map.markers.length; i++)
	{
		var c_visible = map.markers[i].getVisible();
		var n_visible = false;
	
		switch(map.markers[i].icon_type)
		{
		case 0:
			n_visible = true;
			break;
		case 1:
			n_visible = (zoom > 3);
			break;
		default:
			n_visible = (zoom > 6);
			break;
		}
		if(n_visible)
		{
			if(!c_visible)
				map.markers[i].setVisible(true);
		}
		else
			if(c_visible)
				map.markers[i].setVisible(false);
	}
}

function animate_marker(map, marker)
{
	function start(map, marker)
	{
		stop(map, selected);
		var pos = marker.getPosition();
		marker.step = 0;
		marker.interval = setInterval(function(){animate(map, marker);}, 100);
		selected = marker;
		var bounds = map.getBounds();
		if(!bounds.contains(pos))
			map.panTo(pos);
	}
	
	function stop(map, marker)
	{
		if(marker)
		{
			marker.step = 0;
			if(marker.interval != 0)
			{	
				clearInterval(marker.interval);
				marker.setIcon(marker.start_icon);
				marker.interval = 0;
			}
		}
	}

	start(map, marker);
}

function animate_location(map, location)
{
	for(i=0; i < map.markers.length; i++)
		if(map.markers[i].location_id == location)
		{
			animate_marker(map, map.markers[i]);
			break;
		}
}

function marker_click(map, marker)
{
	if(marker)
	{
		call_php('object_data.php', 'lid='+marker.location_id, function(x) {update_data(x);});
		animate_marker(map, marker);
	}
}

function animate(map, marker)
{
	if(marker.step == 0)
		marker.direction = 1;

		if(marker.step == 4)
		marker.direction = -1;
	
	marker.step += marker.direction; //alert(marker.type);
  var i = marker.start_icon;
	var icon = new google.maps.MarkerImage(marker.url + marker.step + '.png', i.size, i.origin, i.anchor);
	marker.setIcon(icon);
}

function update_data(data)
{
	document.getElementById('dis_object').innerHTML = data;
}

function get_z_index(type)
{
	return 5 - type;
}

function add_sar_marker(map, type, lat, lng, m_title, location_id)
{
	var i = map.icons[type];
	var icon = new google.maps.MarkerImage(i.image, i.iconSize, i.iconOrigin, i.iconAnchor);
	var shadow = new google.maps.MarkerImage(i.shadow, i.shadowSize, i.iconOrigin, i.iconAnchor);
	var pos = new google.maps.LatLng(lat, lng);
	var options = { icon: icon, map: map, title: m_title, position: pos, shadow: shadow, 
								  visible: true, zIndex: get_z_index(type)};
	var marker = new google.maps.Marker(options);
	
	marker.location_id = location_id;
	marker.icon_type = type;
	marker.start_icon = icon;
	marker.url = i.image.substring(0, 16)
	map.markers.push(marker);
	google.maps.event.addListener(marker, 'click', function() {marker_click(map, marker, location_id);});
}

function add_sar_icon(map, type)
{
	var icon = {};
	var ix = 42;
	var iy = 50;
	var px = 0;
	var sx = 73;
	if(type == 0) 
	{
		ix = 60;
		iy = 60;
		px = 30;
		sx = 80
	}
	else if (type == 1)
	{
		ix = 50;
		iy = 50;
		px = 25;
		sx = 65
	}
	icon.image = './img/gm_icons/'+type+'0.png';
	icon.shadow = './img/gm_icons/'+type+'5.png';
	icon.iconSize = new google.maps.Size(ix, iy);
	icon.shadowSize = new google.maps.Size(sx, iy);
	icon.iconAnchor = new google.maps.Point(px, iy);
	icon.iconOrigin = new google.maps.Point(0, 0);
	map.icons.push(icon);
}
