
//begin sentence text
var sentence = ' Today '


//today info
var today = new Date;
var date = today.getDate();
var month = today.getMonth();
var year = today.getYear();

//Y2K fixes
if (year <= 2000) { year+=1900; }
if (year <= 2000) { year+=100; }

//month lengths
var monthLengths = [31,((((year%4==0)&&(year%100!=0))||(year%400==0)) ? 29 : 28),31,30,31,30,31,31,30,31,30,31]


//unit differences
var yearDiff = 0;
var monthDiff = 0;
var dayDiff = 0;

//year difference
//year is later than 2003
if(year > 2003)
{
	yearDiff = year - 2003;
}

//month difference
//month is later than june
if(month > 5)
{
	for(var i=6; i<12; i++)
	{
		if(month >= i) { monthDiff ++; }
	}
}
//month is earlier than june
else if(month <= 5)
{
	monthDiff += 6;
	for(var i=0; i<6; i++)
	{
		if(month >= i) { monthDiff ++; }
	}
	yearDiff --;
}

//date difference
//date is later than 10th
if(date > 10)
{
	dayDiff = date - 10;
}
//date is earlier than 10th
if(date < 10)
{
	var prevMonth = month-1; if(prevMonth < 0) { prevMonth = 11; }
	dayDiff = date + (monthLengths[prevMonth]-10);
	monthDiff --;
}
//convert 12 month difference to 1 year
if(monthDiff == 12) { monthDiff = 0; yearDiff ++; }


//get number suffix method
var daySuffix = '';
function getNumberSuffix(dNum)
{
	daySuffix = 'th';
	if(dNum != 11 && dNum != 12 && dNum != 13) 
	{
		if(dNum > 9) { dNum = dNum % 10; }
		if (dNum == 1) { daySuffix = 'st'; }
		if (dNum == 2) { daySuffix = 'nd'; }
		if (dNum == 3) { daySuffix = 'rd'; }
	}
	return daySuffix;
}

//month words
var monthWords = ['January','February','March','April','May','June','July','August','September','October','November','December'];

//add today to sentence text
sentence += '(' + date + getNumberSuffix(date) + ' of ' + monthWords[month] + ' ' + year + ')';


//convert kizzy's age to words
var kizzyAge = "";
if(yearDiff > 0)
{
	kizzyAge += yearDiff + " year";
	if(yearDiff > 1)
	{
		kizzyAge += "s";
	}
}
if(monthDiff > 0)
{
	if(yearDiff != 0)
	{
		if(dayDiff == 0) { kizzyAge += " and "; }
		else  { kizzyAge += ", "; }
	}
	kizzyAge += monthDiff + " month"
	if(monthDiff > 1) { kizzyAge += "s"; }
}
if(dayDiff > 0)
{
	if(monthDiff != 0 || yearDiff != 0) { kizzyAge += " and "; }
	kizzyAge += dayDiff + " day"
	if(dayDiff > 1) { kizzyAge += "s"; }
}

//say if it's kizzy's birthday
if(yearDiff > 0 && monthDiff == 0 && dayDiff == 0)
{
	sentence += ' it\'s my ' + yearDiff + getNumberSuffix(yearDiff) + ' birthday!! ';
}

//say if it's kizzy's monthiversity
else if(yearDiff == 0 && monthDiff > 0 && dayDiff == 0)
{
	sentence += ' it\'s my ' + monthDiff + getNumberSuffix(monthDiff) + ' monthiversity! ';
}

//kizzy's age
else
{
	sentence += ' I\'m ' + kizzyAge + ' old. ';
}

//write sentence
document.write(sentence);

