YUI(YUIConfig).use('node', 'io-base', 'json-parse', function(Y) {
    var as = Y.all('a.autoticket'),
        tickets = {};

    var setNodes = function(id, o, args) {
        var res = Y.JSON.parse(o.responseText),
            data = res.data;
        Y.each(args.nodes, function(v, k) {
            var title = 'Ticket #' + data.id + ': ' + data.summary;
            v.set('innerHTML', title);
            v.set('title', title);
        });
    };

    if (as) {
        as.each(function() {
            var href = this.get('href').replace('http://', '').split('/projects/')[1].replace('ticket/', '').split('/');
            if (!tickets[href[0]]) {
                tickets[href[0]] = {};
            }
            if (!tickets[href[0]][href[1]]) {
                tickets[href[0]][href[1]] = {
                    id: href[1],
                    nodes: []
                };
            }
            tickets[href[0]][href[1]].nodes.push(this);
        });
        Y.each(tickets, function(info, project) {
            Y.each(info, function(data, id) {
                var url = '/projects/' + project + '/api/v1/ticket?id=' + id;
                Y.io(url, {
                    on: {
                        success: setNodes
                    },
                    arguments: {
                           nodes: data.nodes
                    }
                });
                
            });
        });
    }
});
