var signupFormObj = {

    error_string: "",
    element_count: "1",

    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        <div><span style=\"font-family: verdana, geneva; font-size: 11pt\">Thanks for your interest in joining our mailing list. We look forward to keeping you informed about the items and opportunities which interest you. Please complete the information below and then click submit!</span></div>\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/1843200/1794394/?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      <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      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_first_name\" field_id=\"1002842\" 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      </div>\n      <div class=\"e2ma_signup_form_element\"><input type=\"text\" name=\"member_field_last_name\" field_id=\"1003866\" id=\"id_member_field_last_name\" /></div>\n    </div>\n    \n    \n     \n    \n     \n    \n     \n    \n     \n    \n    <input type=\"hidden\" name=\"public_set\" value=\"1\">\n    <div class=\"e2ma_signup_form_groups\">\n    <div class=\"e2ma_signup_form_group_label\">I'm interested in:</div>\n      <div class=\"e2ma_signup_form_group_list\">\n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n            <!-- <input type=\"checkbox\" name=\"groups[]\" value=\"\" border=\"0\" > -->\n            <div>\n            <input type=\"checkbox\" name=\"group_3554650\" id=\"id_group_3554650\" checked />\n            Advocacy Alerts\n            </div>\n        \n        \n        \n        \n        \n            <!-- <input type=\"checkbox\" name=\"groups[]\" value=\"\" border=\"0\" > -->\n            <div>\n            <input type=\"checkbox\" name=\"group_3508570\" id=\"id_group_3508570\" checked />\n            All Communications\n            </div>\n        \n        \n        \n        \n        \n            <!-- <input type=\"checkbox\" name=\"groups[]\" value=\"\" border=\"0\" > -->\n            <div>\n            <input type=\"checkbox\" name=\"group_3509594\" id=\"id_group_3509594\" checked />\n            Monthly E-News\n            </div>\n        \n        \n        \n        \n        \n            <!-- <input type=\"checkbox\" name=\"groups[]\" value=\"\" border=\"0\" > -->\n            <div>\n            <input type=\"checkbox\" name=\"group_3507546\" id=\"id_group_3507546\" checked />\n            Urban Thrift\n            </div>\n        \n        \n        \n      </div>\n    </div>\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"}]};
        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;
    }
}
