var gbl_ClientInteractive = false

function deleteRequest ( oNode )
{
	if (!gbl_ClientInteractive) setClientInteraction()
	while (oNode.tagName!="LI")
		oNode = oNode.parentNode
		
	// We need to check if we're the top element
	var oPrevNode = getPreviousElement ( oNode )
	var bIsTopElement = !oPrevNode

	// and check if were the bottom element
	var oNextNode = getNextElement ( oNode )
	var bIsBottomElement = !oNextNode

	if ((!bIsTopElement && !bIsBottomElement) || (bIsTopElement && bIsBottomElement))
	{
		oNode.parentNode.removeChild(oNode)
	}
	else
	{
		moveRequest ( oNode, bIsBottomElement, true )
		if (bIsTopElement)
		{
			oNextNode.parentNode.removeChild(oNextNode)
			bIsBottomElement = !getNextElement ( oNode )
		}
		else 
		{
			oNode.parentNode.removeChild(oPrevNode)
			bIsTopElement = !getPreviousElement ( oNode )
		}
		if (bIsTopElement && bIsBottomElement) 
		{
			var oSPAN = oNode.getElementsByTagName("SPAN")
			oSPAN[0].parentNode.removeChild(oSPAN[0])
			oSPAN = oNode.getElementsByTagName("A")
			oSPAN[0].parentNode.removeChild(oSPAN[0])
		}
	}
	
	// Counter-act Firefox form submission order bug
	var a = document.getElementById("request-form")
	a.parentNode.replaceChild(a.cloneNode(true),a)
	return false		
}


function moveRequest ( oNode, bMoveUp, bNoUpdate )
{
	if (!gbl_ClientInteractive) setClientInteraction()
	// find the LI that owns the passed element
	while (oNode.tagName!="LI")
		oNode = oNode.parentNode		
	oNode.style.backgroundColor=''

	var oSwapNode = (bMoveUp) ? getPreviousElement ( oNode ) : getNextElement ( oNode )
	var oContent = oNode.getElementsByTagName("H3")[0]
	var oContent2 = oSwapNode.getElementsByTagName("H3")[0]
	oNode.replaceChild ( oContent2.cloneNode(true), oContent )
	oSwapNode.replaceChild ( oContent, oContent2 )

	// Counter-act Firefox form submission order bug
	if (!bNoUpdate)
	{
		var a = document.getElementById("request-form")
		a.parentNode.replaceChild(a.cloneNode(true),a)
	}
	return false
}

function getNextElement(oNode)
{
	var Done = !oNode.nextSibling
	if (Done) return false
	while (!Done)
		Done = ((oNode = oNode.nextSibling).nodeType==1) || !oNode.nextSibling
	return (oNode.nodeType==1) ? oNode : false
}


function getPreviousElement(oNode)
{
	var Done = !oNode.previousSibling
	if (Done) return false
	while (!Done)
		Done = ((oNode = oNode.previousSibling).nodeType==1) || !oNode.previousSibling
	return (oNode.nodeType==1) ? oNode : false
}

function setClientInteraction()
{
	var oForm = document.getElementById("request-form")
	var oSave = document.createElement("input")
	oSave.type="submit"
	oSave.name="submit"
	oSave.value="Save Changes"


/*	var oPreamble = document.getElementById("preamble")	
	oPreamble.className="info-message"
	oPreamble.innerHTML = "Use the '<strong>Save Changes</strong>' button to confirm your changes."
*/
	oForm.appendChild(oSave)
	gbl_ClientInteractive = true	
}
