// step 1 validation
function coverTypeChanged() {
	
	// Only applied to annual on MGTIS
	
	coverType = document.getElementById("coverType").value;						
	//alert(coverType);
	//alert(coverLevel);
	//eTravelArea = document.getElementById("travelArea");													
	//eTravelArea.options.length=0;	
	
	//addItem(eTravelArea, "Select Travel Area --> ", ""); 	
	//eTravelArea.add(new Option("Select Travel Area --> ", ""), eTravelArea.options.length);	
					
	switch (coverType) {
		case "19":	// Single	
		eTravelArea = document.getElementById("travelArea");													
		eTravelArea.options.length=0;	
		
		addItem(eTravelArea, "Select Travel Area --> ", ""); 	
		
			addItem(eTravelArea, "UK", "31");
			addItem(eTravelArea, "Europe (as defined)", "32");
			addItem(eTravelArea, "Worldwide", "33");
		
			// show todate and trip length
			hideShowElement(1, "ftoDate");
			hideShowElement(1, "ftripLength");
			
			// hide the annual dates and show the single
			hideShowElement(1, "ftravellersSingle");
			hideShowElement(0, "ftravellersAnnual");
			
			// reset the to dates					
			setSelectedIndex("toDay", 0);
			setSelectedIndex("toMonth", 0);
			setSelectedIndex("toYear", 0);						
		break;	
		case "20":	// Annual	
		eTravelArea = document.getElementById("travelArea");													
		eTravelArea.options.length=0;	
		
		addItem(eTravelArea, "Select Travel Area --> ", ""); 	
		
			addItem(eTravelArea, "Europe", "32");
			addItem(eTravelArea, "Worldwide", "33");

			// hide todate and trip length
			hideShowElement(0, "ftoDate");
			hideShowElement(0, "ftripLength");
			
			// hide the single dates and show the annual
			hideShowElement(0, "ftravellersSingle");
			hideShowElement(1, "ftravellersAnnual");
		break;	

		default:	
			//  nothing		
	}		
}

function travelAreaChanged() {
	
}
function fromDateChanged() {
	
}
function toDateChanged() {
	// if to date is changed then must set trip length
	setTripLength("DAY");
}
function tripLengthChanged(valTripLengthType) {		
	// when trip length is changed then we need to update the to data if there is a from date
	setToDate(valTripLengthType);
}
function setTripLength(datePartToIncrement) {
	
	fromDay = document.getElementById("fromDay").value;	
	fromMonth = document.getElementById("fromMonth").value;	
	fromYear = document.getElementById("fromYear").value;	
	
	toDay = document.getElementById("toDay").value;	
	toMonth = document.getElementById("toMonth").value;	
	toYear = document.getElementById("toYear").value;	
	
	// if all date parts selected
	if ( (fromDay != "") && (fromMonth != "") && (fromYear != "") && (toDay != "") && (toMonth != "") && (toYear != "") ) {		
		//alert(true);
				
		// check from date is valid
		fromDate = createDate(fromDay,fromMonth,fromYear);											
		fromDateString = concatDateParts(fromDay,fromMonth,fromYear);
				
		dateStatus = validateDateString(fromDateString, false);	
		if ( dateStatus != true ) {
			//output error message
			dateAlertAndFocus(document.getElementById("fromDay"), dateStatus);
			return false;
		}
		
		// check to data is valid
		toDate = createDate(toDay,toMonth,toYear);											
		toDateString = concatDateParts(toDay,toMonth,toYear);
		
		dateStatus = validateDateString(toDateString, false);	
		if ( dateStatus != true ) {
			//output error message
			dateAlertAndFocus(document.getElementById("toDay"), dateStatus);
			return false;
		}
		
		// now calculate the differnce
		//subtract dates		
		tripLength = subtractDates(fromDate, toDate);
		switch (datePartToIncrement) {			
			case "DAY" : 				
				tripLength = tripLength + 1;	
			break;
			case "MONTH" :
				tripLength = tripLength + 1;	
				/*
				alert("tripLength "+tripLength)
				alert("days in month" + daysInMonth[fDate.getMonth()])
				tripLength = Math.ceil((tripLength)/ daysInMonth[fDate.getMonth()] );
				alert("months "+tripLength)
				*/				
				tripLength = Math.ceil((tripLength)/ 31 );
			break;
			default :
				tripLength = tripLength;
		}		
		//update triplength		
		tripLengthElement = document.getElementById("tripLength")
		//if (tripLength > tripLengthElement.length) {
		if (tripLength > 90) {
			alertAndFocus(document.getElementById("toDay"), "You have exceeded the maximum trip length. Please review your options.")	
		} else {
			tripLengthElement.value = tripLength;			
		}		
		
	}
}
//function getDateFrom
function setToDate(datePartToIncrement) {				
	tripLength = parseInt(document.getElementById("tripLength").value);
		
	fromDay = document.getElementById("fromDay").value;	
	fromMonth = document.getElementById("fromMonth").value;	
	fromYear = document.getElementById("fromYear").value;	
	
	if ( (fromDay != "") && (fromMonth != "") && (fromYear != "") ) {	
		
		fromDate = createDate(fromDay,fromMonth,fromYear);											
		fromDateString = concatDateParts(fromDay,fromMonth,fromYear);
		
		
		dateStatus = validateDateString(fromDateString, false);	

		if ( dateStatus != true ) {
			//output error message
			dateAlertAndFocus(document.getElementById("fromDay"), dateStatus);
			return false;
		}
			
		
		// create todate from fromdate
		toDate = fromDate;
		
		// incremenet date
		switch (datePartToIncrement) {			
			case "DAY" : 				
				toDate = addDay(toDate, tripLength-1);			
			break;
			case "MONTH" :
				toDate = addMonth(toDate, tripLength);
				toDate = addDay(toDate, -1);			
			break;
			case "YEAR" : 
				toDate = addYear(toDate, tripLength);
			break;
			default :
				toDate = addDay(toDate, tripLength);
		}						
		// update todate form elements							
		eToDay = document.getElementById("toDay");
		eToDay.value = toDate.getDate();
		
		eToMonth = document.getElementById("toMonth");
		eToMonth.value = toDate.getMonth()+1;
		
		eToYearDay = document.getElementById("toYear");		
		eToYearDay.value = toDate.getFullYear();				
	}
}

