You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
3.1 KiB
JavaScript

// MOON COMPUTATION
// ==========================================================================
function updateCurrentMoonWatch(date){
let lat = window.walk_calendar["latitude"];
let long = window.walk_calendar["longitude"];
let moon = getMoonStateFromDate(date, lat, long);
let formated_date = format_date_time(date);
let lang = window.current_local.split("-")[0];
let phase_name = moon["name_"+lang];
phase_name = phase_name.split(" ").join(" <br>");
// sunset
// let distance = moon["distance"];
// let sun_calc = SunCalc.getTimes(date, lat, long);
// let sunset = format_date_time(sun_calc["sunset"])[2];
// --- PRIMARY INFO ---
let $watch = $('#moon-watch-section');
$watch.find('.phase-name').html(phase_name);
$watch.find('.date').html(formated_date['date']);
// scheme position
let angle = mapValue(moon["phase"], 0, 1, 0, 360);
$(".watch__scheme .svg-moon").css("--moon-rotation", angle + "deg");
// change the font
updateAxis($watch, moon["phase"]);
}
function printAllMoonphases(){
let langs = ['en', 'fr', 'nl', 'es'];
for (let lg of langs) {
console.log(lg);
let phase_number = 0;
for (let phase of MOONPHASES){
let phase_name = phase["name_"+lg];
let title = $('<h2>').html(phase_name);
updateAxis(title, phase_number, true);
$(".all-phases").append(title);
phase_number = phase_number + 0.125;
}
$(".all-phases").append(
$('<hr>')
);
}
}
function toggleTheme(now){
let lat = window.walk_calendar["latitude"];
let long = window.walk_calendar["longitude"];
let timezone = window.walk_calendar["timezone"];
// we want to have the time now in "Europe/Brussels"
let date = luxon.DateTime.fromISO(now.toISOString()).setZone(timezone);
let [sunrise, sunset] = getSunStateFromDate(date, lat, long, timezone);
console.log("now", date.toString());
console.log("rise", sunrise.toString());
console.log("set", sunset.toString());
if( date < sunset && sunrise < date ){
console.log("day");
}
else{
console.log("night");
$("body").addClass("night");
}
}
function updateCurrentMoonTypo(date){
let lat = window.walk_calendar["latitude"];
let long = window.walk_calendar["longitude"];
let moon = getMoonStateFromDate(date, lat, long);
updateAxis($(".moon-phased-typo > p"), moon["phase"], false);
updateAxis($(".moon-phased-typo > blockquote"), moon["phase"], false);
updateAxis($(".moon-phased-typo > h2"), moon["phase"], true);
updateAxis($("#about-section .about-box p:first-child"), moon["phase"], true);
}
$(document).ready(function(){
// test zone for other date
// first new moon of 2000 according to:
// https://www.calendar-12.com/moon_phases/2000
// let now = new Date(Date.parse('06 Jan 2000 19:14:00 GMT+1'));
// let now = new Date(Date.parse('13 Jan 2000 05:41:00 GMT+1'));
// let now = new Date(Date.parse('21 Jan 2000 05:41:00 GMT+1'));
let now = new Date();
toggleTheme(now);
window.setInterval(function(){
// now.setHours(now.getHours() + 2);
updateCurrentMoonWatch(now);
updateCurrentMoonTypo(now);
}, 100);
});