/**
랜덤 출력 적용함수
페이지내의 모든 TBODY.RandomContainer 를 찾아서 랜덤 설정을 적용한다.
*/
function ShowRandomItem()
{
var containers = document.getElementsByTagName('TBODY');
for (var i = 0; i < containers.length; i++)
{
if (containers.item(i).className != 'RandomContainer')
continue;
var container = containers.item(i);
var count = 0;
if (container.id.match(/:([0-9]+)$/))
count = Number(RegExp.$1);
else
count = 1;
var rows = container.childNodes;
var item_list = new Array(), item_count = 0;
for (var j = 0; j < rows.length; j++)
{
var row = rows.item(j);
if (row.tagName != 'TR' || row.className != 'RandomItem' || row.id == null || row.id == '')
continue;
if (row.id.match(/:([0-9]+)$/)) {
var weight = Number(RegExp.$1);
if (weight > 0) { // 가중치가 0이면 포함시키지 않는다.
item_count++;
for (var k = 0; k < weight; k++)
item_list[item_list.length] = row.id;
}
}
else { // 가중치를 판단할 수 없으면 1로 간주
item_list[item_list.length] = row.id;
item_count++;
}
}
// 랜덤 표시 설정을 적용한다.
var show_count = 0;
while (show_count < count && show_count < item_count)
{
var rand = Math.random();
var index = Math.floor(rand * 1000) % item_list.length;
var id = item_list[index];
//debug('index: ' + index + ', id: ' + id);
var row = document.getElementById(id);
if (row != null) {
//debug('found_row: ' + row.id);
// 표시하는 방법은 tr 개체를 복사해서 다시 tbody에 추가하는 방식
var cloned = row.cloneNode(true);
cloned.className = '';
cloned.id = '';
container.appendChild(cloned);
show_count++;
// 중복 선택되는 것을 막기 위해 한번 표시된 행은 제거해버린다.
container.removeChild(row);
}
}
// 뒷처리 표시되지 않는 RandomItem 클래스의 모든 행을 제거
for (var j = rows.length - 1; j >= 0; j--) {
var row = rows.item(j);
if (row.tagName == 'TR' && row.className == 'RandomItem')
container.removeChild(row);
}
}
}
// 디버그용 출력함수
function debug(message)
{
var debug_out = document.getElementById('debug_out');
if (message == null)
debug_out.value = '';
else
debug_out.value += message + "
";
}
function document_load()
{
debug(); // 디버그 출력 초기화
ShowRandomItem();
debug(document.getElementById('eventlist:2').innerHTML);
}
헤더 |
0번 내용 |
1번 내용 |
2번 내용 |
3번 내용 |
4번 내용 |
5번 내용 |
6번 내용 |
7번 내용 |
8번 내용 |
9번 내용 |
푸터 |
새로고침 하는 거다.