var gecisEfekt = Class.create();
gecisEfekt.prototype = {
	elems: null,
	numElems: 0,
	fnEffect: Effect.Appear,
	fnArgs: {duration: 0.7},
	mOver: false,
	pos: 1,
	initialize: function(sCss, fInterval, bPauseOnMouseOver, fnEffect, fnArgs) {
		this.elems = $$(sCss);
		if (this.elems.size() <= 0) {
			return false;
        }
		this.numElems = this.elems.size();
		this.fnEffect = fnEffect || this.fnEffect;
		this.fnArgs = fnArgs || this.fnArgs;

		if (bPauseOnMouseOver) {
			this.elems.each(function(s) {
				Event.observe(s, 'mouseover', function(){
					this.mOver = true;
				}.bind(this));
				Event.observe(s, 'mouseout', function(){
					this.mOver = false;
				}.bind(this));
			}.bind(this));
		}

		new PeriodicalExecuter(
			function(){
				if (!this.mOver) {
					this.elems[this.pos-1].hide();
					this.pos < this.numElems ? this.pos++ : this.pos=1;
					this.fnEffect(this.elems[this.pos-1], this.fnArgs);
				}
			}.bind(this)
		, fInterval);
	}
};