
function submitForm()
{
    var formlist = "";
    var missingreq = false;

    var frm = document.forms["SUBSCRIBERPREFS"];

    // check first to see if we are unsubscribing
    // if so no need to validate...
    if (frm.elements["wanttodo"] && frm.wanttodo[0].checked)          
        return true;

    if (frm.elements["email"].value == "")
        missingreq = true;

    // validate email is of correct format
    var emailregex = /^[\w\_\-\.]+@[\w\_\-\.]+\.\w+$/;
    var emailresult = frm.email.value.match(emailregex);
  
    if (emailresult == null)
    {
        alert("The email address '" + frm.email.value + "' is not in a correct format.\n Please try again");
        return false;
    }

    // naming of form elements is as follows:
    // CUSTOM##  - not required custom demographic
    // RCUSTOM## - required custom demographic
    for (i = 0; i < frm.elements.length; i++)
    {
        if (frm.elements[i].type == "text" && frm.elements[i].name.substring(0, 7) == "RCUSTOM")
        {
            if (frm.elements[i].value == "")
                missingreq = true;
        }

        if (frm.elements[i].type == "radio" && frm.elements[i].name.substring(0, 7) == "RCUSTOM")
        {
            var onechecked = false;
            for (r = 0; r < frm.elements.length; r++)
            {
                if (frm.elements[r].name == frm.elements[i].name && frm.elements[r].checked)
                    onechecked = true;
            }

            if (!onechecked)
                missingreq = true;
        }

        if (frm.elements[i].type == "select-one" && frm.elements[i].name.substring(0, 7) == "RCUSTOM")
        {
            if (frm.elements[i].selectedIndex == 0)
                missingreq = true;
        }
    }

    if (missingreq)
    {
        msg = "The form was not submitted because required fields were not filled.\n";
        msg += "         Please fill in all required fields and re-submit.\n";
		
        alert(msg);
        return false;
    }
    
    return true;
}


