function checkRequired(whereTo)
{
	var formName = document.meetingForm;
	// the dates
	var monthStart = formName.DataArriveM.value;
	var dayStart = formName.DataArriveD.value;
	var yearStart = formName.DataArriveY.value;
	var monthEnd = formName.DataEndM.value;
	var dayEnd = formName.DataEndD.value;
	var yearEnd = formName.DataEndY.value;
	var monthAltStart = formName.DataArriveAltM.value;
	var dayAltStart = formName.DataArriveAltD.value;
	var yearAltStart = formName.DataArriveAltY.value;
	var monthAltEnd = formName.DataEndAltM.value;
	var dayAltEnd = formName.DataEndAltD.value;
	var yearAltEnd = formName.DataEndAltY.value;
	
	// fill all requeired fields
	if (whereTo == 'send')
	{
		if (formName.name.value == '' || formName.fname.value == '' || formName.position.value == '' || formName.company.value == '' || formName.address.value == '' || formName.zip.value == '' || formName.city.value == ''  || formName.country.value == '' || formName.tel.value == '' || formName.mail.value == '' || formName.hotel.value == '' || formName.typeEvent.value == '' || formName.numPeople.value == '' || formName.preferContact.value == '')
		{
			alert('Please filled all fields marked by *');
			return;
		}
	}
	
	// write state if USA is choosen
	if (formName.country.value == 'United States of America' && formName.state.value == '')
	{
		alert('Please select a state');
		return;
	}

	// email validation
	var x = formName.mail.value.indexOf ("@");
	var y = formName.mail.value.indexOf (".");
	if (x==-1 || y==-1) 
	{
		alert('invalid e-mail address. Please type again.');
		return;
	}
	
	
	// check dates of meeting filled
	if (monthStart == '' || dayStart == '' || yearStart == '' || monthEnd == '' || dayEnd == '' || yearEnd == '')
	{
		alert('Please fill all the meeting date fields');
		return;
	}
	
	// check date validation
	if ((monthStart=='04' || monthStart=='06' || monthStart=='09' || monthStart=='11') && dayStart==31) 
	{
		alert("Month "+monthStart+" doesn't have 31 days!")
		return;
	}
	
	if (monthStart == '02') 
	{ // check for february 29th
		var isleap = (yearStart % 4 == 0 && (yearStart % 100 != 0 || yearStart % 400 == 0));
		if (dayStart>29 || (dayStart==29 && !isleap)) {
		alert("February " + yearStart + " doesn't have " + dayStart + " days!");
		return;
		}
	}
	
	if ((monthEnd=='04' || monthEnd=='06' || monthEnd=='09' || monthEnd=='11') && dayEnd==31) 
	{
		alert("Month "+monthEnd+" doesn't have 31 days!")
		return;
	}
	
	if (monthEnd == '02') 
	{ // check for february 29th
		var isleap = (yearEnd % 4 == 0 && (yearEnd % 100 != 0 || yearEnd % 400 == 0));
		if (dayEnd>29 || (dayEnd==29 && !isleap)) {
		alert("February " + yearEnd + " doesn't have " + dayEnd + " days!");
		return;
		}
	}
	
	if ((monthAltStart=='04' || monthAltStart=='06' || monthAltStart=='09' || monthAltStart=='11') && dayAltStart==31) 
	{
		alert("Month "+monthAltStart+" doesn't have 31 days!")
		return;
	}
	
	if (monthAltStart == '02') 
	{ // check for february 29th
		var isleap = (yearAltStart % 4 == 0 && (yearAltStart % 100 != 0 || yearAltStart % 400 == 0));
		if (dayAltStart>29 || (dayStart==29 && !isleap)) {
		alert("February " + yearAltStart + " doesn't have " + dayAltStart + " days!");
		return;
		}
	}
	
	if ((monthAltEnd=='04' || monthAltEnd=='06' || monthAltEnd=='09' || monthAltEnd=='11') && dayAltEnd==31) 
	{
		alert("Month "+monthAltEnd+" doesn't have 31 days!")
		return;
	}
	
	if (monthAltEnd == '02') 
	{ // check for february 29th
		var isleap = (yearAltEnd % 4 == 0 && (yearAltEnd % 100 != 0 || yearAltEnd % 400 == 0));
		if (dayAltEnd>29 || (dayAltEnd==29 && !isleap)) {
		alert("February " + yearAltEnd + " doesn't have " + dayEnd + " days!");
		return;
		}
	}
	
	// check that end date is greater then start date
	var startDate = (monthStart + '/' + dayStart + '/' + yearStart);
	var endDate = (monthEnd + '/' + dayEnd + '/' + yearEnd);
	if (dateDiff(startDate,endDate) == false)
		return;

	// if user filled contact by fax then check if fax number filled
	if (formName.preferContact.value=='Fax' && formName.fax.value=='')
	{
		alert('Please fill out the fax field');
		return;
	}
	
	// just on submition - check agreement
	if (formName.statment1 || formName.statment2 || formName.statment3)
	{
		if (whereTo == 'send')
		{
			// the agreement radio button 1
			var flag = 0;
			for (i=0; i < formName.statment1.length; i++)
			{
				if (formName.statment1[i].checked == true)
				{
					flag = 1;
				}
				
			}
			
			// the agreement radio button 2
			for (i=0; i < formName.statment2.length; i++)
			{
				if (formName.statment2[i].checked == true)
				{
					flag++;
				}
				
			}
			
			// the agreement radio button 3
			for (i=0; i < formName.statment3.length; i++)
			{
				if (formName.statment3[i].checked == true)
				{
					flag++;
				}
				
			}
			
			if (flag < 3)
			{
				alert('Please fill all the agreement fields');
				return;
			}
		}
	}
	
	
	// the submition according to the page
	
	if (whereTo == 'send')
	{
		formName.page.value = 'send';
	}
	
	if (whereTo == 'bedrooms')
	{
		formName.page.value = 'bedrooms';
	}
	
	formName.submit();
	
}



// function to check date difference
function dateDiff(startDate,endDate) {
date1 = new Date();
date2 = new Date();
diff  = new Date();

date1temp = new Date(startDate);
date1.setTime(date1temp.getTime());

date2temp = new Date(endDate);
date2.setTime(date2temp.getTime());

if (date1temp > date2temp)
{
	alert('The End date should be greater than the start date');
	return false;
}
else
	return true;

}


// check if all the dates are filled and complete auto all the dates filed in the form

function checkComplete()
{
	var formName = document.meetingForm;
	if (formName.DataArriveM.value!="" && formName.DataArriveD.value!="" && formName.DataArriveY.value!="" && formName.DataEndM.value!="" && formName.DataEndD.value!="" && formName.DataEndY.value!="")
	{
		writeAllDays('program');
		writeAllDays('bedrooms');
		writeAllDays('breakfast');
		writeAllDays('lunch');
		writeAllDays('dinner');
	}
}



// get all day between 2 dates

function writeAllDays(kind) {
	var formName = document.meetingForm;
	// the dates
	var monthStart = formName.DataArriveM.value;
	var dayStart = formName.DataArriveD.value;
	var yearStart = formName.DataArriveY.value;
	var monthEnd = formName.DataEndM.value;
	var dayEnd = formName.DataEndD.value;
	var yearEnd = formName.DataEndY.value;
	
	if (monthStart == '' || dayStart == '' || yearStart == '' || monthEnd == '' || dayEnd == '' || yearEnd == '')
	{
		alert('Please fill all the meeting date fields');
		return;
	}
	
	// check date validation
	if ((monthStart=='04' || monthStart=='06' || monthStart=='09' || monthStart=='11') && dayStart==31) 
	{
		alert("Month "+monthStart+" doesn't have 31 days!")
		return;
	}
	
	if (monthStart == '02') 
	{ // check for february 29th
		var isleap = (yearStart % 4 == 0 && (yearStart % 100 != 0 || yearStart % 400 == 0));
		if (dayStart>29 || (dayStart==29 && !isleap)) {
		alert("02 " + yearStart + " doesn't have " + dayStart + " days!");
		return;
		}
	}
	
	if ((monthEnd=='04' || monthEnd=='06' || monthEnd=='09' || monthEnd=='11') && dayEnd==31) 
	{
		alert("Month "+monthEnd+" doesn't have 31 days!")
		return;
	}
	
	if (monthEnd == '02') 
	{ // check for february 29th
		var isleap = (yearEnd % 4 == 0 && (yearEnd % 100 != 0 || yearEnd % 400 == 0));
		if (dayEnd>29 || (dayEnd==29 && !isleap)) {
		alert("February " + yearEnd + " doesn't have " + dayEnd + " days!");
		return;
		}
	}
	
		
	// check that end date is greater then start date
	var startDate = (monthStart + '/' + dayStart + '/' + yearStart);
	var endDate = (monthEnd + '/' + dayEnd + '/' + yearEnd);
	if (dateDiff(startDate,endDate) == false)
		return;
	

	date1 = new Date();
	date2 = new Date();
	diff  = new Date();
	
	date1temp = new Date(startDate);
	
	// if bedrooms take the previous day
	if (kind == 'bedrooms')
		date1.setTime(date1temp.getTime()-(1000 * 60 * 60 * 24));
	else
		date1.setTime(date1temp.getTime());
	
	date2temp = new Date(endDate);
	date2.setTime(date2temp.getTime());
	
	diff.setTime(Math.abs(date1.getTime() - date2.getTime()));
	
	timediff = diff.getTime();
	
	days = (Math.floor(timediff / (1000 * 60 * 60 * 24))+1); 
	timediff = days * (1000 * 60 * 60 * 24);
	
	strDiff = days
	
	if (strDiff > 7)
	{	
		alert('Can not complete your request. The range is too big');
		return;
	}
	
	//alert(strDiff);
	
	for (i=0 ; i < strDiff ; i++)
	{
		var nextDay = new Date(date1.getTime()+ i*(1000 * 60 * 60 * 24));
		if (kind == 'program')
		{
			var fldMonth = eval("document.meetingForm.progMonth"+(i+1));
			var fldDay = eval("document.meetingForm.progDay"+(i+1));
			var fldYear = eval("document.meetingForm.progYear"+(i+1));
			fldMonth.value = nextDay.getMonth()+1
			fldDay.value = nextDay.getDate()
			fldYear.value = nextDay.getYear()
		}
		if (kind == 'bedrooms')
		{
			var fldMonth = eval("document.meetingForm.bbMonth"+(i+1));
			var fldDay = eval("document.meetingForm.bbDay"+(i+1));
			var fldYear = eval("document.meetingForm.bbYear"+(i+1));
			fldMonth.value = nextDay.getMonth()+1
			fldDay.value = nextDay.getDate()
			fldYear.value = nextDay.getYear()
		}
		
		if (kind == 'breakfast')
		{
			var fldMonth = eval("document.meetingForm.breakfastMonth"+(i+1));
			var fldDay = eval("document.meetingForm.breakfastDay"+(i+1));
			var fldYear = eval("document.meetingForm.breakfastYear"+(i+1));
			fldMonth.value = nextDay.getMonth()+1
			fldDay.value = nextDay.getDate()
			fldYear.value = nextDay.getYear()
		}
		
		if (kind == 'lunch')
		{
			var fldMonth = eval("document.meetingForm.lunchMonth"+(i+1));
			var fldDay = eval("document.meetingForm.lunchDay"+(i+1));
			var fldYear = eval("document.meetingForm.lunchYear"+(i+1));
			fldMonth.value = nextDay.getMonth()+1
			fldDay.value = nextDay.getDate()
			fldYear.value = nextDay.getYear()
		}
		
		if (kind == 'dinner')
		{
			var fldMonth = eval("document.meetingForm.dinnerMonth"+(i+1));
			var fldDay = eval("document.meetingForm.dinnerDay"+(i+1));
			var fldYear = eval("document.meetingForm.dinnerYear"+(i+1));
			fldMonth.value = nextDay.getMonth()+1
			fldDay.value = nextDay.getDate()
			fldYear.value = nextDay.getYear()
		}
	}
	
	checkFlds(kind,strDiff)

}

// fill all the fields of the section if filled

function checkFlds(kind,strDiff)
{
	var theFldVal;
	
	//alert(strDiff);
	if (kind == 'program')
	{
		for (i=1 ; i < strDiff+1 ; i++)
		{
			
			if (eval("document.meetingForm.progStart"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progStart"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progStart"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.progEnd"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progEnd"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progEnd"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.progCoffeeAM"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progCoffeeAM"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progCoffeeAM"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.progCoffeePM"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progCoffeePM"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progCoffeePM"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.progLunch"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progLunch"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progLunch"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.progDinner"+(i)+".value") != "00:00")
			{
				val = eval("document.meetingForm.progDinner"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.progDinner"+(x))
					theFldVal.value = val;
				}
			}
						
		}
	}
	
	if (kind == 'bedrooms')
	{
		for (i=1 ; i < strDiff+1 ; i++)
		{
			
			if (eval("document.meetingForm.sng"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.sng"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.sng"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.dbl"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.dbl"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.dbl"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.suite"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.suite"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.suite"+(x))
					theFldVal.value = val;
				}
			}
						
		}
	}
	
	if (kind == 'breakfast')
	{
		for (i=1 ; i < strDiff+1 ; i++)
		{
			
			if (eval("document.meetingForm.breakfastNumber"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.breakfastNumber"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.breakfastNumber"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.breakfastHours"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.breakfastHours"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.breakfastHours"+(x))
					theFldVal.value = val;
				}
			}
						
		}
	}
	
	if (kind == 'lunch')
	{
		for (i=1 ; i < strDiff+1 ; i++)
		{
			
			if (eval("document.meetingForm.lunchNumber"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.lunchNumber"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.lunchNumber"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.lunchType"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.lunchType"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.lunchType"+(x))
					theFldVal.value = val;
				}
			}
						
		}
	}
	
	if (kind == 'dinner')
	{
		for (i=1 ; i < strDiff+1 ; i++)
		{
			
			if (eval("document.meetingForm.dinnerNumber"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.dinnerNumber"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.dinnerNumber"+(x))
					theFldVal.value = val;
				}
			}
			
			if (eval("document.meetingForm.dinnerType"+(i)+".value") != "")
			{
				val = eval("document.meetingForm.dinnerType"+(i)+".value")
				for (x=1 ; x < strDiff+1 ; x++)
				{
					theFldVal = eval("document.meetingForm.dinnerType"+(x))
					theFldVal.value = val;
				}
			}
						
		}
	}
}


// choose USA if state is choosen
function testState()
{
	var formName = document.meetingForm;
	if (formName.state.value != '')
	{
		formName.country.value = 'United States of America';
	}
}