// File: index.js
// Requires: prototype.js

var TutorialIndex = Class.create();

TutorialIndex.prototype = {
    listIndexLinks : null,
    listSubListDivs : null,

    initialize : function()
    {
        var strHash = window.location.hash;

        if(strHash.charAt(0) == "#")
            strHash = strHash.substr(1);

        var strID = strHash;

        if(strID){
            this.selectCatagory("cat_" + strID);
            this.openList("list_" + strID);
        }

        var list = $("containerIndices");
        this.listIndexLinks = list.getElementsByTagName("A");

        var i, len;

        for(i = 0, len = this.listIndexLinks.length; this.listIndexLinks && i < len; i++){
            this.listIndexLinks[i].onclick = this.handleCatagoryClick.bindAsEventListener(this);
        }
    },
    handleCatagoryClick : function(evnt)
    {
        var elt = Event.findElement(evnt, "A");

        var eltTmp = null, i, len;

        if(elt){
            var strID = elt.id;

            this.selectCatagory(strID);

            strID = strID.split("_");
            strID = strID[strID.length - 1];
            window.location.href = "#" + strID;
            strID = "list_" + strID

            this.openList(strID);
        }

        return false;
    },
    openList : function(strID)
    {
        var i, len;

        if(!this.listSubListDivs){
            var list = $("containerLists");

            if(list){
                this.listSubListDivs = list.getElementsByTagName("DIV");
            }
        }

        for(i = 0, len = this.listSubListDivs.length; this.listSubListDivs && i < len; i++){
            if(this.listSubListDivs[i].id == strID){
                this.listSubListDivs[i].className = "selected";
            }
            else{
                this.listSubListDivs[i].className = "";
            }
        }
    },
    selectCatagory : function(strID)
    {
        var i, len, eltPrnt;
/*
        var list = $("containerIndices");
        list = list.getElementsByTagName("A");
*/
        for(i = 0; this.listIndexLinks && i < this.listIndexLinks.length; i++){
            if(this.listIndexLinks[i].id == strID){
                this.listIndexLinks[i].className = "selected";
                if((eltPrnt = this.listIndexLinks[i].parentNode) != null){
                    eltPrnt.className = "selected";
                }
            }
            else{
                this.listIndexLinks[i].className = "";
                if((eltPrnt = this.listIndexLinks[i].parentNode) != null){
                    eltPrnt.className = "";
                }
            }
        }
    }
};
