// Copyright © 2001 by Apple Computer, Inc., All Rights Reserved.
// Modified 2006 by Sebastian Weglarczyk (sweglarczyk@binaryminds.com).
//
// See http://www.oreillynet.com/pub/a/javascript/2001/08/10/form_valid.html for help.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.

// email



function checkEmail(strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter an email address.\n";
	}
	var emailFilter=/^.+@.+\..{2,4}$/;
	if (!(emailFilter.test(strng))) {
		error = "Please enter a valid email address.\n";
	}
	else {
		//test email for illegal characters
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.match(illegalChars)) {
			error = "The email address contains illegal characters.\n";
		}
	}
	return error;
}


// phone number - strip out delimiters and check for 10 digits

function checkPhone(strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a phone number.\n";
	}

	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
	if (isNaN(parseInt(stripped))) {
		error = "The phone number contains illegal characters.";
	}
	if (!(stripped.length == 10)) {
		error = "The phone number is the wrong length. Make sure you included an area code.\n";
	}
	return error;
}


// password - between 6-8 chars, uppercase, lowercase, and numeral


function checkPassword(strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a password.\n";
	}

	var illegalChars = /[\W_]/; // allow only letters and numbers
	if ((strng.length < 6) || (strng.length > 20)) {
		error = "The password is the wrong length.\n";
	}
	
	return error;
}


// username - 4-10 chars, uc, lc, and underscore only.

function checkUsername(strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a username.\n";
	}

	var illegalChars = /\W/; // allow letters, numbers, and underscores
	if ((strng.length < 4) || (strng.length > 10)) {
		error = "The username is the wrong length.\n";
	}
	else if (illegalChars.test(strng)) {
		error = "The username contains illegal characters.\n";
	}
	return error;
}


// non-empty textbox

function isEmpty(strng,errmsg) {
	var error = "";
	errmsg = (errmsg != null) ? errmsg : "The mandatory text area has not been filled in."; 
	if (strng.length == 0) {
		error = errmsg + "\n";
	}
	return error;
}


// was textbox altered

function isDifferent(strng) {
	var error = ""; 
	if (strng != "Can\'t touch this!") {
		error = "You altered the inviolate text area.\n";
	}
	return error;
}


// exactly one radio button is chosen

function checkRadio(checkvalue,errmsg) {
	var error = "";
	errmsg = (errmsg != null) ? errmsg : "Please check a radio button."; 
	if (!(checkvalue)) {
		error = errmsg + "\n";
	}
	return error;
}


// valid selector from dropdown list

function checkDropdown(choice,errmsg) {
	var error = "";
	errmsg = (errmsg != null) ? errmsg : "You didn't choose an option from the drop-down list."; 
	if (choice == 0) {
		error = errmsg + "\n";
	}
	return error;
}


// valid checkboxes

function checkCheckboxes(chkBox,errmsg) {
	var error = "";
	errmsg = (errmsg != null) ? errmsg : "Please check at least one checkbox."; 
	var checkedFound = false;
	for (var i=0; i<chkBox.length; i++) {
		if (chkBox[i].checked == true) {
			checkedFound = true;
			break;
		}
	}
	if (!(checkedFound)) {
		error = errmsg + "\n";
	}
	return error;
}

