Date.prototype.getWeekInMonth = function() {
	return parseInt((this.getDate() - 1) / 7 + 1);
};

DAY_NAMES   = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
MONTH_NAMES = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

function makeDateIdx(d) {
	var y = d.getFullYear();
	return '' + y + d.getMonth() + d.getDate();
}

function selectNewDate(dateIndex) {
	var d = InviteSchedule.getDateFromIdx(dateIndex);
	var meetingId = dateSelector.getMeetingFromDate(dateIndex);   
	
	invite_url = '/invitations/show/' + INVITE_ID + '/' + meetingId;
	if(window.fb_sig_session_key)  invite_url += "?fb_sig_session_key="  + window.fb_sig_session_key ;
	
	window.location.href =  invite_url

}

function setNewDate(newDate, meetingId) {   
	// IF we get rid of the Dates Attending Selector then we can get rid of this function. -dave
	if(!(newDate instanceof Date)) {
		newDate = newDate.currentDate;
	}
	var idx = makeDateIdx(newDate);
	var c = CONFIRMATIONS_BY_DATE[idx];
	if(c) { 
		c.highlight(); 
		ConfirmationUtils.resetButtons(c.getStatus());
	} else {
		ConfirmationUtils.removeHighlights();
		ConfirmationUtils.resetButtons('');		
	} 

	$('meeting_prefix').innerHTML = "The meeting date <span class='repeat_term'>you selected</span> is:";
	$('whence_date').innerHTML = DAY_NAMES[newDate.getDay()] + ', ' + 
				 				 MONTH_NAMES[newDate.getMonth()] + ' ' + 
				 				 newDate.getDate() + ', ' + 
				 				 (newDate.getFullYear());
    $('meeting_id').value = meetingId;
    
	var updateGuestResponseURL = '/invitations/update_guest_response/' + INVITE_ID + '?meeting_id=' + meetingId;
	new Ajax.Request(updateGuestResponseURL, {asynchronous:true, evalScripts:true});
}

var InviteSchedule = new Object();

InviteSchedule.makeDateIdx = function(d) {
	if(typeof(d) == 'string' && d.match(/[0-9]{9}/)){
		return d;
	} 
	var y = d.getFullYear();
	var m = (d.getMonth() < 10) ? ('0' + d.getMonth()) : (d.getMonth()); 
	var date = (d.getDate() < 10) ? ('0' + d.getDate()) : (d.getDate());
	return '' + y + m + date;
}

InviteSchedule.getDateFromIdx = function(idx) {
   if(typeof(idx) == 'string') {
     var y = idx.substr(0, 4);
     var m = idx.substr(4, 2);  
     var d = idx.substr(6, 2);
     return new Date(y, m, d);  
   } else {
	 return idx;
   }
}

InviteSchedule.prettyDate = function(dateOrString) {
	var d = dateOrString;
	if(typeof(dateOrString) == 'string') {
		d = InviteSchedule.getDateFromIdx(dateOrString);
	} 
	var date = (d.getDate() < 10) ? '0' + d.getDate() : d.getDate();
	return (MONTH_NAMES[d.getMonth()] + ' ' + date + ', ' + (d.getFullYear()));
}
