﻿var alertString = ""; 	


function ValidateRequiredFields (nameField,emailField,emailDuplField) {
	alertString = "There\'s a problem with your contact info:\n\n"; //initialized each time you submit
	// for this form, name and email are the required fields
	
	//alert(CheckForNoCode(nameField.value));
	
	var validemail = ValidateEmailAddress ( emailField);
	var noCode = CheckForNoCode(document.getElementById("notes").value);
	
	if (((emailDuplField.value == emailField.value)&& validemail)&& noCode && nameField.value.length>0 )
		return(true);
		
	if (!validemail)
		emailDuplField.value="";//erase the duplicate if the original has problems
	if  (validemail && emailDuplField.value != emailField.value){
		if (emailDuplField.value.length>0){
			alertString=alertString+"\nEmail fields don't match.  Please try again!";
			emailDuplField.value="";
			}
		else
			alertString=alertString+"\nYou need to type your e-mail address twice!";
		}

	if  (nameField.value.length<1)
		alertString=alertString+"\nPlease enter your name in the name field!";
	
	if  (!noCode)
	alertString=alertString+"\nhtml code is not allowed in any field!";
	
	alert (alertString);
return(false);
}

function CheckForNoCode (str) {
	if(str.search(/href/)<0) {return(true);}
return (false);}

function ValidateEmailAddress ( addressField ) {
errorVal=false;

    if ( stringEmpty ( addressField.value ) ){
        alertString=alertString+"Please enter an e-mail address!\n";errorVal=true;return (false);}
    if ( noAtSign ( addressField.value ) ){
        alertString=alertString+"The E-Mail address does not contain an '@' character\n";errorVal=true;return (false);}
   else if ( nothingBeforeAt ( addressField.value ) ){
        alertString=alertString+"The E-Mail address must contain at least one character before the '@'   character\n";errorVal=true;}
  if ( nothingBeforePeriod ( addressField.value ) ){
        alertString=alertString+"The E-Mail address must contain at least one character before the '.'   character\n";errorVal=true;}
    if ( noLeftBracket ( addressField.value ) ){
        alertString=alertString+"The E-Mail address contains a right square bracket ']',\nbut no corresponding left square bracket '['\n";errorVal=true;}
    if ( noRightBracket ( addressField.value ) ){
        alertString=alertString+ "The E-Mail address contains a left square bracket '[',\nbut no corresponding right square bracket ']'\n" ;errorVal=true;}
    if ( noValidPeriod ( addressField.value ) ){
        alertString=alertString+"The E-Mail address must contain a period ('.') character\n" ;errorVal=true;}
    if ( noValidSuffix ( addressField.value ) ){
        alertString=alertString+"The E-Mail address must contain a two to four character suffix\n" ;errorVal=true;}
    if (spacesInAddress(addressField.value)){
        alertString=alertString+"The E-Mail address must not contain any spaces\n" ;errorVal=true;}

    if (!errorVal)
        return (true);

    return ( false );
}

function linkValidateEmailAddress ( formField ) {
    if ( ValidateEmailAddress ( formField ) == true ) {
        alert ( 'E-Mail Address Validates OK' );
    }

    return ( false );
}

function stringEmpty ( address ) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforePeriod ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '.' CHARACTER
    if ( address.indexOf ( '.', address.indexOf('@') ) - address.indexOf('@') ==1) {
        return ( true )
    } else {
        return ( false );
    }
}


function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function spacesInAddress (address){
    // CHECK THAT THERE IS NO SPACE CHARACTER IN THE STRING
    if ( address.indexOf ( ' ', 0 ) == -1 ) {
        return ( false )
    } else {
        return ( true );
    }
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO TO FOUR CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}