/**
 * Create a Calendar ajax handler sub-class
 */
function Calendar(id, url) {	
	this.el = $('#calendarbox_'+id);
	this.url = url;
	this.calact = '';
	this.obname = 'calendarbox_'+id;
	this.boxid = id
	
	this.setup();
}

// Pull in the base class definition
Calendar.prototype = new AjaxElement(null, null);

Calendar.prototype.setup = function()
{
	/**
	 * @todo Attach click commands to the calendar next & prev links
	 */
	
//	var me = this; // Needed to create a closure
	//this.el.find('tr:last').after('<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>');
	this.el.find('a:eq(0)').attr('onclick', this.obname + ".click('prev_year'); return false;");
	this.el.find('a:eq(1)').attr('onclick', this.obname + ".click('prev_month'); return false;");
	this.el.find('a:eq(2)').attr('onclick', this.obname + ".click('next_month'); return false;");
	this.el.find('a:eq(3)').attr('onclick', this.obname + ".click('next_year'); return false;");
	
//	this.el.sortable({
//		stop : function(i) { me.callback(); }
//	});
}

Calendar.prototype.data = function()
{
	return 'calid=1&calaction='+this.calact+'&boxid='+this.boxid;
}

Calendar.prototype.success = function(xml) {
	var table = this.el;
	table.find('tbody tr').remove();
	
	$('response > data > rows > *', xml).each(function(index, rows) {
		html = '<tr>';
		
		$(rows).children().each(function (index, days) {
			if ($(days).children().length == 0)
			{
				html += '<td class="blank">&nbsp;</td>';
			}
			else
			{
				day = $(days).find('day');

				if ($(days).find('url').length == 0)
				{		
					html += '<td class="noevent">'+$(day).text()+'</td>';
				}
				else
				{
					html += '<td class="event"><a href="'+$(days).find('url').text()+'">'+$(day).text()+'</a></td>';
				}
			}
		});
		
		html += '</tr>'
		
		$(html).appendTo(table.find('tbody'));
	});
	
	this.el.find('span[class*="title"]').text($('response > data > title', xml).text());
}

Calendar.prototype.click = function(action) {
	this.calact = action;
	this.callback();
}
