
function createBlankMap() {
	// blank custom map
	var nomapCpy = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180),
													  new GLatLng(90, 180)),
													  0, "No Map");

	var nomapCpyC = new GCopyrightCollection();
	nomapCpyC.addCopyright(nomapCpy);
	var noMapTL = [new GTileLayer(nomapCpyC, 0, 16)];
	noMapTL[0].getTileUrl = function(point, zoom){			
			return 'http://manolis.pgcomps.net//comps//EXT_gmaps_tile.php';
	}
	var noMapMap = new GMapType(noMapTL, new GMercatorProjection(18), 'No Map');

	this.map.addMapType(noMapMap);
}


function GetDirection(lat1, lon1, lat2, lon2) {
    var br = 0;
    br = Math.atan2(Math.sin(lon2 - lon1) *
	Math.cos(lat2), Math.cos(lat1) * Math.sin(lat2) -
    	Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) % (2 * Math.PI);
    br = (br * 180) / Math.PI;
    return br;
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	for(var ii = 0; ii < radioLength; ii++) {
		if(radioObj[ii].checked) {
			return radioObj[ii].value;
		}
	}
	return "";
}


function detectTrackCurrentType(trackID) {
	var lastTrackPointsIndex= loadedTracksList[trackID]['control']['lastTrackPointsIndex'];
	
	var orgTrackType=loadedTracksList[trackID]['info']['gliderType'];
	
	if (taskID != 222 && 0) {
		loadedTracksList[trackID]['control']['notMoving']=0;
		loadedTracksList[trackID]['control']['currentTrackType']=orgTrackType;
		loadedTracksList[trackID]['control']['altitudeMode']=-1;
		return;
	}

	var isAir=1;                            

	if ( lastTrackPointsIndex>5 ) {
		var sog=0;
		var k=0;
		var altitudeMode;
		
		var distance=0;
		var valt=0;
		var dt=0;
		var vario=0;
		for (var i=lastTrackPointsIndex-5; i<=lastTrackPointsIndex-2; i++) {	
			if (loadedTracksList[trackID]['info']['clientProgram']=='Flymaster') {
				distance+=calc_distance(
						loadedTracksList[trackID]['points'][i]['lat'],
						loadedTracksList[trackID]['points'][i]['lon'],
						loadedTracksList[trackID]['points'][i+1]['lat'],
						loadedTracksList[trackID]['points'][i+1]['lon']
				);
			}
			valt+=loadedTracksList[trackID]['points'][i+1]['alt']-loadedTracksList[trackID]['points'][i]['alt'];
			dt+=loadedTracksList[trackID]['points'][i+1]['tm']-loadedTracksList[trackID]['points'][i]['tm'];
			
			sog+=loadedTracksList[trackID]['points'][i]['sog'];
			k++;
		}
		sog=sog/k;
		
		if (loadedTracksList[trackID]['info']['clientProgram']=='Flymaster') {
			sog=distance/dt *3.6;
		}
		
		vario=valt/dt;
		
		//loadedTracksList[trackID]['info']['infoString']=sog+"km/h, "+vario+"m/s";
		
		// $("#infoDiv").append("dis:"+distance+",alt:"+valt+",dt:"+dt+",sp:"+sog+"<BR>");
		
		if (sog<1) {
			loadedTracksList[trackID]['control']['notMoving']=1;	
		} else {
			loadedTracksList[trackID]['control']['notMoving']=0;
		}
		
		if ( orgTrackType  & 0x4000 ) { // ground
			loadedTracksList[trackID]['control']['currentTrackType']=orgTrackType;
			if (!is2d) altitudeMode=ge.ALTITUDE_CLAMP_TO_GROUND;	
			
			loadedTracksList[trackID]['info']['typeOfTrack']='ground';
			// 16385=>"Walk", 16386=>"Run",16400=>"Hike",
			if (orgTrackType==16385 || orgTrackType==16386 || orgTrackType==16400) {
				if (sog>15) {
					loadedTracksList[trackID]['control']['currentTrackType']=16388; //bike
				}
			}
			
			
		} else { // air 
			if (sog>10) {
				loadedTracksList[trackID]['control']['currentTrackType']=orgTrackType;
				if (!is2d) altitudeMode=ge.ALTITUDE_ABSOLUTE;				
				loadedTracksList[trackID]['info']['typeOfTrack']='air';
			}else {
				if (!is2d) altitudeMode=ge.ALTITUDE_CLAMP_TO_GROUND;	
				loadedTracksList[trackID]['control']['currentTrackType']=16385; // walk;
				loadedTracksList[trackID]['info']['typeOfTrack']='ground';
			}
		}	
	} else {
		altitudeMode=-1;		
		loadedTracksList[trackID]['control']['notMoving']=0;
		loadedTracksList[trackID]['control']['currentTrackType']=orgTrackType;
	}
	
	loadedTracksList[trackID]['control']['altitudeMode']=altitudeMode;
	
}

function getAltitudeMode(trackID) {
	if (is2d) return -1;
	
	var altitudeMode=loadedTracksList[trackID]['control']['altitudeMode'];
	
	if (altitudeMode<0) {
		if (loadedTracksList[trackID]['info']['typeOfTrack']=='air') {
			altitudeMode=ge.ALTITUDE_ABSOLUTE;
		}else {
			altitudeMode=ge.ALTITUDE_CLAMP_TO_GROUND;
		}
	}	
	return altitudeMode;
}

function getLagClass(secs){
	var c='#ffffff';
	
	if (secs > 20*60) { // 20min
		c='#D09C9C';
	} else 	if (secs> 10*60) { // 10 min
		c='#FFA801';
	} else 	if (secs> 2*60) { // 2 min
		c='#D201FF';
	} else 	if (secs> 60) { // 1 min
		c='#0000FF';	
	} else {  // < 60 sec
		c='#00FF00';	
	}
	return c;
}


function formatTimeAgo(secs) {
	var timeAgo ='';
	

	if (secs>3600*24) {
		timeAgo += " "+  Math.floor(secs/(3600*24)) + " days";
		secs=secs%(3600*24);
	}
	
	if (secs>3600) {
		timeAgo += " "+  Math.floor(secs/3600)+ " hrs";
		secs=secs%3600;
	}
		
	if (secs > 60 ) {
		timeAgo +=" "+  Math.floor(secs/60) + " mins";
		secs=secs%60;
	}	
		
	timeAgo += " "+ (secs) + " secs";


	return timeAgo;	
	
}



