var signupFormObj = {

    error_string: "",
    element_count: "7",

    drawForm: function() {
        if(this.error_string != '') {
            document.write(this.error_string);
        }
        else {
            //All old forms will be calling a drawForm method on signupFormObj
            //with no paramaters passed in.
            var json_data = {"content": "\n\n<div class=\"e2ma_signup_form\" id=\"e2ma_signup_form\">\n    \n    <div class=\"e2ma_signup_message\" id=\"e2ma_signup_message\">    \n        To sign up to receive our emails, fill in the following fields and hit submit. Thanks, and welcome!\n    </div>\n    <div class=\"e2ma_signup_form_container\" id=\"e2ma_signup_form_container\">\n        <form method=\"post\" id=\"e2ma_signup\" onSubmit=\"return signupFormObj.checkForm(this)\" action=\"https://app.e2ma.net/app2/audience/signup/1992508/1968881/?force_v1=1\" >\n    \n    <input type=\"hidden\" name=\"prev_member_email\" id=\"id_prev_member_email\" />\n    \n    <input type=\"hidden\" name=\"source\" id=\"id_source\" />\n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    <input type=\"hidden\" name=\"group_49537777\" value=\"49537777\" id=\"id_group_49537777\" />\n    \n      <input type=\"hidden\" name=\"private_set\" value=\"{num_private}\">\n\n    \n    \n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        Email\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"email\" name=\"email\" required id=\"id_email\" /></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        First Name\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_first_name\" field_id=\"6829809\" required id=\"id_member_field_first_name\" /></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        Last Name\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_last_name\" field_id=\"6830833\" required id=\"id_member_field_last_name\" /></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        Organization\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_organization\" field_id=\"7505649\" id=\"id_member_field_organization\" /></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        Address\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><textarea name=\"member_field_address\" cols=\"40\" rows=\"10\" field_id=\"7404273\" required id=\"id_member_field_address\">\n</textarea></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        City\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><textarea name=\"member_field_city\" cols=\"40\" rows=\"10\" field_id=\"7405297\" required id=\"id_member_field_city\">\n</textarea></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        State\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><select name=\"member_field_state\" field_id=\"7406321\" required id=\"id_member_field_state\">\n  <option value=\"\" selected></option>\n\n  <option value=\"Alabama\">Alabama</option>\n\n  <option value=\"Alaska\">Alaska</option>\n\n  <option value=\"Arizona\">Arizona</option>\n\n  <option value=\"Arkansas\">Arkansas</option>\n\n  <option value=\"Armed Forces America\">Armed Forces America</option>\n\n  <option value=\"Armed Forces Europe\">Armed Forces Europe</option>\n\n  <option value=\"Armed Forces Pacific\">Armed Forces Pacific</option>\n\n  <option value=\"California\">California</option>\n\n  <option value=\"Colorado\">Colorado</option>\n\n  <option value=\"Connecticut\">Connecticut</option>\n\n  <option value=\"Delaware\">Delaware</option>\n\n  <option value=\"Florida\">Florida</option>\n\n  <option value=\"Georgia\">Georgia</option>\n\n  <option value=\"Hawaii\">Hawaii</option>\n\n  <option value=\"Idaho\">Idaho</option>\n\n  <option value=\"Illinois\">Illinois</option>\n\n  <option value=\"Indiana\">Indiana</option>\n\n  <option value=\"Iowa\">Iowa</option>\n\n  <option value=\"Kansas\">Kansas</option>\n\n  <option value=\"Kentucky\">Kentucky</option>\n\n  <option value=\"Louisiana\">Louisiana</option>\n\n  <option value=\"Maine\">Maine</option>\n\n  <option value=\"Maryland\">Maryland</option>\n\n  <option value=\"Massachusetts\">Massachusetts</option>\n\n  <option value=\"Michigan\">Michigan</option>\n\n  <option value=\"Minnesota\">Minnesota</option>\n\n  <option value=\"Mississippi\">Mississippi</option>\n\n  <option value=\"Missouri\">Missouri</option>\n\n  <option value=\"Montana\">Montana</option>\n\n  <option value=\"Nebraska\">Nebraska</option>\n\n  <option value=\"Nevada\">Nevada</option>\n\n  <option value=\"New Hampshire\">New Hampshire</option>\n\n  <option value=\"New Jersey\">New Jersey</option>\n\n  <option value=\"New Mexico\">New Mexico</option>\n\n  <option value=\"New York\">New York</option>\n\n  <option value=\"North Carolina\">North Carolina</option>\n\n  <option value=\"North Dakota\">North Dakota</option>\n\n  <option value=\"Ohio\">Ohio</option>\n\n  <option value=\"Oklahoma\">Oklahoma</option>\n\n  <option value=\"Oregon\">Oregon</option>\n\n  <option value=\"Pennsylvania\">Pennsylvania</option>\n\n  <option value=\"Rhode Island\">Rhode Island</option>\n\n  <option value=\"South Carolina\">South Carolina</option>\n\n  <option value=\"South Dakota\">South Dakota</option>\n\n  <option value=\"Tennessee\">Tennessee</option>\n\n  <option value=\"Texas\">Texas</option>\n\n  <option value=\"Utah\">Utah</option>\n\n  <option value=\"Vermont\">Vermont</option>\n\n  <option value=\"Virginia\">Virginia</option>\n\n  <option value=\"Washington\">Washington</option>\n\n  <option value=\"Washington, D.C.\">Washington, D.C.</option>\n\n  <option value=\"West Virginia\">West Virginia</option>\n\n  <option value=\"Wisconsin\">Wisconsin</option>\n\n  <option value=\"Wyoming\">Wyoming</option>\n\n</select></div>\n    </div>\n    \n    \n    \n    <div class=\"e2ma_signup_form_row\">\n      <div class=\"e2ma_signup_form_label\">\n        Postal Code\n        \n        <span class=\"e2ma_signup_form_required_asterix\">*</span>\n        \n      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_postal_code\" field_id=\"7407345\" required id=\"id_member_field_postal_code\" /></div>\n    </div>\n    \n    \n    \n    \n\n\n\n\n    <div class=\"e2ma_signup_form_required_footnote\"><span class=\"e2ma_signup_form_required_asterix\">*</span> = required field</div>\n    <div class=\"e2ma_signup_form_button_row\" id=\"e2ma_signup_form_button_row\">\n    <input id=\"e2ma_signup_submit_button\" class=\"e2ma_signup_form_button\" type=\"submit\" name=\"Submit\" value=\"Submit\" {disabled}>\n    </div>\n  </form>\n  </div>\n</div>\n<script type=\"text/javascript\">\n    (function() {\n        var loadCheckEl = document.getElementById('load_check');\n\n        // Hide the link to emma\n        if (loadCheckEl) {\n            loadCheckEl.style.display = 'none';\n        }\n    })();\n</script>\n"};

            //print form
            document.write(json_data.content);

        }
    },

    checkForm: function(form_obj) {
        //now handle required field validation
        json_fields = {"data": [{"required": true, "name": "Email", "field_type": "text", "short_name": "email", "widget_type": "text"}, {"required": true, "name": "First Name", "field_type": "text", "short_name": "first_name", "widget_type": "text"}, {"required": true, "name": "Last Name", "field_type": "text", "short_name": "last_name", "widget_type": "text"}, {"required": true, "name": "Address", "field_type": "text", "short_name": "address", "widget_type": "long"}, {"required": true, "name": "City", "field_type": "text", "short_name": "city", "widget_type": "long"}, {"required": true, "name": "State", "field_type": "text", "short_name": "state", "widget_type": "select one"}, {"required": true, "name": "Postal Code", "field_type": "text", "short_name": "postal_code", "widget_type": "text"}]};
        var element_array = json_fields.data;
        var why = "";
        for (var loop = 0; loop < element_array.length; loop++)
        {
            if(element_array[loop].widget_type == 'text' || element_array[loop].widget_type == 'long')
            {
                if(form_obj[element_array[loop].short_name].value == "")
                {
                    why += element_array[loop].name + " is a required field.\n"
                }
                else if(element_array[loop].short_name == 'email')
                {
                    var filter=/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,63})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,8})?)$/i;

                    if (!filter.test(form_obj[element_array[loop].short_name].value))
                    {
                        why += element_array[loop].name + " must be a valid email address.\n";
                    }
                }
                continue;
            }
            else if (element_array[loop].widget_type == 'check_multiple')
            {
                var element = form_obj[element_array[loop].short_name];
                if(signupFormObj.checkMulti(element))
                {
                    continue;
                }
                why += element_array[loop].name + " is a required field.\n";
            }
            else if (element_array[loop].widget_type == 'radio')
            {
                var flag = 'false';
                var element = form_obj[element_array[loop].short_name];
                if (signupFormObj.checkMulti(element))
                {
                    continue;
                }
                why += element_array[loop].name + " is a required field.\n";
            }
            else if (element_array[loop].widget_type == 'select one')
            {
                var index = form_obj[element_array[loop].short_name].selectedIndex;
                if(form_obj[element_array[loop].short_name].options[index].value == "")
                {
                    why += element_array[loop].name + " is a required field.\n";
                }
            }
            else if (element_array[loop].widget_type == 'select multiple')
            {
                var element = form_obj[element_array[loop].short_name];
                if(!signupFormObj.checkSelMulti(element)) {
                    why += element_array[loop].name + " is a required field.\n";
                }
            }
            else if (element_array[loop].widget_type == 'date')
            {
                var str_month = element_array[loop].widget_type + "_month";
                var str_day = element_array[loop].widget_type + "_day";
                var str_year = element_array[loop].widget_type + "_year";

                if (form_obj[str_month].selectedIndex < 1 || form_obj[str_day].selectedIndex < 1 || form_obj[str_year].selectedIndex < 1)
                {
                    why += element_array[loop].name + " 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 (element) {
        for (var i = 0; i < element.length; i++) {
            if (element[i].checked)
            {
                return true;
            }
        }
        return false;
    }
}
