var returnDateChanged = "false";
 
function quoteReplace(str, find, rep) 
{ 
	str=str.replace("'","\'"); 
	var i = 0; 
	while(true) 
 { 
	i = str.indexOf(find, i); 
        if (i == -1) break; 
        str = str.substr(0, i) + rep + str.substr(i + find.length); 
        i += rep.length; 
 } 
    return str; 
} 
 
//***********Begin Form Validation Function Check an arrival option and yes/no button are checked******************* 
function checkResOnHomepage(){ 
	//formVar is the form name.  used to save typing. 
	var formVar = document.getinfo; 
	if ((!formVar.arrivingInfoRadioButton[0].checked)&&(!formVar.arrivingInfoRadioButton[1].checked)&&(!formVar.arrivingInfoRadioButton[2].checked)) 
	{ 
		alert("Please select your arrival information."); 
//		alert ("Please select your arrival information."); 
		return (false); 
	} 

	if ((formVar.arrivingInfoRadioButton[2].checked)&&(formVar.selectedAirline.options[formVar.selectedAirline.selectedIndex].value=="")) 
	{ 
		alert("Please select an arrival option."); 
//		alert ("Please select an arrival option."); 
		return (false); 
	} 
	 
	 
		if ((!formVar.continueButton[0].checked)&&(!formVar.continueButton[1].checked)) 
		{ 
			alert("Please select Yes or No to continue"); 
//	 		alert ("Please select Yes or No to continue."); 
			return (false); 
		} 
	 
	return true; 
} 
 

 
//  function to set form fields coming back from I-Frame/popup.  Function is called from child or popup window. 
function popLoc(oag, name, type, formAction){ 
	var formVar = document.getinfo; 
	if((type == 'pUp')||(type == 'PU')){ 
		formVar.datecardstartHiddenEOAG.value = oag; 
		formVar.datecardstartLocation.value  = name; 
		formVar.datecardstartLocation.focus(); 
	} 
	if (formAction=="submit"){determineFormAction();} 
} 
 
// START CALENDAR VALIDATION 
var datecardendDateChanged = false; 
 
//validatedatecardstartDate() will validate the day of the month chosen for the datecardstart Date and prevent a user from choosing a date such as June 31. 
function validatedatecardstartDate(){ 
	var formVar = document.getinfo; 
	var lastDayOfMonthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); 
 
	var datecardstartDay = parseInt(formVar.datecardstartDay.value); 
 
	//parse out month and year. convert to int.  month is 1 digit for 1-9 and 2 for 10-12, so - must be found 
	var datecardstartMonthString = formVar.datecardstartMonthYear.value;	 
	var dash = datecardstartMonthString.indexOf('-');
	var datecardstartMonth = parseInt(datecardstartMonthString.substring(0,dash)); 
	var datecardstartYear = parseInt(datecardstartMonthString.substring(dash+1, datecardstartMonthString.length)); 
 
	//check for leap year 
	if((datecardstartYear % 4 == 0)&&((datecardstartYear % 100 != 0)||(datecardstartYear % 400 == 0))) 
	{ 
		lastDayOfMonthArray[1]=29; 
	} 
	 
	//if the datecardstart day is greater than the number of days in the selected month, the day will default to the last day of the selected month 
	if (datecardstartDay > lastDayOfMonthArray[datecardstartMonth-1]){ 
		formVar.datecardstartDay.value = lastDayOfMonthArray[datecardstartMonth-1]; 
	} 
} 
 
//validatedatecardendDate() will validate the day of the month chosen for the return Date and prevent a user from choosing a date such as June 31. 
function validatedatecardendDate(){ 
	var formVar = document.getinfo; 
	var lastDayOfMonthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); 
 
	var datecardstartDay = parseInt(formVar.datecardendDay.value); 
 
	//parse out month and year. convert to int.  month is 1 digit for 1-9 and 2 for 10-12, so - must be found 
	var datecardstartMonthString = formVar.datecardendMonthYear.value;	 
	var dash = datecardstartMonthString.indexOf('-'); 
	var datecardstartMonth = parseInt(datecardstartMonthString.substring(0,dash)); 
	var datecardstartYear = parseInt(datecardstartMonthString.substring(dash+1, datecardstartMonthString.length));
 
	//parse month/year for return.  see above comment 
	var returnMonthString = formVar.datecardendMonthYear.value;	 
	dash = returnMonthString.indexOf('-'); 
	var returnMonth = parseInt(returnMonthString.substring(0,dash)); 
	var returnYear = parseInt(returnMonthString.substring(dash+1, returnMonthString.length)); 
 
	var minDateString = formVar.datecardendMonthYear.options[0].value;	 
	dash = returnMonthString.indexOf('-'); 
	var minMonth = parseInt(minDateString.substring(0,dash)); 
	var minYear = parseInt(minDateString.substring(dash+1, returnMonthString.length)); 
	 
	//check for leap year 
	if((datecardstartYear % 4 == 0)&&((datecardstartYear % 100 != 0)||(datecardstartYear % 400 == 0))) 
	{ 
		lastDayOfMonthArray[1]=29; 
	} 
	 
	//if the datecardstart day is greater than the number of days in the selected month, the day will default to the last day of the selected month 
	if (datecardstartDay > lastDayOfMonthArray[datecardstartMonth-1]){ 
		formVar.datecardendDay.value = lastDayOfMonthArray[datecardstartMonth-1]; 
	} 
	var datecardstartDateValue = parseInt(getCurrentdatecardstartDate()); 
	var returnDateValue = parseInt(getCurrentReturnDate()); 
 
	if(datecardstartDateValue > returnDateValue) 
	{
		if(parseInt(minYear+minMonth) == parseInt(returnYear+returnMonth)) 
		{ 
			if(datecardstartDay != 1) 
			{ 
				datecardstartDay = datecardstartDay - 1; 
			} 
			changeDate('p', datecardstartMonth, datecardstartDay, datecardstartYear, 's'); 
		} 
		else 
		{ 
 
			if(datecardstartDay == 1) 
			{ 
				datecardstartMonth = datecardstartMonth - 1; 
				if(datecardstartMonth == 0) 
				{ 
					datecardstartMonth = 12; 
					datecardstartYear = datecardstartYear - 1; 
				} 
				datecardstartDay = parseInt(lastDayOfMonthArray[datecardstartMonth-1]); 
			} 
			else 
			{ 
				datecardstartDay = datecardstartDay - 1; 
				datecardstartMonth = returnMonth; 
			} 

			if(datecardstartMonth == 0) 
			{ 
				datecardstartMonth = 12; 
				datecardstartYear = datecardstartYear - 1; 
			} 
			 
			if(datecardstartYear > returnYear) 
			{ 
				datecardstartYear = returnYear; 
			}		 
			 
			changeDate('p', datecardstartMonth, datecardstartDay, datecardstartYear, 's'); 
		} 
	} 
 
} 
 
function changeReturnDate() 
{ 
	validatedatecardstartDate(); //validate the datecardstart Day first 
 
	var formVar = document.getinfo; 
	if(returnDateChanged != "true") 
	{ 
		//array of last day in each month to change month/year if necessary for return date 
		//This var has to be declared new in each function in case there are two february months on the dropdown. 
		var lastDayOfMonthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 
		var numString = new Array(null, '01', '02', '03', '04', '05', '06', '07', '08', '09'); 
	 
		//parse out days and convert from string to int 
		var datecardstartDay = parseInt(formVar.datecardstartDay.value); 
		var returnDay = parseInt(formVar.datecardendDay.value); 
	 
		//parse out month and year. convert to int.  month is 1 digit for 1-9 and 2 for 10-12, so - must be found 
		var datecardstartMonthString = formVar.datecardstartMonthYear.value;	 
		var dash = datecardstartMonthString.indexOf('-'); 
		var datecardstartMonth = parseInt(datecardstartMonthString.substring(0,dash)); 
		var datecardstartYear = parseInt(datecardstartMonthString.substring(dash+1, datecardstartMonthString.length)); 
		 
		//parse month/year for return.  see above comment 
		var returnMonthString = formVar.datecardendMonthYear.value;	 
		dash = returnMonthString.indexOf('-'); 
		var returnMonth = parseInt(returnMonthString.substring(0,dash)); 
		var returnYear = parseInt(returnMonthString.substring(dash+1, returnMonthString.length)); 
 
 
		var datecardstartDateValue = parseInt(getCurrentdatecardstartDate()); 
		var returnDateValue = parseInt(getCurrentReturnDate()); 
		//  Begin Check to see if datecardstart date is after return date	 
		if (datecardstartDateValue >= returnDateValue) 
		{ 
			//the max date is needed in case the user chooses the last possible day.  return will then match datecardstart 
			var maxMonthString = formVar.datecardstartMonthYear.options[12].value;
			var dash = datecardstartMonthString.indexOf('-'); 
			var maxMonth = parseInt(maxMonthString.substring(0,dash)); 
			var maxYear = parseInt(maxMonthString.substring(dash+1, maxMonthString.length)); 
		 
			formVar.datecardendMonthYear.options[(formVar.datecardstartMonthYear.selectedIndex)].selected=true;	 
		 
			//check if date chosen exists.  if not return date is first of next month.  datecardstart date stays the same	 
			if(lastDayOfMonthArray[datecardstartMonth-1] <= datecardstartDay) 
			{ 
				// check if last possible date to be chosen. 
				if ((maxYear == datecardstartYear) && (maxMonth == datecardstartMonth) && (lastDayOfMonthArray[datecardstartMonth-1] <= datecardstartDay)) 
				{ 
					formVar.datecardendDay.options[(formVar.datecardstartDay.selectedIndex)].selected=true;	 
				} 
				else 
				{ 
					formVar.datecardendDay.options[0].selected=true; 
					formVar.datecardendMonthYear.options[(formVar.datecardstartMonthYear.selectedIndex+1)].selected=true; 
				} 
			} 
			else 
			{ 
				if ((maxYear == datecardstartYear) && (maxMonth == datecardstartMonth) && (lastDayOfMonthArray[datecardstartMonth-1] <= datecardstartDay)) 
				{ 
					formVar.datecardendDay.options[(formVar.datecardstartDay.selectedIndex)].selected=true;	 
				} 
				else
				{ 
					formVar.datecardendDay.options[(formVar.datecardstartDay.selectedIndex+1)].selected=true; 
				} 
			} 
		//  End Check to see if datecardstart date is after return date 
		} 
	} 
} 
 
//************************************************************************** 
 
function changeDate(cal, m, d, y, source) 
{

	var formVar = document.getinfo;
	//array of last day in each month to change month/year if necessary for return date
	var lastDayOfMonthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	//check if leap year.  set feb to 29 days if so
	if((y % 4 == 0)&&((y % 100 != 0)||(y % 400 == 0)))
		{
			lastDayOfMonthArray[1]=29;
		}

	//if datecardstart, set date/month
	if(cal == 'p')
	{
		formVar.datecardstartDay.options[d-1].selected=true;
		for (i=0; i<formVar.datecardstartMonthYear.options.length; i++)
		{
			if(formVar.datecardstartMonthYear.options[i].value == (m+"-"+y))
				targetIndex = i;
		}
		formVar.datecardstartMonthYear.options[targetIndex].selected = true;

	} 
	else if(cal == 'r') 
		{//if return, set date/month 
			if(source != 's') 
			{ 
				datecardendDateChanged = true; 
			} 
	   		calStr = "datecardend"; 
			formVar.datecardendDay.options[d-1].selected=true; 
			returnDateFound=false;   		 
			for (i=0; i<formVar.datecardendMonthYear.options.length; i++) 
			{ 
				if(formVar.datecardendMonthYear.options[i].value == (m+"-"+y)) 
					{ 
						targetIndex = i; 
						returnDateFound=true; 
					} 
			} 
			// this flag is set when month/year is more than 13 months in future. 
			if(!returnDateFound) 
			{
				// if the user chooses the last day possible 13 months in the future, set the return to datecardstart date. 
				targetIndex = formVar.datecardstartMonthYear.selectedIndex; 
				formVar.datecardendDay.options[formVar.datecardstartDay.selectedIndex].selected=true; 
			} 
			formVar.datecardendMonthYear.options[targetIndex].selected = true; 
		} 
	if((cal == 'p') && !datecardendDateChanged) 
	{		//make sure day after datecardstart date is not in next month/year. if so adjust values accordingly 
		if(lastDayOfMonthArray[m-1] == d) 
		{ 
			d=0; 
			m++; 
			if(m>12) 
			{ 
				m=1; 
				y++; 
			} 
		} 
		// call function again if the return date needs to be incremented 
		var datecardstartDateValue = parseInt(getCurrentdatecardstartDate()); 
		var returnDateValue = parseInt(getCurrentReturnDate()); 
 
		if(returnDateChanged != "true" && datecardstartDateValue >= returnDateValue) 
		{
    // mjs changed from d+1 to d+10 
			changeDate('r', m, d+1, y, 's'); 
			 
		}
	} 
	datecardendDateChanged = false; 
	var datecardstartDateValue = parseInt(getCurrentdatecardstartDate()); 
	var returnDateValue = parseInt(getCurrentReturnDate()); 
 
	if(cal == 'r' && datecardstartDateValue > returnDateValue) 
	{ 
		//parse out days and convert from string to int 
		var datecardstartDay = parseInt(formVar.datecardstartDay.value); 
		var returnDay = parseInt(formVar.datecardendDay.value); 
	 
		//parse out month and year. convert to int.  month is 1 digit for 1-9 and 2 for 10-12, so - must be found 
		var datecardstartMonthString = formVar.datecardstartMonthYear.value;	 
		var dash = datecardstartMonthString.indexOf('-'); 
		var datecardstartMonth = parseInt(datecardstartMonthString.substring(0,dash)); 
		var datecardstartYear = parseInt(datecardstartMonthString.substring(dash+1, datecardstartMonthString.length)); 
		 
		//parse month/year for return.  see above comment 
		var returnMonthString = formVar.datecardendMonthYear.value;	 
		dash = returnMonthString.indexOf('-'); 
		var returnMonth = parseInt(returnMonthString.substring(0,dash)); 
		var returnYear = parseInt(returnMonthString.substring(dash+1, returnMonthString.length)); 
		 
		var minDateString = formVar.datecardendMonthYear.options[0].value;	 
		dash = returnMonthString.indexOf('-'); 
		var minMonth = parseInt(minDateString.substring(0,dash)); 
		var minYear = parseInt(minDateString.substring(dash+1, returnMonthString.length));
		 
		if(parseInt(minYear+minMonth) == parseInt(returnYear+returnMonth)) 
		{ 
			if(datecardstartDay != 1) 
			{ 
				datecardstartDay = datecardstartDay - 1; 
			} 
			changeDate('p', datecardstartMonth, datecardstartDay, datecardstartYear, 's'); 
		} 
		else 
		{ 
		 
			if(returnDay == 1) 
			{ 
				datecardstartMonth = returnMonth - 1; 
				if(datecardstartMonth == 0) 
				{ 
					datecardstartMonth = 12; 
					datecardstartYear = returnYear - 1; 
				} 
				datecardstartDay = parseInt(lastDayOfMonthArray[datecardstartMonth-1]); 
			} 
			else 
			{ 
				datecardstartDay = returnDay - 1; 
				datecardstartMonth = returnMonth; 
			}
 
			if(returnYear == 0) 
			{ 
				datecardstartMonth = 12; 
				datecardstartYear = returnYear - 1; 
			} 
			 
			if(datecardstartYear > returnYear) 
			{ 
				datecardstartYear = returnYear; 
			} 
			 
			changeDate('p', datecardstartMonth, datecardstartDay, datecardstartYear, 's'); 
		} 
	} 
} 
//END CALENDAR VALIDATION 
 
function getCurrentdatecardstartDate() 
{ 
	var formVar = document.getinfo; 
	var numString = new Array(null, '01', '02', '03', '04', '05', '06', '07', '08', '09'); 
	var datecardstartDay = parseInt(formVar.datecardstartDay.value); 
	//parse out month and year. convert to int.  month is 1 digit for 1-9 and 2 for 10-12, so - must be found 
	var datecardstartMonthString = formVar.datecardstartMonthYear.value;	 
	var dash = datecardstartMonthString.indexOf('-'); 
	var datecardstartMonth = parseInt(datecardstartMonthString.substring(0,dash));
	var datecardstartYear = parseInt(datecardstartMonthString.substring(dash+1, datecardstartMonthString.length)); 
 
	var datecardstartDayStr; 
	var datecardstartMonthStr; 
	var datecardstartYearStr = datecardstartYear.toString(); 
 
	if (datecardstartDay > 9) 
	{ 
		datecardstartDayStr = datecardstartDay.toString(); 
	} 
	else 
	{ 
		datecardstartDayStr = numString[datecardstartDay]; 
	} 
 
	if (datecardstartMonth > 9) 
	{ 
		datecardstartMonthStr = datecardstartMonth.toString(); 
	} 
	else 
	{ 
		datecardstartMonthStr = numString[datecardstartMonth]; 
	}	 
	var datecardstartDateValue = parseInt(datecardstartYearStr + datecardstartMonthStr + datecardstartDayStr); 
 
	return datecardstartDateValue; 
}
 
function getCurrentReturnDate() 
{ 
	var formVar = document.getinfo; 
	var numString = new Array(null, '01', '02', '03', '04', '05', '06', '07', '08', '09'); 
	var returnDay = parseInt(formVar.datecardendDay.value); 
	var returnMonthString = formVar.datecardendMonthYear.value;	 
	dash = returnMonthString.indexOf('-'); 
	var returnMonth = parseInt(returnMonthString.substring(0,dash)); 
	var returnYear = parseInt(returnMonthString.substring(dash+1, returnMonthString.length)); 
 
	var returnDayStr; 
	var returnMonthStr; 
	var returnYearStr = returnYear.toString(); 
 
	if (returnDay > 9) 
	{ 
		returnDayStr = returnDay.toString(); 
	} 
	else 
	{ 
		returnDayStr = numString[returnDay];
	} 
 
	if (returnMonth > 9) 
	{ 
		returnMonthStr = returnMonth.toString();
	} 
	else 
	{ 
		returnMonthStr = numString[returnMonth]; 
	} 
	var returnDateValue = parseInt(returnYearStr + returnMonthStr + returnDayStr);	 
 
	return returnDateValue; 
} 
 
 
//checks airline radio button if the user changes the airline dropdown.  No selection if a flight # is typed in 
function arrivalRadioButton() 
{ 
	document.getinfo.arrivingInfoRadioButton[2].checked = true; 
} 
 
//This function determines if the pick-up location has been populated.  If it has, the form is submitted.  Otherwise 
//the FTS popup is called to populate the location information. 
function determineFormAction(buttonObj){ 
var hiddendatecardstartLocationFieldValue = document.getinfo.datecardstartHiddenEOAG.value; 
 
var linkToDisableWithClock = ((buttonObj == null)||(buttonObj==""))?document.getElementById("submitLink"):buttonObj; 
 
	if (hiddendatecardstartLocationFieldValue!="") { //If the pick-up location is populated, submit the form 
		if (checkResOnHomepage()){ //if all other required form fields have been populated 
		//The following line handles the interstitial clock's appearance when the user is submitting the form
			show('clock');showOverlay('overlay','resOnHomepageSubmit');
 
			document.getinfo.submit(); 
		} 
	} 
	else { //The pick-up location is empty and needs to be populated 
		popFTS("submit"); 
	} 
} 




function populateAddr(fname,lname,companyname,address1,address2,city,state,zip,mphone) {
	if (document.getinfo.shipbillsame.checked) {
		document.getinfo.billfname.value = fname;
		document.getinfo.billlname.value = lname;
		if (!companyname=="") {
			document.getinfo.billcompanyname.value = companyname;
		}
		document.getinfo.billaddress1.value = address1;
		document.getinfo.billaddress2.value = address2;
		document.getinfo.billcity.value = city

		if (!state=="") {
			document.getinfo.billstate.value = state;
		}
		document.getinfo.billphone.value = mphone;
		document.getinfo.billzip.value = zip;
		document.getinfo.billcountrycode.value = '';

	}
	else {
		document.getinfo.billfname.value = '';
		document.getinfo.billlname.value = '';
		document.getinfo.billcompanyname.value = '';
		document.getinfo.billaddress1.value = '';
		document.getinfo.billaddress2.value = '';
		document.getinfo.billcity.value = '';
        	document.getinfo.billstate.value = '';
		document.getinfo.billzip.value = '';
		document.getinfo.billphone.value = '';                
		document.getinfo.billcountrycode.value = '';


	}
}

//This credit must stay intact
//Script by http://www.java-Scripts.net and http://wsabstract.com
 function doClear(theText) {
     if (theText.value == theText.defaultValue) {
         theText.value = ""
     }
 }
