// if item is of type text, change the class
function disableClass(item) {
	if (document.getElementById(item).type == "text") {
		if (document.getElementById(item).disabled == true) {
			document.getElementById(item).className = "text_field_disabled";
		} else {
			document.getElementById(item).className = "text_field";
		}
	} else if (document.getElementById(item).type == "image") {
		var disabled_src = document.getElementById(item).getAttribute("DISABLEDSRC");
		var default_src  = document.getElementById(item).getAttribute("DEFAULTSRC");

		if (document.getElementById(item).disabled == true && disabled_src != null) {
			document.getElementById(item).src = disabled_src;
		} else if (default_src != null) {
			document.getElementById(item).src = default_src;
		}
	}
}

// fires onclick event for disabled/enabled item
function onclickFire(item) {
	if (document.getElementById(item).onclick) {
		document.getElementById(item).fireEvent("onclick");
	}
}

// if @priorityItem is disabled, @thisItem will be disabled
function disablePriority(thisItem,priorityItem) {
	if (document.getElementById(priorityItem).disabled == true) {
		document.getElementById(thisItem).disabled = true;
		disableClass(thisItem);
	}
}

// disables a list of items if @thisItem is not checked
// enables  a list of items if @thisItem is checked
// attempts to fire an onclick event for each item
// attempts to change the class of any item of type 'text'
function enableItem(thisItem,changeItem) {
	var items    = changeItem.split(",");
	var numItems = items.length;
	var n        = 0;
	var disable  = !thisItem.checked;
	var item     = items[0];
	var itemName = "";

	for (n; n < numItems; n++) {
		item     = items[n];
		itemName = document.getElementById(item).name;
		if (disable == true && itemName.indexOf("_submit") == -1)  { onclickFire(item); }
		document.getElementById(item).disabled = disable;
		if (disable == false && itemName.indexOf("_submit") == -1) { onclickFire(item); }
		disableClass(item);
	}
}

// disables a list of items if @thisItem is checked
// enables  a list of items if @thisItem is not checked
// attempts to fire an onclick event for each item
// attempts to change the class of any item of type 'text'
function disableItem(thisItem,changeItem) {
	var items    = changeItem.split(",");
	var numItems = items.length;
	var n        = 0;
	var disable  = thisItem.checked;
	var item     = items[0];
	var itemName = "";
	
	for (n; n < numItems; n++) {
		item     = items[n];
		itemName = document.getElementById(item).name;
		if (disable == true && itemName.indexOf("_submit") == -1)  { onclickFire(item); }
		document.getElementById(item).disabled = disable;
		if (disable == false && itemName.indexOf("_submit") == -1) { onclickFire(item); }
		disableClass(item);
	}
}

// enables  a group of items if @thisItem is checked
// disables a group of items if @thisItem is not checked
function disableGroup(formName, thisItem, changeGroup) {
	var group  = 0;
	var groups = formName.elements.length;

	for (group; group < groups; group++) {
		if (formName.elements[group].name == changeGroup) {
			formName.elements[group].disabled = (!thisItem.checked);
		}
	}
}

// enables  a group of items if @thisItem is not checked
// disables a group of items if @thisItem is checked
function enableGroup(formName, thisItem, changeGroup) {
	var group  = 0;
	var groups = formName.elements.length;
	
	for (group; group < groups; group++) {
		if (formName.elements[group].name == changeGroup) {
			formName.elements[group].disabled = thisItem.checked;
		}
	}
}