function validate() {

// Disables submit button
document.getElementById('submit').disabled = true;


// Set message variables
var missing_msg = '';
var email_msg = '';
var count_msg = '';
var final_msg = '';


// Discover nominator variables
if (document.getElementById('nominator_first').value == '') 
{var missing_msg = missing_msg + '- Your first name\n';}

if (document.getElementById('nominator_last').value == '') 
{var missing_msg = missing_msg + '- Your last name\n';}

if (document.getElementById('nominator_email').value == '') 
{var missing_msg = missing_msg + '- Your email\n';}

if (document.getElementById('nominator_email').value != '') 
    {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominator_email').value)) { }
    else {var email_msg = email_msg + '- Your email\n';}
    }


// Check to see if this form has multiple groups
if (document.getElementById('multiple_groups'))
    {
    
    if (document.getElementById('nominee_group_name_0').value == '') 
    {var missing_msg = missing_msg + '- Your first nominee\'s name\n';}

    if (document.getElementById('nominee_group_email_0').value == '') 
    {var missing_msg = missing_msg + '- Your first nominee\'s email\n';}

    if (document.getElementById('nominee_group_name_1').value == '') 
    {var missing_msg = missing_msg + '- Your second nominee\'s name\n';}
    
    if (document.getElementById('nominee_group_email_1').value == '') 
    {var missing_msg = missing_msg + '- Your second nominee\'s email\n';}

    if (document.getElementById('nominee_group_email_0').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_0').value)) { }
        else {var email_msg = email_msg + '- Your first nominee\'s email\n';}
        }
    if (document.getElementById('nominee_group_email_1').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_1').value)) { }
        else {var email_msg = email_msg + '- Your second nominee\'s email\n';}
        }

    if (document.getElementById('nominee_group_name_2').value != '')
    {
    if (document.getElementById('nominee_group_email_2').value == '') 
    {var missing_msg = missing_msg + '- Your third nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_2').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_2').value)) { }
        else {var email_msg = email_msg + '- Your third nominee\'s email\n';}
        }
    }

    if (document.getElementById('nominee_group_name_3').value != '')
    {
    if (document.getElementById('nominee_group_email_3').value == '') 
    {var missing_msg = missing_msg + '- Your fourth nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_3').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_3').value)) { }
        else {var email_msg = email_msg + '- Your fourth nominee\'s email\n';}
        }
    }

    if (document.getElementById('nominee_group_name_4').value != '')
    {
    if (document.getElementById('nominee_group_email_4').value == '') 
    {var missing_msg = missing_msg + '- Your fifth nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_4').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_4').value)) { }
        else {var email_msg = email_msg + '- Your fifth nominee\'s email\n';}
        }
    }

    if (document.getElementById('nominee_group_name_5').value != '')
    {
    if (document.getElementById('nominee_group_email_5').value == '') 
    {var missing_msg = missing_msg + '- Your sixth nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_5').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_5').value)) { }
        else {var email_msg = email_msg + '- Your sixth nominee\'s email\n';}
        }
    }

    if (document.getElementById('nominee_group_name_6').value != '')
    {
    if (document.getElementById('nominee_group_email_6').value == '') 
    {var missing_msg = missing_msg + '- Your seventh nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_6').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_6').value)) { }
        else {var email_msg = email_msg + '- Your seventh nominee\'s email\n';}
        }
    }

    if (document.getElementById('nominee_group_name_7').value != '')
    {
    if (document.getElementById('nominee_group_email_7').value == '') 
    {var missing_msg = missing_msg + '- Your eighth nominee\'s email\n';}
    if (document.getElementById('nominee_group_email_7').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email_7').value)) { }
        else {var email_msg = email_msg + '- Your eighth nominee\'s email\n';}
        }
    }

}
// Begin big else
else {

// If Individual (radio button version)
if (document.getElementById('nominee_type_indiv')) 
{if (document.getElementById('nominee_type_indiv').checked == true) 
    {

    if (document.getElementById('nominee_indiv_first').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s first name\n';}
    
    if (document.getElementById('nominee_indiv_last').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s last name\n';}
    
    if (document.getElementById('nominee_indiv_email').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s email\n';}
    
    if (document.getElementById('nominee_indiv_email').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_indiv_email').value)) { }
        else {var email_msg = email_msg + '- Your nominee\'s email\n';}
        }
    }
}


// If Individual (hidden input version)
if (document.getElementById('nominee_type')) 
{if (document.getElementById('nominee_type').value == 'indiv') 
    {

    if (document.getElementById('nominee_indiv_first').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s first name\n';}
    
    if (document.getElementById('nominee_indiv_last').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s last name\n';}
    
    if (document.getElementById('nominee_indiv_email').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s email\n';}
    
    if (document.getElementById('nominee_indiv_email').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_indiv_email').value)) { }
        else {var email_msg = email_msg + '- Your nominee\'s email\n';}
        }
    }
}


// If Group (radio button version)
if (document.getElementById('nominee_type_group')) 
{if (document.getElementById('nominee_type_group').checked == true) 
    {

    if (document.getElementById('nominee_group_name').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s name\n';}
    
    if (document.getElementById('nominee_group_email').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s email\n';}
    
    if (document.getElementById('nominee_group_email').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email').value)) { }
        else {var email_msg = email_msg + '- Your nominee\'s email\n';}
        }
    }
}


// If Group (hidden input version)
if (document.getElementById('nominee_type')) 
{if (document.getElementById('nominee_type').value == 'group') 
    {

    if (document.getElementById('nominee_group_name').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s name\n';}
    
    if (document.getElementById('nominee_group_email').value == '') 
    {var missing_msg = missing_msg + '- Your nominee\'s email\n';}
    
    if (document.getElementById('nominee_group_email').value != '') 
        {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('nominee_group_email').value)) { }
        else {var email_msg = email_msg + '- Your nominee\'s email\n';}
        }
    }
}


// If Neither (radio button version)
if ((document.getElementById('nominee_type_group')) && (document.getElementById('nominee_type_indiv')))
    {
    if ((document.getElementById('nominee_type_group').checked == false) && (document.getElementById('nominee_type_indiv').checked == false)) 
        {var missing_msg = missing_msg + '- Your nominee\n';}
    }


// End big else
}


// Check nomination textarea
if (document.getElementById('nomination_text').value == '') 
{var missing_msg = missing_msg + '- Your nomination\n';}


// Check wordcount
if (document.getElementById('nomination_text').value != '') 
    {
    var changelabel = document.getElementById('nomination_text');
    var char_count = changelabel.value.length;
    var fullStr = changelabel.value + " ";
    var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
    var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
    var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
    var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
    var splitString = cleanedStr.split(" ");
    var word_count = splitString.length -1;
    if (fullStr.length < 2) {word_count = 0;}

    if ((word_count < 150) || (word_count > 300)) 
        {var count_msg = '\nYour nomination must be between\n150 and 300 words.\n';}
    }


// And finally...
if ((missing_msg == '') && (email_msg == '') && (count_msg == '')) {return true;}
else {
    var final_msg = final_msg + 'Oops... we found some errors:\n';

    if (missing_msg) 
        {
        var final_msg = final_msg+'\nThe following required fields are empty:\n';
        var final_msg = final_msg+missing_msg;
        }
    
    if (email_msg) 
        {
        var final_msg = final_msg+'\nThe following emails are invalid:\n';
        var final_msg = final_msg+email_msg;
        }
    
    if (count_msg) 
        {
        var final_msg = final_msg+count_msg;
        }
    
    alert (final_msg);
    document.getElementById('submit').disabled = false;
    return false;
    }
}
