Date.prototype.lag = function(x){
	var c = new Date();
	return Math.max(x*1000+this.valueOf()-c.valueOf(),0);
}

var ow_teasers = {
	a: [],
	i: [], //counters
	interval: 6, //seconds before transition
	step: 40, //ms/frame, transition = 50 frames
	xfade: function() {
		var start = new Date(); 
		if (++this.turn >=	this.l) {ow_teasers.currentinterval = ow_teasers.interval; this.turn = 0;}
		else ow_teasers.currentinterval = 0;
		if (this.list[this.turn].imgs.length==1) ow_teasers.xfade(); 
		else {
			if (this.i[this.turn]===undefined || ++this.i[this.turn]==this.list[this.turn].imgs.length) this.i[this.turn]=0;
			var list = this.list[this.turn], i = this.i[this.turn], o = 0;
			
			this.ximage = document.createElement('img');
			this.ximage.opacity = function(x){
				if (this.filters && this.filters.alpha) this.filters.alpha.opacity = x;
				else this.style.opacity = x/100;
				return x;
			}
			this.ximage.onerror = ow_teasers.xfade;
			this.ximage.onload = function(){
				ow_teasers.a[ow_teasers.turn].appendChild(this);
				var me = this,frame = ow_teasers.a[ow_teasers.turn];			
				setTimeout(function(){	
					var animation = setInterval(function(){
						if (me.opacity(o+=2)==100) {
							clearInterval(animation);
							var prev = frame.getElementsByTagName('img')[0];
							if (prev!=me) frame.removeChild(prev);
							ow_teasers.ximage = null;
							ow_teasers.xfade();
						}
					},ow_teasers.step);
				},start.lag(ow_teasers.currentinterval));
			}
			this.ximage.src = this.imgroot+list.dir+'/'+list.imgs[i];
		}	
	}
}
