/*
 * logowanie zdarzeń uruchamianych przez window.applicationCache
 */

window.applicationCache.onchecking = function(e) {
    log("Sprawdzanie aktualizacji aplikacji");
}

window.applicationCache.onnoupdate = function(e) {
    log("Nie znaleziono aktualizacji aplikacji");
}

window.applicationCache.onupdateready = function(e) {
    log("Aktualizacja aplikacji dostępna");
}

window.applicationCache.onobsolete = function(e) {
    log("Aplikacja przestarzała");
}

window.applicationCache.ondownloading = function(e) {
    log("Pobieranie aktualizacji aplikacji");
}

window.applicationCache.oncached = function(e) {
    log("Aplikacja zapisana w pamięci podręcznej");
}

window.applicationCache.onerror = function(e) {
    log("Błąd pamięci podręcznej");
}

window.addEventListener("online", function(e) {
    log("Online");
}, true);

window.addEventListener("offline", function(e) {
    log("Offline");
}, true);


/*
 * Zamiana statusów applicationCache na wiadomości
 */
showCacheStatus = function(n) {
    statusMessages = ["Niewykorzystywana","Bezczynna","Sprawdzanie","Pobieranie","Aktualizacja dostępna","Przestarzała"];
    return statusMessages[n];
}

install = function() {
    log("Sprawdzanie aktualizacji");
    try {
        window.applicationCache.update();
    } catch (e) {
        applicationCache.onerror();
    }
}

onload = function(e) {
    // Sprawdzanie wymaganych możliwości przeglądarki
    if (!window.applicationCache) {
        log("Aplikacje lokalne nie są wspierane.");
        return;
    }

    if (!navigator.geolocation) {
        log("Geolokalizacja nie jest wspierana.");
        return;
    }

    if (!window.localStorage) {
        log("Magazyn lokalny nie jest wspierany.");
        return;
    }


    log("Początkowy status pamięci podręcznej: " + showCacheStatus(window.applicationCache.status));
    document.getElementById("installButton").onclick = install;

    // Synchronizacja z serwerem, jeżeli połączenie z internetem jest dostępne
    if(navigator.onLine) {
        uploadLocations();
    }
}