	var centerPoint = new GLatLng(0.0, 0.0);

	var pointVilnius = new GLatLng(54.66708073763456, 25.279541015625);

	//alert('Start: ' + pointVilnius.y.toFixed(6) + ', ' + pointVilnius.x.toFixed(6));

	var startMarker = null;
	var endMarker = null;
	var routes = new Array();


	var baseIcon = new GIcon();
	//width, height
	baseIcon.iconSize=new GSize(16,20);
	baseIcon.iconAnchor=new GPoint(8,20);
	baseIcon.infoWindowAnchor=new GPoint(10,0);

	startIcon = new GIcon(baseIcon, "/images/p_small.png", null);
	endIcon = new GIcon(baseIcon, "/images/p_small.png", null);
	chartIcon = new GIcon(baseIcon, "/images/pb_small.png", null);



function createEndMarker(point, city, infoHTML, showPopup){
		endMarker = createMarker(point,city,infoHTML, 1,endIcon,showPopup)
		map.addOverlay(endMarker);

		var bounds = new GLatLngBounds();
		var p1 = startMarker.getPoint();
		var p2 = point;
		bounds.extend(p1);
		bounds.extend(p2);

		var fPoints = new Array();
		with (Math) {
			var lat1 = p1.y * (PI/180);
			var lon1 = p1.x * (PI/180);
			var lat2 = p2.y * (PI/180);
			var lon2 = p2.x * (PI/180);

			var d = 2*asin(sqrt( pow((sin((lat1-lat2)/2)),2) + cos(lat1)*cos(lat2)*pow((sin((lon1-lon2)/2)),2)));
			var bearing = atan2(sin(lon1-lon2)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon1-lon2))  / -(PI/180);
			bearing = bearing < 0 ? 360 + bearing : bearing;




			for (var n = 0 ; n < 51 ; n++ ) {
				var f = (1/50) * n;
				f = f.toFixed(6);
				var A = sin((1-f)*d)/sin(d)
				var B = sin(f*d)/sin(d)
				var x = A*cos(lat1)*cos(lon1) +  B*cos(lat2)*cos(lon2)
				var y = A*cos(lat1)*sin(lon1) +  B*cos(lat2)*sin(lon2)
				var z = A*sin(lat1)           +  B*sin(lat2)

				var latN = atan2(z,sqrt(pow(x,2)+pow(y,2)))
				var lonN = atan2(y,x)
				var p = new GLatLng(latN/(PI/180), lonN/(PI/180));
				fPoints.push(p);
//				bounds.extend(p);
			}

		}

		routes.push(fPoints);
		var pLine = new GPolyline(fPoints,'#f19700',2,0.5);
		map.addOverlay(pLine);
		//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-1); 


		var dist = d * 6378.137; // KM
		//alert('Distance: ' + dist.toFixed(2) + ' km<br>');
		//alert('Bearing: ' + bearing.toFixed(2) + '<br>\n');
return endMarker;
}

function createCharMarker(point, city, infoHTML){
		endMarker = createMarker(point,city,infoHTML, 1,chartIcon,false)
		map.addOverlay(endMarker);

		var bounds = new GLatLngBounds();
		var p1 = startMarker.getPoint();
		var p2 = point;
		bounds.extend(p1);
		bounds.extend(p2);

		var fPoints = new Array();
		with (Math) {
			var lat1 = p1.y * (PI/180);
			var lon1 = p1.x * (PI/180);
			var lat2 = p2.y * (PI/180);
			var lon2 = p2.x * (PI/180);

			var d = 2*asin(sqrt( pow((sin((lat1-lat2)/2)),2) + cos(lat1)*cos(lat2)*pow((sin((lon1-lon2)/2)),2)));
			var bearing = atan2(sin(lon1-lon2)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon1-lon2))  / -(PI/180);
			bearing = bearing < 0 ? 360 + bearing : bearing;




			for (var n = 0 ; n < 51 ; n++ ) {
				var f = (1/50) * n;
				f = f.toFixed(6);
				var A = sin((1-f)*d)/sin(d)
				var B = sin(f*d)/sin(d)
				var x = A*cos(lat1)*cos(lon1) +  B*cos(lat2)*cos(lon2)
				var y = A*cos(lat1)*sin(lon1) +  B*cos(lat2)*sin(lon2)
				var z = A*sin(lat1)           +  B*sin(lat2)

				var latN = atan2(z,sqrt(pow(x,2)+pow(y,2)))
				var lonN = atan2(y,x)
				var p = new GLatLng(latN/(PI/180), lonN/(PI/180));
				fPoints.push(p);
//				bounds.extend(p);
			}

		}

		routes.push(fPoints);
		var pLine = new GPolyline(fPoints,'#2852a4',2,0.5);
		map.addOverlay(pLine);
		//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)-1); 


		var dist = d * 6378.137; // KM
		//alert('Distance: ' + dist.toFixed(2) + ' km<br>');
		//alert('Bearing: ' + bearing.toFixed(2) + '<br>\n');
return endMarker;
}


function createMarker(point,markerName,markerHtml, number,mIcon,mClickable) {

	//var htmlInfo = "";
	//htmlInfo += '<div class="bubble">';
	//htmlInfo += '<h3>' + markerName + '</h3>';
	//htmlInfo += markerHtml;
	//htmlInfo += '</div>';

	//var marker;
	//marker = new GMarker(point,{icon:mIcon, clickable:mClickable, title:markerName});

	var optinns = { text : markerName,
					icon:mIcon};
        
    var marker = new PopupMarker(point, optinns);

	if (mClickable)	{
		GEvent.addListener(marker, "click", function() {
			jQuery("#"+markerHtml).click();
			
			//marker.openInfoWindowHtml(htmlInfo);
			
		});

//		 marker.openInfoWindowHtml(html, {maxUrl:"details.htm"}); 
	}
	return marker;
}

function DEC2DMS(dec) {

	var deg = Math.floor(Math.abs(dec));
	var min = Math.floor((Math.abs(dec)-deg)*60);
	var sec = (Math.round((((Math.abs(dec) - deg) - (min/60)) * 60 * 60) * 100) / 100 ) ;

	deg = dec < 0 ? deg * -1 : deg;

	var dms  = deg + '&deg ' + min + '\' ' + sec + '"';
	return dms;
}

$(document).ready(function() {
	load();
});
