//GLOBAL array of query string parameters. 
var qsParm = new Array();
function populateQsParms() 
{
	var query = window.location.search.substring(1);
	var parms = query.split('&');

	for (var i=0; i<parms.length; i++) 
	{
		var pos = parms[i].indexOf('=');
		if (pos > 0) 
		{
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			qsParm[key] = val;			
		}
	}
}
function genericpopwin(imgURL,winName,options) { //v1.0
  window.open(imgURL,winName,options);
}

function departDateChange(){
//this function is not needed for main res tool.
}

// Netscape compatibility.  NS does not support XML.
var objXML;
var hasXML = false;
var hasVB  = false;
IE4=(document.all);
if(IE4)
{
	objXML = new ActiveXObject("Msxml2.DOMDocument");
	objXML.validateOnParse = true;
	objXML.loadXML( "<xml><test>TEST</test></xml>" );
	if (objXML.parseError.errorCode == 0) {
		hasXML = true;
	}
}
else
{
	objXML = null;
}

function TackOnClientCapabilities( inHref ) {
	var l_href = inHref;
	if (l_href.indexOf("?") == -1) {
		l_href += "?hasXML=" + hasXML + "&hasVB=" + hasVB;
	} else {
		l_href += "&hasXML=" + hasXML + "&hasVB=" + hasVB;
	}
	var depDate = document.restool.gsDepartureDate.value;	
	document.location.href = l_href;
}

// Function Name: submitSearch
// Purpose: Determines what form to submit the search to.
// Parameters: None
// Return: None
function submitSearch()
{
	var validForm = true;
	validForm = validateDes() && validForm;
    validForm = validateOrg() && validForm;	
	validForm = validateDepartureDateSubmit() && validForm;
	validForm = validateReturnDateSubmit() && validForm;
	validForm = occupancyTest() && validForm;
	validForm = validateText() && validForm;
    var returnDate = new Date(document.restool.gsReturnDate.value);
    var departDate = new Date(document.restool.gsDepartureDate.value);
    returnDate = adjustYear(returnDate);
	departDate = adjustYear(departDate);
	if (validForm)
	{
	    checkPromo();
	
		document.restool.gsNumberOfTravelers.value = g_PAXCount;
		document.restool.gsLengthOfStay.value = diffDays(returnDate, departDate);
		document.restool.submit();
		return false;
	}
	else
		return false;
}

//set PromoCode for coke page
function checkPromo() {
    if (location.toString().indexOf("/coke/") != -1)
        document.restool.gspromotioncode.value = "UNICOKE";

    if (location.toString().indexOf("/pitbull/") != -1)
        document.restool.gspromotioncode.value = "UNIPIT";
}		    

//This is called onload of restool.asp page, to initialize any
//drop down/textbox values.
function InitRestool(){
    getVacationTypes(gsVacationType, gspromotioncode, gsSourceCode, gsDepartureDate, boolVacType, boolCokePage);
	initNumOfAdults();
	initNumOfChildren();
	showChildFields();
}

function initNumOfAdults()
{
	var	numOfAdults = 2;
	if(qsParm['gsNumOfAdults2'] != 'undefined')
		numOfAdults = qsParm['gsNumOfAdults2'];
		
	if(numOfAdults > 0)
		document.restool.gsNumOfAdults.options.selectedIndex = numOfAdults - 1;					
}

function initNumOfChildren()
{
	var numOfChildren = 0;
		
	if(qsParm['gsNumOfChildren2'] != 'undefined')
		numOfChildren = qsParm['gsNumOfChildren2'];
		
	if(numOfChildren > 0)
	{
		FIND("childAges").style.display='inline';
		document.restool.gsNumOfChildren.options.selectedIndex = numOfChildren;
	}
	
	var childAge = 0;
	for(var j = 1; j <= numOfChildren; j++)
	{
		FIND("gsAge" + j).style.display = 'inline';
		
		if(qsParm["gsAge" + j + "2"] != 'undefined')
			childAge = qsParm["gsAge" + j + "2"]; // gsAge12, gsAge22, etc. - thats the way its named in postToSelf form.
		FIND("gsAge" + j).options.selectedIndex =  childAge;
	}	
}

function showChildFields()
{
	if( FIND("gsNumOfChildren") != null)
	{
		FIND("childAges").style.display='none';
		for(var i=1; i <= 4; i++)
		{
			FIND("gsAge" + i).style.display = 'none';	
		}
		for(var i = 1; i <=  FIND("gsNumOfChildren").value; i++)
		{	
			FIND("childAges").style.display='inline';
			FIND("gsAge" + i).style.display = 'inline';
		}
	}
}				

function getFieldDescriptionsPop(sbtRootURL, MID) {
	var ghiURL;	// this is the URL to the .aspx page that gives back the included features
	var FieldDescription;
	ghiURL = sbtRootURL + "Search/FieldDescription.aspx?FieldName=" + MID;	
	FieldDescription = window.open(ghiURL, "FieldDescription", "width=765,height=200,resizable=1,status=1,scrollbars=0,toolbar=0");
    FieldDescription.focus()
}
				
function validateText () 
{
    var validtext;
    if (document.restool.gspromotioncode.value != ""){
        if (validate(document.restool.gspromotioncode.value, "PROMOCODE") == false) {
			if(document.getElementById("promoCodeWarning")!=null){
			    document.getElementById("promoCodeWarning").style.display = "block"
			    validtext = false;
			} 
		}
        else{
        document.getElementById("promoCodeWarning").style.display = "none";
        validtext = true;
        }
    }
     else{
        document.getElementById("promoCodeWarning").style.display = "none";
        validtext = true;
    }
    
    return 	validtext;
 }
 			
function occupancyTest()
{
	var warn;
	var numOfAdults = parseInt(document.restool.gsNumOfAdults.options[document.restool.gsNumOfAdults.options.selectedIndex].value, 10);
	var numOfChildren = parseInt(document.restool.gsNumOfChildren.options[document.restool.gsNumOfChildren.options.selectedIndex].value, 10);
	var total_pax = 0;

	warn = FIND('trPassWarning');
	
	var Children = 0;
	
	if ( numOfChildren >= 1 ) {		
			var gsAge1 = document.restool.gsAge1.options[document.restool.gsAge1.options.selectedIndex].value;
			var gsAge2 = document.restool.gsAge2.options[document.restool.gsAge2.options.selectedIndex].value;
			var gsAge3 = document.restool.gsAge3.options[document.restool.gsAge3.options.selectedIndex].value;
			var gsAge4 = document.restool.gsAge4.options[document.restool.gsAge4.options.selectedIndex].value;
			
			if (gsAge1 !="" && gsAge1.toUpperCase() != "NA"){
				Children++;
			}
			if (gsAge2 !="" && gsAge2.toUpperCase() != "NA"){
				Children++;
			}
			if (gsAge3 !="" && gsAge3.toUpperCase() != "NA"){
				Children++;
			}
			if (gsAge4 !="" && gsAge4.toUpperCase() != "NA"){
				Children++;
			}
	}else{
		Children = 0;
		document.restool.gsAge1.options.selectedIndex = 0;
		document.restool.gsAge2.options.selectedIndex = 0;
		document.restool.gsAge3.options.selectedIndex = 0;
		document.restool.gsAge4.options.selectedIndex = 0;		
	}
	
	g_PAXCount = numOfAdults + Children;
	
	if(g_PAXCount >= 5)
	{ warn.style.display = "block";	}
	else
	{ warn.style.display = "none"; }
	return true;
	
}

function numOfChildren_onchange(){
	var numOfChildren = parseInt(document.restool.gsNumOfChildren.options[document.restool.gsNumOfChildren.options.selectedIndex].value, 10);
	if (numOfChildren >= 1){
		document.restool.gsAge1.options.selectedIndex = 0;
		document.restool.gsAge2.options.selectedIndex = 0;
		document.restool.gsAge3.options.selectedIndex = 0;
		document.restool.gsAge4.options.selectedIndex = 0;
	}else{
		Children = 0;
	}
}

// make sure new total pax doesn't exceed max allowed total pax count
function checkTotalPax(pax_type)
{
	var numOfAdults = parseInt(document.restool.gsNumOfAdults.options[document.restool.gsNumOfAdults.options.selectedIndex].value, 10);
	var numOfChildren = parseInt(document.restool.gsNumOfChildren.options[document.restool.gsNumOfChildren.options.selectedIndex].value, 10);
	var total_pax = 0;
	var curr_array, new_array;

	total_pax = numOfAdults + numOfChildren;	
	
	if (total_pax > 8)
	{
		if (pax_type == "adults")
		{
			alert("New number of adults has caused total number of passengers to exceed the allowed total number passengers of 8. Please specify a new number of adults");
		}
		else
		{
			alert("New number of children has caused total number of passengers to exceed the allowed total number passengers of 8. Please specify a new number of children");
		}	
	}

	return false;	

}

// Function Name: postToSelf
// Purpose: This is called onchange of vacation type drop down.  
//			When we do a postback we need to pass all the seleced values along with it.
// Parameters: none
// Return: none
function postToSelf()
{
	document.submitToItselfForm.gsSourceCode.value = document.restool.gsSourceCode.value;
	document.submitToItselfForm.gsVacationType.value = document.restool.gsVacationType.value;	
	document.submitToItselfForm.gsOrigin2.value = document.restool.gsOrigin.value;
	document.submitToItselfForm.gsDestination2.value = document.restool.gsDestinationHidden.value;
	document.submitToItselfForm.gsNumOfAdults2.value = document.restool.gsNumOfAdults.value;
	document.submitToItselfForm.gsNumOfChildren2.value = document.restool.gsNumOfChildren.value;
	document.submitToItselfForm.gsAge12.value = document.restool.gsAge1.value;
	document.submitToItselfForm.gsAge22.value = document.restool.gsAge2.value;
	document.submitToItselfForm.gsAge32.value = document.restool.gsAge3.value;
	document.submitToItselfForm.gsAge42.value = document.restool.gsAge4.value;
	document.submitToItselfForm.gsDepartureDate2.value = document.restool.gsDepartureDate.value;
	document.submitToItselfForm.gsReturnDate2.value = document.restool.gsReturnDate.value;
	document.submitToItselfForm.gspromotioncode2.value = document.restool.gspromotioncode.value;
	document.submitToItselfForm.plCode.value = document.restool.plCode.value;
	document.submitToItselfForm.Referrer.value = document.restool.Referrer.value;	
	document.submitToItselfForm.submit();
}

function validateDes()
{	
	var desSel = document.restool.gsDestination.value;
	var destFound = false;	
	var destWarn
	var destRow

	if( (desSel != null) && (desSel.length == 3) ){
		document.restool.gsDestinationHidden.value = document.restool.gsDestination.value;
		document.restool.gsDestination.value = document.restool.gsDestination.value;
		destFound=true;
	}
	   //------ Display Error message for Invalid Destination.
	   destWarn = FIND('trDestinationWarning');
	  
		if (!destFound)	{
			destWarn.style.display = "block"; 
		}else{
			destWarn.style.display = "none";
		}
		if (destFound)
			return true;
		else
			return false;
}

function validateOrg()
{
	if(FIND("trOrigin").style.display == 'block')
	{
		if (FIND("gsOrigin").value == "")
		{
			FIND("trOriginWarning").style.display = 'block';
			return false;
		}
		else
		{
			FIND("trOriginWarning").style.display = 'none';
			return true;	
		}
	}
	else
	{
		return true;
	}
}

// Function Name: padAge
// Purpose: Places a leading zero on values that are a single digit.  Needed for OVM
// Parameters: age - value to be padded
// Return: String - padded value
function padAge(age)
{
	if (age.length < 2 && age != 0)
	{
		age = '0' + age;		
	}
	return age;
}

// Function Name: trimAge
// Purpose: Trims leading zeroes from a value.
// Parameters: age - value to be trimmed
// Return: String - trimmed value
function trimAge(age)
{
	if (age.length >= 2 && age.substr(0,1) == '0')
	{
		age = age.substr(1, age.substr.length - 1);		
	}
	return age;
}

// Function Name: diffDays
// Purpose: Determines differance in days of date objects
// Parameters: d1 - First Date, d2 - Second Date
// Return: Int - difference between d1 and d2.
function diffDays(d1, d2)
{
	// Determine difference by dividing by number of milliseconds in a day
	return Math.round((d1 - d2)/864e5);
}

// Function Name: checkAge
// Purpose: Determines if the value passed in is a value age.
// Parameters: age - Value to be checked
// Return: String - converted value
function checkAge(age)
{
	var retVal = "";
	if ( age.toUpperCase() != "NA")
	{
		retVal = age;
	}
	return retVal;
}

// Function Name: convertMonth
// Purpose: Converts integer representation of the month into its english name
// Parameters: month - Integer representation of month, zero indexed
// Return: String - Month's name
function convertMonth(month)
{
	var retVal = "";

	switch(month)
	{
		case 0:
			retVal = "January";
			break;
		case 1:
			retVal = "February";
			break;
		case 2:
			retVal = "March";
			break;
		case 3:
			retVal = "April";
			break;
		case 4:
			retVal = "May";
			break;
		case 5:
			retVal = "June";
			break;
		case 6:
			retVal = "July";
			break;
		case 7:
			retVal = "August";
			break;
		case 8:
			retVal = "September";
			break;
		case 9:
			retVal = "October";
			break;
		case 10:
			retVal = "November";
			break;
		case 11:
			retVal = "December";
			break;
	}

	return retVal;
}

// Function Name: convertPackageType
// Purpose: Converts SBT package type to OVM equivalent
// Parameters: packageType - package type to be analyzed and converted
// Return: String - OVM equivalent package type
function convertPackageType(packageType)
{
	var retVal = "";

	if (packageType == g_AirHotel)
	{	
		retVal = g_AirHotelOVM;
	}
	else
	{
		retVal = packageType;
	}

	return retVal;
}

// Function Name: TRIM
// Purpose: Standard string trim function
// Parameters: s - string to be trimmed of whitespace
// Return: String - trimmed string
function TRIM(s) 
{
  // Remove leading spaces and carriage returns
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }
  // Remove trailing spaces and carriage returns
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

// Function Name: FIND
// Purpose: Finds an object on the page and returns a referance to it
// Parameters: item - name of object ot find
// Return: Object - referance to the found object, or false if not found
function FIND(item) {
	if (document.all) 
		return(document.all[item]);
	if (document.getElementById) 
		return(document.getElementById(item));
	return(false);
}

// Function Name: validateDepartureDate
// Purpose: Validates that the departure date is not before today and is before the return date
// Parameters: None
// Return: Boolean - whether the date is valid
function validateDepartureDate()
{
	// Create a date object from the entered departure date 
	var departDateString = document.restool.gsDepartureDate.value;
    var departDate = new Date(departDateString);
	// Create a date object for today.
	var today = new Date();

	var retVal = true;

	departDate = adjustYear(departDate);

	// Find warnings for departures
	// Invalid date entry warning
    var warning = FIND("trDepartureWarning");
	// Date is in the past warning
	var warningPast = FIND("trDepartureWarningPast");

	// If the departure date is still "mm/dd/yy" then don't do anything, the user hasn't entered anythign yet
	if (document.restool.gsDepartureDate.value != "mm/dd/yy")
	{
		// Check to see if the date is not a date at all, or fails at RegEx validations
		if (departDate == "NaN" || !validateDateFormat(departDateString))
		{
			// Show invalid date warning
		   warning.style.display = "block"
		   retVal = retVal && false;
		}
		else 
		{
			warning.style.display = "none"
			retVal = retVal && true;
		}

		// Check to see if departure date is before today
		if (departDate != "NaN" && validateDateFormat(departDateString)){
			if (departDate < today)
			{
				// Show date in past warning
			warningPast.style.display = "block"
			retVal = retVal && false;
			}
			else
			{
			warningPast.style.display = "none"
				retVal = retVal && true;
			}
		}else{
			warningPast.style.display = "none";
		}		
	}
	else
	{
		// We can't validate the date since nothing was entered, so that's a failure
		retVal = false;
	}
	return retVal;
}

// Function Name: validateDepartureDateSubmit
// Purpose: Similar to validateDepartureDate, but only called on form submit, doesn't check for 'mm/dd/yy'
// Parameters: None
// Return: Boolean - whether the date is valid
function validateDepartureDateSubmit()
{
	// Create a date object from the entered departure date 
	var departDateString = document.restool.gsDepartureDate.value;
    var departDate = new Date(departDateString);
	// Create a date object for today.
	var today = new Date();

	var retVal = true;

	departDate = adjustYear(departDate);

	// Find warnings for departures
	// Invalid date entry warning
    var warning = FIND("trDepartureWarning");
	// Date is in the past warning
	var warningPast = FIND("trDepartureWarningPast");

	// Check to see if the date is not a date at all, or fails at RegEx validations
	if (departDate == "NaN" || !validateDateFormat(departDateString))
	{
		// Show invalid date warning
	   warning.style.display = "block"
	   retVal = retVal && false;
	}
	else 
	{
		warning.style.display = "none"
		retVal = retVal && true;
	}	
	
	// Check to see if departure date is before today
	if (departDate != "NaN" && validateDateFormat(departDateString)){
		if (departDate < today)
		{
			// Show date in past warning
		warningPast.style.display = "block"
		retVal = retVal && false;
		}
		else
		{
		warningPast.style.display = "none"
			retVal = retVal && true;
		}
	}else{
			warningPast.style.display = "none";
		}

	return retVal;
}

// Function Name: validateReturnDate
// Purpose: Validates that the return date is not before today and is after depart date, and valid format
// Parameters: None
// Return: Boolean - whether the date is valid
function validateReturnDate()
{
	// Create a date object from the entered return date 
	var returnDateString = document.restool.gsReturnDate.value
    var returnDate = new Date(returnDateString);
	// Create a date object from the entered departure date 
    var departDate = new Date(document.restool.gsDepartureDate.value);
	// Create a date object for today.
	var today = new Date();;

	var retVal = true;

	returnDate = adjustYear(returnDate);
	departDate = adjustYear(departDate);
   
	// Find warnings for returns
	// Date in the past warning
    var warning = FIND("trReturnWarning");
	// Depart > Return warnging
    var warning2 = FIND("trReturnWarning2");
	// Invalid date format warning
    var warningPast = FIND("trReturnWarningPast");
    // Check if the date entered is before today
    
	// Check if user has changed value from default value
	if (document.restool.gsReturnDate.value != "mm/dd/yy")
	{
		// Check if valid date format was entered
		if (returnDate == "NaN" || !validateDateFormat(returnDateString))
		{
			// Show invalid date format warning
		   warning.style.display = "block"    
			retVal = retVal && false;
		}
		else
		{
		   warning.style.display = "none"    
			retVal = retVal && true;
		}
			
		// Check to see if the date entered is before today
		if (returnDate != "NaN" && validateDateFormat(returnDateString)){
			if (returnDate < today)
			{
				// Show past date warning
				warning2.style.display = "block"
				retVal = retVal && false;
			}
			else
			{
				warning2.style.display = "none"
				retVal = retVal && true;
			}
		}else{
			warning2.style.display = "none";
		}
		// Check to see if depart date is after return date		
		if (returnDate != "NaN" && validateDateFormat(returnDateString)){
			if (returnDate > today){		
				if ((departDate >= returnDate) && (departDate != "NaN"))
				{
					// Show Depart > Return date warning
					warning.style.display = "none";
					warning2.style.display = "none";
					warningPast.style.display = "block";
					retVal = retVal && false;
				}
				else
				{
					warningPast.style.display = "none";
					retVal = retVal && true;
				}
			}else{
				warningPast.style.display = "none";
			}
		}else{
			warningPast.style.display = "none";
		}		
		
	}
	else
	{
		// If we are still in the default entry, then return false.
		retVal = false;
	}
	return retVal;
}

// Function Name: validateReturnDateSubmit
// Purpose: Similar to validateReturnDate, but only called on form submit, doesn't check for 'mm/dd/yy'
// Parameters: None
// Return: Boolean - whether the date is valid
function validateReturnDateSubmit()
{
	// Create a date object from the entered return date 
	var returnDateString = document.restool.gsReturnDate.value
    var returnDate = new Date(returnDateString);
	// Create a date object from the entered departure date 
    var departDate = new Date(document.restool.gsDepartureDate.value);
	// Create a date object for today.
	var today = new Date();

	var retVal = true;

	returnDate = adjustYear(returnDate);
	departDate = adjustYear(departDate);
   
	// Find warnings for returns
	// Date in the past warning
    var warning = FIND("trReturnWarning");
	// Depart > Return warnging
    var warning2 = FIND("trReturnWarning2");
	// Invalid date format warning
    var warningPast = FIND("trReturnWarningPast");
    // Check if valid date format was entered
	if (returnDate == "NaN" || !validateDateFormat(returnDateString))
	{
		// Show invalid date format warning
	   warning.style.display = "block"    
		retVal = retVal && false;
	}
	else
	{
	   warning.style.display = "none"    
		retVal = retVal && true;
	}
 
	// Check to see if the date entered is before today
	if (returnDate != "NaN" && validateDateFormat(returnDateString)){
		if (returnDate < today)
		{
			// Show past date warning
			warning2.style.display = "block"
			retVal = retVal && false;
		}
		else
		{
			warning2.style.display = "none"
			retVal = retVal && true;
		}
	}else{
		warning2.style.display = "none";
	}
	// Check to see if depart date is after return date		
	if (returnDate != "NaN" && validateDateFormat(returnDateString)){
		if (returnDate > today){		
			if ((departDate >= returnDate) && (departDate != "NaN"))
			{
				// Show Depart > Return date warning
				warning.style.display = "none";
				warning2.style.display = "none";
				warningPast.style.display = "block";
				retVal = retVal && false;
			}
			else
			{
				warningPast.style.display = "none";
				retVal = retVal && true;
			}
		}else{
			warningPast.style.display = "none";
		}
	}else{
		warningPast.style.display = "none";
	}	
	
	return retVal;
}

// Function Name: adjustYear
// Purpose: Adjusts year from 2 digit to proper four digit
// Parameters: date - Date object to have adjusted year
// Return: Date - object with adjusted date
function adjustYear(date)
{
	// Check if full year returns as less then 2000
	if (parseInt(date.getFullYear(),10) < 2000)
	{
		// Take year and add 2000
		date.setFullYear(2000 + date.getYear());
		return date;
	}
	else
	{
		return date;
	}
}

// Function Name: validateDateFormat
// Purpose: Validates entered date against a regular expression and valid values, accounts for leap years in february.
// Parameters: inDate - string representation of date
// Return: Boolean - whether the date is valid
function validateDateFormat( inDate ) 
{

  // Generate regular expression for "mm/dd/yy" where the month and day can be 1 or 2 digits
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/;

	// Test against ergular expression
	if(!objRegExp.test(inDate))
	{
		// Failure
		return false; 
	}
	else
	{
		// Parse out date components and determine if it is a valid day for the month
		// Find seperator
		var sSeparator = findSeperator(inDate);
		// Split date into array
		var arrayDate = inDate.split(sSeparator);
		// Create array of valid days for each month
		var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31, '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
		// Parse day from array
		var intDay = parseInt(arrayDate[1],10);

		// Determine if month exists
		if(arrayLookup[padAge(arrayDate[0])] != null) {
		  // Determine if the day entered is less then or equal to valid max day
		  if(intDay <= arrayLookup[padAge(arrayDate[0])] && intDay != 0)
			return true; 
	}

	// Process Feruary differently.
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
	   // Pull year out of array
       var intYear = parseInt(arrayDate[2],10);
	   // Determine valid max day for February based on leap year or not.
       if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
          return true; 
       }
  }
  return false; 
}

// Function Name: findSeperator
// Purpose: Helper function for validateDateFormat to find the seperator in the date string
// Parameters: inDate - date to find seperator in
// Return: Char - Seperator used in date string
function findSeperator(inDate)
{
	var i;
	var retVal = "";

	// Loop through each Char in String
	for (i = 0; i < inDate.length; i++)
	{
		// If the current index value is not a number, then it is the seperator
		if (isNaN(inDate.substr(i,1)))
		{
			retVal = inDate.substr(i,1);
		}
	}
	return retVal;
}

// Function Name: longDateTimeStringToShortDateString
// Purpose: Converts a string from format "yyyy-MM-ddT12:34:00" to "MM/dd/yy"
// Parameters: longDateTime - String of long date time
// Return: String - short Date Time
function longDateTimeStringToShortDateString(longDateTime)
{
    var retVal = ""; 
    // Trim down input string to just the date portion   
    var workString = longDateTime.substring(0, (longDateTime.length - longDateTime.indexOf("T") + 1));
    // Split the date into its componenets
    var workArray = workString.split("-");
    
    // Build up return value from date array
    retVal = padAge(workArray[1]).toString() + "/" + padAge(workArray[2]).toString() + "/" + workArray[0].toString().substr(2,2);
    
    return retVal;
}

// Function Name: initDepartureDate
// Purpose: Initializes the departure date to how many days specified out as in the global variables
// Parameters: None
// Return: None
function initDepartureDate()
{
	var DepartDateInput = FIND("gsDepartureDate");
	var d = new Date();

	d.setDate(d.getDate() + g_DepartOffset);

	DepartDateInput.value = padAge((d.getMonth() + 1).toString()) + "/" + padAge(d.getDate().toString()) + "/" +  d.getFullYear().toString().substr(2,2);
}

// Function Name: initReturnDate
// Purpose: Initializes the return date to how many days specified out as in the global variables
// Parameters: None
// Return: None
function initReturnDate()
{
	var ReturnDateInput = FIND("gsReturnDate");
	var d = new Date();
	
	d.setDate(d.getDate() + g_ReturnOffset);

	ReturnDateInput.value = padAge((d.getMonth() + 1).toString()) + "/" + padAge(d.getDate().toString()) + "/" +  d.getFullYear().toString().substr(2,2);
}

function deleteCookie(name, path, domain) {
   var expiredate = new Date();
    expiredate.setTime(expiredate.getDay() - 30);
    document.cookie = name + "=" +( ( path ) ? ";path=" + path : "") +( ( domain ) ? ";domain=" + domain : "" ) +
";expires=" + expiredate.toGMTString();
}

function changeClass(id, newClass) {
    var elemToChange = document.getElementById(id);
    elemToChange.className = newClass;
}