var angular = require('cla_angular');

require('../../common/file_upload_control');
qq = require('fileuploader');
window.qq = qq;

var lb = require('lightbox');
require('ng.cla.core.lmsg');
require('ng.cla.core.growl');


require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/fileupload.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/doclink.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/link.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/mention.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./ui_comments.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/comment.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./service/comment_width.service.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./controller/commentController.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./model/commentModel.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/comment_edit.directive.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/comments.directive.js');

require('imports-loader?angular=cla_angular!exports-loader?angular!./service/annotation.service.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/annotation_picker.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./service/profile_image_url.service.js');
require('imports-loader?angular=cla_angular!exports-loader?angular!./directive/profile_image_url_loader.js');

require('../css/comments.css');

var comments = {
    angular: angular,

    init: function (element_id) {
        var comments_div = document.getElementById(element_id);

        // Only bootstrap if we are not already in an app (where a valid scope will exist)
        if (typeof angular.element(comments_div).scope() === 'undefined')
        {
            angular.bootstrap(comments_div, ["commentsModule", 'cla.core.lmsg', 'cla.core.growl']);
        }
    },

    initWhenReady: function (element_id) {
        var self = this;
        angular.element(document).ready(function() {
            self.init(element_id)
        });
    }

};

module.exports = comments;