

function validate(form) {
	//form = "form";
	var valid = true;
	var output = "";
	var subject = "";
	var fieldAttention = getElementsByName_ie("requiredField");
	for(var i = 0;i < fieldAttention.length; i++) {
		fieldAttention[i].style.display = "none";
	}
	for(var i = 0, field; field = document.forms[form].elements[i]; i++) {
		if(field.className == "invalidInput") field.className = "";
		var reqField = new Array();
		for(var j = 0; j < field.parentNode.childNodes.length; j++){
			if(field.parentNode.childNodes[j].getAttribute && field.parentNode.childNodes[j].getAttribute("name") == "requiredField") reqField.push(field.parentNode.childNodes[j]);
		}
		switch(field.nodeName) {
			case "SELECT":
				if (field.value.length < 1 && field.getAttribute("required") && (field.getAttribute("required") == "true" || field.getAttribute("required") == "required")) {
					output += "- " + field.name + "\n"
					valid=false;
					if(reqField.length > 0){ reqField[reqField.length - 1].style.display="block"; field.className = "invalidInput";}
				}
				break;
			case "INPUT":
				if (field.value.length < 1 && field.getAttribute("required") && (field.getAttribute("required") == "true" || field.getAttribute("required") == "required")) {
					output += "- " + field.name + "\n"
					valid=false;
					if(reqField.length > 0){ reqField[reqField.length - 1].style.display="block"; field.className = "invalidInput";}
				}else if (field.name.toLowerCase() == "email"){
					if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field.value))) {
						output += "- " + field.name + "\n"
						valid=false;
						if(reqField.length > 1){ reqField[reqField.length - 2].style.display="block"; field.className = "invalidInput";}
						//if(field.parentNode.lastChild.previousSibling){ field.parentNode.lastChild.previousSibling.style.display="block"; field.className = "invalidInput";}
					}
				}
				break;
			case "TEXTAREA":
				if (field.value == "" && field.getAttribute("required") && (field.getAttribute("required") == "true" || field.getAttribute("required") == "required")) {
					output += "- " + field.name + "\n"
					valid=false;
					if(reqField.length > 0){ reqField[reqField.length - 1].style.display="block"; field.className = "invalidInput";}
				}
				break;
		}
	}
	for(var i = 0, field; field = document.forms[form].elements[i]; i++) {
		if (field.value.length > 0 && field.getAttribute("subject") && (field.getAttribute("subject") == "true")) {
			subject = subject + " -- " + field.value;		
		}
	}	
	
	var subjectElements = getElementsByName_ie("subject");
	if (subjectElements[0]){
		var subjectField = subjectElements[0];
		subjectField.value= subjectField.value + subject;		
	}else if(subject != ""){
		var subjectField = document.createElement("input");
		subjectField.type= "hidden";
		subjectField.name= "subject";
		subjectField.value= subject;
		document.forms[form].appendChild(subjectField);		
	}

	if(!valid){
		//alert(output);
	}else{
		document.forms[form].submit();
	}
}


	