/*
* 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 setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}
