//----------------------------------------------------------
// Load イベントプロシージャ
//----------------------------------------------------------
function onloadEvent(){

	// menuとcenterの高さを同期
//	syncBoxHeight("sidebar", "content");

	// カレントリンク無効化
  removeCurrentLink();

	// タブのアクティブ
	tabActiveChange("global","tabactive");

	// 見出し一覧を "pageIndex" に生成
//	makeIndex("content", "pageIndex", "ページ内目次");

	return;
}

//----------------------------------------------------------
// 見出し一覧の作成
//----------------------------------------------------------
function makeIndex(contentBlock, dumpBlock, captionText){
	if(document.getElementById){
	if(document.getElementById(contentBlock) && document.getElementById(dumpBlock)){
    var objHeading   = document.getElementById(contentBlock).getElementsByTagName("h2");
		var objNaviGroup = document.createElement("div");
    var objNaviList  = document.createElement("ul");
		var objNaviHead  = document.createElement("h2");
		objNaviHead.appendChild(document.createTextNode(captionText));
		objNaviGroup.className = "navilist";
		objNaviGroup.appendChild(objNaviHead);
		objNaviGroup.appendChild(objNaviList);
    for(i=0;i<objHeading.length;i++){
        objListItem = document.createElement("li");
        objListAnchor = document.createElement("a");
        objListAnchor.setAttribute("href","#index" + i);
        objHeadText = getInnerText(objHeading[i]);
        objListText = document.createTextNode(objHeadText);
        objListAnchor.appendChild(objListText);
        objListItem.appendChild(objListAnchor);
        objNaviList.appendChild(objListItem);
        objHeading.item(i).id = "index" + i;
    }
    document.getElementById(dumpBlock).appendChild(objNaviGroup);
	}
	}
}


// innerText
function getInnerText(element){
 var children = element.childNodes;
 var texts = new Array();
 var j = 0;
 for(var child, i=0; i<children.length; i++){
  child = children.item(i);
  if(child.nodeType == 1){
   texts[j] = getInnerText(child);
   j++;
   continue;
  } else if(child.nodeType == 3){
   texts[j] = child.nodeValue;
   j++;
  }
 }
 return texts.join();
}



//----------------------------------------------------------
// ボックス要素の高さを同期
// 引数：同期するボックスの ID のリスト
//----------------------------------------------------------
function syncBoxHeight(){
	if(document.getElementById && document.documentElement.offsetHeight){
		var maxWidth = 0;

		// 高さの最大値を取得
		for(var i=0; i<syncBoxHeight.arguments.length; i++){
			var objNode = document.getElementById(syncBoxHeight.arguments[i]);
			if(objNode && objNode.offsetHeight > maxWidth){
				maxWidth = objNode.offsetHeight;
			}
		}

		// 高さを同期
		for(var i=0; i<syncBoxHeight.arguments.length; i++){
			var objNode = document.getElementById(syncBoxHeight.arguments[i]);
			if(objNode){
				objNode.style.height = maxWidth;
			}
		}
		return 1;
	}
	return 0;
}



//----------------------------------------------------------
// カレントページへのリンクを無効化
// 引数：付加するクラス名（オプション）
// 返値：無効化したリンクの数
//----------------------------------------------------------
function removeCurrentLink(addClassName){

  var count = 0;  // 無効化した数

  // 全アンカーの取得
  var elmsAnchor = document.getElementsByTagName("a");

  for(var i=0; i<elmsAnchor.length; i++){
    var elmAnchor = elmsAnchor.item(i);

    // 自分を指すリンクであれば
    if(elmAnchor.href == location.href){
      elmAnchor.removeAttribute("href");    // 属性を削除

      // 引数でクラス名が指定されていれば
      if(addClassName){
        elmAnchor.className = addClassName; // クラス名を付加
      }
      count++;
    }
  }
  return count;
}


//----------------------------------------------------------
// タブの切り替え
// 引数：タブのID、付加するクラス名（オプション）
//----------------------------------------------------------
function tabActiveChange(tabNodeId, addClassName){

	var catName = "";
	var elmTabWrap = document.getElementById(tabNodeId);
	var strsCat = location.href.split("/");
	if(strsCat.length > 4){ catName = strsCat[3]; }
	else if(strsCat[3] == "" || strsCat[3] == "index.html"){ catName = "home"; }
	var elmTab = document.getElementById(catName);
	if(elmTab){
		elmTab.className = addClassName;
//		addClassName(elmTab, addClassName);
	}
}


//----------------------------------------------------------
// クラス名を追加
// 引数：対象ノード, クラス名
// 返値：0 = 追加した; 1 = すでにある
//----------------------------------------------------------
function addClassName(argNode, argClassName){
  if(isClassName(argNode, argClassName) != "-1"){
    return 1;  // すでにある場合は無視
  }
  // 空白とともに追加
  argNode.className += " " + argClassName;
  return 0;
}


//----------------------------------------------------------
// クラス名が含まれるか判別
// 引数：対象ノード, クラス名
// 返値：-1 = ない; 0以上 = 見つかった場所(一番左を0とする)
//----------------------------------------------------------
function isClassName(argNode, argClassName){
  if(argNode.className != ""){
    var aryClassName = String(argNode.className).split(" ");
    for(i=0; i<aryClassName.length; i++){
      if(aryClassName[i] == argClassName){ return i; }
    }
  }
  return -1;  // 見つからなければ -1 を返す
}

//----------------------------------------------------------
// イベントの取得
//----------------------------------------------------------

window.onload = onloadEvent;
