//

// Nach dem Laden des Dokumentes:
$(document).ready(function() {
    console.log("Es geht los");

    const URL = "switch/";
    const checktime = 5000000;									// alle 30sec Zustand prüfen

    let status = "";
    let tr;


    $('#versn').html("V " + VERSION + ' ' + VDATE);	// Vesion anzeigen


    $("#auszeile").hide();									// Meldezeile AUS schalten

//	sendCommand(URL,"PowerOnState%200");					// OFF bei Power ON
//	sendCommand(URL,"PulseTime%20"+(brenndauer+100));		// Brenndauer einstellen

    let interval = setInterval(sendTimedCommand, 1000);  // alle Sekunde pollen

    document.addEventListener('visibilitychange', function (event) {
        if (!document.hidden) {
            interval = setInterval(sendTimedCommand, 1000);
        } else {
            clearTimeout(interval);                 // The page is hidden.
        }
    });


    sendCommand(URL, "get_status")

    $("#schalter").click(function () {
        let message;
        if (status == 'ON') {
            console.log("Sende OFF")
            sendCommand(URL, "switch_off")
        } else {
            console.log("Sende ON")
            sendCommand(URL, "switch_on")
        }
    });

    function sendCommand(url, cmnd) {
        console.log("sendCommand", cmnd);
        const p = new Promise((resolve, reject) => {
            $.getJSON(url + cmnd, function (data, err) {				// AJAX Call
                if (err != 'success') {
                    reject(err);
                    alert("Fehler <br />" + err);						// if error, show it
                } else {
                    console.log("gekommen: ", data);
                    resolve(data);
                }
            });
        });
        return p;
    }

    function sendTimedCommand() {
//        console.log("time check");
        sendCommand(URL, 'check')
            .then(data => {
//                console.log("Timed Status= ", st);
                status = data.relais;
                if (status != 'pending') {
                    clearTimeout(tr);
                    if (status == 'ON') {
                        $('#schalter').html('Laufschrift <b>AUS</b> schalten');
                        $('#status').text('EIN');
                        $('#laufzeile').addClass('machrot');
                        $('#auszeit').text(data.offtime);
                        $('#auszeile').show();
                    } else {
                        $('#schalter').html('Laufschrift <b>EIN</b> schalten');
                        $('#status').text('AUS');
                        $('#laufzeile').removeClass('machrot');
                        $('#auszeile').hide();
                    }
                }
            });
    }

});