function isNumberMessage(object, message) {
  if (isNaN(object.value)) {
     alert(message);
	 object.focus();
	 return false;
  }
  
  return true;
}

function isValidDate(year, month, day) {
  if (year=="" || month=="" || day=="") {
     return false;
  } 
  var check_date=new Date(year, month-1, day);
  if (check_date.getDate()!=day) {
	 return false;
  }
  
  return true;
}

function isValidDateMessage(year, month, day, message) {
  if (!isValidDate(year.value, month.value, day.value)) {
    year.focus();
	alert(message);
	return false;
  }
  return true;
}

function isDateAfterEqualCurrentDate(year, month, day) {
  var d=new Date();
  var current_date=new Date(d.getFullYear(),d.getMonth(), d.getDate());

  if (year=="" || month=="" || day=="") {
     return false;
  } 
  var check_date=new Date(year, month-1, day);
  if (check_date.getTime()<current_date.getTime()) {
	 return false;
  }
  
  return true;
}

function isDateAfterEqualCurrentDateMessage(year, month, day, message) {
  if (!isDateAfterEqualCurrentDate(year.value, month.value, day.value)) {
    year.focus();
	alert(message);
	return false;
  }
  return true;
}

function numberElements(object) {
  if (object==null) {
     return 0;
  }
  if (object.length==null) {
     return 1;
  }
  return object.length;
}

function isEmpty(object) {
  if (object.value.replace(/[\s]/g, "")=="") {
     return true;
  }
  return false;
}

function isEmptyMessage(object, message) {
  if (isEmpty(object)) {
     alert(message);
	 object.focus();
     return true;
  }
  return false;
}

function isRadioChecked(object) {
  if (object.length==undefined) {
     //only one radio button
	 if (!object.checked) {
	    return false;
	 } 
	 return true;
  } else {
  	 for (i=0; i<object.length; i++) {
	     if (object[i].checked) {
		    return true;
		 }
	 }
	 return false;
  }
  
  return false;
  }

function isRadioCheckedMessage(object, message) {
  if (!isRadioChecked(object)) {
     alert(message);
	 if (object.length=="undefined") {
	    object.focus();
	 } else {
	    object[0].focus();
	 }
	 return false;
  }
  return true;
}

function isSelectSelected(object) {
  if (object.options[object.selectedIndex].value=="") {
     return false;
  }
  return true;
}

function isSelectSelectedMessage(object, message) {
  if (!isSelectSelected(object)) {
     alert(message);
	 object.focus();
	 return false;
  }
  return true;
}

function isCheckboxChecked(object) {
  var numElements=numberElements(object);
  if (numElements==0) {
     return false;
  } else if (numElements==1) {
     if (object.checked) {
	    return true;
	 }
	 return false;
  } else {
     for (i=0; i<numElements; i++) {
	     if (object[i].checked) {
		    return true;
		 }
	 }
	 return false;
  }
  
  return false;
}

function isCheckboxCheckedMessage(object, message) {
  var numElements=numberElements(object);
  if (!isCheckboxChecked(object)) {
     alert(message);
	 if (numElements==1) {
	 	object.focus();
	 } else if (numElements>1) {
	    object[0].focus();
	 }
	 return false;
  }
  return true;
}

function isInteger(object) {
  if (parseInt(object.value)!=object.value) {
     return false;
  }
  return true;
}

function isIntegerMessage(object, message) {
  if (!isInteger(object)) {
     alert(message);
	 object.focus();
	 return false;
  }
  return true;
}

function isExceedMaxLength(object, max_length) {
  if (object.value.length>max_length) {
     return true;
  }
  
  return false;
}

function isExceedMaxLengthMessage(object, max_length, message) {
  if (isExceedMaxLength(object,max_length)) {
     alert(message);
	 object.focus();
     return true;
  }
  
  return false;
}

function isLessThanMinLength(object, min_length) {
  if (object.value.length<min_length) {
     return true;
  }
  
  return false;
}

function isLessThanMinLengthMessage(object, min_length, message) {
  if (isLessThanMinLength(object,min_length)) {
     alert(message);
	 object.focus();
     return true;
  }
  
  return false;
}

function isEqualLengthMessage(object, target_length, message) {
  if (object.value.length!=target_length) {
     alert(message);
     object.focus();
     return true;
  }
  
  return false;
}

function isEqualLength(object, target_length) {
  if (object.value.length!=target_length) {
     return true;
  }
  
  return false;
}

function isValidEmailFormat(object) {
  var email_format=/\S+@\S+\.\S+/;

  return email_format.test(object.value);
}

function isValidEmailFormatMessage(object, message) {
 if (!isValidEmailFormat(object)) {
     alert(message);
	 object.focus();
     return false;
 }
  
 return true; 
}
