Array.prototype.contains = function( element )
{
	for (obj = 0; obj < this.length; obj++)
	{
		if (obj in this && this[obj] === element)
		{
			return obj;
		}
	}
    return false;
};

function Events_ANB()
{
	this.months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
}

Events_ANB.prototype.getActiveDate = function()
{
	return [this.getActiveYear(), 1 + this.getActiveMonth(),this.getActiveDay()];
};

Events_ANB.prototype.getActiveYear = function()
{
	return parseInt($('.events-calendar-title span.year').text());
};
Events_ANB.prototype.getActiveMonth = function()
{
	var month =  $('.events-calendar-title span.month').text();

	return this.months.contains(month);
};

Events_ANB.prototype.getActiveDay = function()
{
	return $('.events-calendar').find('a.active-date').length > 0 ? parseInt($('.events-calendar').find('a.active-date').text()): 1;
};

Events_ANB.prototype.updateYear = function(type, uc)
{
	var y = this.getActiveYear();
	
	/* Recalculate year */
	y += type;
	
	$('.events-calendar-title span.year').html(y);
	
	if (uc)
	{
		this.updateCalendar();
	}
};

Events_ANB.prototype.updateMonth = function( type )
{
	var cm = this.getActiveMonth();
	
	/* Recalculate month */
	cm += type;
	
	/* Protect value */
	

	switch(parseInt(cm))
	{
		case -1:
			cm = 11; 
			this.updateYear(-1, false);
			break;
		case 12:
			cm = 1; 
			this.updateYear(1, false);
			break;
	}

	$('.events-calendar-title span.month').html(this.months[cm]);
	
	this.updateCalendar();
};

Events_ANB.prototype.addPreloader = function()
{
	$('.events-calendar').addClass('events-calendar-loading');
};

Events_ANB.prototype.delPreloader = function()
{
	$('.events-calendar').removeClass('events-calendar-loading');
};

Events_ANB.prototype.emptyCalendar = function()
{
	$('.events-calendar').find('.events-calendar-row').slice(1).remove();
};

Events_ANB.prototype.updateCalendar = function()
{
	var date = this.getActiveDate();
	var self = this;
	
	var $c = $('.events-calendar');
	
	this.emptyCalendar();
	this.addPreloader();

	$.ajax(
	{
		type: "POST",
		url: getDomain() + "plugins/events/calendar.php",
		data: "year=" + date[0] + "&month=" + date[1] + "&day=" + date[2],
		dateType: "xml",
		success: function( response )
		{
			self.delPreloader();
			
			$('row',response).each(function()
			{
				var $row = $('<div></div>');
				
				$row.addClass('events-calendar-row fix');
				
				$(this).find('day').each(function()
				{
					$cell = $('<div></div>');
					
					$cell.addClass('events-calendar-cell');

					$cell.append('<a href="' + $(this).attr('link') +'">' + $(this).text() + '</a>');
					
					if ($(this).attr('selected'))
					{
						$cell.addClass('active-date');
					}
					
					if (parseInt($(this).attr('event')) > 0)
					{
						$cell.addClass('active-date-event');
					}
					
					$row.append($cell);
				});
				
				$c.append($row);
			});
		}
	});
};


var eANB = new Events_ANB();