window.addEvent('domready', function()
{
	base = "";
	if(!Modernizr.csstransforms && !Browser.ie)
		$$('.rotate').each(function(el)	{ el.removeClass('rotate'); });
	
	if($('aktuell'))
	{
		/* Breite für Aktuelle Meldungen in Abhängigkeit von Fenstergröße setzen */
		breiteSetzen($('aktuell'));
		
		if(!(Browser.ie && Browser.version < 9))
		{
			/* Slideshow für jede News einbauen */
			var aniAktiv = 0;
			var z = 0;
			$('aktuell').getElements('li').each(function(li)
			{
				var i = 0;
				var max = li.getElements('img').length;
	
				/* enthaltene Bilder bearbeiten */
				li.getElements('img').each(function(bild) {
					
					/* große Bilder werden gecached */
					Asset.images(pfad1280(bild));
					
					/* z-index wird gesetzt */
					bild.setStyle('z-index', (max - i));
					
					i++;
				});
				
				/* href auswerten und Aktion einbauen */
				var a = li.getElement('a');
				a.removeProperty('href');
				a.addEvent('click', function()
				{
					if(aniAktiv == 0)
					{
						aniAktiv = 1;
						var myFx = new Fx.Scroll(window).toTop();
						var textKlonBreite = (parseInt($('aktuell').getStyle('width')) > 400) ? 400 : $('aktuell').getStyle('width');
						$('inhalt').getElement('div').tween('opacity', 0);
						$('aktuell').getElement('h1').tween('width', textKlonBreite);
						var h1 = $('inhalt').getElement('h1'); 
						var h1Tween = new Fx.Tween(h1, { property: 'color', duration: 300 });
						h1Tween.start('#ffffff').chain( function()
						{
							h1.setStyle('font-size', '35px');
							h1.store('text', h1.get('text'));
							h1.set('text', li.getElement('strong').get('text'));
							h1Tween.start('#ff8010');
						});
						
						var j = 0;
						li.getElements('img').each(function(img)
						{
							var posImg = img.getPosition($('inhalt'));
							li.store('x', posImg.x);
							li.store('y', posImg.y);
							var klon = img.clone();
							var posTop = (j * 308);
							klon.set('src', pfad1280(klon));
							klon.setStyles({ position: 'absolute', top: posImg.y, left: posImg.x, width: 220, height: 138,
									'z-index': img.getStyle('z-index'), border: '1px solid #ddd' });
							klon.addClass('klon');
							klon.inject($('inhalt'));
							img.setStyle('display', 'none');
							var myMorph = new Fx.Morph(klon);
							myMorph.start({ top: posTop, left: 20, width: 458, height: 286, opacity: 1 }).chain(function()
							{
								bildKlick(klon);	
							});
							j++;
						});
						var aktuellTween = new Fx.Tween($('aktuell').getElement('ul'), { property: 'opacity', duration: 300 });
						aktuellTween.start(0).chain(function()
						{
							$$('#aktuell ul img').setStyle('display', 'none');
							var textKlon = li.getElement('div.newsText').clone();
							textKlon.setStyles({ display: 'block', position: 'absolute', left: 550, top: 0, width: textKlonBreite, opacity: 0 });
							textKlon.inject($('inhalt'));
							textKlon.tween('opacity', 1);
		
							var aBack = textKlon.getElement('a.back');
							aBack.removeProperty('href');
							aBack.addEvent('click', function() {
								textKlon.tween('opacity', 0);
								$('inhalt').getElements('img.klon').each(function(img) {
									img.setStyles({'border': 'none', 'z-index:': 0});
									img.morph({top: li.retrieve('y'), left: li.retrieve('x'), width: 220, height: 138});
								});
								$('aktuell').getElement('h1').tween('width', $('aktuell').getStyle('width'));
								h1Tween.start('#fff').chain(function()
								{
									h1.set('text', h1.retrieve('text'));
									h1.setStyle('font-size', 36);
									h1Tween.start('#ff8010');
									$('inhalt').getElement('div').tween('opacity', 1);
									$$('#aktuell img').setStyle('display', 'block');
									aktuellTween.start(1).chain(function()
									{
										$$('img.klon').dispose();
										textKlon.dispose();
										$('aktuell').getElement('h1').setStyle('width', 'auto');
										aniAktiv = 0;
									});
								});
							});
						});
					}
				});
	
				/* wenn mehr als 1 Bild in der Meldung Slideshow aktivieren */
				if(i > 1)
				{
					var mySlideShow = new slideShow(li, z);
					mySlideShow.starten();
					z++;
				}
			});
	
			/* Bildervergrößerung einbauen */
			$$('div.newsBilder img').each(function(el)
			{
				bildKlick(el);
			});
		}
	}
	else if($('impressum'))
	{
		if($('inhalt').getElement('iframe.map'))
		{
			var map = $('inhalt').getElement('iframe.map');
			map.setStyles({'position': 'absolute', 'opacity': 0} );
			var a = map.getPrevious('a');
			a.removeProperties('href', 'title');
			a.addEvent('click', function()
			{
					map.setStyle('position', 'static');
					map.tween('opacity', 1);
					this.setStyles({ 'font-weight': 'bold', 'text-decoration': 'none' });
			});
		}
		impressumBreiteSetzen();
	}
	else if($('referenzen') && !(Browser.ie && Browser.version < 7))
	{
		referenzenBreiteSetzen();
		$$('#referenzen a').each(function(el)
		{
			var url = el.href.match(/^.*\/(.*)/);
			el.store('href', url[1]);
			el.removeAttribute('href');
			el.addEvent('click', function()
			{
				var dauer;
				if(window.getScroll().y == 0)
					dauer = 0;
				else if(window.getScroll().y < 250)
					dauer = 250;
				else
					dauer = 500;
				var myFx = new Fx.Scroll(window, {duration: dauer});
				myFx.start(0,0).chain(function()
				{
					var inhalt = $('inhalt');
					var inhaltBreite = parseInt(inhalt.getStyle('width'));
					inhalt.setStyle('position', 'fixed');
					var ladeAnzeige = new Element('div#ladeAnzeige', {text: 'Ladevorgang: HTML'});
					ladeAnzeige.inject($('container'));
					
					var laden = new Request.JSON(
					{
						url: base+'/load.php',
						method: 'post',
						onSuccess: function(r)
						{
							if(r["ok"] == "OK")
							{
								var rA = /src=\"(.*?\.jpg)\"/gi;
								var i = 0;
								var tempBild;
								var bilder = new Array();
								var div = new Element('div.referenz.rad', {html: r["html"],
										style: 'width: ' + (inhaltBreite + 30) + 'px; position: fixed; left: ' + (window.getSize().x + 40) + 'px'});
								while(tempBild = rA.exec(r["html"]))
								{
									bilder[i] = tempBild[1];
									i++;
								}
								var myImages = new Asset.images(bilder,
								{
									onProgress: function(counter, index)
									{
										ladeAnzeige.set("text", "Ladevorgang: Bilder " + counter + "/" + bilder.length);
									},
									onComplete: function()
									{
										ladeAnzeige.dispose();
										div.inject($('container'));
										referenzBreiteSetzen(div.getElement('div.screenshots'));
										
										//if(Modernizr.fontface)
										if(!Modernizr.csstransforms && !Browser.ie)
											$$('.rotate').each(function(el)	{ el.removeClass('rotate'); });
										
										var myMove = new Fx.Tween(div);
										$('inhalt').tween('left', (inhaltBreite * -1 - 21));
										myMove.start('left', 120).chain(function()
										{
											div.setStyle('position', 'absolute');
											$$('div.screenshots img').each(function(img)
											{
												img.addClass('zoomIn');
												
												/* große Bilder werden gecached */
												Asset.images(pfad1280(img));
												
												/* Klick-Funktionalität */
												img.addEvent('click', function() {
													screenshotKlick(img);
												});
											});
											div.getElement('a.back').removeAttribute('href');
											div.getElement('a.back').addEvent('click', function()
											{
												div.setStyle('position', 'fixed');
												$('inhalt').tween('left', 120);
												myMove.start('left', (window.getSize().x + 40)).chain(function()
												{
													$('inhalt').setStyle('position', 'absolute');
													div.dispose();
												});
											});
										});
									}
								});
							}
						}
					});
					laden.send('f=referenzen&ref=' + el.retrieve('href'));
				});
			});
		});
	}
	else if($('screenshots'))
	{
		/* Breite für Aktuelle Meldungen in Abhängigkeit von Fenstergröße setzen */
		breiteSetzen($('screenshots'));
		$$('#screenshots img').each(function(el)
		{
			/* große Bilder werden gecached */
			Asset.images(pfad1280(el));
			
			/* Klick-Funktionalität */
			el.addEvent('click', function() {
				screenshotKlick(el);
			});
		});
	}
	else if($('container').getElement('div.newsBilder'))
	{
		$$('div.newsBilder img').each(function(img)
		{
			bildKlick(img);
		});
	}
	else if($('container').getElement('div.referenz'))
	{
		referenzBreiteSetzen($('container').getElement('div.screenshots'));
		$$('div.screenshots img').each(function(img)
		{
			img.addClass('zoomIn');
			
			/* große Bilder werden gecached */
			Asset.images(pfad1280(img));
			
			/* Klick-Funktionalität */
			img.addEvent('click', function() {
				screenshotKlick(img);
			});
		});
	}
});

function pfad1280(img)
{
	return(img.src.replace(/\/220\//, '/1280/'));
}

function bildKlick(klon)
{
	klon.store('top', klon.getStyle('top'));
	klon.store('left', klon.getStyle('left'));
	klon.addEvent('click', function()
	{
		// vergrößern
		if(parseInt(this.getStyle('width')) <= 460)
		{
			var breite = 1280;
			var hoehe = 800;
			if(document.getSize().x < 1320)
			{
				breite = document.getSize().x - 40;
				hoehe = Math.round(breite / 1.6);
			}
			
			this.morph({ top: -150, left: -100, width: breite, height: hoehe });
			this.setStyles({'z-index': 99, 'box-shadow': '10px 10px 10px rgba(0,0,0,.2)', 'border-width': 0 });
			this.addClass('zoomOut');
		}
		// verkleinern
		else
		{
			var myMorph = new Fx.Morph(this);
			this.removeClass('zoomOut');
			myMorph.start({ top: this.retrieve('top'), left: this.retrieve('left'), width: 458, height: 286 }).chain(
				function() { this.setStyles({'z-index': 1, 'box-shadow': 'none', 'border-width': 1}); }.bind(this));
		}
	});
}

function screenshotKlick(klein)
{
	var scrollPosY = window.getScroll().y;
	var myFx = new Fx.Scroll(window).toTop();
	var koord = klein.getPosition();
	
	if($('klon'))
		$('klon').dispose();

	var gross = new Element('img#klon.zoomOut',
	{
		src: pfad1280(klein), width: 220, height: 138, style: 'z-index: 99; position: absolute; ' +
				'top: ' + koord.y + 'px; left: ' + koord.x + 'px', events:
		{
			click: function()
			{
				var myFx = new Fx.Scroll(window).start(0, scrollPosY);
				var myMorph = new Fx.Morph(this);
				this.removeClass('zoomOut');
				myMorph.start({ top: koord.y, left: koord.x, width: 220, height: 138 }).chain(function()
				{ this.dispose(); }.bind(this));
			}
		}
	});
	gross.inject(document.body);
	var breite = 1280;
	var hoehe = 800;
	if(document.getSize().x < 1320)
	{
		breite = document.getSize().x - 40;
		hoehe = Math.round(breite / 1.6);
	}
	
	gross.morph({ top: 20, left: 20, width: breite, height: hoehe });
	gross.setStyle('box-shadow', '10px 10px 10px rgba(0,0,0,.2)');
}

function fensterGeaendert()
{
	if($('aktuell'))
	{
		if(this.timer != undefined)
			clearTimeout(this.timer);
		this.timer = breiteSetzen.delay(150, this, $('aktuell'));
	}
	else if($('screenshots'))
	{
		if(this.timer != undefined)
			clearTimeout(this.timer);
		this.timer = breiteSetzen.delay(150, this, $('screenshots'));
	}
	else if($('impressum'))
	{
		if(this.timer != undefined)
			clearTimeout(this.timer);
		this.timer = impressumBreiteSetzen.delay(150);
	}
	else if($('referenzen'))
	{
		if(this.timer != undefined)
			clearTimeout(this.timer);
		this.timer = referenzenBreiteSetzen.delay(150);
	}
	if($('container').getElement('div.screenshots'))
	{
		if(this.timer != undefined)
			clearTimeout(this.timer);
		this.timer = referenzBreiteSetzen.delay(150, this, $('container').getElement('div.screenshots'));
	}
}

/* Breite für Aktuelle Meldungen in Abhängigkeit von Fenstergröße setzen */
function breiteSetzen(el)
{
	var xPlatz = document.getSize().x - 650; // Platz für aktuelle Meldungen
	var zahlAktuell = Math.floor(xPlatz / 240); // Anzahl der Meldungen, die horizontal passt
	el.setStyle('width', (zahlAktuell * 240));
	return(zahlAktuell * 240);
}

function referenzBreiteSetzen(el)
{
	var breite = breiteSetzen(el);
	$('container').getElement('div.referenz').setStyle('width', breite + 510);
	$('container').getElement('div.referenz').setStyle('height', 'auto');
	if($('container').getElement('div.screenshots').getSize().y > $('container').getElement('div.referenz').getSize().y)
		$('container').getElement('div.referenz').setStyle('height', $('container').getElement('div.screenshots').getSize().y);
}

/* Breite für Impressum in Abhängigkeit von Fenstergröße setzen */
function impressumBreiteSetzen()
{
	var xPlatz = document.getSize().x - 670; // Platz für Impressum
	if(xPlatz < 400)
	{
		$('impressum').setStyle('width', xPlatz);
		$('impressum').getElement('div.stil4').setStyle('position', 'static');
	}
	else if(xPlatz < 850)
	{
		$('impressum').setStyle('width', 400);
		$('impressum').getElement('div.stil4').setStyle('position', 'static');
	}
	else
	{
		$('impressum').setStyle('width', 870);
		$('impressum').getElement('div.stil4').setStyles({ position: 'absolute', top: 87, left: 470 });
	}
}

/* Breite für Referenzen in Abhängigkeit von Fenstergröße setzen */
function referenzenBreiteSetzen()
{
	var xPlatz = document.getSize().x - 140; // Platz für Referenzen
	var zahlReferenzen = Math.floor(xPlatz / 240); // Anzahl der Referenzen, die horizontal passt
	$('inhalt').setStyle('width', (zahlReferenzen * 240));
	var gesamt = $$('#referenzen li').length;
	var letzte = gesamt % zahlReferenzen;
	for(var i=(gesamt-letzte); i<gesamt; i++)
		$('referenzen').getElement('li:nth-child(' + (i+1) +')').setStyle('margin-bottom', 20);
}

var slideShow = new Class(
{
	/* Variablen setzen */
	ausfuehren: 1,
	maxZIndex: 0,
	slideCount: 0,
	activeSlide: 0,
	zeigeDauer: 5000,
	fadeDauer: 2000,
	zielElement: null,
	slideIDs: new Array(),

	/* Initialisierungsfunktion */
	initialize: function(ziel, z)
	{
		this.zielElement = "li-" + z + "-";
		/* Slides einlesen */
		ziel.getElements('img').each(function(el) {
			el.set('id', this.zielElement + this.slideCount);
			this.slideCount++;
		}.bind(this));
		/* z-index der obersten Ebene feststellen */
		this.maxZIndex = this.slideCount;
	},
	
	/* (Selbst)Aufruf */
	starten: function()
	{
		this.fade.delay(this.zeigeDauer, this);
	},
	
	fade: function()
	{
		var el = $(this.zielElement + this.activeSlide);
		var myTween = new Fx.Tween(el, { duration: this.fadeDauer, property: 'opacity' });
		
		this.activeSlide++;
		if(this.activeSlide == this.slideCount)
			this.activeSlide = 0;
		var newEl = $(this.zielElement + this.activeSlide);
		newEl.setStyle('z-index', (this.maxZIndex - 1));
		
		myTween.start(1, 0).chain(function() {
			newEl.setStyle('z-index', this.maxZIndex);
			el.setStyle('z-index', 0);
			el.setStyle('opacity', 1);
			this.starten();
		}.bind(this));
	}
});

window.onresize = fensterGeaendert;

/* Modernizr 2.0.6 (Custom Build) | MIT & BSD
 * Contains: fontface | csstransforms | iepp | cssclasses | teststyles | testprop
 */
window.Modernizr=function(a,b,c){function z(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function y(a,b){return!!~(""+a).indexOf(b)}function x(a,b){return typeof a===b}function w(a,b){return v(prefixes.join(a+";")+(b||""))}function v(a){k.cssText=a}var d="2.0.6",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l,m=Object.prototype.toString,n={},o={},p={},q=[],r=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["&shy;","<style>",a,"</style>"].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},s,t={}.hasOwnProperty,u;!x(t,c)&&!x(t.call,c)?u=function(a,b){return t.call(a,b)}:u=function(a,b){return b in a&&x(a.constructor.prototype[b],c)};var A=function(a,c){var d=a.join(""),f=c.length;r(d,function(a,c){var d=b.styleSheets[b.styleSheets.length-1],g=d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"",h=a.childNodes,i={};while(f--)i[h[f].id]=h[f];e.fontface=/src/i.test(g)&&g.indexOf(c.split(" ")[0])===0},f,c)}(['@font-face {font-family:"font";src:url("https://")}'],["fontface"]);n.csstransforms=function(){return!!z(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},n.fontface=function(){return e.fontface};for(var B in n)u(n,B)&&(s=B.toLowerCase(),e[s]=n[B](),q.push((e[s]?"":"no-")+s));v(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b<g)a.createElement(f[b])}a.iepp=a.iepp||{};var d=a.iepp,e=d.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",f=e.split("|"),g=f.length,h=new RegExp("(^|\\s)("+e+")","gi"),i=new RegExp("<(/*)("+e+")","gi"),j=/^\s*[\{\}]\s*$/,k=new RegExp("(^|[^\\n]*?\\s)("+e+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),l=b.createDocumentFragment(),m=b.documentElement,n=m.firstChild,o=b.createElement("body"),p=b.createElement("style"),q=/print|all/,r;d.getCSS=function(a,b){if(a+""===c)return"";var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,q.test(b)&&h.push(d.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},d.parseCSS=function(a){var b=[],c;while((c=k.exec(a))!=null)b.push(((j.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(h,"$1.iepp_$2")+c[4]);return b.join("\n")},d.writeHTML=function(){var a=-1;r=r||b.body;while(++a<g){var c=b.getElementsByTagName(f[a]),d=c.length,e=-1;while(++e<d)c[e].className.indexOf("iepp_")<0&&(c[e].className+=" iepp_"+f[a])}l.appendChild(r),m.appendChild(o),o.className=r.className,o.id=r.id,o.innerHTML=r.innerHTML.replace(i,"<$1font")},d._beforePrint=function(){p.styleSheet.cssText=d.parseCSS(d.getCSS(b.styleSheets,"all")),d.writeHTML()},d.restoreHTML=function(){o.innerHTML="",m.removeChild(o),m.appendChild(r)},d._afterPrint=function(){d.restoreHTML(),p.styleSheet.cssText=""},s(b),s(l);d.disablePP||(n.insertBefore(p,n.firstChild),p.media="print",p.className="iepp-printshim",a.attachEvent("onbeforeprint",d._beforePrint),a.attachEvent("onafterprint",d._afterPrint))}(a,b),e._version=d,e.testProp=function(a){return z([a])},e.testStyles=r,g.className=g.className.replace(/\bno-js\b/,"")+(f?" js "+q.join(" "):"");return e}(this,this.document);
