function changeDataPagerSortSelection(eventElement, informationElementID)
{
    submitForm(eventElement, informationElementID, "changesortorder");
}

function sortDataPagerColumn(eventElement, informationElementID, sortField)
{
    var information = "sortcolumn."+sortField;
    submitForm(eventElement, informationElementID, information);
}

function changeDataPagerPageSelection(eventElement, informationElementID)
{
    submitForm(eventElement, informationElementID, "changepage");
}

function changeDataPagerPageSizeSelection(eventElement, informationElementID)
{
    submitForm(eventElement, informationElementID, "changepagesize");
}

function clickUtilityButton(eventElement, informationElementID, target, utilityName)
{
    var initialTarget;
    var form;
    if (target!="")
    {
        var form = findEnclosingForm(eventElement);
        initialTarget = form.Target;
        form.target = target;
    }
    
    submitForm(eventElement, informationElementID, utilityName);
    if (target!="")
    {
        if (initialTarget)
        {
            form.target=initialTarget;
        }
        else
        {
            form.target="_self"; 
        }
    }
    //-- Ensure that if a binary response is returned the information element does not remain set.
    setInformationElementValue(informationElementID, "");
}

function clickToggleLinkedRowVisibility(eventElement, targetElementID, expandImageElementID, collapseImageElementID)
{
    var targetElement=document.getElementById(targetElementID);
    var collapseImageElement=document.getElementById(collapseImageElementID);
    var expandImageElement=document.getElementById(expandImageElementID);
    
	if (targetElement.style.display=="none")
	{
	    targetElement.style.display="inline";
	    collapseImageElement.style.display="inline";
	    expandImageElement.style.display="none";
	}
	else
	{
	    targetElement.style.display="none";
	    collapseImageElement.style.display="none";
	    expandImageElement.style.display="inline";
	}
}

function submitForm(element, informationElementID, information)
{
    if (element)
    {
        var pagerForm = findEnclosingForm(element);
        if (pagerForm)
        {
            setInformationElementValue(informationElementID, information);
            pagerForm.submit();
        }
    }
}

function setInformationElementValue(informationElementID, value)
{
   var informationElement = document.getElementById(informationElementID);
    if (informationElement)
    {
        informationElement.value = value;
    }
}


function findEnclosingForm(eventElement)
{
    return findEnclosingElement(eventElement, "FORM");
}

function findEnclosingElement(element, tagName)
{
    var result;
    var parent = getParent(element)
    if (parent)
    {
        if (parent.tagName == tagName)
        {
            result = parent;
        } 
        else
        {
            result = findEnclosingElement(parent, tagName);
        }
    }
    return result;
}

