function initForms() {
	var myForms = document.getElementsByTagName('form');
	
	var n = myForms.length;
	for (var i = 0; i < n; i++) {
		myForms[i].onsubmit = function() {return filledCheck(this);};
	}
}

function filledCheck(elm) {
	if (!elm) return false;
	var inputs = elm.getElementsByTagName('input');
	var selects = elm.getElementsByTagName('select');
	var textareas = elm.getElementsByTagName('textarea');
	var someFilled = false;
	
	var n = inputs.length;
	for (var i = 0; i < n; i++) {
		if (inputs[i].type.toLowerCase() == 'text' || inputs[i].type.toLowerCase() == 'password' || inputs[i].type.toLowerCase() == 'file') {
			if (inputs[i].value) {
				someFilled = true;
			}
		} else if (inputs[i].type.toLowerCase() == 'radio' || inputs[i].type.toLowerCase() == 'checkbox') {
			if (inputs[i].checked) {
				someFilled = true;
			}
		} else if (inputs[i].type.toLowerCase() == 'hidden') { //hidden inputs constitute a filled field
			someFilled = true;
		}
	}
	
	n = selects.length;
	for (var i = 0; i < n; i++) {
		if (selects[i].value.toLowerCase() != 'none' || selects[i].value != '') {
			someFilled = true; 
		}
	}
	
	n = textareas.length;
	for (var i = 0; i < n; i++) {
		if (textareas[i].value) {
			someFilled = true;
		}
	}
	
	if (someFilled) {
		return true;
	}
	alert('Please enter some information before trying to submit.');
	paintEmptyInputs(elm);
	return false;
}

function paintEmptyInputs(elm) {
	if (elm) {
		var inputs = elm.getElementsByTagName('input');
		var selects = elm.getElementsByTagName('select');
		var textareas = elm.getElementsByTagName('textarea');
		
		var borderstyle = "1px solid red";
		
		var n = inputs.length;
		for (var i = 0; i < n; i++) {
			if (inputs[i].type.toLowerCase() != 'image' && inputs[i].type.toLowerCase() != 'submit') {
				if (inputs[i]) inputs[i].style.border = borderstyle;
			}
		}

		n = selects.length;
		for (var i = 0; i < n; i++) {
			if (selects[i]) selects[i].style.border = borderstyle;
		}

		n = textareas.length;
		for (var i = 0; i < n; i++) {
			if (textareas[i]) textareas[i].style.border = borderstyle; 
		}
	}
}

window.onload = initForms;