/**
 * DOM tree builder.
 */
FlyingCircus.Util.DOMBuilder = function DOMBuilder(doc) {
    return function _nodeFactory(tagName, attrs, children) {
        var node = doc.createElement(tagName);
        if (attrs !== undefined)
            for (var key in attrs)
                node.setAttribute(key, attrs[key]);

        if (children !== undefined) {
            for (var i = 0; i < children.length; ++i) {
                var child = children[i];
                if (typeof child === 'string')
                    child = doc.createTextNode(child);
                node.appendChild(child);
            }
        }

        return node;
    };
};

