//================================================
// CN WoW Community Site
// (c)2009 Blizzard Entertainment. Shanghai Easenet. All rights reserved.
//================================================

var page = {
	data: {
		requestUrl: "/action/system/realmStatus.aux",
		emoteSet: ['^_^',':-P','@_@','T_T','-_-b','-_-+','=_="','-O-','-w-','\(^o^)/','Orz','囧rz'],
		superLoadingContainer: "superLoadingContainer",
		loadingContainer: "now-loading",
		errContainer: "error-loading",
		resultHolder: "resultHolder",
		duration: 300000,
		searchWords: '',
		realmsData:null,
		defaultSearchWords:'输入搜索内容'
	},
	start: function() {
		page.loadingContainer = $(page.data.loadingContainer);
		page.errContainer = $(page.data.errContainer);
		page.resultHolder = $(page.data.resultHolder);
		page.loadingText = new LoadingTextIcons(page.data.superLoadingContainer,page.data.emoteSet);
		page.loadServerStatus();
		//page.loadServerStatus.periodical(page.data.duration,page);
		page.initSearch();
		return this;
	},
	initSearch: function() {
		$('filter-input').value =this.data.defaultSearchWords;
		$('filter-input').addEvents({
			focus: function() {
				//this.input.addClass(this.data.focusClass);
				if($('filter-input').value == this.data.defaultSearchWords ) {$('filter-input').value = '' ;}
			}.bind(this),
			blur: function() {
				if($('filter-input').value == '' ) {$('filter-input').value = this.data.defaultSearchWords ;}
				//this.input.removeClass(this.data.focusClass);
			}.bind(this),
			keyup: this.searchInputChange.bind(this)
		});
	},
	searchInputChange: function() {
		this.data.searchWords=$('filter-input').value;
		this.display();
	},
	loadServerStatus: function() {
		this.errContainer.setStyle('display','none');
		this.loadingContainer.setStyle('visibility','visible');
		this.loadingText.start();
		new AjaxReq(this.data.requestUrl + "?" + Math.round($time()/this.data.duration),{
			callBack: function(r) {
				page.data.realmsData=r;
				page.display();
			},
			onError: function(m) {
				page.displayError(m);
			}
		});
		var now_time=$time();
		this.loadServerStatus.delay(Math.ceil(now_time/this.data.duration)*this.data.duration+10*1000-now_time,this);
		//return this;
	},
	display: function() {
		if(this.data.searchWords!=''){
			r=new Array();
			var indexes=this.data.realmsData.searchmap[this.data.searchWords];
			if(typeof(indexes)!='undefined'){
				for(var i=0;i<indexes.length;i++){
					r.push(this.data.realmsData.realmstatus[indexes[i]]);
				}
			}
		}else{
			r=this.data.realmsData.realmstatus;
		}
		this.loadingContainer.setStyle('visibility','hidden');
		this.loadingText.pause();
		var html = ['<table class="huge-table"><tr>'];
		var length = r.length;
		var cols = [];
		switch(length % 3) {
			case 0:
				var l = length / 3;
				cols = [l,l,l];
				break;
			case 1:
				var l = parseInt(length / 3);
				cols = [l + 1,l,l];
				break;
			case 2:
				var l = parseInt(length / 3);
				cols = [l + 1,l + 1,l];
		}
		var p = 0;
		for(var i=0; i < cols.length; i++) {
			html.push('<td class="colh"><table class="a-column"><tr><td class="column-head"><table><tr><td class="col-0">&nbsp;</td><td class="col-1">状态</td><td class="col-2">服务器名称</td><td class="col-3">类型</td><td class="col-4">负载</td><td class="col-5">&nbsp;</td></tr></table></td></tr><tr><td><table class="column-body">');
			for(var j=0; j < cols[i]; j++) {
				var aRealm = r[p];
				html.push('<tr class="' + ( j % 2 == 1 ? 'odd' : 'even' ) + '"><td class="col-0">&nbsp;</td>');
				switch(aRealm.s.toLowerCase()) {
					case "up":
						html.push('<td class="col-1"><img src="http://images.warcraftchina.com/_.png" class="arrow-icon up" title="正常" alt="正常" /></td>');
						break;
					case "down":
						html.push('<td class="col-1"><img src="http://images.warcraftchina.com/_.png" class="arrow-icon down" title="维护" alt="维护" /></td>');
						break;
					default:
						html.push('<td class="col-1"><img src="http://images.warcraftchina.com/_.png" class="arrow-icon unknown" title="异常" alt="异常" /></td>');
				}
				html.push('<td class="col-2"><div>' + aRealm.n + '</div></td><td class="col-3">' + aRealm.t + '</td>');
				switch(aRealm.l.toLowerCase()) {
					case "low":
						html.push('<td class="col-4"><span class="light easy">正常</span></td>');
						break;
					case "medium":
						html.push('<td class="col-4"><span class="light busy">拥挤</span></td>');
						break;
					case "high":
						html.push('<td class="col-4"><span class="light full">满</span></td>');
						break;
					default:
						html.push('<td class="col-4"><span class="light mal">异常</span></td>');
				}
				html.push('<td class="col-5">&nbsp;</td></tr>');
				p++;
			}
			html.push('</table></td></tr><tr><td class="column-foot">&nbsp;</td></tr></table></td>')
		}
		html.push('</tr></table>');
		this.resultHolder.set('html',html.join('\n'));
		//IE6 Adjustment
		if($("main-bottom-dec")){
			$("main-bottom-dec").setStyle('bottom',0);
		}
		return this;
	},
	displayError: function(m) {
		return this;
	}
};

window.addEvent('domready',page.start);

