var current = "";
var currentTop = false;

function init(){
//	$('nav').id="hidden";
//    var myUrl = document.location + "";
//    var navigation = myUrl.replace(/^.*\/(.*?)\d+\.html.*/, "$1ix.html", "i");
//    new Ajax.Updater('around', navigation, {
//            asynchronous:false,
//            insertion: 'top'
//    });
    showSubtree();
}
 
 
function contentInit(){
	init();
}

function showSubtree(){
////    var navAnchors = $$("a.toc");
    var anUrl = document.location + "";
    var myReg = new RegExp(".*?" + anUrl.replace(/^.*\//, "").replace(/#.*/, "") + ".*", "i") ;
    var locAnchorA = anUrl.replace(/.*?\.html(#.*?)/,"$1");
    var locAnchor = new RegExp(".*?" + locAnchorA);
    var res;

    some(document.getElementById("nav").getElementsByTagName("a"), function(elem){
        return elem.className.match(/toc|.*\Wtoc\W.*/);
    }, function(elem){
        if (myReg.test(elem.href.replace(/^.*\//, "") ) ){
            if (locAnchorA.length > 0){
                if (locAnchor.test(elem.href.toString()) ) {
                    //alert(anAnchor.href.toString().replace(/.*?\.html(#.*?)/,"$1"));
                    res = elem;
                    throw $broker;
                }
            } else {
                // using the fist matching node.
                res = elem;
                throw $broker;
            }
        }
    });
////    navAnchors.each(function(anAnchor){
////        if (myReg.test(anAnchor.href.replace(/^.*\//, "") ) ){
////            if (locAnchorA.length > 0){
////                if (locAnchor.test(anAnchor.href.toString()) ) {
////                    //alert(anAnchor.href.toString().replace(/.*?\.html(#.*?)/,"$1"));
////                    res = anAnchor;
////                    throw $break;
////                }
////            } else {
////                // using the fist matching node.
////                res = anAnchor;
////                throw $break;
////            }
////            //alert(anAnchor.href.toString());
////        }
////    });
    $$(".vis").each(function(item){
        item.className = item.className.replace(/ vis /, "");
    });
    $$(".current").each(function(item){
        item.className = item.className.replace(/ current /, "");
    });

    try {
    res.parentNode.className = res.parentNode.className + " current ";
    } catch (err){}
    var it = res;
    var subTree = false;
    recShow(it);

    
    try {
        while(it.nextSibling != null){
            it = it.nextSibling;
            if (it.className.match(/.*?navTree.*/)){
                if (!subTree){
                    subTree = true;
                    it.className = it.className + " vis ";
                }
            } else {
                //it.className = it.className + " vis";
            }
        }
    } catch (err){

    }

    //alert(res);
}

function recShow(it){
    try {
        it = it.parentNode;
        if (it.id == "nav"){
            return;
        }
        if (it.className.match(/.*?navTree.*/)){ //(navTree|navEntry)
            it.className = it.className + " vis ";
        }
        recShow(it);
    } catch (err){}
}

var $broker = {};
function some(arr, criteria, action){
    try {
        for (var i = 0; i < arr.length; i++) {
            if (criteria(arr[i])) {
                action(arr[i]);
            }
        }
    } catch (err) {
        if (err != $broker) {//$break){
            alert(err);
        }
    }
}


function isContentAvailable(){

}

function highlightCToc(elem){
			elem.className = elem.className + " cTocHighlight ";
}
function unhighlightCToc(elem){
	elem.className = elem.className.replace(/cTocHighlight/g, "");
}


function highlight(elem){
	elem.className = elem.className + " highlight ";
}
function unhighlight(elem){
	elem.className = elem.className.replace(/highlight/g, "");
}

function highlightTopToc(elem){
	elem.className = elem.className + " tocTopHighlight ";
}
function unhighlightTopToc(elem){
	elem.className = elem.className.replace(/tocTopHighlight/g, "");
}

function setBold(elem){
    elem.href = (elem.href.toString().replace(/#.*$/, ""));
}


function setBoldCurrent(){
}		

function hideOToc(tr){
}
function hideOTocBefore(tr, level, oLevel){
}

function hideOTocAfter(tr, level, ext){
}


