function makeTwoChars(inp) {
        return String(inp).length < 2 ? "0" + inp : inp;
}

function initialiseDatePickers() {
        // Attempt to grab the datePicker objects
        var sd = datePickerController.datePickers["sd"];
        var ed = datePickerController.datePickers["ed"];
        
        // For Internet Explorer: If they are not created then call this function 500 milliseconds later
        if(!sd || !ed) {
                setTimeout("initialiseDatePickers()", 200);
                return;
        }
        
        // Reset the low ranges to be today for both the datePickers
        var today = new Date();
        today = String(today.getFullYear()) + makeTwoChars(today.getMonth()+1) + makeTwoChars(today.getDate());

        sd.setRangeLow( today );
        ed.setRangeLow( today );
        
        // Clear any old values from the inputs (that might be cached by the browser after a page reload)
        //document.getElementById("sd").value = "";
        //document.getElementById("ed").value = "";

        // Add the onchange event handler to the start date input
        document.getElementById("sd").onchange = setReservationDates;
}

function setReservationDates(e) {
        // Check the associated datePicker object is available (be safe)
        if(!("sd" in datePickerController.datePickers)) {
                return;
        }
        
        // Check the value of the input is a date of the correct format
        var dt = datePickerController.dateFormat(this.value, datePickerController.datePickers["sd"].format.charAt(0) == "m");
        
        // If the inputs value cannot be parsed as a valid date then return
        if(dt == 0) return;

        // Grab the value set within the endDate input and parse it using the dateFormat method
        // N.B: The second parameter to the dateFormat function, if TRUE, tells the function to favour the m-d-y date format
        var edv = datePickerController.dateFormat(document.getElementById("ed").value, datePickerController.datePickers["ed"].format.charAt(0) == "m");

        // Grab the end date datePicker Objects
        var ed = datePickerController.datePickers["ed"];

        ed.setRangeLow( dt );
        
        // If theres a value already present within the end date input and its smaller than the start date
        // then clear the end date value
        if(edv < dt) {
                document.getElementById("ed").value = "";
        }
}

datePickerController.addEvent(window, 'load', initialiseDatePickers);