$(document).ready(function() {
	var canRun = $('body').is('#activities');
	if (canRun) {
		new $.ActivityStream().init();
	}
});

// ============================ ACTIVITIES PAGING ==============================
$.ActivityStream = function() {
	var global = this;
	var pageNumber = 2;
	var pageSize = 25;

	// TEMPLATES
	var FOLLOW_ACTIVITY_TEMPLATE = '<tr class="activity named"><td class="thumbnail"><img src="/images/follow.png"/></td><td class="message">__MESSAGE__</td><td class="timestamp"><em>__TIME__</em></td></tr>';
	var NAMED_ACTIVITY_TEMPLATE = '<tr class="activity named"><td class="thumbnail"><img class="thumbnail" alt="thumbnail" src="__THUMBNAIL__"/></td><td class="message">__MESSAGE__</td><td class="timestamp"><em>__TIME__</em></td></tr>';
	var NEW_PICTURES_ACTIVITY_TEMPLATE = '<tr class="activity named"><td class="thumbnail"><img src="/images/look-activities.png" ></td><td class="message">__MESSAGE__</td><td class="timestamp"><em>__TIME__</em></td></tr>';
	var JOINED_ACTIVITY_TEMPLATE = '<tr class="activity named"><td class="thumbnail"><img alt="Welcome" src="images/welcome.png"/></td><td class="message">__MESSAGE__</td><td class="timestamp"><em>__TIME__</em></td></tr>';
	var BLOG_POST_TEMPLATE = '<tr class="info"><td colspan="3"><em>__MESSAGE__</em></td></tr>';

	var PAGING_URL = '/home/more/?paging.pageNo=';

	// init Activity Stream
	this.init = function() {
		global.activityStreamEvents();
		global.attachHendlers();

	};

	this.attachHendlers = function() {
		$('#blurb .control .reload').click(function() {
			window.location.reload();
			return false;
		});
	};

	this.activityStreamEvents = function() {
		$('#blurb .control .load_more').live('click', function() {
			var href = PAGING_URL + pageNumber;
			ModalUtils.getAjaxJson(href, function(data) {
				var entries = data.activityStream.entries;
				$(entries).each(function() {

					var entry = this;
					var type = entry.type;

					var div = "";
					switch (type) {
					case 'Following':
						div = global.getFollowDiv(entry);
						break;
					case 'Naming':
						div = global.getNamedDiv(data.imagesHostname, entry);
						break;
					case 'ImagesAdded':
						div = global.getNewPhotosDiv(entry);
						break;
					case 'SignUp':
						div = global.getJoinedDiv(data.imagesHostname, entry);
						break;
					case 'blog':
						div = global.getBlogDiv(entry);
						break;
					}
					$('#activity_stream tr:last').after(div);
				});

				if (!data.activityStream.hasMore) {
					$('.load_more').remove();
				}
				pageNumber += 1;
			});
			return false;
		});
	};

	this.getFollowDiv = function(entry) {
		var div = FOLLOW_ACTIVITY_TEMPLATE;
		div = div.replace("__TIME__", entry.timeInWords);
		div = div.replace("__MESSAGE__", entry.message);
		return div;
	};

	this.getNewPhotosDiv = function(entry) {
		var div = NEW_PICTURES_ACTIVITY_TEMPLATE;
		div = div.replace("__TIME__", entry.timeInWords);
		div = div.replace("__MESSAGE__", entry.message);
		return div;
	};

	this.getNamedDiv = function(imagesHostname, entry) {
		var details = entry.namingActivityDetails;
		var div = NAMED_ACTIVITY_TEMPLATE;
		div = div.replace("__THUMBNAIL__", imagesHostname + "/small/" + details.oneImageMd5);
		div = div.replace("__MESSAGE__", entry.message);
		div = div.replace("__TIME__", entry.timeInWords);
		return div;
	};
	this.getJoinedDiv = function(imagesHostname, entry) {
		var details = entry.signUpActivityDetails;
		var div = JOINED_ACTIVITY_TEMPLATE;
		div = div.replace("__MESSAGE__", entry.message);
		div = div.replace("__TIME__", entry.timeInWords);
		return div;
	};

	this.getBlogDiv = function(entry) {
		var div = BLOG_POST_TEMPLATE;
		div = div.replace("__MESSAGE__", entry.message);
		return div;
	};

};