  function CalendarDisallowADate(date) {
    if ( date < low_limit_datea )  return true; else return false;
  }

  function CalendarAdateChanged(calendar) {
    if (calendar.dateClicked) {
      var enddate_tag=document.getElementById('enddate');
      var days_tag=document.getElementById('days_number');

      var days_number=parseInt(days_tag.options[days_tag.selectedIndex].value);
      // OK, a date was clicked, setup the end date
      var enddate=new Date(calendar.date.getFullYear(), calendar.date.getMonth(), calendar.date.getDate() + days_number );
      enddate_tag.value = enddate.print("%m/%d/%Y");
    	CalendarUpdateData();
    }
  }

  function CalendarDisallowBDate(date) {
    if ( date < low_limit_datea )  return true; else return false;
  }

  function CalendarBdateChanged(calendar) {
    if (calendar.dateClicked) {
      var startdate_tag=document.getElementById('startdate');
      var days_tag=document.getElementById('days_number');

      days_tag.selectedIndex=days_between(calendar.date, Date.parseDate(startdate_tag.value, "%m/%d/%Y")) -1;
    	CalendarUpdateData();
    }
  }

  function CalendarDaysChanged() {
    var days_tag=document.getElementById('days_number');
    var days_number=parseInt(days_tag.options[days_tag.selectedIndex].value);
    var startdate_tag=document.getElementById('startdate');
    var filter=/^\d{1,2}\/\d{1,2}\/\d{2,4}$/;
    if ( filter.test(startdate_tag.value)) {
      var limit_date=Date.parseDate(startdate_tag.value, "%m/%d/%Y");
      limit_date.setDate(limit_date.getDate() + days_number);
      var enddate_tag=document.getElementById('enddate');
      enddate_tag.value = limit_date.print("%m/%d/%Y");
    }
    CalendarUpdateData();
  }

  function Calendar_verify_prereservation_simple_form() {
    var tag=document.getElementById('occupants');
    if (tag.type == 'hidden') {
        var occupants = parseInt(tag.value);
    } else {
        if ( tag.options[tag.selectedIndex].value == '0') { alert("Please select a number of occupants!"); return false; }
        var occupants=parseInt(tag.options[tag.selectedIndex].value);
    }

    var all_occupants=occupants;
    tag=document.getElementById('occupants_small');
    if (tag.type == 'hidden') {
        all_occupants+=parseInt(tag.value);
    } else {
        all_occupants+=parseInt(tag.options[tag.selectedIndex].value);
    }

    var date_begin=document.getElementById('startdate').value;
    var date_end=document.getElementById('enddate').value;
    if (! check_usdate(date_begin)) { alert(date_begin+ ' is not a valid date value. Please use mm/dd/yy format.'); return false; }
    if (! check_usdate(date_end)) { alert(date_end + ' is not a valid date value. Please use mm/dd/yy format.'); return false; }
    if (! compare_dates_strong(date_begin, date_end)) { alert('Please select a valid reservation period! Begin date can not be later or equal the end date.');  return false;}

    return true;
  }



  function objWidth(objectID) {var obj = xDOM(objectID,0); if(obj.offsetWidth) return  obj.offsetWidth; if (obj.clip) return obj.clip.width; return 0;}        function objHeight(objectID) {var obj = xDOM(objectID,0); if(obj.offsetHeight) return  obj.offsetHeight; if (obj.clip) return obj.clip.height; return 0;}    function objLeft(objectID) {var obj = xDOM(objectID,0);var objs = xDOM(objectID,1); if(objs.left) return objs.left; if (objs.pixelLeft) return objs.pixelLeft; if (obj.offsetLeft) return obj.offsetLeft; return 0;} function objTop(objectID) {var obj = xDOM(objectID,0);var objs = xDOM(objectID,1); if(objs.top) return objs.top; if (objs.pixelTop) return objs.pixelTop; if (obj.offsetTop) return obj.offsetTop; return 0;} function objRight(objectID) {return objLeft(objectID)+objWidth(objectID);} function objBottom(objectID) {return objTop(objectID)+objHeight(objectID);} function objLayer(objectID) {var objs = xDOM(objectID,1); if(objs.zIndex) return objs.zIndex; return 0;} function objVisible(objectID) {var objs = xDOM(objectID,1); if(objs.visibility == 'hide' || objs.visibility == 'hidden') return 'hidden'; return 'visible';}






var  reserved_days={};

 function CalendarUpdateData(not_update_pagedate) {
 	YAHOO.site.noupdate=true;
 	var startdate=document.getElementById('startdate').value;
 	var enddate=Date.parse(document.getElementById('enddate').value);
 	enddate=enddate.addDays(-1);
 	YAHOO.site.AvailabilityCalendar.select(startdate+'-'+enddate.toString("MM/dd/yyyy"));
 	var selectedDates = YAHOO.site.AvailabilityCalendar.getSelectedDates();
 	if (selectedDates.length > 0) {
 		var firstDate = selectedDates[0];
		if (typeof(not_update_pagedate) == 'undefined' || not_update_pagedate==false) {
 			YAHOO.site.AvailabilityCalendar.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear());
 		}

 		for (var i=0; i < selectedDates.length; i++) {
 			var itemDate = selectedDates[i];
 			if ( reserved_days[itemDate.toString("MM/dd/yyyy")] ==1) {
 				YAHOO.site.noupdate=false;
 				alert("This unit is not available for selected dates!");
 				return true;
 			}
 		}
 	}
 	YAHOO.site.AvailabilityCalendar.render();
 	YAHOO.site.noupdate=false;

 	if (document.getElementById('reservation_startdate')) { document.getElementById('reservation_startdate').value = document.getElementById('startdate').value; }
 	if (document.getElementById('reservation_enddate')) { document.getElementById('reservation_enddate').value = document.getElementById('enddate').value; }
 	if (document.getElementById('reservation_occupants')) { document.getElementById('reservation_occupants').value = document.getElementById('occupants').options[document.getElementById('occupants').selectedIndex].value; }
 	if (document.getElementById('reservation_occupants_small')) { document.getElementById('reservation_occupants_small').value = document.getElementById('occupants_small').options[document.getElementById('occupants_small').selectedIndex].value; }
 }


 function CalendarHandleSelect(type,args,obj) {
 		if ( YAHOO.site.noupdate) {
 			return true;
 		} else {
    var dates = args[0];
    var date = dates[0];
    var year = date[0], month = date[1]-1, day = date[2];

    var startdate_tag=document.getElementById('startdate');
    var startdate=new Date(year, month, day);
    startdate_tag.value = startdate.toString("MM/dd/yyyy");

    var enddate_tag=document.getElementById('enddate');
    var days_tag=document.getElementById('days_number');

    var days_number=parseInt(days_tag.options[days_tag.selectedIndex].value);
    // OK, a date was clicked, setup the end date
    var enddate=new Date(year, month, day + days_number );
    enddate_tag.value = enddate.toString("MM/dd/yyyy");
    CalendarUpdateData(true);
  }
}


