var offset=0;
var day=0;
var returnDay=0;
var selectedMonth=0;
var sort='start';
var order='ASC';
var maxMonths=23;

$(document).ready(function() {
	$('#homeMonthNext').click(function(event) {
		event.preventDefault();
		if(offset<maxMonths)
		{
			$('#homeMonthNext').css({ opacity: 1.0 });
			$('#homeMonthPrevious').css({ opacity: 1.0 });
			offset++;
			if(offset==maxMonths)
			{
				$('#homeMonthNext').css({ opacity: 0.7 });
			}
			changeMonth();
		}
	});
	$('#homeMonthPrevious').click(function(event) {
		event.preventDefault();
		if(offset>0)
		{
			$('#homeMonthPrevious').css({ opacity: 1.0 });
			$('#homeMonthNext').css({ opacity: 1.0 });
			offset--;
			if(offset==0)
			{
				$('#homeMonthPrevious').css({ opacity: 0.7 });
			}
			changeMonth();
		}
	});
	$('#theDate').click(function(event) {
		event.preventDefault();
		day = returnDay;
		offset = 0;
		selectedMonth = 0;
		$.getJSON('/index/day/offset/0/date/'+returnDay, function(data) {
			$('#homeContentSidebarCalendarEventsList').html(data.eventList);
			dojo.query('.events a.prd').forEach('applyTooltip(item, index, array);');
			$('#eventDate').text(data.eventsOn);
		});
		offset=0;
		changeMonth(true);
		$('#homeMonthPrevious').css({ opacity: 0.7 });
	});
	$('#monthList').change(function(event) {
		event.preventDefault();
		offset=$(this).val();
		$('#homeMonthNext').css({ opacity: 1.0 });
		$('#homeMonthPrevious').css({ opacity: 1.0 });
		if(offset==0)
		{
			$('#homeMonthPrevious').css({ opacity: 0.7 });
		}
		if(offset==maxMonths)
		{
			$('#homeMonthNext').css({ opacity: 0.7 });
		}
		changeMonth();
	});
	day=$("#calendar tr .active").html();
	returnDay=day;
	watchDays();
	changeSort();
	
	$('#eventListTable th').live("mouseover mouseout", function() {
		$(this).toggleClass("columnHover");
	});
	
    $('#homeMonthPrevious').css({ opacity: 0.7 });
	
	/*****Start fancy select*****/
	$('#monthList').hide();
	var menu = 0;
	var selectedValue = $('#monthList').val();
	var selectedText = $('#monthList :selected').text();
	var fancyList = '<div id="fancySelectList"><ul>';	
	var first = true;	
	$('#monthList option').each(function(index) {
		if(first)
		{
			fancyList += '<li id="month'+$(this).val()+'" class="firstLi"><a href="#" id="'+$(this).val()+'">'+$(this).text()+'</a></li>';
			first = false;
		}
		else
		{
			fancyList += '<li id="month'+$(this).val()+'"><a href="#" id="'+$(this).val()+'">'+$(this).text()+'</a></li>';
		}
	});
	fancyList += '</ul></div>';
	$('#monthSelect').append('<div id="fancySelect"><a href="#">'+selectedText+'</a></div>');
	var fancyOffset = $('#fancySelect').offset();
	$('#fancySelect').click(function (event) {
		event.preventDefault();
		$('#monthSelect').append(fancyList);	
		$('#fancySelectList').offset({ top: fancyOffset.top, left: fancyOffset.left });		
		$('#fancySelectList a').live('click', function(event) {		
			event.preventDefault();
			offset=$(this).attr('id');
			$('#homeMonthNext').css({ opacity: 1.0 });
			$('#homeMonthPrevious').css({ opacity: 1.0 });
			if(offset==0)
			{
				$('#homeMonthPrevious').css({ opacity: 0.7 });
			}
			if(offset==maxMonths)
			{
				$('#homeMonthNext').css({ opacity: 0.7 });
			}
			changeMonth();
		});
		menu = 2;
		$(document).click(function(e) {
			if(menu == 2)
			{
				menu = 1;
			}
			else
			{
				$('#fancySelectList').remove();
				$(document).unbind('click');
			}
		});	
    });    
    /*****End fancy select*****/
});

function changeMonth(update)
{
	$.getJSON('/index/month/offset/'+offset+'/date/'+day, function(data) {
		/*$('#homeMonthTitle').html(data.monthName);*/
		$('#monthList').val(offset);
		selectedText = $('#monthList :selected').text();
		$('#fancySelect').html('<a href="#">'+selectedText+'</a>');
		$('#homeMonthNext a').text(data.nextMonthName);
		$('#homeMonthPrevious a').text(data.previousMonthName);
		$('#homeContentSidebarCalendarGridNumbers').html(data.calendar);
		watchDays();
		$("#calendar tr a").removeClass("active"); 
		if(selectedMonth==offset)
		{
			$("#day"+day).addClass("active"); 
		}
		if(update !== undefined)
		{
			$("#calendar tr a").removeClass("active"); 
			$("#day"+returnDay).addClass("active"); 
		}
	});
}

function watchDays()
{
	$("#calendar tr a").click(function (event) {
		event.preventDefault();
		day=$(this).html();
		selectedMonth=offset;
		$.getJSON('/index/day/offset/'+offset+'/date/'+day, function(data) {
			$('#homeContentSidebarCalendarEventsList').html(data.eventList);
			dojo.query('.events a.prd').forEach('applyTooltip(item, index, array);');
			$('#eventDate').text(data.eventsOn);
			//$('#eventsViewing').html(data.viewingEvents);
		});
		$("#calendar tr a").removeClass("active"); 
		$(this).addClass("active"); 
    });
}

function changeSort()
{
	$("#eventListTable th a").live('click', function (event) {
		event.preventDefault();
		sort=$(this).attr('id');
		order=$(this).attr('class');
		$.getJSON('/index/day/offset/'+offset+'/date/'+day+'/sort/'+sort+'/order/'+order, function(data) {
			$('#homeContentSidebarCalendarEventsList').html(data.eventList);
		});
    });
}
