﻿// from http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
//

(function ($)
{
    var cache = [];
    // Arguments are image paths relative to the current page.
    $.preLoadImages = function ()
    {
        var args_len = arguments.length;
        for (var i = args_len; i--; )
        {
            var cacheImage = document.createElement('img');
            cacheImage.src = arguments[i];
            cache.push(cacheImage);
        }
    }
})(jQuery);

// from http://www.appelsiini.net/2007/6/sequentially-preloading-images
// Thanks, Mike!
//$(window).bind('load', function ()
//{
//    var preload = new Array();
//    $(".hover").each(function ()
//    {
//        s = $(this).attr("src").replace(/\.((jpg)|(png)|(gif))$/i, "_on.$1");
//        if (!s.match(/_on_on\.(.+)$/i))
//        {
//            preload.push(s);
//        }
//    });
//    var img = document.createElement('img');
//    $(img).bind('load', function ()
//    {
//        if (preload[0])
//        {
//            this.src = preload.shift();
//        }
//    }).trigger('load');
//});

$(document).ready(function ()
{
    /* general hovers */
    $(".hover").each(function ()
    {
        if ($(this).attr("src").match(/_on\.(.+)$/i))
        {
            $(this).removeClass("hover");
        }
        else
        {
            jQuery.preLoadImages($(this).attr("src").replace(/\.((jpg)|(png)|(gif))$/i, "_on.$1"));
        }
    });

    $(".hover").hover(function ()
    {
        s = $(this).attr("src").replace(/\.((jpg)|(png)|(gif))$/i, "_on.$1");
        if (!s.match(/_on_on\.(.+)$/i))
        {
            $(this).attr("src", s);
        }
    }, function ()
    {
        s = $(this).attr("src").replace(/_on\.((jpg)|(png)|(gif))$/i, ".$1");
        $(this).attr("src", s);
    });

});
