var slide;
function slideShowInit(){
	var imgs			= new Array(getObj("topImage01"), getObj("topImage02"), getObj("topImage03"), getObj("topImage04"), getObj("topImage05"), getObj("topImage06"));
	var anchors			= getObj("anchors");
	slide = new slideShow(imgs, anchors, 5000);
	slide.isLoop = false;
}

var slideShow = function(id){
	this.init.apply(this,arguments);
};

slideShow.prototype={
	_isLoop:true,
	_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){
			if(!isNaN(idx)){
				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){
		clearTimeout(this._idleTimer);
		clearTimeout(this._dissolveTimer);
		if(!this.isLoop && this._next >= this._imgs.length - 1) return;
		this._next = (n != undefined)?n:((this._next + 1) % this._imgs.length);
		for(var idx in this._imgs){
			if(!isNaN(idx)){
				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;
		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){
				if(!isNaN(idx)){
					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);
