var userlang = "ENGLISH";
var langkey = {"en":"ENGLISH","de":"GERMAN","fr":"FRENCH"};
var debug = true;

function DoLang(lang) {
    try {
        userlang = langkey[lang];
        var dt = new Date;
        set_cookie("userlang",userlang,dt.getFullYear()+10,dt.getMonth(),dt.getDate(), "/");

        // alert(dt.getFullYear()+10);
        domenu();
    }
    catch(e) {DoError(e);}
}

function domenu() { 
    var ndMenu;
    var lang;
    var ndCurrent;
    var id;
    var ulang;
    try {
        ulang = get_cookie("userlang");
        if(ulang) userlang = ulang;
        // alert(ulang);
        for(lang in langkey) {
            id = "menuList_" + langkey[lang];
            ndCurrent = document.getElementById(id)
            if(!ndCurrent) InitMenus();
        }
        removeCurrentMenu()
        for(lang in langkey) {
            if(langkey[lang] == userlang) {
                id = "menuList_" + langkey[lang];
                if(ndCurrent = document.getElementById(id)) {
                    ndCurrent.style.display = "block";
                    document.getElementById("chromemenu").appendChild(ndCurrent);
                }
                else {
                    throw("Could not find " + id);
                }
            }
        }
    }
    catch(e) {DoError(e);}
    doconent();
}

function doconent() {
    var content;
    var i;
    try{
        for(lang in langkey) {
            content = getElementsByClassName(langkey[lang],"div");
            if(langkey[lang] == userlang) {
                for(i=0; i < content.length; i++) {
                    content[i].style.display = "block";
                }
            }
            else {
                for(i=0; i < content.length; i++) {
                    content[i].style.display = "none";
                }
            }
        }
    }
    catch(e) {}}

function InitMenus() {
    try {
        var cat_menu_links = getElementsByClassName("cat_menu_link","a");
        var cont;
        for(var i=0; i < cat_menu_links.length; i++) {
            if(cat_menu_links[i].nextSibling.nextSibling && cat_menu_links[i].nextSibling.nextSibling.tagName == "UL") {
                langtext = cat_menu_links[i].innerHTML + '';
                cat_menu_links[i].nextSibling.nextSibling.id = "menuList_" + langtext;
                cat_menu_links[i].id = "menuLang_" + langtext;
                if(langtext == userlang) {
                    cat_menu_links[i].nextSibling.nextSibling.style.display = "block";
                    document.getElementById("chromemenu").appendChild(cat_menu_links[i].nextSibling.nextSibling);
                }
                else {
                    cat_menu_links[i].style.display = "none";
                    cat_menu_links[i].nextSibling.nextSibling.style.display = "none";
                }
            }
        }
        document.getElementById("nav_categories").style.display = "none";
        document.getElementById("MenuContainer").style.display = 'block';
    }
    catch(e) {DoError(e);}
}

function removeCurrentMenu() {
    var ndCurrent;
    var ndAnchor;
    var outList;
    var inAnchor;
    var id;
                                    // yank the current menu and put it 
                                    // away in the heirachy stash
    for(var lang in langkey) {
        id = "menuList_" + langkey[lang];
        if(ndCurrent = document.getElementById(id)) {
            if(ndCurrent.parentNode.id == "chromemenu") {
                ndAnchor = document.getElementById("menuLang_" + langkey[lang]);
                ndAnchor.parentNode.appendChild(ndCurrent);
            }
        }
    }
}

function getElementsByClassName(CN,tagName) {
    var ndElements = [];
    var n = 0;
    try {
        var ndTags = document.getElementsByTagName(tagName);
        for(var i=0; i < ndTags.length; i++) {
            if(ndTags[i].className) {
                if(ndTags[i].className == CN) ndElements[n++] = ndTags[i];
            }
        }
    }
    catch(e) {DoError(e)}
    finally {
        return ndElements;
    }
}

function DoError(e) {
    if(debug) {
        if(typeof console != "undefined" && typeof console.error != "undefined") {console.error(e);}
        else {alert(e);}
    }
}

function loadall() {
    try{domenu();}
    catch(e){DoError(e);}
    try{
        if(typeof mainmap != "undefined") mainmap();
    }
    catch(e) {DoError(e);}
}
function unloadall() {
    try{
        if(typeof gunload != "undefined") gunload();
    }
    catch(e) {DoError(e);}
}
onload = loadall;
onunload = unloadall;
