// This module on hiqoo.net.
// Created by Orikasa,Tomohiro.

var p_list_rank2 = {
	kind : '',
	headerLine : '<ul>',
	detailLine : '<li class="rank#seqno#"><a href="#link#">#word#</a>#count#</li>',
	footerLine : '</ul>',

	top : 1,
	size : 100,
	length : 0,

	nodes : new Object ,
	popup : new Object ,

	entries : new Object() ,

	setHTML : function (id,kind) {
		p_list_rank2.kind = kind;
		p_list_rank2.nodes[kind] = document.getElementById(id);
		if (!p_list_rank2.nodes[kind]) throw id+" isn't found";

		if (isHTTPreq) {
			p_list_rank2.changeHTML(kind);
		}
	},

	changeHTML : function(kind) {
		p_list_rank2.loadList("/data/"+kind+".json?cache="+(new Date()).getTime(),kind);
	},

	loadList : function(url,kind) {
		var xml = new JKL.ParseXML.JSON(url);
		var func = function (data) {
			p_list_rank2.entries = data;
			p_list_rank2.drawHTML(kind);
		}
		xml.async(func);
		xml.parse();
	},

	reloadList : function(url) {
		p_list_rank2.top = 1;
		p_list_rank2.loadList(url);
	},

	drawHTML : function(kind) {
//var s='';var n=0;var c=data['entry'];for(n in c) { s = s+n+':'+c[n]+' '; } alert(s);
		var html = '';
		var c = 0;

		html += p_list_rank2.headerLine;

		var func = function (row) {
			if (row==undefined) return;
			c++;

			if (c<p_list_rank2.top-1 || c>p_list_rank2.top+p_list_rank2.size-1) { return; }

			var line = p_list_rank2.detailLine;

			line = line.replace(/#id#/g,p_list_rank2.nodes[kind].id);

			line = line.replace(/#seqno#/g,c);

			line = line.replace(/#no#/g,row['no']);
			if (row["name"]!=undefined)	{
				link = "/list?user="+row["no"];
				line = line.replace(/#link#/g,link);
				line = line.replace(/#word#/g,row['name']);
				line = line.replace(/#count#/g,"");
			}else if(row["sign"]!=undefined)	{
				link = "/list?word="+encodeURI(row["sign"]);
				line = line.replace(/#link#/g,link);
				line = line.replace(/#word#/g,row['sign']);
				line = line.replace(/#count#/g,"");
			}else if(row["area"]!=undefined)	{
				if (row["count"]>0)	{
					link = "/list?area="+row["no"];
					line = line.replace(/#link#/g,link);
					line = line.replace(/#word#/g,row['area']);
					line = line.replace(/#count#/g,"("+row["count"]+")");
				} else	{
					line = "<li style=\"color:#888888;\">"+row["area"]+"</li>";
				}
			}

			html += line;
/*
			if (c==1 || c==3 || c==6 || c==10 || c==13 || c==15) {
				html += '<br />';
			}
*/
		}
		p_list_rank2.entries['entry'].each(func);

		html += p_list_rank2.footerLine;

		html = pb_replace(html);
		p_list_rank2.length = c;

		p_list_rank2.nodes[kind].innerHTML = html;
	}
}
