// JavaScript Document
var Blog = new Class({
	Extends: Page,
	
	setBanner: null,
	setBlogList: null,
	setBlogArticle: null,
	setBlogNav: null,
	
	initialize: function(pageState) {
		this.parent('blog', pageState);
		
		this.setBanner = this.setBlock.pass(['divBanner', 'banner'], this);
		this.setBlogList = this.setBlock.pass(['divBlogLeftContent', 'blogList'], this);
		this.setBlogArticle = this.setBlock.pass(['divBlogLeftContent', 'blogArticle'], this);
		this.setBlogNav = this.setBlock.pass(['divBlogNav', 'blogNav'], this);
	},
	
	requestBanner: function(id) {
		id = $defined(id) ? id : null;
		return {
			server: 'BlogServer',
			handler: 'banner',
			params: [id]
		};
	},
	requestBlogList: function(artistId, archiveMonth) {
		return {
			server: 'BlogServer',
			handler: 'blogList',
			params: [artistId, archiveMonth]
		};
	},
	requestBlogArticle: function(id) {
		return {
			server: 'BlogServer',
			handler: 'blogArticle',
			params: [id]
		};
	},
	requestBlogNav: function(artistId, archiveMonth) {
		return {
			server: 'BlogServer',
			handler: 'blogNav',
			params: [artistId, archiveMonth]
		};
	},
	
	selectBlog: function(id) {
		this.pageState.id = id;
		this.addRequest(this.requestBanner(id));
		this.addRequest(this.requestBlogArticle(id));
		this.sendRequests();
	},
	selectArchive: function(archiveMonth) {
		this.pageState.id = null;
		this.pageState.archiveMonth = archiveMonth;
		this.addRequest(this.requestBlogList(null, archiveMonth));
		this.addRequest(this.requestBlogNav(null, archiveMonth));
		this.sendRequests();
	},
	selectArtist: function(artistId) {
		this.pageState.id = null;
		this.pageState.artistId = artistId;
		this.addRequest(this.requestBlogList(artistId, null));
		this.addRequest(this.requestBlogNav(artistId, null));
		this.sendRequests();
	},
	selectAmbiguous: function() {
		this.pageState.id = null;
		this.pageState.archiveMonth = null;
		this.pageState.artistId = null;
		this.addRequest(this.requestBlogList(null, null));
		this.addRequest(this.requestBlogNav(null, null));
		this.sendRequests();
	}
});