var error = "";

function validateDate(field, message)
{
   error = "";
   field.style.background = 'White';
   // Regular expression used to check if date is in correct format
   var RegExPattern = "^((([0]?[1-9])|([0-2][0-9])|([3][0|1]))[-](([0]?[1-9])|([0][1-9])|([1][0-2]))[-][1|2][0-9][0-9][0-9])$";
   //var RegExPattern = "^((([0]?[1-9])|([0-3][0-9]))[-](([0]?[1-9])|([0|1][0-9]))[-][1|2][0-9][0-9][0-9])$";
   //var RegExPattern = "^([0-3][0-9][-][0|1][0-9][-][1|2][0-9][0-9][0-9])$";
   //var RegExPattern = "([0-3][0-9][-][0|1][0-9][-][1|2][0-9][0-9][0-9])";
   if(field.value.match(RegExPattern))
   {
      var date_array = field.value.split('-');
      var day = date_array[0];
      // Attention! Javascript consider months in the range 0 - 11
      var month = date_array[1] - 1;
      var year = date_array[2];	  
      // This instruction will create a date object
      source_date = new Date(year,month,day);	  
      if(year != source_date.getFullYear() || month != source_date.getMonth() || day != source_date.getDate())
      {
		 field.style.background = 'Yellow';
         error += message +" "+"date is not valid!";
      }	  
   }
   else
   {
	  field.style.background = 'Yellow';
      error += message +" "+"contains illegal characters!";
   }
   
   
   if (error != ""){
	error+="\n";

	}

   return error;
}

function validateLocation(field, message){
	error = "";
	field.style.background = 'White';
	if (field.selectedIndex == -1 || field.options[field.selectedIndex].text == "Select Location"){
		field.style.background = 'Yellow';
	    error += "Please choose" + " " + message + " " + "location!";
	}
	
	if (error!=""){
	 error+="\n";
	 }
	
	return error;
}

function validateDatesSequence(pdate, rdate){
	
	error = "";

	tempArray = pdate.split('-');
    day = tempArray[0];
    var month = tempArray[1] - 1;
    var year = tempArray[2];	  
    var pickup_date = new Date(year,month,day);

	tempArray = rdate.split('-');
    day = tempArray[0];
    month = tempArray[1] - 1;
    year = tempArray[2];	  
    return_date = new Date(year,month,day);
	
	if (return_date.getTime()-pickup_date.getTime()<=0)
		error = "bad sequence";

	if (error!=""){
	  error+="\n";
	}
	
	return error;
}


function validateForm(thisform) {

	var reason = "";
	reason += validateLocation(thisform.pickupLocation, "Pickup");
	reason += validateLocation(thisform.returnLocation, "Return");
	reason += validateDatesSequence(thisform.pickupDate.value, thisform.returnDate.value);
	reason += validateDate(thisform.pickupDate, "Pickup");
	reason += validateDate(thisform.returnDate, "Return");
	
	if (reason!="") {
	    alert("Invalid Data:\n" + reason);
	    return false;
    }
  
  return true;
	
}