// Copyright (c) 2005 koikikukan All Rights Reserved.// http://yujiro.dyndns.com/blog/koikikukan/// License is granted if and only if this entire// copyright notice is included. By Yujiro ARAKI.// Ver1.00 initial version.// Ver1.01 corresponds to tree structure.// 不要テキストノード削除(Mozilla対応)function deleteTextNode(nodes) {    for (var k = 0; k < nodes.length; k++) {        if(nodes[k].nodeName == '#text') {            nodes[k].parentNode.removeChild(nodes[k]);        }    }}// サブカテゴリー用（再帰呼び出し）function setClass(nodes){    // 最初の要素がULの場合, class属性(tree)を設定    if(nodes[0].nodeName == 'UL'|| nodes[0].nodeName == 'ul'){        nodes[0].setAttribute('class', 'tree');        nodes[0].setAttribute('className', 'tree');    }    for (var i = 0; i < nodes.length; i++) {        // 現在の要素がULの場合, 最後の子要素(LI)にclass属性(end)を設定        if(nodes[i].nodeName == 'UL' || nodes[i].nodeName == 'ul'){            var ulNodes = nodes[i].childNodes;            // 不要テキストノード削除(Mozilla対応)            deleteTextNode(ulNodes);            ulNodes[ulNodes.length - 1].setAttribute('class', 'end');            ulNodes[ulNodes.length - 1].setAttribute('className', 'end');        }        // 再帰処理        var childNodes = nodes[i].childNodes;        if(childNodes.length > 0){            setClass(childNodes);        }    }}// サブカテゴリーリスト用ツリー化function generateSubcategoryTree(){    nodes = document.getElementById('categories').childNodes;    deleteTextNode(nodes);    // 不要テキストノード削除(Mozilla対応)    setClass(nodes);}// ツリー構造リスト用ツリー化function generateTreeForTreeStructure(name){    nodes = document.getElementById(name).childNodes;    deleteTextNode(nodes);    // 不要テキストノード削除(Mozilla対応)    setClass(nodes);}// 一般リスト用ツリー化function generateNormalTree(name) {    nodes = document.getElementById(name).childNodes;    // 不要テキストノード削除(Mozilla対応)    deleteTextNode(nodes);    for (var i = 0; i < nodes.length; i++) {        // ul要素へのクラス属性追加        if(nodes[i].nodeName == 'UL'|| nodes[i].nodeName == 'ul'){            nodes[i].setAttribute('class', 'tree');            nodes[i].setAttribute('className', 'tree');        }        list = nodes[i].getElementsByTagName('li');        // li要素にclass属性(tree)を設定        for (var j = 0; j < list.length; j++) {            list[j].setAttribute('className', 'tree');            list[j].setAttribute('class', 'tree');            list[list.length - 1].setAttribute('className', 'end');            list[list.length - 1].setAttribute('class', 'end');        }        // マーク付与//        nodes[0].innerHTML = '○' + nodes[0].innerHTML;    }}