window.onload = function() {
    if (! document.getElementById) {
        return;
    }

    // Invite the user to use the search box
    //
    //   Expects        Appends
    //  -------------- --------------------------
    //   #sitesearch
    //     ANYTHING
    //       input      .input[not]started
    
    var search_input = document.getElementById('sitesearch').getElementsByTagName('input')[0];
    if (search_input) {
        if (! search_input.value) {
            search_input.value = 'Search...';
            search_input.className = 'inputnotstarted';
            search_input.onfocus = function() {
                search_input.value = '';
                search_input.onfocus = function() { return true; };
                search_input.className = 'inputstarted';
                return true;
            };
        }
    }

    // Establish the Related Sites foldie
    //
    //  Expects static      Dynamic state
    // -----------------   --------------------
    //   li                 li.jstoggle.jstoggled{open,closed}
    //     inline#linksctrl   a
    //                          inline#linksctrl
    //     ul                 ul.js{,not}hidden
    //       bar                bar
    
    var links_elt = document.getElementById('linksctrl')
    if (links_elt && document.createElement) {
        var links_a = document.createElement('a');
        if (links_a) {
            var container_li = links_elt.parentNode;
            var links_ul = container_li.getElementsByTagName('ul')[0];
            links_ul.className = 'jshidden';
            container_li.className = 'jstoggle jstoggledclosed'
            links_a.onclick = function() {
                if (links_ul.className == 'jshidden') {
                    links_ul.className = 'jsnothidden';
                    container_li.className = 'jstoggle jstoggledclosed';
                }
                else {
                    links_ul.className = 'jshidden';
                    container_li.className = 'jstoggle jstoggledopen';
                }
                return false;
            };
            container_li.replaceChild(links_a, links_elt);
            links_a.appendChild(links_elt);
            links_a.setAttribute('href', '#');
        }
    }


    /* Apply styling classes to some of the links in the sidebar */

    var sitenav_div = document.getElementById('sitenav');
    if (sitenav_div) {
        var link_decs_tbl = [
            [/\/home\/?$/, 'jshome'],
            [/\/introduction\/?$/, 'jsintro'],
            [/\/findings\/?$/, 'jsfindings'],
            [/\/publications\/$/, 'jspublications'],
            [/\/staff\/$/, 'jsstaff'],
            [/\/faq\/$/, 'jsfaq'],
            [/\/contacts\/$/, 'jscontacts'],
            [/\/methods\/$/, 'jsmethods'],
            [/\/findings-europe\/$/, 'jsfindingseurope'],
            [/\/thanks\/$/, 'jsthanks'],
            [/\/europe\/$/, 'jseucollab'] /* no trailing comma, stupid IE */
        ];
        var li_list = sitenav_div.getElementsByTagName('li');
      menu_li:
        for (var i=0; i<li_list.length; ++i) {
            var link_a_list = li_list[i].getElementsByTagName('a')
            if (! link_a_list) 
                continue;
            for (var j=0; j<link_a_list.length; ++j) {
                var link_a = link_a_list[j];
                if (! link_a)
                    continue;
                var link_a_href = link_a.getAttribute('href');
                if (! link_a_href)
                    continue;
                for (var k=0; k<link_decs_tbl.length; ++k) {
                    var regex = link_decs_tbl[k][0];
                    if (! link_a_href.match(regex))
                        continue;
                    var classname = link_decs_tbl[k][1];
                    li_list[i].className = classname;
                    continue menu_li;
                }
            }
        }
    }

    // alert(search_input);

    return true;
};

