var             iIndex = 1;
var             images = new Array();
function        PreloadCycleImages() {
	if (document.images) {
		for (var i = 1; i <= 7; i++) {
			images[i] = new Image();
			images[i].src = 'images/searching_' + i + '.jpg';
		};
	};
};
function        ShowWait() {
	var             imageNew = new Image();
	var             imageOld = new Image();
	if (document.images) {
		if (iIndex >= images.length) {
			iIndex = 1;
		};
		imageNew = document.getElementById('cycle');
		imageOld = images[iIndex];
		if (imageNew) {
			if (imageOld) {
				imageNew.src = imageOld.src;
				iIndex++;
			};
		};
	};
};
function        StartShowWait() {
	document.getElementById('gui').style.display = 'none';
	document.getElementById('mydiv').style.display = 'block';
	window.setInterval('ShowWait()', 500);
};
function        HideWait() {
	if (document.getElementById('mydiv')) {
		document.getElementById('mydiv').style.display = 'none';
		window.clearInterval();
	};
};
function        saveDates() {
	var             date1 = new Date();
	var             date2 = new Date();
	var             date3 = new Date();
	var             sYear = new String;
	var             month;
	var             day;
	month = document.frmGui.selDepartMonth1.selectedIndex;
	day = document.frmGui.selDepartDay1.selectedIndex + 1;
	createCookie('date1', (month + '/' + day), 0, 20);
	month = document.frmGui.selReturnMonth1.selectedIndex;
	day = document.frmGui.selReturnDay1.selectedIndex + 1;
	createCookie('date2', (month + '/' + day), 0, 20);
	month = document.frmGui.selDepartMonth2.selectedIndex;
	day = document.frmGui.selDepartDay2.selectedIndex + 1;
	createCookie('date3', (month + '/' + day), 0, 20);
};
function        getDates() {
	var             cookieValue = readCookie('date1');
	if (cookieValue != null) {
		var             ca = cookieValue.split('/');
		month = ca[0];
		day = ca[1];
		UpdateDate(parseInt(month), parseInt(day) - 1);
	};
	cookieValue = readCookie('date2');
	if (cookieValue != null) {
		var             ca = cookieValue.split('/');
		month = ca[0];
		day = ca[1];
		UpdateDateString('selReturnMonth1', parseInt(month), parseInt(day) - 1);
	};
	cookieValue = readCookie('date3');
	if (cookieValue != null) {
		var             ca = cookieValue.split('/');
		month = ca[0];
		day = ca[1];
		UpdateDateString('selDepartMonth2', parseInt(month), parseInt(day) - 1);
	};
};
function        validate() {
	var             pass;
	var             errCnt = 0;
	var             curDate = new Date();
	var             dow = curDate.getDay();
	var             day = curDate.getDate();
	var             month = curDate.getMonth();
	var             hour = curDate.getHours();
	var             year = curDate.getFullYear();
	saveDates();
	pass = true;
	if (document.frmGui) {
		var             days = days_Between(m_MasterDate, curDate);
		if (dow == 0) {
			dow = 7
		};
		if ((parseInt(document.frmGui.selNumberOfAdults.selectedIndex) + 1) + parseInt(document.frmGui.selNumberOfChildren.selectedIndex) > 6) {
			alert('The number of Adult and Children passengers combined cannot exceed 6.Please contact us directly if you need to book more than 6 passengers or try multiple bookings.Thank you!');
			document.frmGui.selNumberOfAdults.selectedIndex = 0;
			document.frmGui.selNumberOfChildren.selectedIndex = 0;
			pass = false;
		} if (((document.frmGui.txtDepart1.value == document.frmGui.txtDest1.value) && document.frmGui.txtDepart1.value != '') || ((document.frmGui.txtDepart2.value == document.frmGui.txtDest2.value) && document.frmGui.txtDepart2.value != '')) {
			pass = false;
			alert('Your departue and destination cannot be the same.Please correct to continue.');
		} if ((dow == 5 && days <= 3) || (dow == 6 && days <= 2) || (dow == 7 && days <= 1)) {
			pass = false;
			var             sellDate = new Date();
			sellDate.setFullYear(year, month, day + ((7 - dow) + 2));
			alert('Due to weekend restricitons we cannot sell fares departing before ' + sellDate.toDateString() + '.We apologize for any inconvenience!');
		} else if (days <= 1) {
			pass = false;
			alert('Due to certain restricitons we cannot sell fares less then 2 days out from your departure date.We apologize for any inconvenience!');
		};
		curDate.setFullYear(document.frmGui.txtReturnYear1.value, document.frmGui.selReturnMonth1.value, document.frmGui.selReturnDay1.value);
		days = days_Between(curDate, m_MasterDate);
		if (days > 330) {
			pass = false;
			alert('Due to certain restricitons we cannot sell fares more than 330 days out from your departure date.We apologize for any inconvenience!');
		};
		errCnt = errCnt + checkField('txtDepart1', 'depart1', 3);
		errCnt = errCnt + checkField('txtDest1', 'dest1', 3);
		if (document.frmGui.radTripType[2].checked == true) {
			errCnt = errCnt + checkField('txtDepart2', 'depart2', 3);
			errCnt = errCnt + checkField('txtDest2', 'dest2', 3);
		};
	};
	if (errCnt > 0) {
		pass = false;
		if (errCnt == 1) {
			alert('There is 1 required field with invalid or missing data.Please correct.');
		} else if (errCnt > 1) {
			alert('There are ' + errCnt + ' required fields with invalid or missing data.Please correct.');
		};
	};
	return pass;
};
function        changeTripDisplay(tripType) {
	/*if (document.getElementById('returnOn') == null) {
		return null;
	};*/
	if (tripType != '') {
		if (tripType == 'roundTrip') {
			document.getElementById('return').style.display = 'block';
			document.getElementById('multiCity').style.display = 'none';
                        document.getElementById('hideGogingTo').style.display='none';
                        document.getElementById('borderNeedHide').style.display='block';
			//document.getElementById('multiCitySpacer').style.display = 'none';
			document.frmGui.radTripType[1].checked = true;
		} else if (tripType == 'oneWay') {
			document.getElementById('return').style.display = 'none';
			document.getElementById('multiCity').style.display = 'none';
                        document.getElementById('hideGogingTo').style.display='block';
                        document.getElementById('borderNeedHide').style.display='none';
			//document.getElementById('multiCitySpacer').style.display = 'none';
			document.frmGui.radTripType[0].checked = true;
		} else if (tripType == 'openJaw') {
			document.getElementById('return').style.display = 'none';
			document.getElementById('multiCity').style.display = 'block';
                        document.getElementById('hideGogingTo').style.display='block';
                        document.getElementById('borderNeedHide').style.display='none';
			//document.getElementById('multiCitySpacer').style.display = 'block';
			document.frmGui.radTripType[2].checked = true;
		};
		createCookie('tripType', tripType, 0, 20);
	} else {
		var             cookieValue = readCookie('tripType');
		if (cookieValue == null) {
			changeTripDisplay('roundTrip');
		} else {
			changeTripDisplay(cookieValue);
		};
	};
};
function        UpdateDate(SelMonth, SelDay) {
	var             sYear;
	var             dtBuf = new Date();
	var             dtDate = new Date();
	var             sBuf;
	var             Buf;
	m_MasterDate = new Date();
	SelDay = SelDay + 1;
	sYear = GetYear(SelMonth, SelDay);
	dtDate.setFullYear(sYear, SelMonth, SelDay);
	m_MasterDate = dtDate;
	dtBuf.setFullYear(sYear, SelMonth, (SelDay + 7));
	if (document.frmGui.selDepartMonth1 == null) {
		return null;
	};
	document.frmGui.selDepartMonth1.selectedIndex = dtDate.getMonth();
	document.frmGui.selDepartDay1.selectedIndex = dtDate.getDate() - 1;
	document.frmGui.selReturnMonth1.selectedIndex = dtBuf.getMonth();
	document.frmGui.selReturnDay1.selectedIndex = (dtBuf.getDate() - 1);
	document.frmGui.selDepartMonth2.selectedIndex = dtBuf.getMonth();
	document.frmGui.selDepartDay2.selectedIndex = (dtBuf.getDate() - 1);
	ChangeText('txtDepartYear1', String(dtDate.getFullYear()));
	ChangeText('txtReturnYear1', String(dtBuf.getFullYear()));
	ChangeText('txtDepartYear2', String(dtBuf.getFullYear()));
	ChangeText('txtLeaveOnDOW1', TextDOW(dtDate.getDay()));
	ChangeText('txtReturnOnDOW1', TextDOW(dtBuf.getDay()));
	ChangeText('txtLeaveOnDOW2', TextDOW(dtBuf.getDay()));
};
function        ChangeText(id, text) {
	if (document.frmGui.elements[id] == null) {
		return;
	};
	document.frmGui.elements[id].value = text;
};
function        TextDOW(Day) {
	var             DayArray = new Array(6);
	DayArray[0] = 'Sunday';
	DayArray[1] = 'Monday';
	DayArray[2] = 'Tuesday';
	DayArray[3] = 'Wednesday';
	DayArray[4] = 'Thursday';
	DayArray[5] = 'Friday';
	DayArray[6] = 'Saturday';
	return DayArray[Day];
};
function        GetYear(Month, Day) {
	var             dtCur = new Date();
	var             sYear;
	var             curYear = parseInt(dtCur.getFullYear());
	var             masYear = parseInt(m_MasterDate.getFullYear());
	if ((curYear < masYear) || (Month < m_MasterDate.getMonth()) || (((Day+1) < m_MasterDate.getDate()) && (Month <= m_MasterDate.getMonth()))) {
		sYear = String((dtCur.getFullYear() + 1));
	} else {
		sYear = String(dtCur.getFullYear());
	};
	return sYear;
};
function        UpdateDateString(id, Month, Day) {
	var             dtBuf = new Date();
	var             sYear;
	var             iDays;
	if (document.frmGui.selReturnMonth1 == null) {
		return null;
	};
	sYear = GetYear(Month, Day);
	Day = Day + 1;
	dtBuf.setFullYear(sYear, Month, Day);
	ChangeText(id, String(dtBuf.getFullYear()));
	document.frmGui.selReturnMonth1.selectedIndex = dtBuf.getMonth();
	document.frmGui.selReturnDay1.selectedIndex = (dtBuf.getDate() - 1);
	document.frmGui.selDepartMonth2.selectedIndex = dtBuf.getMonth();
	document.frmGui.selDepartDay2.selectedIndex = (dtBuf.getDate() - 1);
	ChangeText('txtReturnOnDOW1', TextDOW(dtBuf.getDay()));
	ChangeText('txtLeaveOnDOW2', TextDOW(dtBuf.getDay()));
};
function        SetDefaultDates() {
	var             dtBuf = new Date();
	UpdateDate(dtBuf.getMonth(), dtBuf.getDate() + 6);
};
function        days_Between(date1, date2) {
	var             one_day = 1000 * 60 * 60 * 24;
	var             days = (Math.abs(date1.getTime() - date2.getTime()));
	return Math.round(days / one_day);
};
function        subtract_Days(date1, days) {
	var             one_day = 1000 * 60 * 60 * 24;
	var             curDateMS = date1.getTime();
	var             diffMS = (one_day * days);
	var             returnDate = new Date();
	returnDate.setTime(curDateMS - diffMS);
	return returnDate;
};
function        SetDepartDest() {
	if (Request.QueryString("departure").Count > 0) {
		document.frmGui.txtDepart1.value = Request.QueryString("departure");
	};
	if (Request.QueryString("destination").Count > 0) {
		document.frmGui.txtDest1.value = Request.QueryString("destination");
	};
};
