/*
* FORMfields
* Copyright 2005-2006 Brain Book Software LLC
* Comments are left to a minimum to streamline script execution.
* For complete documentation, please visit http://www.formfields.com.
*/

function setFocus() {
	if (document.forms.length > 0) {
		var form = document.forms[0];
		for (i = 0; i < form.length; i++) {
			if ( !form.elements[i].disabled
				&& ( (form.elements[i].type == "text") 
					|| (form.elements[i].type == "textarea")
					|| (form.elements[i].type == "select-one")
					|| (form.elements[i].type == "select-multiple")
					|| (form.elements[i].type == "radio")
					|| (form.elements[i].type == "checkbox")
					|| (form.elements[i].type == "password") ) ) {
				document.forms[0].elements[i].focus();
				return;
			}
		}
	}
}

function setTextFocus() {
	if (document.forms.length > 0) {
		var field = document.forms[0];
		for (i = 0; i < field.length; i++) {
			if ( !form.elements[i].disabled
				&& ( (field.elements[i].type == "text") 
					|| (field.elements[i].type == "textarea")
					|| (field.elements[i].type == "password") ) ) {
				document.forms[0].elements[i].focus();
				return;
			}
		}
	}
}

// if id exists set inner html
function setInnerHtml(id, html) {
	if ( (elmnt = document.getElementById(id)) != null)
		elmnt.innerHTML = html;
}

function clearInnerHtml(id) {
	setInnerHtml(id, '');
}

function restrict(cur, maxLen, cntId, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 38 || keyCode == 40) // ignore up or down arrows
		return;
	charsLeft = (maxLen - cur.value.length);
	if (charsLeft < 0)
		charsLeft = 0;
	if ( (elmnt = document.getElementById(cntId)) != null)
		elmnt.innerHTML = charsLeft;
	if (cur.value.length > maxLen) {
		cur.value = cur.value.substr(0, maxLen);
	}
}

function enterTabHandler(field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		for (j = 0; j < field.form.elements.length; j++) {
			if (field == field.form.elements[j]) {
				break;
			}
		}
		j = (j + 1) % field.form.elements.length;
		if (!field.form.elements[j].disabled && field.form.elements[j].type != 'hidden') {
			field.form.elements[j].focus();
		}
		return false;
	} else
		return true;
}

function disableEnter(field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		return false;
	} else
		return true;
}

function showCalendar(id, startYear, endYear, ffRootUrl) {
	url = ffRootUrl + "/calendar.php?id=" + id + "&year=" + document.getElementById(id + "_" + "year").value + "&month=" + document.getElementById(id + "_" + "month").value + "&startYear=" + startYear + "&endYear=" + endYear;
	window.open(url, "Calendar", "resizable=YES,height=250,width=400");
}

function setDate(id, year, month, day) {
	document.getElementById(id + "_" + "year").value = year;
	document.getElementById(id + "_" + "month").value = month;
	document.getElementById(id + "_" + "day").value = day;
	document.getElementById(id + "_" + "year").focus();
}

function showPalette(id, ffRootUrl) {
	url = ffRootUrl + "/palette.php?id=" + id;
	window.open(url, "Calendar", "status=YES,resizable=YES,height=350,width=550");
}

function setColor(id, color) {
	document.getElementById(id).value = color;
	document.getElementById(id).focus();
}

function removeAnchor(url) {
	parts = url.split("#");
	return parts[0];
}