$.Require(["/js/vlaCal.js"],function() {

	var todayAtMidnight=(new Date()).getDateAtFirst();
    var calOpts={
			format:"m/d/y",
			twoDigitYear:false,
			alignX:"left",
			alignY:"bottom"/**/,
			offset:{x:80,y:-16},
			alternateHideFn:Browser.Engine.trident5,
			alternateShowFn:Browser.Engine.trident5,
			maxShownDate:todayAtMidnight.addMilliseconds(1000*60*60*24*365),//12 months from the 1st
			minShownDate:todayAtMidnight,
			quickPickMonth:false,
			quickPickYear:false,
            inputPrefix:""
	}
    var startPickCallback=function(date,visible,self) {
        var end=self.getParent("form").getElement(".vlaEndDate");
        var startDate=new Date(self.value.replace(self.get("prefix"), ""))
        var endDate=new Date(end.value.replace(end.get("prefix"), ""))
        var now=new Date();
        now=new Date((now.getMonth()+1)+"/"+now.getDate()+"/"+now.getFullYear());//this gets todays date starting at midnight, instead of this exact second

        var param=new Date(date.month+"/"+date.day+"/"+date.year)
        //if the end/departure date is less than the newly selected start/arrival date...set it to blank
        if (endDate<param) end.calendar.setDate(param.addMilliseconds(1000*60*60*24*4))

        //if they selected a start/arrival date before today (@ midnight), scoot them up to now
        if (now>startDate) {
            this.setDate(now)
            param=now;
        }

        //if end/departure date is blank or MM/DD/YYYY then set it to now+5days
        if (isNaN(endDate)) {
            var plus5days=1000*60*60*24*5
            plus5days=param.getTime()+plus5days
            end.calendar.setDate(new Date(plus5days))
        }

        //if the calendar is visible and we need to update a calendar overlay...do it
        //if (visible&&typeof(cal)!="undefined") cal.updateCalendarFromInputBoxes.call(cal)
		
    }
    var endPickCallback=function(date,visible,self) {
		var start=self.getParent("form").getElement(".vlaStartDate");
        //if start date is greater than end date, scoot them up
        if (new Date(start.value.replace(start.get("prefix"), ""))>new Date(date.month+"/"+date.day+"/"+date.year)) this.setDate(new Date(start.value.replace(start.get("prefix"), "")).addMilliseconds(1000*60*60*24*4))
		//if (visible&&typeof(cal)!="undefined")cal.updateCalendarFromInputBoxes.call(cal)
		this.linkedUpdate();
    }

    $(document.body).addEvent("click",function(event) {
        var self=$(event.target);

        if (self.hasClass("vlaStartDate")||self.hasClass("vlaEndDate")) {
            var start=self.getParent("form").getElement(".vlaStartDate");
            calOpts.inputPrefix=start.get("prefix")||calOpts.inputPrefix;
		    if (start.calendar==null)start.calendar=new vlaDatePicker(start,calOpts)//.addEvent("pick",startPickCallback);
            var end=self.getParent("form").getElement(".vlaEndDate");
            calOpts.inputPrefix=end.get("prefix")||calOpts.inputPrefix;
		    if (end.calendar==null)end.calendar=new vlaDatePicker(end,calOpts)//.addEvent("pick",endPickCallback);
	        self.fireEvent("focus")
            event.stop()
        }
    })
})
