new Namespace("at.steiermark.contentslider.teaserslider");
at.steiermark.contentslider.teaserslider = Class.create({

	initialize : function (element) {		
		this.slider = element;
		this.points = this.slider.getElementsBySelector('.poi');
		
		this.itemWidth = 220;
		this.actualPos = 0;
		
		for (i=0; i<this.points.length; i++) {	
			this.poi = this.slider.getElementsBySelector('.poi')[i];
			this.poi.observe('click', this.slide);
			this.poi.myClass = this;
			this.poi.pid = i;
			this.poi.points = this.points;
			this.poi.actualPos = 0;
		}
		
		this.myClass = this;
		this.interval = window.setInterval(this.autoslide.bind(this), 7000);
	},
	
	autoslide : function () {
		if (this.myClass.actualPos == (this.points.length-1)) {
			this.myClass.actualPos = 0;
		}
		else {
			this.myClass.actualPos = this.myClass.actualPos+1;
		}
		this.poi = this.slider.getElementsBySelector('.poi')[this.myClass.actualPos];
		this.pid = this.myClass.actualPos;
		
		for (i=0; i<this.points.length; i++) {
			this.points[i].removeClassName('active');
		}
		this.poi.addClassName('active');
		
		var currentPos = (this.myClass.actualPos-1) * (this.myClass.itemWidth * -1);
		var newSliderPos = this.pid * (this.myClass.itemWidth * -1);
		
		ex0 = new Animator({ transition: Animator.makeEaseOut(4),duration: 800});
		ex0.addSubject(new NumericalStyleSubject($('content_teaser'),'left', String( currentPos ) + 'px', String( newSliderPos ) + 'px' ) );
		ex0.play();
		
		this.myClass.actualPos = this.pid;
	},
	
	slide : function () {
		clearInterval(this.myClass.interval);
		
		for (i=0; i<this.points.length; i++) {
			this.points[i].removeClassName('active');
		}
		this.addClassName('active');
		
		if (this.actualPos <= this.pid) {
			var currentPos = this.myClass.actualPos * (this.myClass.itemWidth * -1);
			var newSliderPos = this.pid * (this.myClass.itemWidth * -1);
			
			ex0 = new Animator({ transition: Animator.makeEaseOut(4),duration: 800});
			ex0.addSubject(new NumericalStyleSubject($('content_teaser'),'left', String( currentPos ) + 'px', String( newSliderPos ) + 'px' ) );
			ex0.play();
		}
		else {
			if (this.actualPos >= this.pid) {
				var currentPos = this.myClass.actualPos * (this.myClass.itemWidth * -1);
				var newSliderPos = this.pid * (this.myClass.itemWidth * -1);
			
				ex0 = new Animator({ transition: Animator.makeEaseOut(4),duration: 800});
				ex0.addSubject(new NumericalStyleSubject($('content_teaser'),'left', String( currentPos ) + 'px', String( newSliderPos ) + 'px' ) );
				ex0.play();
			}
		}
		
		this.myClass.actualPos = this.pid;
	}

});



