/* (c) dbs, ghljj.com. */

var cfg = {

	initMenu: function() {
		if (Browser.Engine.trident4) {
			$$('#menu ul.menu li span').addHover();
			$$('#menu ul.menu li').addHover();
		};
		var rg = [
			//{ '海口': '9701', '定安': '9702', '文昌': '9703', '万宁': '9704', '屯昌': '9705', '琼海': '9706', '儋州': '9707', '临高': '9708', '澄迈': '9709', '三亚': '9710', '五指山': '9711', '保亭': '9712', '陵水': '9713', '乐东': '9714' },
			//{ '东方': '9715', '昌江': '9716', '白沙': '9717', '琼中': '9718', '农垦': '9719', '洋浦': '9720', '海南中学': '9721', '海南实验中学': '9722', '国兴中学': '9723', '海师附中': '9724', '琼院附中': '9725', '农垦中学': '9726', '农垦实验中学': '9727', '农垦加来高中': '9728' }
			{ '海口': 'http://haikou.hersp.com', '定安': '9702', '文昌': 'http://wenchang.hersp.com', '万宁': '9704', '屯昌': '9705', '琼海': '9706', '儋州': '9707', '临高': '9708', '澄迈': '9709', '三亚': '9710' },
			{ '五指山': '9711', '保亭': '9712', '陵水': '9713', '乐东': '9714', '东方': '9715', '昌江': '9716', '白沙': '9717', '琼中': '9718', '农垦': '9719', '洋浦': '9720' },
			{ '海南中学': '9721', '海南实验中学': '9722', '国兴中学': '9723', '海师附中': '9724', '琼院附中': '9725', '农垦中学': '9726', '农垦实验中学': '9727', '农垦加来高中': '9728' }
		];
		var html = '';
		rg.each(function(item) {
			html += '<div>';
			for (var p in item) {
				var url = item[p];
				if (url != null && url.test(/\d+$/)) url = 'http://my.hersp.com/' + url;
				html += '<a href="' + url + '">' + p + '</a>';
			};
			html += '</div>';
		});
		$('cour-item').set('html', html);
	}

};

if (window.burn)
burn.implement({

	load: function() {
		var getTopicHtml = function(data, len, showdate) {
			var title = data.Title;
			var showtitle = len && title.length > len;
			if (showtitle) title = title.substr(0, len) + '...';
			var html =
				'<li>' +
				'<a' + (showtitle ? ' title="' + data.Title + '"' : '') + ' href="http://tea.hersp.com/content/' + data.ContentId + '">' + title.html() + '</a>' +
				(showdate ? (' <span class="dt">(' + data.PublishDate.utc('md') + ')</span>') : '') +
				'</li>';
			return html;
		};

		var parseTopic = function(xml) {
			var doc = Xml.create();
			doc.loadXML('<doc>' + xml + '</doc>');

			var html = '';
			Xml.getNodes(doc, '//Category').each(function(data) { html += getTopicHtml(data, null, true); });
			html = '<ul>' + html + '</ul>';
			$('notice').set('html', html);
			this.tmpl = this.tmpl.replace('<!-- notice -->', html);
		}.bind(this);

		var hs = 'http://my.hersp.com/admin/blog.aspx';
		Asset.javascript(hs + '?Action=QueryCache&Category=89374|10&Json=tea', { onload: function() { parseTopic(tea.xml); } });
	}

});

var tea = new Class({

	initialize: function() {
		this.ws = '/admin/tea.aspx';
		//this.commentLocked = true;

		this.plat = $('content').setStyle('padding', '20px 80px');

		this.current = {};
		this.loadParameter();
	},

	loadParameter: function() {
		var url = location.pathname.replace('.aspx', '').substr(1).toLowerCase();
		var ar = url.split('/');
		if (ar.length < 2) return;

		switch(ar[0]) {
			case 'content': this.loadTopic(ar[1]); break;
			case 'category': this.loadCategory(ar.length > 2 ? ar[2] : 1, ar[1]); break;
		};
	},

	request: function(data, callback) {
		var success = function(text, doc) { if (callback) callback(doc, text); };
		var failure = function() { this.plat.set('html', '页面读取失败，服务器可能在维护，请稍后刷新本页再试。'); };
		new Request({ url: this.ws, data: data, onSuccess: success, onFailure: failure }).send();
	},

	goHome: function(data) {
		//var rs = location.host.indexOf('dbs.dev') < 0 && data.Owner != '8060';
		//if (rs) location.href = '/';
		//return rs;
		return false;
	},

	getAvatar: function(acc) {
		return 'http://my.hersp.com/dat/avatar/' + (acc.length > 3 ? acc.substr(0, acc.length - 3) : '0') + '/' + acc + '.jpg';
	},

	loadCategory: function(page, cid) {
		var cur = this.current;
		if (cid) cur.cid = cid;

		if (this.topicView) this.topicView.grid.empty();
		this.request({ Action: 'dLoadCategory', CategoryId: cur.cid, Page: page }, this.updateTopicList.bind(this));
	},

	loadTopic: function(id) {
		this.request({ Action: 'dLoadContent', ContentId: id }, this.updateTopicView.bind(this));
	},

	loadComment: function(page) {
		if (this.commentView) this.commentView.empty();
		this.request({ Action: 'dLoadComment', ContentId: this.current.toc, Page: page }, this.updateCommentView.bind(this));
	},

	updateTitle: function(s) {
		if (s) document.title = s + ' - ' + document.title;
	},

	updateTopicList: function(doc) {
		if (!this.topicView)
			this.topicView = new topicView({
				parent: this.plat,
				onChanged: this.loadCategory.bind(this), id_name: 'ContentId',
				getRowHtml: this.getTopicHtml.bind(this)
			});

		this.topicView.grid.empty();
		var paged = Xml.getNode(doc, '//TopicPaged');
		if (this.goHome(paged)) return;

		this.updateTitle(paged.Title);
		this.topicView.grid.adopt(new Element('H3', { html: paged.Title }));
		this.topicView.update(Xml.getNodes(doc, '//Topic'), paged);
	},

	getTopicHtml: function(data) {
		var html =
			'<div style="margin: 4px 0; font-size: 14px; font-weight: bold;"><a href="/content/{ContentId}">{Title}</a></div>' +
			'<div><span style="color: #a12a2a;">{PublishDate}</span><span style="margin: 0 0 0 8px; color: #999;">阅读 {HitCount}, 评论 {CommentCount}</span></div>';
		data.PublishDate = data.PublishDate.utc();
		data.Title = data.Title.html();
		return html.substitute(data);
	},

	updateTopicView: function(doc) {
		if (!this.contentView) this.contentView = new Element('DIV').inject(this.plat);

		var data = Xml.getNode(doc, '//Content');
		this.current.toc = data.ContentId;
		if (this.goHome(data)) return;
		if (!this.current.toc) return this.contentView.set('html', '文章不存在或已经被删除。');

		var html =
			'<div class="toc" style="margin-bottom: 10px">' +
				'<h4>{Title}</h4>' +
				'<div><span style="color: #a12a2a;">{PublishDate}</span><span style="margin-left: 8px; color: #999;">阅读 {HitCount}, 评论 {CommentCount}</span></div>' +
				//'<div>{Summary}</div>' +
			'</div>';
		data.Title = data.Title.html();
		data.Summary = data.Summary.html();
		data.PublishDate = data.PublishDate.utc();

		html = html.substitute(data) + '<div class="detail">' + data.Detail + '</div>';
		this.contentView.set('html', html);
		this.updateTitle(data.Title);

		if (this.commentView) this.commentView.show(false);
		if (data.Locked == '0') this.updateCommentView(doc);
	},

	updateCommentView: function(doc) {
		if (!this.commentView) {
			this.commentView = new commentView({
				parent: new Element('DIV', { 'class': 'comment' }).inject(this.plat).adopt(new Element('H4', { 'class': 'row', html: '文章评论' })),
				onChanged: this.loadComment.bind(this), id_name: 'CommentId', pid_name: 'ParentId',
				initBoard: this.initCommentBoard.bind(this), getRowHtml: this.getCommentHtml.bind(this) });
			if (this.commentLocked) this.commentView.board.hide();
		};

		$('toc-comment-form')['ContentId'].value = this.current.toc;

		this.commentView.show();
		this.commentView.update(Xml.getNodes(doc, '//Comment'), Xml.getNode(doc, '//CommentPaged'));
	},

	initCommentBoard: function(board) {
		var html =
			'<form id="toc-comment-form" method="post">' +
			'<h4>发表评论</h4>' +
			'<div><span>您的名字:</span><input name="Author" style="width: 300px;"/></div>' +
			'<div><span>评论内容:</span><textarea name="Detail" style="width: 300px; height: 100px;"></textarea></div>' +
			'<div class="em"><p class="hint"></p></div>' +
			'<div class="em"><button type="submit">确定</button><button type="button" cmd="Reply" class="cancel" style="display: none">取消</button></div>' +
			'<div class="em"><a cmd="Reload" href="#">查看最新的评论</a></div>' +
			'<input name="Action" value="dPostComment_A" type="hidden" />' +
			'<input name="ParentId" value="0" type="hidden" />' +
			'<input name="ProjectId" value="0" type="hidden" />' +
			'<input name="ContentId" value="0" type="hidden" />' +
			'</form>';
		board.set('html', html);

		var el = $('toc-comment-form');
		el['Author'].value = '游客';
		var rules = [{ id: 0, re: 'required', msg: '请填写您的名字' }, { id: 1, re: 'required', msg: '请填写评论内容' }];
		var msg = { process: '提交评论', invalid: '请填写评论内容' };
		var checkout = function() {
			var detail = el['Detail'].value.replace(/[\x20\x0A\x0D.,，。！？]/ig, '');
			//if (detail.length < 10) return el.warn('评论字数应该不少于10个字。');
			return true;
		};
		var success = function(doc) {
			var data = {
				CommentId: Xml.getState(doc),
				Indent: this.commentView.getIndent(),
				Rank: 0,
				Account: 0,
				Author: el['Author'].value,
				Detail: el['Detail'].value,
				PublishDate: '刚才'
			};
			el['Detail'].value = '';
			this.commentView.appendRow(data);
		};
		new ajaxForm({ id: el, url: this.ws, rules: rules, msg: msg, checkout: checkout, success: success.bind(this) });
	},

	getCommentHtml: function(data) {
		var html =
			'<div style="padding-left:{Offset}px" _indent="{Indent}">' +
				'<div class="inner">' +
					'<div class="sum">' +
						'<span title="ID: {CommentId}">{PublishDate}</span>' +
						(!this.commentLocked && data.Indent < 5 ? '<span><a href="#" class="ico16 ico-rep" cmd="Reply">回复</a></span>' : '') +
						(data.Account > 0 ? '@ <a href="http://my.hersp.com/{Account}" style="font-weight:bold;">{Author}</a>' : '@ <u>{Author}</u>') +
					'</div>' +
					'<div class="hot{Rank}">{Detail}</div>' +
				'</div>' +
			'</div>' +
			'<div class="clr"></div>';

		data.Author = data.Author.html();
		data.Detail = data.Detail.html();
		data.PublishDate = data.PublishDate.utc();
		data.Offset = data.Indent * 20;
		return html.substitute(data);
	}

});
