function EstateWeb_Objects_DateTimeManager(){
	this.Ticker = new EstateWeb_Objects_DateTimeManager_Ticker();
	this.Days = new EstateWeb_Objects_DateTimeManager_Days();
	this.Months = new EstateWeb_Objects_DateTimeManager_Months();
	this.AMOrPM = EstateWeb_Objects_DateTimeManager_AMOrPM;
	this.LeadingZero = EstateWeb_Objects_DateTimeManager_LeadingZero;
}

function EstateWeb_Objects_DateTimeManager_LeadingZero(val){
	if ( val < 10 ){
		return "0" + val.toString();
	}else{
		return val;
	}
}

function EstateWeb_Objects_DateTimeManager_AMOrPM(date){
	if ( date.getHours() < 12 ) { return "am" } else { return "pm" }
}

function EstateWeb_Objects_DateTimeManager_Months(){
	this.Month = EstateWeb_Objects_DateTimeManager_Months_Month;
}

function EstateWeb_Objects_DateTimeManager_Months_Month(index){
	switch ( parseInt(index) ){
		case 0:
			return "January";
			break;
		case 1:
			return "February";
			break;
		case 2:
			return "March";
			break;
		case 3:
			return "April";
			break;
		case 4:
			return "May";
			break;
		case 5:
			return "June";
			break;
		case 6:
			return "July";
			break;
		case 7:
			return "August";
			break;
		case 8:
			return "September";
			break;
		case 9:
			return "October";
			break;
		case 10:
			return "November";
			break;
		case 11:
			return "December";
			break;
	}
}

function EstateWeb_Objects_DateTimeManager_Days(){
	this.Day = EstateWeb_Objects_DateTimeManager_Day;
	this.Ordinal = EstateWeb_Objects_DateTimeManager_Ordinal;
}

function EstateWeb_Objects_DateTimeManager_Ordinal(index){
	switch ( parseInt(index) ){
		case 1: case 21: case 31:
			return "st";
			break;
		case 2:
			return "nd";
			break;
		case 3:
			return "rd";
			break;
		default:
			return "th";
			break;
	}
}

function EstateWeb_Objects_DateTimeManager_Day(index){
	switch ( parseInt(index) ){
		case 0:
			return "Sunday";
			break;
		case 1:
			return "Monday";
			break;
		case 2:
			return "Tuesday";
			break;
		case 3:
			return "Wednesday";
			break;
		case 4:
			return "Thursday";
			break;
		case 5:
			return "Friday";
			break;
		case 6:
			return "Saturday";
			break;
	}
}

function EstateWeb_Objects_DateTimeManager_Ticker(){
	this.DateTime = new Date(); // default to now, otherwise can be overriden
	this.CallbackFunction = ""; // execute this when seconds change
	this.Initialise = EstateWeb_Objects_DateTimeManager_Ticker_Initialise;
}

function EstateWeb_Objects_DateTimeManager_Ticker_Initialise(){
	setInterval("eval('"+this.CallbackFunction+"')", 1000);
}