function checkCalendarDate(f){
  var error;

  // array for "DD-MON-YYYY" format
	var months = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
	months["JAN"] = "01";
	months["FEB"] = "02";
	months["MAR"] = "03";
	months["APR"] = "04";
	months["MAY"] = "05";
	months["JUN"] = "06";
	months["JUL"] = "07";
	months["AUG"] = "08";
	months["SEP"] = "09";
	months["OCT"] = "10";
	months["NOV"] = "11";
	months["DEC"] = "12";

	/////////////////////////////////////////////////
	// check the first 4 signs in "check_in"
	/////////////////////////////////////////////////
	var test_in = f.check_in.value.substr(0,4);
	if(test_in!=""){
		if(test_in.match(/^[+-]?[0-9]+$/)){ //
			// YYYY-MM-DD format
			var Date_in = f.check_in.value.substr(8,2);
			var Month_in = f.check_in.value.substr(5,2);
			var Year_in = f.check_in.value.substr(0,4);
		}else{
			// "DD-MON-YYYY" format
			Date_in = f.check_in.value.substr(0,2);
			Month_in = f.check_in.value.substr(3,3);
			Month_in = months[Month_in];
			Year_in = f.check_in.value.substr(7,4);
		}
	}
	// check the first 4 signs in "check_out"
	var test_out = f.check_out.value.substr(0,4);
	if(test_out!=""){
		if(test_out.match(/^[+-]?[0-9]+$/)){ //
			// YYYY-MM-DD format
			var Date_out = f.check_out.value.substr(8,2);
			var Month_out = f.check_out.value.substr(5,2);
			var Year_out = f.check_out.value.substr(0,4);
		}else{
			// "DD-MON-YYYY" format
			Date_out = f.check_out.value.substr(0,2);
			Month_out = f.check_out.value.substr(3,3);
			Month_out = months[Month_out];
			Year_out = f.check_out.value.substr(7,4);
		}
	}
	var checkInUS = Month_in + "/" + Date_in + "/" + Year_in;
	var checkOutUS = Month_out + "/" + Date_out + "/" + Year_out;
  
  if(document.getElementById('check_in1_Day_ID')){
    // for Example: alternative period in group request
    /////////////////////////////////////////////////
    // check the first 4 signs in "check_in1"
    /////////////////////////////////////////////////
    var test_in1 = f.check_in1.value.substr(0,4);
    if(test_in1!=""){
      if(test_in1.match(/^[+-]?[0-9]+$/)){ //
        // YYYY-MM-DD format
        var Date_in1 = f.check_in1.value.substr(8,2);
        var Month_in1 = f.check_in1.value.substr(5,2);
        var Year_in1 = f.check_in1.value.substr(0,4);
      }else{
        // "DD-MON-YYYY" format
        Date_in1 = f.check_in1.value.substr(0,2);
        Month_in1 = f.check_in1.value.substr(3,3);
        Month_in1 = months[Month_in1];
        Year_in1 = f.check_in1.value.substr(7,4);
      }
    }
    // check the first 4 signs in "check_out1"
    var test_out1 = f.check_out1.value.substr(0,4);
    if(test_out1!=""){
      if(test_out1.match(/^[+-]?[0-9]+$/)){ //
        // YYYY-MM-DD format
        var Date_out1 = f.check_out1.value.substr(8,2);
        var Month_out1 = f.check_out1.value.substr(5,2);
        var Year_out1 = f.check_out1.value.substr(0,4);
      }else{
        // "DD-MON-YYYY" format
        Date_out1 = f.check_out1.value.substr(0,2);
        Month_out1 = f.check_out1.value.substr(3,3);
        Month_out1 = months[Month_out1];
        Year_out1 = f.check_out1.value.substr(7,4);
      }
    }
    var checkInUS1 = Month_in1 + "/" + Date_in1 + "/" + Year_in1;
    var checkOutUS1 = Month_out1 + "/" + Date_out1 + "/" + Year_out1;
  }

  /////////////////////////////////////////////////
  // check the inputs
  /////////////////////////////////////////////////
  if(f.name!='group_req'){ // all other
    var now = new Date();
    var Date_t = now.getDate();
    var Month_t = now.getMonth()+1;
    var Year_t = now.getFullYear();
    var todayUS = Month_t + "/" + Date_t + "/" + Year_t;

    if( (Date.parse(checkOutUS) <= Date.parse(checkInUS)) || (Date.parse(checkInUS) < Date.parse(todayUS)) ){
      error = 1;
//alert('error1: '+error);
    }
    if( (Date.parse(checkOutUS1) <= Date.parse(checkInUS1)) || (Date.parse(checkInUS1) < Date.parse(todayUS)) ){
      error = 2;
//alert('error2: '+error);
    }
  }else{ // 'group_req' only
    var now_7 = new Date();
    now_7.setDate(now_7.getDate() +7);
    var Date_t_7 = now_7.getDate();
    var Month_t_7 = now_7.getMonth()+1;
    var Year_t_7 = now_7.getFullYear();
    var todayUS_7 = Month_t_7 + "/" + Date_t_7 + "/" + Year_t_7;

    if( (Date.parse(checkOutUS) <= Date.parse(checkInUS)) ||
        (Date.parse(checkOutUS1) <= Date.parse(checkInUS1)) ){
      error = 3;
//alert('error3: '+error);
    }else if( (Date.parse(checkInUS) < Date.parse(todayUS_7)) ||
              (Date.parse(checkInUS1) < Date.parse(todayUS_7)) ){
      error = 4;
//alert('error4: '+error);
    }
  }

  if(error==1 || error==2){
    alert("Please enter valid check in and check out date!");
		return false;
  }else if(error==3){
    alert("Check out date can not be < check in date!\nPlease enter valid check in and check out date!");
    return false;
  }else if(error==4){
    var from = Date_t_7 + "-" + Month_t_7 + "-" + Year_t_7;
    alert("Check in date can not be < "+from+"!\nPlease enter valid check in and check out date!");
    return false;
  }else{
    return true;
  }
}
