document.pois = null;
document.database = null;
document.playedItems = [];
$.ajaxSetup({ cache: false });
$(document).ready(function() {
this.database = new DB();
// From: http://kolber.github.io/audiojs/
audiojs.events.ready(function() {
var as = audiojs.createAll();
});
$('body').on('databaseLoaded', function(e, datasets) {
//console.debug('database loaded', document.database);
if(document.database)
{
$.ajaxSetup({ cache: true });
$('#routes').find('option').remove().end();
for(var trackNr in document.database) {
$('#routes').append($(''));
}
trackChanged($('#routes').val());
geoLocation.startWatcher();
}
});
$('body').on('geoLocationGot', function(e,data) {
var nearest = {poi: null, range:null};
$('#dump').html(data.position.latitude+', '+data.position.longitude+'('+data.position.accuracy+'m)
'+Date(data.timestamp));
console.debug('update distances from current Position');
if ($('#routes').val() == '') {
console.debug('no track selected - abording');
return;
}
for(var index in document.pois)
{
var dist = Math.round(geoLocation.distance(
{
'latitude':document.pois[index].lat,
'longitude':document.pois[index].lon
}
));
// console.debug(index, document.playedItems, document.playedItems.indexOf(index) == -1)
if (nearest.desc !== null && document.playedItems.indexOf(index) == -1 && (nearest.range === null || nearest.range > dist)) {
nearest = {poi:index, range: dist};
}
$('#trackDump .poi_'+index).text(document.pois[index].desc + ' (' + dist + 'm)');
//console.debug(document.pois[index].desc + ' (' + dist + 'm)');
}
document.playedItems.push(nearest.poi);
console.debug(nearest);
if (nearest.range < 2000) {
vibrate.start(vibrate.patterns.alarm);
$('#poiViews div').removeClass('active');
$('.poi_'+nearest.poi).addClass('active');
nearest.data = document.database[$('#routes').val()].pois[nearest.poi];
}
});
$('body').on('geoLocationError',function(e) {
console.debug('geolocation error', e.message);
geoLocation.getPosFromServer();
});
$('body').on('click', function(e) {
console.debug('show context menu');
if($('#contextMenu').is(':hidden')) $('#contextMenu').css('top',(e.pageY-5)+'px').css('left',(e.pageX-15)+'px');
toggle('#contextMenu');
});
});
var trackChanged = function(idx) {
console.debug('changed track to', idx);
document.pois = null;
document.playedItems = [];
$('#trackDump').html();
// console.debug(document.database[idx].pois);
if(idx != '')
{
document.pois = document.database[idx].pois;
for(var index in document.pois) {
var elem = document.database[idx].pois[index];
if(elem.desc != null)
{
$('#trackDump').append('
'+elem.text+'
') $('#poiViews').append(poi); } //else $('#trackDump').append('