var navMouseOver = false;
function navFadeSetup () {
    //Style the dom node to opacity 100;
    dojo.style("nav", "opacity", "100");
    dojo.style("nav", "display", "block");
    
    var navFadeInAni;
    var navFadeOutAni; 
    var navFadeOutTimer; 
    function navFadeIn (e) {
        /*dojo.style("nav", "opacity", "0");*/
        var fadeArgs = {
          node: "nav",
          duration: 2000,
          easing: dojo.fx.easing.expoOut,
          beforeBegin: function() { dojo.style("nav", "display", "block"); }
        };
        if (navFadeOutAni != undefined)
            navFadeOutAni.stop();
        navFadeInAni = dojo.fadeIn(fadeArgs).play();
        //console.debug(navMouseOver);
        clearTimeout(navFadeOutTimer);
        if (navMouseOver != true) {
            navFadeOutTimer = setTimeout(navFadeOut, navFadeTimeout*1000);
        }
    }
    function navFadeOut (e) {
        /*dojo.style("nav", "opacity", "100");*/
        var fadeArgs = {
          node: "nav",
          duration: 4000,
          easing: dojo.fx.easing.expoOut,
          onEnd: function() { dojo.style("nav", "display", "none"); }
        };
        if (navFadeInAni != undefined)
            navFadeInAni.stop();
        navFadeOutAni = dojo.fadeOut(fadeArgs).play();
    }
    function navMouseOutSet () {
        navMouseOver = false;
    }
    function navMouseOverSet () {
        navMouseOver = true;
    }
    dojo.connect(dojo.byId("nav"), "onmouseout", navMouseOutSet);
    dojo.connect(dojo.byId("nav"), "onmouseover", navMouseOverSet);
    dojo.connect(document, "onmousemove", navFadeIn);
    dojo.connect(document, "onclick", navFadeIn);
}
dojo.addOnLoad(navFadeSetup);

function navSubHeightWatcher (id)
{
    box = dojo.byId(id);
    cont = dojo.byId(id+"ent");
    if (cont.clientHeight < box.clientHeight) {
        dojo.style(cont, "overflow-y", "scroll");
    } else {
        dojo.style(cont, "overflow-y", "auto");
    }
}
var navMainActiveNodeId;
function navMainToggle (nodeId)
{
    //console.debug("(navMainToggle) nodeId: ", nodeId);
    if (navMainActiveNodeId != undefined && navMainActiveNodeId == nodeId) {
        return;
    }
    
    //console.debug("(navMainToggle) navMainActiveNodeId: ", navMainActiveNodeId);
    if (navMainActiveNodeId != undefined) {
        var wipeOutArgs = {
            node: navMainActiveNodeId,
            duration: 1000,
            easing: dojo.fx.easing.expoOut
        };
        dojo.fx.wipeOut(wipeOutArgs).play();
    }
    //console.debug("navMainToggle / wipeIn");
    //console.debug(dojo.byId(nodeId));
    var wipeArgs = {
        node: nodeId,
        duration: 1000,
        easing: dojo.fx.easing.expoOut
    };
    /*,
        onEnd: function(){navSubHeightWatcher(navMainActiveNodeId);}*/
    dojo.fx.wipeIn(wipeArgs).play();
    //console.debug("navMainToggle / wipeIn started");
    navMainActiveNodeId = nodeId;
}

function navMainSetup () {
    dojo.query(".nav_sub").style({ display: "none"});
}
dojo.addOnLoad(navMainSetup);


function navPosition () {
    w = dojo.style("nav", "width");
    h = dojo.style("nav", "height");
    //console.debug(w, h);
    x = Math.round( (document.body.clientWidth-w)/4*3 );
    y = Math.round( (document.body.clientHeight-h)/4 );
    dojo.style("nav", "top", y+"px");
    dojo.style("nav", "left", x+"px");
    //console.debug(dojo.style("nav", "top"), dojo.style("nav", "left"));
}


function adjustRatio (imgId, mode)
{
    //console.debug("(adjustRatio) imgId:", imgId);
    //console.debug("(adjustRatio) mode:", mode);
    img = dojo.byId(imgId);
    
    var box = document.body;
    var bWidth = box.clientWidth;
    var bHeight = box.clientHeight;
    var textbox = dojo.byId("media_text");
    //console.debug("(adjustRatio) bHeight:", bHeight);
    if (textbox != undefined) {
        //console.debug("(adjustRatio) textbox.clientHeight:", textbox.clientHeight);
        bHeight = bHeight-textbox.clientHeight;
    }
    //console.debug("(adjustRatio) bHeight:", bHeight);
    // Find which dimension is scaled the most
    var scaleH = bHeight / img.height;
    var scaleW = bWidth / img.width;
    
    if (mode != undefined && mode == "fill") {
        //console.debug(scaleW, scaleH);
        // Scale the image
        if (scaleH > scaleW) {
            //console.debug("h", box.clientHeight);
            dojo.style(imgId, "height", bHeight+"px");
            //dojo.style(imgId, "width", Math.round(img.width * scaleH)+"px");
        } else {
            dojo.style(imgId, "width", bWidth+"px");
            //dojo.style(imgId, "height", Math.round(img.height * scaleW)+"px");
            //console.debug("w", box.clientWidth);
        }
    } else {
        //console.debug(scaleW, scaleH);
        // downscale only
        if (scaleH >=1 || scaleW >= 1) {
            // Scale the image
            if (scaleH < scaleW) {
                //console.debug("h", box.clientHeight);
                dojo.style(imgId, "height", bHeight+"px");
                //dojo.style(imgId, "width", Math.round(img.width * scaleH)+"px");
            } else {
                dojo.style(imgId, "width", bWidth+"px");
                //dojo.style(imgId, "height", Math.round(img.height * scaleW)+"px");
                //console.debug("w", box.clientWidth);
            }
        }
    }
} // end function adjustRatio
function adjustRatio2 (imgId, mode)
{
    //console.debug("(adjustRatio) imgId:", imgId);
    //console.debug("(adjustRatio) mode:", mode);
    img = dojo.byId(imgId);
    
    var box = document.body;
    var bWidth = box.clientWidth;
    var bHeight = box.clientHeight;
    var textbox = dojo.byId("media_text");
    //console.debug("(adjustRatio) bHeight:", bHeight);
    if (textbox != undefined) {
        //console.debug("(adjustRatio) textbox.clientHeight:", textbox.clientHeight);
        bHeight = bHeight-textbox.clientHeight;
    }
    //console.debug("(adjustRatio) bHeight:", bHeight);
    // Find which dimension is scaled the most
    if (imgOrigHeight != undefined) {
        var scaleH = bHeight / imgOrigHeight;
    } else {
        //var scaleH = bHeight / img.height;
        //console.debug("FOOBAR!");
    }
    if (imgOrigWidth != undefined) {
        var scaleW = bWidth / imgOrigWidth;
    } else {
        //var scaleW = bWidth / img.width;
        //console.debug("FOOBAR!");
    }
    
    console.debug("(adjustRatio2) imgOrigWidth: ", imgOrigWidth);
    console.debug("(adjustRatio2) imgOrigHeight: ", imgOrigHeight);
    console.debug("(adjustRatio2)", scaleW, scaleH);
    if (mode != undefined && mode == "fill") {
        //console.debug("BAR!!!");
        // downscale only
        if (scaleH <=1 || scaleW <= 1) {
            // Scale the image
            if (scaleH > scaleW) {
                //console.debug("h", box.clientHeight);
                //dojo.style(imgId, "height", bHeight+"px");
                //dojo.style(imgId, "width", Math.round(imgOrigWidth * scaleH)+"px");
                dojo.style(imgId, "height", imgOrigHeight*scaleH+"px");
                dojo.style(imgId, "width", imgOrigWidth*scaleH+"px");
            } else {
                //dojo.style(imgId, "width", bWidth+"px");
                //dojo.style(imgId, "height", Math.round(imgOrigHeight * scaleW)+"px");
                dojo.style(imgId, "height", imgOrigHeight*scaleW+"px");
                dojo.style(imgId, "width", imgOrigWidth*scaleW+"px");
                //console.debug("w", box.clientWidth);
            }
        } // end if downscale only
    } else {
        // downscale only
        if (scaleH <=1 || scaleW <= 1) {
            // Scale the image
            if (scaleH < scaleW) {
                //console.debug("h", box.clientHeight);
                //dojo.style(imgId, "height", bHeight+"px");
                dojo.style(imgId, "height", imgOrigHeight*scaleH+"px");
                dojo.style(imgId, "width", imgOrigWidth*scaleH+"px");
                //dojo.style(imgId, "width", Math.round(img.width * scaleH)+"px");
            } else {
                //dojo.style(imgId, "width", bWidth+"px");
                dojo.style(imgId, "height", imgOrigHeight*scaleW+"px");
                dojo.style(imgId, "width", imgOrigWidth*scaleW+"px");
                //dojo.style(imgId, "height", Math.round(img.height * scaleW)+"px");
                //console.debug("w", box.clientWidth);
            }
        } // end if downscale only
    }
    
    if (imgOrigHeight != undefined) {
        var scaleH = bHeight / imgOrigHeight;
    } else {
        //var scaleH = bHeight / img.height;
        //console.debug("FOOBAR!");
    }
    if (imgOrigWidth != undefined) {
        var scaleW = bWidth / imgOrigWidth;
    } else {
        //var scaleW = bWidth / img.width;
        //console.debug("FOOBAR!");
    }
    //console.debug("(adjustRatio2)", scaleW, scaleH);
    
} // end function adjustRatio2

function imageScale (imgId) {
    //console.debug("(imageScale) imgId param:", imgId);
    if (imgId == undefined) {
        if (mediaID == undefined) {
            imgId = "media_"+mediaIDhome;
        } else {
            imgId = "media_"+mediaID;
        }
    }
    //console.debug("(imageScale) imgId:", imgId);
    
    var img = dojo.byId(imgId);
    //console.debug("(imageScale) img object:", img);
    if (img == undefined) {
        //console.debug("(imageScale) img undefined:", img);
        return false;
    }
    
    
    //var box = document.body;
    //console.debug("(imageScale) img.tagName:", img.tagName);
    if (img.tagName == 'IMG') {
        var Suche = /^media_(\D*)(\d*)$/;
        var Ergebnis = Suche.exec(imgId);
        //console.debug(Ergebnis);
        type = Ergebnis[1];
        ID = Ergebnis[2];
        
        //console.log(type);
        if (type == "" || type == "c" || type == "index") {
            adjustRatio2(imgId, "fit");
        } else {
            adjustRatio2(imgId, "fill");
        }
    }
    
    var box = document.body;
    var bWidth = box.clientWidth;
    var bHeight = box.clientHeight;
    var textbox = dojo.byId("media_text");
    //console.debug("(imageScale) bHeight:", bHeight);
    if (textbox != undefined) {
        //console.debug("(imageScale) textbox.clientHeight:", textbox.clientHeight);
        bHeight = bHeight-textbox.clientHeight;
    }
    //console.debug("(imageScale) bHeight:", bHeight);
    //console.debug(img.clientWidth, img.clientHeight);
    hSpace = bWidth - img.clientWidth; //img.width;
    vSpace = bHeight - img.clientHeight; //img.height;
    //console.debug(hSpace, vSpace);
    if (vSpace > 0) {
        dojo.style(imgId, "top", Math.round(vSpace/2)+"px");
    } else {
        dojo.style(imgId, "top", 0+"px");
    }
    if (hSpace > 0) {
        dojo.style(imgId, "left", Math.round(hSpace/2)+"px");
    } else {
        dojo.style(imgId, "left", 0+"px");
    }
}
function centerNode (nodeId)
{
    N = dojo.byId(nodeId);
    if (N == undefined) {
        return;
    }
    
    var box = document.body;
    var bWidth = box.clientWidth;
    var bHeight = box.clientHeight;
    //console.debug("(imageScale) bHeight:", bHeight);
    //console.debug(img.clientWidth, img.clientHeight);
    hSpace = bWidth - N.clientWidth; //img.width;
    vSpace = bHeight - N.clientHeight; //img.height;
    //console.debug("(centerNode)", hSpace, vSpace);
    if (vSpace > 0) {
        dojo.style(nodeId, "top", Math.round(vSpace/2)+"px");
    } else {
        dojo.style(nodeId, "top", 0+"px");
    }
    /*
    if (hSpace > 0) {
        dojo.style(nodeId, "left", Math.round(hSpace/2)+"px");
    } else {
        dojo.style(nodeId, "left", 0+"px");
    }
    */
}
function processResize ()
{
    //console.debug("FOO");
    centerNode("media_loading");
    imageScale();
}
dojo.addOnLoad( function () { centerNode("media_loading"); } );
//dojo.addOnLoad(navPosition);
//window.onresize = navPosition;
//window.onresize = imageScale;
window.onresize = processResize;


function removeHTMLTags (htmlString)
{
    if (htmlString) {
        var mydiv = document.createElement("div");
        mydiv.innerHTML = htmlString;
        
        if (document.all) // IE Stuff
        {
            return mydiv.innerText;
           
        }   
        else // Mozilla does not work with innerText
        {
            return mydiv.textContent;
        }                           
    }
}

// show content/media
function processRequest (link)
{
    //console.debug("(processRequest) link", link);
    //console.debug("sQ", searchQuery);
    if (searchQuery != undefined && searchQuery != "") {
        //link = link+"#search="+searchQuery;
    }
    window.location = link;
    showContent();
    return false;
}


var mediaIDactive;
var activeIndex;
var nextIndex;
var next2Index;
var prevIndex;
var prev2Index;
function showContent ()
{
    //console.debug("(showContent) window.location.hash", window.location.hash);
    //console.debug("(showContent) searchQuery, search_nores", searchQuery, search_nores);
    if (
        (window.location.hash == "" || window.location.hash == "#" || window.location.hash == "#index")
        &&
        (searchQuery == undefined || searchQuery == "" || search_nores == true)
    ) {
        //console.debug("(processRequest) ", "#m"+mediaIDhome);
        //processRequest("#m"+mediaIDhome);
        type = "index";
        ID = "index";
    } else {
        var Suche = /^#(\D+)(\d*)$/;
        var Ergebnis = Suche.exec(window.location.hash);
        //console.debug("(showContent) Ergebnis", Ergebnis);
        if (Ergebnis == undefined) {
            processRequest("#index");
            return false;
        }
        type = Ergebnis[1];
        ID = Ergebnis[2];
    }
    
    
    if (searchQuery != undefined && searchQuery != "") {
			searchresFindNeighbors(type+ID);
            searchresMakeButtons(true);
    } else {
            searchNextLink = null;
            searchPrevLink = null;
            searchresMakeButtons(false);
    }
    
    
    var docPane = dijit.byId("content");
    docPane.attr("onLoad", function(){
        //console.debug("(docPane.onLoad) mediaID", mediaID);
        if (mediaID != undefined && mediaID != "") {
            mediaLoaded[mediaID] = setInterval("mediaCheckLoaded('"+mediaID+"')", 50);
            mediaIDactive = mediaID;
        }
    });
    /*docPane.attr("onUnload", function(){
        console.debug("unload");
        if (mediaIDactive != undefined && mediaIDactive != "") {
            console.debug("mediaIDactive", mediaIDactive);
            dojo.fadeOut({
                node: dojo.byId("media_"+mediaIDactive),
                duration: 50,
                onEnd: function () { dojo.style("media_"+mediaIDactive, "display", "none"); }
            }).play();
        }
    });*/
    //console.debug("(showContent) type, ID", type, ID);
    screenWH = 'screenW='+document.body.clientWidth+'&screenH='+document.body.clientHeight;
    switch (type) {
        case "index":
            mediaShowStop();
            mediaID = "index";
            docPane.setHref("home.php");
            document.title = titleBase;
            
            mediaFindNeighbors(type, 0);
            mediaShowMakeButtons();
            break;
        case "imprint":
            mediaShowStop();
            mediaID = null;
            docPane.setHref("imprint.php");
            document.title = 'Imprint'+titleSep+titleBase;
            break;
        case "info_c":
            mediaShowStop();
            mediaID = null;
            navHighlight("c", ID);
            mediaTreeExpandNode("c", ID);

            if (searchQuery == undefined || searchQuery == "") {
                docPane.setHref("courseinfo.php?id="+ID);
            } else {
                docPane.setHref("courseinfo.php?id="+ID+"&query="+searchQuery);
            }
            cI = coursesData["c"+ID];
            document.title = "Info"+titleSep+cI["subtitle"]+titleSep+titleBase;
            break;
        case "c":
            mediaID = type+ID;
            if (dojo.byId("nav_main_"+type+ID+"_content_title") == undefined) {
                processRequest("#index");
                return false;
            }
            navHighlight(type, ID);
            mediaTreeExpandNode(type, ID);
            //console.debug("(showContent) mediaID", mediaID);
            if (searchQuery == undefined || searchQuery == "") {
                docPane.setHref("course.php?id="+ID+"&query="+searchQuery);
            } else {
                docPane.setHref("course.php?id="+ID+"&query="+searchQuery);
            }
            cI = coursesData["c"+ID];
            document.title = removeHTMLTags(cI["subtitle"])+titleSep+titleBase;
            
            mediaFindNeighbors(type, ID);
            mediaShowMakeButtons();
            break;
        case "m":
            mediaID = ID;
            //console.debug(navStore);
            if (navStore._itemsByIdentity[type+ID] == undefined) {
                processRequest("#index");
                return false;
            }
            navHighlight(type, mediaID);
            //console.debug(navStore._itemsByIdentity[type+ID]);
            mediaTreeExpandNode(type, mediaID);
            //console.debug("(showContent) mediaID", mediaID);
            if (searchQuery == undefined || searchQuery == "") {
                docPane.setHref("media.php?id="+mediaID);
            } else {
                docPane.setHref("media.php?id="+mediaID+"&query="+searchQuery);
            }
            mI = mediaGetInfo("m"+mediaID);
            pI = projectGetInfo(mI["ProjectsID"][0]);
            cI = coursesData[mI["CoursesID"][0]];
            //console.debug("(showContent) mediaInfo:", mI);
            //console.debug("(showContent) projectInfo:", pI);
            //console.debug("(showContent) coursesInfo:", cI);
            document.title = removeHTMLTags(mI["title"])+titleSep+removeHTMLTags(pI["title"][0])+titleSep+removeHTMLTags(cI["subtitle"])+titleSep+titleBase;
            
            mediaFindNeighbors(type, mediaID);
            mediaShowMakeButtons();
            break;
        
        case "p":
            //console.debug(navStore);
            if (navStore._itemsByIdentity[type+ID] == undefined) {
                processRequest("#index");
                return false;
            }
            pi = projectGetInfo(type+ID);
            mediaID = pi.children[0]["id"];
            processRequest("#"+mediaID);
            break;
        
        default:
            processRequest("#index");
            return false;
    }
    
    return true;
}
function navHighlight (type, id) {
    navId = type+id;
    if (navActive != undefined) {
        //console.debug(navActive);
        var Suche = /^(\D*)(\d*)$/;
        var Ergebnis = Suche.exec(navActive);
        navActiveType = Ergebnis[1];
        navActiveId = Ergebnis[2];
        if (navActiveType == "m") {
            //navStore.setValue(navStore._itemsByIdentity[navActive], "active", "no");
        } else if (navActiveType == "c") {
            dojo.removeClass("nav_main_"+navActive+"_content_title", "active");
        }
    }
    if (type == "m") {
        //navStore.setValue(navStore._itemsByIdentity[navId], "active", "yes");
    } else if (type == "c") {
        //console.debug("nav_main_"+type+id+"_content_title");
        dojo.addClass("nav_main_"+type+id+"_content_title", "active");
    }
    navActive = navId;
}
var navActive;

var locationimageCycle;
var mediaLoaded = new Array;
            
function mediaCheckLoaded (id) {
    //console.debug("(mediaCheckLoaded) id:", id);
    //    console.debug("(mediaCheckLoaded) tagName:", dojo.byId("media_"+id).tagName);
    //    console.debug("(mediaCheckLoaded) complete:", dojo.byId("media_"+id).complete);
    centerNode("media_loading");
    m = dojo.byId("media_"+id);
    //console.debug("(mediaCheckLoaded) mediacontainer (media_"+id+"):", m);
    if (m != undefined) {
        //console.debug("(mediaCheckLoaded) mediacontainer is defined");
        if (m.tagName != "IMG" || m.complete == true) {
            //console.debug("(mediaCheckLoaded) tagName:", m.tagName);
            //console.debug("(mediaCheckLoaded) complete:", m.complete);
            //console.debug("(mediaCheckLoaded) loaded!");
            clearInterval(mediaLoaded[id]);
            imageScale("media_"+id);
            dojo.fadeIn({
                node: m,
                duration: 600,
                beforeBegin: function () { dojo.style(m, "opacity", "0"); dojo.style(m, "visibility", "visible"); }
            }).play();
            if (dojo.byId("media_loading")) {
                dojo.fadeOut({
                    node: dojo.byId("media_loading"),
                    duration: 300,
                    onEnd: function () { dojo.style("media_loading", "display", "none"); }
                }).play();
            }
            mediaShowRestart();
        } // end if complete
    } // end if defined
}
var mediaSlideshowID;
function mediaShowMakeButtons ()
{
    if (mediaNextLink != undefined) {
        dojo.style("mediaShow_BtnNext", "display", "block");
        dojo.style("mediaShow_BtnNextInactive", "display", "none");
        
        dojo.style("mediaShow_BtnPlayInactive", "display", "none");
        if (mediaSlideshowID != undefined) {
            dojo.style("mediaShow_BtnPlay", "display", "none");
            dojo.style("mediaShow_BtnPause", "display", "block");
        } else {
            dojo.style("mediaShow_BtnPlay", "display", "block");
            dojo.style("mediaShow_BtnPause", "display", "none");
        }
    } else if (mediaNextLink == undefined) {
        dojo.style("mediaShow_BtnNext", "display", "none");
        dojo.style("mediaShow_BtnNextInactive", "display", "inline");
        
        dojo.style("mediaShow_BtnPlayInactive", "display", "inline");
        dojo.style("mediaShow_BtnPlay", "display", "none");
        dojo.style("mediaShow_BtnPause", "display", "none");
    }
    
    
    //console.debug("(mediaShowMakeButtons) mediaPrevLink:", mediaPrevLink);
    if (mediaPrevLink != undefined) {
        dojo.style("mediaShow_BtnPrev", "display", "block");
        dojo.style("mediaShow_BtnPrevInactive", "display", "none");
    } else if (mediaPrevLink == undefined) {
        dojo.style("mediaShow_BtnPrev", "display", "none");
        dojo.style("mediaShow_BtnPrevInactive", "display", "inline");
    }
}
function mediaShowPause () {
    if (mediaSlideshowID != undefined) {
        //clearInterval(mediaSlideshowID);
        clearTimeout(mediaSlideshowID);
        mediaSlideshowID = null;
    }
    mediaShowMakeButtons();
}
function mediaShowStop () {
    if (mediaSlideshowID != undefined) {
        //clearInterval(mediaSlideshowID);
        clearTimeout(mediaSlideshowID);
        mediaSlideshowID = null;
    }
    mediaShowMakeButtons();
}
function mediaShowPlay () {
    //console.debug("(mediaShowPlay) mediaSlideshowID:", mediaSlideshowID);
    if (mediaSlideshowID != undefined) {
        return false;
    }
    //console.debug("(mediaShowPlay) setInterval");
    //mediaSlideshowID = setInterval("mediaShowNext()", mediaShowInterval*1000);
    mediaSlideshowID = setTimeout("mediaShowNext()", mediaShowInterval*1000);
    mediaShowMakeButtons();
}
function mediaShowRestart () {
    if (mediaSlideshowID != undefined) {
        //clearInterval(mediaSlideshowID);;
        //mediaSlideshowID = setInterval("mediaShowNext()", mediaShowInterval*1000);
        clearTimeout(mediaSlideshowID);;
        mediaSlideshowID = setTimeout("mediaShowNext()", mediaShowInterval*1000);
    }
}


/*function mediaLoad (id) {
    //dojo.byId("media_"+id).src = src;
    mediaLoaded[id] = setInterval("mediaCheckLoaded('"+id+"')", 50);
}*/
            
            //dojo.addOnLoad(showContent);
            
function mediaShowNext () {
    processRequest(mediaNextLink);
    return;
    //console.debug("(mediaShowNext) activeIndex", activeIndex);
    //console.debug("(mediaShowNext) nextIndex", nextIndex);
    if ("(mediaShowNext) CoursesIDs", navStore._arrayOfAllItems[nextIndex]) {
        if (navStore._arrayOfAllItems[activeIndex] == undefined) {
            processRequest("#"+navStore._arrayOfAllItems[nextIndex]["id"]);
        } else if (navStore._arrayOfAllItems[activeIndex]["CoursesID"][0] == navStore._arrayOfAllItems[nextIndex]["CoursesID"][0]) {
            //console.debug("equal", navStore._arrayOfAllItems[activeIndex]["CoursesID"][0], navStore._arrayOfAllItems[nextIndex]["CoursesID"][0]);
            processRequest("#"+navStore._arrayOfAllItems[nextIndex]["id"]);
        } else {
            //console.debug("unequal", navStore._arrayOfAllItems[activeIndex]["CoursesID"][0], navStore._arrayOfAllItems[nextIndex]["CoursesID"][0]);
            activeIndex = null;
            processRequest("#"+navStore._arrayOfAllItems[nextIndex]["CoursesID"][0]);
        }
        //mediaShowRestart();
    } else {
        mediaShowPause();
    }
}
function mediaShowPrev () {
    processRequest(mediaPrevLink);
    return;
    //console.debug("(mediaShowPrev) activeIndex", activeIndex);
    //console.debug("(mediaShowPrev) prevIndex", prevIndex);
    if (navStore._arrayOfAllItems[prevIndex]) {
        if (navStore._arrayOfAllItems[activeIndex] == undefined || navStore._arrayOfAllItems[activeIndex]["CoursesID"] == navStore._arrayOfAllItems[prevIndex]["CoursesID"]) {
            processRequest("#"+navStore._arrayOfAllItems[prevIndex]["id"]);
        } else {
            activeIndex = null;
            processRequest("#"+navStore._arrayOfAllItems[prevIndex]["CoursesID"]);
        }
        //mediaShowRestart();
    }
}

function mediaGetInfo (mediaID) {
    for (var index=0; index < navStore._arrayOfAllItems.length; index++) {
        if (mediaID == navStore._arrayOfAllItems[index]["id"]) {
            return navStore._arrayOfAllItems[index];
        }
    }
}
function projectGetInfo (projectID) {
    for (var index=0; index < navStore._arrayOfAllItems.length; index++) {
        if (projectID == navStore._arrayOfAllItems[index]["id"]) {
            return navStore._arrayOfAllItems[index];
        }
    }
}
var mediaTreeExpandedNode_treeID;
var mediaTreeExpandedNode_nodeID;
function mediaTreeExpandNode (type, id)
{
    if (type == "c") {
        navMainToggle("nav_main_"+type+id+"_cont");
        return true;
    }
    i = mediaGetInfo(type+id);
    cID = i["CoursesID"][0];
    pID = i["ProjectsID"][0];
    t = dijit.byId("tree_"+cID);
    navMainToggle("nav_main_"+cID+"_cont");
    var eNode = t._itemNodesMap[pID][0];
    //console.debug(t._itemNodesMap);
    if (!eNode) {
        return false;
    }
    if (mediaTreeExpandedNode_treeID != undefined && mediaTreeExpandedNode_nodeID != undefined) {
        tc = dijit.byId("tree_"+mediaTreeExpandedNode_treeID);
        if (tc._itemNodesMap[mediaTreeExpandedNode_nodeID] != undefined) {
            cNode = tc._itemNodesMap[mediaTreeExpandedNode_nodeID][0];
            cNode.tree._collapseNode(cNode);
        }
    }
    eNode.tree._expandNode(eNode);
    mediaTreeExpandedNode_treeID = cID;
    mediaTreeExpandedNode_nodeID = pID;
    dijit.scrollIntoView(eNode.domNode);
}

dojo.connect(document.body, "onkeydown", function(event){
    //console.debug("(onkeypress) event.keyCode:", event.keyCode);
    //console.debug("(onkeypress) dojo.keys.SPACE:", dojo.keys.SPACE);
    //console.debug("--", focusWhich);
    if (focusWhich == "searchtext") {
        return;
    }
    switch (event.keyCode) {
        case dojo.keys.LEFT_ARROW:
            mediaShowPrev();
            break;
        case dojo.keys.RIGHT_ARROW:
            mediaShowNext();
            break;
        case dojo.keys.SPACE:
        case dojo.keys.ENTER:
        case 0:
            if (mediaSlideshowID != undefined && mediaSlideshowID != 0) {
                //console.debug("(onkeypress) mediaSlideShowID:", mediaSlideshowID);
                mediaShowPause();
            } else if (mediaSlideshowID == undefined || mediaSlideshowID == 0) {
                //console.debug("(onkeypress) mediaSlideShowID:", mediaSlideshowID);
                mediaShowPlay();
            }
            break;
    }
});

var mediaPrevLink;
var mediaNextLink;
function mediaFindNeighbors (cType, cID)
{
    //console.debug("(mediaFindNeighbors) currentType/currentID", cType, cID);
    //console.debug("(mediaFindNeighbors) old nextIndex/next2Index", nextIndex, next2Index);
    //console.debug("(mediaFindNeighbors) old activeIndex", activeIndex);
    
    if (cType == "index") {
        mediaNextLink = "#"+navStore._arrayOfAllItems[0]["CoursesID"];
        mediaPrevLink = "#"+navStore._arrayOfAllItems[navStore._arrayOfAllItems.length-1]["id"];
        return true;
    }
    
    // find next Item
    //if (cType == "c" && nextIndex != undefined) {
        //nextIndex = next2Index;
    //} else {
        //console.debug("(mediaFindNeighbors) search for activeIndex");
        var found = false;
        activeIndex = null;
        nextIndex = null;
        next2Index = null;
        mediaNextLink = null;
        for (var index=0; index < navStore._arrayOfAllItems.length; index++) {
            if (found == true && nextIndex == undefined && (navStore._arrayOfAllItems[index]["type"] == "media")) {
                nextIndex = index;
                continue;
            }
            if (found == true && nextIndex != undefined && (navStore._arrayOfAllItems[index]["type"] == "media")) {
                next2Index = index;
                break;
            }
            if (cType == "c" && cType+cID == navStore._arrayOfAllItems[index]["CoursesID"] && navStore._arrayOfAllItems[index]["type"] == "media") {
                found = true;
                nextIndex = index;
            } else if (cType != "c" && cType+cID == navStore._arrayOfAllItems[index]["id"]) {
                found = true;
                activeIndex = index;
            }
        }
        //console.debug("(mediaFindNeighbors) found activeIndex:", activeIndex);
        //console.debug("(mediaFindNeighbors) found nextIndex/next2Index", nextIndex, next2Index);
        //console.debug("(mediaFindNeighbors) found active item", navStore._arrayOfAllItems[activeIndex]);
        //console.debug("(mediaFindNeighbors) found next item", navStore._arrayOfAllItems[nextIndex]);
    //}
    if (mediaShowRepeat == true && nextIndex == undefined) {
        nextIndex = 0;
    }
    if (navStore._arrayOfAllItems[nextIndex] != undefined) {
        if (navStore._arrayOfAllItems[activeIndex] == undefined
            ||
            navStore._arrayOfAllItems[activeIndex]["CoursesID"][0] == navStore._arrayOfAllItems[nextIndex]["CoursesID"][0]
        ) {
            mediaNextLink = "#"+navStore._arrayOfAllItems[nextIndex]["id"];
        } else {
            mediaNextLink = "#"+navStore._arrayOfAllItems[nextIndex]["CoursesID"];
        }
    }
    //console.debug("(mediaFindNeighbors) mediaNextLink:", mediaNextLink);
    if (!navStore._arrayOfAllItems[nextIndex]) {
        mediaShowStop();
    }
    
    
    // finde prev Item
    found = false;
    prevIndex = null;
    prev2Index = null;
    mediaPrevLink = null;
    for (var index=navStore._arrayOfAllItems.length-1; index>=0; index--) {
        if (found == true && prevIndex == undefined && (navStore._arrayOfAllItems[index]["type"] == "media")) {
            prevIndex = index;
            continue;
        }
        if (found == true && prevIndex != undefined && (navStore._arrayOfAllItems[index]["type"] == "media")) {
            prev2Index = index;
            break;
        }
        if (cType == "c" && prevIndex != undefined && navStore._arrayOfAllItems[prevIndex] && navStore._arrayOfAllItems[prevIndex]["CoursesID"][0] != navStore._arrayOfAllItems[index]["CoursesID"][0]) {
            found = true;
            prevIndex = index;
            //console.debug("(mediaFindNeighbors) found prevIndex", prevIndex);
            continue;
        }
            if (cType == "c" && cType+cID == navStore._arrayOfAllItems[index]["CoursesID"][0] && navStore._arrayOfAllItems[index]["type"] == "media") {
                prevIndex = index;
            } else if (cType != "c" && cType+cID == navStore._arrayOfAllItems[index]["id"]) {
                found = true;
                activeIndex = index;
            }
    }
    //console.debug("(mediaFindNeighbors) prevIndex/prev2Index", prevIndex, prev2Index);
    if (navStore._arrayOfAllItems[prevIndex] != undefined) {
        if (navStore._arrayOfAllItems[activeIndex] == undefined
            ||
            navStore._arrayOfAllItems[activeIndex]["CoursesID"][0] == navStore._arrayOfAllItems[prevIndex]["CoursesID"][0]
        ) {
            mediaPrevLink = "#"+navStore._arrayOfAllItems[prevIndex]["id"];
        } else {
            mediaPrevLink = "#"+navStore._arrayOfAllItems[activeIndex]["CoursesID"];
        }
    } else {
        if (navStore._arrayOfAllItems[activeIndex] != undefined
            ||
            cType != "c"
        ) {
            mediaPrevLink = "#"+navStore._arrayOfAllItems[activeIndex]["CoursesID"];
        } else if (cType == "c" && mediaShowRepeat == true) {
            //console.debug(navStore);
            mediaPrevLink = "#"+navStore._arrayOfAllItems[navStore._arrayOfAllItems.length-1]["id"];
        }
    }
    
    if (mediaPrevLink == mediaNextLink && mediaShowRepeat == false) {
        mediaPrevLink = null;
    } else if (mediaPrevLink == mediaNextLink && mediaShowRepeat == true) {
        mediaPrevLink = "#"+navStore._arrayOfAllItems[navStore._arrayOfAllItems.length-1]["id"];
    }
    //console.debug("(mediaFindNeighbors) mediaPrevLink:", mediaPrevLink);
    //console.debug("(mediaFindNeighbors) prevIndex/prev2Index", prevIndex, prev2Index);
    
}

function searchResFindFirst ()
{
    //console.debug("(searchResFindFirst) navStore length", navStore._arrayOfAllItems.length);
    for (var index=0; index < navStore._arrayOfAllItems.length; index++) {
        //console.debug("(searchResFindFirst)", navStore._arrayOfAllItems[index]["searchres"][0], navStore._arrayOfAllItems[index]);
        if (navStore._arrayOfAllItems[index]["searchres"][0] == true) {
            return navStore._arrayOfAllItems[index]["id"][0];
        }
    }
}
var searchPrevLink;
var searchNextLink;
var searchNextIndex;
var searchNext2Index;
var searchActiveIndex;
function searchresFindNeighbors (cID)
{
    cID = cID.replace(/^info_/g, "");
    //console.debug("(searchresFindNeighbors) currentID", cID);
    //console.debug("(searchresFindNeighbors) old searchNextIndex/searchNext2Index", searchNextIndex, searchNext2Index);
    //console.debug("(searchresFindNeighbors) old searchActiveIndex", searchActiveIndex);
    //console.debug("(searchresFindNeighbors) _arrayOfAllItems", navStore._arrayOfAllItems);
    
    if (cID == undefined || cID == "index" || search_nores == true) {
        searchNextLink = null;
        searchPrevLink = null;
        return true;
    }
    
    // find next Item
        //console.debug("(searchresFindNeighbors) search for searchActiveIndex");
        var searchFound = false;
        searchActiveIndex = null;
        searchNextIndex = null;
        searchNext2Index = null;
        searchNextLink = null;
            //console.debug("length", navStore._arrayOfAllItems.length);
        for (var index=0; index < navStore._arrayOfAllItems.length; index++) {
            //console.debug("index", index);
            //console.debug("item", navStore._arrayOfAllItems[index]);
            if (
                searchFound == true
                &&
                searchNextIndex == undefined
                &&
                (
                    navStore._arrayOfAllItems[index]["searchres"] != undefined
                    &&
                    navStore._arrayOfAllItems[index]["searchres"][0] == true
                    &&
                    navStore._arrayOfAllItems[index]["type"][0] != "media"
                )
            ) {
                searchNextIndex = index;
                //console.debug(searchNextIndex);
                continue;
            }
            if (
                searchFound == true
                &&
                searchNextIndex != undefined
                &&
                (
                    navStore._arrayOfAllItems[index]["searchres"] != undefined
                    &&
                    navStore._arrayOfAllItems[index]["searchres"][0] == true
                    &&
                    navStore._arrayOfAllItems[index]["type"][0] != "media"
                )
            ) {
                searchNext2Index = index;
                //console.debug(searchNext2Index);
                break;
            }
            if (cID == navStore._arrayOfAllItems[index]["id"][0]) {
                searchFound = true;
                searchActiveIndex = index;
                //console.debug(searchActiveIndex);
            }
        }
        //console.debug("(searchresFindNeighbors) found searchActiveIndex:", searchActiveIndex);
        //console.debug("(searchresFindNeighbors) found searchNextIndex/searchNext2Index", searchNextIndex, searchNext2Index);
        //console.debug("(searchresFindNeighbors) found search active item", navStore._arrayOfAllItems[searchActiveIndex]);
        //console.debug("(searchresFindNeighbors) found search next item", navStore._arrayOfAllItems[searchNextIndex]);
    
    if (searchNextIndex == undefined) {
        searchNextIndex = 0;
    }
    if (navStore._arrayOfAllItems[searchNextIndex] != undefined) {
        if (navStore._arrayOfAllItems[searchActiveIndex] == undefined
            ||
            navStore._arrayOfAllItems[searchActiveIndex]["CoursesID"][0] == navStore._arrayOfAllItems[searchNextIndex]["CoursesID"][0]
        ) {
            searchNextLink = "#"+navStore._arrayOfAllItems[searchNextIndex]["id"][0].replace(/^c/, "info_c");
        } else {
            searchNextLink = "#"+navStore._arrayOfAllItems[searchNextIndex]["CoursesID"][0].replace(/^c/, "info_c");
        }
    }
    //console.debug("(searchresFindNeighbors) searchNextLink:", searchNextLink);
    

    // finde prev Item
    searchFound = false;
    searchPrevIndex = null;
    searchPrev2Index = null;
    searchPrevLink = null;
    for (var index=navStore._arrayOfAllItems.length-1; index>=0; index--) {
            if (
                searchFound == true
                &&
                searchPrevIndex == undefined
                &&
                (
                    navStore._arrayOfAllItems[index]["searchres"] != undefined
                    &&
                    navStore._arrayOfAllItems[index]["searchres"][0] == true
                    &&
                    navStore._arrayOfAllItems[index]["type"][0] != "media"
                )
            ) {
                searchPrevIndex = index;
                continue;
            }
            
            if (
                searchFound == true
                &&
                searchPrevIndex != undefined
                &&
                (
                    navStore._arrayOfAllItems[index]["searchres"] != undefined
                    &&
                    navStore._arrayOfAllItems[index]["searchres"][0] == true
                    &&
                    navStore._arrayOfAllItems[index]["type"][0] != "media"
                )
            ) {
                searchPrev2Index = index;
                break;
            }
            
            if (cID == navStore._arrayOfAllItems[index]["id"][0] && searchFound != true) {
                searchFound = true;
                searchActiveIndex = index;
            } else if (cID == navStore._arrayOfAllItems[index]["id"][0] && searchFound == true) {
                break;
            }
            
            if (index == 0) {
                index = navStore._arrayOfAllItems.length-1
            }
    }
    if (navStore._arrayOfAllItems[searchPrevIndex]["id"][0].match(/^p/)) {
        searchPrevIndex = searchPrev2Index;
    }
    //console.debug("(searchresFindNeighbors) searchPrevIndex/searchPrev2Index", searchPrevIndex, searchPrev2Index);
    if (navStore._arrayOfAllItems[searchPrevIndex] != undefined) {
        if (navStore._arrayOfAllItems[searchActiveIndex] == undefined
            ||
            navStore._arrayOfAllItems[searchActiveIndex]["CoursesID"][0] == navStore._arrayOfAllItems[searchNextIndex]["CoursesID"][0]
        ) {
            searchPrevLink = "#"+navStore._arrayOfAllItems[searchPrevIndex]["id"][0].replace(/^c/, "info_c");
        } else {
            searchPrevLink = "#"+navStore._arrayOfAllItems[searchPrevIndex]["CoursesID"][0].replace(/^c/, "info_c");
        }
    }
    //console.debug("(searchresFindNeighbors) searchPrevLink:", searchPrevLink);
    //console.debug("(mediaFindNeighbors) prevIndex/prev2Index", prevIndex, prev2Index);
    
}
function searchresMakeButtons (search)
{
    if (search == true) {
        //console.debug("searchNextLink", searchNextLink);
        //console.debug("searchPrevLink", searchPrevLink);
        if (searchNextLink != undefined) {
            dojo.style("search_BtnNext", "display", "block");
            dojo.style("search_BtnNextInactive", "display", "none");
        } else if (searchNextLink == undefined) {
            dojo.style("search_BtnNext", "display", "none");
            dojo.style("search_BtnNextInactive", "display", "inline");
        }
        
        if (searchPrevLink != undefined) {
            dojo.style("search_BtnPrev", "display", "block");
            dojo.style("search_BtnPrevInactive", "display", "none");
        } else if (searchPrevLink == undefined) {
            dojo.style("search_BtnPrev", "display", "none");
            dojo.style("search_BtnPrevInactive", "display", "inline");
        }
    } else {
            dojo.style("search_BtnNext", "display", "none");
            dojo.style("search_BtnNextInactive", "display", "none");
            dojo.style("search_BtnPrev", "display", "none");
            dojo.style("search_BtnPrevInactive", "display", "none");
    }
}
function searchShowNext () {
    processRequest(searchNextLink);
    return;
}
function searchShowPrev () {
    processRequest(searchPrevLink);
    return;
}

function mediaTreeCollapseAll (branches)
{
    if (branches === undefined) {      
        for (k=0; k<treeNodeIDs.length; k++) {
            myTree = dijit.byId("tree_c"+treeNodeIDs[k]);
            branches = myTree.getChildren();
            var branch;
            for (var i = 0; i<branches.length; i+=1){
                branch = branches[i];       
                mediaTreeCollapseAll(branch.getChildren());
                myTree._collapseNode(branch);
            }
        }
    } else {
        var branch;
        for (var i=0; i<branches.length; i+=1){
           branch = branches[i];       
           mediaTreeCollapseAll(branch.getChildren());
           myTree._collapseNode(branch);
        }
    }
}



            
dojo.extend(dijit.Tree, {
    refresh: function() {
        this._itemNodeMap = {};
        this.model.root = null;
        if (this.rootNode) { 
            this.rootNode.destroyRecursive();
        }
        this._load();
    }
});


function blockEnter (evt) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13) {
        return false;
    } else {
        return true;
    }
}

var keyUpTimeoutID = null;
function doSearch (queryString) {
    //loadStore(queryString);
    //var navStore = new dojo.data.ItemFileWriteStore({url:'search.php?query='+dojo.byId('searchtext').value});
    if (keyUpTimeoutID != undefined) {
        clearTimeout(keyUpTimeoutID);
        keyUpTimeoutID = null;
    }
    keyUpTimeoutID = setTimeout(function () {
            if (dojo.byId('searchtext').value == '') {
                dojo.style('searchreset', 'display', 'none');
            } else {
                dojo.style('searchreset', 'display', 'inline');
            }
            refreshTrees();
        },
        500);
    return false;
}

//var treeFinishedProcessed = false;
//var treeFinishedIDs = new Array;
var treeNodeIDsToLoad;
var search_nores = true;
function refreshTrees () {
    //treeFinishedProcessed = false;
    st = dojo.byId("searchtext").value;
    navStore = new dojo.data.ItemFileWriteStore({url:'search.php?query='+st});
    searchQuery = st;
    //console.debug("st", "."+st+".", typeof st);
    //console.debug(dojo.byId("nav_main_nmt"));
    if (st == "" && dojo.byId("nav_main_nmt")) {
        dojo.style("nav_main_nmt", "display", "block");
    } else if (dojo.byId("nav_main_nmt")) {
        dojo.style("nav_main_nmt", "display", "none");
    }
    //console.debug(navStore);
    //console.debug(navStore._arrayOfAllItems);
    //console.debug(navStore._arrayOfTopLevelItems);
    
    //console.debug("(refreshTrees) searchQuery", searchQuery);
    if (searchQuery != undefined && searchQuery != "") {
        search_nores = true;
        //console.debug("(refreshTrees) search_nores", search_nores);
    } else {
        search_nores = false;
        //console.debug("(refreshTrees) search_nores", search_nores);
    }
    
    //console.debug("(refreshTrees) treeNodeIDs", treeNodeIDs);
    treeNodeIDsToLoad = dojo.clone(treeNodeIDs);
    for (var i in treeNodeIDs) {
        var cId = treeNodeIDs[i];
        widgetId = 'tree_c'+cId;
        parentId = 'nav_main_c'+cId+'_content';
        
        if(dijit.byId(widgetId)){ 
         dijit.byId(widgetId).destroyRecursive();//Enter the tree widget ID 
        } 
        //To create a forest store model
        var navModel = new dijit.tree.ForestStoreModel({ 
            store: navStore, 
            query: {CoursesID:'c'+cId, nottype:'course'},//You might have to specify your custom query parameter here 
            rootId: "root", 
            rootLabel: "Categories", 
            childrenAttr: "children" 
        });
        
        //treeFinishedIDs[widgetId] = false;
        //To create a tree widget again with model properties and a new widget id
        var tree = new dijit.Tree({ 
            id: widgetId, 
            model: navModel, 
            childrenAttr: "children",
            showRoot: false,
            persist: true,
            onLoad: function() {
             cID = this.model.query.CoursesID;
             if (this.rootNode.hasChildren() == true) {
                dojo.style("nav_main_"+cID+"_content_title", "display", "block");
                //dojo.style("nav_main_"+cID+"_cont", "display", "block");
                search_nores = false;
                //console.debug("(refreshTrees) hasChildren/search_nores", search_nores);
             } else {
                dojo.style("nav_main_"+cID+"_content_title", "display", "none");
                //dojo.style("nav_main_"+cID+"_cont", "display", "none");
                //console.debug("(refreshTrees) has no Children");
             }
             //console.debug("(refreshTrees) search_nores", search_nores);
             /*treeFinishedIDs[widgetId] = true;
             
             allTreesFinished = true;
             // check if all trees are loaded
             for (var i=0; i<treeFinishedIDs.length; i++) {
                if (treeFinishedIDs[i] == false) {
                    allTreesFinished = false;
                }
             }
             //console.debug(treeFinishedProcessed);
             if (treeFinishedProcessed == false && allTreesFinished == true) {*/
             
             // Tree cID fertig geladen, deswegen aus "zu laden"-Liste entfernen
             //console.debug("cID", cID);
             for (k in treeNodeIDsToLoad) {
                if ("c"+treeNodeIDsToLoad[k] == cID) {
                   treeNodeIDsToLoad.splice(k, 1);
                }
             }
             //console.debug("treeNodeIDsToLoad", treeNodeIDsToLoad);
             if (treeNodeIDsToLoad.length == 0) {
                //console.debug("showContent");
                //treeFinishedProcessed = true;
                
                // show/hide search error message ("no result")
                //console.debug("(refreshTrees) (treeFinishedProcessed) search_nores", search_nores);
                if (search_nores == true) {
                    dojo.style("search_nores", "display", "block");
                } else {
                    dojo.style("search_nores", "display", "none");
                }
                
                //console.debug("(treeFinished) searchQuery", searchQuery);
                if (searchQuery == undefined || searchQuery == "") {
                    showContent();
                    return;
                }
                tID = searchResFindFirst();
                //console.debug("(searchResFindFirst) tID", tID);
                
                //if (tID != undefined) {
                    // Typ und ID trennen
                    var Suche = /^(\D+)(\d*)$/;
                    var Ergebnis = Suche.exec(tID);
                    //console.debug("(searchResFindFirst) Ergebnis", Ergebnis);
                    if (Ergebnis[0] == "undefined") {
                        processRequest("#index");
                        return false;
                    }
                    type = Ergebnis[1];
                    ID = Ergebnis[2];
                    
                    // if type == course, show course info page, else show project page
                    if (type == "c") {
                        type = "info_c";
                    }
                    processRequest("#"+type+ID);
                //} else {
                //    processRequest("#index");
                //    return false;
                //}
                
             }
            },
            _createTreeNode: function(args) {
                //console.debug("barttt");
              var tnode = new dijit._TreeNode(args);
              tnode.labelNode.innerHTML = args.label;
              return tnode;
            }
        },dojo.byId(widgetId)); 
        
        //This is the target div element under which you want to add the entire tree       
        var block = dojo.byId(parentId); 
        block.appendChild(tree.domNode);
        
        //dojo.connect(tree, "getLabelClass", function (item) { return(item && item.active && item.active == "yes" ? "active" : ""); });
        /*tree.getLabelClass = function (item) {
                return(item && item.active && item.active == "yes" ? "active" : "");
            };*/
        /*dojo.connect(tree, "_setLabelNodeAttr", function (label) {
                console.debug("fooooooß");
                this.labelNode.innerHTML = label;
            }
            );*/
        /*tree.prototype.setLabelNode = function (label) {
                this.labelNode.innerHTML = label;
            };*/
        
        tree.startup();
        //console.debug(tree);
      
    } // end for
    
} // end function refreshTrees
