 jQuery.timer = function (interval, callback)
 {

    var interval = interval || 100;

    if (!callback)
        return false;
    
    _timer = function (interval, callback) {
        this.stop = function () {
            clearInterval(self.id);
        };
        
        this.internalCallback = function () {
            callback(self);
        };
        
        this.reset = function (val) {
            if (self.id)
                clearInterval(self.id);
            
            var val = val || 100;
            this.id = setInterval(this.internalCallback, val);
        };
        
        this.interval = interval;
        this.id = setInterval(this.internalCallback, this.interval);
        
        var self = this;
    };
    
    return new _timer(interval, callback);
 };


$(document).ready(function() {
    var stars = {
    "pic_duration": 10,
    "files_directory": '/i/',
    "list": [
        {"filename":"collage.png"},
        {"filename":"collage0.png"},
        {"filename":"collage2.png"}
    ] };

    for(i = 0; i < stars.list.length; i++) {
        var img = new Image();
        img.src = stars.files_directory + stars.list[i].filename;
    }

    $("#i-bg").css("background-image", "none");

    $.timer(200, function(timer) {
        $("#i-bg")
            .fadeOut(1000, function() {
                var image = stars.list[Math.round(new Date().getTime()/(1000.0 * stars.pic_duration + 1) ) % stars.list.length];
                $(this)
                    .css("background-image", "url('"+ stars.files_directory + image.filename +"')")
                    .fadeIn(350, function() {
                 });
            });
        timer.reset(stars.pic_duration * 1000);
    });
});


