$(document).ready(function(){
	init();
});

function init(e) {

	//daily date
	if (!e || e == 'dailyDate' || e == 'dailyRegion') {
		$('.calendarPagination a').click(function()	{
			//$('.calendarDaily .data').load(this.href+' .calendarDaily .data .calendarDates', {}, function(){ init('dailyDate'); });
			// nb. above code is example; this code needs to be adjusted depending on server-side implementation.
			return true;
		});
	}

	//dailyRegion
	if (!e || e == 'dailyRegion') {
		$("select#calendarDailyRegions").change(function() {
			//$(this).parents("form").attr("action")
			//$('.calendarDaily').load("template_calendar.shtml?region="+$(this).val()+' .calendarDaily .regionContainer', {}, function(){ $('.announcement').css('display','none'); init('dailyRegion'); });
			// nb. above code is example; this code needs to be adjusted depending on server-side implementation.
			return true;
		});
	}
	
	if (!e || e == 'weekly') {
		//info window links
		$('.calendarDates .vevent a').click(function()	{
			/*
			$('.calendarDates .current').removeClass('current');
			$('.calendarInfo').load(this.href+' .calendarInfoInner');
			$(this).parents("tr").addClass('current')
			*/
			return true;
		});

		//report links
		$('.report').click(function()	{
			/* --- load report here if overloading these links --- */
			/* return false; */
			return true;
		});

		//weeklyRegion
		$("select#calendarWeeklyRegions").change(function() {
			//$(this).parents("form").attr("action")
			//$('.calendarContent').load("template_calendar.shtml?region="+$(this).val()+' .calendarContent .refresh', {}, function(){ });
			// nb. above code is example; this code needs to be adjusted depending on server-side implementation.
			return true;
		});

		//date picker
		$(function() {
			// initialise date pickers;
			$('.calendarDaily .date-pick').datePicker({startDate:'01/01/1970'});
			$('.calendarWeekly .date-pick').datePicker({startDate:'01/01/1970'});

			$('.calendarDaily .date-pick').bind('dateSelected', function(e, selectedDate, $td) {calendarDaily_datePicked(selectedDate);});
			$('.calendarWeekly .date-pick').bind('dateSelected', function(e, selectedDate, $td) {calendarWeekly_datePicked(selectedDate);});
		});
	}
	
	$('.calendarTable').css('display','block');
}

/* --- function called when date picker used in daily calendar --- */
function calendarDaily_datePicked(selectedDate)
{
	var updatedQueryString = updateQueryString(selectedDate);
	document.location.href = document.location.href.substring(0, document.location.href.indexOf('?')) + updatedQueryString;
}

function updateQueryString(selectedDate)
{
  var queryStringCollection = document.location.search.split('&');
  
  updateParameter(queryStringCollection, 'year', selectedDate.getFullYear());
  updateParameter(queryStringCollection, 'month', selectedDate.getMonth() + 1);
  updateParameter(queryStringCollection, 'day', selectedDate.getDate());
  
  var updatedQueryString = '';
  for (i = 0; i < queryStringCollection.length; i++)
  {
    updatedQueryString += queryStringCollection[i] + '&';
  }
  return updatedQueryString.substring(0, updatedQueryString.length - 1);
}

function updateParameter(queryStringCollection, parameterName, parameterValue)
{
  for (i = 0; i < queryStringCollection.length; i++)
  {
      var tempString = queryStringCollection[i].toLowerCase();
      if (tempString.match(parameterName))
      {
        queryStringCollection[i] = queryStringCollection[i].substring(0, queryStringCollection[i].indexOf('=') + 1) + parameterValue;
        break;
      }
  }
}

/* --- function called when date picker used in weekly calendar --- */
function calendarWeekly_datePicked(selectedDate)
{
	// do what you want here;
	var url = 'x.aspx?day=' + selectedDate.getDate() + '&month=' + (selectedDate.getMonth()+1) + '&year=' + selectedDate.getYear();
	
	
	
	//document.location.href = url;
	alert(url);
}

/* --- end of functions --- */
