// ********************************************************************************
// Omer-calculation script by "Cowboy" Ben Alman - http://rj3.net/cowboy/ - 4-15-05
// 
// This script was based on a script written by Doug Popeney and modified by
// Sam Kamens, but had to be completely rewritten because the code was a DISASTER!
// ********************************************************************************


omerStartThisYear = new Date("3/30/2010 20:07:00");
omerEndThisYear   = new Date("5/18/2010 19:54:00");
omerStartNextYear = new Date("4/19/2011");

imgPrefix = "omer/images/OMER";
imgSuffix = ".JPG";


function nameOfMonth(month) {
	var monthsofyear = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
	return monthsofyear[month];
}

function nameOfDate(myDate) {
	return nameOfMonth(myDate.getMonth()) + " " + myDate.getDate() + ", " + ((myDate.getYear() < 1900 ? 1900 : 0) + myDate.getYear());
}

function postfixifyNumber(num) {
	var postfixStr;
	
	if (num >= 4 && num <= 20) {
		postfixStr = "th";
	} else {
		if (num % 10 == 1) {
			postfixStr = "st";
		} else if (num % 10 == 2) {
			postfixStr = "nd";
		} else if (num % 10 == 3) {
			postfixStr = "rd";
		} else {
			postfixStr = "th";
		}
	}
	return num + postfixStr;
}

function computeOmer() {

	var dayOfOmer, outStr = "";
	
	var now = new Date();

	if (now >= omerEndThisYear) {
		outStr = "The Omer is over! Please come back on " + nameOfDate(omerStartNextYear) + ".";
		return outStr;
	} else if (now > omerStartThisYear) {
		dayOfOmer = Math.ceil((now - omerStartThisYear) / 1000 / 60 / 60 / 24);
	} else {
		outStr = "The Omer hasn't started yet. Please come back after " + nameOfDate(omerStartThisYear) + " at 8:30 pm.";
		return outStr;
	}
	
	outStr = "<a href='" + imgPrefix + dayOfOmer + imgSuffix + "'>";
	outStr += "Today is the " + postfixifyNumber(dayOfOmer) + " day of the Omer";
	outStr += "</a>";
	
	return outStr
}

document.write(computeOmer());
