var MainMenu = React.createClass({
    mixins: [Navigation, State],
    getInitialState: function(){
        this.onQueryChange(Query.FILTER, function(oldVal, nextVal){
            this.setState({filter: nextVal});
        }.bind(this));
        return {
            filter: this.getQuery()[Query.FILTER]
        };
    },
    statics: {
        title: "Traffic",
        route: "flows"
    },
    toggleEventLog: function () {
        SettingsActions.update({
            showEventLog: !this.props.settings.showEventLog
        });
    },
    clearFlows: function () {
        $.post("/flows/clear");
    },
    setFilter: function(e){
        e.preventDefault();
        this.setQuery(Query.FILTER, this.state.filter);
    },
    onFilterChange: function(e){
        this.setState({filter: e.target.value});
    },
    render: function () {
        return (
            
                
             
                
                 
                
            
        );
    }
});
var ToolsMenu = React.createClass({
    statics: {
        title: "Tools",
        route: "flows"
    },
    render: function () {
        return Tools Menu
;
    }
});
var ReportsMenu = React.createClass({
    statics: {
        title: "Visualization",
        route: "reports"
    },
    render: function () {
        return Reports Menu
;
    }
});
var FileMenu = React.createClass({
    getInitialState: function () {
        return {
            showFileMenu: false
        };
    },
    handleFileClick: function (e) {
        e.preventDefault();
        if (!this.state.showFileMenu) {
            var close = function () {
                this.setState({showFileMenu: false});
                document.removeEventListener("click", close);
            }.bind(this);
            document.addEventListener("click", close);
            this.setState({
                showFileMenu: true
            });
        }
    },
    handleNewClick: function (e) {
        e.preventDefault();
        console.error("unimplemented: handleNewClick");
    },
    handleOpenClick: function (e) {
        e.preventDefault();
        console.error("unimplemented: handleOpenClick");
    },
    handleSaveClick: function (e) {
        e.preventDefault();
        console.error("unimplemented: handleSaveClick");
    },
    handleShutdownClick: function (e) {
        e.preventDefault();
        console.error("unimplemented: handleShutdownClick");
    },
    render: function () {
        var fileMenuClass = "dropdown pull-left" + (this.state.showFileMenu ? " open" : "");
        return (
            
        );
    }
});
var header_entries = [MainMenu, ToolsMenu, ReportsMenu];
var Header = React.createClass({
    mixins: [Navigation],
    getInitialState: function () {
        return {
            active: header_entries[0]
        };
    },
    handleClick: function (active, e) {
        e.preventDefault();
        this.replaceWith(active.route);
        this.setState({active: active});
    },
    render: function () {
        var header = header_entries.map(function (entry, i) {
            var classes = React.addons.classSet({
                active: entry == this.state.active
            });
            return (
                
                    { entry.title}
                
            );
        }.bind(this));
        return (
            
        );
    }
});