
//Validate Login and Modify Email
function validateLogin(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

	if (!validateEmail(form.email.value,"Email Address"))
    {
		DidErr = true
        ErrorString += "\n"
    }
    if (!checkForBlanks(form.password.value,"Password"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate User Registration
function validateReg(form)
    {
    ErrorString = "";
    DidErr = false;
    numErr = 1;	
	
	if (!isAlphabetic(form.fname.value,"First Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphabetic(form.lname.value,"Last Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!validateEmail(form.email.value,"Email Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.addr1.value,"Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.city.value,"City"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isNumber(form.zip.value, false, "Zip Code"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!checkPasswrd(form.password.value, form.cpassword.value))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}	

//Validate User Registration
function validateModifyAcct(form)
    {
    ErrorString = "";
    DidErr = false;
    numErr = 1;	
	
	if (!isAlphabetic(form.fname.value,"First Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphabetic(form.lname.value,"Last Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.addr1.value,"Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.city.value,"City"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isNumber(form.zip.value, false, "Zip Code"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
   if (!checkPasswrd(form.password.value, form.password.value))
   {
    DidErr = true
      ErrorString += "\n"
   }

	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}	


//Validate Change Password
function validatePasswrd(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

    if (!checkForBlanks(form.oldpassword.value,"Old Password"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!checkPasswrd(form.password.value, form.cpassword.value))
    {
		 DidErr = true
         ErrorString += "\n"
    }

	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate Forgot Password
function validateEmailAdd(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

    if (!validateEmail(form.email.value,"Email Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate Checkout
function validateCheckout(form)
    {
    ErrorString = "";
    DidErr = false;
    numErr = 1;	
	
	if (!isAlphabetic(form.fname.value,"First Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphabetic(form.lname.value,"Last Name"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!validateEmail(form.email.value,"Email Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.billaddr1.value,"Billing Address"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isExtendedString(form.billcity.value,"Billing City"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isNumber(form.billzip.value, false, "Billing Zip Code"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate Checkout
function validateCheckout2(form)
    {
    ErrorString = "";
    DidErr = false;
    numErr = 1;	
	
    if (!isCreditCard(form.ccnum.value,"Credit Card Number"))
     {
       DidErr = true
         ErrorString += "\n"
     }
    if (!isNumber(form.ccnum.value, false, "Credit Card Number"))
     {
       DidErr = true
         ErrorString += "\n"
     }
    if (!isCVV2(form.cccvv2.value,"CVV2"))
     {
       DidErr = true
         ErrorString += "\n"
     }
    if (!isNumber(form.cccvv2.value, false, "CVV2"))
     {
       DidErr = true
         ErrorString += "\n"
     }


    if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate Donation Amount
function validateDonation(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

	if (!isNumber(form.price.value, true, "Donation Amount"))
    {
		DidErr = true
        ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}
//Validate Quantity
function validateQty(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

	if (!isNumber(form.quantity.value, false, "Quantity"))
    {
		DidErr = true
        ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//Validate Seat Plaque
function validatePlaque(form)
    {
 	ErrorString = "";
 	DidErr = false;
 	numErr = 1;

  	if (!isNumber(form.quantity.value, false, "Quantity"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphaNumetic(form.plaquesection.value, "Plaque Section"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphaNumetic(form.plaquerow.value, "Plaque Row"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (!isAlphaNumetic(form.plaqueseat.value, "Plaque Seat"))
    {
		 DidErr = true
         ErrorString += "\n"
    }
	if (DidErr) 
    {
        numErr--
 	    alert("You Have " + numErr + " Validation Error(s).\n Please Correct the Form and Resubmit.\n_______________________________\n\n" + ErrorString);
 	    ErrorString = "";
 	    return false;
    } 
    else 
    { 
        return true;
 	}
}

//function to check if a drop-down box selection has been made
function validateSelect(selectname, formname)
    {
    if (selectname.options[0].selected)
        {
	    ErrorString += "(" + numErr + ") " + "Please Make a Selection For " + formname +"."
        numErr++;
        return false;
        }
    return true;
 }// end function validateSelect
	
function checkForBlanks(fieldvalue, fieldname)
{
	if (fieldvalue.length == 0 || fieldvalue.length == null)
	{
		ErrorString += "(" + numErr + ") " + " Please Enter " + fieldname +"." 
		numErr++;
		return false;
	 }    
	return true;
 }// end function checkForBlanks
 
function checkTextLength(fieldvalue)
{
	if (fieldvalue.length > 4000 )
	{
		ErrorString += "(" + numErr + ") " + "Invalid Article Length of " + fieldvalue.length + " Characters.  Please Enter Article Text whithin 4000 characters."
		numErr++;
		return false;
	 }    
	return true;
 }// end function checkForBlanks

function isNumber (num,dec_ok, fieldname) {
	var ret = true;
	var dec = 0;
	var n = num.length;
	
	if (n == 0 || n == null){
		ErrorString += "(" + numErr + ")  Please Enter " + fieldname;
		numErr++;
		ret = false;
	}
	for (var i=0; i < n; i++) {
		var x = num.charAt (i);
		if (x == ".") {
			if (dec_ok) dec++;
			else {
				ErrorString += "(" + numErr + ") " + fieldname + " is invalid.  Please Do Not Enter Decimal Places";
				numErr++;
				ret = false;
				i = n;
			}
		}
		else if (isNaN (parseInt (x,10))) {
			ErrorString += "(" + numErr + ") " + fieldname + " is invalid.";
			numErr++;
			ret = false;
			i = n;
		}
	}
	if (dec > 1){ 
		ErrorString += "(" + numErr + ") " + fieldname + " is invalid.";
		numErr++;
		ret = false;
	}
	
	return ret;
}

function validateEmail(str, fieldname) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		
		if ((str==null)||(str=="")){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		}
		if (str.indexOf(at)==-1){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;
		    return false
		 }

 		 return true					
	}
//Check if a string is all letters
function isAlphabetic(s, fieldname)
{   
	var i;
    if (s.length == 0 || s.length == null){
		ErrorString += "(" + numErr + ") " + " Please Enter " + fieldname +"." 
		numErr++;
		return false;
	   }

    // Search through string's characters one by one
    // until we find a non-alphabetic character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is letter.
        var c = s.charAt(i);
		if (!isLetter(c)){
			ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
			numErr++;   		
			return false;
    	}
	}
    // All characters are letters.
    return true;
}

//Check if a character is a letter
function isLetter (c){   
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

//Check if password and password confirmation are equal
function checkPasswrd(passwrd, passwrdConfirm){
    
	if (passwrd.length == 0 || passwrd.length == null ){
		ErrorString += "(" + numErr + ") " + " Please Enter Password"; 
		numErr++;
		return false;
	   }
	if (passwrdConfirm.length == 0 || passwrdConfirm.length == null ){
		ErrorString += "(" + numErr + ") " + " Please Enter Confirmation Password"; 
		numErr++;
		return false;
	   }
	if (!compare(passwrd, passwrdConfirm)){
			ErrorString += "(" + numErr + ") " + "Password does not match Confirmation Password"; 
			numErr++;   		
			return false;
	}
	if (passwrd.length < 6 || passwrdConfirm.length < 6 ){
		ErrorString += "(" + numErr + ") " + " Password Must Be a Least 6 Characters Long"; 
		numErr++;
		return false;
	}

	//Passwords are equal
	return true;
}

//Compare if two strings are equal
function compare(str1,  str2){
	return (str1 == str2 )
}

//Check if a string is all letters
function isAlphaNumetic(s, fieldname)
{   
	var i;
    if (s.length == 0 || s.length == null){
		ErrorString += "(" + numErr + ") " + " Please Enter " + fieldname +"." 
		numErr++;
		return false;
	   }

    // Search through string's characters one by one
    // until we find a non-alphaNumetic character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is alphanumetic.
        var c = s.charAt(i);
		if (!isLetterOrDigit(c)){
			if (!(c == " ")){
				ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
				numErr++;   		
				return false;
			}
    	}
	}
    // All characters are letters.
    return true;
}

//Check if a string has letters, numbers, and symbols only
function isExtendedString(s, fieldname)
{   
	var i;
    if (s.length == 0 || s.length == null){
		ErrorString += "(" + numErr + ") " + " Please Enter " + fieldname +"." 
		numErr++;
		return false;
	   }

    // Search through string's characters one by one
    // until we find a non-alphaNumetic character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is alphanumetic.
        var c = s.charAt(i);
		if (!isLetterDigitOrSymbol(c)){
			if (!(c == " ")){
				ErrorString += "(" + numErr + ") " + fieldname +" is invalid."; 
				numErr++;   		
				return false;
			}
    	}
	}
    // All characters are letters.
    return true;
}

//Check if a character is a digit
function isDigit (c){   
	return ((c >= "0") && (c <= "9"))
}

//Check if a character is an acceptable characther
function isSymbol (c){   
	return ((c == ".") || (c == "-") || (c==" ") || (c=="#") || (c=="'") || (c=="&"))
}

//Check if a character is a letter or digit
function isLetterOrDigit (c){
   return (isLetter(c) || isDigit(c))
}

//Check if a character is a letter, digit, or symbol
function isLetterDigitOrSymbol (c){
   return (isLetter(c) || isDigit(c) || isSymbol(c))
}

//Check if credit card is valid
function isCreditCard(st, fieldName) {
if (st.length != 16){
	ErrorString += "(" + numErr + ") " + fieldName + " Must Be 16 Digits."; 
	numErr++;   		
	return false;
  }
  return true;
}

//Check if credit card is valid
function isCVV2(st, fieldName) {
if (st.length != 3){
	ErrorString += "(" + numErr + ") " + fieldName + " Must Be 3 Digits."; 
	numErr++;   		
	return false;
  }
  return true;
}
