var tBodyDisplayStyle = 'table-row-group';
if (document.all){
	tBodyDisplayStyle = 'block';
}

var monthArray = new Array(12);
monthArray[1] = 'jan';
monthArray[2] = 'feb';
monthArray[3] = 'mar';
monthArray[4] = 'apr';
monthArray[5] = 'may';
monthArray[6] = 'jun';
monthArray[7] = 'jul';
monthArray[8] = 'aug';
monthArray[9] = 'sep';
monthArray[10] = 'oct';
monthArray[11] = 'nov';
monthArray[12] = 'dec';

var currentYear;

var monthNamesForDurationArray = new Array();
for (var i=0 ; i<durationValues.length; i++){
	monthNamesForDurationArray[durationValues[i]] = new Array();
}


var yearsForMonthNames = new Array();
var calendarOpen = false;

function setCalendarMonthAndYear(monthAndYear ,duration){

	if(monthAndYear){
		currentYear = parseYearFromMonthAndYear(monthAndYear);
		currentMonthInt = parseMonthNumFromMonthAndYear(monthAndYear);

		showMonth(currentMonthInt);
		setUpYearsNavigation();
	}
	
}

function openCalendar(monthAndYear){

  if (monthAndYear==0) {
	monthAndYear = "" + initialMonth + initialYear;
  }
  
  setCalendarMonthAndYear(monthAndYear , getDuration());
  if (!calendarOpen) {
	showCalendar();
	selectMonth(currentMonthInt);
  } else {
	closeCalendar();
  }
}

function selectDate(aDate){
	var menuItem = setDayOnBookingForm(aDate);
	closeCalendar();
}

function selectMonth(aMonth){
	var m = ""+aMonth;
	if (aMonth<10) {
		m = "0"+aMonth;
	}
	var aValue = m + currentYear;
	var menuItem = setMonthOnBookingForm(aValue);
	setDayMenuOptionsForMonth(aMonth,currentYear);
}

function parseMonthNumFromMonthAndYear(monthAndYear){
	var monthNum = parseInt((monthAndYear/10000));
	return monthNum;
}
function parseYearFromMonthAndYear(monthAndYear){
	return monthAndYear - parseMonthNumFromMonthAndYear(monthAndYear)*10000;

}
function getMonthFromMonthAndYear(monthAndYear){
	monthNum = parseMonthNumFromMonthAndYear(monthAndYear);
	var month = monthArray[monthNum];
	return month;
}

function closeCalendar(){
	document.getElementById('calendar').style.display = 'none';
	calendarOpen = false;
}
function showCalendar(){
	document.getElementById('calendar').style.display = 'block';
	calendarOpen = true;
}


function setupCalendar() {
	setUpYearsNavigation();
}

function hasArrivals(someMonth,duration) {
	if (duration!=null) {
		if(arrivals[currentYear]!=null && arrivals[currentYear].length>0) {
			if(arrivals[currentYear][someMonth]!=null && arrivals[currentYear][someMonth].length>0) {
			  for (var i = 0;i<arrivals[currentYear][someMonth].length;i++) {
			    if (arrivals[currentYear][someMonth][i][1]==duration) {
				  return true;
			    }
			  }
			}
		}
	}
	return false;
}

function setUpYearsNavigation() {

	var duration = getDuration();
	if (duration == "WE" || duration == "MW" || duration == "WK") {
		toggleCalendarLink(true);
	}

	// hang een onclick op de maanden.
	var monthNavigator = document.getElementById('monthNavigator');
	var monthLinks = monthNavigator.getElementsByTagName('A');
  	for (var i=0; i<monthLinks.length; i++){
		// jan,feb enzo
  		var linkString = mungeLinkForHash(monthLinks[i].href);
  		if(hasArrivals((i+1),duration)){
  			monthLinks[i].style.color = "#ffffff";
  			monthLinks[i].style.cursor = "pointer";
			monthLinks[i].monthint= (i+1);
  			monthLinks[i].onclick = function() { var month = mungeLinkForHash(this.href); showMonth(this.monthint); return false; }
  		}else{
  			monthLinks[i].style.color = "#56AC6C";
  			monthLinks[i].style.cursor = "text";
  			monthLinks[i].onclick = function() { return false; }
  		}
  	}

    // de pijltjes op de jaren
	var lastYear = yearPredecessor(currentYear);
	var nextYear = yearSuccessor(currentYear);
	var thisYearElement = document.getElementById('thisYear');
	var yearDisplay = thisYearElement.getElementsByTagName('H3').item(0);
	var backArrow;
	var nextArrow;
	var yearText;
	var arrowsAndMaxims = thisYearElement.getElementsByTagName('A');
	for (var i=0; i<arrowsAndMaxims.length; i++){
		if(arrowsAndMaxims[i].className == 'past'){
			backArrow = arrowsAndMaxims[i];
		}
		if(arrowsAndMaxims[i].className == 'next'){
			nextArrow = arrowsAndMaxims[i];
		}

	}
	backArrow.style.display = 'block';
	nextArrow.style.display = 'block';
	if(lastYear){
		backArrow.href='#';
		backArrow.style.cursor = 'pointer';
		backArrow.style.backgroundImage = lastYearArrow;
		backArrow.onclick = function(){setYearForDirection('past');return false;}
	}else{
		backArrow.href='#';
		backArrow.style.cursor = 'text';
		backArrow.style.backgroundImage = 'none';
		backArrow.onclick = function(){return false;}
	}
	if(nextYear){
		nextArrow.href='#';
		nextArrow.style.cursor = 'pointer';
		nextArrow.style.backgroundImage = nextYearArrow;
		nextArrow.onclick = function(){setYearForDirection('next');return false;}
	}else{
		nextArrow.href='#';
		nextArrow.style.cursor = 'text';
		nextArrow.style.backgroundImage = 'none';
		nextArrow.onclick = function(){return false;}
	}
	
	// zet jaar op het display. 2007 oid.
	for(var i=yearDisplay.childNodes.length; i>0; i--){
		yearDisplay.removeChild(yearDisplay.childNodes.item(i-1));
	}
	yearDisplay.appendChild(document.createTextNode(currentYear.toString()));
	
}


function setYearForDirection(direction){
	var year;
	if(direction == 'past'){
		year = yearPredecessor(currentYear);
	}else if(direction == 'next'){
		year = yearSuccessor(currentYear);
	}
	if(year){
		currentYear = year;
		showMonth(1);
		setUpYearsNavigation();
	}
	return false;
}

function setMonthForYear(aYear){

	for(monthNames in yearsForMonthNames){
		if(parseInt(yearsForMonthNames[monthNames]) == parseInt(aYear)){
			showMonth(monthNames);
			return true;
		}
	}
	return false;
	
	
}


function yearSuccessor(aYear){

  if (aYear+1>finalYear) {
    return false;
  }
  return aYear+1;
  
}

function yearPredecessor(aYear){

  if(aYear-1<initialYear) {
    return false;
  }
  return aYear-1;	
}

function showMonth(month){

	currentMonthInt=month;
	
	var calendarNode = document.getElementById('currentMonthList');
    for(var i=calendarNode.childNodes.length-1; i>=0; i--){
		calendarNode.removeChild(calendarNode.childNodes.item(i));
	}

	var tableElement = createMonthTable();
	var tbody = createMonthTableContent(currentYear,month,getDuration());
	tableElement.appendChild(tbody);
	
	calendarNode.appendChild(tableElement);
	document.getElementById('currentMonthList').style.display = 'block';
	
	highlightMonth(month);
	
	if(document.getElementById('calendar').style.display == 'block'){
	  selectMonth(month);
	}
	
}

function highlightMonth(month) {
	var monthNavigator = document.getElementById('monthNavigator');
	var monthLinks = monthNavigator.getElementsByTagName('A');
	for (var i=0; i<monthLinks.length; i++){
		if((i+1)==month){
			monthLinks[i].style.fontWeight = 'bold';
		}else{
			monthLinks[i].style.fontWeight = 'normal';
		}
	}
}

function mungeLinkForHash(linkText){
	return linkText.split('#').pop().toLowerCase()
}

function toggleCalendarLink(bShow) {
  if (document.getElementById('calendarLink') != null) {
    var calendarLink = document.getElementById('calendarLink');
    var currentStyle = calendarLink.style['display'];
    if (bShow) {
      if (currentStyle == "none") {
        calendarLink.style['display'] = "block";
      }
    }
    else {
      if (currentStyle == "" || currentStyle == "block") {
        calendarLink.style['display'] = "none";
      }
    }
  }
}
