/*global $, ko */

require.config({

    

    waitSeconds: 0,

    shim: {
        'jqx/jqxdata': ['jqx/jqxcore', 'jqx'],
        'jqx/jqxknockout': ['jqx/jqxdata'],
        
        'jqx/jqxbuttons': ['jqx/jqxknockout'],
        'jqx/jqxcheckbox': ['jqx/jqxknockout'],
        'jqx/jqxradiobutton': ['jqx/jqxknockout'],
        'jqx/jqxmenu': ['jqx/jqxknockout'],
        'jqx/jqxchart': ['jqx/jqxknockout'],
        'jqx/jqxwindow': ['jqx/jqxknockout'],
        'jqx/jqxtooltip': ['jqx/jqxknockout'],
        'jqx/jqxtabs': ['jqx/jqxknockout'],
        'jqx/jqxexpander': ['jqx/jqxknockout'],
        'jqx/jqxprogressbar': ['jqx/jqxknockout'],
        'jqx/jqxmaskedinput': ['jqx/jqxknockout'],
        'jqx/jqxinput': ['jqx/jqxknockout'],
        'jqx/jqxnumberinput': ['jqx/jqxknockout'],
        'jqx/jqxdockpanel': ['jqx/jqxknockout'],
        'jqx/jqxrating': ['jqx/jqxknockout'],
        'jqx/jqxcolorpicker': ['jqx/jqxknockout'],
        'jqx/jqxdragdrop': ['jqx/jqxknockout'],
        'jqx/jqxvalidator': ['jqx/jqxknockout'],
        'jqx/jqxscrollview': ['jqx/jqxknockout'],
        'jqx/jqxswitchbutton': ['jqx/jqxknockout'],

        'jqx/jqxscrollbar': ['jqx/jqxbuttons'],
        'jqx/jqxpanel': ['jqx/jqxbuttons'],
        'jqx/jqxslider': ['jqx/jqxbuttons'],
        'jqx/jqxsplitter': ['jqx/jqxbuttons'],
        'jqx/jqxlistmenu': ['jqx/jqxbuttons'],
        'jqx/jqxdropdownbutton': ['jqx/jqxbuttons'],
        
        'jqx/jqxlistbox': ['jqx/jqxscrollbar'],
        
        'jqx/jqxcombobox': ['jqx/jqxlistbox'],
        'jqx/jqxdropdownlist': ['jqx/jqxlistbox'],
        
        'jqx/jqxdatatable': ['jqx/jqxdropdownlist'],
        'jqx/jqxgrid': ['jqx/jqxdropdownlist'],
        
        'jqx/jqxtreegrid': ['jqx/jqxdatatable'],

        'jqx/jqxgrid.grouping': ['jqx/jqxgrid'],
        'jqx/jqxgrid.sort': ['jqx/jqxgrid'],
        'jqx/jqxgrid.filter': ['jqx/jqxgrid'],
        'jqx/jqxgrid.pager': ['jqx/jqxgrid'],
        'jqx/jqxgrid.columnsresize': ['jqx/jqxgrid'],
        'jqx/jqxgrid.columnsreorder': ['jqx/jqxgrid'],
        'jqx/jqxgrid.selection': ['jqx/jqxgrid'],
        'jqx/jqxgrid.edit': ['jqx/jqxgrid'],
        'jqx/jqxgrid.aggregates': ['jqx/jqxgrid'],
        'jqx/jqxgrid.storage': ['jqx/jqxgrid'],

        'jqx/jqxdata.export': ['jqx/jqxdata'],
        'jqx/jqxgrid.export': ['jqx/jqxgrid', 'jqx/jqxdata.export'],

        'jqx/jqxdocking': ['jqx/jqxwindow'],
        
        'jqx/jqxdatetimeinput': ['jqx/jqxtooltip', 'jqx/jqxcalendar', 'jqx/globalization/jquery.global'],
        'jqx/jqxcalendar': ['jqx/jqxtooltip', 'jqx/jqxdatetimeinput', 'jqx/globalization/jquery.global'],

        'jqx/jqxtree': ['jqx/jqxpanel', 'jqx/jqxscrollbar'],

        'jqx/jqxnavigationbar': ['jqx/jqxexpander'],

        'jqx/jqxgauge': ['jqx/jqxchart'],

        'jqx/jqxbuttongroup': ['jqx/jqxradiobutton'],
        
        'jqx/jqxrangeselector': ['jqx/jqxdata']
    }

});

//  Define named modules for the global library variables to enable IntelliSense
//
define("jquery", [], function () {
    return $;
});
define("knockout", [], function () {
    return ko;
});

//  Define module referenced by the jQWidgets shims
//
define(
    'jqx',
    ['core/css'],
    function (css) {
        css(['jqx/styles/jqx.base']);

        // TODO: Theme support
    });