﻿var _months;
var _currentDate;
var _minDate;
var _maxDate;
var _initDone = 0;

function initializeCalendar() {
  _months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  _currentDate = new Date();
  _currentDate = dateToFirstOfMonth(_currentDate);

  _minDate = dateToFirstOfMonth(new Date());
  _minDate.setDate(_minDate.getDate() - 20);
  _minDate = dateToFirstOfMonth(_minDate);
  
  _maxDate = dateToFirstOfMonth(new Date());
  for (var i=1; i<11; i++) {
    _maxDate.setDate(_maxDate.getDate() + 40);
    _maxDate = dateToFirstOfMonth(_maxDate);
  }

  var oCalHeading = jQuery("#calendarHeading");
  var sNew;
  for (var i=1; i<=12; i++) {
    sNew = '<div class="calendarMonth calHeading m' + pad2(i) + '">' + _months[i-1] + '</div>';
    jQuery(oCalHeading).append(sNew);
  }
  jQuery('#calendarNoEvents').text('No events.');

  jQuery('.calNav').show();
  jQuery('#calendarHeading').show();

  showCalendar();  
  
  _initDone = 1;
}

function pad2(num) {
  var sReturn = '0' + num.toString();
  sReturn = sReturn.toString().substring(sReturn.length - 2, 3);
  return sReturn;
}
function currentYearMonth() {
  var sReturn;
  sReturn = 
    _currentDate.getFullYear().toString() +
    pad2(_currentDate.getMonth() + 1);
  
  return sReturn;
}
function dateToFirstOfMonth(sourceDate) {
  sourceDate.setFullYear(sourceDate.getFullYear(), sourceDate.getMonth(), 1);
  return sourceDate;
}
function incDate(amount) {
  if (amount < 0) {
    _currentDate.setDate(_currentDate.getDate() - 20);
  } else {
    _currentDate.setDate(_currentDate.getDate() + 40);
  }  
  _currentDate = dateToFirstOfMonth(_currentDate);
}
function calendarMove(inc) {
  if (inc>0 && _currentDate < _maxDate) {
    incDate(inc);
    showCalendar();
  } else if (inc<0 && _currentDate > _minDate) {
    incDate(inc);
    showCalendar();
  }
}
function showCalendar() {
  var iTime = 1800;
  var oCurrentMonth;
  var sMonth;
  
  if (_initDone == 0) iTime = 0;
  jQuery().stop(true, true);
  
  jQuery('#calendarWrap').hide();
  jQuery('.calHeading').hide();
  jQuery('.vEvent').hide();
  jQuery('#calendarNoEvents').hide();
  
  oCurrentMonth = jQuery('.vEvent.d' + currentYearMonth());
  sMonth = pad2(_currentDate.getMonth()+1);

  
  if (jQuery(oCurrentMonth).length == 0) {
    jQuery('#calendarNoEvents').show();
    iTime = iTime * 0.6;
  } else {      
    jQuery(oCurrentMonth).show();
  }

  jQuery(".calendarMonth.m" + sMonth).show();
  jQuery('#calendarWrap').fadeIn(iTime);

}


