cms.content =
{
    getAncestor : function(element, ancestorNodename)
    {
        do
        {
            element = element.parentNode;
        }
        while (element.nodeName.toLowerCase() != ancestorNodename);
        return element;
    },

    replace : function(element, url, ancestorNodename, append, mceControlId)
    {
        if (ancestorNodename)
        {
            element = this.getAncestor(element, ancestorNodename);
        }

        var request = new HttpRequest();
        request.setCallback(this.onReplace, this, false);
        request.element = element;
        request.append = append;
        request.mceControlId = mceControlId;
        request.sendRequest(url);

        return false;
    },

    onReplace : function(response, request)
    {
        // Temp solution
        var container = document.createElement("div");
        container.className = "item";
        container.innerHTML = response;

        if (request.append)
        {
            request.element.appendChild(container);
        }
        else
        {
            request.element.parentNode.replaceChild(container, request.element);
        }

        if (request.mceControlId)
        {
            tinyMCE.execCommand('mceAddControl', false, request.mceControlId);
        }

        // Custom Page Puppy
        cms.custom.popup.initializeForms(container);
    },

    setUniqueElementActive : function(element, toggle)
    {
        var parentNode = element.parentNode;
        if (parentNode)
        {
            for (var iChildNodes = 0 ; iChildNodes < parentNode.childNodes.length ; iChildNodes++)
            {
                var childNode = parentNode.childNodes[iChildNodes];
                if (childNode !== element && childNode.className == "active")
                {
                    childNode.className = "";
                }
            }
        }
        element.className = (toggle && element.className == "active")? "" : "active";
    },

    // Custom bpmt, class `active` werkte buggy bij de begrippenlijst die submit bij initialisatie na een zoekopdracht
    setUniqueElementCurrent : function(element, toggle)
    {
        var parentNode = element.parentNode;
        if (parentNode)
        {
            for (var iChildNodes = 0 ; iChildNodes < parentNode.childNodes.length ; iChildNodes++)
            {
                var childNode = parentNode.childNodes[iChildNodes];
                if (childNode !== element && childNode.className == "current")
                {
                    childNode.className = "";
                }
            }
        }
        element.className = (toggle && element.className == "current")? "" : "current";
    }
}
