var browseable = new Array(21);
var browseableLinks = new Array(21);

browseable[0] = 'bibliographicArchives';
browseable[1] = 'bibliographicAuthors';
browseable[2] = 'bibliographicKeywords';
browseable[3] = 'bibliographicPlaceOfPublication';
browseable[4] = 'bibliographicPublicationYear';
browseable[5] = 'bibliographicPublisher';
browseable[6] = 'bibliographicSeries';
browseable[7] = 'bibliographicShortTitle';
browseable[8] = 'bibliographicTitle';
<!--biographic index-->
browseable[9] = 'biographicArchives';
browseable[10] = 'biographicNames';
browseable[11] = 'biographicGenders';
browseable[12] = 'biographicOccupations';
browseable[13] = 'biographicCountries';
browseable[14] = 'biographicYearsBirth';
browseable[15] = 'biographicYearsDeath';
browseable[16] = 'biographicYearsCited';
browseable[17] = 'biographicYearsAll';
browseable[18] = 'biographicShortTitles';
browseable[19] = 'biographicOccupationClassifications';
browseable[20] = 'history';

browseableLinks[0] = 'indexbrowser.jsf?';
browseableLinks[1] = 'indexbrowser.jsf?';
browseableLinks[2] = 'indexbrowser.jsf?';
browseableLinks[3] = 'indexbrowser.jsf?';
browseableLinks[4] = 'indexbrowser.jsf?';
browseableLinks[5] = 'indexbrowser.jsf?';
browseableLinks[6] = 'indexbrowser.jsf?';
browseableLinks[7] = 'indexbrowser.jsf?';
browseableLinks[8] = 'indexbrowser.jsf?';
<!--biographic index-->
browseableLinks[9] = 'indexbrowser.jsf?';
browseableLinks[10] = 'indexbrowser.jsf?';
browseableLinks[11] = 'indexbrowser.jsf?';
browseableLinks[12] = 'indexbrowser.jsf?';
browseableLinks[13] = 'indexbrowser.jsf?';
browseableLinks[14] = 'indexbrowser.jsf?';
browseableLinks[15] = 'indexbrowser.jsf?';
browseableLinks[16] = 'indexbrowser.jsf?';
browseableLinks[17] = 'indexbrowser.jsf?';
browseableLinks[18] = 'indexbrowser.jsf?';
browseableLinks[19] = 'occupationClassification.html';
browseableLinks[20] = 'history-browse.jsf?';

var currentIndex = 0;

function updateBrowse(selectedValue, index, baseinputname, basedivname, linkbasename, indexname, language) {
    var input = document.getElementById(baseinputname + index);
    var div = document.getElementById(basedivname + index);
    var link = document.getElementById(linkbasename + index);
    if (div != null) {
        div.style.display = 'none';
        for (var i = 0; i < browseable.length; i++) {
            if (browseable[i] == selectedValue) {
                div.style.display = '';
                var url = browseableLinks[i] + "index=" + indexname + '&field=' + selectedValue;
                if (i == 19) url = 'language/' + language + '/html/occupationClassification.html';
                url = "javascript:openpopup(\'" + url + "\', false, 800,700);";
                link.href = url;
                return;
            }
        }
    }
}
function activateLink(index, baseinputname, baseselectname, basedivname, baselinkname, indexname, language) {
    var select = document.getElementById(baseselectname + index);
    if (select != null) {
        updateBrowse(select.value, index, baseinputname, basedivname, baselinkname, indexname, language);
    }
}

function updateSearchText(value) {
    var input = opener.document.getElementById('mainForm:browse_input_' + opener.currentIndex);
    if (input == null) {
        alert("Could not update input with id=browse_input" + currentIndex);
    } else {
        input.value = value;
    }
}

function updateBrowseField(classname, inputbasename) {
    var input = opener.document.getElementById(inputbasename + opener.currentIndex);
    var radio = getElementsByClass(classname);
    if (radio != null && radio.length > 0 && input != null) {
        input.value = "";
        var value = "";
        for (i = 0; i < radio.length; i++) {
            value = value + '"' + radio[i].innerHTML.replace(/\"/g, '') + '" OR ';
        }
        value = value.substring(0, value.lastIndexOf(' OR '));
        input.value = value;
    }
    window.close();

}
function updateHistoryField(classname, inputbasename) {
    var input = opener.document.getElementById(inputbasename + opener.currentIndex);
    var radio = getElementsByClass(classname);
    if (radio != null && radio.length > 0 && input != null) {
        input.value = "";
        for (i = 0; i < radio.length; i++) {
            if (radio[i].checked) input.value = radio[i].value;
        }
    }
    window.close();
}

function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    var i = 0;
    var j = 0;
    for (i = 0,j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
