﻿function resizeImages(maxW, maxH, selector) {
    var maxWidth = maxW;
    var maxHeight = maxH;
    $('img[' + selector + ']').each(function() {
        var width = $(this).width();
        var height = $(this).height();
        if (width > maxWidth && height > maxHeight) {
            var wRatio = width / maxWidth;
            var hRatio = height / maxHeight;
            if (hRatio > wRatio)
                $(this).height(maxHeight);
            else
                $(this).width(maxWidth);
        }
        else if (width > maxWidth) {
            $(this).width(maxWidth);
        }
        else if (height > maxHeight) {
            $(this).height(maxHeight);
        }
    });
}

//$(function() { $('ul.spy').simpleSpy(); }); // high cpu usage and buggy

(function($) {

    $.fn.simpleSpy = function(limit, interval) {
        limit = limit || 5;
        interval = interval || 5000;

        return this.each(function() {
            // 1. setup
            // capture a cache of all the list items
            // chomp the list down to limit li elements
            var $list = $(this),
            items = [], // uninitialised
            currentItem = limit,
            total = 0, // initialise later on
            height = $list.find('> li:first').height();

            // capture the cache
            $list.find('> li').each(function() {
                items.push('<li>' + $(this).html() + '</li>');
            });

            total = items.length;

            var totHeight = (height + 11.5) * limit;
            $list.wrap('<div class="spyWrapper" />').parent().css({ height: totHeight });

            $list.find('> li').filter(':gt(' + (limit - 1) + ')').remove();

            // 2. effect        
            function spy() {
                // insert a new item with opacity and height of zero
                var $insert = $(items[currentItem]).css({
                    height: 0,
                    opacity: 1,
                    display: 'none'
                }).prependTo($list);
                $insert.find("div").css({ opacity: 0 });
                $insert.find("a").css({ opacity: 0 });
                // fade the LAST item out
                $list.find('> li:last').animate({ opacity: 0 }, 1000, function() {
                    // increase the height of the NEW first item
                    //$insert.animate({ height : height }, 1000).animate({ opacity : 1 }, 1000);

                    $(this).height("0");

                    $insert.animate({ height: height }, 1000, function() {
                        $insert.find("div").animate({ opacity: 1 }, 1000);
                        $insert.find("a").animate({ opacity: 1 }, 1000);
                    });
                    // AND at the same time - decrease the height of the LAST item
                    //$(this).animate({ height: 0 }, 1000, function() {
                        // finally fade the first item in (and we can remove the last)
                        $(this).remove();
                   // });
                });

                currentItem++;
                if (currentItem >= total) {
                    currentItem = 0;
                }

                setTimeout(spy, interval)
            }

            spy();
        });
    };

})(jQuery);

function RefreshSession(refreshurl) {
    $.ajax({
        type: "GET",
        url: refreshurl,
        dataType: "text",
        cache: false
    });
}
