
function cmp_n(a, b){
	if(a!='[object Object]') a = a.match(/[0-9]/g); else return 0;
	a = a.join("");
	a = eval(a);
	if(b!='[object Object]') b = b.match(/[0-9]/g); else return a;
	b = b.join("");
	b = eval(b);
	return a - b;
}

var lastIndex = 0;
function sort_table(id, iCol, cmpfn, getfn){
	cmpfn = cmpfn || arguments.callee.compareFunc;
	getfn = getfn || arguments.callee.getFunc || function (cell) { return cell.NodeName; };

	// Make indexed copy
	var t = document.getElementById(id);
	var rows = t.rows, N = rows.length;
	var clss = new Array;
	var idx = new Array;
	for(var i = 0; i < N; i++){
		clss[i] = rows[i].className;
		idx[i] = Object( getfn(rows[i].cells[iCol]) );
		idx[i].row = rows[i];
	}

	// Sort index
	iCol += 1;
	if( lastIndex == iCol ){
		idx.reverse();
		iCol = -iCol;
	}
	if(cmpfn) idx.sort(cmpfn); else idx.sort();
	if(iCol < 0)
		idx.reverse();
		lastIndex = iCol;

	// Sort table.
	var m = document.createElement(t.tagName);
	t.parentNode.replaceChild( m, t );
	for(var i = 0; i < N; i++ ){
		idx[i].row.className = clss[i];
		t.appendChild(idx[i].row);
	}
	m.parentNode.replaceChild( t, m );
}

sort_table.getFunc = function ( cell ){
	if(cell){
		if(cell.firstChild){
			return sort_table.getFunc(cell.firstChild);
		}
		return cell.nodeValue;
	}
	return -1;
}

function check(j,k){
	var flag = false;
	for(i=0; i<k; i++){
		if(document.getElementById(''+j+i+'').checked == false){
			flag = true;
		}
	}
	for(i=0; i<k; i++){
		document.getElementById(''+j+i+'').checked = flag;
	}
}

function do_sort(i){
    sort_table('dtsh', i);
}

function do_sort_n(i){
    sort_table('dtsh', i, cmp_n);
}

