
function TransitionFilter(objImg, width, height, isRandom){
	this.width = width?width:objImg.width;
	this.height = height?height:objImg.height;
	this.isRandom = isRandom;
	this.index = -1;
	this.items = [];
	this.intervalId = 0;
	this.onswitch = null;
	this.add = function(imgSrc, title, hyperlink, target){
		var oImg = new Image();
		oImg.src = imgSrc;
		oImg.link = hyperlink;
		oImg.title = title?title:'';;
		oImg.target = target?target:'_blank';
		this.items[this.items.length] = oImg;
		return this;
	};
	this.switchTo = function(index){
		if(index<0 || index>=this.items.length){
			if(this.isRandom)
				this.index = Math.floor(Math.random()*this.items.length); 	// 随机
			else if(++this.index>=this.items.length) this.index=0;		// 顺序
		}else{
			this.index = index;
			this.stop();
		}
		if(this.onswitch!=null) this.onswitch(this.index);
		var obj = this.items[this.index];
		if(objImg.filters){
			// Transition 的有效范围(0-22), 大于22则为自动变换
			objImg.filters.revealTrans.Transition=Math.floor(Math.random()*23); 
			objImg.filters.revealTrans.apply(); 
			objImg.filters.revealTrans.play();
		}
		objImg.title = obj.title;
		objImg.src = obj.src;
		if(width && height && (obj.width>width || obj.height>height)){ 
			if(width-obj.width<height-obj.height){
				objImg.width=width;objImg.height=obj.height*width/obj.width;
			}else{
				objImg.height=height;objImg.width=obj.width*height/obj.height;
			}
		}else{
			objImg.width = obj.width;
			objImg.height = obj.height;
		}
	};
	this.start = function(speed){
		this.switchTo(-1);
		this.intervalId = setInterval(function(){
			objImg.filter.switchTo(-1);
		}, speed);
	};
	this.stop = function(){
		clearInterval(this.intervalId);
	};
	objImg.filter = this;
	objImg.style.cursor = "pointer";
	if(objImg.filters && typeof(objImg.filters.revealTrans)=="undefined"){
		objImg.style.filter="revealTrans(duration=1,transition=23)";
	}
	objImg.onclick = function(e){
		var obj=this.filter.items[this.filter.index];
		if(obj.link) window.open(obj.link, obj.target);
	};
	if(width && height){
		objImg.onresize = function(e){
			var w=this.filter.width, h=this.filter.height;
			if(this.width>w){this.height*=w/this.width;this.width=w;}
			if(this.height>h){this.width*=h/this.height;this.height=h;}
		}
	}
}

