﻿var DateHelper = {
	formatForOutput: function(date)
	{
		return DateHelper.DaysOfWeek[date.getDay()] + ' ' + 
			DateHelper.Months[date.getMonth()]+ ' ' + 
			date.getDate() + ', ' + date.getFullYear()
	},
	formatForQuery: function(date)
	{
		return (date.getMonth()+1) + '/' + date.getDate() + '/' + date.getFullYear()
	},
	formatForID: function(date)
	{
		return (date.getMonth()) + '-' + date.getDate() + '-' + date.getFullYear()
	},
	updateWeekRanges: function(date)
	{
		new Ajax.Request('/assets/ajax/handlers/date-helper.aspx', {
			method: 'get',
			parameters: {f: 'week', day: DateHelper.formatForQuery(date) },
			onSuccess: function(transport)
			{
				var dates = transport.responseText.evalJSON();
				$$('#weekview h2 span')[0].update(DateHelper.formatForOutput(dates.start) + ' - ' + DateHelper.formatForOutput(dates.weekend));
				$$('#twoweekview h2 span')[0].update(DateHelper.formatForOutput(dates.start) + ' - ' + DateHelper.formatForOutput(dates.twoweekend));
			},
			onFailure: function(transport)
			{
				debug(transport.responseText);
			}
		});
	},
	DateAdd: function(unit, amount, date)
	{
		var millisecond=1;
		var second=millisecond*1000;
		var minute=second*60;
		var hour=minute*60;
		var day=hour*24;
		var year=day*365;

		var newDate;
		var dVal=date.valueOf();
		switch(unit) {
			case "ms": newDate=new Date(dVal+millisecond*amount); break;
			case "s": newDate=new Date(dVal+second*amount); break;
			case "mi": newDate=new Date(dVal+minute*amount); break;
			case "h": newDate=new Date(dVal+hour*amount); break;
			case "d": newDate=new Date(dVal+day*amount); break;
			case "y": newDate=new Date(dVal+year*amount); break;
		}
		return newDate;
	},
	DaysOfWeek: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
	Months: ['January','February','March','April','May','June','July','August','September','October','November','December']
	
}