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

  function get_quote_disallowADate(date) {
    if ( date < calc_low_limit_datea )  return true; else return false;
  }

  function AdateChanged(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");
    }
  }

  function get_quote_AdateChanged(calendar) {
    if (calendar.dateClicked) {
      var enddate_tag=document.getElementById('calc_enddate');
      var days_tag=document.getElementById('get_quote_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");
    }
  }

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

  function get_quote_disallowBDate(date) {
    if ( date < calc_low_limit_dateb )  return true; else return false;
  }

  function BdateChanged(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;
    }
  }

  function get_quote_BdateChanged(calendar) {
    if (calendar.dateClicked) {
      var startdate_tag=document.getElementById('calc_startdate');
      var days_tag=document.getElementById('get_quote_days_number');

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

  function DaysChanged() {
    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");
    }
  }


  function get_quote_DaysChanged() {
    var days_tag=document.getElementById('get_quote_days_number');
    var days_number=parseInt(days_tag.options[days_tag.selectedIndex].value);
    var startdate_tag=document.getElementById('calc_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('calc_enddate');
      enddate_tag.value = limit_date.print("%m/%d/%Y");
    }
  }



  function verify_prereservation_simple_form() {
    var tag=document.getElementById('occupants');
    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=parseInt(tag.options[tag.selectedIndex].value);
    tag=document.getElementById('occupants_small');
    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 get_quote_verify_prereservation_simple_form() {
    var tag=document.getElementById('get_quote_occupants');
    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=parseInt(tag.options[tag.selectedIndex].value);
    tag=document.getElementById('get_quote_occupants_small');
    all_occupants+=parseInt(tag.options[tag.selectedIndex].value);

    var date_begin=document.getElementById('calc_startdate').value;
    var date_end=document.getElementById('calc_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 verify_prereservation_form() {
    var location_tag=document.getElementById('location_id');
    var location_id=location_tag.options[location_tag.selectedIndex].value;
    if ( location_id == '0') { alert("Please select a location!"); return false; }
    var condo_type=document.getElementById('condo_type_id');
    var ctype_id=condo_type.options[condo_type.selectedIndex].value;
    if ( ctype_id == '0') { alert("Please select condo type!"); return false; }

    var tag=document.getElementById('occupants');
    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=parseInt(tag.options[tag.selectedIndex].value);
    tag=document.getElementById('occupants_small');
    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 step1_update_lodgingtype_locations() {
    var company_tag=document.getElementById('company_id');
    var company_id=company_tag.value;
    var lodging_type_tag=document.getElementById('lodging_type_id');
    var lodging_type_id=lodging_type_tag.value;
    xajax_ajax_update_lodgingtype_locations(company_id, lodging_type_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function get_quote_step1_update_lodgingtype_locations() {
    var company_tag=document.getElementById('company_id');
    var company_id=company_tag.value;
    var lodging_type_tag=document.getElementById('get_quote_lodging_type_id');
    var lodging_type_id=lodging_type_tag.value;
    xajax_ajax_get_quote_update_lodgingtype_locations(company_id, lodging_type_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function step1_update_lodgingtype_condotypes() {
    var company_tag=document.getElementById('company_id');
    var company_id=company_tag.value;
    var location_tag=document.getElementById('location_id');
    var location_id=location_tag.value;
    var lodging_type_tag=document.getElementById('lodging_type_id');
    var lodging_type_id=lodging_type_tag.value;
    xajax_ajax_update_lodgingtype_condotypes(company_id, lodging_type_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function get_quote_step1_update_lodgingtype_condotypes() {
    var company_tag=document.getElementById('company_id');
    var company_id=company_tag.value;
    var location_tag=document.getElementById('get_quote_location_id');
    var location_id=location_tag.value;
    var lodging_type_tag=document.getElementById('get_quote_lodging_type_id');
    var lodging_type_id=lodging_type_tag.value;
    xajax_ajax_get_quote_update_lodgingtype_condotypes(company_id, lodging_type_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function show_step1_lodgingtype_available_units(show_image) {
    var div=document.getElementById('ajax_available_units_step1');
    if (verify_prereservation_simple_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var company_tag=document.getElementById('company_id');
      var company_id=company_tag.value;
      var lodging_type_tag=document.getElementById('lodging_type_id');
      var lodging_type_id=lodging_type_tag.value;
      var location_tag=document.getElementById('location_id');
      var location_id=location_tag.options[location_tag.selectedIndex].value;
      var tag=document.getElementById('condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('startdate').value;
      var enddate=document.getElementById('enddate').value;
      var tag=document.getElementById('occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null  ) { travelagent_code=tag.value; }

      var filter_unit_name = '';
      var tag=document.getElementById('filter_unit_name');
      if ( typeof(tag)  != "undefined" && tag != null  ) { filter_unit_name = tag.value; }

      var pricing_model=1;
      var tag=document.getElementById('pricing_model');
      if ( tag != null && typeof(tag)  != "undefined" ) { pricing_model = tag.value; }

      xajax_ajax_update_lodgingtype_available_units_matrix(company_id, lodging_type_id, location_id, condo_type_id, startdate, enddate, occupants, occupants_small, travelagent_code, filter_unit_name, 'ajax_available_units', show_image, pricing_model);
      return true;
    } else {
      return false;
    }
  }

  function get_quote_show_step1_lodgingtype_available_units(show_image, remove_filter) {
    var div=document.getElementById('ajax_available_units');
    if (get_quote_verify_prereservation_simple_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var company_tag=document.getElementById('company_id');
      var company_id=company_tag.value;
      var lodging_type_tag=document.getElementById('get_quote_lodging_type_id');
      var lodging_type_id=lodging_type_tag.value;
      var location_tag=document.getElementById('get_quote_location_id');
      var location_id=location_tag.options[location_tag.selectedIndex].value;
      var tag=document.getElementById('get_quote_condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('calc_startdate').value;
      var enddate=document.getElementById('calc_enddate').value;
      var tag=document.getElementById('get_quote_occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('get_quote_occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null  ) { travelagent_code=tag.value; }

      var filter_unit_name = '';
      var tag=document.getElementById('filter_unit_name');
      if ( typeof(tag)  != "undefined" && tag != null  ) {
          if (remove_filter == 1) {
              tag.value = '';
          }
          filter_unit_name = tag.value;
      }

      xajax_ajax_update_lodgingtype_available_units_matrix(company_id, lodging_type_id, location_id, condo_type_id, startdate, enddate, occupants, occupants_small, travelagent_code, filter_unit_name, 'ajax_available_units', show_image);
      return true;
    } else {
      return false;
    }
  }

  function get_quote_show_step1_lodgingtype_available_units_pages(show_image, remove_filter, limit, page) {
    var div=document.getElementById('ajax_available_units');
    if (get_quote_verify_prereservation_simple_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var company_tag=document.getElementById('company_id');
      var company_id=company_tag.value;
      var lodging_type_tag=document.getElementById('get_quote_lodging_type_id');
      var lodging_type_id=lodging_type_tag.value;
      var location_tag=document.getElementById('get_quote_location_id');
      var location_id=location_tag.options[location_tag.selectedIndex].value;
      var tag=document.getElementById('get_quote_condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('calc_startdate').value;
      var enddate=document.getElementById('calc_enddate').value;
      var tag=document.getElementById('get_quote_occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('get_quote_occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null  ) { travelagent_code=tag.value; }

      var filter_unit_name = '';
      var tag=document.getElementById('filter_unit_name');
      if ( typeof(tag)  != "undefined" && tag != null  ) {
          if (remove_filter == 1) {
              tag.value = '';
          }
          filter_unit_name = tag.value;
      }

      xajax_ajax_update_lodgingtype_available_units_matrix_pages(company_id, lodging_type_id, location_id, condo_type_id, startdate, enddate, occupants, occupants_small, travelagent_code, filter_unit_name, limit, page, 'ajax_available_units', show_image);
      return true;
    } else {
      return false;
    }
  }

  function set_quote_search_filter(ftag)
  {
      var tag=document.getElementById('filter_unit_name');
      if ( typeof(tag)  != "undefined" && tag != null  ) {
           tag.value = ftag.value;
      }
  }


  function get_quote_search_by_unit_name_lodgingtype_available_units(show_image) {
    var div=document.getElementById('ajax_available_units');
    if (get_quote_verify_unit_name_simple_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var company_tag=document.getElementById('company_id');
      var company_id=company_tag.value;
      var unit_name_tag=document.getElementById('unit_name');
      var unit_name=unit_name_tag.value;
      var tag=document.getElementById('filter_unit_name');
      if ( typeof(tag)  != "undefined" && tag != null  ) {
      	tag.value=unit_name;
			}
      var lodging_type_tag=document.getElementById('get_quote_lodging_type_id');
      var lodging_type_id=lodging_type_tag.value;
      var location_tag=document.getElementById('get_quote_location_id');
      var location_id=location_tag.options[location_tag.selectedIndex].value;
      var tag=document.getElementById('get_quote_condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('calc_startdate').value;
      var enddate=document.getElementById('calc_enddate').value;
      var tag=document.getElementById('get_quote_occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('get_quote_occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      xajax_ajax_update_lodgingtype_available_units_matrix(company_id, lodging_type_id, location_id, condo_type_id, startdate, enddate, occupants, occupants_small, '', unit_name, 'ajax_available_units', show_image);
      //xajax_ajax_update_available_units_matrix_by_unut_name(company_id, unit_name, 'ajax_available_units', show_image);
      return true;
    } else {
      return false;
    }
  }

  function get_quote_verify_unit_name_simple_form() {
    var tag=document.getElementById('unit_name');
    if ( tag.value == '') { alert("Please enter an Unit Name!"); return false; }
    return true;
  }



  function step1_update_condotypes() {
    var company_tag=document.getElementById('company_id');
    var company_id=company_tag.value;
    var location_tag=document.getElementById('location_id');
    var location_id=location_tag.options[location_tag.selectedIndex].value;
    xajax_ajax_update_condotypes(company_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function step1_update_occupants() {
    var location_tag=document.getElementById('location_id');
    var condo_type_tag=document.getElementById('condo_type_id');
    var location_id=location_tag.options[location_tag.selectedIndex].value;
    var condo_type_id=condo_type_tag.options[condo_type_tag.selectedIndex].value;
    xajax_ajax_update_occupants(condo_type_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function get_quote_step1_update_occupants() {
    var location_tag=document.getElementById('get_quote_location_id');
    var condo_type_tag=document.getElementById('get_quote_condo_type_id');
    var location_id=location_tag.options[location_tag.selectedIndex].value;
    var condo_type_id=condo_type_tag.options[condo_type_tag.selectedIndex].value;
    xajax_ajax_get_quote_update_occupants(condo_type_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
  }

  function step2_update_occupants() {
    var location_tag=document.getElementById('location_id');
    var condo_type_tag=document.getElementById('condo_type_id');
    var location_id=location_tag.options[location_tag.selectedIndex].value;
    var condo_type_id=condo_type_tag.options[condo_type_tag.selectedIndex].value;
    xajax_ajax_update_occupants(condo_type_id, location_id);
    var div=document.getElementById('ajax_available_units');
    // div.innerHTML="&nbsp;";
    document.getElementById('reservation_table2').style.display='none';
  }

  function show_step1_available_units(show_image) {
    var div=document.getElementById('ajax_available_units');
    if (verify_prereservation_simple_form()) {
			div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
			var company_tag=document.getElementById('company_id');
      var company_id=company_tag.value;
      var location_tag=document.getElementById('location_id');
      var location_id=location_tag.options[location_tag.selectedIndex].value;
      var tag=document.getElementById('condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('startdate').value;
      var enddate=document.getElementById('enddate').value;
      var tag=document.getElementById('occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null  ) { travelagent_code=tag.value; }
      xajax_ajax_update_available_units_matrix(company_id, location_id, condo_type_id, startdate, enddate, occupants, occupants_small, travelagent_code, 'ajax_available_units', show_image);
      return true;
    } else {
      return false;
    }
  }

  function show_step1_price_matrix() {
    var div=document.getElementById('ajax_available_units');
    if (verify_prereservation_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var tag=document.getElementById('location_id');
      var location_id=parseInt(tag.value);
      var tag=document.getElementById('condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('startdate').value;
      var enddate=document.getElementById('enddate').value;
      var tag=document.getElementById('occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null  ) { travelagent_code=tag.value; }
      xajax_ajax_update_pricing_matrix(location_id, condo_type_id, startdate, enddate, occupants, occupants_small, 1, travelagent_code);
      return true;
    } else {
      return false;
    }
  }

  function show_step2_price_matrix() {
    var div=document.getElementById('ajax_pricing_matrix');
    if (verify_prereservation_form()) {
      div.innerHTML="<br/><br/><br/><img src='/images/bigrotation.gif' broder='0' /><br/><br/><br/><br/>";
      var tag=document.getElementById('location_id');
      var location_id=parseInt(tag.value);
      var tag=document.getElementById('condo_type_id');
      var condo_type_id=parseInt(tag.options[tag.selectedIndex].value);
      var startdate=document.getElementById('startdate').value;
      var enddate=document.getElementById('enddate').value;
      var tag=document.getElementById('occupants');
      var occupants=parseInt(tag.options[tag.selectedIndex].value);
      var tag=document.getElementById('occupants_small');
      var occupants_small=parseInt(tag.options[tag.selectedIndex].value);

      var travelagent_code='';
      var tag=document.getElementById('travelagent_code');
      if ( typeof(tag)  != "undefined" && tag != null ) { travelagent_code=tag.value; }
      xajax_ajax_update_pricing_matrix(location_id, condo_type_id, startdate, enddate, occupants, occupants_small, 2, travelagent_code);
      return true;
    } else {
      return false;
    }
  }

  function verify_step1_package_available_units() {
    var tag=document.getElementById('lodging_type_id');
    if ( tag.options[tag.selectedIndex].value == '0') { alert("Please select a lodging type!"); return false; }

    var tag=document.getElementById('location_id');
    if ( tag.options[tag.selectedIndex].value == '0') { alert("Please select a location!"); return false; }

    var tag=document.getElementById('condo_type_id');
    if ( tag.options[tag.selectedIndex].value == '0') { alert("Please select a room type!"); return false; }

    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;}

    var tag=document.getElementById('occupants');
    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 = parseInt(tag.options[tag.selectedIndex].value);
    tag=document.getElementById('occupants_small');
    all_occupants += parseInt(tag.options[tag.selectedIndex].value);

    return true;
  }
