
<!--
// Add 3 working days to today's date and return it as a formatted string
// (C) GemBiz 2006


function emptyField( thisField, errMsg ) {

     if (thisField.value == "") {
          alert( errMsg );
          thisField.focus();
          return false;
     }

     return true;
}

function twoDigits( v ) {
     return ( v.length == 1 ) ? "0"+v : v;
}


function later3( y, m, d, msg ) {

     var refDate = y + twoDigits(m) + twoDigits(d);

     dt = new Date();
     dy = dt.getDay();
     switch( dy ) {
          case 4:   // Thu, Fri Sat
          case 5:
          case 6:   extra = 4;
                    break;

          default:  extra = 3;  // Sun. mon and tue
                    break;
     }

     bookingDay = new Date();
     bookingDay.setDate( dt.getDate() + extra );

     var bookingDate = bookingDay.getFullYear() + twoDigits( (bookingDay.getMonth().toString())+1 ) + twoDigits( bookingDay.getDate().toString() );

     if (refDate >= bookingDate)
          return true;
     else{
          alert ( msg );
          return false;
     }
}

function dateRange( year, month, day, msg ) {

     var result = false;
     var daysInMonth;

     switch( month ) {
          case "02":  daysInMonth = ( ( year % 4 ) == 0 ) ? 29 : 28;
                      break;

          case "04":
          case "06":
          case "09":
          case "11":  daysInMonth = 30;
                      break;

          default:    daysInMonth = 31;
                      break;
     }


     if ( day <= daysInMonth && day > 0)
          result = true;
     else
          alert( msg );

     return result;
}


function add3workDays( ) {
     var dt;
     var newDt;
     var dy;
     var txt;
     var extra;
     var prefix;
     var names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
                           "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" );

     // Day numbers - Sunday is zero
     //
     dt = new Date;
     dy = dt.getDay();
     switch( dy ) {

          case 4:
          case 5:
          case 6:   extra = 4;  // Thur, Fri and Sat
                    break;

          default:  extra = 3;  // Sun. mon, tue and wed
                    break;
     }

     newDt = new Date;
     newDt.setDate( dt.getDate() + extra );

     switch( newDt.getDate ) {
          case 1:
          case 21:
          case 31:  prefix = "st ";
                    break;

          case 2:
          case 22:  prefix = "nd ";
                    break;

          case 3:
          case 23:  prefix = "rd ";
                    break;

          default:  prefix = "th ";
                    break;
     }


     var obj = document.getElementById("bkdate");
     obj.value =  newDt.getDate() + prefix + names[newDt.getMonth()] + " " + newDt.getFullYear();


}

function validate( thisForm ) {

     // Ensure that the following fields have data in

     if ( emptyField( thisForm.carReg1, "Please enter the registration number of your car") == false )
          return false;

     if ( emptyField( thisForm.tel, "Please enter a Telephone Number where you can be contacted") == false )
          return false;

     if ( dateRange( thisForm.year.value, thisForm.month.value, thisForm.day.value, "The booking date is not valid") == false )
          return false;

     if ( later3( thisForm.year.value, thisForm.month.value, thisForm.day.value, "The booking date must be at least 3 days from now, 4 including Sunday" ) == false)
          return false;

     if ( thisForm.mot.checked == false && thisForm.service.checked == false && thisForm.other.checked == false){
          alert("Is this request for a mot, service or other");
          return false;
     }

     if ( emptyField( thisForm.work, "Please give a brief description of the work to be carried out") == false )
          return false;

     if ( emptyField( thisForm.customerEmail, "Please give us your email address so that we can confirm your booking") == false )
          return false;


     return true;



}

//-->
