window.addEvent('domready', function() {
	if ($('tlrLoginTeaser'))
		$('tlrLoginTeaser').agListFader({showNav:false, intervalTime:6000});

});


// class Definition von p.d.
// bildwechsler basierend auf UL innerhalb div mit ID
var agListFader = new Class({
	Implements: Options,
	options: {showNav: true, intervalTime: 0},
	initialize: function(listfader,options){
		this.setOptions(options);
		this.listfader = document.id(listfader);
		var listholder = document.id(listfader).getFirst('ul');
		var listlinks = new Element('p');
		var listnavigator = new Element('div.navigate');
		listholder.getChildren('li').each(function(item, index){
			(index == 0) ? item.fade('show') : item.fade('hide');
			this.itemAnchor = new Element('a', {
				'class': (index == 0) ? 'current' : 'common',
				html: index+1,
				events: {
					click: function(){
						this.getSiblings('a').each(function(aitem){aitem.removeClass('current');aitem.addClass('common');});
						this.removeClass('common');
						this.addClass('current');
						this.retrieve('theList').getChildren('li').each(function(liItem){if (liItem.getStyle('opacity') != 0) liItem.fade('out');});
						this.retrieve('myItem').fade('in');
						if (options.intervalTime != undefined && options.intervalTime > 0){
							clearInterval(doChange.timer);
							doChange.timer = doChange.periodical(options.intervalTime);
						}
					}
				}
			});
			
			itemAnchor.store('myItem',item);
			itemAnchor.store('theList',listholder);
			itemAnchor.inject(listlinks);
			
		});
		
		listlinks.inject(listnavigator);
		
		var doChange = function(){
			listlinks.getChildren('a').each(function(aItem){aItem.addClass('common'), aItem.removeClass('current');});
			listholder.getChildren('li').each(function(item, index){
				if (item.getStyle('opacity') != 0) {
					item.fade('out');
					if (item.getNext('li') != null) {
						item.getNext('li').fade('in');
						navItem = listlinks.getChildren('a')[index+1];
					} else {
					   item.getParent().getFirst('li').fade('in');
					   navItem = listlinks.getChildren('a')[0];
					}
					navItem.addClass('current');
					navItem.removeClass('common');
				}
			});
		}

		// erzeugt Navigations element
		if(this.options.showNav)
			listnavigator.inject(this.listfader);
			
		// automatischer Wechsel, falls intervalTime größer 0
		if(this.options.intervalTime > 0)
			doChange.timer = doChange.periodical(this.options.intervalTime);
	},

	toElement: function(){
		return this.listfader
	}

});


Element.implement({
	agListFader: function (options){
		this.store('agListFader',new agListFader(this,options));
		return this;
	}
});

