// 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.

// Ver1.02 corresponds to MTSubCategories tag.

// Ver1.03 2005.09.10 fix bug for Mozilla.



// 不要テキストノード削除(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){



    // サブカテゴリーが存在しない場合の対処

    if(!nodes[0]){

        return;

    }



    // 最初の要素が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);



            // Mozilla 警告対処 2005.09.10

            if(ulNodes[ulNodes.length - 1].innerHTML){

                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;

    }

}

