function User(user) {
  var me = this;
  me.uid = user.uid;
  me.createDate = new Date();
  me.createDate.setTime(user.createDate * 1000);
  me.dispName = user.dispName;
  me.iwiwName = user.iwiwName;
  me.weburl = user.weburl;
  me.blogurl = user.blogurl;
  me.videoCount = user.videoCount;
  me.videoCount168 = user.videoCount168;
  me.viewCount = user.viewCount;
  me.viewCount168 = user.viewCount168;
  me.ratingCount = user.ratingCount;
  me.ratingSum = user.ratingSum;
  me.ratingAvg = user.ratingAvg;
  me.ratingCount168 = user.ratingCount168;
  me.ratingSum168 = user.ratingSum168;
  me.ratingAvg168 = user.ratingAvg168;
  me.commentCount = user.commentCount;
  me.commentedCount = user.commentedCount;
  me.favouritedCount = user.favouritedCount;
  me.videosFavouritedCount = user.videosFavouritedCount;
  me.flaggedCount = user.flaggedCount;
  me.thumbnailUrl = user.thumbnailUrl;
  me.userUrl = user.userUrl;

  me.formatNumber = function(number) {
    var s = new String(number);
    var r = "";
    var c = 0;
    for (var i = s.length - 1; i >= 0; i--) {
      r = s.charAt(i) + r;
      c++;
      if (i != 0 && c != 0 && c % 3 == 0) r = " " + r;
    }
    return r;
  }

  me.getDispName = function() {
    return me.dispName;
  }

  me.getUserLink = function() {
    return me.userUrl;
  }

  me.getVideoCount = function() {
    return me.videoCount;
  }

  me.getViewCount = function() {
    return me.viewCount;
  }

  me.getFlaggedCount = function() {
    return me.flaggedCount;
  }

  me.getRoundedAvg = function(interval) {
    if (interval == 1) return Math.round(100 * me.ratingAvg168) / 100;
    return Math.round(100 * me.ratingAvg) / 100;
  }

  me.getStarsCount = function(interval) {
    if (interval == 1) return me.formatNumber(me.ratingAvg168);
    return Math.round(me.ratingAvg);
  }

  me.getRatingAvg = function() {
    return me.ratingAvg;
  }

  me.getRatingCount = function() {
    return me.ratingCount;
  }

  me.getCommentCount = function() {
    return me.commentCount;
  }

  me.getThumbnailUrl = function() {
    return me.thumbnailUrl;
  }

  me.getFormattedVideoCount = function(interval) {
    if (interval == 1) return me.formatNumber(me.videoCount168);
    return me.formatNumber(me.videoCount);
  }

  me.getFormattedViewCount = function(interval) {
    if (interval == 1) return me.formatNumber(me.viewCount168);
    return me.formatNumber(me.viewCount);
  }

  me.getFormattedRatingCount = function(interval) {
    if (interval == 1) return me.formatNumber(me.ratingCount168);
    return me.formatNumber(me.ratingCount);
  }

  me.getFormattedCommentCount = function() {
    return me.formatNumber(me.commentCount);
  }

  me.getFormattedCommentedCount = function() {
    return me.formatNumber(me.commentedCount);
  }

  me.getFormattedFavouritedCount = function() {
    return me.formatNumber(me.favouritedCount);
  }

  me.getFormattedVideosFavouritedCount = function() {
    return me.formatNumber(me.videosFavouritedCount);
  }

  me.getFormattedFlaggedCount = function() {
    return me.formatNumber(me.flaggedCount);
  }

}

