function tabs() {}
tabs.init = function () {

  //alle Tabboxes holen
    var tabs = document.getElementsBySelector('ul.tabs');

    //durch alle Tabboxes durchlaufen
    for (var i = 0; i < tabs.length; i++) {
        var tab = imos.element(tabs[i]);
        //statische Tabs
        if (tabs[i].className.search(/static/) != -1) {
            continue;
        }

        var divTab   = tab.parentNodeByTagName('div');
        var tabboxes = divTab.getElementsByTagName('div');
        var lis      = tab.childNodesByTagName('li');
        for (var n = 0; n < lis.length; n++) {
            var li = imos.element(lis[n]);
            if (li.className.match(/tab/)) {
                li.addEvent('click', this.onClick);
            }
        }
    }
}
tabs.onClick = function(event, target) {
    tabs.select(target);
}
tabs.select = function (tab) {
    tab = $(tab);
    var activeNo  = 0;
    var ul        = imos.element(tab).parentNodeByTagName('ul');
    var lis       = ul.getElementsByTagName('li');

    var tmp       = [];

    // Nur die wirklichen Tabs. Die zwischen-lis mit den Hintergrundbildern ignorieren
    for (i = 0; i < lis.length; i++) {
        if (imos.element(lis[i]).className.match(/tab/)) {
            tmp.push(imos.element(lis[i]));
        }
    }
    lis = tmp;

    for (i = 0; i < lis.length; i++) {
        var li = imos.element(lis[i]);
        var prev = li.previousSiblingByTagName('li');
        var next = li.nextSiblingByTagName('li');

        li.className = li.className.replace(/inactive/, 'dummy');
        li.className = li.className.replace(/active|dummy/, 'inactive');

        if (prev != null) {
            prev.className = prev.className.replace(/_active/, '_inactive');
        }

        if (next != null) {
            next.className = next.className.replace(/inactive_/, 'dummy_');
            next.className = next.className.replace(/active_|dummy_/, 'inactive_');
        }

        if (li == tab) {
            var activeNo = i;
            li.className = li.className.replace(/inactive/, 'active');

            if (prev != null) {
                prev.className = prev.className.replace(/_inactive/, '_active');
            }

            if (next != null) {
                next.className = next.className.replace(/inactive_/, 'active_');
            }
        }
    }

    var divTab    = ul.parentNodeByTagName('div');
    var inputs    = divTab.childNodesByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].className.search(/state/) != -1) {
            inputs[i].value = typeof tab.id != 'undefined' ? tab.id : '';
        }
    }
    var tabboxes  = divTab.childNodesByTagName('div');
    for (i = 0; i < tabboxes.length; i++) {
        if (tabboxes[i].className.search(/superior_tabbox/) != -1) {
            var name = 'superior_tabbox';
        } else if(tabboxes[i].className.search(/tabbox/) != -1) {
            var name = 'tabbox';
        } else {
            continue;
        }

        if (i == activeNo) {
            tabboxes[i].className = name + ' active';
            // fckeditor evtl. laden
            textareas = tabboxes[i].getElementsByTagName('textarea');
            for (n = 0; n < textareas.length; n++) {
                if (textareas[n].className.search(/fckeditor/) != -1) {
                    fck.create(textareas[n].id);
                }
            }
        } else {
            tabboxes[i].className = name + ' inactive';
        }
    }
}