function checkEmail (strng) {

var error="";

if (strng == "") {

   error = "You didn't enter an email address.\n";

}



    var emailFilter=/^.+@.+\..{2,3}$/;

    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,mode) {

var error = "";

if (strng == "") {

   error = "You didn't enter a password.\n";

}

	var mode = arguments.length == 2 ? arguments[1] : 'loose';

	if (mode == 'strict')

	{

		var illegalChars = /[\W_]/; // allow only letters and numbers

		

		if ((strng.length < 6)) {

		   error = "Passwords must be at least 6 characters long.\n";

		}

		else if (illegalChars.test(strng)) {

		  error = "The password must contain only letters and numbers.\n";

		} 

		else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {

		   error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.\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) {

var error = "";

  if (strng.length == 0) {

     error = "The mandatory text area has not been filled in.\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) {

var error = "";

   if (!(checkvalue)) {

       error = "Please check a radio button.\n";

    }

return error;

}



// valid selector from dropdown list



function checkDropdown(choice) {

var error = "";

    if (choice == 0) {

    error = "You didn't choose an option from the drop-down list.\n";

    }    

return error;

}   



function checkNumber(num) 

{

	var error = "";

	var anum=/(^\d+$)|(^\d+\.\d+$)/

	if (!anum.test(num))

	{

		error = "Value must be a number.\n";

	}

	return error;

} 



function trackCharsUsed(element,target)
{
	target_id = document.getElementById(target);
	len = element.value.length;
	msg = (len == 0) ? "" : len+" used";
	target_id.innerHTML = msg;

}



