/**
 * Events of Appnr
 *
 * LICENSE: GNU General Public License Version 3
 * AUTHOR:  Akira Ohgaki <akiraohgaki@gmail.com>
 */

$(function() {

    var base_uri = $('#header h1 a').attr('href');
    var script_dir = base_uri+'js/events/';

    /**
     * Toggle the preferences
     */
    $('.preferences-toggler').click(function() {
        if ($('#preferences-form').size() < 1) {
            $.get(base_uri+'preferences', function(content) {
                $('#preferences').html(content);
            });
        }
        $('#preferences').slideToggle();
    });

    /**
     * Load next page
     */
    if ($('#packages').size()) {
        $('#packages-pagination').css('text-align', 'center');
        if ($('#packages-pagination li').size() > 1 && $('#packages-pagination li:last a').attr('href').match(/(.*\/?page\/)([0-9]+)(.*)\/?/)) {
            var scroll_balance = 30;
            var has_displayed = false;
            var uri_prefix = RegExp.$1;
            var uri_page = RegExp.$2;
            var uri_suffix = RegExp.$3;
            $('#footer').hide();
            $('#packages-pagination').html('<p><img src="'+script_dir+'go-down.png" alt="+" /> Scroll down for more results.</p>');
            $('#packages-pagination').ajaxStart(function() {
                $(this).html('<p><img src="'+script_dir+'loading.gif" alt="Loading..." /></p>');
            });
            $('#packages-pagination').ajaxSuccess(function() {
                $(this).html('<p><img src="'+script_dir+'go-down.png" alt="+" /> Scroll down.</p>');
            });
            $('#packages-pagination').ajaxError(function() {
                $('#footer').show();
                $(this).html('<p><img src="'+script_dir+'information.png" alt="!" /> All results have been displayed. <a href="#">Back to top.</a></p>');
                has_displayed = true;
            });
            $(window).scroll(function() {
                if (has_displayed == false && $(window).scrollTop() >= $(document).height()-$(window).height()-scroll_balance) {
                    $.get(uri_prefix+uri_page+uri_suffix, function(content) {
                        $('#packages-results').append(content);
                    });
                    uri_page++;
                }
            });
        }
        else if ($('#packages-pagination li').size() == 1) {
            $('#packages-pagination').html('<p><img src="'+script_dir+'information.png" alt="!" /> All results have been displayed.</p>');
        }
    }

    /**
     * Open link in facebox
     */
    if ($('#package').size()) {
        // debian.net screenshot
        $('.package-description a:has(img)[href^="http://screenshots.debian.net/screenshot/"]').mousedown(function() {
            var screenshot = $('.package-description a:has(img)[href^="http://screenshots.debian.net/screenshot/"][rel!=facebox]');
            screenshot.after('<img src="'+screenshot.attr('href')+'" alt="Screenshot" id="package-screenshot" style="display: none;" />');
            screenshot.attr('href', '#package-screenshot').attr('rel', 'facebox').facebox();
        });
        // Image results of google search control
        $('#related-search-results').mousedown(function() {
            $('#related-search-results .gsc-imageResult a:has(img)[rel!=facebox]').removeAttr('target').attr('rel', 'facebox').facebox();
        });
    }

});
