//E-mail checker
/* With RegExp */
function isEmail(who) {
	var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
	return(email.test(who));
}


//Alpha-numeric character checker
function isAlphaNumeric(thestring) {
	var thealpahanum = /^[a-zA-Z0-9]/;
	return(thealpahanum.test(thestring));
	}

//Checks for blank fields
function checkFormBlanks(the_form,array_of_element_names) {
	var isblank = false;
	for(var i=0; i<the_form.elements.length; i++) {
			for(var j=0; j<array_of_element_names.length; j++) {
				if(array_of_element_names[j] == the_form.elements[i].name) if(the_form.elements[i].value == "") isblank = true;
				}
			}
	return isblank;
	}

//Takes out all spaces at the end of text fields
function removeFieldEndSpaces(the_form) {
	for(var i=0; i<the_form.elements.length; i++) {
		the_element = the_form.elements[i];
		if(the_element.type == "text") {
			var the_textvalue = the_element.value;
			while(the_textvalue.charAt(the_textvalue.length-1)==" ") {
				the_element.value = the_textvalue.substring(0,the_textvalue.length-1);
				the_textvalue = the_element.value;
				}
			}
		}
	}


function isDateValid(the_datetime) { 
	ML = [,31,28,31,30,31,30,31,31,30,31,30,31]; // month list
	
   	the_datetime_split = the_datetime.split(" ");	//split date and time if time supplied also
	the_date = the_datetime_split[0];
  	if(the_date.indexOf("/") > 0) the_DMY = the_date.split("/");
	else if(the_date.indexOf("-") > 0) the_DMY = the_date.split("-");

	D = parseInt(the_DMY[0]);
	M = parseInt(the_DMY[1]);	
	Y = parseInt(the_DMY[2]);	
	
	var L = ML[M] // Improved after LRN

  	return D>0 && !!L &&
    (D<=L || D==29 && Y%4==0 && (Y%100!=0 || Y%400==0) )
 	}