
@mixin tab-bar-top($toolbarCls, $bodyCls, $stripCls, $body-padding, $body-border-width, $strip-border-width, $strip-height) {
    .#{$prefix}#{$toolbarCls} {
        .#{$prefix}#{$bodyCls} {
            height: $tab-height;
            border-width: $body-border-width;
            padding: $body-padding;
        }

        .#{$prefix}#{$stripCls} {
            /*position strip from top rather than bottom to avoid off-by-one error in IE6*/
            top: $tab-height + top($body-border-width) + top($body-padding);
            border-width: $strip-border-width;
            height: $strip-height - vertical($strip-border-width);
        }
    }
    .#{$prefix}border-box {
        .#{$prefix}#{$toolbarCls} {
            .#{$prefix}#{$bodyCls} {
                height: $tab-height + vertical($body-border-width) + vertical($body-padding);
            }

            .#{$prefix}#{$stripCls} {
                height: $strip-height;
            }
        }
    }
}

@mixin tab-bar-bottom($toolbarCls, $bodyCls, $stripCls, $body-padding, $body-border-width, $strip-border-width, $strip-height) {
    .#{$prefix}#{$toolbarCls} {
        .#{$prefix}#{$bodyCls} {
            height: $tab-height;
            border-width: $body-border-width;
            padding: $body-padding;

            .#{$prefix}box-inner {
                position: relative;
                top: 0 - bottom($strip-border-width);
            }

            .#{$prefix}box-scroller,
            .#{$prefix}box-scroller-left,
            .#{$prefix}box-scroller-right {
                height: $tab-height + bottom($body-padding) + bottom($strip-border-width);
            }
        }

        .#{$prefix}#{$stripCls} {
            top: top($body-border-width);
            border-width: $strip-border-width;
            height: $strip-height - vertical($strip-border-width);
        }
    }
    .#{$prefix}border-box {
        .#{$prefix}#{$toolbarCls} {
            .#{$prefix}#{$bodyCls} {
                height: $tab-height + vertical($body-border-width) + vertical($body-padding);
            }

            .#{$prefix}#{$stripCls} {
                height: $strip-height;
            }
        }
    }
}

/**
 * Creates a visual theme for TabBar
 * @member Ext.tab.Bar
 */
@mixin extjs-tabbar {
    .#{$prefix}tab-bar {
        position: relative;
        background-color: transparent;
        @include background-gradient($tabbar-base-color, $tabbar-background-gradient);
        font-size: $tab-font-size;
    }

    .#{$prefix}nlg .#{$prefix}tab-bar {
        background-image: theme-background-image($theme-name, 'tab-bar/tab-bar-default-bg.gif');
    }

    .#{$prefix}tab-bar-default-plain,
    .#{$prefix}nlg .#{$prefix}tab-bar-default-plain {
        background: transparent none;
    }


    .#{$prefix}tab-bar-body {
        border-style: solid;
        border-color: $tabbar-border-color;

        position: relative;
        z-index: 2;
        zoom: 1;
    }

    /* Top Tabs */
    @include tab-bar-top(
        "tab-bar-top",
        "tab-bar-body",
        "tab-bar-strip",
        $tabbar-top-body-padding,
        $tabbar-top-body-border-width,
        $tabbar-top-strip-border-width,
        $tabbar-strip-height
    );
    @include tab-bar-top(
        "tab-bar-top",
        "tab-bar-body-default-plain",
        "tab-bar-strip-default-plain",
        $tabbar-top-plain-body-padding,
        $tabbar-top-plain-body-border-width,
        $tabbar-top-strip-border-width,
        $tabbar-strip-height
    );

    /* Bottom Tabs */
    @include tab-bar-bottom(
        "tab-bar-bottom",
        "tab-bar-body",
        "tab-bar-strip",
        $tabbar-bottom-body-padding,
        $tabbar-bottom-body-border-width,
        $tabbar-bottom-strip-border-width,
        $tabbar-strip-height
    );

    @include tab-bar-bottom(
        "tab-bar-bottom",
        "tab-bar-body-default-plain",
        "tab-bar-strip-default-plain",
        $tabbar-bottom-plain-body-padding,
        $tabbar-bottom-plain-body-border-width,
        $tabbar-bottom-strip-border-width,
        $tabbar-strip-height
    );

    .#{$prefix}tab-bar-strip-default,
    .#{$prefix}tab-bar-strip-default-plain {
        font-size: 0;
        line-height: 0;
        position: absolute;
        z-index: 1;
        border-style: solid;
        overflow: hidden;
        border-color: $tabbar-strip-border-color;
        background-color: $tabbar-strip-background-color;
        zoom: 1;
    }
}
