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]);
            li.addEvent('click', this.onClick);
            if (this.tabHasValiderrors(tabboxes[n])) {
                lis[n].className.replace(/validerror/, '');
                lis[n].className = lis[n].className + ' validerror';
            }
        }
    }
}
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');
    for (i = 0; i < lis.length; i++) {
        var li = imos.element(lis[i]);
        li.className = li.className.replace(/active/, '');
        if (li == tab) {
            var activeNo = i;
            li.className = li.className + ' 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';
        }
    }
}
tabs.tabHasValiderrors = function(div) {
    var nodes = div.getElementsByTagName('*');
    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].className.match(/validerror/)) {
            return true;
        }
    }
    return false;
}
