/*var incompleteColor = '#FFFDC9';*/
var incompleteColor = '#e9e9e9';
var originalColor = '#FFFFFF';

function validate(form_name, not_required){
	//build an array of all form elements
	var required = new Array();
	for(var t = 0; t < document[form_name].elements.length; t++){
		if((document[form_name].elements[t].name != required[(required.length - 1)]) && (document[form_name].elements[t].disabled != true)){
			required.push(document[form_name].elements[t].name);
		}
	}
	//removes any unrequired elements from the required array
	if(not_required){
		not_required = not_required.split(",");	
		for(var z = 0; z < not_required.length; z++){
			for(var t = 0; t < required.length; t++){
				if(required[t] == not_required[z]){
					required.splice(t, 1);	
				}
			}
		}
	}
	var incomplete = new Array();
	for (var i=0; i < required.length; i++) {
		if(document[form_name].elements[required[i]]){
			switch(document[form_name].elements[required[i]].type){
				case undefined:
					if(document[form_name].elements[required[i]].length){
						switch(document[form_name].elements[required[i]][0].type){
							case 'radio':
							var completed = false;
							for(var x = 0; x < document[form_name].elements[required[i]].length; x++){
								if(document[form_name].elements[required[i]][x].checked == true){
									x = document[form_name].elements[required[i]].length;
									completed = true;
								}
							}
							if(!completed){
								if(incomplete[(incomplete.length - 1)] != document[form_name].elements[required[i]][0].name){
									incomplete.push(document[form_name].elements[required[i]][0].name);
								}
							}
							break;
							case 'checkbox':
						}//closes switch
					}//closes if
					break;
				case 'checkbox':
					var completed = false;
					if(document[form_name].elements[required[i]].length){
						for(var x = 0; x < document[form_name].elements[required[i]].length; x++){
							if(document[form_name].elements[required[i]][x].checked == true){
								x = document[form_name].elements[required[i]].length;
								completed = true;
							}
						}
					} else {
						if(document[form_name].elements[required[i]].checked == true) {
							completed = true;
						}
					}
					if(!completed){
						if(document[form_name].elements[required[i]].length){
							incomplete.push(document[form_name].elements[required[i]][0].name);
						} else {
							incomplete.push(document[form_name].elements[required[i]].name);
						}
					}
					break;				
				default:
					if(document[form_name].elements[required[i]].value == ""){
						incomplete.push(document[form_name].elements[required[i]].name);
					} else {
						document[form_name].elements[required[i]].style.backgroundColor = originalColor;
					}
					break;
			}//closes switch
		}
	}
		
	if(incomplete.length >= 1){
		var list = '';
		for(var w = 0; w < incomplete.length; w++){
			var element_name = incomplete[w];
			if(document[form_name].elements[element_name].style){
				document[form_name].elements[element_name].style.backgroundColor = incompleteColor;
			}
			list += '- ' + element_name.replace(/_/g, " ").toUpperCase() + "\n";
		}
		alert("The following fields were not completed:\n\n" + list);
		if(document[form_name].elements[incomplete[0]].length){
			document[form_name].elements[incomplete[0]][0].focus();
		}
		return false;
	} else {
		//document.getElementById(form_name).submit();	
		return true;
	}
}