
    // Function adjusts the return date to be at least one day greater then the pickup date when the pickup date changes
    function adjustReturnDate(){
    	
        var currentPickupDate = new Date(document.checkAvalability.pickupDate.value);
	var currentReturnDate = new Date(document.checkAvalability.returnDate.value);

        if ( currentPickupDate.valueOf() >= currentReturnDate.valueOf() )
        {
            var newReturnDate = new Date(currentPickupDate.valueOf()+(24*60*60*1000));

            var month = parseInt(newReturnDate.getMonth()) + 1;
	    if (month < 10) {
		month = "0" + month;
	    }

	    var day = newReturnDate.getDate();
	    if (day < 10) {
		day = "0" + day;
	    }
		
	    document.checkAvalability.returnDate.value = month+"/"+day+"/"+newReturnDate.getFullYear();

	    adjustReturnTime();
        }
    }

// This method is called each time the location is changed
function onLocationChange() {

    var errorMessage = document.getElementById("errorMessage");
    errorMessage.firstChild.nodeValue="";

    adjustPickupTime();
    adjustReturnTime();
}

// This method is called each time the pickupTime is changed...
function adjustPickupTime() {

    adjustReturnDate();

    var errorMessage = document.getElementById("errorMessage");
    //    errorMessage.firstChild.nodeValue="";

    var location = document.checkAvalability.pickupLocation.value;
    var pickupDate = new Date(document.checkAvalability.pickupDate.value);
    var pickupTime = document.checkAvalability.pickupTime.value;

    var weekdayNames = new Array(7);
    weekdayNames[0]="Sunday";
    weekdayNames[1]="Monday";
    weekdayNames[2]="Tuesday";
    weekdayNames[3]="Wednesday";
    weekdayNames[4]="Thursday";
    weekdayNames[5]="Friday";
    weekdayNames[6]="Saturday";

    // Default times when a location is not selected...
    var openTime = 8;
    var closeTime = 19;

    // First we must determine if a location is selected (if not then we must
    // use the default settings.
    if (location != "") {

        var openTimeStr = location+"."+weekdayNames[pickupDate.getDay()]+".open";
        var closeTimeStr = location+"."+weekdayNames[pickupDate.getDay()]+".close";
        openTime = document.checkAvalability[openTimeStr].value;
        closeTime = document.checkAvalability[closeTimeStr].value;

	// The current times use minutes in a decimal format so we must
	// first convert those to proper decimal
	openTime = Math.floor(openTime) + ((openTime - Math.floor(openTime)) * 100/60);
	closeTime = Math.floor(closeTime) + ((closeTime - Math.floor(closeTime)) * 100/60);
    }

    // This is usually .25/.5/1 which is the increment between times.
    var intMinInc = document.checkAvalability.intMinInc.value;

    // Any number less than one is considered closed....
    if ((openTime > 1) && (closeTime > 1)) {

	emptyCombobox(document.checkAvalability.pickupTime);
	//confirm("open time:"+openTime);
	//confirm("close time:"+closeTime);
	
	var time = parseFloat(openTime);
	var selectedTime = 0;

	do {

	    // We need to convert the time into the display time
	    // AKA the minutes are in decimal and hours are fine
	    // unless they are greater than twelve then subtract
	    // twelve and change to PM 
	    var meridien = "AM";
	    var hour = Math.floor(time);                
	    var minutes = (time - hour) * 60;
	    
	    if (hour > 11) {
		meridien = "PM";
	    }
	    if (hour > 12) {
		hour = hour - 12;
	    }
	    
	    var newPickupTimeName = hour+":"+minutes+" "+meridien;
	    var newPickupTimeValue = hour+":"+minutes+meridien;

	    if (minutes == "0") {
		//confirm("Time:"+hour+":00 "+meridien);
		newPickupTimeName = hour+":00 "+meridien;
		newPickupTimeValue = hour+":00"+meridien;
	    }

	    document.checkAvalability.pickupTime.options[document.checkAvalability.pickupTime.length] = new Option(newPickupTimeName, newPickupTimeValue);
	    
	    if (pickupTime == newPickupTimeValue) {
		//confirm(pickupTime+"=="+newPickupTimeValue+document.checkAvalability.pickupTime.length);
		selectedTime = document.checkAvalability.pickupTime.length - 1;
	    }
	    
	    time = time + parseFloat(intMinInc);
	    
	    //confirm("logic:"+time+"<"+closeTime);	    
	    
	} while (time <= parseFloat(closeTime));
	
	document.checkAvalability.pickupTime.selectedIndex = selectedTime;

    } else {
	// Best option here since they are closed is to add one day to the
	// date...
	errorMessage.firstChild.nodeValue="Please select a new pickup date, this location is closed on " + weekdayNames[pickupDate.getDay()];
        
    }
}

function adjustReturnTime() {

    adjustReturnDate();

    var errorMessage = document.getElementById("errorMessage");
    //    errorMessage.firstChild.nodeValue="";

    var location = document.checkAvalability.pickupLocation.value;
    var returnDate = new Date(document.checkAvalability.returnDate.value);
    var returnTime = document.checkAvalability.returnTime.value;

    var weekdayNames = new Array(7);
    weekdayNames[0]="Sunday";
    weekdayNames[1]="Monday";
    weekdayNames[2]="Tuesday";
    weekdayNames[3]="Wednesday";
    weekdayNames[4]="Thursday";
    weekdayNames[5]="Friday";
    weekdayNames[6]="Saturday";

    // Default times when a location is not selected...
    var openTime = 8;
    var closeTime = 19;

    // First we must determine if a location is selected (if not then we must
    // use the default settings.
    if (location != "") {

        var openTimeStr = location+"."+weekdayNames[returnDate.getDay()]+".open";
        var closeTimeStr = location+"."+weekdayNames[returnDate.getDay()]+".close";
        openTime = document.checkAvalability[openTimeStr].value;
        closeTime = document.checkAvalability[closeTimeStr].value;

	// The current times use minutes in a decimal format so we must
	// first convert those to proper decimal
	openTime = Math.floor(openTime) + ((openTime - Math.floor(openTime)) * 100/60);
	closeTime = Math.floor(closeTime) + ((closeTime - Math.floor(closeTime)) * 100/60);
    }

    // This is usually .25/.5/1 which is the increment between times.
    var intMinInc = document.checkAvalability.intMinInc.value;

    //confirm("openTime:"+openTime+" close:"+closeTime+" day:"+weekdayNames[returnDate.getDay()]);

    // Any number less than one is considered closed....
    if ((openTime > 1) && (closeTime > 1)) {

	emptyCombobox(document.checkAvalability.returnTime);
	//confirm("open time:"+openTime);
	//confirm("close time:"+closeTime);
	
	var time = parseFloat(openTime);
	var selectedTime = 0;

	do {

	    // We need to convert the time into the display time
	    // AKA the minutes are in decimal and hours are fine
	    // unless they are greater than twelve then subtract
	    // twelve and change to PM 
	    var meridien = "AM";
	    var hour = Math.floor(time);                
	    var minutes = (time - hour) * 60;
	    
	    if (hour > 11) {
		meridien = "PM";
	    }
	    if (hour > 12) {
		hour = hour - 12;
	    }
	    
	    var newReturnTimeName = hour+":"+minutes+" "+meridien;
	    var newReturnTimeValue = hour+":"+minutes+meridien;

	    if (minutes == "0") {
		//confirm("Time:"+hour+":00 "+meridien);
		newReturnTimeName = hour+":00 "+meridien;
		newReturnTimeValue = hour+":00"+meridien;
	    }

	    document.checkAvalability.returnTime.options[document.checkAvalability.returnTime.length] = new Option(newReturnTimeName, newReturnTimeValue);
	    
	    if (returnTime == newReturnTimeValue) {
		//confirm(returnTime+"=="+newReturnTimeValue+document.checkAvalability.returnTime.length);
		selectedTime = document.checkAvalability.returnTime.length - 1;
	    }
	    
	    time = time + parseFloat(intMinInc);
	    
	    //confirm("logic:"+time+"<"+closeTime);	    
	    
	} while (time <= parseFloat(closeTime));
	
	document.checkAvalability.returnTime.selectedIndex = selectedTime;

    } else {
	// Best option here since they are closed is to add one day to the
	// date...
	errorMessage.firstChild.nodeValue="Please select a new return date, this location is closed on " + weekdayNames[returnDate.getDay()];
        
    }
}

function emptyCombobox( box ) {
	// Set each option to null thus removing it
	while ( box.options.length ) box.options[0] = null;
}

// This method was added for missing images on the auto sales pages we swap them with
// our predefined missing image...
function handleMissingImage(image) 
{
  image.src = "images/missing_image.jpg";
  image.onerror="";
  return true;
}
