﻿function degreesChar()
{
    return( "°" );
}

function decimalDegreesToDegreesMinutes( dd )
{
    var str = "";
    var degrees = Math.floor( dd );
    var fraction = dd - degrees;
    var minutes = ( fraction * 60 );
    
    str = degrees.toString() + degreesChar() + " " + minutes.toFixed( 4 ) + "'";
           
    return( str );
}

function lngAsString( lng )
{
    var eastOrWest = ( lng > 0 ) ?  "E" : "W";
    lng = Math.abs( lng );
    var dm = decimalDegreesToDegreesMinutes( lng );
    
    return( dm + " " + eastOrWest );
}

function latAsString( lat )
{
    var northOrSouth = ( lat > 0 ) ? "N" : "S";
    lat = Math.abs( lat );
    var dm = decimalDegreesToDegreesMinutes( lat );
   
    
    return( dm + " " + northOrSouth );
}
// note:  latLng is a VELatLong type.
function positionAsString( latLng )
{
    var s = "";
    s = latAsString( latLng.Latitude )
         + ", " + lngAsString( latLng.Longitude );
   
     return ( s );
}

function twoDigits( n )
{
    var returnString;
    var prefix = ( 10 >= n ) ? "0" : "";
 
    returnString = prefix + n;
 
    return( returnString );
}

function secondsToHMS( seconds )
{
    var minutes;
    var hours;
    var returnString = "";
    
    if ( seconds >= 60 )
    {
        var minutes = Math.floor( seconds / 60 );
        seconds = seconds - minutes * 60;
        
        if ( seconds >= 30 )
        {
            minutes++;
            seconds = 0;
        }
        
        if ( minutes >= 60 )
        {
            hours = Math.floor( minutes / 60 );
            minutes = minutes - hours * 60;
        
            var hrsAbrev = ( hours > 1 ) ? " hrs" : " hr";
            
            returnString = "" + hours + hrsAbrev + ", "
                             + minutes + " min";
        
        }
        else
            returnString = "" + minutes + " min";
    
    }
    else
        returnString = "< 1 min";
    
    return( returnString );
}