$(document).ready(function(){

    createSubNavLinksLeft();
    
    var checkboxes = $('table.search-results :checkbox');
    checkboxes.change(function(){
        highlightCheckedItemRow($(this));
    });
    checkboxes.click(function(){
        highlightCheckedItemRow($(this));
    });
    checkboxes.change();
    
if (cookieEnabled){
    loadFavouriteIcons();
    }

    $('table.search-results td.tdtext').addClass('js-link');
    $('table.search-results td.tdtext').click(function(){
        var rowLink = $('a', $(this).siblings('td')).slice(0,1).attr('href');
        self.location.href = rowLink;
    });

});

function highlightCheckedItemRow(checkbox) {
    var tableRow = checkbox.parent().parent();
    if (checkbox.is(':checked')) {
        tableRow.addClass('checked');
    } else {
        tableRow.removeClass('checked');
    }
}

function createSubNavLinksLeft() {
    var subNavLinks = $('.sub-nav-links');
    // var subNavLinksLeft = $('<div class="sub-nav-links-left results-sub"></div>');
    var subNavLinksLeft = $('.sub-nav-links-left', subNavLinks);

    var selectAll = $('<a class="select-results-switch" href="javascript:void(0);" title="Select all items on this page">All</a>');
    selectAll.click(function(){
        $('table.search-results :checkbox').attr('checked', 'checked').change();
    });
    
    var selectNone = $('<a class="select-results-switch" href="javascript:void(0);" title="De-select all items on this page">None</a>');
    selectNone.click(function(){
        $('table.search-results :checkbox').removeAttr('checked').change();
    });
    
    var subNavButtons = $('<div class="sub-nav-buttons"></div>');
    //var subNavButtons = $('.sub-nav-buttons', subNavLinksLeft);

    var addToFavourites = $('<input type="button" class="add-to-favorites" value="Add to favourites"/>');
    addToFavourites.click(function(){    
        addItemsFav(document.searchResultsForm);
        loadFavouriteIcons();
        updateMyFavouritesCount();
        flashNotice('Selected items have been added to your favourites.');
    });
    
    var compareItems = $('<input type="button" value="Compare"/>');
    compareItems.click(function(){
        var checkedBoxes = $('table.search-results :checkbox').filter(':checked');
        if (checkedBoxes.length != 2) {
            alert('Select two items to compare.');
        } else {
            var href1 = $('a', checkedBoxes.slice(0,1).parent().siblings('td')).attr('href');
            var href2 = $('a', checkedBoxes.slice(1,2).parent().siblings('td')).attr('href');
            var compoundRegex = /\/document\//;
            if (compoundRegex.test(href1) || compoundRegex.test(href2)) {
                alert('You can not compare compound objects. Please select two non-compound objects instead.');
            } else {
                var item1 = getItemInfoFromUrl(href1);
                var item2 = getItemInfoFromUrl(href2);
                location.href = ww1_cdm4_url + 'compare_ptrs.php?alias1='+item1['alias']+'&ptr1='+item1['ptr']+'&alias2='+item2['alias']+'&ptr2='+item2['ptr'];
            }
        }
    });
    
    subNavButtons.prepend('With selected: ')
    subNavButtons.append(addToFavourites);
    //$('.add-to-favorites', subNavButtons).replaceWith(addToFavourites);
    subNavButtons.append(compareItems);
        
    subNavLinksLeft.prepend(selectNone);
    subNavLinksLeft.prepend(', ');
    subNavLinksLeft.prepend(selectAll);
    subNavLinksLeft.prepend('Select: ');
    
    subNavLinksLeft.append(subNavButtons);
        
    // subNavLinks.prepend(subNavLinksLeft);
}

function loadFavouriteIcons() {
    $('table.search-results :checkbox').each(function(){
        var oldIcon, newIcon;

        var item = getItemInfoFromUrl($('a', $(this).parent().siblings('td')).attr('href'));

        newIcon = createFavouriteIcon(item['alias'], item['ptr']);
        
        oldIcon = $(this).siblings('img.favourite-icon');
        if (oldIcon.length > 0) {
            if (newIcon.attr('src') != oldIcon.attr('src')) {
                oldIcon.replaceWith(newIcon);
            }
        } else {
            $(this).after(newIcon);
        }
    });
}  

