Array Object Analyzer

Analyze an array of objects.

by Frank Taylor

HTML

<link rel="stylesheet" href="http://frankmtaylor.com/assets/css/page-elements.css">
<div id="css"></div>

CSS

table {
    border: 1px solid red;
}
th {
    font-size: 1.1em
}
tr:nth-child(even) {
    background: #999
}

JavaScript

window.analyzer = {
    init: function (object) {
        this.functions.appendTable('cssInfo');
        this.functions.setupHeaders(object);
        this.functions.addData(object);
        this.functions.addCaption("Analysis of the stylesheets");
    },
    data: {},
    helpers: {
        wrapper: function (id) {
            var wrap;
            if (document.getElementById(id)) {
                wrap = document.getElementById(id);
            } else {
                 wrap = document.createElement('div');
                 wrap.setAttribute("id", id)
                 document.body.appendChild(wrap);
            }
            return wrap; 
        },
        bootstrapTable: function () {
            var self = window.analyzer;
            self.data.table = document.createElement('table');
            self.data.table.sortable = true;
            self.data.tBody = document.createElement('tbody');
            analyzer.data.table.appendChild(self.data.tBody);
        },
        createBodyRows: function (list) {
            var self = window.analyzer,
                ll = list.length,
                i;
            for (i = 0; i <= ll; i++) {
                var row = self.data.tBody.insertRow(i);
                self.helpers.createCells(list[0], row, 'td');
            }
        },
        createCells: function (item, row, el) {
            var self = window.analyzer,
                i = 0,
                itemProp;
            for (var itemProp in item) {
                if (typeof item[itemProp] !== 'function') {
                    if (el == 'td') {
                        var cell = row.insertCell(i);
                        cell.setAttribute('headers', itemProp);
                    } else {
                        var th = document.createElement('th');
                        cell = row.appendChild(th);
                    }
                    i++;
                }
            }
            self.data.columnCount = i;
        },
        loadHeadingData:...