function Navigation() {
    
    function display(e) {
        e = window.event || e;
        var elm = Event.element(e);     
        if (elm.id == 'switchNG') {
            Element.hide('bmarks');
            Element.show('navbar');
        } else {
            Element.hide('navbar');
            Element.show('bmarks');
        }
        Event.element(e).blur();
        Event.stop(e);
    }
        
    function replaceButton(button, linkId, label, title) {
        var link = document.createElement('a');     
        link.appendChild(document.createTextNode(label));
        link.href = '#';
        link.title = title;
        link.id = linkId;
        link.onclick = clickButton;
        button.style.display = 'none';
        button.parentNode.insertBefore(link, button);
    }
    
    function clickButton(e) {
        e = window.event || e;
        var button = Sibling.next(Event.element(e));
        button.click();
        Event.stop(e);
    }
    
    // Safari will bubble events if we don't assign this way
    $('switchNG').onclick = display;
    $('switchBM').onclick = display;
    
    Element.hide('bmarks'); 
    
    replaceButton($('find_button'), 'find', 'Find', 'Search the weblog');
    if ($('post_preview_button')) {
        replaceButton($('post_preview_button'), 'post_preview', 'Preview Comment', 
                'Preview Comment');
    }
    
    if ($('post_submit_button')) {
        replaceButton($('post_submit_button'), 'post_submit_comment', 
            'Submit Comment', 'Submit Comment');
    }
    
    if ($('post_submit_message')) {
        replaceButton($('post_submit_message'), 'post_submit_message',
            'Submit Message', 'Submit Message');
    }
    
    Event.observe('post_search', 'focus', function(e) {
        $('post_search').select();
    });
}

var Sibling = {
    previous : function(elm) {
        var s = elm.previousSibling;
        while (s && s.nodeType == 3)
            s = s.previousSibling;
        return s;
    }, 
    next : function(elm) {
        var s = elm.nextSibling;
        while (s && s.nodeType == 3)
            s = s.nextSibling;
        return s;       
    }
};