    /**
     * Creates the base structure of an Ext.Window
     * @member Ext.window.Window
     */
    @mixin extjs-window {
        .#{$prefix}window {
            outline: none;
            overflow: hidden;

            .#{$prefix}window-wrap {
                position: relative;
            }
        }

        .#{$prefix}window-body {
            position: relative;
            border-style: $window-body-border-style;
            overflow: hidden;
        }

        //maximized window
        .#{$prefix}window-maximized {
            .#{$prefix}window-wrap {
                .#{$prefix}window-header {
                    @include important-no-border-radius;
                }
            }
        }

        .#{$prefix}window-header-top {
            margin-bottom: -2px;
        }
        .#{$prefix}window-header-body-horizontal {
            margin-top: -1px;
        }

        .#{$prefix}window-header-bottom {
            margin-top: -1px;
            margin-bottom: -1px;
        }

        .#{$prefix}window-header-left {
            margin-right: -1px;
        }

        .#{$prefix}window-header-right {
            margin-left: -1px;
        }

        .#{$prefix}window-header-vertical {
            .#{$prefix}surface {
                padding-left: 1px;
            }
        }

        // collapsed window header styles
        .#{$prefix}window-collapsed {
            .#{$prefix}window-header-vertical {
                @include border-radius(5px);
            }
            .#{$prefix}window-header-horizontal {
                @include border-radius(5px);
            }

            // Padding changes for collapsed headers.
            .#{$prefix}window-header-left {
                padding-right: 5px !important;
                margin-right: 0;
            }

            .#{$prefix}window-header-right {
                padding-left: 5px !important;
                margin-left: 0;
            }

            .#{$prefix}window-header-top {
                padding-bottom: 5px !important;
                margin-bottom: -1px;
            }

            .#{$prefix}window-header-bottom {
                padding-top: 5px !important;
                margin-top: 0;
            }
        }

        .#{$prefix}window-header-left,
        .#{$prefix}window-header-right {
            .#{$prefix}vml-base {
                left: -3px !important;
            }
        }

        .#{$prefix}opera,
        .#{$prefix}strict .#{$prefix}ie9 {
            .#{$prefix}window-header-vertical {
                .#{$prefix}surface {
                    padding-left: 2px;
                }
            }
        }

        .#{$prefix}window-header-text-container {
            overflow: hidden;
            -o-text-overflow: ellipsis;
            text-overflow: ellipsis;
        }

        .#{$prefix}window-header-text {
            @include no-select;
            white-space: nowrap;
        }

        @include extjs-window-ui(
            'default',

            $ui-border-radius: $window-border-radius,
            $ui-border-color: $window-border-color,
            $ui-inner-border-color: $window-inner-border-color,

            $ui-header-color: $window-header-color,

            $ui-body-border-color: $window-body-border-color,
            $ui-body-background-color: $window-body-background-color,
            $ui-body-color: $window-body-color,

            $ui-background-color: $window-background-color
        );

        .#{$prefix}window-body-plain {
            background: transparent;
        }
    }

    /**
     * Creates a visual theme for an Ext.Panel
     * @member Ext.window.Window
     */
    @mixin extjs-window-ui(
        $ui-label,

        $ui-padding: null,
        $ui-border-radius: null,
        $ui-border-color: null,
        $ui-inner-border-color: null,

        $ui-header-color: null,
        $ui-header-font-size: $window-header-font-size,
        $ui-header-font-weight: $window-header-font-weight,

        $ui-body-border-color: null,
        $ui-body-background-color: null,
        $ui-body-color: null,

        $ui-background-color: null
    ){
        $ui-header-text-height: $window-header-line-height;

        .#{$prefix}window-#{$ui-label} {
            @if $ui-border-color != null { border-color: $ui-border-color; }
            @if $ui-border-radius != null { @include border-radius($ui-border-radius); }

            @if $ui-inner-border-color != null { @include inner-border($window-inner-border-width, $ui-inner-border-color); }
        }

        @if $ui-border-radius != null {
            @include x-frame(
                'window',
                $ui-label,

                $border-radius: $ui-border-radius,
                $border-width: $window-border-width,
                $padding: $ui-padding,
                $background-color: $ui-background-color
            );
        }

        .#{$prefix}window-body-#{$ui-label} {
            @if $ui-body-border-color !=null {
                border-color: $ui-body-border-color;
                border-width: $window-body-border-width;
            }

            @if $ui-body-background-color != null { background: $ui-body-background-color; }
            @if $ui-body-color != null { color: $ui-body-color; }
        }

        .#{$prefix}window-header-#{$ui-label} {
            @if $ui-header-font-size != null { font-size: $ui-header-font-size; }
            @if $ui-border-color != null { border-color: $ui-border-color; }
            zoom:1;
        }

        .#{$prefix}window-header-text-#{$ui-label} {
            @if $ui-header-color != null { color: $ui-header-color; }
            @if $ui-header-font-weight != null { font-weight: $ui-header-font-weight; }

            line-height: $ui-header-text-height;

            font-family: $font-family;
            font-size: $ui-header-font-size;
        }

        @if $ui-border-radius != null {
            @include x-frame('window-header', '#{$ui-label}-top',    top($ui-border-radius) right($ui-border-radius) 0 0, top($window-border-width) right($window-border-width) 0 left($window-border-width), 4px 5px 0, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-right',  0 right($ui-border-radius) bottom($ui-border-radius) 0, top($window-border-width) right($window-border-width) bottom($window-border-width) 0, 5px 4px 5px 0, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-bottom', 0 0 bottom($ui-border-radius) left($ui-border-radius), 0 right($window-border-width) bottom($window-border-width) left($window-border-width), 0 5px 4px, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-left',   top($ui-border-radius) 0 0 left($ui-border-radius), top($window-border-width) 0 bottom($window-border-width) left($window-border-width), 5px 0px 5px 4px, $ui-background-color);

            // collapsed window header styles
            @include x-frame('window-header', '#{$ui-label}-collapsed-top',    $ui-border-radius, $window-border-width, 4px 5px 4px, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-collapsed-right',  $ui-border-radius, $window-border-width, 5px 4px, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-collapsed-bottom', $ui-border-radius, $window-border-width, 4px 5px 4px, $ui-background-color);
            @include x-frame('window-header', '#{$ui-label}-collapsed-left',   $ui-border-radius, $window-border-width, 5px 4px, $ui-background-color);
        }

        .#{$prefix}window-header-#{$ui-label}-top {
            @include inner-border(1px 1px 0, $ui-inner-border-color);
        }

        .#{$prefix}window-header-#{$ui-label}-right {
            @include inner-border(1px 1px 1px 0, $ui-inner-border-color);
        }

        .#{$prefix}window-header-#{$ui-label}-bottom {
            @include inner-border(0px 1px 1px, $ui-inner-border-color);
        }

        .#{$prefix}window-header-#{$ui-label}-left {
            @include inner-border(1px 0 1px 1px, $ui-inner-border-color);
        }
    }