function ObjectUtil(object)
{
    KeyHandler.call(this, object);

    this.object = object;
}


ObjectUtil.prototype = new KeyHandler();
ObjectUtil.prototype.getObject = getObjectUtilObject;
ObjectUtil.prototype.getChildNodeById = getObjectUtilChildNodeById;
ObjectUtil.prototype.searchChildNodeById = _objectUtil_searchChildNodeById;
ObjectUtil.prototype.searchChildNodesById = _objectUtil_searchChildNodesById;
ObjectUtil.prototype.getChildNodeByName = getObjectUtilChildNodeByName;
ObjectUtil.prototype.getChildNodeByType = getObjectUtilChildNodeByType;
ObjectUtil.prototype.getChildNodeByTypeAndName = getObjectUtilChildNodeByTypeAndName;
ObjectUtil.prototype.getAllChildNodesByType = getAllObjectUtilChildNodesByType;
ObjectUtil.prototype.removeChildNode = removeObjectUtilChildNode;
ObjectUtil.prototype.removeAllChildNodes = removeAllObjectUtilChildNodes;
ObjectUtil.prototype.getForm = getObjectUtilForm;
ObjectUtil.prototype.getNodeText = getObjectUtilNodeText;
ObjectUtil.prototype.getChildNodes = _objectUtil_getChildNodes;
ObjectUtil.prototype.appendChildNode = _objectUtil_appendChildNode;
ObjectUtil.prototype.appendChildNodes = _objectUtil_appendChildNodes;
ObjectUtil.prototype.fade = _objectUtil_fade;


function getObjectUtilObject()
{
    return this.object;
}


function getObjectUtilChildNodeById(childNodeID, recursive)
{
    return getChildNodeById(this.getObject(), childNodeID, recursive);
}


function _objectUtil_searchChildNodeById(childNodeId, recursive)
{
    return searchChildNodeById(this.getObject(), childNodeId, recursive);
}

function _objectUtil_searchChildNodesById(childNodeId, recursive)
{
    return searchChildNodesById(this.getObject(), childNodeId, recursive);
}


function getObjectUtilChildNodeByName(childNodeName, recursive)
{
    return getChildNodeByName(this.getObject(), childNodeName, recursive);
}


function getObjectUtilChildNodeByType(childNodeType, recursive)
{
    return getChildNodeByType(this.getObject(), childNodeType, recursive);
}


function getObjectUtilChildNodeByTypeAndName(
    childNodeType, childNodeName, recusive)
{
    return getChildNodeByTypeAndName(
        this.getObject(), childNodeType, childNodeName, recusive);
}


function getAllObjectUtilChildNodesByType(childNodeType, recursive)
{
    return getAllChildNodesByType(this.getObject(), childNodeType, recursive);
}


function removeObjectUtilChildNode(childNodeId, recursive)
{
    return removeChildNode(this.getObject(), childNodeId, recursive)
}


function removeAllObjectUtilChildNodes()
{
    return removeAllChildNodes(this.getObject());
}


function getObjectUtilForm(formName)
{
    return getChildNodeByTypeAndName(this.getObject(), "form", formName, true);
}


function getObjectUtilNodeText()
{
    return getNodeText(this.getObject());
}


function _objectUtil_getChildNodes()
{
    return this.getObject().childNodes;
}


function _objectUtil_appendChildNode(childNode)
{
    this.getObject().appendChild(childNode);
}


function _objectUtil_appendChildNodes(childNodes)
{
    if (childNodes != null)
    {
        for (var i = 0; i < childNodes.length; i++)
        {
            this.appendChildNode(childNodes[i]);
        }
    }
}


function _objectUtil_fade()
{
    new Effect.Fade(this.getObject());
}
