/*** 
    Copyright IonEarth 2009 
    All Right Reserved
    ***/
jQuery.noConflict();
var D = {};
D.racer_ids = '';
function C2F( tempC )
{
    return Math.round((212 - 32) / 100 * tempC + 32, 2);
}

function knotsToMPH(knots)
{
    return Math.round(knots * 1.15077945 * 10,1) / 10;
}
function knotsToKPH(knots)
{
    return Math.round(knots * 1.85200 * 10,1) / 10;
}
var lastupdate = 0;
function updateAge()
{
    if (lastupdate > 0)
    {
        seconds = Math.round(((new Date().valueOf() - lastupdate) / 1000),1);
        jQuery('.age').text( sa( seconds ) );
    }
}
setInterval('updateAge()', 1000);
function loadRacers()
{
    var racer_url = 'http://race.ionearth.com/api/2009-02-06/load_race_view/2232/racers4.js?reload=' + new Date().valueOf();
    jQuery.getJSON(racer_url,
        function(data) {
            D.racers = data;
            show_racers();
            setTimeout('get_telemetry()', 2000);
            setInterval('get_telemetry()', 60000);
        }
    );
}
function show_racers()
{
    jQuery('#musher_list').empty();
    c = D.racers.length;
    for (x = 0; x < c; x++)
    {
        var r = D.racers[x];
        var imgurl = "/images/anonymous.png";
        if (r.thm > '') 
        {
            imgurl = r.thm;
        }
        //var newli = '<li class="store"><span class="image"><img src="/images/anonymous.png" alt="mugshot"></span>';
        var newli = '<li class="store"><span class="image"><img src="' + imgurl + '" height="90" alt="mugshot"></span>';
        newli += '<span class="name" id="name'+ r.id +'">' ;
        newli += ' <span class="bib" id="bib'+r.id+'">'+r.num + '</span> ';
        newli += r.n ;
        newli += '<span class="status" id="st' + r.id + '"></span>';
        newli += '</span>';
        newli += ' <span class="comment">';
        newli += ' <span class="datum">NM to Finish:</span><span class="rm' + r.id + ' data rm"></span><br>';
        newli += ' <span class="datum">Speed:</span><span class="spd' + r.id + ' data"></span><br>';
        // newli += ' <span class="datum">Temperature:</span><span class="temp' + r.id + ' data"></span><br>';
        newli += ' <span class="datum">Heading:</span><span class="hd' + r.id + ' data"></span><br>';
        newli += '</span>';
        D.racer_ids += r.id;
        newli +='</li>';
        jQuery('#musher_list').append(newli);

    }
    jQuery('#musher_list').append('<li class="title"><span class="rmd">408 NM</span><span class="rm" style="visibility: hidden;">407.9</span> Start - Fort Lauderdale</li>');
    jQuery('#musher_list').append('<li class="title"><span class="rmd">0 NM</span><span class="rm" style="visibility: hidden;">0</span> Finish - Charleston</li>');
    jQuery('ul#musher_list>li').tsort('span.bib');
    
}
var rose = ['N','NE','E','SE','S','SW','W','NW'];
function formatHeading( degrees )
{
    var seg = 360/rose.length;
    var deg = degrees + seg/2;
    var deg360 = Mod(deg,360);
    var dir = deg360 / seg;
    dir = Math.round(dir-0.5,0);
    return rose[dir];
};
function get_telemetry()
{
    var args = 'http://race.ionearth.com/api/2009-02-06/telem/2232/' + D.racer_ids + '.js';
    var telem_url = args + '?reload=' + new Date().valueOf();
    jQuery.getJSON(telem_url,
        function(data) {
            ds = data.length;
            for (y = 0; y < ds; y++)
            {
                var td = data[y];
                // spd = knotsToMPH(td.spd) + 'mph / ' + knotsToKPH(td.spd) +'kph';
                var spd = (td.spd - 0).toFixed(1).toString() + ' kts';
                // temp = C2F( td.c) + '&deg;F / ' + td.c  + '&deg;C';
                var hd = td.hd + '&deg; ' + formatHeading( td.hd );
                jQuery('.rm' + td.id).html( td.rm );
                jQuery('.spd' + td.id).html( spd );
                jQuery('.hd' + td.id).html( hd );
                // jQuery('.temp' + td.id).html( temp );
                jQuery('#st' + td.id).html( td.st );
            }
            lastupdate = new Date().valueOf();
            jQuery('ul#musher_list>li').tsort('span.rm',{order:'asc'});
        }
    );

}
function Mod(X, Y) {
    return X - Math.floor(X / Y) * Y;
}

jQuery(document).ready(
    function() {
        loadRacers();
    }
);

function sa(s){
s = Math.floor(s,1);
p = {};
var times = [{'a':2073600,'b':'w'},{'a':86400,'b':'d'},{'a':3600,'b':'h'},{'a':60,'b':'m'}];
var o = '';  var lc = 0;
for (x=0;x<times.length;x++){
    v=times[x]['a'];
    if (s >= v) {
        var y = times[x]['b'];
        var t = Math.floor(s/v,1);
        s -= t * v;
        o += t.toString() + y + ' ';
        lc += 1;
        p[y] = t;
    } else {
        p[times[x]['b']] = 0;
    }
}
p['s'] = s;
var h = p['h'];
if (h < 10) h = '0' + h.toString();
var m = p['m'];
if (m < 10) m = '0' + m.toString();
var s = p['s'];
if (s < 10) s = '0' + s.toString();
if (h == '00')
{
    return m + ':' + s;
} else {
    return h + ':' + m + ':' + s;
}

}

