Event.observe(window, 'load', function(){
    if ($('savedhistory_remove_item'))
    {
        $('savedhistory_remove_item').observe('click', function(e){
            var e = e || window.event;
            Event.stop(e);
            var params = {'action': 'remove', 'items[]': []};
            var i = 0;
            var inputs = $('saved-items').getElementsByTagName('input');
            for (var ii = 0; ii < inputs.length; ii++)
            {
                if (inputs[ii].type == 'checkbox' && inputs[ii].checked)
                {
                    params['items[]'][i++] = inputs[ii].value;
                }
            }

            var ajax =  new Ajax.Request('/ajax/history.php', {
                method: 'post',
                parameters: params,
                onSuccess: function(transport){
                    var result_obj = transport.responseText.evalJSON();
                    for (var n in result_obj)
                    {
                        if (result_obj.hasOwnProperty(n))
                        {
                            var checkbox = $('remove_'+result_obj[n]);
                            if (checkbox)
                            {
                                checkbox.parentNode.parentNode.parentNode.removeChild(checkbox.parentNode.parentNode);
                            }
                        }
                    }
                    var rows = $('oddEvenTable').tBodies[0].rows;
                    for (var i = 0; i < rows.length; i++)
                    {
                        rows[i].setAttribute('class', (i % 2 ? 'even' : 'odd'));
                    }
                },
                onFailure: function(){
                    alert('Could not delete the marked items');
                }
            });
        });
    }
    if ($('clear-today-button'))
    {
        $('clear-today-button').observe('click', function(e){
            clearhistory('today');
            Event.stop(e || window.event);
        });
    }
    if ($('clear-recent-button'))
    {
        $('clear-recent-button').observe('click', function(e){
            clearhistory('recent');
            Event.stop(e || window.event);
        });
    }

    var clearhistory = function(part){
        var ajax = new Ajax.Request('/ajax/history.php', {
            method:  'post',
            parameters: {'action': 'removehistory', 'part': part},
            onSuccess: function(transport){
                $$('.' + part + '-items').each(function(it){
                    it.parentNode.removeChild(it);
                });
                $$('span.' + part).each(function(it){
                    it.parentNode.removeChild(it);
                });
            },
            onFailure: function(transport){
                alert('Could not clear history');
            }
        });
    };
    if ($('select-all-today'))
    {
        $('select-all-today').observe('click', function (e){
            var ev = e || window.event;
            var target = e.target || e.srcElement;
            var state = target.checked;
            $$('input.today-item').each(function(input){
                input.checked = state;
            });
        });
    }
    if ($('select-all-recent'))
    {
        $('select-all-recent').observe('click', function (e){
            var ev = e || window.event;
            var target = e.target || e.srcElement;
            var state = target.checked;
            $$('input.recent-item').each(function(input){
                input.checked = state;
            });
        });
    }
    if ($('save-history-button'))
    {
        $('save-history-button').observe('click', function(e){
            var e = e || window.event;
            Event.stop(e);
            var input = document.createElement('input');
            input.type = 'hidden';
            input.name = 'save_items';
            input.value = true;
            $('recent-items').appendChild(input);
            $('recent-items').submit();
        });
    }
    $$('span.paging.today a').each(function(it){
        it.observe('click', function(e){
            switchPage('today', e);
        });
    });
    $$('span.paging.recent a').each(function(it){
        it.observe('click', function(e){
            switchPage('recent', e);
        });
    });
    var switchPage = function(part, e){
        var e = e || window.event;
        Event.stop(e);
        var target = e.srcElement || e.target;
        var inputs = target.getElementsByTagName('input');
        var page = parseInt(inputs[0].value);
        var currentpage = $('activepage_'+part).value;
        $('activepage_'+part).value = page;
        $(part+'_page_link'+page).addClassName('current');
        $(part+'_page_link'+currentpage).removeClassName('current');
        $$('li.'+part+'-items.page'+currentpage).each(function(it){
            it.hide();
        });
        $$('li.'+part+'-items.page'+page).each(function(it){
            it.show();
        });
        if (page == 1)
        {
            $(part+'_pager_first').hide();
            $(part+'_pager_prev').hide();
        }
        else
        {
            $(part+'_pager_first').show();
            $(part+'_pager_prev').show();
            $(part+'_pager_prev').getElementsByTagName('input')[0].value = page - 1;
        }
        if (page == $('activepages_'+part).value)
        {
            $(part+'_pager_last').hide();
            $(part+'_pager_next').hide();
        }
        else
        {
            $(part+'_pager_last').show();
            $(part+'_pager_next').show();
            $(part+'_pager_next').getElementsByTagName('input')[0].value = page + 1;
        }
    };
    if ($('send-items-button'))
    {
        $('send-items-button').observe('click', function(e){
            var e = e || window.event;
            Event.stop(e);
            var ajax = new Ajax.Request('/ajax/history.php', {
                method: 'post',
                parameters: {'action': 'send_saved_list'},
                onSuccess: function (transport){
                    $('items-sent-notice').innerHTML = "Your Saved browsing history is on its way to you now.";
                    Effect.Fade('send-container', {duration:0.5});
                    setTimeout("Effect.Appear('items-sent-notice', {duration:0.5})", 500);
                    setTimeout("Effect.Fade('items-sent-notice', {duration:0.5})", 70500);
                    setTimeout("Effect.Appear('send-container', {duration:1})", 8000);
                },
                onFailure: function (transport){
                    $('items-sent-notice').innerHTML = "Unfortunately there was a problem processing your saved list and we could not send it at this point.";
                    Effect.Fade('send-container', {duration:0.5});
                    setTimeout("Effect.Appear('items-sent-notice', {duration:0.5})", 500);
                }
            });
        });
    }
});

