// Suchstrategie: erst wird die DocID direkt gesucht,
// Dann der erste passende Parent. Der gefundene Eintrag bestimmt die
// Farbe.
// DocUNID~~classsuffix~~farbcode
//   or
// PageTag~~classsuffix~~farbcode
//
// Die `farbcode' werden aktuell nicht benutzt, duerfen also leer sein.
var colordbstr = new Array(
    // Home and default
    'A3A87FA1E4050AC9C1256A08003503C3~~default~~#04456f',
    // Showcases
    'DA18DB035F1CA088C12572910047BCC3~~showcases~~#1c574b',
    // Unternehmen
    '6E3874242FAD6146C1256CE20046D489~~unternehmen~~#509400',
    // Know How
    'BE5472DC0429D313C1256E28005584E5~~knowhow~~#de7700',
    // Referenzen
    'F913A68761935723C1256CE200461C1F~~referenzen~~#940000',
    // Podcast
    'EE62CE0224613008C1257237004DE3DD~~podcast~~#4482b3',
    // Newsletter
    '9E2BEBF20A3378E8C125728D006ABE94~~newsletter~~#364379',
    // Flash-Seiten
    'FlashPage~~referenzen~~#940000',
    // Video-Seiten
    'VideoPage~~referenzen~~#940000'
    );

// Default color item
var defaultcolorunid = 'A3A87FA1E4050AC9C1256A08003503C3';
// empty object, map from UNID to [classsuffix, rgbcode]
var colordb = {};

function initColorDb() {
    var els;
    for (var j=0; j<colordbstr.length; j++) {
        els = colordbstr[j].split('~~');
        colordb[els[0]] = {classsuffix:els[1], rgbvalue:els[2]};
    }
}
initColorDb();

function getDefaultColorObject() {
    return colordb[defaultcolorunid];
}

function getColorObjectByUNID(docunid) {
    var nextunid;
    // erst direkt suchen
    if (docunid in colordb)
        return colordb[docunid];
    // sonst passenden parent suchen
    // vgl. auch getPathinfo in navigator.js
    var thismenu = getMenuEntryID(docunid, 'menu');
    var thisentry = getMenuEntryID(docunid, 'entry');
    
    while ((thismenu != -1) && (thisentry != -1)) {
        nextunid = entryGet(thismenu, thisentry, 'docID');
        if (nextunid in colordb)
            return colordb[nextunid];
        thisentry = getParent(thismenu, thisentry);
    }
    return getDefaultColorObject();
}

function getColorObjectByPageTag(pagetag) {
    var nextunid;
    // erst direkt suchen
    if (pagetag in colordb)
        return colordb[docunid];
    else
        return getDefaultColorObject();
}

function getColorObjectByMenuIDs(menuid, entryid) {
    while ((menuid != -1) && (entryid != -1)) {
        nextunid = entryGet(menuid, entryid, 'docID');
        if (nextunid in colordb)
            return colordb[nextunid];
        entryid = getParent(menuid, entryid);
    }
    return getDefaultColorObject();    
}
