// email
function checkEmail (string) {
	var error="";
	if (string == "") {
	   return "Please enter an <b>e-mail address</b>.<br/>";
	}
	
	//test email for illegal characters
   	var illegalChars= /[\(\)\<\>\,\;\:\\\"\'\[\]]/;
    if (string.match(illegalChars)) {
    	return "Contains illegal chars.<br/>";
   	}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(string))) { 
       return "Not a valid e-mail address.<br/>";
    }

	return error;    
}


// phone number - strip out delimiters and check for 8 digits
function checkMobileNumber (string) {
	var error = "";
	if (string == "") {
	   return "Please enter a <b>mobile number</b>.<br/>";
	}
	
//	var stripped = string.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
	var legalChars = /^[0-9]*$/;
    if (!legalChars.test(string)) {
       return "Contains illegal chars. Example: 6591234567 where 65 is country code";
    }
    
    if (string.length > 16) {
    	return "Max length is 16. Example: 6591234567 where 65 is country code";
    }
    //if start with 65, remove it
/*    if (string.length > 2 && string.charAt(0) == '6' && string.charAt(1) == '5') {
    	string = string.substring(2);
    }
*/
/*
   if (string.charAt(0) != '8' && string.charAt(0) != '9') {
    	return "Not a valid Singapore local mobile number. Sample:91234567";
    }
*/
	return error;
}


// password - between 6-20 chars, uppercase, lowercase, and numeral
function checkPassword (string) {
	var error = "";
	if (string == "") {
	   return "Please enter a <b>password</b> with length between 6 and 20.<br/>";
	}
	
    var legalChars = /^[\w\`\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\|\[\]\\\:\"\;\'\<\>\?\,\.\/]*$/;
    
    if (!legalChars.test(string)) {
      	return "Please ensure the <b>password</b> only contains valid characters.<br/>";
    } 
    if ((string.length < 6) || (string.length > 20)) {
       return "Please enter a <b>password</b> with length between 6 and 20.<br/>";
    }
//	else if (!((string.search(/(a-z)+/)) && (string.search(/(A-Z)+/)) && (string.search(/(0-9)+/)))) {
//	   error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.<br/>";
//	}  
	return error;    
}    

// password - between 6-20 chars, uppercase, lowercase, and numeral
function checkPassword2 (string) {
	var error = "";
	
    if ((string.length < 6) || (string.length > 20)) {
       return "Password length error. Length 6-20.";
    }
    var legalChars = /^[\w\`\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\|\[\]\\\:\"\;\'\<\>\?\,\.\/]*$/;
    if (!legalChars.test(string)) {
      	return "Contains illegal chars.";
    } 
//	else if (!((string.search(/(a-z)+/)) && (string.search(/(A-Z)+/)) && (string.search(/(0-9)+/)))) {
//	   error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.<br/>";
//	}  
	return error;    
}    

// username - 4-16 chars, uc, lc, and underscore only.
function checkUsername (string) {
	var error = "";
	if (string == "") {
	   	return "Please enter a <b>username</b> with length between 4 and 16.<br/>";
	}


    var legalChars = /^[\w\.]*$/;
    if ((string.length < 4) || (string.length > 16)) {
       return "Please enter a <b>username</b> with length between 4 and 16.<br/>";
    }
    if (!legalChars.test(string)) {
    	return "Please ensure the <b>username</b> only contains legal characters. Legal characters include [0-9], [a-zA-Z], '.' and '_'<br/>";
    } 
	return error;
}       

// username - 4-16 chars, uc, lc, and underscore only.
function checkUsername2 (string) {
	var error = "";
	if (string == "") {
	   	return;
	}
    if ((string.length < 4) || (string.length > 16)) {
       return "Username length error. Length 4-16.";
    }

    var legalChars = /^[\w\.]*$/;
//var legalChars = /^[\w]|[\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\|\[\]\\\:\"\;\'\<\>\?\,\.\/]$/;
    if (!legalChars.test(string)) {
    	return "Username contains illegal chars.";
    } 
	return error;
}       


// non-empty textbox
function isEmpty(string) {
	var error = "";
	  if (string.length == 0) {
	     return "The mandatory text area has not been filled in.<br/>";
	  }
	return error;	  
}

// was textbox altered
function isDifferent(string) {
	var error = ""; 
	  if (string != "Can\'t touch this!") {
	     return "You altered the inviolate text area.<br/>";
	  }
	return error;
}

// exactly one radio button is chosen
function checkRadio(checkvalue) {
	var error = "";
	   if (!(checkvalue)) {
	       return "Please check a radio button.<br/>";
	    }
	return error;
}

// valid selector from dropdown list
function checkDropdown(choice) {
	var error = "";
    if (choice == 0) {
    	return "You didn't choose an option from the drop-down list.<br/>";
    }    
	return error;
}    

//postal code
function checkPostalCode(string) {
	var error = "";
	if (string == "") {
	   return "Please enter a <b>postal code</b>.<br/>";
	}
	
	var legalChars = /^[0-9]*$/;
    if (!legalChars.test(string)) {
       return "Contains illegal chars. Sample: 123456";
    }
    
    if (string.length != 6) {
    	return "Length must be 6. Sample: 123456";
    } 
	return error;
	
}
