function validate(form)
{
	var questionNo = "";
	var invalid = false;

	if (navigator.userAgent.indexOf("Opera") > -1) return true;

	for (i = 0; i < document.forms[form].elements.length; i++)
	{
		temp = document.forms[form].elements[i];

		// Set question number.
		questionNo = temp.name.match(new RegExp("[0-9]+"));

		// Determine type of input.
		switch (temp.type)
		{
			case "checkbox":
				if (document.forms[form].terms_and_conditions.checked)
					invalid = false;
				else
					invalid = true;
				break;
			case "radio":
				// Radio button.
				for (j = 0, notChecked = true; j < document.forms[form].elements[temp.name].length; j++)
					if (document.forms[form].elements[temp.name][j].checked)
					{
						// One of them is checked.
						notChecked = false;
						break;
					}
				
				if (notChecked) invalid = true;
				break;
			case "text":
				// Textbox.

				//for (k = 1; k <= 10; j++){
				//		if (typeof(eval("document.forms[form].roommate_fn_" + k )) =="object") || (typeof(eval("document.forms[form].roommate_ln_" + k )) =="object"){
				//			if (eval("document.forms[form].roommate_fn_" + k + ".value") =="")||(eval("document.forms[form].roommate_ln_" + k + ".value") =="")
				//			{
				//				invalid= true;
				//			}
				//		}
				//	}			

				if (typeof(document.forms[form].requiredTextFields) == "object")
					if (document.forms[form].requiredTextFields.value.search(new RegExp(temp.name, "i")) > -1)
					{
						// Required field.
						if (temp.value == "") invalid = true;
					}
					if (temp.name == "email")
						if (document.forms[form].email.value.indexOf('@',0)==-1 ||
							document.forms[form].email.value.indexOf('@',0)== 0 ||
							document.forms[form].email.value.indexOf('.',0)==-1) {
							questionNo = "your email";
							invalid = true;
							}
					
				break;
			case "select-one":
				// Single selection box.
				if (temp.value == "") invalid = true;
				break;
			default:
				// Do nothing.
		}

		if (invalid)
		{
			if (questionNo != null)
				alert("Please complete question " + questionNo + ".");
			else
				alert("Please complete the " + temp.name.replace(/_/g, " ") + ".");
			temp.focus();
			return false;
		}
	}

	return true;
}