| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | (function() {    var url = getUrl(),        thisDir = getDir(url),        params = getMergedQueryParams(url),        theme = getTheme(params),        css = getCss(theme),        js = getJs(theme);    document.write(Ext.String.format('<link rel="stylesheet" type="text/css" href="{0}/../../resources/css/ext-{1}.css" />', thisDir, css));    if (js) {        document.write(Ext.String.format('<script type="text/javascript" src="{0}/../../ext-{1}.js"></script>', thisDir, js));    }    if (params.themes_combo != null) {        Ext.require('Ext.panel.Panel');        Ext.require('Ext.data.ArrayStore');        Ext.require('Ext.form.field.ComboBox');        Ext.onReady(function() {            Ext.create('Ext.panel.Panel', {                autoShow: true,                frame: true,                renderTo: Ext.getBody(),                items: {                    editable: false,                    fieldLabel: 'Theme',                    labelWidth: 50,                    value: theme,                    width: 180,                    xtype: 'combo',                    listeners: {                        change: function(combo, value) {                            params.theme = value;                            location.search = Ext.Object.toQueryString(params);                        }                    },                    store: [                        ['classic', 'Classic'],                        ['gray', 'Gray'],                        ['access', 'Accessibility'],                        ['neptune', 'Neptune']                    ],                    style: {                        margin: '2px'                    }                },                style: {                    position: 'absolute',                    right: '10px',                    top: '10px'                }            });        });    }    // Extract the URL used to load this script file    function getUrl() {        var scripts = document.getElementsByTagName('script'),            thisScript = scripts[scripts.length - 1];        return thisScript.src;    }    // The directory of this script file    function getDir(url) {        return url.slice(0, url.lastIndexOf('/'));    }    // Combines the query parameters from the page URL and the script URL    function getMergedQueryParams(url) {        var searchIndex = url.indexOf('?'),            parse = Ext.Object.fromQueryString;        return Ext.apply(searchIndex === -1 ? {} : parse(url.slice(searchIndex)), parse(location.search));    }    // Get the canonical theme name from the query parameters    function getTheme(params) {        return {            access: 'access',            accessibility: 'access',            gray: 'gray',            grey: 'gray',            neptune: 'neptune'        }[params.theme || params.css] || 'classic';    }    // Get the CSS file name from the theme name    function getCss(theme) {        return {            access: 'all-access',            classic: 'all',            gray: 'all-gray',            neptune: 'neptune'        }[theme];    }    // Get the JS file name from the theme name    function getJs(theme) {        return {            neptune: 'neptune'        }[theme];    }})();
 |