var slide;
function slideShowInit(){
	var imgs			= new Array(getObj("topImage01"), getObj("topImage02"), getObj("topImage03"), getObj("topImage04"));
	var anchors			= getObj("anchors");
	slide = new slideShow(imgs, anchors, 5000);
}

var slideShow = function(id){
	this.init.apply(this,arguments);
};

slideShow.prototype={
	_idleTimer:null,
	_dissolveTimer:null,
	_interval:5000,
	_imgs:null,
	_anchors:null,
	_next:0,
	_opacity:0,
	init:function(imgs, anchors, interval){
		this._imgs		= imgs;
		this._anchors	= anchors.getElementsByTagName("A");
		this._interval	= interval;
		this._next		= 0;
		this._idleTimer	= setTimeout(this.bind(this.dissolve), this._interval);
		for(var idx in this._imgs){
			this._imgs[idx].style.display = "inline";
			this._imgs[idx]._opacity = ((idx == 0)?1:0);
			setOpacity(this._imgs[idx], ((idx == 0)?1:0));
		}
	},
	dissolve:function(n){
		this._next = (n != undefined)?n:((this._next + 1) % this._imgs.length);
		for(var idx in this._imgs){
			this._imgs[idx].style.zIndex = ((idx == this._next)?2:1);
			setClass(this._anchors[idx], ((idx == this._next)?"on":""));
		}
		setOpacity(this._imgs[this._next], 0);
		this._imgs[this._next]._opacity = 0;
		clearTimeout(this._idleTimer);
		clearTimeout(this._dissolveTimer);
		this.dissolveRun();
	},
	dissolveRun:function(){
		var obj		= this._imgs[this._next];
		var opacity = obj._opacity;
		if(opacity < 1){
			setOpacity(obj, opacity + 0.1);
			obj._opacity += 0.1;
			this._dissolveTimer	= setTimeout(this.bind(this.dissolveRun), 50);
		} else{
			for(var idx in this._imgs){
				setOpacity(this._imgs[idx], ((idx == this._next)?1:0));
				obj._opacity = ((idx == this._next)?1:0);
			}
			this._idleTimer	= setTimeout(this.bind(this.dissolve), this._interval);
		}
	},
	change:function(n, url){
		if(url && n == this._next){
			location.href = url;
			return false;
		} else{
			this.dissolve(n);
		}
	},
	bind:function(method,arg){
		var _this=this;var _arg=(arg)?arg:[];
		return function(){
			method.apply(_this,_arg);
		}
	}
};

addEvent(window, "load", slideShowInit);

