/**
 * @author  Hamza Waqas <hamzawaqas@live.com>
 * @since   1/26/14
 */

(function() {
    var _ = require('lodash');

    var Companies = function(Inherits, config) {
        this.config = config;

        Inherits(this);
        var fields = [
            'id', 'name', 'universal-name',
            'email-domains', 'company-type',
            'ticker', 'website-url', 'industries',
            'status', 'logo-url', 'twitter-id',
            'employee-count-range', 'specialties', 'locations',
            'description', 'stock-exchange', 'founded-year',
            'end-year', 'num-followers'
        ];

        this.company = function(id, cb) {
            this.createCall('GET', 'companies/' +id + ":(" + fields.join(',') + ")", cb)(this.config);
        };
        
        this.company_stats = function(id, cb) {
            this.createCall('GET', 'companies/' +id + "/company-statistics", cb)(this.config);
        };
        
        this.company_historical_follower_stats = function(id, start, end, cb){
            this.createCall('GET', 'companies/' +id + "/historical-follow-statistics", {"time-granularity": "day","start-timestamp": start,"end-timestamp": end}, cb)(this.config);
        };

        this.company_historical_status_update_stats = function(id, start, end, cb){
            this.createCall('GET', 'companies/' +id + "/historical-status-update-statistics", {"time-granularity": "day","start-timestamp": start,"end-timestamp": end}, cb)(this.config);
        };

        this.name = function(name, cb) {
            this.createCall('GET', 'companies/universal-name=' + name.split(' ').join('-') + ":("+ fields.join(',') + ")", cb)(this.config);
        }

        this.email_domain = function(domain, cb) {
            this.createCall('GET', 'companies', {"email-domain": domain}, cb)(this.config);
        };

        this.multiple = function(query, cb) {
            this.createCall('GET', 'companies::(' + query + '):(' + fields.join(',') + ')', {strict: true},cb)(this.config);
        };

        this.asAdmin = function(cb) {
            this.createCall('GET', 'companies', {"is-company-admin": true}, cb)(this.config);
        };

        this.updates = function (id, options, cb) {
            if (_.isFunction(options)) {
              cb = options;
              options = {};
            }
            this.createCall('GET', 'companies/' + id + '/updates', options, cb)(this.config);
        };
        
        this.share = function (id, options, cb) {
            this.createCall('POST', 'https://api.linkedin.com/v1/companies/' + id + '/shares', {json:options}, cb)(this.config);
        };
        return this;
    }.bind(this);

    module.exports = Companies;
}).call(this);

@@ -758,32 +758,24 @@
 %0A        %7D;%0A
-        
 %0A        thi
@@ -913,32 +913,24 @@
 %0A        %7D;%0A
-        
 %0A        thi
@@ -987,32 +987,33 @@
  start, end, cb)
+ 
 %7B%0A            th
@@ -1169,32 +1169,206 @@
 b)(this.config);
+%0A%0A        this.followers_stats = function(id, options, cb) %7B%0A            this.createCall('GET', 'companies/' +id + %22/historical-follow-statistics%22, options, cb)(this.config);
 %0A        %7D;%0A%0A   
@@ -1446,16 +1446,17 @@
 end, cb)
+ 
 %7B%0A      
@@ -1627,32 +1627,217 @@
 b)(this.config);
+%0A%0A        this.status_update_stats = function(id, options, cb) %7B%0A            this.createCall('GET', 'companies/' +id + %22/historical-status-update-statistics%22, options, cb)(this.config);
 %0A        %7D;%0A%0A   
@@ -2024,16 +2024,17 @@
        %7D
+;
 %0A%0A      
@@ -2616,16 +2616,18 @@
         
+  
 cb = opt
@@ -2632,16 +2632,18 @@
 ptions;%0A
+  
         
@@ -2781,24 +2781,16 @@
      %7D;%0A
-        
 %0A       
@@ -2933,16 +2933,17 @@
 , %7Bjson:
+ 
 options%7D
@@ -2972,16 +2972,183 @@
       %7D;
+%0A%0A        this.update = function (id, update_id, cb) %7B%0A            this.createCall('GET', 'companies/' + id + '/updates/key=' + update_id, cb)(this.config);%0A        %7D;
 %0A       

Add "followers_stats", "status_update_stats" and "update" in companies API