
// function library for parsing GPS NMEA data logs into long and lat

function minutes_to_decimal(minutes)
{
    return (minutes / 60);

}


function get_longitude(sentence) {
// lines of logitude go from pole to pole and so tell you how far east or west you are

    var words = sentence.split(",");
    var long_val = words[4];
    var long_dir = words[5];

    var long_deg = long_val.substr(0,3);
    var long_min = long_val.substr(3);
    var longitude = eval(long_deg) + eval(minutes_to_decimal(long_min));

    if ( long_dir == "W" ) {
        longitude = longitude * -1;
    }

    return(longitude);
}


function get_latitude(sentence) {
// Lines of latitude go around the earth so tell you how far north or south you are

    var words = sentence.split(",");
    var lat_val = words[2];
    var lat_dir = words[3];
    
    var lat_deg = lat_val.substr(0,2);
    var lat_min = lat_val.substr(2);

    var latitude = eval(lat_deg) + eval(minutes_to_decimal(lat_min));
    
    if ( lat_dir == "S" ) {
        latitude = latitude * -1;
    }
    
    return latitude;
}

function format_time_string(time_string) {

    var hrs = time_string.substr(0,2);
    var min = time_string.substr(2,2);
    var sec = time_string.substr(4,2);

    var formatted_string = hrs + ":" + min + ":" + sec;

    return(formatted_string);

}


function get_utc(sentence) {
// extract the UTC time and format as a nice string

    var words = sentence.split(",");
    var point_time = words[1];

    return(point_time);
}

function get_height(sentence) {
// extract the UTC time and format as a nice string

    var words = sentence.split(",");
    var point_height = eval(words[9]);

    return(point_height);
}

function is_GGA(sentence) {

    if ( sentence.substr(0,6) == "\$GPGGA" ) {
        return true;
    } else {
        return false;
    }
}

function check_sats(sentence) {
    if ( is_GGA(sentence) ) {
        var words = sentence.split(",");
        return(eval(words[7]));
    } else {
        return(0);
    }
}

