function validateComboFlightForm(fm) {
	//Set up a var to hold Today's date
	var today = new Date(now.getFullYear(),now.getMonth(),now.getDate());	
	//Access the values that were selected for the year and month for the dept & return dates
	var deptDay = fm.iDepDay.options[fm.iDepDay.selectedIndex].value;
	var retDay = fm.iRetDay.options[fm.iRetDay.selectedIndex].value;
	var deptYrMth = fm.sDepMth.options[fm.sDepMth.selectedIndex].value;
	var retYrMth = fm.sRetMth.options[fm.sRetMth.selectedIndex].value;
	
	// Now separate the dept month from it's year
	var deptYr = deptYrMth.substring(0,4);
	var deptMth = deptYrMth.substring((deptYrMth.length-2));
	//Create an extra param for use in date comparison checks
	var deptMth2Digits = deptYrMth.substring((deptYrMth.length-2))-1;
	// Now separate the return month from it's year
	var retYr =  retYrMth.substring(0,4);
	var retMth = retYrMth.substring((retYrMth.length-2));
	//Create an extra param for use in date comparison checks
	var retMth2Digits = retYrMth.substring((retYrMth.length-2))-1;
	//Strip off preceeding zeros if month is before October
	if (deptMth < 10) {
		deptMth = deptMth.substring((deptMth.length-1));
	}
	if (retMth < 10) {
		retMth = retMth.substring((retMth.length-1))
	}
	
	//Departure airport selected?
	if (fm.sDepart.selectedIndex == -1) {
		alert("Please select a departure airport.");
		fm.sDepart.focus();
		return false;
	}
	//return airport entered?
	if (fm.sArrival.value == "") {
		alert("Please enter a destination city or airport code.");
		fm.sArrival.focus();
		return false;
	}
	//Departure day entered a a number?
	if (fm.iDepDay.selectedIndex == -1) {
		alert("Please select a departure day.");
			fm.iDepDay.focus();
		return false;
	}
	//Return day entered as a number?
	if (fm.iRetDay.selectedIndex == -1) {
		alert("Please select a return day.");
		fm.iRetDay.focus();
		return false;
	}
	//Is the departure date a valid one?
	if(!DateOK(deptYr,deptMth,deptDay)) {
		alert("Please enter a valid departure date.");
		fm.iDepDay.focus();
		return false;
	}
	//Is the return date a valid one?
	if(!DateOK(retYr,retMth,retDay)) {
		alert("Please enter a valid return date.");
		fm.iDepDay.focus();
		return false;
	}
	//Now work out if dept date is before Today
	var deptDateObj = new Date(deptYr,deptMth2Digits,deptDay);
	var deptDateDiff = timeDifference(deptDateObj,today,'d');
	if(deptDateDiff < 1 ) {
		alert("Your departure date must be after today.");
		fm.iDepDay.focus();
		return false;
	}
	
	//Finally see if return date is on or after dept date
	var retDateObj = new Date(retYr,retMth2Digits,retDay);
	var retDateDiff = timeDifference(retDateObj,deptDateObj,'d');
	if(retDateDiff < 0 ) {
		alert("Your return date must be the same or a later date than your departure date.");
		fm.iDepDay.focus();
		return false;
	}
	//Now process submission for partner
	processComboFlightForm(fm);
}

function processComboFlightForm(fm) {
	//Branch based on site selected
	var sPartner = '';
	var phidden = 0;
	
	/* if (typeof document.getElementById("partner") != 'undefined' && typeof document.getElementById("partner").value != null) 	{
		if(document.getElementById("partner").type == 'hidden')	{
			sPartner = document.getElementById("partner").value;
			phidden = 1;
		}	
	} */
	
	if(typeof document.flightComboForm.partner != "undefined"){
		
		if(typeof document.flightComboForm.partner.type == 'hidden'){
			sPartner = document.flightComboForm.partner.value;
			phidden = 1;
		}
	}
		
	if (phidden == 0)	{
		for (i=0;i<fm.partner.length;i++) {
			if(fm.partner[i].checked) {
				sPartner = fm.partner[i].value;
				break;
			}
		}
	}
	
	//We now have a partner so branch based on the partner
	if (sPartner == 'ebookers') {
		//Populate the applicable ebookers form fields with the values from our generic fields
		fm.DEP.value = fm.sDepart.options[fm.sDepart.selectedIndex].value;
		fm.LARR.value = fm.sArrival.value;
		fm.DAY_DATE.value = fm.iDepDay.value;
		fm.MONTH_DATE.value = fm.sDepMth.value;
		fm.DAY_RDATE.value = fm.iRetDay.value;
		fm.MONTH_RDATE.value = fm.sRetMth.value;
		fm.PAX0.value = fm.iNoAdult.options[fm.iNoAdult.selectedIndex].value;
		fm.PAX1.value = fm.iNoChild.options[fm.iNoChild.selectedIndex].value;
		fm.PAX2.value = fm.iNoInfant.options[fm.iNoInfant.selectedIndex].value;
		if(fm.bDirect.checked) fm.DIRECT.value = 1;
		//Set form method and action
		fm.method = "POST";
		fm.action = 'http://www.ebookers.com/afo/flights/wait1.html';
	}
	//We're doing Kelkoo
	else {
			//Access the values that were selected for the year and month for the dept & return dates
			var deptDay = fm.iDepDay.options[fm.iDepDay.selectedIndex].value;
			var retDay = fm.iRetDay.options[fm.iRetDay.selectedIndex].value;
			var deptYrMth = fm.sDepMth.options[fm.sDepMth.selectedIndex].value;
			var retYrMth = fm.sRetMth.options[fm.sRetMth.selectedIndex].value;
			
			// Now separate the dept month from it's year
			var deptYr = deptYrMth.substring(0,4);
			var deptMth = deptYrMth.substring((deptYrMth.length-2));
			
			// Now separate the return month from it's year
			var retYr =  retYrMth.substring(0,4);
			var retMth = retYrMth.substring((retYrMth.length-2));
			//Strip off preceeding zeros if month is before October
			if (deptMth < 10) {
				deptMth = deptMth.substring((deptMth.length-1));
			}
			if (retMth < 10) {
				retMth = retMth.substring((retMth.length-1))
			}

		
		//Override the default value in the type form field
		fm.TYPE.value="Round/Trip";
		//Populate the kelkoo form fields with values in correct formats
		fm.departure.value = fm.sDepart.options[fm.sDepart.selectedIndex].value;
		fm.partner.value = 'wanadoo';
		fm.arrival.value = fm.sArrival.value;
		fm.dday.value = deptDay;
		fm.dmonth.value = deptMth;
		fm.dyear.value = deptYr;
		fm.rday.value = retDay;
		fm.rmonth.value = retMth;
		fm.ryear.value = retYr;
		fm.nbadults.value = fm.iNoAdult.options[fm.iNoAdult.selectedIndex].value;
		fm.nbchilds.value = fm.iNoChild.options[fm.iNoChild.selectedIndex].value;
		fm.nbbabies.value = fm.iNoInfant.options[fm.iNoInfant.selectedIndex].value;
		//Set form method and action
		fm.method = "GET";
		fm.action = 'http://wanadoo.kelkoo.co.uk/ctl/do/checkFlight';
	}
	//Return true so that submit proceeds
	return true
}