// 使用 UTF-8 編碼
addEvent(window, "load", initTabs);
function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}


function showTabById(tabid,menu_id) {
  var divs = document.getElementsByTagName('div');
  var tab = document.getElementById(tabid);
  var submenu = document.getElementById(menu_id);
  var i;
  var subm = menu_id.substring(menu_id.indexOf('_')+1);

  for (i=0; i<divs.length; i++) {
    if (divs[i].className && (divs[i].className.indexOf('tab'+subm) > -1)) {
      divs[i].style.display = 'none';
    }
  }

  if (tab) {
    tab.style.display = 'block';

    if (submenu) {
      /*
      var links = submenu.getElementsByTagName('a');
      for (i=0; i<links.length; i++) {
        if (links[i].href.match('^.*#'+tabid+'$')) {
          links[i].className = 'actTab';
        } else { links[i].className = 'inactTab'; }
      }
      */
      var links = submenu.getElementsByTagName('td');
      for(i=0;i<links.length;i++) {
	var tdname = links[i].getAttribute('name');
	if(!tdname) continue;
	if(tdname == tabid) {
	  links[i].bgColor = '#CCCCCC';
	  var al = links[i].getElementsByTagName('a');
	  al[0].style.color = '#666666';
	} else {
	  links[i].bgColor = '#666666';
	  var al = links[i].getElementsByTagName('a');
	  al[0].style.color = '#FFFFFF';
	}
      }
    }
  }
}

function makeTabLinks(menu_id) { 
  var submenu = document.getElementById(menu_id);
  var links, i, target;

  if (submenu) {
    links = submenu.getElementsByTagName('a');
    for (i=0; i<links.length; i++) {
      var href = links[i].getAttribute('href');
      target = href.substring(href.indexOf('#')+1);
      links[i]['onclick'] = new Function("showTabById('"+target+"','"+menu_id+"'); return false;");
    }
  }
} 

// show tab with given number
function showTabByNumber(number,menu_id) {
  var targets = new Array();    // tab names
  var divs = document.getElementsByTagName('div');
  var i;
  var subm = menu_id.substring(menu_id.indexOf('_')+1);

  for (i=0; i<divs.length; i++) {
    if (divs[i].className == ('tab'+subm)) {
      targets[targets.length] = divs[i].id;             //array[array.length]= same as .push, but IE-compatible.
    }
  }
  if (number >= targets.length) {
    number = targets.length-1;
  }
  showTabById(targets[number],menu_id);
}

function initTabs() {/*{{{*/
  var target = location.href.substring(location.href.indexOf('#')+1);

  makeTabLinks('submenu_a');
  makeTabLinks('submenu_b');
  makeTabLinks('submenu_c');
  makeTabLinks('submenu_d');

  if (target && document.getElementById(target)) {
    showTabById(target,'submenu_a');
    showTabById(target,'submenu_b');
    showTabById(target,'submenu_c');
    showTabById(target,'submenu_d');
  } else {
    showTabByNumber(0,'submenu_a');
    showTabByNumber(0,'submenu_b');
    showTabByNumber(0,'submenu_c');
    showTabByNumber(0,'submenu_d');
  }
}

// vim:enc=utf-8:fenc=utf-8

