

	function loadScript() {
		// *********************************************
		
		var now = new Date();
		var startDate = new Date();
		newDate = new Date(now.getTime() + (7*24*60*60*1000));
		// ---------------------------------------------
		if ((newDate.getMonth()+1)<10) {
			startMonth = "0" + (newDate.getMonth()+1);
		} else {
			startMonth = (newDate.getMonth()+1);
		}
		// ---------------------------------------------
		startDate = startMonth + "/" +  newDate.getDate() + "/" + newDate.getFullYear();
		document.TravelRequestForm.itineraryStartDate.value = startDate;
		//alert("startDate = " + startDate);
		// ---------------------------------------------
		newDate = new Date(now.getTime() + (8*24*60*60*1000));
		// ---------------------------------------------
		if ((newDate.getMonth()+1)<10) {
			startMonth = "0" + (newDate.getMonth()+1);
		} else {
			startMonth = (newDate.getMonth()+1);
		}
		// ---------------------------------------------
		endDate = startMonth + "/" +  newDate.getDate() + "/" + newDate.getFullYear();
		//	endDate = (newDate.getMonth()+1) + "/" +  newDate.getDate() + "/" + newDate.getFullYear();
		document.TravelRequestForm.itineraryEndDate.value = endDate;
		//alert("endDate = " + endDate);
		// *********************************************
	}

  //  var OnLoad = ""; window.onload = function() { eval(OnLoad);


/*
// LOAD DATES DISABLED - DUE TO OTS PROBLEMS
var oldEvt = window.onload; 
    window.onload = function() { 
    
        if (oldEvt) oldEvt(); 
        
     loadScript();
       }
*/

		// ---------------------------------------------
		// NEW DATE STRUCTURE
		// Declaring valid date character, minimum year and maximum year
			var cur = new Date();
			var dtCh= "/";
			var minYear= cur.getFullYear();
			var maxYear=(cur.getFullYear()+1);
			
		//	var dtCh= "/";
		//	var minYear=2005;
		//	var maxYear=2006;

	// -----------------------------------------
		function isInteger(s) {
			var i;
		for (i = 0; i < s.length; i++) {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    	}
    // All characters are numbers.
    	return true;
	}
	// -----------------------------------------
		function stripCharsInBag(s, bag) {
			var i;
			var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    	for (i = 0; i < s.length; i++) {   
        	var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
	}
	// -----------------------------------------
		function daysInFebruary (year) {
		// February has 29 days in any year evenly divisible by four,
    	// EXCEPT for centurial years which are not also divisible by 400.
    	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}
	// -----------------------------------------
		function DaysArray(n) {
			for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}
	// -----------------------------------------
		function isDate(dtStr) {
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
	// -----------------------------------------
	// SWITCH VAR TO OUTPUT 'dd/mm/yyyy' 
	//var strDay=dtStr.substring(0,pos1)
	//var strMonth=dtStr.substring(pos1+1,pos2)
	// -----------------------------------------	
		var strMonth=dtStr.substring(0,pos1)
		var strDay=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)
		
		strYr=strYear
		
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		
		for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYr)
	
	if (pos1==-1 || pos2==-1) {
		// alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]) {
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	//	alert("Please enter a valid 4 digit year from "+minYear+" or "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false) {
	//	alert("Please enter a valid date")
		return false
	}
return true
}


	
	function date_diff(val) {
		// GET THE DATE 330 DAYS FROM TODAY
    		var date330 = "";
    		// parse val for month, day, year
		var dateArray = val.split('/');
		// ---------------------------------------------
		strDate = new Date(dateArray[2],parseInt(dateArray[0],10)-1,dateArray[1]);
		// ---------------------------------------------
		// figure out day, month, year 330 days from today
		date330 = new Date(strDate.getTime() + (330 * 86400000));
		// ---------------------------------------------
		if (navigator.appName == 'Microsoft Internet Explorer') {
			var tmpYear = parseInt(date330.getYear(), 10);
		} else if (navigator.appName == 'Netscape') {
			var tmpYear = parseInt(date330.getYear()+1900, 10);
		} else {
			var tmpYear = parseInt(date330.getYear()+1900, 10);
		}
		// ---------------------------------------------
		// return value
		return (parseInt(date330.getMonth()+1, 10))
			+ '/'
			+ date330.getDate()
			+ '/'
			+ tmpYear
//			+ (parseInt(date330.getYear()+1900, 10));
	}

	
	function daysElapsed(date1, date2) {
		// CALL FUNCTION BY: daysElapsed(FormValue, 330Days)
		// ---------------------------------------------
		var dateArray1 = date1.split('/');
		var dateArray2 = date2.split('/');
		// ---------------------------------------------
		date1 = new Date(dateArray1[2],parseInt(dateArray1[0],10)-1,dateArray1[1]);
		date2 = new Date(dateArray2[2],parseInt(dateArray2[0],10)-1,dateArray2[1]);
		// ---------------------------------------------
		var difference =
			Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0)
			- Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
		// ---------------------------------------------
		return difference/1000/60/60/24;
	}

	
	function y2k(number) {
		return (number < 1000) ? number + 1900 : number;
	}

function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
	var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);

	if (app.indexOf('Netscape') != -1) {
		if (version >= NSvers) {
			if (NSpass>0) newURL=(NSpass==1)?URL:altURL;
		} else {
			if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;
		}
	} else if (app.indexOf('Microsoft') != -1) {
		if (version >= IEvers || verStr.indexOf(IEvers) != -1) {
			if (IEpass>0) newURL=(IEpass==1)?URL:altURL;
		} else {
			if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;
		}
	} else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
	if (newURL) { window.location=unescape(newURL); document.MM_returnValue=false;
	}
}

function MM_reloadPage(init) { //reloads the window if Nav4 resized
	if (init==true) with (navigator) {
		if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
			document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
		}
	} else
		if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);

function MM_findObj(n, d) { //v4.0
	var p,i,x;
	if (!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}

	if (!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n);
	return x;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v3.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
	obj.visibility=v; }
}

function changeto(highlightcolor) {
	source=event.srcElement
	if (source.tagName=="TR"||source.tagName=="TABLE")
	return
	while(source.tagName!="TABLE")
	source=source.parentElement
	if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore")
	source.style.backgroundColor=highlightcolor
}

function changeback(originalcolor) {
	if (event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")
	return
	if (event.toElement!=source)
	source.style.backgroundColor=originalcolor
}

// Start Datefield validation code
var DepartDate = "";
var ReturnDate = "";

function InitSaveVariables(fieldDepartDate,fieldReturnDate) {
	DepartDate = fieldDepartDate.value;
	ReturnDate = fieldReturnDate.value;
}

/*
	Compare the value stored in fieldDepartDate with that stored in fieldReturndate and,
	if the former is greater than the latter, set the value stored in fieldReturnDate
	to be the same as that for fieldDepartDate plus 1 day. NY - 06/25/2002.
*/
	INTERISLAND_STAY_DAYS = 1;
	INBOUND_STAY_DAYS = 7;
	OUTBOUND_STAY_DAYS = 7;


function DepartChecker(fieldDepartDate,fieldReturnDate) {
	var leeDay;

	// alert("test");
	dtDepart = new Date(fieldDepartDate.value);
	dtReturn = new Date(fieldReturnDate.value);

	day = dtDepart.getDate();
	month = dtDepart.getMonth();
	year = dtDepart.getFullYear();
	leeDay = INTERISLAND_STAY_DAYS;
	// COMMENTED BY JOE
/*	if(document.forms[0].packageAttrStr.value==INBOUND_PACKAGE_ATTR) {
		leeDay = INBOUND_STAY_DAYS;
	} else if(document.forms[0].packageAttrStr.value==OUTBOUND_PACKAGE_ATTR) {
		leeDay = OUTBOUND_STAY_DAYS;
	} else {
		leeDay = INTERISLAND_STAY_DAYS;
	}
*/

	//alert("leeday=" + leeDay + " packageAttrStr=" + document.forms[0].packageAttrStr.value);
	for(var i=1; i<=leeDay; i++) {
		day++;
	}

	oldDepart = new Date(fieldDepartDate.value);
	oldDepart.setDate(day);
	newDepart = (oldDepart.getMonth() + 1) + "/" + oldDepart.getDate() + "/" + oldDepart.getFullYear();

	if (dtDepart > dtReturn) {
		fieldReturnDate.value = newDepart;
	}
}

/* See the above routine */
function ReturnChecker(fieldDepartDate,fieldReturnDate) {
	dtDepart=new Date(fieldDepartDate.value);
	dtReturn=new Date(fieldReturnDate.value);
/*
	// This code allows for the validation scheme to automatically
	// place the Departure Date one day before the Return Date.
	// It has been commented out for now.

	day = dtReturn.getDate();
	month = dtReturn.getMonth();
	year = dtReturn.getYear();
	dtReturn.setDate(day - 1);
	newReturn = (dtReturn.getMonth() + 1) + "/" + dtReturn.getDate() + "/" + dtReturn.getYear();

	if (dtReturn < dtDepart) {
		fieldDepartDate.value = newReturn;
	}
*/

	if (dtReturn < dtDepart) {
		fieldDepartDate.value = fieldReturnDate.value;
	}
}
// End Datefield validation code


/*
	Checks to see if the Kama'aina button has been pressed,if not - forward back to
	departure page.
*/




/*** COMMENTED OUT
function getHawaiianIslandByAirportCode(code) {
	switch (code) {
		case "HNL":
			return "Oahu";
			break;
		case "LIH":
			return "Kauai";
			break;
		case "OGG":
			return "Maui";
			break;
		case "KOA":
			return "Hawaii/Big Island";
			break;
		case "ITO":
			return "Hawaii/Big Island";
			break;
		case "LNY":
			return "Lanai";
			break;
		case "MKK":
			return "Molokai";
			break;
		default:
			alert ( "Airport code " + code + " is not Supported");
			return ("Not Supported");
			break;
	}

}
*/
	// -------------------------------
	// HAWAII RESIDENT WARNING
	// -------------------------------
	function MM_findObj(n, d) { 
		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	// -------------------------------
	function MM_showHideLayers() { 
		var i,p,v,obj,args=MM_showHideLayers.arguments;
		for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
		obj.visibility=v; }
	}
	// -------------------------------
	// DISPLAY OPTIONS
	// -------------------------------
	function displayLayers() {
		var i, p, v, obj, args = displayLayers.arguments;
		for(i = 0; i < (args.length - 2); i += 3)
	if ((obj = MM_findObj(args[i])) != null) {
		v = args[i+2];
    if(obj.style) {
		obj = obj.style;
		v = (v == 'show') ? 'block' : (v = 'hide') ? 'none' : v;
	}
		obj.display=v;
	}
}
	// -------------------------------
	function MM_displayLayers() { //v3.0
		var i,p,v,obj,args=MM_displayLayers.arguments;
		for (i=0; i<(args.length-2); i+=3)
	if ((obj=MM_findObj(args[i]))!=null) {
		d=args[i+2];
    if (obj.style) {
		obj=obj.style;
	}
   obj.display=d;
	}
}
	// -------------------------------
	function show(object) {
		if (document.getElementById && document.getElementById(object) != null)
			node = document.getElementById(object).style.visibility='visible';
		else if (document.layers && document.layers[object] != null)
			document.layers[object].visibility = 'visible';
		else if (document.all)
			document.all[object].style.visibility = 'visible';
	}
	// -------------------------------
	function hide(object) {
		if (document.getElementById && document.getElementById(object) != null)
			node = document.getElementById(object).style.visibility='hidden';
		else if (document.layers && document.layers[object] != null)
			document.layers[object].visibility = 'hidden';
		else if (document.all)
			document.all[object].style.visibility = 'hidden';
	}

	// -------------------------------
    //Hide or display child age selection.
    //Excuted when numberOfChildren is changed
	function changeNumberOfChildren() {
		var countChildren = document.TravelRequestForm.numberOfChildren.value;
		var age;
		for (var i=0; i< 6; i++) {
	if (i < countChildren) {
	
		displayLayers('divchild' + i,'','show');
		age = getValueOfSelectObject("childAge" + i);
		
	if (age != "" && age == "0")
	
		displayLayers('divinfant' + i,'','show');
		
	} else {

		displayLayers('divchild' + i,'','hide');
		displayLayers('divinfant' + i,'','hide');
		}
	}
}
	// -------------------------------
    //Hide or display infant seat selection.
    //Excuted when childAge is changed
	function changeChildAge() {
	//infant selection does not apply to non-air
	var countChildren = document.TravelRequestForm.numberOfChildren.value;
	var age;
	for (var i=0; i< countChildren; i++) {
	
		age = getValueOfSelectObject("childAge" + i);
		
	if (age != "" && age == "0")
	
		displayLayers('divinfant' + i,'','show');
		
	else
	
		displayLayers('divinfant' + i,'','hide');
	}
}
	// -------------------------------
	function getValueOfSelectObject(objectName){
		for (var i=0; i<document.TravelRequestForm.elements.length; i++){
			if ( (document.TravelRequestForm.elements[i].name == objectName)
				&& (document.TravelRequestForm.elements[i].type == "select-one"))  {
				return document.TravelRequestForm.elements[i].value;
			}
		}
		//not found
		return "";
	}
	// -------------------------------
	function getValueOfRadioObject(objectName){
		for (var i=0; i<document.TravelRequestForm.elements.length; i++){
			if ( (document.TravelRequestForm.elements[i].name == objectName)
				&& (document.TravelRequestForm.elements[i].type == "radio")
				&& (document.TravelRequestForm.elements[i].checked) )  {
				return document.TravelRequestForm.elements[i].value;
			}
		}
		//not found
		return "";
	}
	// -------------------------------
	// Return false if the number of passengers is greater than 7
	// Check Number of Passenger 
	function checkNumOfPassengers() {
	    //no travellers for car only
  //  	if(isCarOnlyPackage())
 //           return true;
		var countChildren = document.TravelRequestForm.numberOfChildren.value;
		var countAdults = document.TravelRequestForm.numberOfAdults.value;
		var tripTypeValue = document.TravelRequestForm.packageAttrStr.value;
		var countLapInfants = 0;
		var age;
		var inf;
		
		for (var i=0; i< countChildren; i++) {
		
			age = getValueOfSelectObject("childAge" + i);
			
		if (Number(countAdults) + Number(countChildren) > 6) {
			alert("The total number of people must not be greater than 6.");
			return false;			
		}
		
		if (age == "" ) {
				alert("Please specify the age of the child.");
				return false;
			}
			if (age != "" && age == "0") {
			
				inf = getValueOfRadioObject("infant" + i);
				
				if (inf == "") {
					alert("Please select infant in seat or lap.");
					return false;
				}
				if (inf == "lap") {
					countLapInfants ++;
				}
			}
		}
		if (countAdults < countLapInfants) {
			alert("The number of infants in laps must not be greater than the number of adults traveling");
			return false;
		}
		return true;

	}

	// -------------------------------
// This function is called when the submit image or link is clicked. The validations done here should
// really be done in supporting Java code, but in the interest of time we added them here.
/*
function submitForm() {

	if (checkNumOfPassengers() && dateChecker()) {
		document.TravelRequestForm.submit();
	}
}
*/
	// -------------------------------
	function selectForm(link) {
		var url=link;
      if (  (url != "")  &&  (url != null)  )
      window.location=url;
  	 else
      alert("\nYou must make a selection.");
	}

	// -------------------------------
	// TOOL TIP
   //Toggle Alt Mandatory notation
   //switch layers for different browsers
	var ie4 = (document.all) ? true : false;
	var ns4 = (document.layers) ? true : false;
	var ns6 = (document.getElementById && !document.all) ? true : false;
	function hidelayer(lay) {
	if (ie4) {document.all[lay].style.visibility = "hidden";}
	if (ns4) {document.layers[lay].visibility = "hide";}
	if (ns6) {document.getElementById([lay]).style.display = "none";}
	}
	function showlayer(lay) {
	if (ie4) {document.all[lay].style.visibility = "visible";}
	if (ns4) {document.layers[lay].visibility = "show";}
	if (ns6) {document.getElementById([lay]).style.display = "block";}
	}
	// -------------------------------

	function trim(str) {
		str.replace(/^\s*/, '').replace(/\s*$/, '');
		return str;
	}
	
	
