function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
                }
            func();
        }
    }
}

function BannerRotator(){
    // first, defaults:
    this.timer = 2;
    this.bannerNum = 0;// -1 = random
    // then normal init work
    this.banners = [];
    this.binding = null;
    this.timeout = null;

    this.add = function(){// add a banner to the array
        this.banners[this.banners.length] = [arguments[0], arguments[1]];
    }

    this.bind = function(){// bind to an element
        if(typeof arguments[0] == 'string')
            this.binding = document.getElementById(arguments[0]);
        else
            this.binding = arguments[0];
            this.rotate();
    }

    this.rotate = function(){// the actual image rotator
        if( ! this.empty())
            return;
        var showNum, tmpA = document.createElement('a'), tmpImg = document.createElement('img');

        if(this.bannerNum < 0)// random
            showNum = Math.floor(Math.random()*this.banners.length);
        else// syncronous
            showNum = this.bannerNum=(++this.bannerNum >= this.banners.length)?0:this.bannerNum;

        tmpA.href = this.banners[showNum][0];
        tmpImg.src = this.banners[showNum][1];
        tmpA.appendChild(tmpImg);
        this.binding.appendChild(tmpA);
    }

    this.empty = function(){// empty the element if possible
        if(this.binding == null)
            return false;
        while(this.binding.hasChildNodes())
            this.binding.removeChild(this.binding.firstChild);
            return true;
    }

    this.startTimer = function(){// start the loop, normaly done during page load.
        this.stopTimer();
        this.timeout = window.setInterval(
          (function(x){
                return function(){
                    x.rotate();
                }
          })(this), this.timer*1000);
    }

    this.stopTimer = function(){// stop the loop, nice to make available via a button.
        if(this.timeout != null)
            window.clearInterval(this.timeout);
            this.timeout = null;
    }
}