$Para = {};

init = function() {
	// Init system from setting file
	var jax = new $Jax();
		
	var xml = jax.request(para_settingFilePath, null, null, null, false);
		
	// Analzye parameters
	var jswin_je = xml.getElementsByTagName("jswin_je")[0];
	
	var setting = jswin_je.getElementsByTagName("settings")[0];
	var language = jswin_je.getElementsByTagName("language")[0];
	var strings = jswin_je.getElementsByTagName("strings")[0];
		
	$Para["setting"] = {};
	var settings;
	settings = setting.getElementsByTagName("entry");
	for (var i = 0; i < settings.length; i++)
	{
		$Para["setting"][settings[i].getAttribute("id")] = settings[i].firstChild.nodeValue;
	}
		
	$Para["language"] = {};
	$Para["language"]["current"] = language.getElementsByTagName("current")[0].firstChild.nodeValue;
	$Para["language"]["filePath"] = new Array();
	var langFiles = language.getElementsByTagName("entry");
	for (var i = 0; i < langFiles.length; i++)
	{
		$Para.language.filePath[langFiles[i].getAttribute("id")] = langFiles[i].firstChild.nodeValue;
	}
		
	$Para["strings"] = {};
	var entrys;
	entrys = strings.getElementsByTagName("string");
	for (var i = 0; i < entrys.length; i++)
	{
		$Para["strings"][entrys[i].getAttribute("id")] = entrys[i].firstChild.nodeValue;
	}
	entrys = strings.getElementsByTagName("int");
	for (var i = 0; i < entrys.length; i++)
	{
		$Para["strings"][entrys[i].getAttribute("id")] = parseInt(entrys[i].firstChild.nodeValue);
	}
}

//var g_marquee_jax = new $Jax();
var g_essential_news_jax = new $Jax();


var create_one_ul_coloum_news_line = function(ul, title, url, maxLength) {
	// title and its <a> label
	var li_left = $C("li");
	
	var a = $C("a");
	a.target = "_blank";
	a.href = url;
	a.innerHTML = "·&nbsp;" + cutstr(title, maxLength);
	a.title = title;
	li_left.appendChild(a);
	
	ul.appendChild(li_left);
}

var create_three_coloum_news_line = function(o, title, url, time, maxLength) {
	var ul = $C("ul");
	ul.className = "news_list_title";
	
	// title and its <a> label
	var li_left = $C("li");
	li_left.className = "news_list_left";
	
	var a = $C("a");
	a.target = "_blank";
	a.href = url;
	a.innerHTML = "·&nbsp;" + cutstr(title, maxLength);
	a.title = title;
	li_left.appendChild(a);
	
	ul.appendChild(li_left);
	
	// news date
	var li_right = $C("li");
	li_right.className = "news_date";
	li_right.innerHTML = time;
	ul.appendChild(li_right);
	
	// append to page
	o.appendChild(ul);
}


// "工作要闻" chunk
var fetch_essential_news = function() {
	var para = new $ParaPair();
	
	para.add("id", "92");
	para.add("from", "0");
	para.add("to", "9");
	
	g_essential_news_jax.request("FetchNewsList", para, fetch_essential_news_step2, null, true);
}

var fetch_essential_news_step2 = function() {
	addFinishStep();
	
	$DC($("essential_news"));
	
	var results = getRecords(g_essential_news_jax);
	
	// "工作要闻" 3 highlight
	//$("essential_news_highlight_1").innerHTML = cutstr(getRecordValue(results[0], "title"), 16);
	$("essential_news_highlight_1").href = "news.jsp?src=n&id=" + getRecordValue(results[0], "id") + "&bid=92";
	$("essential_news_highlight_1").title = getRecordValue(results[0], "title");
	
	$("essential_news_highlight_2").innerHTML = "[" + cutstr(getRecordValue(results[1], "title"), 16) + "]";
	$("essential_news_highlight_2").href = "news.jsp?src=n&id=" + getRecordValue(results[1], "id") + "&bid=92";
	$("essential_news_highlight_2").title = getRecordValue(results[1], "title");
	
	$("essential_news_highlight_3").innerHTML = "[" + cutstr(getRecordValue(results[2], "title"), 16) + "]";
	$("essential_news_highlight_3").href = "news.jsp?src=n&id=" + getRecordValue(results[2], "id") + "&bid=92";
	$("essential_news_highlight_3").title = getRecordValue(results[2], "title");
	
	// "工作要闻" list begins
	for (var i = 3; i < results.length; i++)
	{
		var record = results[i];
		
		create_three_coloum_news_line($("essential_news"), getRecordValue(record, "title"), "news.jsp?src=n&id=" + getRecordValue(record, "id") + "&bid=92", getRecordValue(record, "date").substr(0, 10), 31);
	}
}


// General list chunk
function fetch_list_col_news(id, news_classes, strLength, from, to, src) {
	
	this.jax = new $Jax();
	
	this.id = id;
	this.news_classes = news_classes;
	this.strLength = strLength;
	this.from = from;
	this.to = to;
	this.src = src;
	
	this.fetch = function() {
		var para = new $ParaPair();
		
		para.add("id", this.news_classes);
		para.add("from", this.from);
		para.add("to", this.to);
		para.add("src", this.src);
		
		var THIS = this;
		
		var on_finish = function() {
			$DC($(THIS.id));
			
			var results = getRecords(THIS.jax);
			
			for (var i = 0; i < results.length; i++)
			{
				var record = results[i];
				
				create_one_ul_coloum_news_line($(THIS.id), getRecordValue(record, "title"), "news.jsp?src=" + THIS.src + "&id=" + getRecordValue(record, "id") + "&bid=" + THIS.news_classes, THIS.strLength);
			}
			
			addFinishStep();
		}
		
		this.jax.request("FetchNewsList", para, on_finish, null, true);
	}
}

fetch_list_col_news.prototype.get = function(id, news_classes, strLength, from, to, src) {
	var o = new fetch_list_col_news(id, news_classes, strLength, from, to, src);
	o.fetch();
}

// General news chunk
function fetch_three_col_news(id, news_classes, strLength, from, to, src) {
	
	this.jax = new $Jax();
	
	this.id = id;
	this.news_classes = news_classes;
	this.strLength = strLength;
	this.from = from;
	this.to = to;
	this.src = src;
	
	this.fetch = function() {
		var para = new $ParaPair();
		
		para.add("id", this.news_classes);
		para.add("from", this.from);
		para.add("to", this.to);
		para.add("src", this.src);
		
		var THIS = this;
		
		var on_finish = function() {
			$DC($(THIS.id));
			
			var results = getRecords(THIS.jax);
			
			for (var i = 0; i < results.length; i++)
			{
				var record = results[i];
				
				create_three_coloum_news_line($(THIS.id), getRecordValue(record, "title"), "news.jsp?src=" + THIS.src + "&id=" + getRecordValue(record, "id") + "&bid=" + THIS.news_classes, getRecordValue(record, "date").substr(0, 10), THIS.strLength);
			}
			
			addFinishStep();
		}
		
		this.jax.request("FetchNewsList", para, on_finish, null, true);
	}
}

fetch_three_col_news.prototype.get = function(id, news_classes, strLength, from, to, src) {
	var o = new fetch_three_col_news(id, news_classes, strLength, from, to, src);
	o.fetch();
}

// Title-link pair
function fetch_list_col_pair(id, news_classes, strLength) {
	
	this.jax = new $Jax();
	
	this.id = id;
	this.news_classes = news_classes;
	this.strLength = strLength;
	
	this.fetch = function() {
		var para = new $ParaPair();
		
		para.add("type", this.news_classes);
		
		var THIS = this;
		
		var on_finish = function() {
			$DC($(THIS.id));
			
			var results = getRecords(THIS.jax);
			
			for (var i = 0; i < results.length; i++)
			{
				var record = results[i];
				
				create_one_ul_coloum_news_line($(THIS.id), getRecordValue(record, "title"), getRecordValue(record, "link"), THIS.strLength);
			}
			
			addFinishStep();
		}
		
		this.jax.request("FetchBoardNewsList", para, on_finish, null, true);
	}
}

fetch_list_col_pair.prototype.get = function(id, news_classes, strLength) {
	var o = new fetch_list_col_pair(id, news_classes, strLength);
	o.fetch();
}
