function getFields()
{
    frm = document.forms['bios'];
    var arr = new Array();
    for(i = 0; i < frm.elements.length; i++)
    {
	if(frm.elements[i].name)
	{
	    var a = frm.elements[i].name;
	    if(arr[a])
	    {
		var target = arr[a];
		if(isArray(arr[a]))
		{
		    var b = target;
		    b.push = frm.elements[i];
		    arr[a] = b;
		}
		else
		{
		    var b = new Array();
		    b[0] = target;
		    b[1] = frm.elements[i];
		    arr[a] = b;
		}
	    }
	    else
	    {
		arr[a] = frm.elements[i];
	    }
	}
    }
    return (arr);
}

function validateFields()
{
    fields = getFields();
    var good = true;
    messages = new Array();
    if(fields['q1'].value == '')	{ good = false; messages.push("Question 01"); }
    if(fields['q2'].value == '')	{ good = false; messages.push("Question 02"); }
    if(fields['q3'].value == '')	{ good = false; messages.push("Question 03"); }
    if( (fields['q4d1'].value == '' || fields['q4m1'].value == '') &&
	(fields['q4d2'].value == '' || fields['q4m2'].value == '') &&
	(fields['q4d3'].value == '' || fields['q4m3'].value == '') )
    	{ good = false; messages.push("Question 04"); }
//    if(fields['q4'].value == '')	{ good = false; messages.push("Question 04"); }
    if(fields['q5'].value == '')	{ good = false; messages.push("Question 05"); }
    if(fields['q6'].value == '')	{ good = false; messages.push("Question 06"); }
    if(fields['q7'].value == '')	{ good = false; messages.push("Question 07"); }
    if(fields['q8'].value == '')	{ good = false; messages.push("Question 08"); }
    if(fields['q9'].value == '')	{ good = false; messages.push("Question 09"); }
    if(fields['fname'].value == '')	{ good = false; messages.push("First Name"); }
    if(fields['lname'].value == '')	{ good = false; messages.push("Last Name"); }
    if(!fields['email'].value.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {good = false; messages.push("Email"); }
    if(fields['email'].value != fields['vemail'].value)	{ good = false; messages.push("Emails don't match"); }
    if(!fields['phone'].value.match(/^((\+\d{1,3}(-|)?\(?\d\)?(-|)?\d{1,5})|(\(?\d{2,6}\)?))(-|)?(\d{3,4})(-|)?(\d{4})((x|ext)\d{1,5}){0,1}$/))	{ good = false; messages.push("Phone Number"); }
    if(fields['cat'].value == '')	{ good = false; messages.push("Category");    }
    if(good) { return fields; }
    return new Array(false, messages);
}

function submitForm()
{
    var fields = validateFields();
    if(fields[0] == false)
    {
	msg = "One or more of the fields are not filled out properly:";
	errors = fields[1];
	for(key in errors)  { msg += "\n" + errors[key];  }
	alert(msg);
    }
    else
    {
	fields['counter'].value = getCounter();
	document.bios.submit();
    }
}
