var signupFormObj = {

    error_string: "",
    html_string: "<e2mabr /><div class=\"e2ma_signup_form\" id=\"e2ma_signup_form\"><e2mabr />    <e2mabr />    <div class=\"e2ma_signup_message\" id=\"e2ma_signup_message\">    <e2mabr />        To sign up to receive our emails, fill in the following fields and hit submit. Thanks, and welcome!<e2mabr />    </div><e2mabr />    <div class=\"e2ma_signup_form_container\" id=\"e2ma_signup_form_container\"><e2mabr />      <form target=\"_new\" method=\"post\" id=\"e2ma_signup\" onSubmit=\"return signupFormObj.checkForm(this)\" action=\"https://app.e2ma.net/app/view:Join/signupId:34425\" ><e2mabr /><e2mabr />      <e2mabr /><e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_row\"><e2mabr />      <div class=\"e2ma_signup_form_label\"><e2mabr />        <e2mabr />        <span class=\"e2ma_signup_form_required_asterix\">*</span><e2mabr />        <e2mabr />        first name<e2mabr />      </div><e2mabr />      <div class=\"e2ma_signup_form_element\"><input name=\"emma_member_name_first\" type=\"text\" /></div><e2mabr />    </div><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_row\"><e2mabr />      <div class=\"e2ma_signup_form_label\"><e2mabr />        <e2mabr />        <span class=\"e2ma_signup_form_required_asterix\">*</span><e2mabr />        <e2mabr />        last name<e2mabr />      </div><e2mabr />      <div class=\"e2ma_signup_form_element\"><input name=\"emma_member_name_last\" type=\"text\" /></div><e2mabr />    </div><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_row\"><e2mabr />      <div class=\"e2ma_signup_form_label\"><e2mabr />        <e2mabr />        <span class=\"e2ma_signup_form_required_asterix\">*</span><e2mabr />        <e2mabr />        email<e2mabr />      </div><e2mabr />      <div class=\"e2ma_signup_form_element\"><input name=\"emma_member_email\" type=\"text\" /></div><e2mabr />    </div><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_row\"><e2mabr />      <div class=\"e2ma_signup_form_label\"><e2mabr />        <e2mabr />        postal code<e2mabr />      </div><e2mabr />      <div class=\"e2ma_signup_form_element\"><input name=\"emma_member_postal_code\" type=\"text\" /></div><e2mabr />    </div><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <e2mabr /><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_required_footnote\"><span class=\"e2ma_signup_form_required_asterix\">*</span> required</div><e2mabr />    <e2mabr />    <e2mabr />    <e2mabr />    <div class=\"e2ma_signup_form_button_row\" id=\"e2ma_signup_form_button_row\"><e2mabr />      <input id=\"e2ma_signup_submit_button\" class=\"e2ma_signup_form_button\" type=\"submit\" name=\"Submit\" value=\"Submit\" ><e2mabr />      &nbsp;<e2mabr />      <input id=\"e2ma_signup_reset_button\" class=\"e2ma_signup_form_button\" type=\"reset\" value=\"Clear\" ><e2mabr />    </div><e2mabr />    <e2mabr />  </form><e2mabr />  </div><e2mabr /></div><e2mabr /><script type=\"text/javascript\"><e2mabr />if (document.getElementById) { //if everything loads cool hide the link to emma<e2mabr />    document.getElementById('load_check').style.display = 'none';<e2mabr />}<e2mabr /></script><e2mabr />",
    element_count: "3",

    //array of elements
    element_array: new Array(new Array("text","emma_member_name_first","first name"),new Array("text","emma_member_name_last","last name"),new Array("text","emma_member_email","email")),

    drawForm: function() {
        if(this.error_string != '') {
            document.write(this.error_string);
        }
        else {
            this.html_string = this.html_string.replace(/<e2mabr \/>/g,"\n")  
            document.write(this.html_string);
        }
    },
    
    
    checkForm: function (form_obj) {
        var why = "";
    
        //loop through required fields array and check them for "blankness"
        for (var loop = 0; loop < this.element_count; loop++) 
        {   
            if(this.element_array[loop][0] == 'text' || this.element_array[loop][0] == 'long')
            {   
                if(form_obj[this.element_array[loop][1]].value == "")
                {
                    why += this.element_array[loop][2] + " is a required field.\n"
                }
                else if(this.element_array[loop][2] == 'email' || this.element_array[loop][1] == 'email')
                {
                    var filter=/^[a-z0-9_\-\.\+]+@[a-z0-9_\-\.]+\.[a-z]{2,4}$/i;
                    
                    if (!filter.test(form_obj[this.element_array[loop][1]].value))
                    {
                        why += this.element_array[loop][2] + " must be a valid email address.\n";
                    }
                }
                continue;
            }       
            
            else if (this.element_array[loop][0] == 'check_multiple')
            {
                if(this.checkMulti(loop)) {
                    continue;
                }
                why += this.element_array[loop][2] + " is a required field.\n";
            }  
            else if (this.element_array[loop][0] == 'checkbox')
            {
                if(this.checkSingle(loop)) {
                    continue;
                }

                why += this.element_array[loop][2] + " is a required field..\n";
            }
            else if (this.element_array[loop][0] == 'radio')
            {
                var flag = 'false';
                for(var i = 0; i < form_obj[this.element_array[loop][1]].length; i++)
                {
                    if(form_obj[this.element_array[loop][1]][i].checked)
                    {
                        flag = 'true';
                        break;
                    }                   
                }
                if(flag == 'false')
                {
                    why += this.element_array[loop][2] + " is a required field..\n";
                }
            } 
            else if (this.element_array[loop][0] == 'select one')
            {
                //not using index == -1 test in case there is a blank default option implemented 
                var index = form_obj[this.element_array[loop][1]].selectedIndex;
                if(form_obj[this.element_array[loop][1]].options[index].value == "")
                {
                    why += this.element_array[loop][2] + " is a required field.\n";
                }
            }
            else if (this.element_array[loop][0] == 'select multiple')
            {
                var element = document.getElementById(this.element_array[loop][1]);
                if(!this.checkSelMulti(element)) {
                    why += this.element_array[loop][2] + " is a required field.\n";
                }
            } 
            else if (this.element_array[loop][0] == 'date')
            {
                var str_month = this.element_array[loop][1] + "[M]";
                var str_day = this.element_array[loop][1] + "[d]";
                var str_year = this.element_array[loop][1] + "[Y]";

                if (form_obj[str_month].selectedIndex < 1 || form_obj[str_day].selectedIndex < 1 || form_obj[str_year].selectedIndex < 1) 
                {
                    why += this.element_array[loop][2] + " is a required field.\n";
                }
            } 
        }
        
        if (why != "") {
           alert(why);
           return false;
        } 
    
    return true;   
    },
    
    checkSelMulti: function (element) {
        for(var i = 0; i < element.length; i++) {
            if(element[i].selected) {
                return true;
            }
        }
        return false;
    },
    
    checkMulti: function (el_number) {
        var idArray = this.element_array[el_number][4].split(":::");
        var element = document.getElementById(idArray[0]);
        for(var i = 0; i < this.element_array[el_number][3]; i++)
        {
            var element = document.getElementById(idArray[i]);

            if(element.checked)
            {
                return true;
            }
        } 
        return false; 
    },

    checkSingle: function (el_number) {
        var id = this.element_array[el_number][3];
        var element = document.getElementById(id);
        return(element.checked);
    },

    
    checkBlank: function (form_elem, name) {
        if(form_elem == "") {
        return name + " is a required field.\n";
        }
        return ""; 
    }
}
