removed deprecated JS

This commit is contained in:
Kiritan Flux 2018-12-09 13:18:35 +01:00
parent 0304307b8d
commit acface76fb
7 changed files with 0 additions and 320809 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,279 +0,0 @@
function findNewMoon( ts ) {
var today = new moment.unix(ts);
var year = parseFloat(today.format('YYYY'));
var ydays = 365;
var spd = 86400;
if (today.isLeapYear() ) ydays++;
var decimal = parseFloat(today.format('DDD')) / ydays * spd;
var secs = parseFloat(today.format('H')) * 3600 + parseFloat(today.format('m')) * 60 + parseFloat(today.format('s'));
decimal = (decimal + secs) / spd;
var Y = year + decimal;
// k is an integer for new moon incremented by 0.25 for first quarter 0.5 for new etc.
var k=Math.floor((parseFloat(today.format('YYYY'))+((parseFloat(today.format('M'))-1)+parseFloat(today.format('D'))/30)/12-2000)*12.3685);
// Time in Julian centuries since 2000.0
var T=k/1236.85;
// Sun's mean anomaly
var M=rev(2.5534+29.10535669*k-0.0000218*T*T);
// Moon's mean anomaly (M' in Meeus)
var MP=rev(201.5643+385.81693528*k+0.0107438*T*T+0.00001239*T*T*T-0.00000011*T*T*T);
var E=1-0.002516*T-0.0000074*T*T;
// Moons argument of latitude
var F=rev(160.7108+390.67050274*k-0.0016341*T*T-0.00000227*T*T*T+0.000000011*T*T*T*T);
// Longitude of ascending node of lunar orbit
var Omega=rev(124.7746-1.56375580*k+0.0020691*T*T+0.00000215*T*T*T);
// The full planetary arguments include 14 terms, only used the 7 most significant
var B = new Array();
B[1]=rev(299.77+ 0.107408*k-0.009173*T*T);
B[2]=rev(251.88+ 0.016321*k);
B[3]=rev(251.83+26.651886*k);
B[4]=rev(349.42+36.412478*k);
B[5]=rev( 84.88+18.206239*k);
B[6]=rev(141.74+53.303771*k);
B[7]=rev(207.14+ 2.453732*k);
// New moon
var JDE0=2451550.09765+29.530588853*k+0.0001337*T*T-0.000000150*T*T*T+0.00000000073*T*T*T*T;
// Correct for TDT since 1 July 2015
JDE0=JDE0-58.184/(24*60*60);
var JDE=JDE0 -0.40720*sind(MP) +0.17241*E*sind(M) +0.01608*sind(2*MP) +0.01039*sind(2*F)
+0.00739*E*sind(MP-M) -0.00514*E*sind(MP+M) +0.00208*E*E*sind(2*M) -0.00111*sind(MP-2*F)
-0.00057*sind(MP+2*F) +0.00056*E*sind(2*MP+M) -0.00042*sind(3*MP) +0.00042*E*sind(M+2*F)
+0.00038*E*sind(M-2*F) -0.00024*E*sind(2*MP-M) -0.00017*sind(Omega) -0.00007*sind(MP+2*M);
var F=0.000325*sind(B[1])+0.000165*sind(B[2])+0.000164*sind(B[3])+0.000126*sind(B[4])
+0.000110*sind(B[5])+0.000062*sind(B[6])+0.000060*sind(B[7]);
var newmoon = new moment(A.JulianDay.jdToDate(JDE + F)).subtract(2, 'h').unix();
if ( ts < newmoon ) newmoon = findNewMoon( new moment.unix(ts).subtract(1, 'h').unix());
return newmoon;
} //End calcMoonPhase
function getZodiac(deg, sidereal = false) {
if ( sidereal == true ) {
deg += 27.74;
if ( deg > 360 ) deg =- 360;
}
var obj = {
sign: Math.ceil(deg / 30),
decan: Math.ceil(deg / 10)
}
return obj;
}
function getLunarMansion(deg, sidereal = false) {
// global variable def needs to be declared before using this function
if (!sidereal) var mansion = def.moon.mansion.tropical;
else var mansion = def.moon.mansion.constellational;
var i = 1;
var m;
while ( deg > zodToDeg(mansion[i]) ) i++;
return i;
}
function sunRiseSet(ts, coord) {
// calculate sunrise and sunset
var today = new moment.unix(ts).startOf('d');
var tomorrow = new moment.unix(ts).startOf('d').add(1, 'd');
//var todaySolarSecs = A.Solar.times(new A.JulianDay(today.toDate()), coord);
//var tomorrowSolarSecs = A.Solar.times(new A.JulianDay(tomorrow.toDate()), coord);
// fixed MeeusJS bug with working Peter Hayes code
var todayHayes = SunRiseSet(parseFloat(today.format('YYYY')),parseFloat(today.format('M')),parseFloat(today.format('D')),parseFloat($('#lat').val()),parseFloat($('#lon').val()));
var tomorrowHayes = SunRiseSet(parseFloat(tomorrow.format('YYYY')),parseFloat(tomorrow.format('M')),parseFloat(tomorrow.format('D')),parseFloat($('#lat').val()),parseFloat($('#lon').val()));
var todaySolarSecs = {};
var tomorrowSolarSecs = {};
todaySolarSecs.rise = todayHayes[0] * 3600;
todaySolarSecs.set = todayHayes[1] * 3600;
tomorrowSolarSecs.rise = tomorrowHayes[0] * 3600;
tomorrowSolarSecs.set = tomorrowHayes[1] * 3600;
// end bugfix
var todayPlanetDayStart = new moment.unix(ts).startOf('day').unix() + todaySolarSecs.rise;
var todayPlanetNightStart = new moment.unix(ts).startOf('day').unix() + todaySolarSecs.set;
var tomorrowPlanetDayStart = new moment.unix(ts).add(1, 'd').startOf('day').unix() + tomorrowSolarSecs.rise;
var tomorrowPlanetNightStart = new moment.unix(ts).add(1, 'd').startOf('day').unix() + tomorrowSolarSecs.set;
var planetaryDayHourSecs = (todayPlanetNightStart - todayPlanetDayStart) / 12;
var planetaryNightHourSecs = (tomorrowPlanetDayStart - todayPlanetNightStart) / 12;
var sol = {
day : {
start : Math.floor(todayPlanetDayStart),
hourSecs : Math.round(planetaryDayHourSecs),
end : Math.floor(todayPlanetNightStart - 1)
},
night : {
start: Math.floor(todayPlanetNightStart),
hourSecs : Math.round(planetaryNightHourSecs),
end : Math.floor(tomorrowPlanetDayStart - 1)
}
}
return sol;
}
function planetaryMoment(lat, lon, ts) {
var sidereal = false;
var coord = A.EclCoord.fromWgs84(lat, lon, 0);
var today = new moment.unix(ts);
var tomorrow = new moment.unix(ts).add(1, 'd');
var yesterday = new moment.unix(ts).subtract(1, 'd');
var date = today.toDate();
var jdo = new A.JulianDay(date);
var suneq = A.Solar.apparentEquatorial(jdo);
var mooneq = A.Moon.apparentEquatorial(jdo);
var suntp = A.Solar.topocentricPosition(jdo, coord, true);
var moontp = A.Moon.topocentricPosition(jdo, coord, true);
var obliquity = A.Nutation.trueObliquity(jdo) * 180 / Math.PI;
// get sun rise and set times
var sol = sunRiseSet(ts, coord);
var ps = sol;
// calculate planetary hour of ts and when it starts and ends
var phour = 0;
var phstart;
var phend;
if ( ts >= ps.day.start && ts < ps.night.start ) {
phour = (ts - ps.day.start) / ps.day.hourSecs;
phstart = ps.day.start + phour * ps.day.hourSecs;
phend = phstart + ps.day.hourSecs - 1;
}
else {
if ( ts < ps.day.start ) {
ps = sunRiseSet(yesterday.unix(), coord);
}
phour = (ts - ps.night.start) / ps.night.hourSecs + 12;
phstart = ps.night.start + (phour - 12) * ps.night.hourSecs;
phend = phstart + ps.night.hourSecs - 1;
}
// calculate planetary day of ts
var pday = parseFloat(new moment.unix(ps.day.start).format('d'));
// planet longitudes
var pldate = {
year: parseFloat(today.format('YYYY')),
month: parseFloat(today.format('M')),
day: parseFloat(today.format('D')),
hours: parseFloat(today.format('H')),
minutes: parseFloat(today.format('m')),
seconds: 0};
$const.tlong = lon // longitude
$const.tlat = lat // latitude
$processor.init ();
var mars = $moshier.body.mars;
var mercury = $moshier.body.mercury;
var jupiter = $moshier.body.jupiter;
var venus = $moshier.body.venus;
var saturn = $moshier.body.saturn;
$processor.calc (pldate, mars);
$processor.calc (pldate, mercury);
$processor.calc (pldate, jupiter);
$processor.calc (pldate, venus);
$processor.calc (pldate, saturn);
// calculate lunar day
var lastNewMoon = findNewMoon(ts);
var nextNewMoon = findNewMoon(new moment.unix(lastNewMoon).add(31, 'd').unix());
var startDate = new moment.unix(lastNewMoon).startOf('d');
var endDate = new moment.unix(nextNewMoon).startOf('d');
var cal = [];
cal[0] = lastNewMoon;
var daycount = 0;
var rise = lastNewMoon + 1;
while ( rise < nextNewMoon && rise < ts ) {
var day = new moment(startDate.toDate()).add(daycount, 'd');
var jdr = new A.JulianDay(day.toDate());
var moontimes = A.Moon.times(jdr, coord);
var hrs = MoonRise(parseFloat(day.format('YYYY')),parseFloat(day.format('M')),parseFloat(day.format('D')),0,parseFloat(lat),parseFloat(lon));
if ( hrs[0] > 0 ) {
var mt = hrs[0] * 60 * 60;
var rise = day.add(mt, 's').unix();
if ( rise > lastNewMoon && rise < nextNewMoon ) {
cal.push(rise);
}
}
daycount++;
}
var lday = 0;
cal.forEach(function(lts, i, o) {
if ( ts >= lts ) {
lday = i;
}
});
var luna = {
day: lday + 1,
start: cal[lday]
}
var suncoords = eqToEclDeg(suneq, obliquity);
var sunlng = suncoords.lng;
var mooncoords = eqToEclDeg(mooneq.eq, obliquity);
var moonlng = mooncoords.lng;
// calculate lunar phase
var i = A.MoonIllum.phaseAngleEq2(moontp.eq, suntp.eq);
var k = A.MoonIllum.illuminated(i);
var chi = A.MoonIllum.positionAngle(moontp.eq, suntp.eq);
var angle = i * 180 / Math.PI;
if ( chi < 0 ) angle = 360 - angle;
var sphase;
if ( angle < 10 ) sphase = 5;
else if ( angle < 80 ) sphase = 6;
else if ( angle < 95 ) sphase = 7;
else if ( angle < 170 ) sphase = 8;
else if ( angle < 190 ) sphase = 1;
else if ( angle < 260 ) sphase = 2;
else if ( angle < 280 ) sphase = 3;
else if ( angle < 350 ) sphase = 4;
else sphase = 5;
var phase = {
simple: sphase,
phase: angle,
angle: chi,
illumination : Math.round(k * 100)
}
var obj = {
ts: ts,
planetary : {
hour : {
number: Math.round(phour),
begin : phstart,
end : phend
},
day : pday
},
solar : {
day : sol,
lng : Math.round(sunlng * 100) / 100
},
lunar : {
day : luna,
lng : Math.round(moonlng * 100) / 100,
phase : phase,
lastnew : lastNewMoon
},
planet : {
mars : {
lng : Math.round(mars.position.apparentLongitude * 100) / 100
},
mercury : {
lng : Math.round(mercury.position.apparentLongitude * 100) / 100
},
jupiter : {
lng : Math.round(jupiter.position.apparentLongitude * 100) / 100
},
venus : {
lng : Math.round(venus.position.apparentLongitude * 100) / 100
},
saturn : {
lng : Math.round(saturn.position.apparentLongitude * 100) / 100
}
}
}
return obj;
}

View file

@ -1,446 +0,0 @@
var timestamp;
function getLocation() {
navigator.geolocation.getCurrentPosition(function(position){
setCoords(position);
}, function () {
setCoords({coords: { latitude: latitude, longitude: longitude }});
});
}
function getAirportLocation() {
$.getJSON( "https://raw.githubusercontent.com/mwgg/Airports/master/airports.json", function( data ) {
$('#iata input').addClass('loading');
var iatacode = $('#iata input').val();
Defiant.getSnapshot(data, function(snapshot) {
var found = JSON.search(snapshot, '//*[iata="'+iatacode.toUpperCase()+'"]');
/*
var minlat = Math.floor($('#lat').val()) - 2;
var maxlat = Math.ceil($('#lat').val()) + 2;
var minlon = Math.floor($('#lon').val()) - 2;
var maxlon = Math.ceil($('#lon').val()) + 2;
var foundlat = JSON.search(snapshot, '//*[lat<'+maxlat+' and lat>'+minlat+']');
var found = JSON.search(foundlat, '//*[lon<'+maxlon+' and lon>'+minlon+']');
var distances = [];
for (index = 0; index < found.length; ++index) {
distances.push(getDistance($('#lat').val(), $('#lon').val(), found[index].lat, found[index].lon));
}
var idx = distances.indexOf(Math.min.apply(Math,distances));
var airport = found[idx];
*/
var airport = found[0];
$.getJSON( "https://raw.githubusercontent.com/dmfilipenko/timezones.json/master/timezones.json", function( zones ) {
var off = JSON.search( zones, '//*[utc="'+airport.tz+'"]');
$('#lat').val(airport.lat);
$('#lon').val(airport.lon);
$('#offset').val(off[0].offset);
$('#iata-info').text(airport.name+', '+airport.city+', '+airport.country+' (Timezone: '+airport.tz+')');
$('#iata input').removeClass('loading');
});
});
});
}
function setCoords(location) {
$('#lat').val(location.coords.latitude);
$('#lon').val(location.coords.longitude);
var now = new Date()
var off = now.getTimezoneOffset();
$('#offset').val(off/60*-1);
}
function generate() {
$('#grid').empty();
var data = generateJSON((Math.floor($('#lat').val())+'-'+Math.floor($('#lon').val())), new moment().unix(), $('#offset').val(), ($('#days').val()-1), $('#lat').val(), $('#lon').val());
var j = 0;
function makePHour(j) {
if ( j == data.planetaryhours.length-1 ) {
clearTimeout(everyday);
NProgress.done();
var now = moment().subtract($('#offset').val(), 'h').unix();
$('.planetaryhour').each( function( idx, element ) {
if ( $(element).attr('ts') < now && now < $(element).next().attr('ts') ) {
$(element).addClass('now');
}
});
return;
}
var m = data.planetaryhours[j];
var localTime = new moment.unix(m.ts).add($('#offset').val(), 'h');
var zodiac = getZodiac(m.solar.lng);
var moonsign = getZodiac(m.lunar.lng);
var mansion = getLunarMansion(m.lunar.lng);
var hygromanteia = getActions(matrix.planetary.day[m.planetary.day].hour[m.planetary.hour.number].for, action, 'hygromanteia');
var lunarday = getActions(matrix.lunar.day[m.lunar.day.day], action, 'lunarday');
var lunarsign = getActions(matrix.lunar.sign[zodiac.sign].for, action, 'lunarsign');
var lunarmansion = getActions(matrix.lunar.mansion[mansion], action, 'lunarmansion');
var claviculaday = getActions(matrix.clavicula[m.planetary.day+1], action, 'clavicula');
var claviculahour = getActions(matrix.clavicula[matrix.planetary.day[m.planetary.day].hour[m.planetary.hour.number].planet], action, 'clavicula');
var clavicula = [claviculaday.actions.string, claviculahour.actions.string];
$('<div/>').loadTemplate($("#tpl-planetaryhour"), {
ruler : def.planet.symbol[m.planetary.day+1],
date : new moment.unix(m.ts).format('D/M'),
lunarday : '☾'+m.lunar.day.day+'☽',
hourstart : new moment.unix(m.planetary.hour.begin).add($('#offset').val(), 'h').format('HH:mm'),
hournumber : (m.planetary.hour.number+1)+'<br />'+def.planet.symbol[matrix.planetary.day[m.planetary.day].hour[m.planetary.hour.number].planet],
hourend : new moment.unix(m.planetary.hour.end).add($('#offset').val(), 'h').format('HH:mm'),
moonsign : def.zodiac.symbol[moonsign.sign],
moonphase : def.moon.phase.symbol[m.lunar.phase.simple]+' <small>'+m.lunar.phase.illumination+'%</small>',
moonmansion : '|'+mansion+'|'
})
.addClass(hygromanteia.actions.string)
.addClass($.unique(clavicula.join(" ").split(' ')).join(" "))
.addClass(lunarday.actions.string)
.addClass(lunarsign.actions.string)
.addClass(lunarmansion.actions.string)
.addClass(addPlanetClasses(m.solar.lng, 'sun'))
.addClass(addPlanetClasses(m.lunar.lng, 'moon'))
.addClass(addPlanetClasses(m.planet.mars.lng, 'mars'))
.addClass(addPlanetClasses(m.planet.mercury.lng, 'mercury'))
.addClass(addPlanetClasses(m.planet.jupiter.lng, 'jupiter'))
.addClass(addPlanetClasses(m.planet.venus.lng, 'venus'))
.addClass(addPlanetClasses(m.planet.saturn.lng, 'saturn'))
.addClass('col-md-2 centered planetaryhour')
.attr('id', 'c'+j+'d'+m.planetary .day+'h'+m.planetary.hour.number )
.attr('day', m.planetary.day)
.attr('hour', m.planetary.hour.number)
.attr('ts', m.ts)
.attr('ts-end', new moment.unix(m.planetary.hour.end).add($('#offset').val(), 'h').unix())
.attr('sun-lng', m.solar.lng)
.attr('moon-lng', m.lunar.lng)
.attr('moon-day', m.lunar.day.day)
.attr('moon-phase', m.lunar.phase.simple)
.attr('moon-angle', Math.round(m.lunar.phase.angle *100) / 100 )
.attr('moon-illumination', m.lunar.phase.illumination)
.attr('mars-lng', m.planet.mars.lng)
.attr('mercury-lng', m.planet.mercury.lng)
.attr('jupiter-lng', m.planet.jupiter.lng)
.attr('venus-lng', m.planet.venus.lng)
.attr('saturn-lng', m.planet.saturn.lng)
.appendTo('#grid');
if ( $('#c'+j+'d'+m.planetary .day+'h'+m.planetary.hour.number).attr('hour') > 11 ) {
$('#c'+j+'d'+m.planetary .day+'h'+m.planetary.hour.number).addClass('night-hour');
}
NProgress.set(j/data.planetaryhours.length);
}
for (var i = 0, len = data.planetaryhours.length; i < len; i++) {
var everyday = setTimeout( makePHour, 10, i);
}
}
function generateJSON(iata, timestamp, timeoffset, days, latitude, longitude) {
var caldata = [];
var queryday = new moment.unix(timestamp).startOf('day');
var j = 0;
while ( j <= days ) {
var m = planetaryMoment(latitude, longitude, queryday.unix());
var sol = m.solar.day;
var h = 0;
var interval;
var start;
var m;
while ( h < 24 ) {
if ( h < 12 ) {
interval = sol.day.hourSecs;
start = sol.day.start;
m = h;
} else {
interval = sol.night.hourSecs;
start = sol.night.start;
m = h - 12;
}
var hm = start + m * interval;
pm = planetaryMoment(latitude, longitude, hm);
caldata.push(pm);
h++;
}
queryday.add(1, 'd');
j++;
};
console.log(caldata);
var data = {
iata: iata,
time: {
starttime: timestamp,
days: days,
offset: timeoffset
},
coords: {
lat: latitude,
lng: longitude
},
planetaryhours: caldata
};
return data;
}
function createFilterModal(id, getFunction) {
var items = getFunction();
var title = $('#navigation a[data-target="#'+id+'"]').clone();
var tagfilters = "";
var actions = "";
for (var i = 0, len = items.tags.length; i < len; i++) {
tagfilters += '<li><input type="checkbox" class="actiontag" value=".'+items.tags[i]+'" id="'+id+'-'+items.tags[i]+'" />&nbsp;'+items.tags[i]+'</li>';
}
for (var i = 0, len = items.actions.length; i < len; i++) {
actions += '<li class="operation '+items.actions[i].tags+'"><input type="checkbox" value=".'+id+'-'+items.actions[i].id+'" id="'+id+'-'+items.actions[i].id+'" />&nbsp;'+items.actions[i].action+'</li> ';
}
$('<div/>').loadTemplate($("#tpl-modal"), {
title : 'Filter by'+title[0].innerText,
left : '<h4>Tags</h4><ul class="option-set">'+tagfilters+'</ul>',
right : '<h4>Operations</h4><ul class="option-set">'+actions+'</ul>'
}) .appendTo('#modals').attr('id', id).attr('tabindex', '-1').attr('role', 'dialog').addClass('modal fade')
.find('.col-sm-4')
.addClass('actionlistfilter')
.find('ul')
.attr('id', id+'-tags' )
.attr('data-group', id )
.parents('.modal-body')
.find('.col-sm-8')
.addClass('filteroptions')
.find('ul')
.attr('id', id+'-actions')
.attr('data-group', id+'-actions' );
}
function createInfoModal() {
$('<div/>').loadTemplate($("#tpl-modal"), {
title : 'Planetary Hour <span id="p-hour"></span>',
left : '<div id="p-info"></div>',
right : '<div id="p-actions"></div>'
}) .appendTo('#modals').attr('id', 'hourinfo').attr('tabindex', '-1').attr('role', 'dialog').addClass('modal fade').modal({ show: false});
}
function getHourInfo() {
var ts = $(this).attr('ts');
var tsend = $(this).attr('ts-end');
var day = parseFloat($(this).attr('day'));
var hour = parseFloat($(this).attr('hour'));
var sunlng = parseFloat($(this).attr('sun-lng'));
var moonlng = parseFloat($(this).attr('moon-lng'));
var marslng = parseFloat($(this).attr('mars-lng'));
var mercurylng = parseFloat($(this).attr('mercury-lng'));
var jupiterlng = parseFloat($(this).attr('jupiter-lng'));
var venuslng = parseFloat($(this).attr('venus-lng'));
var saturnlng = parseFloat($(this).attr('saturn-lng'));
var zodiac = getZodiac(sunlng);
var moonsign = getZodiac(moonlng);
var marssign = getZodiac(marslng);
var mercurysign = getZodiac(mercurylng);
var jupitersign = getZodiac(jupiterlng);
var venussign = getZodiac(venuslng);
var saturnsign = getZodiac(saturnlng);
var mansion = getLunarMansion(moonlng);
var moonday = parseFloat($(this).attr('moon-day'));
var phase = parseFloat($(this).attr('moon-phase'));
var angle = parseFloat($(this).attr('moon-angle'));
var illumination = parseFloat($(this).attr('moon-illumination'));
var hygromanteia = getActions(matrix.planetary.day[day].hour[hour].for, action);
var lunarday = getActions(matrix.lunar.day[lunarday], action);
var lunarsign = getActions(matrix.lunar.sign[moonsign.sign].for, action);
var lunarmansion = getActions(matrix.lunar.mansion[mansion], action);
var claviculaday = getActions(matrix.clavicula[day+1], action);
var claviculahour = getActions(matrix.clavicula[matrix.planetary.day[day].hour[hour].planet], action);
$('#p-hour').html((hour+1));
$('#p-info').html(
$('<ul/>').append(
'<li><h4>Data</h4></li>'+
'<li>Day: '+def.planet.day[day+1]+'</li>'+
'<li>Ruler: '+def.planet.name[day+1]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Hour: '+(hour+1)+'</li>'+
'<li>Ruler: '+def.planet.name[matrix.planetary.day[day].hour[hour].planet]+'</li>'+
'<li>Angel: '+matrix.planetary.day[day].hour[hour].angel+'</li>'+
'<li>Demon: '+matrix.planetary.day[day].hour[hour].demon+'</li>'+
'<li>&nbsp;</li>'+
'<li>Zodiac Sign: '+def.zodiac.name[zodiac.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[zodiac.sign]]+'</li>'+
'<li>Ecliptic Lng.: '+Math.round(sunlng * 100) / 100+'°</li>'+
'<li>&nbsp;</li>'+
'<li>Decan: '+zodiac.decan+'</li>'+
'<li>Greek: '+def.decan.greek[zodiac.decan]+'</li>'+
'<li>Latin: '+def.decan.latin[zodiac.decan]+'</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[zodiac.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Lunar Day: '+moonday+'</li>'+
'<li>&nbsp;</li>'+
'<li>'+def.moon.phase.symbol[phase]+' '+def.moon.phase.name[phase]+'</li>'+
'<li>Angle: '+Math.round(angle * 180 / Math.PI * 100) / 100+'°</li>'+
'<li>Illumination: '+illumination+'%</li>'+
'<li>&nbsp;</li>'+
'<li>Lunar Sign: '+def.zodiac.name[moonsign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[moonsign.sign]]+'</li>'+
'<li>Ecliptic Lng.: '+Math.round(moonlng * 100) / 100+'°</li>'+
'<li>&nbsp;</li>'+
'<li>Lunar Mansion: '+mansion+'</li>'+
'<li>Arabic: '+def.moon.mansion.arabic[mansion]+'</li>'+
'<li>Latin: '+def.moon.mansion.latin[mansion]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Lunar Decan: '+moonsign.decan+'</li>'+
'<li>Greek: '+def.decan.greek[moonsign.decan]+'</li>'+
'<li>Latin: '+def.decan.latin[moonsign.decan]+'</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[moonsign.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Mars</li>'+
'<li>Ecliptic Lng.: '+Math.round(marslng * 100) / 100+'°</li>'+
'<li>Zodiac: '+def.zodiac.name[marssign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[marssign.sign]]+'</li>'+
'<li>Decan: '+marssign.decan+' ('+def.decan.greek[marssign.decan]+')</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[marssign.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Mercury</li>'+
'<li>Ecliptic Lng.: '+Math.round(mercurylng * 100) / 100+'°</li>'+
'<li>Zodiac: '+def.zodiac.name[mercurysign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[mercurysign.sign]]+'</li>'+
'<li>Decan: '+mercurysign.decan+' ('+def.decan.greek[mercurysign.decan]+')</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[mercurysign.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Jupiter</li>'+
'<li>Ecliptic Lng.: '+Math.round(jupiterlng * 100) / 100+'°</li>'+
'<li>Zodiac: '+def.zodiac.name[jupitersign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[jupitersign.sign]]+'</li>'+
'<li>Decan: '+jupitersign.decan+' ('+def.decan.greek[jupitersign.decan]+')</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[jupitersign.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Venus</li>'+
'<li>Ecliptic Lng.: '+Math.round(venuslng * 100) / 100+'°</li>'+
'<li>Zodiac: '+def.zodiac.name[venussign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[venussign.sign]]+'</li>'+
'<li>Decan: '+venussign.decan+' ('+def.decan.greek[venussign.decan]+')</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[venussign.sign]]+'</li>'+
'<li>&nbsp;</li>'+
'<li>Saturn</li>'+
'<li>Ecliptic Lng.: '+Math.round(saturnlng * 100) / 100+'°</li>'+
'<li>Zodiac: '+def.zodiac.name[saturnsign.sign]+'</li>'+
'<li>Ruler: '+def.planet.name[def.zodiac.ruler[saturnsign.sign]]+'</li>'+
'<li>Decan: '+saturnsign.decan+' ('+def.decan.greek[saturnsign.decan]+')</li>'+
'<li>Ruler: '+def.planet.name[def.decan.ruler[saturnsign.sign]]+'</li>'
)
);
$('#p-actions').html(
$('<ul/>').append(
'<li><h4>Operations</h4></li>'+
'<li><b>Key of Solomon</b></li>'+
'<li><ul class="kos-actions"></ul></li>'+
'<li><b>Hygromanteia</b></li>'+
'<li><ul class="hyg-actions"></ul></li>'+
'<li><b>Lunar Day</b></li>'+
'<li><ul class="lud-actions"></ul></li>'+
'<li><b>Moon Sign</b></li>'+
'<li><ul class="mos-actions"></ul></li>'+
'<li><b>Lunar Mansion</b></li>'+
'<li><ul class="lum-actions"></ul></li>'
)
);
$('<li/>').text('All Day:').appendTo('ul.kos-actions');
$.each(claviculaday.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(claviculaday.actions.list[i].action).appendTo('ul.kos-actions');
});
$('<li/>').html('&nbsp;').appendTo('ul.kos-actions');
$('<li/>').text('This Hour:').appendTo('ul.kos-actions');
$.each(claviculahour.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(claviculahour.actions.list[i].action).appendTo('ul.kos-actions');
});
$('<li/>').html('&nbsp;').appendTo('ul.kos-actions');
$.each(hygromanteia.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(hygromanteia.actions.list[i].action).appendTo('ul.hyg-actions');
});
$('<li/>').html('&nbsp;').appendTo('ul.hyg-actions');
$.each(lunarday.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(lunarday.actions.list[i].action).appendTo('ul.lud-actions');
});
$('<li/>').html('&nbsp;').appendTo('ul.lud-actions');
$.each(lunarsign.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(lunarsign.actions.list[i].action).appendTo('ul.mos-actions');
});
$('<li/>').html('&nbsp;').appendTo('ul.mos-actions');
$.each(lunarmansion.actions.list.sort(function (a, b) { return a.action.localeCompare( b.action ); }), function(i) {
$('<li/>').text(lunarmansion.actions.list[i].action).appendTo('ul.lum-actions');
});
if ( !$('.addtocalendar').length ) $('<button/>').attr('type', 'button').addClass('btn btn-default').append($('<span/>').addClass('addtocalendar addeventatc')).prependTo('#hourinfo .modal-footer');
var desc = $('#p-info').html()+'\n\n'+$('#p-actions').html();
$('.addtocalendar').empty().loadTemplate('#tpl-atc', {
start : new moment.unix(ts).format('YYYY-MM-DD HH:mm:ss'),
end : new moment.unix(tsend).format('YYYY-MM-DD HH:mm:ss'),
timezone : 'UTC',
title : 'Planetary Hour '+$('#p-hour').text(),
description : toMarkdown(desc),
location : $('#lat').val()+', '+$('#lon').val(),
organizer : 'http://www.sublunar.space',
email : 'calendar@sublunar.space'
});
if (window.addtocalendar)if(typeof window.addtocalendar.start == "function")return;
window.addtocalendar.load();
$('#hourinfo').modal('show');
}
function addPlanetClasses(lng, planet) {
var zodiac = getZodiac(lng);
var zodiacClass = planet + '-zodiac-' + zodiac.sign;
var decanClass = planet + '-decan-' + zodiac.decan;
return zodiacClass + ' ' + decanClass;
}
function getActions(array, action, idstring = "") {
var tags = [];
var actions = [];
var tagstring = "";
var actionstring = "";
if ( idstring != "" ) idstring += "-";
if (array) {
if (Array.isArray(array)) {
for (var i = 0, len = array.length; i < len; i++) {
if (action[array[i]].tags) tags.push(action[array[i]].tags);
if (action[array[i]].action) actions.push(action[array[i]]);
}
if (tags) tagstring = $.unique(tags.join(" ").split(' ')).sort().join(" ");
actionstring = array.sort().map(function(el) { return idstring + el; }).join(" ");
actions.sort();
}
else if (action[array].tags) {
tagstring = action[array].tags;
actionstring = idstring + array;
actions.push(action[array]);
}
}
var obj = {
tags : {
string : tagstring,
list : $.unique(tags.join(" ").split(' ')).sort()
},
actions : {
string : actionstring,
list : actions
}
}
return obj;
}
// from https://codepen.io/desandro/pen/MebyMR
function getComboFilter() {
var combo = [];
for ( var prop in filters ) {
var group = filters[ prop ];
if ( !group.length ) {
// no filters in group, carry on
continue;
}
// add first group
if ( !combo.length ) {
combo = group.slice(0);
continue;
}
// add additional groups
var nextCombo = [];
// split group into combo: [ A, B ] & [ 1, 2 ] => [ A1, A2, B1, B2 ]
for ( var i=0; i < combo.length; i++ ) {
for ( var j=0; j < group.length; j++ ) {
var item = combo[i] + group[j];
nextCombo.push( item );
}
}
combo = nextCombo;
}
var comboFilter = combo.join(', ');
return comboFilter;
}

View file

@ -1,372 +0,0 @@
var definitions = {
"manuscripts" : [
"void",
"Harleianus 5596",
"Gennadianus 45",
"Atheniensis"
],
"moon" : {
"phase" : {
"symbol" : [
"void",
"🌑",
"🌒",
"🌓",
"🌔",
"🌕",
"🌖",
"🌗",
"🌘"
],
"name" : [
"void",
"new",
"waxing crescent",
"first quarter",
"waxing gibbous",
"full",
"waning gibbous",
"last quarter",
"waning crescent"
]
},
"mansion" : {
"tropical" : [
"void",
"12 Aries 51",
"25 Aries 42",
"8 Taurus 34",
"21 Taurus 25",
"4 Gemini 17",
"17 Gemini 8",
"0 Cancer 0",
"12 Cancer 51",
"25 Cancer 42",
"8 Leo 34",
"21 Leo 25",
"4 Virgo 17",
"17 Virgo 8",
"0 Libra 0",
"12 Libra 51",
"25 Libra 42",
"8 Scorpio 34",
"21 Scorpio 25",
"4 Sagittarius 17",
"17 Sagittarius 8",
"0 Capricorn 0",
"12 Capricorn 51",
"25 Capricorn 42",
"8 Aquarius 34",
"21 Aquarius 25",
"4 Pisces 17",
"17 Pisces 8",
"360 Aries 0"
],
"constellational" : [
"9 Aries 0",
"0 Taurus 0",
"3 Taurus 0", // Number 28
"18 Taurus 0", // Number 1
"29 Taurus 0",
"10 Gemini 0",
"24 Gemini 0",
"9 Cancer 0",
"20 Cancer 0",
"7 Leo 0",
"18 Leo 0",
"28 Leo 0",
"12 Virgo 0",
"22 Virgo 0",
"27 Virgo 0",
"24 Libra 0",
"4 Scorpio 0",
"15 Scorpio 0",
"3 Sagittarius 0",
"10 Sagittarius 0",
"24 Sagittarius 0",
"13 Capricorn 0",
"16 Capricorn 0",
"4 Aquarius 0",
"12 Aquarius 0",
"23 Aquarius 0",
"4 Pisces 0",
"23 Pisces 0",
],
"arabic" : [
"void",
"Al-Sharatain",
"Al-Butain",
"Al-Thuraiya",
"Al-Dabaran",
"Al-Haqa",
"Al-Hana",
"Al-Dhira",
"Al-Nathrah",
"Al-Tarf",
"Al-Jabhah",
"Al-Zubrah",
"Al-Sarfah",
"Al-Awwa",
"Al-Simak",
"Al-Ghafr",
"Al-Zubana",
"Al-Iklil",
"Al-Qalb",
"Al-Shaulah",
"Al-Naaim",
"Al-Baldah",
"Sad al-Dhabih",
"Sad Bula",
"Sad al Suud",
"Sad al-Akhbiyah",
"Al Fargh al-Awwal",
"Al Fargh al-Thani",
"Batn al-Hut"
],
"latin" : [
"void",
"Alnath",
"Albotain",
"Azoraya",
"Aldebaran",
"Almices",
"Athaya",
"Aldira",
"Annathra",
"Atarf",
"Algebha",
"Azobra",
"Acarfa",
"Alahue",
"Azimech",
"Algarfa",
"Azubene",
"Alichil",
"Alcalb",
"Exaula",
"Nahaym",
"Elbelda",
"Caadaldeba",
"Caaddebolach",
"Caddacohot",
"Caadalhacbia",
"Almiquedam",
"Algarf almuehar",
"Arrexhe"
]
}
},
"planet": {
"name" : [
"void",
"Sun",
"Moon",
"Mars",
"Mercury",
"Jupiter",
"Venus",
"Saturn"
],
"symbol" : [
"void",
"☉",
"☽",
"♂",
"☿",
"♃",
"♀",
"♄"
],
"day" : [
"void",
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
},
"zodiac": {
"name" : [
"void",
"Aries",
"Taurus",
"Gemini",
"Cancer",
"Leo",
"Virgo",
"Libra",
"Scorpio",
"Sagittarius",
"Capricorn",
"Aquarius",
"Pisces"
],
"symbol" : [
"void",
"♈",
"♉",
"♊",
"♋",
"♌",
"♍",
"♎",
"♏",
"♐",
"♑",
"♒",
"♓"
],
"ruler" : [
"void",
3,
6,
4,
2,
1,
4,
6,
3,
5,
7,
7,
5
]
},
"decan" : {
"greek" : [ // Le Livré Sacre sur les Décans
"void",
"Chenlachori",
"Chontaret",
"Siket",
"Soou",
"Aron",
"Rhomenos",
"Xocha",
"Ouari",
"Pepisoth",
"Sotheir",
"Ouphisit",
"Chnouphos",
"Chnoumos",
"Ipi",
"Phatiti",
"Athoum",
"Brysous",
"Amphatham",
"Sphoukou",
"Nephthimes",
"Phou",
"Name",
"Oustichos",
"Aphebis",
"Sebos",
"Teuchmos",
"Chthisar",
"Tair",
"Epitek",
"Epichnaus",
"Isi",
"Sosomo",
"Chonoumous",
"Tetimo",
"Sopphi",
"Syro"
],
"latin" : [ // Liber Hermetis
"void",
"Aulathamas",
"Sabaoth",
"Disornafais",
"Jaus",
"Sarnotois",
"Erchmubris",
"Manuchos",
"Samurois",
"Azuel",
"Seneptois",
"Somachalmais",
"Charmine",
"Zaloias",
"Zachor",
"Frich",
"Zamendres",
"Magois",
"Michulais",
"Psineus",
"Chusthisis",
"Psamiatois",
"Necbeuos",
"Turmantis",
"Psermes",
"Clinothois",
"Thursois",
"Renethis",
"Renpsois",
"Manethois",
"Marcois",
"Ularis",
"Luxois",
"Crauxes",
"Fambais",
"Flugmois",
"Piatris"
],
"egyptian" : [ // Bennu Society
"void",
"Qd",
"Sasa Qd",
"A'rt",
"Khaw",
"Msdjr Sah",
"Rmn Khr Sah",
"A'sah",
"Sah",
"Spdt",
"Dpa'knmwt",
"Knmt",
"Khr Khp Knmwt",
"Hadjat",
"Phwy Djat",
"Thmat Hrt",
"Thmat Khrt",
"Wasthy",
"Bakathy",
"Dpa'Khntt",
"Khntt Hrt",
"Khntt Khrt",
"Thmsn Khntt",
"Sapt Khnnw",
"Hr Ab Wya",
"Shsmw",
"Knmw",
"Smdt",
"Dpa'smdt",
"Srt",
"Sasa Srt",
"Khr Khpt Srt",
"Khw Khw",
"Ba Ba",
"Khnt Hrw",
"Hr Ab Khtw",
"Khnt Khrw"
],
"ruler" : [
"void",
3, 1, 6,
4, 2, 7,
5, 3, 1,
6, 4, 2,
7, 5, 3,
1, 6, 4,
2, 7, 5,
3, 1, 6,
4, 2, 7,
5, 3, 1,
6, 4, 2,
7, 5, 3
]
}
};

View file

@ -1,47 +0,0 @@
function round2( x ) { return ( Math.round( 100*x )/100.0 );}
function normalize( v ) { v = v - Math.floor( v ); if( v < 0 ) v = v + 1; return v;}
function radToDeg(ra, neg = true) {
var deg = ra * 180 / Math.PI;
if( deg < 0 ) deg = deg + 360;
return deg;
}
function eqToEclDeg(eqobj, epsilon) {
// https://en.wikipedia.org/wiki/Celestial_coordinate_system#Equatorial_.E2.86.94_ecliptic
// not sure why longitude is 90° off, so i fixed it, but it works :)
var delta = eqobj.dec * 180 / Math.PI;
var alpha = eqobj.ra * 180 / Math.PI;
var x = sind(alpha) * cosd(epsilon) + tand(delta) * sind(epsilon);
var y = cosd(alpha);
var z = sind(delta) * cosd(epsilon) - cosd(delta) * sind(epsilon) * sind(alpha);
var obj = {
lng : 90 - atan2d(y, x),
lat : asind(z)
}
return obj;
}
function zodToDeg(zcoord) {
var zdef = def.zodiac; // global variable needs to be declared before using this function
var z = zcoord.split(" ");
var m = 0;
for (var i = 0, len = 13; i < len; i++) {
if (zdef.name[i] == z[1] || zdef.symbol[i] == z[1] ) m = i-1;
}
return parseFloat(z[0]) + m * 30 + parseFloat(z[2]) / 60;
}
function getDistance(lat1,lon1,lat2,lon2) {
var R = 6371; // Radius of the earth in km
var dLat = (lat2-lat1) * (Math.PI/180); // deg2rad below
var dLon = (lon2-lon1) * (Math.PI/180);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos( lat1 * (Math.PI/180) ) * Math.cos(lat2 * (Math.PI/180) ) *
Math.sin(dLon/2) * Math.sin(dLon/2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
return d;
}

File diff suppressed because it is too large Load diff