// Copyright © 2001 by Apple Computer, Inc., All Rights Reserved.
//
// 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, nullok)
{
	var error="";
	if (strng == "") {
	   if (nullok == 0) error = "Please enter an email address.\n";
	} else {
	    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";
			}
		}
	}
	if (error != "") alert (error);
	return (error != "");    
}

// website URL
function checkURL (strng, nullok)
{
	var error="";
	if (strng == "") {
	   if (nullok == 0) error = "Please enter a website URL.\n";
	} else {
	    var urlFilter=/^.+\..{2,3}$/;
	    if (!(urlFilter.test(strng))) { 
			error = "Please enter a valid website URL.\n";
	    } else {
			//test email for illegal characters
			var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
			if (strng.match(illegalChars)) {
				error = "The website URL contains illegal characters.\n";
			}
		}
	}
	if (error != "") alert (error);
	return (error != "");    
}

// phone number - strip out delimiters and check for 10 digits
function checkPhone (strng, nullok) 
{
	var error = "";
	if (strng == "") {
		if (nullok == 0) error = "Please enter a phone number.\n";
	} else {
		var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');		//strip out acceptable non-numeric characters
	    if (isNaN(parseInt (stripped))) {
	       error = "The phone number contains illegal characters. Please use 'aaa-nnn-nnnn'.\n";
	    }
	    if (!(stripped.length == 10)) {
			error = "The phone number is the wrong length. Please use 'aaa-nnn-nnnn'.\n";
		} 
	}
	if (error != "") alert (error);
	return (error != "");
}

// phone number - strip out delimiters and check for 10 digits
function checkDate (strng, nullok) 
{
	var error = "";
	var dsim = new Array (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var date = new Array();
	date = strng.split ("/");
	if ((date[0] < 1) || (date[0] > 12)) {
		error = "Month incorrectly stated.  Please use \'mm/dd/yy\'\n.";
	} else {
		if (date[1] < 1 || date[1] > dsim[date[0] - 1]) {
			error = "Day incorrectly stated.  Please use \'mm/dd/yy\'\n.";
		} else {
			var year = date[2];
			if (year < 100) year = year + 2000;
			if (year < 2008 && year > 2015) {
				error = "Year incorrectly stated.  Please use \'mm/dd/yy\'\n.";
			}
		}
	}
	if (error != "") {
		alert (error);
	}
	return (error != "");
}

// password - between 6-8 chars, uppercase, lowercase, and numeral
function checkPassword (strng) 
{
	var error = "";
	if (strng == "") {
		error = "Please enter a password.\n";
	}
    var illegalChars = /[\W_]/;								// allow only letters and numbers
    if ((strng.length < 6) || (strng.length > 8)) {
   		error = "The password must be from 6 to 8 characters long.\n";
    } else if (illegalChars.test (strng)) {
  		error = "The password contains illegal characters.\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";
    }  
	if (error != "") alert (error);
	return (error != "");
}    

// username - 4-10 chars, uc, lc, and underscore only.
function checkUsername (strng) 
{
	var error = "";
	if (strng == "") {
		error = "No username entered.\n";
	}
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if ((strng.length < 4) || (strng.length > 10)) {
		error = "The username must be from 4 to 10 characters long.\n";
    } else if (illegalChars.test(strng)) {
		error = "The username contains illegal characters.\n";
    } 
	if (error != "") alert (error);
	return (error != "");
}       

// non-empty textbox
function isEmpty(strng, text) 
{
	var error = "";
	if (strng.length == 0) {
		error = text
	}
	if (error != "") alert (error);
	return (error != "");
}

// was textbox altered
function isDifferent (strng, strng2, text) 
{
	var error = ""; 
	if (strng != strng2) {
		error = text;
	}
	if (error != "") alert (error);
	return (error != "");
}

// exactly one radio button is chosen
function checkRadio (checkvalue) 
{
	var error = "";
	if (!(checkvalue)) {
		error = "Please choose a  button.\n";
    }
	if (error != "") alert (error);
	return (error != "");
}

// valid selector from dropdown list
function checkDropdown (choice) 
{
	var error = "";
    if (choice == 0) {
    	error = "Please choose an option from the drop-down list.\n";
    }    
	if (error != "") alert (error);
	return (error != "");
}    

