	//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}$/;

	//File Extension Verification
	//This is used to confirm if a selected file is of the correct type.
	var VALID_AUDIO_EXTENSIONS = "*.mp3, *.mp2, *.wav, *.wma, *.rm, *.ogg, *.flac";
	var VALID_VIDEO_EXTENSIONS = "*.3gp, *.avi, *.flv, *.mp4, *.mpeg, *.mpg, *.mov, *.swf, *.wmv";
	var VALID_DOCUMENT_EXTENSIONS = "*.pdf, *.doc, *.docx";
	var VALID_PHOTO_EXTENSIONS = "*.jpg, *.jpeg, *.png";
	var VALID_PRODUCT_IMAGE_EXTENSIONS = "*.jpg, *.jpeg, *.png";

	function checkFileExtension(fileName, validExtensions)
	{
		var f = fileName.value.toLowerCase();
		var dotPos = f.search(/\./);
		var ext = f.substr(dotPos);
		validExtensions = validExtensions.toLowerCase();

		if(validExtensions.search(ext) == -1){
			alert("Invalid File Selected. \n\n Valid files: " + validExtensions);
			fileName.value = "";
			return false;
		}

		return true;
	}

    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 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 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 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;
    }

