var signupFormObj = {    
    
    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 ""; 
    }
}


