var keywords = {};

function populateList( path, nodeID )
{
    var pathLen = path.length;

    if ( nodeID != -1 )
    {
        var elementToClean = document.getElementById( 'keywords-' + pathLen );
        if ( elementToClean )
        {
            elementToClean.innerHTML = '';
        }
    }

    if ( !nodeID )
    {
        return;
    }

    var formElement = document.forms['SearchForm']['Keyword[' + pathLen + ']'];
    if ( formElement )
    {
        for ( var index = 0; index < formElement.length; index++ )
        {
            if ( formElement[index].value == nodeID )
            {
                formElement.selectedIndex = index;
                break;
            }
        }
    }

    var level = pathLen + ( ( nodeID == -1 )? 0: 1 );
    var children = keywords;
    var html = '<select name="Keyword[' + level + ']" onchange="populateList( [';
    for ( var i = 0; i < pathLen; i++ )
    {
        children = children[path[i]].children;
        html += path[i] + ', ';
    }

    if ( nodeID != -1 )
    {
        children = children[nodeID].children;
        html += nodeID;
    }

    if ( !children )
    {
        return;
    }

    html += '], this.value )">';
    html += '<option value="">Velg:</option>';
    var count = 0;
    for ( var childID in children )
    {
        html += '<option value="' + childID + '">' + children[childID].name + '</option>';
        count++;
    }

    if ( !count )
    {
        return;
    }

    html += '</select> <span id="keywords-' + level + '"></span>';

    if ( nodeID != -1 )
    {
        document.getElementById( 'keywords-' + pathLen ).innerHTML = html;
    }
    else
    {
        document.getElementById( 'keywords' ).innerHTML = html;
    }
}

