	var requiredFields = new Array("txtName", "txtEmail", "txtFEmail1", "txtMessage");
    var fieldNames = new Array("Your Name", "Your Email", "Friend's Email 1", "Your Message", "Friend's Email 2", "Friend's Email 3", "Friend's Email 4", "Friend's Email 5");
    var FormOK = NameOK = EmailOK = FriendEmail1OK = MessageOK = true;
    var fieldNames = new Array("Your Name", "Your Email", "Friend's Email 1", "Your Message");
    var fieldNames2 = new Array("Friend's Email 2", "Friend's Email 3", "Friend's Email 4", "Friend's Email 5");            

function checkFields(input) {
	
	if (!(checkRequiredFieldsBC(input))) {return false;}	
	if (!(NameOK)) { alert("Your Name field requires valid input"); return false; }
	if (!(EmailOK)) { alert("Your Email field requires valid input"); return false; }
	if (!(FriendEmail1OK)) { alert("Friend's Email 1 field requires valid input"); return false; }
	
	var fieldCheck2 = true;
	var moreRequiredFields = new Array("txtFEmail2", "txtFEmail3", "txtFEmail4", "txtFEmail5");
	var moreRequiredFieldNames = new Array("Friend's Email 2", "Friend's Email 3", "Friend's Email 4", "Friend's Email 5");
	var fieldsNeeded2 = "\nThe email address is invalid in the following field(s):\n\n\t";
	
	var moreEmailsToCheck = new Array();
		
	if ((document.AForm.txtFEmail2.value != "") || (document.AForm.txtFEmail3.value != "") || (document.AForm.txtFEmail4.value != "") || (document.AForm.txtFEmail5.value != ""))
	{
		for(var fieldNum3=0; fieldNum3 < moreRequiredFields.length; fieldNum3++) {
			if (input.elements[moreRequiredFields[fieldNum3]].value != "")
			{
				//loop thru emails that are not empty
				if (!(isEmail2(input.elements[moreRequiredFields[fieldNum3]].value)))
				{
					fieldsNeeded2 += moreRequiredFieldNames[fieldNum3] + "\n\t";
					fieldCheck2 = false;
				}
			}
		}
	}
		
    if (fieldCheck2 == true)
    {    
		FormOK = true
        return true;
    }
    else
    {
		FormOK = false
        alert(fieldsNeeded2);
        return false;
    }
    
	if (!(MessageOK)) { alert("Your Message field requires valid input"); return false; }
	else {
	return true; 
	}
}	
		
function checkRequiredFieldsBC(input)
{             
   
    var fieldCheck   = true;
    var fieldsNeeded = "\nA value must be entered in the following field(s):\n\n\t";

    for(var fieldNum=0; fieldNum < requiredFields.length; fieldNum++) {
        if ((input.elements[requiredFields[fieldNum]].value == "") ||
			(input.elements[requiredFields[fieldNum]].value == " ") ||
			(trimString(input.elements[requiredFields[fieldNum]].value) == "")) {
            ////////(input.elements[requiredFields[fieldNum]].value == " ")) {

            fieldsNeeded += fieldNames[fieldNum] + "\n\t";
            fieldCheck = false;
        }
    }
  
    if (fieldCheck == true)
    {	
		fe1 = trimString(document.AForm.txtFEmail1.value);
		fe2 = trimString(document.AForm.txtFEmail2.value);
		fe3 = trimString(document.AForm.txtFEmail3.value);
		fe4 = trimString(document.AForm.txtFEmail4.value);
		fe5 = trimString(document.AForm.txtFEmail5.value);

        //check for duplicate friend emails
        if (fe2 != ""){
			if (fe2 == fe1) { alert("\nPlease delete the duplicate email:\n\n  " + fe2); return false; }
			if (fe2 == fe3) { alert("\nPlease delete the duplicate email:\n\n  " + fe3); return false; }
			if (fe2 == fe4) { alert("\nPlease delete the duplicate email:\n\n  " + fe4); return false; }
			if (fe2 == fe5) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
        }
        if (fe3 != ""){
			if (fe3 == fe1) { alert("\nPlease delete the duplicate email:\n\n  " + fe3); return false; }
			if (fe3 == fe2) { alert("\nPlease delete the duplicate email:\n\n  " + fe3); return false; }
			if (fe3 == fe4) { alert("\nPlease delete the duplicate email:\n\n  " + fe4); return false; }
			if (fe3 == fe5) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
        }
        if (fe4 != ""){
			if (fe4 == fe1) { alert("\nPlease delete the duplicate email:\n\n  " + fe4); return false; }
			if (fe4 == fe2) { alert("\nPlease delete the duplicate email:\n\n  " + fe4); return false; }
			if (fe4 == fe3) { alert("\nPlease delete the duplicate email:\n\n  " + fe4); return false; }
			if (fe4 == fe5) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
        }
        if (fe5 != ""){
			if (fe5 == fe1) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
			if (fe5 == fe2) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
			if (fe5 == fe3) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
			if (fe5 == fe4) { alert("\nPlease delete the duplicate email:\n\n  " + fe5); return false; }
        }                		
		FormOK = true
        return true;
    }
    else
    {
		FormOK = false
        alert(fieldsNeeded);
        return false;
    }
    
}

function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


// Check whether string s is empty.
function ifEmpty(s)
{   
	return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or 
// whitespace characters only.

function isWhitespace (s)
{   
	var i;
	var whitespace = " \t\n\r";
	
    // Is s empty?
    if (ifEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);

	if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function isEmail (s)
{   
	if (ifEmpty(s))
		//use this for FEmail1
		if (isEmail.arguments.length == 1) return alert('Please Enter Email Address');
		else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return alert('invalid email'); //false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return alert('Invalid Email Address without  "@" '); //false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return alert('Invalid Email Address without  "." '); //false;
    else return true;
}		

function isEmail2 (s)
{   
    // is s whitespace?
    //if (isWhitespace(s)) return alert('invalid email'); //false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false; ////return alert('Invalid Email Address without  "@" '); //false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false; ////return alert('Invalid Email Address without  "." '); //false;
    else return true;
}	
