function onDelete(URL, form)
{
	if (window.confirm(txtDeleteMessage))
		{
		if (URL != null)
			form.action = URL;
		form.elements["Cmd"].value = "Delete";
		form.submit();
		}		
}

function onNew(URL, form)
{
//	window.alert("in onNew");
	if (checkDirtyData(form))
		{
		form.elements["selectedItem"].selectedIndex = -1;
		form.elements["editMode"].value = "NEW";
		clearData();
		bDataChanged = false;
		enableButtons();
		document.all["btnDeleteTable"].disabled=true;
		setFocusToData();
		}
}

function onReset(URL, form)
{
	var Mode = 	form.editMode.value;
	if (Mode == "NEW")
		onNew(URL, form);
	else
		onSelect(URL, form);
}

function onSave(URL, form)
{
//	window.alert("In onSave");
	form.command.value = "saveItem";
	form.action = URL;
	form.submit();
}

var indexLastSelected = -1;

function onSelect(URL, form)
{
//	window.alert("In maintenance.js onSelect. URL = " + URL + " index=" + form.elements["selectedItem"].selectedIndex);
	if (form.elements["selectedItem"] != null)
		{
		if (form.elements["selectedItem"].selectedIndex != null &&
			form.elements["selectedItem"].selectedIndex >= 0 &&
			form.elements["selectedItem"].selectedIndex != indexLastSelected &&
			checkDirtyData(form))
			{
			form.command.value = "selectItem";
			form.action = URL;
//			window.alert("In onSelect. URL = " + URL + " Command=" + form.command.value);
			form.submit();
			}
		else
			form.elements["selectedItem"].selectedIndex = indexLastSelected;
		}
	else if (checkDirtyData(form))
		{
		form.command.value = "selectItem";
		form.action = URL;
//		window.alert("In onSelect. URL = " + URL + " Command=" + form.command.value);
		form.submit();
		}
}

function enableButtons()
{
	var btn = document.all["btnSaveTable"];
	if (btn != null)
		btn.disabled  = !bDataChanged;
	var btn = document.all["btnResetTable"];
	if (btn != null)
		btn.disabled  = !bDataChanged;
	var btn = document.all["btnOKTable"];
	if (btn != null)
		btn.disabled  = !bDataChanged;
}

/******************************************************************************
 * Edit state management
 ******************************************************************************/

var bDataChanged = false;

function checkDirtyData(form)
{
//	window.alert("in checkDirtyData");
	var nRet = true;
	if (bDataChanged)
		{
		var editMode = form.elements["editMode"];
		if (editMode!= null && editMode.value == "NEW")
			nRet = window.confirm(txtDiscardMessageNew);
		else
			nRet = window.confirm(txtDiscardMessage);
		}

	return nRet;
}

function setDataChanged(bValue, form)
{
//	window.alert("in setDataChanged");
	var dataChangedField = form.elements["dataChanged"];
	if (dataChangedField != null)
		dataChangedField.value = (bValue ? "true" : "false");
	bDataChanged = bValue;
	enableButtons();
}
