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

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

slideShow.prototype={
	_idleTimer:null,
	_dissolveTimer:null,
	_interval:5000,
	_imgs:null,
	_anchors:null,
	_detailObj:null,
	_next:0,
	init:function(imgs, anchors, detailButton, interval){
		this._imgs		= imgs;
		this._anchors	= anchors.getElementsByTagName("A");
		this._detailObj	= detailButton;
		this._interval	= interval;
		this._next		= 1;
		this._idleTimer	= setTimeout(this.bind(this.dissolve), this._interval);
		for(var idx in this._imgs){
			setOpacity(this._imgs[idx], ((idx == 0)?1:0));
		}
	},
	dissolve:function(){
		for(var idx in this._imgs){
			this._imgs[idx].style.zIndex = ((idx == this._next)?2:1);
			setClass(this._anchors[idx], ((idx == this._next)?"on":""));
		}
		this._detailObj.href = this._imgs[this._next].getAttribute("rel");
		clearTimeout(this._idleTimer);
		clearTimeout(this._dissolveTimer);
		this.dissolveRun();
	},
	dissolveRun:function(){
		var obj		= this._imgs[this._next];
		var opacity = getOpacity(obj);
		if(opacity < 1){
			setOpacity(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));
			}
			this._next = (this._next + 1) % this._imgs.length;
			this._idleTimer	= setTimeout(this.bind(this.dissolve), this._interval);
		}
	},
	change:function(n){
		this._next = n;
		this.dissolve();
	},
	bind:function(method,arg){
		var _this=this;var _arg=(arg)?arg:[];
		return function(){
			method.apply(_this,_arg);
		}
	}
};

addEvent(window, "load", slideShowInit);

