/*
Edit the following NUMBERS to have the script automatically calculate ages.
DueDate is the numbers for the due date (duh)
BirthDate is.... oh, never mind.
*/

DueDateYear="2007"
DueDateMonth="7" 
DueDateDay="2"

BirthDateYear="2007"
BirthDateMonth="5"   
BirthDateDay="23"

/*
Edit the text in the quotes to personalize the script. 
*/

BirthDateIntroText="<strong>Hunter</strong> and <strong>Aden</strong> were born on"
DueDateIntroText="They were expected on"


/*
Leave the rest alone. Or don't. But little errors will break it, so be warned.
*/

/*
Utility constant to convert calulate days from milliseconds
*/
DaysConvConstant=1000*60*60*24

/*
Correct for JavaScript quirkiness in numbering months from 0 to 11 instead of 1 to 12
*/
BirthDateMonth=BirthDateMonth-1
DueDateMonth=DueDateMonth-1

/*
Utility arrays to fetch correct month names
*/
var BirthMonth=new Array(12)
BirthMonth[0]="January"
BirthMonth[1]="February"
BirthMonth[2]="March"
BirthMonth[3]="April"
BirthMonth[4]="May"
BirthMonth[5]="June"
BirthMonth[6]="July"
BirthMonth[7]="August"
BirthMonth[8]="September"
BirthMonth[9]="October"
BirthMonth[10]="November"
BirthMonth[11]="December"

var DueMonth=new Array(12)
DueMonth[0]="January"
DueMonth[1]="February"
DueMonth[2]="March"
DueMonth[3]="April"
DueMonth[4]="May"
DueMonth[5]="June"
DueMonth[6]="July"
DueMonth[7]="August"
DueMonth[8]="September"
DueMonth[9]="October"
DueMonth[10]="November"
DueMonth[11]="December"

/*
Get the relevant date data
*/

var cdate= new Date()
var CurrentDate= new Date(cdate.getFullYear(),cdate.getMonth(),cdate.getDate())
var DueDate=new Date(DueDateYear,DueDateMonth,DueDateDay)
var BirthDate=new Date(BirthDateYear,BirthDateMonth,BirthDateDay)


/*
Calculate time passed.  (CurrentDate - DATE) returns a value in milliseconds, hence the division by the DaysConvConstant
*/

DaysSinceBirth=(CurrentDate-BirthDate-1000*60*60)/DaysConvConstant
DaysSinceDue=(CurrentDate-DueDate+-1000*60*60)/DaysConvConstant


/*
Calculate weeks passed.  The "floor" function strips the remainder off, giving just a whole number
*/
var WeeksSinceBirth=Math.floor(DaysSinceBirth/7)
var WeeksSinceDue=Math.floor(DaysSinceDue/7)
var DaysRemainderSinceBirth=DaysSinceBirth % 7
var DaysRemainderSinceDue=DaysSinceDue % 7

/*
Code block to make pretty with the whole "1 day, 2 days" problem
*/

if (DaysRemainderSinceBirth == 1) {
str_WeeksSinceBirth_dayordays=" day"}
else {
str_WeeksSinceBirth_dayordays=" days"
}

if (DaysRemainderSinceDue == 1) {
str_WeeksSinceDue_dayordays=" day"}
else {
str_WeeksSinceDue_dayordays=" days"
}

/*
Code block to turn all the date and time data into plain text for later use
*/

strBirthDateText=BirthMonth[BirthDate.getMonth()]+ "&nbsp;" + BirthDate.getDate() + ",&nbsp;" + BirthDate.getFullYear()
strDueDateText=DueMonth[DueDate.getMonth()]+ "&nbsp;" + DueDate.getDate() + ",&nbsp;" + DueDate.getFullYear()
strTimeSinceBirth=WeeksSinceBirth + " weeks, " + DaysRemainderSinceBirth + str_WeeksSinceBirth_dayordays
strTimeSinceDue=WeeksSinceDue + " weeks, " + DaysRemainderSinceDue + str_WeeksSinceDue_dayordays

/*
Now finally HTML is produced. Here the html codes can be tweaked to your heart's content.
*/

document.write("<p>" + BirthDateIntroText)
document.write(" <strong>")
document.write(strBirthDateText)
document.write("</strong>. ")

document.write(DueDateIntroText)
document.write(" <strong>")
document.write(strDueDateText)
document.write("</strong>. </p>")

document.write("<p>The real and developmentally adjusted ages are:</p>")
document.write("<ul>")
document.write("<li>")
document.write(strTimeSinceBirth + " since birth.")
document.write("</li>")

document.write("<li>")
document.write(strTimeSinceDue + " since due.")
document.write("</li>")

document.write("</ul>")


