(function() {
  var NewsSortor;

  NewsSortor = (function() {

    function NewsSortor() {
      this.news = "#facilityList";
      this.updated = "#updatedList";
      this.created = "#createdList";
      this.statics = "#staticList";
      this.sizeOfFacility = 30;
      this.sizeOfAllNews = null;
    }

    NewsSortor.prototype.sort = function() {
      var created, item, list, mainList, statics, updated, _i, _len;
      updated = this.listing($("" + this.updated + " .date"));
      created = this.listing($("" + this.created + " .date"));
      statics = this.listing($("" + this.statics + " .date"));
      list = this.mearge(updated, created);
      list = this._sort(list);
      list = this.limit(list);
      list = this.mearge(list, statics);
      list = this._sort(list);
      mainList = [];
      for (_i = 0, _len = list.length; _i < _len; _i++) {
        item = list[_i];
        mainList = this.push(mainList, item);
      }
      this.append(mainList, this.sizeOfAllNews);
    };

    NewsSortor.prototype._sort = function(list) {
      var a, b, i, j, t, _ref, _ref2, _ref3;
      if (2 <= list.length) {
        for (i = 0, _ref = list.length - 2; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) {
          for (j = _ref2 = i + 1, _ref3 = list.length - 1; _ref2 <= _ref3 ? j <= _ref3 : j >= _ref3; _ref2 <= _ref3 ? j++ : j--) {
            a = list[i];
            b = list[j];
            if (this.comp(a, b)) {
              t = a;
              list[i] = b;
              list[j] = t;
            }
          }
        }
      }
      return list;
    };

    NewsSortor.prototype.limit = function(list) {
      var i, item, rs, _len;
      rs = [];
      for (i = 0, _len = list.length; i < _len; i++) {
        item = list[i];
        if (i < this.sizeOfFacility) rs.push(item);
      }
      return rs;
    };

    NewsSortor.prototype.listing = function(jList) {
      var list,
        _this = this;
      list = [];
      jList.each(function(i) {
        var item;
        item = jList.eq(i);
        return list.push(item);
      });
      return list;
    };

    NewsSortor.prototype.mearge = function(a, b) {
      var item, list, _i, _j, _len, _len2;
      list = [];
      for (_i = 0, _len = a.length; _i < _len; _i++) {
        item = a[_i];
        list.push(item);
      }
      for (_j = 0, _len2 = b.length; _j < _len2; _j++) {
        item = b[_j];
        list.push(item);
      }
      return list;
    };

    NewsSortor.prototype.comp = function(a, b) {
      var at, bt, _ref, _ref2;
      at = (_ref = a != null ? a.text() : void 0) != null ? _ref : "";
      bt = (_ref2 = b != null ? b.text() : void 0) != null ? _ref2 : "";
      if (at < bt) {
        return true;
      } else {
        return false;
      }
    };

    NewsSortor.prototype.push = function(list, d) {
      var dd, dt;
      if (!(d != null)) return list;
      dt = d.parent();
      dd = dt.next();
      list.push([dt, dd]);
      return list;
    };

    NewsSortor.prototype.append = function(list, size) {
      var e, i, n, news, _i, _len, _len2;
      news = $(this.news);
      for (i = 0, _len = list.length; i < _len; i++) {
        n = list[i];
        if ((size != null) && size <= i) return;
        for (_i = 0, _len2 = n.length; _i < _len2; _i++) {
          e = n[_i];
          news.append(e);
        }
      }
    };

    return NewsSortor;

  })();

  $(document).ready(function() {
    var sortor;
    sortor = new NewsSortor();
    return sortor.sort();
  });

}).call(this);

