function chooseLexer(link) {
    var lexer = parseLexer($(link).attr('class'));
    $('.lexers a').removeClass('selected');

    if (!$('.lexers .lexer-' + lexer).length) {
        var item = $('.lexer-template').clone();
        item.removeClass('lexer-template').addClass('lexer-' + lexer);
        $('.more-box').append(item);
        item.text($(link).text());
        item.show();
    }
    $('.lexer-' + lexer).addClass('selected');
    $('#id_lexer').val(lexer);
    $('.more-lexers').hide();
}

function toggleMoreList() {
    $('.more-lexers').toggle();
    if ($('.more-lexers').css('display') == 'block') {
        setTimeout(function() {window.moreListVisible = true;});
    } else {
        window.moreListVisible = false;
    }
}

function parseLexer(data) {
    return data.match(/lexer-[-_a-z0-9]+/).toString().replace(/lexer-/, '');
}

$(document).keyup(function(event) {
    if (event.keyCode == 27) {
        $('.more-lexers').hide();
    }
});

$('*').click(function() {
    var lexers = $('.more-lexers');
    if (window.moreListVisible) {
        lexers.hide();
    }
    window.moreListVisible = false;
});
