function calc(param) {
	var seg = new Array(1000000,240000,2000,1500,1200,1100,1000,950,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100,50);
	var dx  = new Array(1,9,577107,1063110,1890817,1040329,1450386,918831,987174,1184608,1298513,1495948,1533916,1693382,1792100,1981941,2376810,2186969,2718524,3014676,3508263,3341203,3500670,2976708,3272860,2407185,850488);

	var i;
	var total = 49062530;

	var ratio;
	var value = 0;
	var table;
	var msg = '';
	var msg_tail = '';
	var data = -1;

	if (param) {
		data = parseInt(z2h_word(param));
		if (isNaN(data)) {
			data = -1;
		}
	}
	if (data >= 0) {
		value = tmp__calc(data, seg, dx);
		if (value > 0) {
			ratio = (Math.round((value * 10000) / total )) / 100;
			msg_tail = "くらいです。";
			msg = "<strong>上から" + ratio + "%</strong>くらいじゃないでしょうか。";
		} else if (value == 0) {
			ratio = 0;
			msg_tail = "以上です。";
			msg = "多すぎます<strong>計測不能</strong>です。";
			value = dx[0];
		} else { // if (value == -1) {
			ratio = 100- 1.73;
			value = 48212042;
			msg_tail = "以下です。"; 
			msg = "50万円未満だと、<strong>下から1.73%</strong>に入っちゃってます。";
		}
		value = "<strong>" + addcomma(value) + "</strong>";
	} else {
		msg = "<strong>　<"+"/strong>";
		value = "<strong> <"+"/strong>？";
		msg_tail = "でしょう？";
	}

	var mydoc = document;
	var className=(typeof ScriptEngine=='function')?'className':'class';

	document.getElementById("div").innerHTML='';
	document.getElementById("rank").innerHTML = value;
	document.getElementById("rank_bottom").innerHTML = addcomma(total);
	document.getElementById("rank_tail").innerHTML = msg_tail;
	document.getElementById("msg").innerHTML = msg;

	table = tmp__ruler(mydoc, ratio);
	document.getElementById("div").insertBefore(table, null);
}

