	//RegExp for e-mail address validation
	re1 = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})$/;

    //RegExp for web address validation
    re5 = /^[Ww]{3}\.\S+\.\S+$/;

    //RegExp for simple address validation - no PO Box addresses
    re4 = /^.*[Pp]{1}[\. ]*[Oo]{1}[\. ]*[Bb]{1}[Oo]{1}[Xx]{1}.*$/;

    //RegExp for zip codes
    re2 = /^\d{5}$/;

    //RegExp for names
    re3 = /^[a-zA-Z].*$/;

    //RegExp for phone numbers (currently not in use)
    //re3 = /^\(?\d{3}([-\. /]|(\)|\) ))?\d{3}[-\. ]?\d{4}$/;


    function IsNumeric(val)
    {
    	//Uses a Regular Expression to determine if a string represents a numeric value

    	reNum = /^\d+[\.]?\d*$/;

        if (reNum.test(val))
        	return true;
        else
    		return false;
    }

    function isContactFormValid(accountForm)
    {
        if(accountForm.txtName.value == "" ||!re3.test(accountForm.txtName.value))
        {
        	alert("Please provide your Name.");
            accountForm.txtName.focus();
            return false;
        }
    	//Validation for the form during the checkout process
        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid e-mail address.");
            accountForm.txtEMail.focus();
            return false;
        }
        if(accountForm.txtSubject.value == "")
        {
        	alert("Please provide a Subject for your message.");
            accountForm.txtSubject.focus();
            return false;
        }
        if(accountForm.taComments.value == "")
        {
        	alert("Please provide your Comments.");
            accountForm.taComments.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isSalesFormValid(accountForm)
    {
        if(accountForm.selPosition.value == "--")
        {
        	alert("Please specify your area of interest.");
            accountForm.selPosition.focus();
            return false;
        }

        if(accountForm.txtName.value == "")
        {
        	alert("Please provide your Name.");
            accountForm.txtName.focus();
            return false;
        }

        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid E-Mail Address.");
            accountForm.txtEMail.focus();
            return false;
        }

        if(accountForm.txtCity.value == "" )
        {
        	alert("Please provide your City.");
            accountForm.txtCity.focus();
            return false;
        }

        if(accountForm.selState.value == "--" )
        {
        	alert("Please select your State.");
            accountForm.selState.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isHostFormValid(accountForm)
    {
        if(accountForm.txtName.value == "")
        {
        	alert("Please provide your Name.");
            accountForm.txtName.focus();
            return false;
        }

        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid E-Mail Address.");
            accountForm.txtEMail.focus();
            return false;
        }

        if(accountForm.txtOccasion.value == "")
        {
        	alert("Please specify your event's Occasion.");
            accountForm.txtOccasion.focus();
            return false;
        }

        if(accountForm.txtDate.value == "")
        {
        	alert("Please specify the Desired Date for your event.");
            accountForm.txtDate.focus();
            return false;
        }

        if(accountForm.txtTime.value == "")
        {
        	alert("Please specify the Desired Time for your event.");
            accountForm.txtTime.focus();
            return false;
        }

        if(accountForm.txtCity.value == "" )
        {
        	alert("Please provide your City.");
            accountForm.txtCity.focus();
            return false;
        }

        if(accountForm.selState.value == "--" )
        {
        	alert("Please select your State.");
            accountForm.selState.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isGalFormValid(accountForm)
    {
        if(accountForm.txtFName.value == "" ||!re3.test(accountForm.txtFName.value))
        {
        	alert("Please provide your First Name.");
            accountForm.txtFName.focus();
            return false;
        }

        if(accountForm.txtLName.value == "" ||!re3.test(accountForm.txtLName.value))
        {
        	alert("Please provide your Last Name.");
            accountForm.txtLName.focus();
            return false;
        }

        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid E-Mail Address.");
            accountForm.txtEMail.focus();
            return false;
        }

        if(accountForm.txtCity.value == "" )
        {
        	alert("Please provide your City.");
            accountForm.txtCity.focus();
            return false;
        }

        if(accountForm.selState.value == "--" )
        {
        	alert("Please select your State.");
            accountForm.selState.focus();
            return false;
        }

        if((accountForm.selMonth.value == 0) || (accountForm.selDay.value == 0) )
        {
        	alert("Please provide your Date of Birth.");
            accountForm.selMonth.focus();
            return false;
        }

        if(accountForm.fileImage_Model.value == "" )
        {
        	alert("Please select a photo to upload.");
            accountForm.fileImage_Model.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isFriendFormValid(accountForm)
    {
        if(accountForm.txtOrgName.value.length == 0)
        {
        	alert("Please provide your Company Name.");
            accountForm.txtOrgName.focus();
            return false;
        }

        if(accountForm.txtName.value.length == 0)
        {
        	alert("Please provide Your Name.");
            accountForm.txtName.focus();
            return false;
        }

        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid E-Mail Address.");
            accountForm.txtEMail.focus();
            return false;
        }

        if(accountForm.txtWeb.value.length > 0 && !re5.test(accountForm.txtWeb.value))
        {
        	alert("Please enter a valid Web Address or leave it blank.");
            accountForm.txtWeb.focus();
            return false;
        }

        if(accountForm.txtCity.value == "" )
        {
        	alert("Please provide your City.");
            accountForm.txtCity.focus();
            return false;
        }

        if(accountForm.selState.value == "--" )
        {
        	alert("Please select your State.");
            accountForm.selState.focus();
            return false;
        }
        //If all checks pass, the form is valid
        return true;
    }

    function isGuestbookValid(accountForm)
    {
        if(accountForm.txtFName.value == "" ||!re3.test(accountForm.txtFName.value))
        {
        	alert("Please provide your First Name.");
            accountForm.txtFName.focus();
            return false;
        }
    	//Validation for the form during the checkout process
        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid e-mail address.");
            accountForm.txtEMail.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isReferralFormValid(accountForm)
    {
        if(accountForm.txtFName.value == "" ||!re3.test(accountForm.txtFName.value))
        {
        	alert("Please provide your First Name.");
            accountForm.txtFName.focus();
            return false;
        }
        if(accountForm.txtLName.value == "" || !re3.test(accountForm.txtLName.value))
        {
        	alert("Please provide your Last Name.");
            accountForm.txtLName.focus();
            return false;
        }
    	//Validation for the form during the checkout process
        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid e-mail address.");
            accountForm.txtEMail.focus();
            return false;
        }
        if(accountForm.txtAddress1.value == "")
        {
        	alert("Please provide your Street Address.");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(re4.test(accountForm.txtAddress1.value))
        {
        	alert("Please provide a residential address. We are unable to ship to P.O. boxes");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(accountForm.txtCity.value == "")
        {
        	alert("Please provide the name of your City.");
            accountForm.txtCity.focus();
            return false;
        }
        if(accountForm.selState.value == "--")
        {
        	alert("Please select a State.");
            accountForm.selState.focus();
            return false;
        }
        if(accountForm.txtZip.value == "" || !re2.test(accountForm.txtZip.value))
        {
        	alert("Please enter a valid Zip Code.");
            accountForm.txtZip.focus();
            return false;
        }
		
		var referralCount = 0;
		for(var x = 1; x <= 10; x++)
		{		
			var el = document.getElementById("txtFriendEmail" + x);		
			if((el.value != "") && (!re1.test(el.value)))
			{
				alert("Please provide a valid e-mail address.");
				el.focus();
				return false;
			}			
			else if(el.value != "")
				referralCount++;			
		}
		
		if(referralCount == 0)
		{
			alert("Please provide at least one referral.");
			accountForm.txtFriendFName1.focus();
			return false;
		}
		
        //If all checks pass, the form is valid
        return true;
    }
	
    function isAccountFormValid(accountForm)
    {
        if(accountForm.txtFName.value == "" ||!re3.test(accountForm.txtFName.value))
        {
        	alert("Please provide your First Name.");
            accountForm.txtFName.focus();
            return false;
        }
        if(accountForm.txtLName.value == "" || !re3.test(accountForm.txtLName.value))
        {
        	alert("Please provide your Last Name.");
            accountForm.txtLName.focus();
            return false;
        }
    	//Validation for the form during the checkout process
        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid e-mail address.");
            accountForm.txtEMail.focus();
            return false;
        }
        if(accountForm.txtAddress1.value == "")
        {
        	alert("Please provide your Street Address.");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(re4.test(accountForm.txtAddress1.value))
        {
        	alert("Please provide a residential address. We are unable to ship to P.O. boxes");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(accountForm.txtCity.value == "")
        {
        	alert("Please provide the name of your City.");
            accountForm.txtCity.focus();
            return false;
        }
        if(accountForm.selState.value == "--")
        {
        	alert("Please select a State.");
            accountForm.selState.focus();
            return false;
        }
        if(accountForm.txtZip.value == "" || !re2.test(accountForm.txtZip.value))
        {
        	alert("Please enter a valid Zip Code.");
            accountForm.txtZip.focus();
            return false;
        }

        //If all checks pass, the form is valid
        return true;
    }

    function isCheckoutFormValid(accountForm)
    {
        if(accountForm.txtFName.value == "" ||!re3.test(accountForm.txtFName.value))
        {
        	alert("Please provide your First Name.");
            accountForm.txtFName.focus();
            return false;
        }
        if(accountForm.txtLName.value == "" || !re3.test(accountForm.txtLName.value))
        {
        	alert("Please provide your Last Name.");
            accountForm.txtLName.focus();
            return false;
        }
    	//Validation for the form during the checkout process
        if(accountForm.txtEMail.value == "" || !re1.test(accountForm.txtEMail.value))
        {
        	alert("Please provide a valid e-mail address.");
            accountForm.txtEMail.focus();
            return false;
        }
        if(accountForm.txtAddress1.value == "")
        {
        	alert("Please provide your Street Address.");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(re4.test(accountForm.txtAddress1.value))
        {
        	alert("Please provide a residential address. We are unable to ship to P.O. boxes");
            accountForm.txtAddress1.focus();
            return false;
        }
        if(accountForm.txtCity.value == "")
        {
        	alert("Please provide the name of your City.");
            accountForm.txtCity.focus();
            return false;
        }
        if(accountForm.selState.value == "--")
        {
        	alert("Please select a State.");
            accountForm.selState.focus();
            return false;
        }
        if(accountForm.txtZip.value == "" || !re2.test(accountForm.txtZip.value))
        {
        	alert("Please enter a valid Zip Code.");
            accountForm.txtZip.focus();
            return false;
        }
		if(accountForm.txtPW)
		{
			if(accountForm.txtPW.value.length < 6)
			{
				alert("Please create a Password. It must be 6 - 12 characters long.");
				accountForm.txtPW.focus();
				return false;
			}
			if(accountForm.txtPW2.value != accountForm.txtPW.value)
			{
				alert("Your Passwords did not match. Please re-enter and confirm your entries.");
				accountForm.txtPW.focus();
				return false;
			}
		}
		
        if(!bypassCCInfo)
        {
                if(accountForm.txtCCName.value == "")
                {
                	alert("Please enter the name as it appears on your credit card.");
                    accountForm.txtCCName.focus();
                    return false;
                }
                if(accountForm.txtCCAddress.value == "")
                {
                	alert("Please enter your Billing Address.");
                    accountForm.txtCCAddress.focus();
                    return false;
                }
                if(accountForm.txtCCZip.value == "")
                {
                	alert("Please enter your Billing Zip Code.");
                    accountForm.txtCCZip.focus();
                    return false;
                }
                if(accountForm.selCardType.value == "*")
                {
                	alert("Please specify your Credit Card Type.");
                    accountForm.selCardType.focus();
                    return false;
                }
                if(accountForm.txtCCNumber.value.length < 15)
                {
                	alert("Please enter a valid Credit Card Number.");
                    accountForm.txtCCNumber.focus();
                    return false;
                }
                if(accountForm.selCCMonth.value == "mm" || (accountForm.selCCYear.value == "yy"))
                {
                	alert("Please specify your Credit Card Expiration Date.");
                    accountForm.selCCMonth.focus();
                    return false;
                }
                if(accountForm.txtCVV2.value.length < 3)
                {
                	alert("Please enter the CVV2 / CID number as it appears on your card.");
                    accountForm.txtCVV2.focus();
                    return false;
                }
        }

        //If all checks pass, the form is valid
        return true;
    }

    function confirmOptions(sizeDDL, colorDDL, qty, amount, category)
    {
        if(category != "Gift Certificate")
        {
            if((document.getElementById(sizeDDL).length > 1) && document.getElementById(sizeDDL).value == "--")
            {
                alert("Please select a size.");
                document.getElementById(sizeDDL).focus();
                return false;
            }
            else if((document.getElementById(colorDDL).length > 1)  && document.getElementById(colorDDL).value == "--")
            {
                alert("Please choose a color.");
                document.getElementById(colorDDL).focus();
                return false;
            }
            else if((document.getElementById(qty).value < 1) || (!IsNumeric(document.getElementById(qty).value)))
            {
                alert("Please enter a quantity.");
                document.getElementById(qty).focus();
                return false;
            }
        }
        else
        {
            if(document.getElementById(amount).value == "*")
            {
                if(!IsNumeric(document.getElementById("txtAmount").value))
                {
                    alert("Please enter your gift certificate denomination.");
                    document.getElementById("txtAmount").focus();
                    return false;
                }
            }
            else
            {
                if(document.getElementById(amount).value == "--")
                {
                    alert("Please select your gift certificate denomination.");
                    document.getElementById(amount).focus();
                    return false;
                }
            }
            if(document.getElementById("Option4").value == "--")
            {
                alert("Please select your delivery option.");
                document.getElementById("Option4").focus();
                return false;
            }
            else if(document.getElementById("Option1").value.length < 5)
            {
                alert("Please enter the name of the gift certificate recipient.");
                document.getElementById("Option1").focus();
                return false;
            }
            else if((document.getElementById(qty).value < 1) || (!IsNumeric(document.getElementById(qty).value)))
            {
                alert("Please enter a quantity.");
                document.getElementById(qty).focus();
                return false;
            }
        }

        return true;
    }

