// 検索対象のカラムのみの配列
var js04_x=new Array();
// 行のオブジェクトの配列
var js04_nodeArray=new Array();
function js04_sort(tbd_id,tr_id,th_id,k,is_numeric,cnt) {

 // 前処理
 js04_x=new Array();
 js04_nodeArray=new Array();
 // 数を保持
 js04_n = cnt;

 if (is_numeric == 1) {
  js04_numericSort(tr_id,k,cnt);
 } else {
  js04_stringSort(tr_id,k,cnt);
 }
 // ソート
 if ($('#' + th_id).hasClass('sortAsc')) {
  js04_descSort();
  js04_initSortClass(th_id,'sortDesc')
 } else {
  js04_ascSort();
  js04_initSortClass(th_id,'sortAsc')
 }
 // 表示
 js04_show(tbd_id);
}
// クラスを初期化
function js04_initSortClass(th_id,className) {
 $('#' + th_id).each(function() {
  $(this).siblings().removeClass('sortAsc');
  $(this).siblings().removeClass('sortDesc');
  $(this).siblings().addClass('sortblHeader');
 });
 $('#' + th_id).removeClass('sortAsc');
 $('#' + th_id).removeClass('sortDesc');
 $('#' + th_id).removeClass('sortblHeader');
 $('#' + th_id).addClass(className);
}
// 検索対象の文字列だけを配列に配置する
function js04_stringSort(tr_id,k,cnt) {
 for(i=0;i<cnt;i++) {
  js04_nodeArray[i]=document.getElementById(tr_id +(i+1));
 }
 for(i=0;i<cnt;i++) {
  js04_x[i]=js04_nodeArray[i].childNodes[k].firstChild.nodeValue;
 }
}
// 検索対象の文字列だけを数値型に変換して配列に配置する	
function js04_numericSort(tr_id,k,cnt) {
 for(i=0;i<cnt;i++) {
  js04_nodeArray[i]=document.getElementById(tr_id +(i+1));
 }
 for(i=0;i<cnt;i++) {
  len = js04_nodeArray[i].childNodes[k].firstChild.nodeValue.length;
  // 1文字以下ならば(空白文字を含む)0
  if (len < 1) {
   js04_x[i]= 0;
   continue;
  }
  js04_x[i]=parseFloat(js04_nodeArray[i].childNodes[k].firstChild.nodeValue);
 }
}
// ループ降順
function js04_ascSort() {
 complete=false;
 // 一度も並び替えが行われなくなるまでループ
 while(!complete) {
  complete=true;
  for(i=0;i<js04_n-1;i++){
   if(js04_x[i]>js04_x[i+1]) {
    buf=js04_x[i];js04_x[i]=js04_x[i+1];js04_x[i+1]=buf;
    buf=js04_nodeArray[i];js04_nodeArray[i]=js04_nodeArray[i+1];js04_nodeArray[i+1]=buf;
    complete=false;
   }
  }
 }
}

// ループ昇順
function js04_descSort() {
 complete=false;
 // 一度も並び替えが行われなくなるまでループ
 while(!complete) {
  complete=true;
  for(i=0;i<js04_n-1;i++){
   if(js04_x[i]<js04_x[i+1]) {
    buf=js04_x[i];js04_x[i]=js04_x[i+1];js04_x[i+1]=buf;
    buf=js04_nodeArray[i];js04_nodeArray[i]=js04_nodeArray[i+1];js04_nodeArray[i+1]=buf;
    complete=false;
   }
  }
 }
}
// 表示
function js04_show(tbd_id) {
 tbody=document.getElementById(tbd_id);
 for(i=0;i<js04_n;i++) {
  tbody.removeChild(js04_nodeArray[i]);
 }
 for(i=0;i<js04_n;i++) {
  tbody.appendChild(js04_nodeArray[i]);
 }
}
