// JavaScript Document

 function Init()
	{
		//reset page with values from cookie
		var j,k;

		//hotel check in
		cookievalue = GetCookie('cookie_tbCheckInHotelReq');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('tbCheckInHotelReq').value = cookievalue;
		}
		//hotel checkout
		cookievalue = GetCookie('cookie_tbCheckOutHotelReq');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('tbCheckOutHotelReq').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_airdateout');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('airdateout').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_airdateret');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('airdateret').value = cookievalue;
		}
	    
		cookievalue = GetCookie('cookie_cbairtocity');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('cbairtocity').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_cbDest');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('cbDest').value = cookievalue;
		}
	    
		if (document.getElementById('shopType').value == 'AL')
		{    cookievalue = GetCookie('cookie_cbDepart'); }
		else if(document.getElementById('shopType').value == 'A')
		{
			cookievalue = GetCookie('cookie_cbDepartAIRONLY');
		}
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('cbDepart').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_productcode');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('productcode').value = cookievalue;
		}
	    
		cookievalue = GetCookie('cookie_aircarrier');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('aircarrier').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_aircabinclass');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('aircabinclass').value = cookievalue;
		}
	    
		cookievalue = GetCookie('cookie_txthotelpref');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('txthotelpref').value = cookievalue;
		}
	        
		cookievalue = GetCookie('cookie_airfaretype');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('airfaretype').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_airpreference');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('airpreference').value = cookievalue;
		}
	    
		cookievalue = GetCookie('cookie_selNumRooms');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('selNumRooms').value = cookievalue;
		}
		cookievalue = GetCookie('cookie_numnights1');
		if (cookievalue && cookievalue != '')
		{
			document.getElementById('numnights1').value = cookievalue;
		}   
	    
	    
	//    cookievalue = GetCookie('cookie_showadvance');
	//    if (cookievalue && cookievalue != '')
	//    {
	//        if (cookievalue.toUpperCase() == 'Y')
	//        {   document.getElementById('adv').style.display = '';  }
	//        else
	//        {   document.getElementById('adv').style.display = 'none';  }    
	//    }

		//put back the number of passengers in each room.
		cookievalue = GetCookie('cookie_adtineachroom');
		if (cookievalue && cookievalue != '')
		{
			for (j = 0; j < cookievalue.split(',').length; j++)
			{
				if (document.getElementsByName('numadts') && document.getElementsByName('numadts').length > j)
				{
					document.getElementsByName('numadts').item(j).value = cookievalue.split(',')[j];
				}
			}
		}
		//put back the number of passengers in each room.
		cookievalue = GetCookie('cookie_chdineachroom');
		if (cookievalue && cookievalue != '')
		{
			for (j = 0; j < cookievalue.split(',').length; j++)
			{
				if (document.getElementsByName('numchds') && document.getElementsByName('numchds').length > j)
				{
					document.getElementsByName('numchds').item(j).value = cookievalue.split(',')[j];
				}
			}
		}
		//set the children ages.    
		k = 0;
		j = 0; //max of 3 children each room.
		for (k = 1; k < 4; k++)
		{
			cookievalue = GetCookie('cookie_chd' + k + 'ages');
			if (cookievalue != null && cookievalue && cookievalue != '')
			{
				for (j = 0; j < cookievalue.split(',').length; j++)
				{
					if (document.getElementsByName('chd' + k + 'age') && document.getElementsByName('chd' + k + 'age').length > j)
					{
						document.getElementsByName('chd' + k + 'age').item(j).value = cookievalue.split(',')[j];
					}
				}
			}
		}
	    
		setReturnDate(document.getElementById('tbCheckInHotelReq'), document.getElementById('tbCheckOutHotelReq'));
	    
		//room info.
		updateRooms();

	    
		var cookievalue = GetCookie('cookie_shoptype');
		if (cookievalue && cookievalue != '')
		{
			setShopType(cookievalue);
		}
	        
		setTimeout("setAdvancedOptions()", 100);
	    
	var pcodes = new Array();
	var origcities = new Array();
	var destcities = new Array();
	var calwin;
}

//Set the destination and departure airports based on the selected product code
function loadaircities()
{
    var i;
    var j;
    var airInc;
    
    i = 0;
    j = 0;

    airInc = true;
    //Go through each record and check product code
    for(i = 0; i < pcodes.length; i++)
    {
        if(pcodes[i][0] == document.getElementById('productcode').value)
        {
            if(pcodes[i][1] != 'Y') //Air Not Included, set flag
            {
                airInc = false;
            }
        }
    }
    
    if(airInc)
    {  //We have Air Included, show the Air table
    //alert('airInc');
       show('trair1-2', null, '', '');
        
        document.getElementById('cbDepart').options.length = 0;
        document.getElementById('cbDepart').options[0] = new Option('- Select Departure City -', '');
        j = 1;
    
        //Go through each record in the departure cities array and check the product code
        for(i = 0; i < origcities.length; i++)
        {
            if(origcities[i][0] == document.getElementById('productcode').value)
            {
                document.getElementById('cbDepart').options[j] = new Option(origcities[i][2], origcities[i][1]);
                j++;
            }
        }
        //If no departure cities found
        if(j == 1)
        {
            document.getElementById('cbDepart').options[j] = new Option('- No departure cities found -', '');
        }
    
        //Go through each record in the destination cities array and set the cbDest element
        for(i = 0; i < destcities.length; i++)
        {
            if(destcities[i][0] == document.getElementById('productcode').value)
            {
                document.getElementById('cbDest').value = destcities[i][1];
            }
        }
     }
     else
     { //There is no Air Included, don't show the Air table
        hide('trair1-2', null, '', '');
        //Uncheck the Air box just to make sure
        document.getElementById('chkAir').checked = false;
        hide('airdates');
        show('landdates');
     }
}

//This function verifies user input before submitting the form
function checkInput()
{
	//alert('Checking input.');
	//alert('Country: ' + document.getElementById('cbCountryHotelReq').value);
	//alert('Product Code: ' + document.getElementById('cbProductCodeHotelReq').value);
	//alert('cbCountryHotelReq: ' + document.getElementById('cbCountryHotelReq').value);
	//alert('cbProductCodeHotelReq: ' + document.getElementById('cbProductCodeHotelReq').value);
	
    var maxDate = new Date();
    var depDate = new Date();
    var strAirports;
             
    maxDate.setDate(maxDate.getDate() + 330);
    //get departure date
    depDate = new Date(document.getElementById('tbCheckInHotelReq').value);
    if (document.getElementById('chkAir').checked && new Date(depDate.toString()) > new Date(maxDate.toString()))
    {
        alert('Air reservations may be completed no more than 11 months prior to the date of travel. For travel more than 11 months prior, please call Vacation Express at (800) 682-3333.');
        return false;
    }
    
    //make sure that if the advanced options are hidden, the values are clear so that we don't shop the hidden options
    //alert('Avdanced View:  ' + document.getElementById('adv').style.display);
//    if(document.getElementById('adv').style.display == 'none')
//    {
//        //alert('Advanced Hidden!');
//      if(document.getElementById('txthotelpref')){document.getElementById('txthotelpref').value='';}
//      if(document.getElementById('aircarrier')){document.getElementById('aircarrier').selectedIndex=0;}
//      if(document.getElementById('aircabinclass')){document.getElementById('aircabinclass').selectedIndex=0;}
//      if(document.getElementById('airfaretype')){document.getElementById('airfaretype').selectedIndex=0;}
//      if(document.getElementById('airpreference')){document.getElementById('airpreference').selectedIndex=0;}
//      //if(document.getElementById('flexdates')){document.getElementById('flexdates').selectedIndex=0;}      
//    }
    
	//Build the mask
	if (!buildMask())
	    return;

	//Set the air input fields
	if (document.getElementById('shopType').value == 'A')
	{
	    if (document.getElementById('cbairtocity').value == '')
	    {
	        alert('Please select a destination city to continue');
	        return;
	    }
	    document.getElementById('airtocity').value = document.getElementById('cbairtocity').value;
	    //if they're doing aironly and are DIRECT then make sure we shop BLOCKONLY!
	    if (document.getElementById('usertype').value.toUpperCase() == 'DIRECT')
	        document.getElementById('blockonly').value = 'Y';
	}
	else
	{
	    if (document.getElementById('productcode').value == '')
	    {
	        alert('Please select a destination to continue');
	        return;
	    }
	    if (document.getElementById('airtocity'))
	        document.getElementById('airtocity').value = document.getElementById('cbDest').value;
	}
	document.getElementById('airfromcity').value = document.getElementById('cbDepart').value;
	document.getElementById('airdateout').value = document.getElementById('tbCheckInHotelReq').value;
	document.getElementById('airdateret').value = document.getElementById('tbCheckOutHotelReq').value;
	
	//document.getElementById('aircabinclass').value = document.getElementById('cbcabin').value;
	//document.getElementById('aircarrier').value = document.getElementById('cbcarrier').value;
	///document.getElementById('airfaretype').value = document.getElementById('cbairfaretype').value;
	
	if(document.getElementById('chkAir').value == 'Y' && document.getElementById('cbDepart').value == '')
	{
	    alert('Please select departure airport to continue.');
	    return;
	}
	
	var depdate = new Date(document.getElementById('tbCheckInHotelReq').value);
	if (depdate < new Date())
	{
	    alert('You cannot book past dates');
	    return false;
	}
	if (depdate < new Date ('1 Jan 2009'))
	{
	    alert('To book departures traveling in 2008, please contact our call center at 800-635-1836');
	    return false;
	}
	
	//remembers advance tabe expanded/!expanded with cookie   //function SetCookie( name, value, expires, path, domain, secure )
    if (document.getElementById('adv').style.display == 'none')
    {   SetCookie('cookie_showadvance', 'N',30,'','','');    }
    else
    {   SetCookie('cookie_showadvance', 'Y',30,'','','');    }
    //origination airport
    if (document.getElementById('airfromcity').value != '')
    {   SetCookie('cookie_airfromcity', document.getElementById('airfromcity').value ,30,'','','');   }
    //remember shop parameters by cookie.
    SetCookie('cookie_tbCheckInHotelReq', document.getElementById('tbCheckInHotelReq').value ,30,'','','');
    SetCookie('cookie_tbCheckOutHotelReq', document.getElementById('tbCheckOutHotelReq').value ,30,'','','');
    SetCookie('cookie_airdateout', document.getElementById('airdateout').value ,30,'','','');
    SetCookie('cookie_airdateret', document.getElementById('airdateret').value ,30,'','','');
    SetCookie('cookie_cbairtocity', document.getElementById('cbairtocity').value ,30,'','','');
    SetCookie('cookie_cbDest', document.getElementById('cbDest').value ,30,'','','');
    if (document.getElementById('shopType').value == 'AL')
    {    SetCookie('cookie_cbDepart', document.getElementById('cbDepart').value ,30,'','','');}
    else if(document.getElementById('shopType').value == 'A')
    {    SetCookie('cookie_cbDepartAIRONLY', document.getElementById('cbDepart').value ,30,'','','');}
    SetCookie('cookie_shoptype', document.getElementById('shopType').value ,30,'','','');
    SetCookie('cookie_productcode', document.getElementById('productcode').value ,30,'','','');
    SetCookie('cookie_txthotelpref', document.getElementById('txthotelpref').value ,30,'','','');
    
    SetCookie('cookie_aircarrier', document.getElementById('aircarrier').value ,30,'','','');
    SetCookie('cookie_aircabinclass', document.getElementById('aircabinclass').value ,30,'','','');
    SetCookie('cookie_airfaretype', document.getElementById('airfaretype').value ,30,'','','');
    SetCookie('cookie_airpreference', document.getElementById('airpreference').value ,30,'','','');
    SetCookie('cookie_selNumRooms', document.getElementById('selNumRooms').value ,30,'','','');
    SetCookie('cookie_numnights1', document.getElementById('numnights1').value ,30,'','','');
    
    //save number of pax in each room.
    var paxinroom;
    paxinroom = '';
    if (document.getElementsByName('numadts'))
    {
        for (i = 0; i < document.getElementsByName('numadts').length; i++)
        {
            if (paxinroom == '')
            {
                paxinroom +=  document.getElementsByName('numadts').item(i).value;
            }else
            {
                paxinroom += ',' + document.getElementsByName('numadts').item(i).value;
            }
        }    
    }
    SetCookie('cookie_adtineachroom', paxinroom ,30,'','','');
    paxinroom = '';
    if (document.getElementsByName('numchds'))
    {
        for (i = 0; i < document.getElementsByName('numchds').length; i++)
        {
            if (paxinroom == '')
            {
                paxinroom +=  document.getElementsByName('numchds').item(i).value;
            }else
            {
                paxinroom += ',' + document.getElementsByName('numchds').item(i).value;
            }
        }    
    }
    SetCookie('cookie_chdineachroom', paxinroom ,30,'','','');
    //now to children age.....4 rooms....max 3 child each room.
    //3 children max each room.
    for (i = 1; i < 4; i++)
    {
        paxinroom = '';
        for (j = 0; j < document.getElementsByName('chd' + i + 'age').length; j ++)
        {
            if (paxinroom == '')
            {
                paxinroom +=  document.getElementsByName('chd' + i + 'age').item(j).value;
            }else
            {
                paxinroom += ',' + document.getElementsByName('chd' + i + 'age').item(j).value;
            }            
        }
        SetCookie('cookie_chd' + i + 'ages', paxinroom ,30,'','','');
    }
    
	//No problem
	document.main_form.newsearch.value = 1;
	
	updateFormAction('https://www.palaceagents.com/res/STWMain.aspx');
		
	if (document.getElementById('shopType').value == 'A')
	{
	   //alert('Air Only');
	   updateAction('AirList');
	}
	else
	{
	   //alert('Air/land or Land');
	   updateAction('SeqList');
	}
	
	//Build the QueryString and submit the form via GET
	var strurl = 'http://www.palaceagents.com/res/STWMain.aspx?Action=SEQLIST';
	var strqs = '';
	if (document.getElementById('shopType').value == 'A')
	{
		//Air only
		strqs += '&searchmask=' + document.getElementById('searchmask').value;
		strqs += '&airfromcity=' + document.getElementById('airfromcity').value;
		strqs += '&airtocity=' + document.getElementById('airtocity').value;
		strqs += '&airretfromcity=' + document.getElementById('airretfromcity').value;
		strqs += '&airrettocity=' + document.getElementById('airrettocity').value;

		strqs += '&airdateout=' + document.getElementById('airdateout').value;
		strqs += '&airdateret=' + document.getElementById('airdateret').value;
		strqs += '&chkAir=' + document.getElementById('chkAir').value;
		strqs += '&aircarrier=' + document.getElementById('aircarrier').value;
		strqs += '&numairadts=' + document.getElementById('numairadts').value;
		strqs += '&numairchds=' + document.getElementById('numairchds').value;
	}
	else if (document.getElementById('shopType').value == 'L')
	{
		//Land only
		strqs += '&tbCheckInHotelReq=' + document.getElementById('tbCheckInHotelReq').value;
		strqs += '&tbCheckOutHotelReq=' + document.getElementById('tbCheckOutHotelReq').value;
		strqs += '&ProductType=L';
		strqs += '&productcode=' + document.getElementById('productcode').value;
		strqs += '&searchmask=' + document.getElementById('searchmask').value;
		strqs += '&chkAir=' + document.getElementById('chkAir').value;
		strqs += '&txthotelpref=' + document.getElementById('txthotelpref').value;
	}
	else if (document.getElementById('shopType').value == 'AL')
	{
		//Air and land
		strqs += '&tbCheckInHotelReq=' + document.getElementById('tbCheckInHotelReq').value;
		strqs += '&tbCheckOutHotelReq=' + document.getElementById('tbCheckOutHotelReq').value;
		strqs += '&ProductType=L';
		strqs += '&productcode=' + document.getElementById('productcode').value;
		strqs += '&searchmask=' + document.getElementById('searchmask').value;
		strqs += '&airfromcity=' + document.getElementById('airfromcity').value;
		strqs += '&airtocity=' + document.getElementById('airtocity').value;
		strqs += '&airretfromcity=' + document.getElementById('airretfromcity').value;
		strqs += '&airrettocity=' + document.getElementById('airrettocity').value;
		strqs += '&airdateout=' + document.getElementById('airdateout').value;
		strqs += '&airdateret=' + document.getElementById('airdateret').value;
		strqs += '&chkAir=' + document.getElementById('chkAir').value;
		strqs += '&txthotelpref=' + document.getElementById('txthotelpref').value;
		strqs += '&aircarrier=' + document.getElementById('aircarrier').value;
		strqs += '&numairadts=' + document.getElementById('numairadts').value;
		strqs += '&numairchds=' + document.getElementById('numairchds').value;
	}
	
	//Send the user to the results page
	document.location.href = strurl + strqs;
}

function showMultiDest(seldest)
{
    var citycode;
    //selDest is the selected productcode which is: countrycode-citycode-LIST (CR-LIR-LIST)
    
    //first hide the multi destination jump button
    document.getElementById('btnmultidest').style.display = 'none';
    if (seldest.split('-').length == 3)
    {
        citycode = seldest.split('-')[1];
        //if citycode is one of these CostaRica cities then show multi dest jump button 
        if ('CAT,CR1,CR2,CR3,CR4,CR5,CR6,GUN,HED,JAP,LIR,SJO,SNL,TMU,TNO,TTQ'.indexOf(citycode) > -1)
        {
            document.getElementById('btnmultidest').style.display = '';
        }
    }
}

//This function builds a mask based on the requested rooms
function buildMask()
{
    var myMask, tempMask;
    var i, j;
    
    myMask = "";
    for (i = 0; i < document.getElementById('selNumRooms').value; i++)//document.main_form.numadts.length; i++)
    {
        tempMask = "";
        //Get adults
        for (j = 1; j <= document.main_form.numadts[i].value; j++)
        {
            tempMask = tempMask + "A";
        }
        //Get children
        for (j = 1; j <= document.main_form.numchds[i].value; j++)
        {
            //Check that at least one adult was selected for this room
            if (document.main_form.numadts[i].value == 0)
            {
                alert("Please select at least one adult for room #" + (i + 1));
                return false;
            }
            tempMask = tempMask + "C";
            if (j == 1)
            {
                //First child
                if (document.main_form.chd1age[i].value == "0")
                {
                    alert("Please select child 1 age for room #" + (i + 1));
                    return false;
                }
                tempMask = tempMask + document.main_form.chd1age[i].value;
            }
            else if (j == 2)
            {
                //Second child
                if (document.main_form.chd2age[i].value == "0")
                {
                    alert("Please select child 2 age for room #" + (i + 1));
                    return false;
                }
                tempMask = tempMask + document.main_form.chd2age[i].value;
            }
            else if (j == 3)
            {
                //Third child
                if (document.main_form.chd3age[i].value == "0")
                {
                    alert("Please select child 3 age for room #" + (i + 1));
                    return false;
                }
                tempMask = tempMask + document.main_form.chd3age[i].value;
            }
        }
        if (tempMask != "")
        {
            if (i > 0)
                myMask = myMask + "/" + tempMask;
            else
                myMask = tempMask;
        }
    }
    //alert("Mask: " + myMask);
    document.main_form.searchmask.value = myMask;
    document.getElementById('numairadts').value = (myMask.length - myMask.replace(/A/g, '').length);
    document.getElementById('numairchds').value = (myMask.length - myMask.replace(/C/g, '').length);
    //Done
    return true;
}
//This function shows and hides the room forms based on the number of rooms selected
function updateRooms()
{
    try
    {
        //Hide all the rooms
        hide('room1-4', document.getElementById('selNumRooms'), '', '');
        hide('chdage1-4', document.getElementById('selNumRooms'), '', '');
        hide('chdageheader1-2', document.getElementById('selNumRooms'), '', '');
        //Show the rooms that should be shown
        show('room1-' + document.getElementById('selNumRooms').value, document.getElementById('selNumRooms'), '', '');
        if (document.getElementById('selNumRooms').value > 0 && document.main_form.numchds[0].value > 0)
        {
            show('chdage1', document.getElementById('selNumRooms'), '', '');
            show('chdageheader1-2', document.getElementById('selNumRooms'), '', '');
            hide('chd1age1', document.getElementById('selNumRooms'), '', '');
            hide('chd2age1', document.getElementById('selNumRooms'), '', '');
            hide('chd3age1', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[0].value > 0)
                show('chd1age1', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[0].value > 1)
                show('chd2age1', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[0].value > 2)
                show('chd3age1', document.getElementById('selNumRooms'), '', '');
        }
        if (document.getElementById('selNumRooms').value > 1 && document.main_form.numchds[1].value > 0)
        {
            show('chdage2', document.getElementById('selNumRooms'), '', '');
            show('chdageheader1-2', document.getElementById('selNumRooms'), '', '');
            hide('chd1age2', document.getElementById('selNumRooms'), '', '');
            hide('chd2age2', document.getElementById('selNumRooms'), '', '');
            hide('chd3age2', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[1].value > 0)
                show('chd1age2', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[1].value > 1)
                show('chd2age2', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[1].value > 2)
                show('chd3age2', document.getElementById('selNumRooms'), '', '');
        }
        if (document.getElementById('selNumRooms').value > 2 && document.main_form.numchds[2].value > 0)
        {
            show('chdage3', document.getElementById('selNumRooms'), '', '');
            show('chdageheader1-2', document.getElementById('selNumRooms'), '', '');
            hide('chd1age3', document.getElementById('selNumRooms'), '', '');
            hide('chd2age3', document.getElementById('selNumRooms'), '', '');
            hide('chd3age3', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[2].value > 0)
                show('chd1age3', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[2].value > 1)
                show('chd2age3', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[2].value > 2)
                show('chd3age3', document.getElementById('selNumRooms'), '', '');
        }
        if (document.getElementById('selNumRooms').value > 3 && document.main_form.numchds[3].value > 0)
        {
            show('chdage4', document.getElementById('selNumRooms'), '', '');
            show('chdageheader1-2', document.getElementById('selNumRooms'), '', '');
            hide('chd1age4', document.getElementById('selNumRooms'), '', '');
            hide('chd2age4', document.getElementById('selNumRooms'), '', '');
            hide('chd3age4', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[3].value > 0)
                show('chd1age4', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[3].value > 1)
                show('chd2age4', document.getElementById('selNumRooms'), '', '');
            if (document.main_form.numchds[3].value > 2)
                show('chd3age4', document.getElementById('selNumRooms'), '', '');
        }
    }
    catch(ex)
    {
        //There was an error
        alert("updateRooms Failed: \n" + ex.Message);
    }
}

//This function sets the Return Date to 3 days after the input Depart Date
function setReturnDate(dep, ret)
{
    var rDate;
    
    rDate = new Date(dep.value);
    if (document.getElementById('numnights1').value != '')
    {
        rDate.setTime(rDate.getTime() + (document.getElementById('numnights1').value * 24 * 60 * 60 * 1000) + (3600*1000)); //add another hour to make sure we're fully into that date.(daylight saving)
    }
    else
    {
        rDate.setTime(rDate.getTime() + (3 * 24 * 60 * 60 * 1000) + (3600*1000)); //add another hour to make sure we're fully into that date.(daylight saving)
    }
    
    ret.value = FormatDate(rDate);
    return true;
}

function setOutboundDate(ret, dep)
{
    try
    {
        var rDate;
        
        rDate = new Date(ret.value);
        if (document.getElementById('numnights1').value != '')
        {
            rDate.setTime(rDate.getTime() - (document.getElementById('numnights1').value * 24 * 60 * 60 * 1000));
        }
        
        dep.value = FormatDate(rDate);
        return true;
    }
    catch(ex)
    {
        //There was an error
        alert('Error: ' + ex.message);
    }
}

function setNumNights(ret, dep)
{
    try
    {
        var ddate, rdate, timediff;
        
        ddate = new Date(dep.value);
        rdate = new Date(ret.value);
        
        timediff = (rdate.getTime() - ddate.getTime());
        
        document.getElementById('numnights1').value = Math.round(timediff / (24 * 60 * 60 * 1000));
        
        return true;
    }
    catch(ex)
    {
        //There was an error
        alert('Error: ' + ex.message);
    }
}

// Sets the Shop Type and changes the search display based on the Shop Type Chosen
function setShopType(type)
{
    var tempairports, cookievalue;
    tempairports = '';
    cookievalue = '';
    try
    {
        cookievalue = GetCookie('cookie_cbDepartAIRONLY');
        if (!cookievalue || cookievalue == '')
        {   cookievalue = GetCookie('cookie_cbDepart'); }
        
        if (type == 'AL')
        {
            document.getElementById('chkAir').value = 'Y';
            document.getElementById('typeal').className = 'activetab';
            document.getElementById('typea').className = 'inactivetab';
            document.getElementById('typel').className = 'inactivetab';
            document.getElementById('placeholderbox').style.display = '';
            // show Air & Room Options
            show('trair1-2', null, '', '');
            show('roomOpts', null, '', '');
            show('numnights1-2', null, '', '');
            //hide air destination selection.
            hide('cbairtocity');
            //show product selection
            show('productcode');
            show('aircarrierdisplay');
            show('faretypedisplay');
            //show Advanced options - right now pretain to Air only
            //show('advoptions');     
            // set the SHOP TYPE variable
            document.getElementById('shopType').value = 'AL';

            document.getElementById('imgal').src = 'http://www.palaceresorts.com/BookingForm/airhotelactive.gif';
            document.getElementById('imgl').src = 'http://www.palaceresorts.com/BookingForm/hotelinactive.gif';
/*            document.getElementById('imga').src = 'http://www.palaceresorts.com/BookingForm/airinactive.gif';
*/
            document.getElementById('dtime1').style.display = '';
            document.getElementById('dtime2').style.display = '';
            //if user is a direct and they're on air and land then .... show all airports(rather than block airports) for the "from airport"
            if (document.getElementById('usertype').value.toUpperCase() == 'DIRECT')
            {
                tempairports = '<SELECT name="cbDepart" id="cbDepart" style="width: 188px;" class="ddlFormMenu">';
                tempairports += document.getElementById('allfromairports').value.replace(/{/g,'<').replace(/}/g,'>').replace(/'/g,'"');
                tempairports += '</SELECT>';
                document.getElementById('cbfromairportlist').innerHTML= tempairports
            }
            //Air and Land
            if (cookievalue && cookievalue != '')
            {
                document.getElementById('cbDepart').value = cookievalue;
            }
        }
        else if (type == 'A')
        {
            document.getElementById('chkAir').value = 'Y';
            document.getElementById('typeal').className = 'inactivetab';
            document.getElementById('typea').className = 'activetab';
            document.getElementById('typel').className = 'inactivetab';
            document.getElementById('dtime1').style.display = '';
            document.getElementById('dtime2').style.display = '';
            document.getElementById('placeholderbox').style.display = '';
            //Show Air Opts & Hide Room Opts
            show('trair1-2', null, '', '');
            show('roomOpts', null, '', '');
            show('numnights1-2', null, '', '');
            //show air destination selection.
            show('cbairtocity');
            show('aircarrierdisplay');
            show('faretypedisplay');
            //hide product selection
            hide('productcode');
             //show Advanced options - right now pretain to Air only
            //show('advoptions');  
            // set the SHOP TYPE varialbe
            document.getElementById('shopType').value = 'A';            

            document.getElementById('imgal').src = 'http://www.palaceresorts.com/BookingForm/airhotelinactive.gif';
            document.getElementById('imgl').src = 'http://www.palaceresorts.com/BookingForm/hotelinactive.gif';
/*            document.getElementById('imga').src = 'http://www.palaceresorts.com/BookingForm/airactive.gif';
*/
            //if user is a direct user then .... show the block airports for the "from airport"
            if (document.getElementById('usertype').value.toUpperCase() == 'DIRECT')
            {
                tempairports = '<SELECT name="cbDepart" id="cbDepart" style="width: 188px;" class="ddlFormMenu">';
                tempairports += document.getElementById('directaironlyairports').value.replace(/{/g,'<').replace(/}/g,'>').replace(/'/g,'"');
                tempairports += '</SELECT>';
                document.getElementById('cbfromairportlist').innerHTML = tempairports
            }
            //Air-Only
             if (cookievalue && cookievalue != '')
            {
                document.getElementById('cbDepart').value = cookievalue;
            }
        }
        else if (type == 'L')
        {
            //Land-Only
            document.getElementById('chkAir').value = 'N';
            document.getElementById('typeal').className = 'inactivetab';
            document.getElementById('typea').className = 'inactivetab';
            document.getElementById('typel').className = 'activetab';
            document.getElementById('dtime1').style.display = 'none';
            document.getElementById('dtime2').style.display = 'none';
            document.getElementById('placeholderbox').style.display = 'none';
            //Hide Air Opts & Show Room OPts
            hide('trair1-2', null, '', '');
            show('roomOpts', null, '', '');
            show('numnights1-2', null, '', '');            
            //hide air destination selection.
            hide('cbairtocity');
            hide('aircarrierdisplay');
            hide('faretypedisplay');
            //show product selection
            show('productcode');            
             //hide Advanced options - right now pretain to Air only
            // hide('advoptions');            
            // set the SHOP TYPE varialbe
            document.getElementById('shopType').value = 'L'; 

            document.getElementById('imgal').src = 'http://www.palaceresorts.com/BookingForm/airhotelinactive.gif';
            document.getElementById('imgl').src = 'http://www.palaceresorts.com/BookingForm/hotelactive.gif';
/*            document.getElementById('imga').src = 'http://www.palaceresorts.com/BookingForm/airinactive.gif';
*/
        }
        
        //Re-set the Adv Options in case its open
        setAdvancedOptions()
    }
    catch(ex)
    {
        //There was an error
        alert('SetShopType() Failed: ' + ex.Message);
    }
    
   
}

// This function will hide / show things in the advanced options display depending on the shop type
function setAdvancedOptions()
{
    
    var shoptype = '';
    shoptype = document.getElementById('shopType').value.toUpperCase();
    //first close the advace tab.
    //then see if we should show the advance tab.  (show it if any of its value are application---something is selected)
    document.getElementById('adv').style.display = 'none' 
    if (shoptype == 'AL')
    {
        if (document.getElementById('txthotelpref').value != '' || 
                document.getElementById('aircarrier').value != '' || 
                document.getElementById('aircabinclass').selectedIndex > 0 || 
                document.getElementById('airfaretype').selectedIndex > 0 ||
                document.getElementById('airpreference').selectedIndex > 0)
        {
            //show advance table.
            document.getElementById('adv').style.display = ''
        }
    }
    else if(shoptype == 'A')
    {
        if (document.getElementById('aircarrier').value != '' || 
                document.getElementById('aircabinclass').selectedIndex > 0 || 
                document.getElementById('airfaretype').selectedIndex > 0 ||
                document.getElementById('airpreference').selectedIndex > 0)
        {
            //show advance table.
            document.getElementById('adv').style.display = ''
        }
    }        
    else if(shoptype == 'L')
    {
        if (document.getElementById('txthotelpref').value != '')
        {
            //show advance table.
            document.getElementById('adv').style.display = ''
        }
    }        
      
    //alert('Type: ' + document.getElementById('shopType').value);
    //set the advanced options according to the shop type
    if (shoptype == 'A')   //  AIR
	{
	   // alert('AIR');
	  //    show airline / class / fare type / connections / travel dates 
	 show('advAirline');
	  show('advAirline2');
	  show('advClass');
	  show('advClass2');
	  show('advFareType');
	  	  show('advFareType2');
	  show('advConn');
	  show('advConn2');
	  show('advTravelDates');
	  //    hide all else
	  hide('advHotelName');
	  //clear hidden contents, so it doesnt shop
	  //value of this ID has nothing to do with whether it'll shop lan svc or not!
	  //if(document.getElementById('txthotelpref')){document.getElementById('txthotelpref').value='';}
	}
	if (shoptype == 'AL')  //  AIR & LAND
	{
	   // alert('AIR & LAND');
	   //   show all 
	   show('advAirline');
	  show('advAirline2');
	  show('advClass');
	  show('advClass2');
	  show('advFareType');
	   show('advFareType2');
	  show('advConn');
	  show('advConn2');
	  show('advTravelDates');
	  show('advHotelName');
	}
	if(shoptype == 'L')    //  LAND
	{
	   // alert('LAND');
	  //  show hotel name / travel dates
	  show('advHotelName');
	  show('advTravelDates');
	  //  hide all else	     
      hide('advAirline');
	  hide('advAirline2');
      hide('advClass');
	  hide('advClass2');
      hide('advFareType');
	        hide('advFareType2');
      hide('advConn');
	  hide('advConn2');
      //clear hidden contents so it doesnt shop
      //value of these IDs has nothing to do with whether it'll shop lan svc or not!
      //if(document.getElementById('aircarrier')){document.getElementById('aircarrier').selectedIndex=0;}
      //if(document.getElementById('aircabinclass')){document.getElementById('aircabinclass').selectedIndex=0;}
      //if(document.getElementById('airfaretype')){document.getElementById('airfaretype').selectedIndex=0;}
      //if(document.getElementById('airpreference')){document.getElementById('airpreference').selectedIndex=0;}
	 }
}

function ShowPopupCalendar(thisid, txtid, format, intmonth, startvalue, datetype, verticalmonth)
{
    var usertype = document.getElementById('usertype').value;
    var shoptype = document.getElementById('shopType').value;
    
    ShowCalendar(thisid, txtid, format, intmonth, startvalue, null, null, verticalmonth); 
//    if (usertype == 'DIRECT' && shoptype == 'A')
//    {
//        //show the block calendar
//        //ShowBlockCalendar(txtid,datetype, startvalue,verticalmonth);
//        ShowCalendar(thisid, txtid, format, intmonth, startvalue, null, null, verticalmonth);
//    }
//    else
//    {
//        //show the regular calendar
//        ShowCalendar(thisid, txtid, format, intmonth, startvalue, null, null, verticalmonth);
//    }
 }

function ShowBlockCalendar(txtid, datetype, startvalue)
{

    buildMask();
    var qs;
    if (document.getElementById('cbDepart').value == ''){
        alert('Please select a departure airport to continue');
        return;}
    if (document.getElementById('cbairtocity').value == ''){
        alert('Please select a destination to continue');
        return;}
    
    qs = '';
    qs += '&chkAir=Y';
    qs += '&cbdest='+ document.getElementById('cbDepart').value;
    qs += '&searchmask='+ document.getElementById('searchmask').value;
    qs += '&airfromcity='+ document.getElementById('cbDepart').value;
    qs += '&airtocity='+ document.getElementById('cbairtocity').value;
    qs += '&airretfromcity='+ document.getElementById('cbairtocity').value;
    qs += '&airrettocity='+ document.getElementById('cbDepart').value;
    qs += '&airdateout='+ startvalue;//document.getElementById('airdateout').value;
    qs += '&airdateret='+ document.getElementById('airdateret').value;    
    qs += '&productcode='+ document.getElementById('productcode').value;
    qs += '&txtID=' + txtid;
    qs += '&datetype=' + datetype; //RET or DEP
    //if we're asking for the return date then includes the selected departure date.
    if (datetype.toUpperCase() == 'RET')
    {
        qs += '&selecteddepdate=' + startvalue;
    }
    qs = 'https://www.palaceagents.com/res/STWMain.aspx?action=BLKAIRCALENDAR' + qs;
    
    
    if (document.getElementById('shopType').value == 'A')
    {
        calwin = window.open(qs,'blockcalendar','toolbar=no,location=no,directories=no,status=no,menubar=no,titlebar=no,scrollbars=no,resizable=no,width=300,height=300');
        calwin.focus(); 
    }
}

function SetVacBuilderVars()
{
    var citycode,i;
    document.getElementById('checkin1').value = document.getElementById('tbCheckInHotelReq').value;
    document.getElementById('checkout1').value = document.getElementById('tbCheckOutHotelReq').value;
    document.getElementById('airfromcity').value = document.getElementById('cbDepart').value;    
   
    
}
function JumpToVacBuilder()
{
    var QS;
    QS = ''
    QS += '&checkin1=' + document.getElementById('tbCheckInHotelReq').value;
    QS += '&checkout1=' + document.getElementById('tbCheckOutHotelReq').value;
    QS += '&airfromcity=' + document.getElementById('cbDepart').value;
    if (document.getElementById('shopType').value.toUpperCase() == 'L')
    {   QS += '&trip_type=HTL';  }
    else if(document.getElementById('shopType').value.toUpperCase() == 'AL')
    {   QS += '&trip_type=AIRFHTL'; }
    QS += '&seqlistoverridestyle=VACBUILDER';
    QS += '&productcode=' + document.getElementById('productcode').value;
    
    document.location.href = 'https://www.palaceagents.com/res/STWMain.aspx?Action=FITReq&Theme=PALACERST' + QS;
}

/* ORIG AIR CITIES */

/* DEST AIR CITIES */

/* P CODES */
