var cForumView = Class.create(cView, {
	initialize: function($super, _name, _container, _reference) {
		$super(_name, _container, _reference);
	},
	activateView: function($super) {
		$super();
		this.showList();
	},
	showList: function() {
		this.container.innerHTML = '';
		if (!this.data) {
			var keres = new Ajax.Request('forumActions.php', {
				method: 'post',
				parameters: '',
				onSuccess: this.loadListCallback.bind(this)
			});
		} else {
			this.render();
		}
	},
	loadListCallback: function(transport) {	
		var ret = transport.responseText.evalJSON();
		if (ret) {
			this.forums = ret;
		}
		this.render();
	},
	render: function() {
		templater.render(this.container, 'forum', this.forums, this.afterRender.bind(this));
	},
	afterRender: function() {
		var fns = $$('.forum-topic');
		for (var i=0, lngth=fns.length; i<lngth; i++) {
			var element = fns[i];
			var id = universe.getElementIndex(element, 'forumid');
			element.observe('click', this.showTopic.bind(this, id));
		}
	},
	showTopic: function(id) {
		this.id = id;
		this.type = 'forum';
		var topic = {};
		for (var i=0, lngth=this.forums.data.length; i<lngth; i++) {
			if (this.forums.data[i].id == id) {
				topic = this.forums.data[i];
				break;
			}
		}
		templater.render(this.container, 'forum_topic', topic, this.afterTopicRender.bind(this));
	},
	afterTopicRender: function() {
		this.forum = new cForum($('forum-container'), this);
		this.forum.activate();
	},
	userStatusChange: function() {
		if (this.type) this.showList();
	}
});

