today = new Date();
okayleave = runtimer = true;

window.onbeforeunload = function()
{
	if (!okayleave)
	{
		return vbphrase['tsg_air_leavewarning'];
	}
}

function process_air_book()
{
	var temp;
	okayleave = runtimer = false;
	tsg = new vB_AJAX_Handler(true);
	request = 'searchid=' + searchid + '&recid=' + resultid + '&recordid=' + recordid + '&submission=1&ajax=1';
	request += '&bill_num=' + fetch_object('bill_num').value;
	temp = fetch_object('bill_dir');
	request += '&bill_dir=' + temp.options[temp.selectedIndex].value;
	request += '&bill_street=' + fetch_object('bill_street').value;
	temp = fetch_object('bill_extra');
	request += '&bill_extra=' + temp.options[temp.selectedIndex].value;
	request += '&bill_sub=' + fetch_object('bill_sub').value;
	request += '&bill_city=' + fetch_object('bill_city').value;
	temp = fetch_object('bill_region');
	request += '&bill_region=' + temp.options[temp.selectedIndex].value;
	request += '&bill_code=' + fetch_object('bill_code').value;
	request += '&ship_num=' + fetch_object('ship_num').value;
	temp = fetch_object('ship_dir');
	request += '&ship_dir=' + temp.options[temp.selectedIndex].value;
	request += '&ship_street=' + fetch_object('ship_street').value;
	temp = fetch_object('ship_extra');
	request += '&ship_extra=' + temp.options[temp.selectedIndex].value;
	request += '&ship_sub=' + fetch_object('ship_sub').value;
	request += '&ship_city=' + fetch_object('ship_city').value;
	temp = fetch_object('ship_region');
	request += '&ship_region=' + temp.options[temp.selectedIndex].value;
	request += '&ship_code=' + fetch_object('ship_code').value;
	request += '&phone_area=' + fetch_object('phone_area').value;
	request += '&phone_num=' + fetch_object('phone_num').value;
	request += '&work_area=' + fetch_object('work_area').value;
	request += '&work_num=' + fetch_object('work_num').value;
	request += '&work_ext=' + fetch_object('work_ext').value;
	request += '&email=' + fetch_object('email').value;
	request += '&email_check=' + fetch_object('email_check').value;
	request += '&card_name=' + fetch_object('card_name').value;
	temp = fetch_object('expire_month');
	request += '&expire_month=' + temp.options[temp.selectedIndex].value;
	temp = fetch_object('expire_year');
	request += '&expire_year=' + temp.options[temp.selectedIndex].value;
	request += '&card_security=' + fetch_object('card_security').value;
	request += '&card_number=' + fetch_object('card_number').value;
	temp = fetch_object('meals');
	request += '&meals=' + temp.options[temp.selectedIndex].value;
	temp = fetch_object('smoking');
	request += '&smoking=' + temp.options[temp.selectedIndex].value;
	temp = fetch_object('assistance');
	request += '&assistance=' + temp.options[temp.selectedIndex].value;
	temp = fetch_object('location');
	request += '&location=' + temp.options[temp.selectedIndex].value;
	request += '&name_same=' + ( fetch_object('name_same').checked ? 1 : 0 );
	request += '&ship_same=' + ( fetch_object('ship_same').checked ? 1 : 0 );
	request += '&verify_terms=' + ( fetch_object('verify_terms').checked ? 1 : 0 );

	for (var x = 0; x < passengers; x++)
	{
		temp = fetch_object('primary_' + x);

		if (temp && temp.checked)
		{
			request += '&primary=' + x;
		}

		request += '&family[' + x + '][type]=' + fetch_object('famtype_' + x).value;
		temp = fetch_object('famgen_' + x);
		request += '&family[' + x + '][gender]=' + temp.options[temp.selectedIndex].value;
		request += '&family[' + x + '][fname]=' + fetch_object('famfname_' + x).value;
		request += '&family[' + x + '][lname]=' + fetch_object('famlname_' + x).value;
		temp = fetch_object('air_birth_' + x + '_month');
		request += '&family[' + x + '][birth_month]=' + temp.options[temp.selectedIndex].value;
		temp = fetch_object('air_birth_' + x + '_day');
		request += '&family[' + x + '][birth_day]=' + temp.options[temp.selectedIndex].value;
		request += '&family[' + x + '][birth_year]=' + fetch_object('fambyear_' + x).value;
	}
	tsg.onreadystatechange(function()
	{
		if (tsg.handler.readyState == 4 && tsg.handler.status == 200)
		{
			clearInterval(stc);
			response = tsg.handler.responseText;

			if (response.substring(0, 6) == 'Error:')
			{
				okayleave = true;
				alert(response.substring(6));
				window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
			}
			else
			{
				//new timer
				if (response.substring(0, 5) == 'Undo:')
				{
					step_disp.innerHTML = backup;
					var sub_errors = fetch_object('submit_errors');
					sub_errors.innerHTML = '<b>' + response.substring(5) + '</b><br />';
					sub_errors.style.display = 'block';
					okayleave = runtimer = true;
				}
				else if (response.substring(0, 6) == 'Price:')
				{
					var prices = response.substring(6).split('|');

					if (confirm('The price for this itinerary has changed from $' + prices[0] + ' to $' + prices[1] + ', would you like to proceed anyway?'))
					{
						tsg.send('book.php', request + '&accept_price=1');
					}
					else
					{
						okayleave = true;
						window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
					}
				}
				else
				{
					temp = response.split('|');

					if (temp[1])
					{
						step_disp.innerHTML = temp[1];
						okayleave = true;

						if (temp[2])
						{
							fetch_object('trackcode').innerHTML = '<iframe src="https://www.cheapticketscanada.com/forum/track_code.php?value=' + temp[2] + '"></iframe>';
						}
					}
					else
					{
						okayleave = true;
						alert(vbphrase['tsg_air_jserrorresponse']);
						window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
					}

					init_air_form2();
				}
			}
		}
	});

	step_disp = fetch_object('step_display');
	backup = step_disp.innerHTML;
	step_disp.innerHTML = '<br /><table class="tborder" cellpadding="5" cellspacing="1" border="0" width="100%" align="center"><tr><td align="center"><b><span id="status_message">' + vbphrase['tsg_air_validatingbillinginfo'] + '</span>...</b><br /><img src="https://www.cheapticketscanada.com/wait.gif" border="0" /><br />' + vbphrase['tsg_air_pleasebepatient'] + '<br />' + vbphrase['tsg_air_nonrefundable'] + '<br /><b>' + vbphrase['tsg_air_navigatewarn'] + '</b></td></tr></table>';
	tsg.send('book.php', request);
	stc = setInterval('status_change();', 15000);
	return false;
}

function process_air_book_actions()
{
	var temp;
	okayleave = runtimer = false;
	tsg2 = new vB_AJAX_Handler(true);
	request += '&accept_price=1';
	
	for (var x = 0; temp = fetch_object('answer_' + x); x++)
	{
		request += '&answer[' + x + ']=' + ( (temp.value == 1) ? ( temp.checked ? 1 : 0 ) : temp.value );
		request += '&antype[' + x + ']=' + fetch_object('antype_' + x).value;
	}
	tsg2.onreadystatechange(function()
	{
		if (tsg2.handler.readyState == 4 && tsg2.handler.status == 200)
		{
			clearInterval(stc);
			response = tsg2.handler.responseText;

			if (response.substring(0, 6) == 'Error:')
			{
				okayleave = true;
				alert(response.substring(6));
				window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
			}
			else
			{
				temp = response.split('|');

				if (temp[1])
				{
					step_disp.innerHTML = temp[1];
					okayleave = true;

					if (temp[2])
					{
						if (temp[2] != '-1')
						{
							fetch_object('trackcode').innerHTML = '<iframe src="https://www.cheapticketscanada.com/forum/track_code.php?value=' + temp[2] + '"></iframe>';
						}
						else
						{
							status = 0;
							timer = temp[0];
							runtimer = true;
						}
					}
				}
				else
				{
					okayleave = true;
					alert(vbphrase['tsg_air_jserrorresponse']);
					window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
				}

				init_air_form2();
			}
		}
	});

	step_disp = fetch_object('step_display');
	step_disp.innerHTML = '<br /><table class="tborder" cellpadding="5" cellspacing="1" border="0" width="100%" align="center"><tr><td align="center"><b><span id="status_message">' + vbphrase['tsg_air_validatingbillinginfo'] + '</span>...</b><br /><img src="https://www.cheapticketscanada.com/wait.gif" border="0" /><br />' + vbphrase['tsg_air_pleasebepatient'] + '<br />' + vbphrase['tsg_air_nonrefundable'] + '<br /><b>' + vbphrase['tsg_air_navigatewarn'] + '</b></td></tr></table>';
	tsg2.send('book.php', request);
	stc = setInterval('status_change();', 15000);
	return false;
}

function same_name_click()
{
	if (fetch_object('name_same').checked)
	{
		for (var x = 0; x < passengers; x++)
		{
			if (fetch_object('primary_' + x).checked)
			{
				fetch_object('card_name').value = fetch_object('famfname_' + x).value + ' ' + fetch_object('famlname_' + x).value;
			}
		}
	}
}
function check_same_name()
{
	for (var x = 0; x < passengers; x++)
	{
		if (fetch_object('primary_' + x).checked && fetch_object('card_name').value != fetch_object('famfname_' + x).value + ' ' + fetch_object('famlname_' + x).value)
		{
			fetch_object('name_same').checked = false;
		}
	}
}
function same_ship_click()
{
	if (fetch_object('ship_same').checked)
	{
		fetch_object('ship_num').value = fetch_object('bill_num').value;
		fetch_object('ship_dir').selectedIndex = fetch_object('bill_dir').selectedIndex;
		fetch_object('ship_street').value = fetch_object('bill_street').value;
		fetch_object('ship_extra').selectedIndex = fetch_object('bill_extra').selectedIndex;
		fetch_object('ship_sub').value = fetch_object('bill_sub').value;
		fetch_object('ship_city').value = fetch_object('bill_city').value;
		fetch_object('ship_region').selectedIndex = fetch_object('bill_region').selectedIndex;
		fetch_object('ship_code').value = fetch_object('bill_code').value;
	}
}
function check_same_ship()
{
	if (fetch_object('ship_num').value != fetch_object('bill_num').value || fetch_object('ship_dir').selectedIndex != fetch_object('bill_dir').selectedIndex || fetch_object('ship_street').value != fetch_object('bill_street').value || fetch_object('ship_extra').selectedIndex != fetch_object('bill_extra').selectedIndex || fetch_object('ship_sub').value != fetch_object('bill_sub').value || fetch_object('ship_city').value != fetch_object('bill_city').value || fetch_object('ship_region').selectedIndex != fetch_object('bill_region').selectedIndex || fetch_object('ship_code').value != fetch_object('bill_code').value)
	{
		fetch_object('ship_same').checked = false;
	}
}
function undo_ghosts(input)
{
	if (input.style.color == 'gray')
	{
		input.value = '';
		input.style.color = 'black';
	}
}
function set_news_region()
{
	var newind;
	var billadd = fetch_object('bill_region');
	var newsreg = fetch_object('news_region');

	if (billadd && newsreg)
	{
		switch (billadd.selectedIndex)
		{
			case 0: newind = 0; break;
			case 1: newind = 16; break;
			case 2: newind = 19; break;
			case 3: newind = 20; break;
			case 4: newind = 25; break;
			case 5: newind = 27; break;
			case 6: newind = 29; break;
			case 7: newind = 30; break;
			case 8: newind = 41; break;
			case 9: newind = 43; break;
			case 10: newind = 45; break;
			case 11: newind = 50; break;
			case 12: newind = 52; break;
			default: newind = 53;
		}

		newsreg.selectedIndex = newind;
	}
}
function count_down()
{
	if (timer == 0 && runtimer)
	{
		clearInterval(cdt);
		alert(vbphrase['tsg_air_error_timeup']);
		window.location = 'http://www.cheapticketscanada.com/results.php?searchid=' + searchid;
	}
	else if (timer > 0)
	{
		timer--;
		
		if (runtimer)
		{
			var mins = Math.floor(timer / 60);
			var secs = timer - mins * 60;
			fetch_object('time_left').innerHTML = mins + ':' + ( secs < 10 ? '0' : '' ) + secs;
		}
	}
}
function status_change()
{
	stmess = fetch_object('status_message');
	status++;

	switch (status)
	{
		case 1:
			stmess.innerHTML = vbphrase['tsg_air_submittingcustomerprofile'];
			break;
		case 2:
			stmess.innerHTML = vbphrase['tsg_air_initbookingitin'];
			break;
		case 3:
			stmess.innerHTML = vbphrase['tsg_air_submitbookingrequest'];
			break;
		case 4:
			stmess.innerHTML = vbphrase['tsg_air_awaitbookresponse'];
			break;
		case 20:
			okayleave = true;
			stmess.innerHTML = 'This Booking Has Timed Out - Possibly Due to Technical Errors. Please Call Us Immediately to Confirm This Booking!';
			clearInterval(stc);
	}
}

function process_air_form()
{
	var depart = fetch_object('air_depart_city');
	var depart_city = depart.options[depart.selectedIndex].value;
	var depart_text = fetch_object('air_depart_text');
	var arrive = fetch_object('air_arrive_city');
	var arrive_city = arrive.options[arrive.selectedIndex].value;
	var arrive_text = fetch_object('air_arrive_text');
	var roundtrip = fetch_object('air_roundtrip').checked;
	var thecookie = fetch_air_cookie();

	if (typeof(nocitysuggest) != 'undefined')
	{
		depart_text.value = depart_city + ', ' + depart.options[depart.selectedIndex].text;
		arrive_text.value = arrive_city + ', ' + arrive.options[arrive.selectedIndex].text;
	}
	if ((depart_text.value == '' || depart_city == '???') && thecookie[0] && thecookie[1])
	{
		depart_city = ( depart_text.value == thecookie[0] ? thecookie[1] : '???' );

		if (depart_city == '???')
		{
			if (confirm('You have recently selected to depart from ' + thecookie[0] + '. Would you like to use this location again?'))//tsg_air_uselastdepart
			{
				depart_city = thecookie[1];
				depart_text.value = thecookie[0];
			}
			else
			{
				depart_text.focus();

				if (depart_text.value == '')
				{
					return false;
				}
			}
		}

		depart.options[depart.selectedIndex].value = depart_city;
	}
	if ((arrive_text.value == '' || arrive_city == '???') && thecookie[2] && thecookie[3])
	{
		arrive_city = ( arrive_text.value == thecookie[2] ? thecookie[3] : '???' );

		if (arrive_city == '???')
		{
			if (confirm('You have recently selected to arrive at ' + thecookie[2] + '. Would you like to use this location again?'))//tsg_air_uselastarrive
			{
				arrive_city = thecookie[3];
				arrive_text.value = thecookie[2];
			}
			else
			{
				arrive_text.focus();

				if (arrive_text.value == '')
				{
					return false;
				}
			}
		}

		arrive.options[arrive.selectedIndex].value = arrive_city;
	}
	if (depart_city == '' || depart_city == null || depart_city == '???' || depart_text.value == '')
	{
		depart_text.value == '';
		depart_text.focus();
		alert('Please enter a valid departure location.');
		return false;
	}
	if (arrive_city == '' || arrive_city == null || arrive_city == '???' || arrive_text.value == '')
	{
		arrive_text.value == '';
		arrive_text.focus();
		alert('Please enter a valid arrival location.');
		return false;
	}
	if (depart_city == arrive_city)
	{
		arrive_text.value == '';
		arrive_text.focus();
		alert('You cannot depart and arrive from the same airport.');
		return false;
	}
	if (fetch_object('air_adults').selectedIndex + fetch_object('air_children').selectedIndex + fetch_object('air_infants').selectedIndex == 0)
	{
		alert('Please indicate at least one passenger.');
		return false;
	}
	if (fetch_object('air_adults').selectedIndex == 0 && (fetch_object('air_children').selectedIndex + fetch_object('air_infants').selectedIndex) > 0)
	{
		alert('Please call our office to book travel for children under the age of 12 if they are traveling alone as airline travel restrictions vary.');
		return false;
	}

	var future = new Date();
	future.setFullYear(future.getFullYear(), future.getMonth(), future.getDate() + 330);
	var leave_date = read_date_dd('air_leave');
	var return_date = read_date_dd('air_return');

	if (leave_date > future || (roundtrip && return_date > future))
	{
		alert('Dates must be after today and cannot exceed 330 days in the future.');
		return false;		
	}
	if (roundtrip && return_date < leave_date)
	{
		alert('You cannot return before you have left.');
		return false;		
	}

	var airsub = fetch_object('air_submit');
	airsub.value = ( fetch_object('collapseobj_tsg_air_advanced') ? 'Initializing Search - Please Wait' : 'Loading' );//tsg_air_initsearchwait
	airsub.disabled = true;
	fetch_object('json').value = '1';
	airsub = fetch_object('airline_pac');
	
	if (airsub && airsub.checked)
	{
		fetch_object('tour_depart_city').value = depart_city;
		fetch_object('tour_arrive_city').value = arrive_city;
		fetch_object('tour_leave_date').value = string_date(leave_date);
		fetch_object('tour_duration').value = (return_date - leave_date) / 86400000;
		//set cookies?
		fetch_object('tourform').submit();
		return false;
	}

	return true;
}

function toggle_air_roundtrip()
{
	fetch_object('air_roundtrip_a').style.visibility = fetch_object('air_roundtrip_b').style.visibility = fetch_object('air_roundtrip_c').style.visibility = ( fetch_object('air_roundtrip').checked ? 'visible' : 'hidden' );
}

function check_passengers(which)
{
	var agepicks = '';
	var filloptions = '';
	var agebox = fetch_object('air_ages');
	var adults = fetch_object('air_adults');
	var children = fetch_object('air_children');
	var infants = fetch_object('air_infants');
	var allpeople = adults.selectedIndex + children.selectedIndex + infants.selectedIndex;

	if (allpeople > 9)
	{
		var focused = fetch_object('air_' + which);
		focused.selectedIndex = focused.selectedIndex + 9 - allpeople;
		alert('Unfortunately, only nine tickets are available at a time. If you need more, please call one of our agents Toll Free at 1-866-GO-4-CHEAP.');
	}	
	/*if (infants.options.length > adults.selectedIndex + 1)
	{
		infants.options.length = adults.selectedIndex + 1;
		infants.selectedIndex = adults.selectedIndex;
	}*/
	for (var x = infants.selectedIndex + 1; x < 5 && infants.options.length < adults.selectedIndex + 1; x++)
	{
		infants.options[x] = new Option(x, x);
	}
	if (which == 'children')
	{
		for (var x = 2; x < 12; x++)
		{
			filloptions += '<option value="' + x + '"' + ( x == 11 ? ' selected="selected"' : '' ) + '>' + x + '</option>';
		}
		for (var x = 1; x <= children.selectedIndex; x++)
		{
			if (x == 1 || x == 4 || x == 7)
			{
				agepicks += '<br />';
			}
			
			agepicks += '<select name="ages[]">' + filloptions + '</select> ';
		}
	
		agebox.innerHTML = 'Ages of Children:' + agepicks;
	}
	if (which == 'infants')
	{
		var depart = fetch_object('air_depart_city');
		var arrive = fetch_object('air_arrive_city');
		depart = depart.options[depart.selectedIndex].value;
		arrive = arrive.options[arrive.selectedIndex].value;
		var thecookie = fetch_air_cookie();

		if (infants.selectedIndex > 0 && (((( depart == '???' ? '' : depart ) + thecookie[1]).substr(0, 1) == 'Y') != ((( arrive == '???' ? '' : arrive ) + thecookie[3]).substr(0, 1) == 'Y')))
		{
			alert('Selecting infants may limit flight results. You may also book flights without infants and call an agent on the same day to add an infant to your booking.');
		}
	}

	agebox.style.display = ( children.selectedIndex > 0 ? 'block' : 'none' );
}

function airline_useall()
{
	var airlines = fetch_tags(fetch_object('collapseobj_tsg_airlines'), 'input');

	if (airlines[0].checked)
	{
		for (var x = 1; x <= 60; x++)
		{
			airlines[x].checked = false;
		}
	}
	else
	{
		airlines[0].checked = true;
	}
}

function airline_select()
{
	var checked = 0;
	var airlines = fetch_tags(fetch_object('collapseobj_tsg_airlines'), 'input');

	for (var x = 1; x <= 60; x++)
	{
		if (airlines[x].checked)
		{
			airlines[0].checked = false;
			checked++;
		}
	}
	if (checked == 0)
	{
		airlines[0].checked = true;
	}
}

function read_date_dd(field)
{
	var value = new Date();
	var t_mons = fetch_object(field + '_month');
	var t_days = fetch_object(field + '_day');
	value.setFullYear(today.getFullYear(), t_mons.options[t_mons.selectedIndex].value, t_days.options[t_days.selectedIndex].value);

	if (value < today)
	{
		value.setFullYear(value.getFullYear() + 1);
	}

	return value;
}

function is_empty(variable)
{
	return (variable == null || variable == false || variable == '' || variable == 0);
}

function fetch_air_cookie()
{
	return ( fetch_cookie('air_form') ? fetch_cookie('air_form').split('|') : ['', '???', '', '???', build_timestamp(today.getMonth(), today.getDate(), 7), 0, 1, build_timestamp(today.getMonth(), today.getDate(), 14), 0, 1, 0, 0] );
}

fields = ['air_depart_city', 'air_arrive_city', 'air_leave', 'air_return'];

function build_charter_dates(level, pickval)
{
	var t_mons = fetch_object(fields[level] + '_month');
	var t_days = fetch_object(fields[level] + '_day');
	t_days.options.length = 0;
	t_days.selectedIndex = 0;
	var count = 0;
	var value;

	for (var i = 0; i < cfdc_dateArrays[level - 2].length; i++)
	{
		value = cfdc_dateArrays[level - 2][i].split('-');

		if (value[1] - 1 == t_mons.options[t_mons.selectedIndex].value)
		{
			t_days.options[count] = new Option(value[2], value[2]);
			
			if (value[2] == pickval)
			{
				t_days.selectedIndex = count;
			}

			count++;
		}
	}
}

function charter_fetch(level)
{
	var i;
	var value;
	var cookpos = [1, 3, 4, 7];
	var progress = ['origin', 'destination', 'departdate', 'returndate'];
	var chartersub = fetch_object('air_submit');
	var sendurl = 'object=' + progress[level];
	var thecookie = fetch_air_cookie();
	chartersub.disabled = true;

	for (i = 3; i >= 0; i--)
	{
		if (i >= level)
		{
			if (i > 1)
			{
				cfdc_dateArrays[i - 2] = new Array();
				fetch_object(fields[i] + '_month').disabled = fetch_object(fields[i] + '_day').disabled = true;				
			}
			else
			{
				value = fetch_object(fields[i]);
				value.options.length = 0;
				value.options[0] = new Option(( i == level ? 'Please Wait' : 'Select Departure' ), '');
				value.selectedIndex = 0;
				value.disabled = true;
			}
		}
		else
		{
			if (i > 1)
			{
				value = read_date_dd(fields[i]);
			}
			else
			{
				value = fetch_object(fields[i]);
				value = value.options[value.selectedIndex].value;
			}
			if (!is_empty(value))
			{
				thecookie[cookpos[i]] = ( i > 1 ? build_timestamp(value.getMonth(), value.getDate(), 0) : value );
				sendurl = sendurl + '&' + progress[i] + '=' + ( i > 1 ? string_date(value) : value );
			}
			else
			{
				return;				
			}
		}
	}

	var tsgres = new vB_AJAX_Handler(true);
	tsgres.onreadystatechange(function()
	{
		if (tsgres.handler.readyState == 4 && tsgres.handler.status == 200)
		{
			var advance = false;
			eval(tsgres.handler.responseText);

			if (level > 1)
			{
				var count = 0;
				var usedate = null;
				var curdate = new Date();
				var addmons = new Array();
				var thedates = new Array();
				cfdc_dateArrays[level - 2] = dateArray;
				var refdate = read_date_dd(fields[level]);
				var t_mons = fetch_object(fields[level] + '_month');
				var mons = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
				t_mons.options.length = 0;
				t_mons.selectedIndex = 0;

				for (i = 0; i < dateArray.length; i++)
				{
					value = dateArray[i].split('-');
					value[1]--;
					curdate.setFullYear(value[0], value[1], value[2]);
					thedates[i] = [value, curdate];
					
					if (addmons[value[1]] == null)
					{
						t_mons.options[count] = new Option(mons[value[1]], value[1]);
						addmons[value[1]] = count++;
					}
					if (usedate == null && curdate >= refdate)
					{
						usedate = i - ( (i != 0 && (curdate - refdate) > (refdate - thedates[i - 1][0])) ? 1 : 0 );
					}
				}
				if (usedate == null)
				{
					usedate = dateArray.length - 1;
				}

				t_mons.selectedIndex = addmons[thedates[usedate][0][1]];
				build_charter_dates(level, thedates[usedate][0][2]);
				t_mons.disabled = fetch_object(fields[level] + '_day').disabled = false;
				advance = true;
			}
			else
			{
				var nonblank = [0, 0];
				value = fetch_object(fields[level]);
				value.options.length = 0;
				
				for (i = 0; i < valueArray.length; i++)
				{
					value.options[i] = new Option(textArray[i], valueArray[i]);
					
					if (is_empty(valueArray[i]))
					{
						value.options[i].style.color = 'blue';
					}
					else
					{
						nonblank[0]++;
						nonblank[1] = i;

						if (valueArray[i] == thecookie[cookpos[level]])
						{
							value.selectedIndex = i;
							advance = true;
						}
					}
				}
				if (!advance && nonblank[0] == 1)
				{
					value.selectedIndex = nonblank[1];
					advance = true;
				}

				value.disabled = false;
			}
			if (level < 3)
			{
				if (advance)
				{
					charter_fetch(level + 1);
				}
			}
			else
			{
				chartersub.disabled = false;
			}
		}
	});

	tsgres.send('http://www.cheapticketscanada.com/proxy.php?type=charter', sendurl);
}
function init_air_form(skipdates)
{
	if (typeof(nocitysuggest) == 'undefined')
	{
		setAutoCompleteExt('air_depart_text', 'air_depart_drop', 'http://www.cheapticketscanada.com/forum/cities.php');
		setAutoCompleteExt('air_arrive_text', 'air_arrive_drop', 'http://www.cheapticketscanada.com/forum/cities.php');
	}

	var temp = fetch_object('collapseobj_tsg_airlines');

	if (temp)
	{
		temp.style.display = 'none';
	}

	temp = fetch_object('collapseobj_tsg_air_advanced');

	if (temp)
	{
		temp.style.display = 'none';
	}

	var usedate = new Date();
	var datetime = new Date();
	var thecookie = fetch_air_cookie();

	if (typeof(nocitysuggest) == 'undefined')
	{
		fetch_object('air_depart_text').value = thecookie[0];
		fetch_object('air_arrive_text').value = thecookie[2];
	}
	else if (typeof(usechartercache) == 'undefined')
	{
		var citydd = fetch_object('air_depart_city');

		for (var selind = 0; selind < citydd.options.length; selind++)
		{
			if (citydd.options[selind].value == thecookie[1])
			{
				citydd.selectedIndex = selind;
				fetch_ws_cities();
				citydd = fetch_object('air_arrive_city');

				for (var selind = 0; selind < citydd.options.length; selind++)
				{
					if (citydd.options[selind].value == thecookie[3])
					{
						citydd.selectedIndex = selind;
						break;
					}
				}

				break;
			}
		}
	}
	if (!skipdates)
	{
		datetime.setTime(thecookie[4] * 1000);
	
		if (datetime > usedate)
		{
			usedate = datetime;
		}
	
		fetch_object('air_leave_month').selectedIndex = usedate.getMonth();
		build_drop_days('air_leave');
		fetch_object('air_leave_day').selectedIndex = usedate.getDate();
	
		datetime.setTime(thecookie[7] * 1000);
	
		if (datetime > usedate)
		{
			usedate = datetime;
		}
	
		fetch_object('air_return_month').selectedIndex = usedate.getMonth();
		build_drop_days('air_return');
		fetch_object('air_return_day').selectedIndex = usedate.getDate();	
	}

	fetch_object('air_leave_time').selectedIndex = thecookie[5];
	fetch_object('air_return_time').selectedIndex = thecookie[8];
	fetch_object('air_roundtrip').checked = ( thecookie[6] == 1 ? true : false );
	toggle_air_roundtrip();

	fetch_object('air_adults').selectedIndex = thecookie[9];
	check_passengers('adults');
	fetch_object('air_children').selectedIndex = thecookie[10];
	check_passengers('children');
	fetch_object('air_infants').selectedIndex = thecookie[11];
	check_passengers('infants');
}

function init_air_form2()
{
	temp = fetch_object('collapseobj_tsg_air_prefs');
	set_news_region();

	if (temp)
	{
		temp.style.display = 'none';
	}
}

var tsg_ajax_string;
var tsgres = new Array();

function load_book()
{
	fetch_object('results_box').innerHTML = '<table class="tborder" cellpadding="5" cellspacing="1" border="0" width="' + waitwidth + '" align="center"><tr><td align="center"><b>' + vbphrase['tsg_air_assemblingitininfo'] + '</b><br /><img src="http://www.cheapticketscanada.com/wait.gif" border="0" /><br />' + vbphrase['tsg_air_pleasebepatient'] + '</td></tr></table>';
}

function pull_air_ajax(searchid, company, stops, wholesale, altdates, orderby, direction)
{
	fetch_object('results_info').innerHTML = '';
	fetch_object('results_box').innerHTML = '<table class="tborder" cellpadding="5" cellspacing="1" border="0" width="' + waitwidth + '" align="center"><tr><td align="center">' + ( searchid != null ? '<b>' + vbphrase['tsg_air_assemblingticketinfo'] + '</b><br /><img src="http://www.cheapticketscanada.com/wait.gif" border="0" /><br />' + vbphrase['tsg_air_pleasebepatient'] : '<b>' + vbphrase['tsg_air_errorloadingpage'] + '</b>' ) + '</td></tr></table>';

	if (searchid)
	{
		ldtl = fetch_object('ldtime_low');
		ldth = fetch_object('ldtime_high');
		rdtl = fetch_object('rdtime_low');
		rdth = fetch_object('rdtime_high');
		ldtrl = fetch_object('ldtravel_low');
		ldtrh = fetch_object('ldtravel_high');
		rdtrl = fetch_object('rdtravel_low');
		rdtrh = fetch_object('rdtravel_high');
		pl = fetch_object('price_low');
		ph = fetch_object('price_high');

		if (ldtl != null && ldth != null)
		{
			ldtl = ldtl.options[ldtl.selectedIndex].value;
			ldth = ldth.options[ldth.selectedIndex].value;
		}
		if (rdtl != null && rdth != null)
		{
			rdtl = rdtl.options[rdtl.selectedIndex].value;
			rdth = rdth.options[rdth.selectedIndex].value;
		}
		if (ldtrl != null && ldtrh != null)
		{
			ldtrl = ldtrl.options[ldtrl.selectedIndex].value;
			ldtrh = ldtrh.options[ldtrh.selectedIndex].value;
		}
		if (rdtrl != null && rdtrh != null)
		{
			rdtrl = rdtrl.options[rdtrl.selectedIndex].value;
			rdtrh = rdtrh.options[rdtrh.selectedIndex].value;
		}
		if (pl != null && ph != null)
		{
			pl = pl.options[pl.selectedIndex].value;
			ph = ph.options[ph.selectedIndex].value;
		}


		tsg_ajax_string = 'display=ajax&searchid=' + searchid + ( company != null ? '&company=' + company : '' ) + ( stops != null ? '&stops=' + stops : '' ) + ( wholesale != null ? '&wholesale=' + wholesale : '' ) + ( altdates != null ? '&altdates=' + altdates : '' ) + ( (ldtl != null && ldth != null) ? '&ldtime_low=' + ldtl + '&ldtime_high=' + ldth : '' ) + ( (rdtl != null && rdth != null) ? '&rdtime_low=' + rdtl + '&rdtime_high=' + rdth : '' ) + ( (ldtrl != null && ldtrh != null) ? '&ldtravel_low=' + ldtrl + '&ldtravel_high=' + ldtrh : '' ) + ( (rdtrl != null && rdtrh != null) ? '&rdtravel_low=' + rdtrl + '&rdtravel_high=' + rdtrh : '' ) + ( (pl != null && ph != null) ? '&price_low=' + pl + '&price_high=' + ph : '' ) + ( (orderby != null && direction != null) ? '&orderby=' + orderby + '&direction=' + direction : '' );
		do_tsg_ajax();
	}

	return false;
}
function tsg_ajax_handler()
{
	if (tsgres.handler.readyState == 4 && tsgres.handler.status == 200 && tsgres.handler.responseXML)
	{
		var tsgset = fetch_tags(tsgres.handler.responseXML, 'tsg');
		matrix = tsgres.fetch_data(fetch_tags(tsgset[0], 'matrix')[0]);
		summary = tsgres.fetch_data(fetch_tags(tsgset[0], 'summary')[0]);
		results = tsgres.fetch_data(fetch_tags(tsgset[0], 'results')[0]);
		hasmore = tsgres.fetch_data(fetch_tags(tsgset[0], 'hasmore')[0]);

		fetch_object('narrow_search').innerHTML = ( matrix ? matrix : '' );
		fetch_object('results_info').innerHTML = ( summary ? summary : '' );
		fetch_object('results_box').innerHTML = ( results ? results : '' );

		if (hasmore != 0)
		{
			tsgres.handler.abort();
			do_tsg_ajax();
		}
	}
}
function do_tsg_ajax()
{
	tsgres = new vB_AJAX_Handler(true);
	tsgres.onreadystatechange(tsg_ajax_handler)
	tsgres.send('http://www.cheapticketscanada.com/results.php', tsg_ajax_string);	
}

function fetch_ws_cities()
{
	var firpik = fetch_object('air_depart_city');
	var secpik = fetch_object('air_arrive_city');
	var usearr = wj_combo[firpik.options[firpik.selectedIndex].value];
	secpik.options.length = 0;
	
	for (var i = 0; i < usearr.length; i++)
	{
		secpik.options[i] = new Option(wj_codes[usearr[i]], usearr[i]);
	}
}

var wj_codes = new Object();
wj_codes['YXX'] = 'Abbotsford';
wj_codes['ACY'] = 'Atlantic City';
wj_codes['BGI'] = 'Bridgetown';
wj_codes['SJD'] = 'Cabo San Lucas';
wj_codes['YYC'] = 'Calgary';
wj_codes['CUN'] = 'Cancun';
wj_codes['CCC'] = 'Cayo Coco';
wj_codes['YYG'] = 'Charlottetown';
wj_codes['YQQ'] = 'Comox';
wj_codes['CZM'] = 'Cozumel';
wj_codes['YDF'] = 'Deer Lake';
wj_codes['YEG'] = 'Edmonton';
wj_codes['FLL'] = 'Fort Lauderdale';
wj_codes['YMM'] = 'Fort McMurray';
wj_codes['RSW'] = 'Fort Myers';
wj_codes['FPO'] = 'Freeport';
wj_codes['YQU'] = 'Grande Prairie';
wj_codes['YHZ'] = 'Halifax';
wj_codes['YHM'] = 'Hamilton';
wj_codes['HOG'] = 'Holguin';
wj_codes['HNL'] = 'Honolulu';
wj_codes['ZIH'] = 'Ixtapa Zihuatanejo';
wj_codes['YKA'] = 'Kamloops';
wj_codes['LIH'] = 'Kauai';
wj_codes['YLW'] = 'Kelowna';
wj_codes['YKF'] = 'Kitchener/Waterloo';
wj_codes['KOA'] = 'Kona';
wj_codes['LRM'] = 'La Romana';
wj_codes['LAS'] = 'Las Vegas';
wj_codes['YXU'] = 'London';
wj_codes['LAX'] = 'Los Angeles';
wj_codes['OGG'] = 'Maui (Kahului)';
wj_codes['MZT'] = 'Mazatlan';
wj_codes['MIA'] = 'Miami';
wj_codes['YQM'] = 'Moncton';
wj_codes['MBJ'] = 'Montego Bay';
wj_codes['YUL'] = 'Montréal';
wj_codes['NAS'] = 'Nassau';
wj_codes['EWR'] = 'New York';
wj_codes['MCO'] = 'Orlando';
wj_codes['YOW'] = 'Ottawa';
wj_codes['PSP'] = 'Palm Springs';
wj_codes['PHX'] = 'Phoenix';
wj_codes['YXS'] = 'Prince George';
wj_codes['PLS'] = 'Providenciales';
wj_codes['POP'] = 'Puerto Plata';
wj_codes['PVR'] = 'Puerto Vallarta';
wj_codes['PUJ'] = 'Punta Cana';
wj_codes['YQB'] = 'Quebec City';
wj_codes['YQR'] = 'Regina';
wj_codes['YSJ'] = 'Saint John';
wj_codes['SAN'] = 'San Diego';
wj_codes['SFO'] = 'San Francisco';
wj_codes['YXE'] = 'Saskatoon';
wj_codes['SXM'] = 'St Maarten';
wj_codes['YYT'] = 'St. John\'s';
wj_codes['UVF'] = 'St. Lucia';
wj_codes['YQY'] = 'Sydney';
wj_codes['TPA'] = 'Tampa';
wj_codes['YQT'] = 'Thunder Bay';
wj_codes['YYZ'] = 'Toronto';
wj_codes['YVR'] = 'Vancouver';
wj_codes['VRA'] = 'Varadero';
wj_codes['YYJ'] = 'Victoria';
wj_codes['YWG'] = 'Winnipeg';
wj_codes['YZF'] = 'Yellowknife';

var wj_combo = new Object();
wj_combo['ACY'] = new Array('YXX','YYC','YYG','YEG','YMM','YQU','YHZ','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['BGI'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['CCC'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['CUN'] = new Array('YXX','YYC','YYG','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['CZM'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['EWR'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YLW','YQR','YXE','YVR','YWG');
wj_combo['FLL'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['FPO'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['HNL'] = new Array('YYC','YYG','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQY','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['HOG'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['KOA'] = new Array('YYC','YEG','YMM','YQU','YHZ','YHM','YLW','YXU','YQM','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YWG');
wj_combo['LAS'] = new Array('YXX','YYC','YYG','YQQ','YDF','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YSJ','YXE','YYT','YQY','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['LAX'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YQR','YXE','YYT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['LIH'] = new Array('YYC','YEG','YMM','YQU','YHZ','YHM','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YWG');
wj_combo['LRM'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['MBJ'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['MCO'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['MIA'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['MZT'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YKF','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['NAS'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['OGG'] = new Array('YYC','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YWG','YZF');
wj_combo['PHX'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YUL','YOW','YXS','YQR','YXE','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['PLS'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['POP'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['PSP'] = new Array('YXX','YYC','YYG','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YUL','YOW','YXS','YQR','YXE','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['PUJ'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['PVR'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YKA','YLW','YKF','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['RSW'] = new Array('YXX','YYC','YYG','YEG','YMM','YHZ','YKA','YLW','YQM','YUL','YOW','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['SAN'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YXU','YQM','YUL','YOW','YQR','YXE','YYT','YQY','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['SFO'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YHM','YLW','YXU','YQM','YUL','YOW','YXS','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['SJD'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YKF','YXU','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['SXM'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['TPA'] = new Array('YXX','YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['UVF'] = new Array('YYC','YYG','YQQ','YEG','YMM','YQU','YHZ','YLW','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['VRA'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['YDF'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YKA','YLW','LAS','YUL','YOW','YQR','YXE','YQT','YYZ','YVR','YYJ','YWG','YZF');
wj_combo['YEG'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YHM'] = new Array('YXX','SJD','YYC','CUN','YQQ','YEG','YMM','YQU','YHZ','HNL','ZIH','YKA','LIH','YLW','KOA','LAS','LAX','OGG','MZT','YQM','MCO','PSP','PHX','YXS','PVR','PUJ','YQR','SAN','SFO','YXE','YYT','YVR','YYJ','YWG','YZF');
wj_combo['YHZ'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YQQ','CZM','YEG','FLL','YMM','RSW','FPO','YQU','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','SAN','SFO','YXE','SXM','YYT','UVF','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YKA'] = new Array('YXX','BGI','SJD','YYC','CUN','CCC','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','LIH','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','PLS','POP','PVR','PUJ','YQR','SAN','SAN','YXE','SXM','YYT','UVF','TPA','YYZ','YVR','VRA','YYJ','YWG');
wj_combo['YKF'] = new Array('YXX','SJD','YYC','YQQ','YEG','YMM','YLW','MZT','PVR','YQR','YXE','YVR','YYJ');
wj_combo['YLW'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','LIH','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YMM'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YOW'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','YQM','MBJ','NAS','MCO','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YQB'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','HOG','HNL','ZIH','YLW','KOA','LRM','LAS','OGG','MZT','MIA','YQM','MCO','YOW','YXS','PLS','POP','PVR','PUJ','YQR','YXE','SXM','YYT','UVF','YQY','YQT','YYZ','YYZ','YVR','VRA','YYJ','YWG');
wj_combo['YQM'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YQQ','CZM','YEG','FLL','YMM','RSW','FPO','YQU','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','MBJ','YUL','NAS','MCO','YOW','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YXE','SXM','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG');
wj_combo['YQQ'] = new Array('BGI','SJD','YYC','CCC','YYG','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','ZIH','YLW','YKF','LRM','LAS','YXU','LAX','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PHX','PLS','POP','PVR','PUJ','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','VRA','YWG','YZF');
wj_combo['YQR'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YSJ','SAN','SFO','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YQT'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','MCO','YOW','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','YXE','SXM','YYT','UVF','YQY','TPA','YYZ','YVR','VRA','YYJ','YWG');
wj_combo['YQU'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YQY'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','HNL','YLW','LAS','OGG','YUL','YOW','YXS','YQB','YQR','SAN','YXE','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['YSJ'] = new Array('YXX','YYC','YEG','YMM','YQU','LAS','YUL','MCO','YOW','YXS','YXE','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['YUL'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','YQM','MBJ','NAS','MCO','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YVR'] = new Array('ACY','BGI','SJD','YYC','CUN','CCC','YYG','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','VRA','YWG','YZF');
wj_combo['YWG'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YZF');
wj_combo['YXE'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YSJ','SAN','SFO','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YXS'] = new Array('ACY','BGI','SJD','YYC','CUN','CCC','YYG','YYG','CZM','YDF','YEG','FLL','YMM','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','LIH','YLW','YKF','KOA','LRM','LAS','YXU','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YWG','YZF');
wj_combo['YXU'] = new Array('YXX','SJD','YYC','YQQ','YEG','YMM','YQU','HNL','YKA','LIH','YLW','KOA','LAS','LAX','OGG','MZT','MCO','PSP','PHX','YXS','PVR','YQR','SAN','SFO','YXE','YVR','YYJ','YWG');
wj_combo['YXX'] = new Array('ACY','BGI','SJD','YYC','CUN','CCC','YYG','CZM','YDF','YEG','FLL','YMM','RSW','RSW','FPO','YQU','YHZ','YHM','HOG','ZIH','YKA','YLW','YKF','LRM','LAS','YXU','LAX','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','VRA','YWG','YZF');
wj_combo['YYC'] = new Array('YXX','ACY','BGI','SJD','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','YKF','KOA','LRM','LAS','YXU','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','EWR','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YYG'] = new Array('YXX','ACY','YYC','CUN','CCC','YQQ','CZM','YEG','FLL','YMM','RSW','FPO','YQU','HOG','HNL','YLW','LRM','LAS','OGG','MZT','MIA','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','YXS','PLS','PVR','PUJ','YQB','YQR','YXE','SXM','UVF','TPA','YQT','YYZ','YVR','YYJ','YWG');
wj_combo['YYJ'] = new Array('ACY','BGI','SJD','YYC','CUN','CCC','YYG','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','YLW','YKF','LRM','LAS','YXU','LAX','MZT','MIA','YQM','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YYZ','VRA','YWG','YZF');
wj_combo['YYT'] = new Array('YXX','ACY','BGI','YYC','CUN','CCC','YQQ','CZM','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','YHM','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','MBJ','YUL','NAS','MCO','YOW','YXS','PLS','POP','PVR','PUJ','YQB','YQR','SFO','YXE','SXM','UVF','TPA','YQT','YYZ','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YYZ'] = new Array('YXX','ACY','BGI','SJD','YYC','CUN','CCC','YYG','YQQ','CZM','YDF','YEG','FLL','YMM','RSW','FPO','YQU','YHZ','HOG','HNL','ZIH','YKA','LIH','YLW','KOA','LRM','LAS','LAX','OGG','MZT','MIA','YQM','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQB','YQR','YSJ','SAN','SFO','YXE','SXM','YYT','UVF','YQY','TPA','YQT','YVR','VRA','YYJ','YWG','YZF');
wj_combo['YZF'] = new Array('YXX','BGI','SJD','YYC','CUN','CCC','YQQ','CZM','YDF','YEG','FLL','YMM','FPO','YQU','YHZ','YHM','HOG','HNL','YLW','LRM','LAS','LAX','OGG','MZT','MIA','MBJ','YUL','NAS','MCO','YOW','PSP','PHX','YXS','PLS','POP','PVR','PUJ','YQR','YXE','SXM','YYT','UVF','TPA','YYZ','YVR','VRA','YYJ','YWG');
wj_combo['ZIH'] = new Array('YXX','YYC','YQQ','YEG','YMM','YQU','YHZ','YHM','YKA','YLW','YQM','YUL','YOW','YXS','YQB','YQR','YXE','YYT','YQT','YYZ','YVR','YYJ','YWG');