
function isLeap(theYear) { // Check for a Leap Year and return True if not return false
	if (theYear % 400 == 0){
		return true;
	}
	if (theYear % 100 == 0){
		return false;
	}
	if (theYear % 4 == 0){
	return true;
	}
	return false;
}

function hideTable(tabName){
document.getElementById(tabName).style.display = "none";
}

function getNights(mon){
	if(mon == '6' || mon == '7'){
		var numNight = 4;
	}else{
		var numNight = 3;
	}
	
	return numNight;
}

function showTable(element,tabName,hiddenVal){
	

 if(document.getElementById(hiddenVal).value){
 	var positions = [0,0];
	var elementToSet = document.getElementById(tabName);
	var parent = element.offsetParent;
	//var positions = getParentOffset(element, positions);	// nieuw
	positions[0] += element.offsetLeft; // To set the position of the table to the link or image first get the position of the link or image
	
	positions[1] += element.offsetTop;
	if(parent){
		positions[0] += parent.offsetLeft; // Next set the postion of the table relative to the offset of the parent element 
		positions[1] += parent.offsetTop;
	}	
	elementToSet.style.left = positions[0]+'px';		// nieuw
	elementToSet.style.top = positions[1]+'px';	
	elementToSet.style.display = "block";
	
 	var matchDate = document.getElementById(hiddenVal).value; // Find and match the date string 
	var m = matchDate.split('-'); // Find sting value and return the position

	if (m[1].substr(0, 1) == 0){
		m[1] = m[1].substr(1, 1); // Remove any leading 0's
		
	}
	if (m[2].substr(0, 1) == 0){
		m[2] = m[2].substr(1, 1); // Remove any leading 0's
	}
		m[1] = m[1] - 1;
		
		
		showCal(m[0], m[1], m[2]);
	
 	
 	}//else{
		//showCal(false,false,false);
		//alert("You must select a Parc first!");
	//}
}

function popYears(startYear,endYear,listId){
	var k=0;
	
		for(var m=endYear;m>=startYear;m--){
			document.getElementById(listId).options[k++] = new Option(m,m);
		}
}

function retLeapMonth(yearLeap,leapMonth){
	if(isLeap(yearLeap)){
	
		var newMonth = monthLeap;
	}else{
		
		var newMonth = monthDays;
		}
	return newMonth[leapMonth];
}

function addDate(dateObj,daysAdd){

// Add x days to currently set date.

	dateObj.setDate(dateObj.getDate()+daysAdd);
	
	return dateObj;


}

function createCal(year,month,day){
	if(month < 0)
					{
						month++;
					}
	x=new Date(); //create a new date object
	
	x = addDate(x,8);
	curDay = x.getDate();
	curMonth = x.getMonth()
	curYear = x.getFullYear();
	
	
	if(!year){
	
		year = curYear;
		month = curMonth;
		
	}
	
	var foundYear =0	
	
	for(var i=0;i<document.getElementById('calYears').options.length;i++){
		if(document.getElementById('calYears').options[i].value == year){
			document.getElementById('calYears').options.selectedIndex = i;
			foundYear = true;
		}
	}
	 
	if(!foundYear){
		document.getElementById('calYears').options.selectedIndex = 0;
		year = document.getElementById('calYears').options.selectedIndex
	}
	
	
	for(var i=0; i<document.getElementById('calMonths').options.length; i++){
		if(document.getElementById('calMonths').options[i].value == months[parseInt(month)]){ 
			
			document.getElementById('calMonths').selectedIndex = i;
		}
	}
	
	var firstDayOfMonthObj = new Date(year,month,1);
	var firstDayOfMonth = firstDayOfMonthObj.getDay();
	var tabRows = [];
	var numCells = 0;
	var numDays =0;
	var numCols =0;
	var firstWeek = true;
	
	while(numDays <= retLeapMonth(year,month)){
	
		if(firstWeek){
			
			tabRows[numCells] = document.createElement('TR'); // Create the first table row element
			
			if(firstDayOfMonth > 0){
				
				while(numCols < firstDayOfMonth){
		
					tabRows[numCells].appendChild(document.createElement('TD')); // Create the first cell and append it to the first row.
					numCols++;
				}	
			}
			numDays =1;
		}
		firstWeek = false;
		
		if(numCols % 7 == 0){
			numCells++;
			tabRows[numCells]=document.createElement('TR');
		}
		if (day && numDays == day)
		{
			var setID = 'calenderChoosenDay';
			var styleClass = 'choosenDay';
			//var setTitle = 'this day is currently selected';
		}
		/*else if (numDays == curDay && month == curMonth && year == curYear)
		{
			var setID = 'calenderToDay';
			var styleClass = 'toDay';
			//var setTitle = 'this day today';
		}*/
		else
		{
			var setID = false;
			var styleClass = 'normalDay';
			var setTitle = false;
		}
		var td = document.createElement("TD");
		td.className = styleClass;
		if (setID)
			{
				td.id = setID;
			}
			if (setTitle)
			{
				td.title = setTitle;
			}
		td.onclick = new Function('chooseDate('+year+','+month+','+numDays+','+1+','+onClickTab+')');
		
		
		td.style.curser = 'default';
		td.appendChild(document.createTextNode(numDays));
		
		tabRows[numCells].appendChild(td);
		numCols++;
		numDays++;
	}
	return tabRows;
}
function getParentOffset(el, positions)
{


	positions[0] += el.offsetLeft; // Find the left vale of link or image
	
	positions[1] += el.offsetTop; // Find the top value of link or image
	if (el.offsetParent){ // Set the table to the top left of the link or image displaying the calender
		positions = getParentOffset(el.offsetParent, positions);
	}
	return positions;
}

function showCalenderBody(calRows)
{
	var calTBody = document.getElementById('calender');
	
	while (calTBody.childNodes[0])
	{
		calTBody.removeChild(calTBody.childNodes[0]);
	}
	
	for (var i = 0; i < calRows.length; i++)
	{
		calTBody.appendChild(calRows[i]);
	}
}
function showCal(year,month,day){
	
	if(year){
		var cal = createCal(year,month,day);
		showCalenderBody(cal);
	}else{
		var cal = createCal(false,false,false);
		showCalenderBody(cal);
	}
}
function chooseDate(year,month,day,outType,openMonth,closeMonth){


	
	switch(outType){
		case 1 :
				var minNights = getNights(month);
				document.getElementById('day').options.length =0;
				document.getElementById('month').options.length =0;
				for(var m=0; m<=(28-minNights); m++){
					
						document.getElementById("nights").options[m] = new Option((m+minNights),(m+minNights));
						
					}	
				
				for(var i=0; i<retLeapMonth(year,month); i++){
					
					document.getElementById('day').options[i] = new Option(i+1,i+1);
				}
				var k = 0;
				if(openMonth){
					for(i=parseInt(openMonth); i<=closeMonth; i++){
		
						document.getElementById("month").options[k++] = new Option(months[i-1],months[i-1]);
					}
				}else{
					createSibluDate(document.getElementById('parcCode').value);
					for(var i=0; i<document.getElementById('month').options.length; i++){
				
						if(document.getElementById('month').options[i].value == months[parseInt(month)+1]){ 
							
							document.getElementById('month').selectedIndex = i;
						}
				
					}
				}
				if(document.getElementById('year').options.length < 1){
					document.getElementById('year').options.length =0;	
					document.getElementById('year').options[0] = new Option(year,year);
				}
				
				for(var i=0; i<document.getElementById('day').options.length; i++){
					
					if(parseInt(document.getElementById('day').options[i].value) == parseInt(day)){ 
					
						document.getElementById('day').selectedIndex = i;
					break;
					}
				}
				for(var i=0; i<document.getElementById('month').options.length; i++){
					if(document.getElementById('month').options[i].value == months[parseInt(month)]){ 
						
						document.getElementById('month').selectedIndex = i;
					}
				}
			
				for(var i=0; i<document.getElementById('year').options.length; i++){
					if(document.getElementById('year').options[i].value == year){ 
						
						document.getElementById('year').selectedIndex = i;
					}
				}
				month	= months[parseInt(month)] < 10 ? '0'+months[parseInt(month)] : months[parseInt(month)];
			document.getElementById('hiddenDate').value = year+"-"+month+"-"+day;
			hideTable('myTable');
			break;
		case 2 :
			month	= months[parseInt(month)] < 10 ? '0'+months[parseInt(month)] : months[parseInt(month)];
			document.getElementById('date').value = year+"-"+month+"-"+day;
			document.getElementById('hiddenDate').value = year+"-"+month+"-"+day;
			hideTable('myTable');
			break;
		default :
			alert("Missing input field or select fields");
			break;
	}
		
	
}
function createSibluDate(dateChange){
	

	if(dateChange != ""){
		if( document.getElementById('parcCode').options.selectedIndex != 0){
			x=new Date(); //create a new date object
			x.setDate(x.getDate()+8);
			curDay = x.getDate();
			curMonth = x.getMonth()
			curYear = x.getFullYear();
			
			//month	= months[curMonth] < 10 ? '0'+months[curMonth] : months[curMonth];
			var splitStr = dateChange.split(":");
			var minNights = getNights(curMonth);
			var todaysDate = curYear+"-"+curMonth+"-"+curDay;
			var splitStr = dateChange.split(':');
			var openDate1 = splitStr[1];
			var closeDate1 = splitStr[2];

			var openDate2 = splitStr[3];
			var closeDate2 = splitStr[4];
			
			var splitOpen1 = openDate1.split("-");
			var splitOpen2 = openDate2.split("-");
			var splitClose1 = closeDate1.split("-");
			var splitClose2 = closeDate2.split("-");
			var stringDate = curYear + '-' + curMonth + '-' + curDay;
		
			if(todaysDate >= openDate1 && todaysDate <= closeDate1){
			
					for(var m=0; m<=(28-minNights); m++){
					
						document.getElementById("nights").options[m] = new Option((m+minNights),(m+minNights));
						
					}	
						
				popSibluDate(curYear,curMonth,curDay,openDate1,closeDate1);
			}
			
			else if(todaysDate >= openDate2 && todaysDate <= closeDate2)
			{
				for(var m=0; m<=(28-minNights); m++){
					
						document.getElementById("nights").options[m] = new Option((m+minNights),(m+minNights));
						
					}			
				popSibluDate(curYear,curMonth,curDay,openDate2,closeDate2);
			}
			
			else{
				for(var m=0; m<=(28-minNights); m++){
					
						document.getElementById("nights").options[m] = new Option((m+minNights),(m+minNights));
						
					}
					
					
				if(curMonth >= splitClose1[1] || curMonth <= splitOpen1[1]){
				
					if(curMonth <= splitOpen1[1]){
					if(splitClose1[1] == '09'){
							splitClose1[1] = 9;
						}
						onClickTab = parseInt(splitOpen1[1])+','+splitClose1[1];
						chooseDate(splitOpen1[0],splitOpen1[1]-1,splitOpen1[2],1,splitOpen1[1],splitClose1[1]);
						
					}else{
						if(splitClose2[1] == '09'){
							splitClose2[1] = 9;
						}
						onClickTab = parseInt(splitOpen2[1])+','+splitClose2[1];
						chooseDate(splitOpen2[0],splitOpen2[1]-1,splitOpen2[2],1,splitOpen2[1],splitClose2[1]);
						
					}
				}else{
					if(splitClose1[1] == '09'){
							splitClose1[1] = 9;
						}
					onClickTab = parseInt(splitOpen1[1])+','+splitClose1[1];
					chooseDate(curYear,curMonth,curDay,1,splitOpen1[1],splitClose1[1]);
					
				}
			}		
		}else{
	
			document.getElementById('hiddenDate').value = '';
		}
	}
}

function popSibluDate(year,month,day,date1,date2){
	var startDate = date1.split("-");
	var endDate = date2.split("-");

    if(endDate[1] == '09'){
						endDate[1] = 9;
					}
	onClickTab = parseInt(startDate[1])+','+endDate[1];
	chooseDate(year,month,day,1,startDate[1],endDate[1]);
	
	
popYears(startDate[0],endDate[0],'year');
}
function parcMonths(parcs){
if(document.getElementById('parcCode').selectedIndex > 0){
	if(parcs){
		var splitStr = parcs.split(":");
		var openDate1 = splitStr[1];
		var closeDate1 = splitStr[2];
		var openDate2 = splitStr[3];
		var closeDate2 = splitStr[4];
		var splitOpenDate1 = openDate1.split("-");
		var splitOpenDate2 = openDate2.split("-");
		var splitCloseDate1 = closeDate1.split("-");
		var splitCloseDate2 = closeDate2.split("-");
		
		document.getElementById('calMonths').options.length =0;
	
		if(splitOpenDate1[1] > splitOpenDate2[1]){
			var monthOpen = splitOpenDate2[1];
		}else{
			var monthOpen = splitOpenDate1[1];
		}
		
		
		if(splitOpenDate1[1] > splitOpenDate2[1]){
			var monthClose = splitCloseDate2[1];
		}else{
			var monthClose = splitCloseDate1[1];
		}
		
		var k = 0;
		for(i=parseInt(monthOpen); i<=monthClose; i++){
		
			document.getElementById("calMonths").options[k++] = new Option(monthNames[i-1],months[i-1]);
		}
	}
}

}

function changeDays(month,year){
	
var dayNow = document.getElementById('day').selectedIndex;
document.getElementById('day').options.length = 0;
	
	for(var i=0; i<retLeapMonth(year,month-1); i++){
					
		document.getElementById('day').options[i] = new Option(i+1,i+1);
	}
	
document.getElementById('day').options.selectedIndex = dayNow;
dayNow++;
document.getElementById('hiddenDate').value = year+"-"+month+"-"+dayNow;

	var minNights = getNights(month-1);
				for(var m=0; m<=(28-minNights); m++){
					
						document.getElementById("nights").options[m] = new Option((m+minNights),(m+minNights));
						
					}	
	
}// JavaScript Document
