﻿var cityPairData;

	function showFlights(){
		document.getElementById("flights").style.visibility='visible';
		document.getElementById("packages").style.visibility='hidden';
		document.getElementById("cars").style.visibility='hidden';
		if (document.getElementById("deals")){
			document.getElementById("deals").style.visibility='hidden';
		}
		if (document.getElementById("vacations")){
			document.getElementById("vacations").style.visibility='hidden';
		}
	}
	function showPackages(){
		document.getElementById("packages").style.visibility='visible';
		document.getElementById("flights").style.visibility='hidden';
		document.getElementById("cars").style.visibility='hidden';
		if (document.getElementById("deals")){
			document.getElementById("deals").style.visibility='hidden';
		}
		if (document.getElementById("vacations")){
			document.getElementById("vacations").style.visibility='hidden';
		}
		checkCP('pkg');
	}
	function showCars(){
		document.getElementById("packages").style.visibility='hidden';
		document.getElementById("flights").style.visibility='hidden';
		document.getElementById("cars").style.visibility='visible';
		if (document.getElementById("deals")){
			document.getElementById("deals").style.visibility='hidden';
		}
		if (document.getElementById("vacations")){
			document.getElementById("vacations").style.visibility='hidden';
		}
	}
	function showDeals(){
		document.getElementById("packages").style.visibility='hidden';
		document.getElementById("flights").style.visibility='hidden';
		document.getElementById("cars").style.visibility='hidden';
		document.getElementById("deals").style.visibility='visible';
		if (document.getElementById("vacations")){
			document.getElementById("vacations").style.visibility='hidden';
		}
	}
	function showVacations(){
		document.getElementById("packages").style.visibility='hidden';
		document.getElementById("flights").style.visibility='hidden';
		document.getElementById("cars").style.visibility='hidden';
		document.getElementById("vacations").style.visibility='visible';
		if (document.getElementById("deals")){
			document.getElementById("deals").style.visibility='hidden';
		}
	}
	
	function searchFlights(form){
		if (document.getElementById("flightFrom").value.length == 0){
			window.alert("Please enter a flight origin.");
			return;
		}
		if (document.getElementById("flightTo").value.length == 0){
			window.alert("Please enter a flight destination.");
			return;
		}
		var flightFrom = document.getElementById("flightFrom").value;
		var flightTo = document.getElementById("flightTo").value;
		var numAdults = document.getElementById("flightNumAdults").value;
		var flightDepart = document.getElementById("flightDepart").value;
		if (!validateUSDate(flightDepart)){
			window.alert("Invalid Departure Date.");
			return;
		}
		flightDepart = flightDepart.replace("/","-");
		flightDepart = flightDepart.replace("/","-");
		flightDepart = flightDepart.replace('.','-');
		flightDepart = flightDepart.replace('.','-');

		var depArr = flightDepart.split("-");
		for (x in depArr){
			if (depArr[x].length < 2){
				depArr[x] = "0" + depArr[x];
			}
		}
		flightDepart = depArr.join("-");

		var flightReturn = document.getElementById("flightReturn").value;
		if (!validateUSDate(flightReturn)){
			window.alert("Invalid Return Date.");
			return;
		}
		flightReturn = flightReturn.replace('/','-');
		flightReturn = flightReturn.replace('/','-');
		flightReturn = flightReturn.replace('.','-');
		flightReturn = flightReturn.replace('.','-');

		var retArr = flightReturn.split("-");
		for (x in retArr){
			if (retArr[x].length < 2){
				retArr[x] = "0" + retArr[x];
			}
		}
		flightReturn = retArr.join("-");

		var tmpDepartDate = new Date();
		tmpDepartDate.setFullYear(depArr[2], depArr[0]-1, depArr[1]);
		var tmpReturnDate = new Date();
		tmpReturnDate.setFullYear(retArr[2], retArr[0]-1, retArr[1]);

		if (tmpDepartDate>tmpReturnDate){
			window.alert("Your Return Date Must Be After Your Departure Date");
			return;
		}

		for (var i = 0; i < form.elements.length; i++){
			if (form.elements[i].type == 'checkbox'){
				if (form.elements[i].checked){
					switch (form.elements[i].id){
						case 'flightHotWire':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/hotwire-air/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightpriceline':
							var sDate = new String(tmpDepartDate.getFullYear());
							var eDate = new String(tmpReturnDate.getFullYear());
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/priceline-air/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightOrbitz':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/orbitz-air/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightcheapTickets':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/cheaptickets/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightExpedia':
							var sDate = new String(tmpDepartDate.getFullYear());
							var eDate = new String(tmpReturnDate.getFullYear());
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/expedia/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightAmerican':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/american/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightCheapO':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/cheapo/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightOneTravel':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/onetravel/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightAirFare':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/airfare/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;
						case 'flightTravelTicker':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/travelticker-air/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;							
						case 'flightTravelocity':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/air/travelocity-air/' + flightFrom + '/' + flightTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0');
							break;	
					}
				}
			}
		}
	}

	function searchPackages(form){
		var gotChecked = false;
		for (var i = 0; i < form.elements.length; i++){
			if (form.elements[i].type == 'checkbox'){
				if (form.elements[i].checked){
					gotChecked = true;
					break;
				}
			}
		}
		if (gotChecked == false){
			document.getElementById("pkgAlert").innerHTML = "Please select a provider to search.";
			document.getElementById("pkgAlert").style.display = "block";
		}
		else{
			document.getElementById("pkgAlert").style.display = "none";
		}
	
		var pkgFrom = document.getElementById("packageFrom").value; 
		var pkgTo = document.getElementById("packageTo").value;
		var numAdults = document.getElementById("packageNumAdults").value;
		var pkgDepart = document.getElementById("packageDepart").value; 
		var numChildren = document.getElementById("packageNumChildren").value;
		var numRooms = document.getElementById("packageNumRooms").value;
		if (!validateUSDate(pkgDepart)){
			window.alert("Invalid Departure Date.");
			return;
		}
		pkgDepart = pkgDepart.replace("/","-");
		pkgDepart = pkgDepart.replace("/","-");
		pkgDepart = pkgDepart.replace('.','-');
		pkgDepart = pkgDepart.replace('.','-');

		var depArr = pkgDepart.split("-");
		for (x in depArr){
			if (depArr[x].length < 2){
				depArr[x] = "0" + depArr[x];
			}
		}
		pkgDepart = depArr.join("-");

		var pkgReturn = document.getElementById("packageReturn").value;
		if (!validateUSDate(pkgReturn)){
			window.alert("Invalid Return Date.");
			return;
		}
		pkgReturn = pkgReturn.replace('/','-');
		pkgReturn = pkgReturn.replace('/','-');
		pkgReturn = pkgReturn.replace('.','-');
		pkgReturn = pkgReturn.replace('.','-');

		var retArr = pkgReturn.split("-");
		for (x in retArr){
			if (retArr[x].length < 2){
				retArr[x] = "0" + retArr[x];
			}
		}
		pkgReturn = retArr.join("-");

		var tmpDepartDate = new Date();
		tmpDepartDate.setFullYear(depArr[2], parseInt(depArr[0])-1, depArr[1]);
		var tmpReturnDate = new Date();
		tmpReturnDate.setFullYear(retArr[2], parseInt(retArr[0])-1, retArr[1]);
		
		if (tmpDepartDate>tmpReturnDate){
			window.alert("Your Return Date Must Be After Your Departure Date");
			return;
		}
		
		// make sure the departure date is 2 days out from today
		var today  = new Date();
		if (Math.floor((tmpDepartDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24)) < 3){
			window.alert("Departing date must be at least 2 days away.");
			return;
		}

		checkCP('pkg');
		/*if (document.getElementById("vendorAAV").style.visibility == "hidden"){
			return;
		}*/

		// check the number of children - and get their ages
		var child1Age = 0;
		var child2Age = 0;
		var child3Age = 0;

		switch (numChildren){
			case '1':
				child1Age = document.getElementById("packageChildOneAge").value;
				if (child1Age == '0'){
					window.alert("Please select an age for Child 1.");
					return;
				}
				if (child1Age == '1'){
					window.alert("Please call our Reservation Specialists at 1-800-321-2121 to book a child under the age of 2.");
					return;
				}
				break;
			case '2':
				child1Age = document.getElementById("packageChildOneAge").value;
				child2Age = document.getElementById("packageChildTwoAge").value;
				if (child1Age == '0'){
					window.alert("Please select an age for Child 1.");
					return;
				}
				if (child2Age == '0'){
					window.alert("Please select an age for Child 2.");
					return;
				}
				if (child1Age == '1' || child2Age == '1'){
					window.alert("Please call our Reservation Specialists at 1-800-321-2121 to book a child under the age of 2.");
					return;
				}
				break;
			case '3':
				child1Age = document.getElementById("packageChildOneAge").value;
				child2Age = document.getElementById("packageChildTwoAge").value;
				child3Age = document.getElementById("packageChildThreeAge").value;
				if (child1Age == '0'){
					window.alert("Please select an age for Child 1.");
					return;
				}
				if (child2Age == '0'){
					window.alert("Please select an age for Child 2.");
					return;
				}
				if (child3Age == '0'){
					window.alert("Please select an age for Child 3.");
					return;
				}
				if (child1Age == '1' || child2Age == '1' || child3Age == '1'){
					window.alert("Please call our Reservation Specialists at 1-800-321-2121 to book a child under the age of 2.");
					return;
				}
				break;
		}
		for (var i = 0; i < form.elements.length; i++){
			if (form.elements[i].type == 'checkbox'){
				if (form.elements[i].checked){
					switch (form.elements[i].id){
						case 'packageAAV':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/aav/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
						case 'packageCheapCarib':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/cheapcarib/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
						case 'packageTravelocity':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/travelocity-pkg/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
						case 'packageOrbitz':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/orbitz-pkg/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
						case 'packageHotWire':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/hotwire-pkg/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
						case 'packageTravelTicker':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/package/travelticker-pkg/' + pkgFrom + '/' + pkgTo + '/' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/' + numAdults + '/0/0/' + numChildren + '/' + numRooms + '/' + child1Age + '/' + child2Age + '/' + child3Age);
							break;
					}
				}
			}
		}
	}

	function searchCars(form){
		var pickupLocation = document.getElementById("carLocation").value;
		var carPickDate = document.getElementById("carPickUp").value;
		var carDropOffDate = document.getElementById("carDropOff").value;
		var carPickupTime; // = document.getElementById("carDropPickup").selectedValue;
		var carDropOffTime; // = document.getElementById("carDropDropOff").selectedValue;

		if (!validateUSDate(carPickDate)){
			window.alert("Invalid Pick up Date.");
			return;
		}

		if (!validateUSDate(carDropOffDate)){
			window.alert("Invalid Drop off Date.");
			return;
		}
		
		var myindex  = document.getElementById("carDropPickup").selectedIndex;
		carPickupTime = document.getElementById("carDropPickup").options[myindex].value;
		myindex  = document.getElementById("carDropDropOff").selectedIndex;
		carDropOffTime = document.getElementById("carDropDropOff").options[myindex].value;
		
		carPickDate = carPickDate.replace("/","-");
		carPickDate = carPickDate.replace("/","-");
		carPickDate = carPickDate.replace('.','-');
		carPickDate = carPickDate.replace('.','-');
		
		carDropOffDate = carDropOffDate.replace("/","-");
		carDropOffDate = carDropOffDate.replace("/","-");
		carDropOffDate = carDropOffDate.replace('.','-');
		carDropOffDate = carDropOffDate.replace('.','-');
		
		var depArr = carPickDate.split("-");
		for (x in depArr){
			if (depArr[x].length < 2){
				depArr[x] = "0" + depArr[x];
			}
		}
		carPickDate = depArr.join("-");
		
		var retArr = carDropOffDate.split("-");
		for (x in retArr){
			if (retArr[x].length < 2){
				retArr[x] = "0" + retArr[x];
			}
		}
		carDropOffDate = retArr.join("-");
		
		var tmpDepartDate = new Date();
		tmpDepartDate.setFullYear(depArr[2], depArr[0]-1, depArr[1]);
		var tmpReturnDate = new Date();
		tmpReturnDate.setFullYear(retArr[2], retArr[0]-1, retArr[1]);

		if (tmpDepartDate>tmpReturnDate){
			window.alert("Your Return Date Must Be After Your Departure Date");
			return;
		}

		var tmpDDate = tmpDepartDate.getMonth() + 1;
		if (tmpDDate < 10){
			tmpDDate = "0" + tmpDDate;
		}
		var tmpRDate = tmpReturnDate.getMonth() + 1;
		if (tmpRDate < 10){
			tmpRDate = "0" + tmpRDate;
		}

		for (var i = 0; i < form.elements.length; i++){
			if (form.elements[i].type == 'checkbox'){
				if (form.elements[i].checked){
					switch (form.elements[i].id){
						case 'carsOrbitz':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/car/orbitz-car/' + pickupLocation + '/ /' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/0/' + carPickupTime + '/' + carDropOffTime);
							break;
						case 'carsTravelocity':
							window.open('http://travel.travelocity.com/car/PostFrontDoor.do?Service=TRAVELOCITY&rdoLocPickup=pu_air&pickupTime=' + carPickupTime + '&dropoffTime=' + carDropOffTime + '&pickupCity=' + pickupLocation + '&pickupMonth=' + (tmpDepartDate.getMonth() + 1) + '&pickupDayOfMonth=' + tmpDepartDate.getDate() + '&dropoffMonth=' + (tmpReturnDate.getMonth() + 1) + '&dropoffDayOfMonth=' + tmpReturnDate.getDate() + '&WA1=03010&WA2=212407602&WA3=33786388&WA4=0&WA5=1653085&WA6=341361;');
							break;
						case 'carsExpedia':
							window.open('http://www.expedia.com/pub/agent.dll?qscr=cars&dagv=1&subm=1&fdrp=1&locn=' + pickupLocation + '&date1=' + (tmpDepartDate.getMonth() + 1) + '/' + tmpDepartDate.getDate() + '/' + tmpDepartDate.getFullYear() + '&date2=' + (tmpReturnDate.getMonth() + 1) + '/' + tmpReturnDate.getDate() + '/' + tmpReturnDate.getFullYear() + '&vend=&time1=720&time2=720&ttyp=2&acop=2&rdct=1')
							break;
						case 'carsCarRentals':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/car/carrentals/' + pickupLocation + '/ /' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/0/' + carPickupTime + '/' + carDropOffTime);
							break;
						case 'carsHotwire':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/car/hotwire-car/' + pickupLocation + '/ /' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/0/' + carPickupTime + '/' + carDropOffTime);
							break;
						case 'carsTravelTicker':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/car/travelticker-car/' + pickupLocation + '/ /' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/0/' + carPickupTime + '/' + carDropOffTime);
							break;
						case 'carsPriceline':
							window.open('http://' + document.getElementById("sourceURL").value + '/amid/car/priceline-car/' + pickupLocation + '/ /' + tmpDepartDate.getFullYear() + '-' + (tmpDepartDate.getMonth()+1) + '-' + tmpDepartDate.getDate() + '/' + tmpReturnDate.getFullYear() + '-' + (tmpReturnDate.getMonth()+1) + '-' + tmpReturnDate.getDate() + '/0/' + carPickupTime + '/' + carDropOffTime);
							break;
					}
				}
			}
		}
	}

	function get3CharMonthName(inMonthNum){
		switch(inMonthNum){
			case 0:
				return 'Jan';
				break;
			case 1:
				return 'Feb';
				break;
			case 2:
				return 'Mar';
				break;
			case 3:
				return 'Apr';
				break;
			case 4:
				return 'May';
				break;
			case 5:
				return 'Jun';
				break;
			case 6:
				return 'Jul';
				break;
			case 7:
				return 'Aug';
				break;
			case 8:
				return 'Sep';
				break;
			case 9:
				return 'Oct';
				break;
			case 10:
				return 'Nov';
				break;
			case 11:
				return 'Dec';
				break;				
		}
	}
	
	
	function validateUSDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only
    valid dates with 2 digit month, 2 digit day,
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //check to see if in correct format
  if(!objRegExp.test(strValue))
    return false; //doesn't match pattern, bad date
  else{
    var strSeparator = strValue.substring(2,3) 
    var arrayDate = strValue.split(strSeparator); 
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, 
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31}
    var intDay = parseInt(arrayDate[1],10); 

    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }
  }  
  return false; //any other values, bad date
}

function tswFetchedDataInfoCallback(inObj){
	cityPairData = inObj;
}

function checkCP(inType){
	switch (inType){
		case "pkg":
			var providerArr = new Array();
			var provCount = 0;

			if (document.getElementById("packageAAV")!=null){
				if (document.getElementById("packageAAV").checked){
					providerArr[provCount] = "vendorAAV";
					provCount = provCount + 1;
				}
			}
			if (document.getElementById("packageCheapCarib")!=null){
				if (document.getElementById("packageCheapCarib").checked){
					providerArr[provCount] = "vendorCheapCarib";
					provCount = provCount + 1;
				}
			}

			if (providerArr.length > 0){
				var providerMisMatch = "";
				for (i = 0; i <= providerArr.length - 1; i++){
					var providerName;
					var checkName;
					var providerTag = providerArr[i];
					var providerID = 0;

					switch (providerTag){
						case "vendorAAV":
							providerID = 12371;
							providerName = "American Airlines Vacations";
							checkName = "packageAAV";
							break;
						case "vendorCheapCarib":
							providerID = 12430;
							providerName = "Cheap Caribbean";
							checkName = "packageCheapCarib";
							break;
					}

					if (document.getElementById("packageFrom").value.length > 0 && document.getElementById("packageTo").value.length > 0){
						if (parseInt(providerID) > 0){
							if (cityPairData[document.getElementById("packageFrom").value.toUpperCase()]){
								if (cityPairData[document.getElementById("packageFrom").value.toUpperCase()][document.getElementById("packageTo").value.toUpperCase()]){
									if (!cityPairData[document.getElementById("packageFrom").value.toUpperCase()][document.getElementById("packageTo").value.toUpperCase()][providerID]){
										//document.getElementById(providerTag).style.visibility = "hidden";
										document.getElementById(checkName).checked=false;
										if (providerMisMatch.length > 0){
											providerMisMatch = providerMisMatch + ' and ';
										}
										providerMisMatch = providerMisMatch + providerName;
										document.getElementById("packageTo").focus();
									}
									else{
										//document.getElementById(providerTag).style.visibility = "visible";
										document.getElementById("pkgAlert").style.display = "none";
									}
								}
								else{
									//document.getElementById(providerTag).style.visibility = "hidden";
									document.getElementById(checkName).checked=false;
									if (providerMisMatch.length > 0){
										providerMisMatch = providerMisMatch + ' and ';
									}
									providerMisMatch = providerMisMatch + providerName;
									document.getElementById("packageTo").focus();
								}
							}
							else{
								//document.getElementById(providerTag).style.visibility = "hidden";
								document.getElementById(checkName).checked=false;
								if (providerMisMatch.length > 0){
									providerMisMatch = providerMisMatch + ' and ';
								}
								providerMisMatch = providerMisMatch + providerName;
								document.getElementById("packageFrom").focus();
							}
						}
					}
					else{
						document.getElementById(providerTag).style.visibility = "visible";
						document.getElementById("pkgAlert").style.display = "none";
					}
				}
				if (providerMisMatch.length > 0){
					if (document.getElementById("packageFrom").value.length > 3){
						document.getElementById("pkgAlert").innerHTML = "We couldn't find the city you were looking for - please try a specific 3 character airport code.";
						document.getElementById("packageFrom").focus();
					}
					else if (document.getElementById("packageTo").value.length > 3){
						document.getElementById("pkgAlert").innerHTML = "We couldn't find the city you were looking for - please try a specific 3 character airport code.";
						document.getElementById("packageTo").focus();
					}
					else {
						document.getElementById("pkgAlert").innerHTML = "The city codes you have entered are not valid for " + providerMisMatch + ".";
					}
					document.getElementById("pkgAlert").style.display = "block";
				}
			}
			break;
	}
}

function checkPkgCP(){
	checkCP('pkg');
}

function showChildAgeFields(inType){
	switch(inType){
		case "pkg":
			var childCount = document.getElementById("packageNumChildren").value;
			if (childCount > 0){
				document.getElementById("caRow").style.display = "block";
				switch(childCount){
					case '1':
						document.getElementById("packageAgeOne").style.display = "block";
						document.getElementById("packageAgeTwo").style.display = "none";
						document.getElementById("packageAgeThree").style.display = "none";
						break;
					case '2':
						document.getElementById("packageAgeOne").style.display = "block";
						document.getElementById("packageAgeTwo").style.display = "block";
						document.getElementById("packageAgeThree").style.display = "none";
						break;
					case '3':
						document.getElementById("packageAgeOne").style.display = "block";
						document.getElementById("packageAgeTwo").style.display = "block";
						document.getElementById("packageAgeThree").style.display = "block";
						break;
				}
			}
			else{
				document.getElementById("caRow").style.display="none";
			}
			break;
	}
}
