w = this;
cipix_init = function() {
    cipix.inlog();
    try { cipix_maatwerkStart(); }
    catch (e) { }
}

w.cipix = new function() {
    var t = this,
    tag = function(elem) {//elem is een string met evt tag, id en class bepalingen. id wordt voorafgegaan door '#', class door een '.'
        var t = this;
        if (elem) {
            var html, id, cl;
            html = elem.match(/^\w+/); //match een tekenreeks dat waarbij de input ook moet beginnen (^) met de tekenreeks.
            html ? html = html[0] : html = 'span';
            t.uitvoer = document.createElement(html);

            id = elem.match(/\#(\w+)/); //match een tekenreeks beginnend met # en gevolgd door minstens 1 letterteken a-z/A-Z/0-9
            id ? t.uitvoer.id = id[1] : ''; //[0]is de volledige match,[1] matcht het stuk tussen de eerste haken '(..)'
            cl = elem.match(/\.((\w+\s*)+)/); //match een reeks beginnend met . gevolgd door minstens 1 letter gevolgd door evt een spatie en dat geheel minstens 1x.
            cl ? t.uitvoer.className = cl[1] : '';
        }
        else { t.uitvoer = d.createElement('span') }
    };

    /*verwacht een Node-attribuut (str) byv: 'innerHTML' en een waarde(str) hiervoor*/
    tag.prototype.attr = function(str_attribuut, str_waarde) { this.uitvoer[str_attribuut] = str_waarde; return this; }
    /*verwacht een object met str_attribuut:str_waarde combinaties*/
    tag.prototype.attrObj = function(obj) { for (var r in obj) this.attr(r, obj[r]); return this; }
    /*verwacht een tag-object of node en maakt de tag hier ouder van.*/
    tag.prototype.maakOuderVan = function(tag) { tag.nodeType ? this.uitvoer.appendChild(tag) : this.uitvoer.appendChild(tag.uitvoer); return this; }
    /*idem als hierboven maar maakt de tag er een kind van*/
    tag.prototype.maakKindVan = function(tag) { tag.nodeType ? tag.appendChild(this.uitvoer) : tag.uitvoer.appendChild(this.uitvoer); return this; }
    /*verwacht een string of een node of een tag en maakt de inhoud een kind van zichzelf. strings worden als textnodes toegevoegd*/
    tag.prototype.schrijf = function(inhoud) { inhoud.constructor === String ? this.maakOuderVan(document.createTextNode(inhoud)) : inhoud.constructor === tag || inhoud.nodeType ? this.maakOuderVan(inhoud) : ''; return this; /*typeof inhoud = 'string' kan ook voor String-check*/ }
    /*verwacht een array met hierin strings en/of nodes en/of tags */
    tag.prototype.schrijfArray = function(inhoudArray) { for (var i = 0; i < inhoudArray.length; i++) { this.schrijf(inhoudArray[i]) } return this; }
    /*nette output van een tag; opsomming attributen en inhoud*/
    tag.prototype.toString = function() { var s = '<' + this.uitvoer.nodeName + ' '; for (var i = 0; i < this.uitvoer.attributes.length; i++) { this.uitvoer.attributes[i].specified ? s += this.uitvoer.attributes[i].nodeName + '=\'' + this.uitvoer.attributes[i].nodeValue + '\' ' : ''; } return s + '>' + this.uitvoer.innerHTML + '</' + this.uitvoer.nodeName + '>'; }

    t.inlog = function() {
        var fired1 = false;

        jQuery('body.not-logged-in').keydown(function(event) { event.keyCode == 68 ? fired1 = true : ''; }); //68 = de letter 'd', 55= cijfer '7'
        jQuery('body.not-logged-in').keydown(function(event) { event.keyCode == 55 ? (fired1 ? location.href = 'http://' + document.domain + '/user/login' : '') : ''; });
        jQuery('body.not-logged-in').keyup(function(event) { event.keyCode == 68 ? fired1 = false : ''; });
    }

    t.tg = function(elem) { return new tag(elem); }

}

//jQuery(document).ready(cipix_init);
;

