first commit

This commit is contained in:
Sami Samhuri 2013-01-17 19:18:22 -08:00
commit c3d7493f17

70
index.html Normal file
View file

@ -0,0 +1,70 @@
<!doctype html>
<title>is it my cake day?</title>
<style>
h1, h3, p, footer { text-align: center }
</style>
<h1>is it my cake day?</h1>
<p>
reddit name:
<input id=user placeholder=spez>
</p>
<h3 id=answer></h3>
<footer>made by <a href=http://reddit.com/user/sjs>sjs</a></footer>
<script>
(function() {
$user = null, $answer = null;
document.addEventListener('DOMContentLoaded', function() {
$user = document.getElementById('user');
$answer = document.getElementById('answer');
$user.addEventListener('change', setRequestTimer);
$user.addEventListener('keyup', setRequestTimer);
});
var timer;
function setRequestTimer() {
$answer.innerText = '';
if (!timer) {
timer = setTimeout(checkForCakeDay, 300);
}
}
function checkForCakeDay() {
timer = null;
var user = encodeURIComponent($user.value);
var r = document.createElement('script');
r.async = true;
r.src = 'http://reddit.com/user/' + user + '/about.json?jsonp=redditCb';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(r, s);
}
function ord(n) {
if (n % 10 == 1 && n % 100 != 11) return 'st';
if (n % 10 == 2 && n % 100 != 12) return 'nd';
if (n % 10 == 3 && n % 100 != 13) return 'rd';
return 'th';
}
var Months = 'January February March April May June July August September October November December'.split(' ');
var OneYear = 365 * 86400000;
window.redditCb = function(res) {
try {
var t = res.data.created_utc * 1000;
var nowT = +new Date() + (new Date().getTimezoneOffset() * 60000);
// Reddit seems to treat this fuzzily for timezone differences, so we should also treat it fuzzily.
var isCakeDay = (Math.abs(nowT - t) % OneYear) <= 86400000;
var d = new Date(t);
var now = new Date(nowT);
var n = now.getFullYear() - d.getFullYear();
var msg;
if (isCakeDay) {
msg = 'happy ' + n + ord(n) + ' cake day!';
}
else {
var month = Months[d.getMonth()];
msg = 'nope, check back on ' + month + ' ' + d.getDate() + ord(d.getDate());
}
$answer.innerText = msg;
} catch (e) {
$answer.innerText = 'maybe';
console.log(e);
}
};
}());
</script>