/* ===================================================================
 file name  : share.js
 info       : もろもろ共用
 note       : 2010.08.26 新規作成. T.Nakamura
              2011.12.13 最終修正  T.Nakamura
=================================================================== */

/* css ファイルを読み込む - javascript 動作時のみ対象を非表示にするなど, 初期化に使う.
  (引数:css ファイル名 '/'で始まるパスから指定) */

function addCSS(fname) {
  var acs = document.createElement("link");
  acs.href = fname;
  acs.rel = "stylesheet";
  acs.type = "text/css";
  document.getElementsByTagName('head')[0].appendChild(acs);
}


/* js ファイルの動的読み込み
  (引数:js ファイル名 '/'で始まるパスから指定) */

function addJS(fname) {
  var ajs = document.createElement("script");
  ajs.type = "text/javascript";
  ajs.src = fname;
  document.getElementsByTagName('head')[0].appendChild(ajs);
}


/* 同一クラスの Object リストを得る. 戻り値 Object(ノード)配列
  (引数:クラス名) */

function getClassElements(class_name) {
  var all_elm = document.getElementsByTagName('*');
  var elem_ln = all_elm.length;
  var pattern = new RegExp("(^|\\s)"+class_name+"(\\s|$)");
  var node_list = new Array();

  for(var i = 0, j = 0; i < elem_ln; i++){
    var elem = all_elm[i];
    if(! elem.className){
      continue;
    }
    if(! pattern.test(elem.className)){
      continue;
    }
    node_list[j++] = elem;
  }
  return node_list;
}


/* -------------------------------------------------
   表示関係
------------------------------------------------- */

/* 対象配列を非表示にする -ページ読み込み時の初期化等に利用.
   (引数:非表示にする id 配列) */

function hideArea(hide_id_arry) {
  if (document.getElementById) {
    for (var i = 0; i < hide_id_arry.length; i++) {
      document.getElementById(hide_id_arry[i]).style.display = "none";
    }
  }
}


/* 対象配列を表示,かつ別の対象配列を非表示にする
      - タブ様のリンククリックによる表示領域切り替え等に.
   (引数-第1:表示するid配列, 第2:非表示にする id 配列) */

function toggleViewArea(show_id_arry, hide_id_arry) {
  if (document.getElementById) {
    for (var i = 0; i < show_id_arry.length; i++) {
      document.getElementById(show_id_arry[i]).style.display = "block";
    }
    for (var i = 0; i < hide_id_arry.length; i++) {
      document.getElementById(hide_id_arry[i]).style.display = "none";
    }
  }
}


/* 指定 id の表示/非表示をトグル切り替え */

function changeVisibility(d_id) {
  if (document.getElementById) {
    var dsp = (document.getElementById(d_id).style.display=="block") ? "none" : "block";
    document.getElementById(d_id).style.display = dsp;
  }
}


/* -------------------------------------------------
   マウスオーバー時のみ, 指定 id 配列を表示する
------------------------------------------------- */

/* 指定 id 配列を表示する - onmouseover などで使う
   (引数:表示する id 配列) */

function showID(id_arry) {
  if (document.getElementById) {
    for (var i = 0; i < id_arry.length; i++) {
      document.getElementById(id_arry[i]).style.display = "block";
    }
  }
}


/* 指定 id 配列を非表示にする - onmouseout などで使う
   (引数:非表示にする id 配列) */

function hideID(id_arry) {
  if (document.getElementById) {
    for (var i = 0; i < id_arry.length; i++) {
      document.getElementById(id_arry[i]).style.display = "none";
    }
  }
}


/* -------------------------------------------------
                      その他
------------------------------------------------- */

/* 別ウィンドウで開く - <a>タグ内の onclick で使う
   target=_blank" は XHTML 1.0 Strict で非採用だが,
   リンク先へ飛んでもページを残したい場合はある.
   (このためだけに DOCTYPE 宣言の見直しはしない)
   ソース内にも記述可能だが, MovableType の入力欄の
   サイズの関係で文字数を減ずる必要があり用意した. */

function pop(elm) {
  window.open(elm.href, '', '');
  return false;
}



