/*
---

script: Loop.js

description: Runs a class method on a periodical

license: MIT-style license.

authors: Ryan Florence <http://ryanflorence.com>

docs: http://moodocs.net/rpflo/mootools-rpflo/Loop

requires:
- core:1.2.4/'*'

provides: [Loop]

...
*/

var Loop = new Class({

	loopCount: 0,
	isStopped: true,
	isLooping: false,
	loopMethod: $empty,

	setLoop: function(fn,delay){
		if(this.isLooping) {
			this.stopLoop();
			var wasLooping = true;
		} else {
			var wasLooping = false;
		}
		this.loopMethod = fn;
		this.loopDelay = delay || 3000;
		if(wasLooping) this.startLoop();
		return this;
	},

	stopLoop: function() {
		this.isStopped = true;
		this.isLooping = false;
		$clear(this.periodical);
		return this;
	},

	startLoop: function(delay) {
		if(this.isStopped){
			var delay = (delay) ? delay : this.loopDelay;
			this.isStopped = false;
			this.isLooping = true;
			this.periodical = this.looper.periodical(delay,this);
		};
		return this;
	},

	resetLoop: function(){
		this.loopCount = 0;
		return this;
	},

	looper: function(){
		this.loopCount++;
		this.loopMethod(this.loopCount);
		return this;
	}

});


/*
---

script: SlideShow.js

description: Easily extendable, class-based, slideshow widget. Use any element, not just images. Comes with packaged transitions but is easy to extend and create your own transitions.  The class is built to handle the basics of a slideshow, extend it to implement your own navigation piece and custom transitions.

license: MIT-style license.

authors: Ryan Florence <http://ryanflorence.com>

requires:
- /Loop
- more:1.2.4.4:Fx.Elements

provides: [SlideShow, Element.playSlideShow, Element.pauseSlideShow]

...
*/


var SlideShow = new Class({

	Implements: [Options, Events, Loop],

		options: {
			/*
			onShow: $empty,
			onShowComplete: $empty,
			onReverse: $empty,
			onPlay: $empty,
			onPause: $empty,
			*/
			delay: 7000,
			transition: 'crossFade',
			duration: '500',
			autoplay: false
		},

	initialize: function(element, options){
		this.setOptions(options);
		this.setLoop(this.showNext, this.options.delay);
		this.element = document.id(element);
		this.slides = this.element.getChildren();
		this.current = this.slides[0];
		this.transitioning = false;
		this.setup();
		if (this.options.autoplay) this.play();
	},

	setup: function(){
	  this.setupElement().setupSlides(true);
		return this;
	},

	setupElement: function(){
		var el = this.element;
		if (el.getStyle('position') != 'absolute' && el != document.body) el.setStyle('position','relative');
		return this;
	},

	setupSlides: function(hideFirst){
		this.slides.each(function(slide, index){
			this.storeTransition(slide).reset(slide);
			if (hideFirst && index != 0) slide.setStyle('display','none');
		}, this);
		return this;
	},

	storeTransition: function(slide){
		var classes = slide.get('class');
		if(!classes) return this;
		var transitionRegex = /transition:[a-zA-Z]+/;
		var durationRegex = /duration:[0-9]+/;
		var transition = (classes.match(transitionRegex)) ? classes.match(transitionRegex)[0].split(':')[1] : this.options.transition;
		var duration = (classes.match(durationRegex)) ? classes.match(durationRegex)[0].split(':')[1] : this.options.duration;
		slide.store('ssTransition', transition).store('ssDuration', duration);
		return this;
	},

	resetOptions: function(options){
		this.options = $merge(this.options, options);
		this.setupSlides(false);
		return this;
	},

	getTransition: function(slide){
		return slide.retrieve('ssTransition');
	},

	getDuration: function(slide){
		return slide.retrieve('ssDuration');
	},

	show: function(slide, options){
		this.stopLoop();
		this.startLoop();
		slide = (typeof slide == 'number') ? this.slides[slide] : slide;
		if (slide != this.current && !this.transitioning){
			this.transitioning = true;
			var transition = (options && options.transition) ? options.transition: this.getTransition(slide),
				duration = (options && options.duration) ? options.duration: this.getDuration(slide),
				previous = this.current.setStyle('z-index', 1),
				next = this.reset(slide).setStyle("opacity", 0);
			var slideData = {
				previous: {
					element: previous,
					index: this.slides.indexOf(previous)
				},
				next: {
					element: next,
					index: this.slides.indexOf(next)
				}
			};
			this.fireEvent('show', slideData);
			if(options.fastswitch) var switchDelay = 0;
			else switchDelay = 800;
			(function() {
				if(this.transitions[transition]) {
					this.transitions[transition](previous, next, duration, this);
					(function() {
						previous.setStyle('display','none');
						this.fireEvent('showComplete', slideData);
						this.transitioning = false;
					}).bind(this).delay(duration);
					this.current = next;
				}
			}).bind(this).delay(switchDelay);

		}
		return this;
	},

	reset: function(slide){
		return slide.setStyles({
			'position': 'absolute',
			'z-index': 0,
			'display': 'block',
			'left': 0,
			'top': 0
		}).fade('show');
	},

	nextSlide: function(){
		var next = this.current.getNext();
		return (next) ? next : this.slides[0];
	},

	previousSlide: function(){
		var previous = this.current.getPrevious();
		return (previous) ? previous : this.slides.getLast();
	},

	showNext: function(options){
		this.show(this.nextSlide(), options);
		return this;
	},

	showPrevious: function(options){
		this.show(this.previousSlide(), options);
		return this;
	},

	play: function(){
		this.startLoop();
		this.fireEvent('play');
		return this;
	},

	pause: function(){
		this.stopLoop();
		this.fireEvent('pause');
		return this;
	},

	reverse: function(){
		var fn = (this.loopMethod == this.showNext) ? this.showPrevious : this.showNext;
		this.setLoop(fn, this.options.delay);
		this.fireEvent('reverse');
		return this;
	},

	toElement: function(){
		return this.element;
	}

});

Element.Properties.slideshow = {

	set: function(options){
		var slideshow = this.retrieve('slideshow');
		if (slideshow) slideshow.pause();
		return this.eliminate('slideshow').store('slideshow:options', options);
	},

	get: function(options){
		if (options || !this.retrieve('slideshow')){
			if (options || !this.retrieve('slideshow:options')) this.set('slideshow', options);
			this.store('slideshow', new SlideShow(this, this.retrieve('slideshow:options')));
		}
		return this.retrieve('slideshow');
	}

};


Element.implement({

	playSlideShow: function(options){
		this.get('slideshow', options).play();
		return this;
	},

	pauseSlideShow: function(options){
		this.get('slideshow', options).pause();
		return this;
	}

});

SlideShow.adders = {

	transitions:{},

	add: function(className, fn){
		this.transitions[className] = fn;
		this.implement({
			transitions: this.transitions
		});
	},

	addAllThese : function(transitions){
		$A(transitions).each(function(transition){
			this.add(transition[0], transition[1]);
		}, this);
	}

}

$extend(SlideShow, SlideShow.adders);
SlideShow.implement(SlideShow.adders);

SlideShow.add('fade', function(previous, next, duration, instance){
	next.setStyle("opacity", 0);
	previous.set('tween',{duration: duration}).fade('out');
	next.set('tween',{duration: duration}).fade('in');
	return this;
});

SlideShow.addAllThese([

	['none', function(previous, next, duration, instance){
		previous.setStyle('display','none');
		return this;
	}],

	['crossFade', function(previous, next, duration, instance){
		previous.set('tween',{duration: duration}).fade('out');
		next.set('tween',{duration: duration}).fade('in');
		return this;
	}],

	['fadeThroughBackground', function(previous, next, duration, instance){
		var half = duration/2;
		next.set('tween',{ duration: half	}).fade('hide');
		previous.set('tween',{
			duration: half,
			onComplete: function(){
				next.fade('in');
			}
		}).fade('out');
	}],

	['pushLeft', function(previous, next, duration, instance){
		var distance = instance.element.getSize().x;
		next.setStyle('left', distance);
		new Fx.Elements([previous,next],{duration: duration}).start({
			0: { left: [-distance] },
			1: { left: [0] }
		});
		return this;
	}],

	['pushRight', function(p,n,d,i){
		//var distance = i.element.getSize().x;
		var distance = p.getSize().x+10;
		n.setStyle('left', -distance);
		n.setStyle("visibility", "visible");
		n.setStyle("opacity", 1);
		new Fx.Elements([p,n],{duration: d}).start({
			0: { left: [distance] },
			1: { left: [0] }
		});
		return this;
	}],
	
	['pushRightFade', function(p,n,d,i){
		this.pushRight(p,n,d,i).fade(p,n,d,i);
		
	}],

	['pushUp', function(p,n,d,i){
		var distance = i.element.getSize().y;
		n.setStyle('top', distance);
		new Fx.Elements([p,n],{duration: d}).start({
			0: { top: [-distance] },
			1: { top: [0] }
		});
		return this;
	}],

	['pushDown', function(p,n,d,i){
		var distance = i.element.getSize().y;
		n.setStyle('top', -distance);
		new Fx.Elements([p,n],{duration: d}).start({
			0: { top: [distance] },
			1: { top: [0] }
		});
		return this;
	}],

	['blindRight', function(p,n,d,i){
		var distance = i.element.getSize().x;
		n.setStyles({
			left: -distance,
			'z-index': 2
		}).set('tween',{duration: d}).tween('left',0);
		return this;
	}],

	['blindLeft', function(p,n,d,i){
		var distance = i.element.getSize().x;
		n.setStyles({
			left: distance,
			'z-index': 2
		}).set('tween',{duration: d}).tween('left',0);
		return this;
	}],

	['blindUp', function(p,n,d,i){
		var distance = i.element.getSize().y;
		n.setStyles({
			top: distance,
			'z-index': 2
		}).set('tween',{duration: d}).tween('top',0);
		return this;
	}],

	['blindDown', function(p,n,d,i){
		var distance = i.element.getSize().y;
		n.setStyles({
			top: -distance,
			'z-index': 2
		}).set('tween',{duration: d}).tween('top',0);
		return this;
	}],

	['blindDownFade', function(p,n,d,i){
		this.blindDown(p,n,d,i).fade(p,n,d,i);
	}],

	['blindUpFade', function(p,n,d,i){
		this.blindUp(p,n,d,i).fade(p,n,d,i);
	}],

	['blindLeftFade', function(p,n,d,i){
		this.blindLeft(p,n,d,i).fade(p,n,d,i);
	}],

	['blindRightFade', function(p,n,d,i){
		this.blindRight(p,n,d,i).fade(p,n,d,i);
	}]

]);

/************************************************
*   mooquee v.1.1                               *
*   Http: WwW.developer.ps/moo/mooquee          *
*   Dirar Abu Kteish dirar@zanstudio.com        *
*   2009-01-30                                  *
*************************************************
*   Extend By www.Sod.hu                        *
*   new directions: top, bottom                 *
*   2008-04-30                                  *
/***********************************************/
/* This program is free software. It comes without any warranty, to
* the extent permitted by applicable law. You can redistribute it
* and/or modify it under the terms of the Do What The Fuck You Want
* To Public License, Version 2, as published by Sam Hocevar. See
* http://sam.zoy.org/wtfpl/COPYING for more details. */

var mooquee = new Class({
    initialize: function(element, options) {
		this.setOptions({
			marHeight: 40,
			marWidth: 550,
			steps: 1,
			speed: 40,
			direction: 'bottom',
			pauseOnOver: true,
			pauseOnContainerOver: true
	    }, options);
	    this.timer = null;
	    this.textElement = null;
	    this.fx = null;
	    this.mooqueeElement = element;
	    this.constructMooquee();
	},
	constructMooquee: function() {
		var el = this.mooqueeElement;
		el.setStyles({
		    'width' : this.options.marWidth
		    ,'height' : this.options.marHeight
		});
        this.textElement = new Element('div',{
		    'class' : 'mooquee-text'
		    ,'id' : 'mooquee-text'
		}).set('html', el.innerHTML).setStyle('position', 'absolute');
		el.set('html', '');//clear mooqueeElement inner html
		el.setStyles({
			position: 'absolute',
			overflow: 'hidden',
			'white-space': 'nowrap'
		});
		this.textElement.inject(el);
		//this.textElement = $('mooquee-text');

		if((this.textElement.getCoordinates().width.toInt()+20) <= this.textElement.getParent().getCoordinates().width.toInt()) {
			this.textElement.setStyle("padding-left", "20px");
			return;
		}
        if(!this.setStartPos()){return;}
        if(this.options.pauseOnOver){this.addMouseEvents();}
		//start marquee

		//this.timer = this.startMooquee.delay(this.options.speed, this);
        var mq = this;
        this.fx = new Fx.Tween(this.textElement, {
        	"onComplete": function() {
        		this.start("left", mq.textElement.getParent().getCoordinates().width.toInt(), -1 * mq.textElement.getCoordinates().width.toInt());
        	},
        	"duration": this.options.speed,
        	transition: "linear"
        });

        this.fx.start("left", this.textElement.getParent().getCoordinates().width.toInt(), this.textElement.getCoordinates().width.toInt() * -1);
	},
	setStartPos: function(){
	    /* sod.hu Ext */
		if( this.options.direction == 'bottom' )
            this.textElement.setStyle('bottom', ( -1 * this.textElement.getCoordinates().height.toInt()));
        else if( this.options.direction == 'top' )
            this.textElement.setStyle( 'bottom', this.options.marHeight );
        else if( this.options.direction == 'left' )
            this.textElement.setStyle('left', ( -1 * this.textElement.getCoordinates().width.toInt()));
        else if( this.options.direction == 'right' )
            this.textElement.setStyle( 'left', this.options.marWidth );
        else{
            alert( 'direction config error: ' + this.options.direction );
            return false;
        }
        return true;
	},
	addMouseEvents : function(){
	    if(!this.options.pauseOnContainerOver){
	        this.textElement.addEvents({
	            'mouseenter' : function(me){
	                //this.clearTimer();
	        		this.fx.pause();
	            }.bind(this),
	            'mouseleave' : function(me){
	               // this.timer = this.startMooquee.delay(this.options.speed, this);
	            	this.fx.resume();
	            }.bind(this)
	        });
	    }else{
	        this.mooqueeElement.addEvents({
	            'mouseenter' : function(me){
	                //this.clearTimer();
	        		this.fx.pause();
	            }.bind(this),
	            'mouseleave' : function(me){
	                //this.timer = this.startMooquee.delay(this.options.speed, this);
	            	this.fx.resume();
	            }.bind(this)
	        });
	    }
	},
    startMooquee: function(){
        /* sod.hu Ext */
        if(this.options.direction == 'bottom' || this.options.direction == 'top')
            var pos = this.textElement.getStyle('bottom').toInt();
        else if(this.options.direction == 'left' || this.options.direction == 'right')
            var pos = this.textElement.getStyle('left').toInt();
        if(this.options.direction == 'bottom')
            this.textElement.setStyle( 'bottom', ( pos + -1 ) + 'px' );
        else if(this.options.direction == 'top')
            this.textElement.setStyle( 'bottom', ( pos + 1 ) + 'px' );
        else if(this.options.direction == 'left'){
            this.textElement.setStyle( 'left', ( pos + -1 ) + 'px' );
        }
        else if(this.options.direction == 'right')
            this.textElement.setStyle( 'left', ( pos + 1 ) + 'px' );
        /* sod.hu Ext end */
        this.checkEnd(pos);
        //this.timer = this.startMooquee.delay(this.options.speed, this);
    },
    resumeMooquee: function(){
        this.stopMooquee();
        if(this.options.pauseOnOver){this.addMouseEvents();}
        this.timer = this.startMooquee.delay(this.options.speed, this);
    },
    stopMooquee: function(){
        this.clearTimer();
        this.textElement.removeEvents();
    },
    clearTimer: function(){
        $clear(this.timer);
    },
    checkEnd: function(pos){
        /* sod.hu Ext */
        if(this.options.direction == 'bottom'){
            if(pos < -1 * (this.textElement.getCoordinates().height.toInt()))
                this.textElement.setStyle('bottom', this.options.marHeight);
        } else if(this.options.direction == 'top'){
            if(pos > this.options.marHeight.toInt())
                this.textElement.setStyle('bottom', -1 * (this.textElement.getCoordinates().height.toInt()) );
        } else if(this.options.direction == 'left'){
            if(pos < -1 * (this.textElement.getCoordinates().width.toInt()))
                this.textElement.setStyle('left', this.options.marWidth);
        } else if(this.options.direction == 'right'){
            if(pos > this.options.marWidth.toInt())
                this.textElement.setStyle('left', -1 * (this.textElement.getCoordinates().width.toInt()) );
        }
        /* sod.hu Ext end */
    },
    setDirection: function(dir){
        this.options.direction = dir;
        this.setStartPos();
    }
});
mooquee.implement(new Options);


$(document).addEvent("domready", function() {
	$$("img").each(function(el) {
		//alert(el.get("id"));		
		if(el.hasClass("untertext")) {
			var div = new Element("div");
			div.addClass("untertext");
			div.setStyle("float", el.getStyle("float"));
			div.setStyle("margin", el.getStyle("margin"));
			div.setStyle("width", el.getStyle("width"));
			var p = new Element("p");
			p.set("html", el.get("title"));
			div.wraps(el);
			p.inject(div);
		}
		
		if(el.get("id") && el.get("id").test(/^lightbox/i)) {
			var link = new Element("a");
			link.set("href", el.get("src")).set("rel", "lightbox-inline").set("title", el.get("title"));
			link.wraps(el);
		}
	});
	
	if(window.Slimbox) Slimbox.scanPage();
	
	$$('.switcher').each(function(switcher) {
		
		//alert(switcher.getElements("img").length);
		if(switcher.getElements("img").length <= 1) return true;
		
		var indicator = new Element('div', {id:'indicator'});
		var nr = switcher.getElements("img").length;
		var height = 1;
		switcher.getElements("img").each(function(img) {
			if(img.getSize().y > height) height = img.getSize().y;
		});
		
		
		var mySlideShow = new SlideShow(switcher, {
			delay: 5000,
			transition: 'crossFade',
			duration: 2000,
			autoplay: true,
			onShow: function(dat) {
				(function() {
					indicator.empty();
					for(var i=0; i<nr; i++) {
						var src = "greydot.gif";
						if(i==dat.next.index) src = "reddot.gif";
						var img = new Element('img', {src: 'frontend/images/'+src});
						img.setStyle('cursor', 'pointer');
						img.store('index', i);
						img.addEvent('click', function() {
							mySlideShow.show(this.retrieve('index'), {'fastswitch': (!Browser.Engine.trident && !Browser.Engine.presto)});
							mySlideShow.pause();
						});
						img.inject(indicator);
					}
				}).delay(800);

			}
		});
		
		if(!switcher.getParent().hasClass("box")) {
			for(var i=0; i<nr; i++) {
				var src = "greydot.gif";
				if(i==0) src = "reddot.gif";
				var img = new Element('img', {src: 'frontend/images/'+src});
				img.setStyle('cursor', 'pointer');
				img.store('index', i);
				img.addEvent('click', function() {
					mySlideShow.show(this.retrieve('index'), {'fastswitch': (!Browser.Engine.trident && !Browser.Engine.presto)});
					mySlideShow.pause();
				});
				img.inject(indicator);
			}
			indicator.inject(switcher, 'after');
		}
		
		switcher.setStyle("height", height+"px");
	});
	
	var lastToggled = null;
	
	if($$('#content legend').length > 1) {
		
		$$('#content legend').each(function(el) {
			var div = new Element("div");
			div.wraps(el.getParent());
			div.addClass("PullDown");
			div.setStyles({
				overflow: 'hidden',
				padding: '0px'
			});
			el.setStyle("cursor", "pointer");
			
			div.getElements("input, select").each(function(subel) {
				subel.addEvent("focus", function() {
					new Fx.Scroll(div).set(0,0);
					if(!div.getElement("legend").hasClass("active")) div.getElement("legend").fireEvent("click");
				});
			});
			
			var height = div.getSize().y;		
			div.set("tween", {duration: 'long'});
			el.addEvent('click', function() {
				
				if(lastToggled != null) {
					lastToggled.tween("height", "30");
					lastToggled.getElement("legend").removeClass("active");
				}
				lastToggled = div;
				
				if(div.getSize().y <= 30+(height/2)) {
					div.tween("height", height);
					div.getElement("fieldset").tween("height");
					el.addClass("active");
				} else {
					div.tween("height", "30");
					el.removeClass("active");
				}
			});
			div.setStyle("height", "30px");
		});
		
		$$('#content label.missing, #content span.missing').each(function(el) {
			if(el.getParent("fieldset") && el.getParent("fieldset").getElement("legend") && !el.getParent("fieldset").getElement("legend").hasClass("missing")) {
				el.getParent("fieldset").getElement("legend").addClass("missing");
			}
		});
		
	}
	
	$$('#content .sliders a').each(function(el) {
		if(el.get("href") == "#" && (el.getParent().getNext())) {
			// Dieser Link dient als "Klapp-Box"-Link
			var c = el.getParent().getNext();
			//if(!c) c = el.getParent().getNext("p");
			
			var div = new Element("div");
			div.addClass("PullDown").wraps(c);
			
			var p = el.getParent();
			el.inject(c, "before");
			p.destroy();
			
			c.slide('hide');
			el.addEvent("click", function() {
				if(lastToggled != null && lastToggled != c) {
					lastToggled.slide('out');
					$('content').getElements("a").removeClass("active");
				}
				lastToggled = c;
				if(this.hasClass("active")) this.removeClass("active");
				else this.addClass("active");
				c.slide('toggle');
				return false;
			});
		}
	});
	
	if($$('.foldup').length > 0) {
		$$('.foldup').each(function(el) {
			var link = new Element("a", {
				href: '#',
				text: $$('.opentext')[0].get("text"),
				'class': 'folduplink'
			});
			
			link.addEvents({
				click: function() {
					el.slide('toggle');
					if(link.get("text") == $$('.opentext')[0].get("text")) link.set("text", $$('.closetext')[0].get("text"));
					else link.set("text", $$('.opentext')[0].get("text"));
					return false;
				}
			});
			
			link.inject(el, 'after');
			
			el.slide('hide');
		});
	}
	
	if($('start_news')) {
		var newsContainer = $('start_news').getElement("div");
		var speed = newsContainer.getElements("span").length * 10000;
		var speed = newsContainer.get("html").stripTags().length*50 + 5000;
		obj = new mooquee(newsContainer, {marWidth: "645px", direction:"left", "speed":speed});
	}

	
	
	$$('#navigation li').each(function(li) {
		li.addEvents({
			'mouseenter': function() {
				li.addClass('hover');
				if(li.getElement(".shadow") && li.getElement("ul")) {
					
					li.getElement(".shadow").setStyles({
						'display': 'block',
						height: (li.getElement("ul").getSize().y-24)+'px',
						width: (li.getElement("ul").getSize().x-16)+'px',
						left: (li.getElement("ul").getPosition(li).x-8)+"px"
					});
					
				}
				
			},
			'mouseleave': function() {
				li.removeClass('hover');
				if(li.getElement(".shadow")) li.getElement(".shadow").setStyle('display', 'none');
			}
		});
	});
	
	$$('#zeitung_auswahl li').each(function(li) {
		li.addEvents({
			'mouseenter': function() {
				li.addClass('hover');
				if(li.getElement(".shadow") && li.getElement("ul")) {
					
					li.getElement(".shadow").setStyles({
						'display': 'block',
						height: (li.getElement("ul").getSize().y-24)+'px',
						width: (li.getElement("ul").getSize().x-16)+'px',
						left: (li.getElement("ul").getPosition(li).x-8)+"px"
					});
					
				}
				
			},
			'mouseleave': function() {
				li.removeClass('hover');
				if(li.getElement(".shadow")) li.getElement(".shadow").setStyle('display', 'none');
			}
		});
	});

	$$('#navigation ul li ul').each(function(ul) {
		ul.addClass("hide");
		
		if(Browser.Engine.trident) {
			var div = new Element("div", {'class': 'shadow'});
			div.setStyles({
				display: 'none',
				position: 'absolute',
				//left: (ul.getStyle("left").toInt()-8)+"px",
				left: ul.getStyle("left"),
				top: ul.getStyle("top"),
				'margin-top': ul.getStyle('margin-top'),
				width: '100%',
				height: '100%',
				background: '#000',
				filter: 'progid:DXImageTransform.Microsoft.Blur(pixelradius=16) alpha(opacity = 30)',
				'-ms-filter': 'progid:DXImageTransform.Microsoft.Blur(pixelradius=16) alpha(opacity = 30)'
			});
			
			div.inject(ul, 'before');
		}
		
	});
	
	$$('#zeitung_auswahl li ul').each(function(ul) {
		ul.addClass("hide");
		
		if(Browser.Engine.trident) {
			var div = new Element("div", {'class': 'shadow'});
			div.setStyles({
				display: 'none',
				position: 'absolute',
				//left: (ul.getStyle("left").toInt()-8)+"px",
				left: ul.getStyle("left"),
				top: ul.getStyle("top"),
				'margin-top': ul.getStyle('margin-top'),
				width: '100%',
				height: '100%',
				background: '#000',
				filter: 'progid:DXImageTransform.Microsoft.Blur(pixelradius=16) alpha(opacity = 30)',
				'-ms-filter': 'progid:DXImageTransform.Microsoft.Blur(pixelradius=16) alpha(opacity = 30)'
			});
			
			div.inject(ul, 'before');
		}
		
	});

	
	
	if($('home') && $('home').getChildren('div').length == 1) {
		$('home').getChildren('div')[0].setStyle("display", "block");
	}
	
	if($('home') && $('home').getChildren('div').length > 1) {
		var boxes = $('home').getChildren('div');

		var indicator = new Element('div', {id:'indicator'});
		var nr = boxes.length;


		for(var i=0; i<nr; i++) {
			if(boxes[i].getElement(".breaker")) boxes[i].getElement(".breaker").store('height', boxes[i].getElement(".breaker").getStyle('height'));
		}

		var mySlideShow = new SlideShow($('home'), {
			delay: 14000,
			transition: 'crossFade',
			duration: 2000,
			autoplay: true,
			onShow: function(dat) {
				(function() {
					indicator.empty();
					for(var i=0; i<nr; i++) {
						var src = "greydot.gif";
						if(i==dat.next.index) src = "reddot.gif";
						var img = new Element('img', {src: 'frontend/images/'+src});
						img.setStyle('cursor', 'pointer');
						img.store('index', i);
						img.addEvent('click', function() {
							mySlideShow.show(this.retrieve('index'), {'fastswitch': (!Browser.Engine.trident && !Browser.Engine.presto)});
							//mySlideShow.pause();
						});
						img.inject(indicator);
					}
				}).delay(800);

				if(!Browser.Engine.trident && !Browser.Engine.presto) return;

				if(dat.previous.element.getElement(".breaker")) {
					dat.previous.element.getElement(".breaker").set('morph', {transition:Fx.Transitions.Quad.easeOut, duration:800});
					dat.previous.element.getElement(".breaker").morph({height: "0px"});
				}

				if(dat.next.element.getElement(".breaker")) {
					dat.next.element.getElement(".breaker").set('morph', {transition:Fx.Transitions.Quad.easeOut, duration:800});
					dat.next.element.getElement(".breaker").morph({height: "0px"});
				}
			},
			onShowComplete: function(dat) {
				if(!Browser.Engine.trident && !Browser.Engine.presto) return;
				if(dat.next.element.getElement(".breaker")) {
					var height = dat.next.element.getElement(".breaker").retrieve('height');
					dat.next.element.getElement(".breaker").set('morph', {transition:Fx.Transitions.Quad.easeOut, duration:800});
					dat.next.element.getElement(".breaker").morph({'height': height});
				}

			}
		});

		for(var i=0; i<nr; i++) {
			var src = "greydot.gif";
			if(i==0) src = "reddot.gif";
			var img = new Element('img', {src: 'frontend/images/'+src});
			img.setStyle('cursor', 'pointer');
			img.store('index', i);
			img.addEvent('click', function() {
				mySlideShow.show(this.retrieve('index'), {'fastswitch': (!Browser.Engine.trident && !Browser.Engine.presto)});
				//mySlideShow.pause();
			});
			img.inject(indicator);
		}
		indicator.inject($('home'), 'after');
	}
	
	if($('sidebarContainer') && $('sidebarContainer').getChildren('div').length > 1) {

		var boxes = $('sidebarContainer').getChildren('div');
		var h = 0;
		boxes.each(function(el) {
			if(el.getSize().y > h) h = el.getSize().y;
		});
		boxes.setStyle("height", h+"px");
		$('sidebarContainer').setStyle("height", h+"px");

		var mySlideShow = new SlideShow('sidebarContainer', {
			delay: 10000,
			transition: 'pushRight',
			duration: 2000,
			autoplay: true
			
		});

	}
	
	
	var t = new Tips('.tooltip', {
		className: 'tooltipClass',
		title: '',
		text: 'title'
	});
	
	
	

});


(function() {

	Drag.Scroll = new Class({

		// We'd like to use the Options Class Mixin
		Implements : [Options],

		// Default options
		options : {
			friction : 5,
			axis : {
				x : true,
				y : true
			}
		},

		initialize : function(element, options) {
			element = this.element = document.id(element);
			this.content = element.getFirst();
			this.setOptions(options);

			// Drag speed
			var prevTime, prevScroll, scroll, speed, timer;
			scroll = this.limit(element.scrollLeft, element.scrollTop);
			speed = [0,0];
			
			var timerFn = function() {
				var now = Date.now();
				scroll = [element.scrollLeft, element.scrollTop];
				if(prevTime) {
					var dt = now - prevTime + 1;
					speed = [1000 * (scroll[0] - prevScroll[0]) / dt, 1000 * (scroll[1] - prevScroll[1]) / dt];
				}
				prevScroll = scroll;
				prevTime = now;
			};
			// Use Fx.Scroll for scrolling to the right position after the dragging
			var fx = this.fx = new Fx.Scroll(element, {
				transition : Fx.Transitions.Expo.easeOut
			});

			// Set initial scroll
			fx.set.apply(fx, this.limit(element.scrollLeft, element.scrollTop));

			var self = this; 
			var friction = this.options.friction;
			var axis = this.options.axis;

			// Make the element draggable
			var drag = this.drag = new Drag(element, {
				style : false,
				invert : true,
				modifiers : {
					x : axis.x && 'scrollLeft',
					y : axis.y && 'scrollTop'
				},
				onStart : function() {
					// Start the speed measuring
					timerFn();
					timer = setInterval(timerFn, 1000 / 60);
					// cancel any fx if they are still running
					fx.cancel();
				},
				onComplete : function() {
					// Stop the speed measuring
					timerFn();
					prevTime = false;
					clearInterval(timer);
					//alert(speed);
					// Scroll to the new location
					fx.start.apply(fx, self.limit(scroll[0] + (speed[0] || 0) / friction, scroll[1] + (speed[1] || 0) / friction));
				}
			});

		},
		// Calculate the limits
		getLimit : function() {
			var limit = [[0, 0], [0, 0]], element = this.element;
			var styles = Object.values(this.content.getStyles('padding-left', 'border-left-width', 'margin-left', 'padding-top', 'border-top-width', 'margin-top', 'width', 'height')).invoke('toInt');
			limit[0][0] = sum(styles.slice(0, 3));
			limit[0][1] = styles[6] + limit[0][0] - element.clientWidth;
			limit[1][0] = sum(styles.slice(3, 6));
			limit[1][1] = styles[7] + limit[1][0] - element.clientHeight;
			return limit;
		},
		// Apply the limits to the x and y values
		limit : function(x, y) {
			var limit = this.getLimit();
			return [x.limit(limit[0][0], limit[0][1]), y.limit(limit[1][0], limit[1][1])];
		}
	});

	var sum = function(array) {
		var result = 0;
		for(var l = array.length; l--; )
		result += array[l];
		return result;
	};
})();


$(document).addEvent('domready', function() {
	
	$$('.noscript').dispose();
	$$('.script').removeClass('script');	
		
	if($('zeitung_auswahl')) {
		var original_canvas = new Element('div').addClass('zeitung_canvas');
		var canvas = null;
		
		function draw_article(link) {
			if(!link) link = $('zeitung_auswahl').getElement('ul li a');
			if(canvas) canvas.dispose();
			canvas = original_canvas.clone();
			
			new Element('img').set('src', link.get('href')).inject(canvas);
			
			canvas.inject($('zeitungs_wrapper'));	
			
			if(Browser.ie6) {
				canvas.setStyles({
					'overflow': 'auto',
					'width': '100%',
					'cursor': 'default'
				});
			} else {
				new Drag.Scroll(canvas, {
					axis : {
						x : true,
						y : true
					}
				});
			}
			
			//$('zeitungs_auswahl_wrapper').getElement('.head .artikelname').set('text', link.get('text'));
			//$('zeitung_auswahl_aktuell').getElement('img').set('src', lastSelectedPaper.getElement('img').get('src'));
			//$('zeitung_auswahl_aktuell').getElement('img').set('title', lastSelectedPaper.getElement('img').get('title'));
			//$('zeitung_auswahl_aktuell').getElement('img').set('alt', lastSelectedPaper.getElement('img').get('alt'));
			
		}
		
		draw_article();
	}
	
	/*if($('zeitung_auswahl') && $('zeitungsartikel_auswahl') && $('zeitungs_wrapper')) {
		
		var original_select = $('zeitungsartikel_auswahl').clone();
		var original_canvas = new Element('div').addClass('zeitung_canvas');
		var canvas = null;
		
		var lastSelectedPaper = null;
		function draw_article(link) {
			if(link) toggleArtikelauswahl();
			if(!link) link = $('zeitungsartikel_auswahl').getElement('li a');
			if(canvas) canvas.dispose();
			canvas = original_canvas.clone();
			
			new Element('img').set('src', link.get('href')).inject(canvas);
			
			canvas.inject($('zeitungs_wrapper'));	
			
			if(Browser.ie6) {
				canvas.setStyles({
					'overflow': 'auto',
					'width': '100%',
					'cursor': 'default'
				});
			} else {
				new Drag.Scroll(canvas, {
					axis : {
						x : true,
						y : true
					}
				});
			}
			
			$('zeitungs_auswahl_wrapper').getElement('.head .artikelname').set('text', link.get('text'));
			$('zeitung_auswahl_aktuell').getElement('img').set('src', lastSelectedPaper.getElement('img').get('src'));
			$('zeitung_auswahl_aktuell').getElement('img').set('title', lastSelectedPaper.getElement('img').get('title'));
			$('zeitung_auswahl_aktuell').getElement('img').set('alt', lastSelectedPaper.getElement('img').get('alt'));
			
		}
		
		function filter_selection(link) {
			//$('zeitung_auswahl_aktuell').getElement('img').set('src', link.getElement('img').get('src'));
			lastSelectedPaper = link;
			$('zeitung_auswahl').getElements('a').removeClass('active');
			link.addClass('active');
			var zeitung = link.get('rel');
			$('zeitungsartikel_auswahl').getElements('li').dispose();
			var options = original_select.clone().getElements('li[rel='+zeitung+']');
			$('zeitungsartikel_auswahl').adopt(options);
			
			$('zeitungsartikel_auswahl').getElements('a').addEvent('click', function() {
				draw_article(this);
				return false;
			});
			
			new Element('li').set('text', lastSelectedPaper.getElement('img').get('title')).inject($('zeitungsartikel_auswahl'), 'top').addClass('header');
		}
		
		function toggleArtikelauswahl() {
			if($('zeitungs_auswahl_wrapper').retrieve('big')) {
				$('zeitungs_auswahl_wrapper').tween('height', '45px');
				$('zeitungs_auswahl_wrapper').store('big', false);
				$('zeitungs_auswahl_wrapper').getElement('.head .label').removeClass('up');
				$(document).removeEvents('click');
			} else {
				$('zeitungs_auswahl_wrapper').tween('height', ($('zeitungs_wrapper').getSize().y*0.8)+'px');
				$('zeitungs_auswahl_wrapper').store('big', true);
				$('zeitungs_auswahl_wrapper').getElement('.head .label').addClass('up');
				$(document).addEvent('click', function() {
					toggleArtikelauswahl();
				});
			}
		}
		
		filter_selection($('zeitung_auswahl').getElement('a'));
		draw_article();
		
		$('zeitung_auswahl').getElements('a').addEvent('click', function() {
			filter_selection(this);
			//draw_article();
			return false;
		});
		
		
		$('zeitungs_auswahl_wrapper').store('big', false);
		$('zeitungs_auswahl_wrapper').getElement('.head .label').addEvent('click', function(event) {
			toggleArtikelauswahl();
		});
		
		$('zeitungs_auswahl_wrapper').addEvent('click', function(event) {
			event.stopPropagation();
		});
		
		toggleArtikelauswahl();
		
	}*/
});

