var requiredFields = new Array("txtFirstName", "txtLastName", "txtEmail", "txtPhone1", "txtBizName", "txtBizType", "txtBizLocationDescription", "txtDateOfSale", "txtSellingPrice", "txtDownPayment", "txtNoteAmount", "txtNoteTerm", "txtNoteInterestRate", "txtNotePaymentAmount", "txtNoteBalloonAmountDate", "txtDueDate1stPayment", "txtCurrentNoteBalance");
var fieldNames = new Array("First Name", "Last Name", "Email Address", "Phone 1", "Exact Name of Business", "Type of Business", "Short Description of the Business and Location", "Date of Sale", "Selling Price", "Down Payment", "Note Amount", "Note Term (in months)", "Note Interest Rate", "Note Payment Amount", "Note Balloon Amount and Date", "Due Date of First Payment", "Current Note Balance");
var FormOK = FNameOK = LNameOK = EmailOK = Phone1OK = BizNameOK = BizTypeOK = BizDescOK = DateSaleOK = SellingPriceOK = DownPymtOK = NoteAmtOK = NoteTermOK = NoteIntRateOK = NotePymtAmtOK = NoteBalloonOK = FirstDueDateOK = CurrentNoteBalOK = true;

function checkFields(input) {
			
	MyNotePersonalGuarantee = (document.AForm.NotePersonalGuarantee.selectedIndex)-0;
	if (MyNotePersonalGuarantee == 0){
		if (document.AForm.NotePersonalGuarantee.value == "") { alert("The Note personally guaranteed? field requires valid input"); return false;  }
	}					
	
	if (document.AForm.txtBizLocationDescription.value.length > 500){
		alert ("The Short Description of Business and Location field can not exceed 500 characters."); return false;
	}
			
	if (!(checkRequiredFieldsBC(input))) {return false;}	
	if (!(FNameOK)) { alert("The First Name field requires valid input"); return false; }
	if (!(LNameOK)) { alert("The Last Name field requires valid input"); return false; }
	if (!(EmailOK)) { alert("The Email Address field requires valid input"); return false; }
	if (!(Phone1OK)) { alert("The Phone 1 field requires valid input"); return false; }
	if (!(BizNameOK)) { alert("The Exact Name of Business field requires valid input"); return false; }
	if (!(BizTypeOK)) { alert("The Type of Business field requires valid input"); return false; }
	if (!(BizDescOK)) { alert("The Short Description of the Business and Location field requires valid input"); return false; }
	if (!(DateSaleOK)) { alert("The Date of Sale field requires valid input"); return false; }
	if (!(SellingPriceOK)) { alert("The Selling Price field requires valid input"); return false; }
	if (!(DownPymtOK)) { alert("The Down Payment field requires valid input"); return false; }
	if (!(NoteAmtOK)) { alert("The Note Amount field requires valid input"); return false; }
	if (!(NoteTermOK)) { alert("The Note Term (in months) field requires valid input"); return false; }
	if (!(NoteIntRateOK)) { alert("The Note Interest Rate field requires valid input"); return false; }
	if (!(NotePymtAmtOK)) { alert("The Note Payment Amount field requires valid input"); return false; }
	if (!(NoteBalloonOK)) { alert("The Note Balloon Amount and Date field requires valid input"); return false; }
	if (!(FirstDueDateOK)) { alert("The Due Date of First Payment field requires valid input"); return false; }
	if (!(CurrentNoteBalOK)) { alert("The Current Note Balance 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 == " ")) {

            fieldsNeeded += fieldNames[fieldNum] + "\n\t";
            fieldCheck = false;
        }
    }
  
    if (fieldCheck == true)
    {
		FormOK = true
        return true;
    }

    else
    {
		FormOK = false
        alert(fieldsNeeded);
        return false;
    }
}


// isEmail (STRING s [, BOOLEAN emptyOK])
// 
// Email address must be of form a@b.c ... in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//
// For explanation of optional argument emptyOK,
// see comments of function isInteger.

function isEmail (s)
{   
	if (ifEmpty(s)) 
       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 email1'); //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;
}

// 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;
}

