/* Trips Load */
var TripsLoad = new Class({
	// constructor
	initialize: function()
	{
		// noop
	},
	
	// set container
	setContainer: function(container)
	{
		this.container = $(container);
	},
	
	// load Trips for month
	loadMonth: function(month, year, page)
	{
		var self = this;
		
		this.showLoading();
		
		// making request
		var params = new Hash();
		params.set('month', month);
		params.set('year', year);
		params.set('page', typeof(page) != 'undefined' ? page : 1);
		
		// sending
		var request = new Request.HTML({
																method: 'post',
																url: '/ajax/trips4month',
																onSuccess: function(tree, a, html)
																{
																	self.container.set('text', '');
																	self.container.set('html', html);
																},
																onFailure: function()
																{
																	alert('Request Error');
																}
														 	}).send(params.toQueryString());
	},
	
	
	// load Trips for date
	loadDate: function(day, month, year)
	{
		var self = this;
		
		this.showLoading();
		
		// making request
		var params = new Hash();
		params.set('day', day);
		params.set('month', month);
		params.set('year', year);
		
		// sending
		var request = new Request.HTML({
																method: 'post',
																url: '/ajax/trips4date',
																onSuccess: function(tree, a, html)
																{
																	self.container.set('text', '');
																	self.container.set('html', html);
																},
																onFailure: function()
																{
																	alert('Request Error');
																}
														 	}).send(params.toQueryString());
	},
	
	// show loading message
	showLoading: function()
	{
		this.container.set('text', '');
		this.container.set('html', '<div class="loading">Loading trips... Wait a moment, please.</div>');
	},
	
	// update available dates in calendar
	updateCalendar: function(cal, m, y)
	{
		cal.setOptions({ blocked: ['*'] });
		
		// making request
		var params = new Hash();
		params.set('month', m);
		params.set('year', y);
		
		// sending
		var request = new Request({
																method: 'post',
																url: '/ajax/tcgad',
																onSuccess: function(data)
																{
																	var req = JSON.decode(data);
																	cal.setOptions({ blocked: req.blocked });
																	$extend(cal.calendars[0], cal.values(cal.calendars[0]));
																	cal.rebuild(cal.calendars[0]);
																	cal.display(cal.calendars[0]);
																},
																onFailure: function()
																{
																	alert('Request Error');
																}
															}).send(params.toQueryString());
	}
});

TripsLoad = new TripsLoad();