var _ = require('underscore')._;
var pages = function(dbot) {
    return {
        // Lists quotes in a category
        '/quotes/:key': function(req, res) {
            var key = req.params.key.toLowerCase();
            if(_.has(dbot.db.quoteArrs, key)) {
                res.render('quotes', { 'name': dbot.config.name, 'quotes': dbot.db.quoteArrs[key], locals: { 'url_regex': RegExp.prototype.url_regex() } });
            } else {
                res.render('error', { 'name': dbot.config.name, 'message': 'No quotes under that key.' });
            }
        },

        // Show quote list.
        '/quotes': function(req, res) {
            res.render('quotelist', { 'name': dbot.config.name, 'quotelist': Object.keys(dbot.db.quoteArrs) });
        },

        // Load random quote category page
        '/rq': function(req, res) {
            var rCategory = Object.keys(dbot.db.quoteArrs).random();
            res.render('quotes', { 'name': dbot.config.name, 'quotes': dbot.db.quoteArrs[rCategory], locals: { 'url_regex': RegExp.prototype.url_regex() } });
        }
    }
};

exports.fetch = function(dbot) {
    return pages(dbot);
};