// JavaScript Document

function trim(n){
  // Remove leading spaces and carriage returns
  while ((n.substring(0,1) == ' ') || (n.substring(0,1) == '\n') || (n.substring(0,1) == '\r'))
  {
    n = n.substring(1,n.length);
  }

  // Remove trailing spaces and carriage returns

  while ((n.substring(n.length-1,n.length) == ' ') || (n.substring(n.length-1,n.length) == '\n') || (n.substring(n.length-1,n.length) == '\r'))
  {
    n = n.substring(0,n.length-1);
  }
  return n;
}
  
function isNumeric(n){
	return !isNaN(parseInt(n));
} 

function isEmail(strng){
	var validate = true;
	strng = trim(strng);
	if (strng == "") {
   		validate = false;
	}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       validate = false;
    }
    else {
		//test email for illegal characters
       	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
    	if (strng.match(illegalChars)) {
          	validate = false;
       	}
    }
	return validate;
}

function isDate(strng){
	strng = trim(strng);
	var validate = false;
	var dateParts = strng.split("/");
	if(dateParts.length == 3){
		if(dateParts[0].length > 0 && dateParts[1].length > 0 && dateParts[2].length > 3){
			mo = trim(dateParts[0]);
			da = trim(dateParts[1]);
			yr = trim(dateParts[2]);
			if(isNumeric(mo) && isNumeric(da) && isNumeric(yr)){
				mo = Number(mo);
				da = Number(da);
				yr = Number(yr);
				if((mo <= 12) && (mo >= 1) && (yr >= 1900) && (yr < 3000)){
					if(((mo == 1) || (mo == 3) || (mo == 5) || (mo == 7) || (mo == 8) || (mo == 10) || (mo == 12)) && ((da <= 31) && (da >= 1))){
						validate = true;
					}else if(((mo == 4) || (mo == 6) || (mo == 9) || (mo == 11)) && ((da <= 30) && (da >= 1))){
						validate = true;
					}else if((mo == 2) && ((da <= 29) && (da >= 1))){
						validate = true;
					}
				}
			}
		}
	}
	
	return validate;
}
