 var domain = location,
      url = location.host == 'os.alfajango.com' || location.host ==
        'www.dynatable.com' ? '//s3.amazonaws.com/s3.alfajango.com/os-projects-downloads.json' : '/output.json',
      ready = new $.Deferred,
      resultJSON,
      setJSON = function(data) {
        resultJSON = data;
      },
      requestJSON = $.ajax(url, {dataType: 'jsonp', jsonp: false, jsonpCallback: 'setJSON'});

  function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
      x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
  }

  $.when(requestJSON, ready).then(function() {
    $.each( ['rubygems', 'github', 'jspkg'], function(i, service) {
      $('[data-' + service + ']').each( function() {
        var $this = $(this),
            project = $this.data(service),
            number, label;

        switch (service) {
          case 'rubygems':
            number = 'total_downloads';
            label = 'downloads';
            break;
          case 'github':
            number = 'watchers';
            label = 'watchers';
            break;
          case 'jspkg':
            number = 'total_downloads';
            label = 'downloads';
        };

        if (this.id === "download-count") {
          $this.html(addCommas(resultJSON[project][service][number]) + ' <span>' + label + '</span>');
        } else {
          $this
            .tooltip({
              title: addCommas(resultJSON[project][service][number]) + ' ' + label,
              placement: 'left',
              trigger: 'manual'
            })
            .tooltip('show');
        }
      });
    });

  });

  $(window).load( function() {
    ready.resolve();
  });
</script>

    <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-2467935-24', 'dynatable.com');
  ga('send', 'pageview');

</script>

    <script>
  $(document).ready( function() {
    $('#shareme').sharrre({
      share: {
        twitter: true,
        facebook: true,
        linkedin: true,
        googlePlus: true
      },
      urlCurl: '',
      enableTracking: true,
      buttons: {
        twitter: {count: 'vertical', via: 'alfajango'},
        facebook: {layout: 'box_count'},
        linkedin: {counter: 'top'},
        googlePlus: {size: 'tall'}
      },
      hover: function(api, options){
        $(api.element).find('.buttons').show();
      },
      hide: function(api, options){
        $(api.element).find('.buttons').hide();
      },
      render: function() {
        var $count = $('#shareme .count'),
            count = parseFloat($count.text());

        if (count < 10) {
          $count.hide();
          $('#shareme .share').width('300');
        }
      }
    });
  });