var args = [];
var form;

function eventFieldError() {
	jQueryEventFieldError();
	/*
	var elm = document.getElementsByTagName('*');

	var obj = document.getElementById('alert')

	var error;

	for (var i = 0; i < elm.length; i++) {
		if (elm[i].className.match(/error/)) {
			elm[i].onmouseover = function(e) {
				error = obj.innerHTML;
				obj.innerHTML = this.title;
				this.style.backgroundColor = "#FF0000";
				this.style.color = "#FFFFFF";
			}

			elm[i].onmouseout = function(e) {
				obj.innerHTML = error;
				this.style.backgroundColor = "#FFFFCC";
				this.style.color = "#FF0000";
			}
		}
	}
*/
}

function requireFields() {
	form = countForms(); // form position
	if (arguments.length) {
		args = arguments;

		document.onkeyup = function(e) {
			allowSubmit()
		}
		document.onchange = function(e) {
			allowSubmit()
		}
		document.onclick = function(e) {
			allowSubmit()
		}
		allowSubmit();
	}

	eventFieldError();
}

function allowSubmit() {
	if (fieldCheck()) {
		document.getElementById('allow').disabled = false;
	}
	else {
		document.getElementById('allow').disabled = true;
	}
}

function fieldCheck() {
	for (var i = 0; i < args.length; i++) {

		var elm = document.forms[form].elements[args[i]];

		if (!elm.value) {
			return false
		}

		if (elm.type == 'checkbox' || elm.type == 'radio') {
			if (!elm.checked) {
				return false;
			}
		}
	}
	return true;
}

function countForms() {
	var total = 0;
	for (var i = 0; i < document.forms.length; i++) {
		total++;
	}

	if (total > 0) {
		return total - 1; // array always begins with a 0
	}
	else {
		return 0;
	}
}

function eventSubmit() {
	document.getElementById('allow').onclick = function(e) {
		disableSubmit()
	};
}

function disableSubmit() {
	document.getElementById('allow').disabled = true;
	document.forms[form].submit(); // i.e. is lame, fix
}

function focusFirstField(name) {
	if (!name) {
		name = 0
	}

	for (var i = 0; i < document.forms[name].length; i++) {
		if (document.forms[name][i].type == 'text' || document.forms[name][i].type == 'password' || document.forms[name][i].type == 'textarea' || document.forms[name][i].type == 'select-one') {
			if (document.forms[name][i].disabled != true) {
				document.forms[name][i].focus();
				break;
			}
		}
	}
}

function limitText(field, count_id, char_limit) {
	var new_field = field.value.replace(/(|\n)/g, ''); // don't count white spaces or newlines
	if (new_field.length >= char_limit) {
		field.value = field.value.substring(0, 255);

		alert('You have reached the limit of ' + char_limit + ' characters');
	}
	else {
		document.getElementById(count_id).innerHTML = 'Characters remaining: ' + (char_limit - new_field.length);
	}
}

function highlightCheckedRow(id) {
	var d = document.getElementById(id);

	if (d.checked) {
		color = "#FFFF00";
		document.getElementById('allow0').disabled = false;
		document.getElementById('allow1').disabled = false;
	}
	else {
		color = "#FFFFFF";
		document.getElementById('allow0').disabled = true;
		document.getElementById('allow1').disabled = true;
	}

	var elm = d.parentNode;

	while (elm.tagName.toLowerCase() != "tr") {
		elm = elm.parentNode;
	}

	elm.bgColor = color;
}

function checkAll(result_total) {
	for (var i = 1; i <= result_total; i++) {

		var d = document.getElementById("check_" + i);

		if (d.checked == true) {
			d.checked = false;
			highlightCheckedRow("check_" + i);
		}
		else {
			d.checked = true;
			highlightCheckedRow("check_" + i);
		}
	}
}

