/* Clientcide Copyright (c) 2006-2009, http://www.clientcide.com/wiki/cnet-libraries#license*/

//Contents: Clientcide, SimpleCarousel, Class.ToElement, SimpleSlideShow, TabSwapper

//This lib: http://www.clientcide.com/js/build.php?excludeLibs[]=mootools-core&excludeLibs[]=mootools-more&require[]=Clientcide&require[]=SimpleCarousel&require[]=SimpleSlideShow&require[]=TabSwapper&compression=none

/*
Script: Clientcide.js
	The Clientcide namespace.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var Clientcide = {
	version: '%build%',
	assetLocation: "http://github.com/anutron/clientcide/raw/master/Assets",
	setAssetLocation: function(baseHref) {
		Clientcide.assetLocation = baseHref;
		if (Clientcide.preloaded) Clientcide.preLoadCss();
	},
	preLoadCss: function(){
		if (window.StickyWin && StickyWin.ui) StickyWin.ui();
		if (window.StickyWin && StickyWin.pointy) StickyWin.pointy();
		Clientcide.preloaded = true;
		return true;
	},
	preloaded: false
};
(function(){
	if (!window.addEvent) return;
	var preload = function(){
		if (window.dbug) dbug.log('preloading clientcide css');
		if (!Clientcide.preloaded) Clientcide.preLoadCss();
	};
	window.addEvent('domready', preload);
	window.addEvent('load', preload);
})();
setCNETAssetBaseHref = Clientcide.setAssetLocation;/*
Script: SimpleCarousel.js

Builds a carousel object that manages the basic functions of a generic carousel (a carousel	here being a collection of "slides" that play from one to the next, with a collection of "buttons" that reference each slide).

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var SimpleCarousel = new Class({
	Implements: [Options, Events],
	options: {
//		onRotate: $empty,
//		onStop: $empty,
//		onAutoPlay: $empty,
//		onShowSlide: $empty,
		slideInterval: 4000,
		transitionDuration: 700,
		startIndex: 0,
		buttonOnClass: "selected",
		buttonOffClass: "off",
		rotateAction: "none",
		rotateActionDuration: 100,
		autoplay: true
	},
	initialize: function(container, slides, buttons, options){
		this.container = document.id(container);
		var instance = this.container.retrieve('SimpleCarouselInstance');
		if (instance) return instance;
		this.container.store('SimpleCarouselInstance', this);
		this.setOptions(options);
		this.container.addClass('hasCarousel');
		this.slides = $$(slides);
		this.buttons = $$(buttons);
		this.createFx();
		this.showSlide(this.options.startIndex);
		if (this.options.autoplay) this.autoplay();
		if (this.options.rotateAction != 'none') this.setupAction(this.options.rotateAction);
		return this;
	},
	toElement: function(){
		return this.container;
	},
	setupAction: function(action) {
		this.buttons.each(function(el, idx){
			document.id(el).addEvent(action, function() {
				this.slideFx.setOptions(this.slideFx.options, {duration: this.options.rotateActionDuration});
				if (this.currentSlide != idx) this.showSlide(idx);
				this.stop();
			}.bind(this));
		}, this);
	},
	createFx: function(){
		if (!this.slideFx) this.slideFx = new Fx.Elements(this.slides, {duration: this.options.transitionDuration});
		this.slides.each(function(slide){
			slide.setStyle('opacity',0);
		});
	},
	showSlide: function(slideIndex){
		var action = {};
		this.slides.each(function(slide, index){
			if (index == slideIndex && index != this.currentSlide){ //show
				if (document.id(this.buttons[index])) document.id(this.buttons[index]).swapClass(this.options.buttonOffClass, this.options.buttonOnClass);
				action[index.toString()] = {
					opacity: 1
				};
			} else {
				if (document.id(this.buttons[index])) document.id(this.buttons[index]).swapClass(this.options.buttonOnClass, this.options.buttonOffClass);
				action[index.toString()] = {
					opacity:0
				};
			}
		}, this);
		this.fireEvent('onShowSlide', slideIndex);
		this.currentSlide = slideIndex;
		this.slideFx.start(action);
		return this;
	},
	autoplay: function(){
		this.slideshowInt = this.rotate.periodical(this.options.slideInterval, this);
		this.fireEvent('onAutoPlay');
		return this;
	},
	stop: function(){
		$clear(this.slideshowInt);
		this.fireEvent('onStop');
		return this;
	},
	rotate: function(){
		var current = this.currentSlide;
		var next = (current+1 >= this.slides.length) ? 0 : current+1;
		this.showSlide(next);
		this.fireEvent('onRotate', next);
		return this;
	}
});/*
Script: ToElement.js
	Defines the toElement method for a class.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
Class.ToElement = new Class({
	toElement: function(){
		return this.element;
	}
});
var ToElement = Class.ToElement;/*
Script: SimpleSlideShow.js

Makes a very, very simple slideshow gallery with a collection of dom elements and previous and next buttons.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var SimpleSlideShow = new Class({
	Implements: [Events, Options, Chain],
	options: {
		startIndex: 0,
		slides: [],
		currentSlideClass: 'currentSlide',
		currentIndexContainer: false,
		maxContainer: false,
		nextLink: false,
		prevLink: false,
		wrap: true,
		disabledLinkClass: 'disabled',
//		onNext: $empty,
//		onPrev: $empty,
//		onSlideClick: $empty,
//		onSlideDisplay: $empty,
		crossFadeOptions: {}
	},
	initialize: function(options){
		this.setOptions(options);
		var slides = this.options.slides;
		this.makeSlides(slides);
		this.setCounters();
		this.setUpNav();
		this.now = this.options.startIndex;
		if (this.slides.length > 0) this.show(this.now);
	},
	slides:[],
	setCounters: function(){
		if (document.id(this.options.currentIndexContainer))document.id(this.options.currentIndexContainer).set('html', this.now+1);
		if (document.id(this.options.maxContainer))document.id(this.options.maxContainer).set('html', this.slides.length);
	},
	makeSlides: function(slides){
		//hide them all
		slides.each(function(slide, index){
			if (index != this.now) slide.setStyle('display', 'none');
			else slide.setStyle('display', 'block');
			this.makeSlide(slide);
		}, this);
	},
	makeSlide: function(slide){
		slide.addEvent('click', function(){ this.fireEvent('onSlideClick'); }.bind(this));
		this.slides.include(slide);
	},
	setUpNav: function(){	
		if (document.id(this.options.nextLink)) {
			document.id(this.options.nextLink).addEvent('click', function(){
				this.forward();
			}.bind(this));
		}
		if (document.id(this.options.prevLink)) {
			document.id(this.options.prevLink).addEvent('click', function(){
				this.back();
			}.bind(this));
		}
	},
	disableLinks: function(now){
		if (this.options.wrap) return;
		now = $pick(now, this.now);
		var prev = document.id(this.options.prevLink);
		var next = document.id(this.options.nextLink);
		var dlc = this.options.disabledLinkClass;
		if (now > 0) {
			if (prev) prev.removeClass(dlc);
			if (now === this.slides.length-1 && next) next.addClass(dlc);
			else if (next) next.removeClass(dlc);
		}	else { //now is zero
			if (this.slides.length > 0 && next) next.removeClass(dlc);
			if (prev) prev.addClass(dlc);
		}
	},
	forward: function(){
		if ($type(this.now) && this.now < this.slides.length-1) this.show(this.now+1);
		else if ($type(this.now) && this.options.wrap) this.show(0);
		else if (!$type(this.now)) this.show(this.options.startIndex);
		this.fireEvent('next');
		return this;
	},
	back: function(){
		if (this.now > 0) {
			this.show(this.now-1);
			this.fireEvent('onPrev');
		} else if (this.options.wrap && this.slides.length > 1) {
			this.show(this.slides.length-1);
			this.fireEvent('prev');
		}
		return this;
	},
	show: function(index){
		if (this.showing) return this.chain(this.show.bind(this, index));
		var now = this.now;
		var s = this.slides[index]; //saving bytes
		function fadeIn(s, resetOpacity){
			s.setStyle('display','block');
			if (!Browser.Engine.trident4) {
				if (resetOpacity) s.setStyle('opacity', 0);
				s.set('tween', this.options.crossFadeOptions).get('tween').start('opacity', 1).chain(function(){
					this.showing = false;
					this.disableLinks();
					this.callChain();
					this.fireEvent('onSlideDisplay', index);
				}.bind(this));
			}
		};
		if (s) {
			if ($type(this.now) && this.now != index){
				if (!Browser.Engine.trident4) {
					var fx = this.slides[this.now].get('tween');
					fx.setOptions(this.options.crossFadeOptions);
					this.showing = true;
					fx.start('opacity', 0).chain(function(){
						this.slides[now].setStyle('display','none');
						s.addClass(this.options.currentSlideClass);
						fadeIn.run([s, true], this);
						this.fireEvent('onSlideDisplay', index);
					}.bind(this));
				} else {
					this.slides[this.now].setStyle('display','none');
					fadeIn.run(s, this);
				}
			} else fadeIn.run(s, this);
			this.now = index;
			this.setCounters();
		}
	},
	slideClick: function(){
		this.fireEvent('onSlideClick', [this.slides[this.now], this.now]);
	}
});

SimpleSlideShow.Carousel = new Class({
	Extends: SimpleSlideShow,
	Implements: [Class.ToElement],
	Binds: ['makeSlide'],
	options: {
		sliderWidth: 999999
	},
	initialize: function(container, options){
		this.setOptions(options);
		this.container = document.id(container);
		this.element = new Element('div').wraps(this.container).setStyles({
			width: this.container.getSize().x,
			overflow: 'hidden',
			position: 'relative'
		});
		this.container.setStyles({
			width: this.options.sliderWidth,
			position: 'relative'
		});
		this.parent(options);
	},
	makeSlides: function(slides) {
		this.slides = [];
		slides.each(this.makeSlide);
	},
	makeSlide: function(slide) {
		if (slide.retrieve('slideSetup')) return;
		slide.store('slideSetup', true);
		slide.show();
		var s = new Element('div', {
			styles: {
				'float': 'left',
				width: document.id(this).getSize().x
			}
		}).wraps(slide);
		this.parent(s);
		this.slides.erase(slide);
		this.setCounters();
		s.show();
		s.inject(this.container);
	},
	show: function(index) {
		if (!this.container) return;
		this.fx = this.fx || new Fx.Tween(this.container.setStyle('left', 0), $merge({
			property: 'left'
		}, this.options.crossFadeOptions));
		if (this.showing) return this.chain(this.show.bind(this, index));
		var now = this.now;
		var s = this.slides[index]; //saving bytes
		if (s) {
			if (this.now != index) {
				this.fx.start(-s.getPosition(this.container).x).chain(function(){
					s.addClass(this.options.currentSlideClass);
					this.showing = false;
					this.disableLinks();
					this.callChain();
					this.fireEvent('onSlideDisplay', index);
				}.bind(this));
			}
			this.now = index;
			this.setCounters();
		}
	}
});

var SimpleImageSlideShow;
(function(){
	var extender = function(extend, passContainer) {
		return {
			Extends: extend,
			Implements: Class.ToElement,
			options: {
				imgUrls: [],
				imgClass: 'screenshot',
				container: false
			},
			initialize: function(){
				var args = Array.link(arguments, {options: Object.type, container: $defined});
				this.container = document.id(args.container) || (args.options?document.id(args.options.container):false); //legacy
				if (passContainer) this.parent(this.container, args.options);
				else this.parent(args.options);
				this.options.imgUrls.each(function(url){
					this.addImg(url);
				}, this);
				this.show(this.options.startIndex);
			},
			addImg: function(url){
				if (this.container) {
					var img = new Element('img', {
						'src': url,
						'id': this.options.imgClass+this.slides.length
					}).addClass(this.options.imgClass).setStyle(
						'display', 'none').inject(this.container).addEvent(
						'click', this.slideClick.bind(this));
					this.slides.push(img);
					this.makeSlide(img);
					this.setCounters();
				}
				return this;
			}
		};
	};
	SimpleImageSlideShow = new Class(extender(SimpleSlideShow));
	SimpleImageSlideShow.Carousel = new Class(extender(SimpleSlideShow.Carousel, true));
})();
/*
name: TabSwapper.js
description: Handles the scripting for a common UI layout; the tabbed box.
License: http://www.clientcide.com/wiki/cnet-libraries#license

requires:
 - core: Element.Event, Fx.Tween, Fx.Morph
 - more: Element.Shortcuts, Element.Dimensions, Element.Measure

*/
var TabSwapper = new Class({
	Implements: [Options, Events],
	options: {
		selectedClass: 'tabSelected',
		mouseoverClass: 'tabOver',
		deselectedClass: '',
		rearrangeDOM: true,
		initPanel: 0, 
		smooth: false, 
		smoothSize: false,
		maxSize: null,
		effectOptions: {
			duration: 500
		},
		cookieName: null, 
		cookieDays: 999
//	onActive: $empty,
//	onActiveAfterFx: $empty,
//	onBackground: $empty
	},
	tabs: [],
	sections: [],
	clickers: [],
	sectionFx: [],
	initialize: function(options){
		this.setOptions(options);
		var prev = this.setup();
		if (prev) return prev;
		if (this.options.cookieName && this.recall()) this.show(this.recall().toInt());
		else this.show(this.options.initPanel);
	},
	setup: function(){
		var opt = this.options;
		sections = $$(opt.sections);
		tabs = $$(opt.tabs);
		if (tabs[0] && tabs[0].retrieve('tabSwapper')) return tabs[0].retrieve('tabSwapper');
		clickers = $$(opt.clickers);
		tabs.each(function(tab, index){
			this.addTab(tab, sections[index], clickers[index], index);
		}, this);
	},
	addTab: function(tab, section, clicker, index){
		tab = document.id(tab); clicker = document.id(clicker); section = document.id(section);
		//if the tab is already in the interface, just move it
		if (this.tabs.indexOf(tab) >= 0 && tab.retrieve('tabbered') 
			 && this.tabs.indexOf(tab) != index && this.options.rearrangeDOM) {
			this.moveTab(this.tabs.indexOf(tab), index);
			return this;
		}
		//if the index isn't specified, put the tab at the end
		if (!$defined(index)) index = this.tabs.length;
		//if this isn't the first item, and there's a tab
		//already in the interface at the index 1 less than this
		//insert this after that one
		if (index > 0 && this.tabs[index-1] && this.options.rearrangeDOM) {
			tab.inject(this.tabs[index-1], 'after');
			section.inject(this.tabs[index-1].retrieve('section'), 'after');
		}
		this.tabs.splice(index, 0, tab);
		clicker = clicker || tab;

		tab.addEvents({
			mouseout: function(){
				tab.removeClass(this.options.mouseoverClass);
			}.bind(this),
			mouseover: function(){
				tab.addClass(this.options.mouseoverClass);
			}.bind(this)
		});

		clicker.addEvent('click', function(e){
			e.preventDefault();
			this.show(index);
		}.bind(this));

		tab.store('tabbered', true);
		tab.store('section', section);
		tab.store('clicker', clicker);
		this.hideSection(index);
		return this;
	},
	removeTab: function(index){
		var now = this.tabs[this.now];
		if (this.now == index){
			if (index > 0) this.show(index - 1);
			else if (index < this.tabs.length) this.show(index + 1);
		}
		this.now = this.tabs.indexOf(now);
		return this;
	},
	moveTab: function(from, to){
		var tab = this.tabs[from];
		var clicker = tab.retrieve('clicker');
		var section = tab.retrieve('section');
		
		var toTab = this.tabs[to];
		var toClicker = toTab.retrieve('clicker');
		var toSection = toTab.retrieve('section');
		
		this.tabs.erase(tab).splice(to, 0, tab);

		tab.inject(toTab, 'before');
		clicker.inject(toClicker, 'before');
		section.inject(toSection, 'before');
		return this;
	},
	show: function(i){
		
		if (!$chk(this.now)) {
			this.tabs.each(function(tab, idx){
				if (i != idx) 
					this.hideSection(idx);
			}, this);
		}
		this.getAjax(i);
		//.showSection(i).save(i);
		return this;
	},
	save: function(index){
		if (this.options.cookieName) 
			Cookie.write(this.options.cookieName, index, {duration:this.options.cookieDays});
		return this;
	},
	recall: function(){
		return (this.options.cookieName)?$pick(Cookie.read(this.options.cookieName), false): false;
	},
	hideSection: function(idx) {
		var tab = this.tabs[idx];
		if (!tab) return this;
		var sect = tab.retrieve('section');
		if (!sect) return this;
		if (sect.getStyle('display') != 'none') {
			this.lastHeight = sect.getSize().y;
			sect.setStyle('display', 'none');
			tab.swapClass(this.options.selectedClass, this.options.deselectedClass);
			this.fireEvent('onBackground', [idx, sect, tab]);
		}
		return this;
	},
	
	getAjax: function(idx) {
		var tab = this.tabs[idx];
		if (!tab) return this;
		var sect = tab.retrieve('section');
		if (!sect) return this;

		var spinner = new Element('span', {
			'class': 'ajax-loader'
		});
		
		if(sect.hasClass('notloaded')) {
			var scrollbox
			var ajax = new Request({
				url: 'http://www.fifaonlineligen.com/publish/profildaten-ajax.html',
				method: 'get',
				data: 'section='+sect.get('id')+'&ajax=true&'+window.location.search.split('?')[1],
				onRequest: function() {
					sect.getParent('div').adopt(spinner);
				},
				onSuccess: function(html) {
					sect.toggleClass('notloaded');
					sect.set('html', html);
					spinner.dispose();
					sect.scrollbox = new MooScroll({selector:'#'+sect.get('id')});
					if(sect.get('id') == 'leagues') {
						leagueSlideshow = new NJS.slideshow('leagues', {});
					}
				}
				
			});
			ajax.send();
		}
		this.showSection(idx);
	},
	
	showSection: function(idx) {
		var tab = this.tabs[idx];
		if (!tab) return this;
		var sect = tab.retrieve('section');
		if (!sect) return this;

		var smoothOk = this.options.smooth && !Browser.Engine.trident4;
		if (this.now != idx) {
			if (!tab.retrieve('tabFx')) 
				tab.store('tabFx', new Fx.Morph(sect, this.options.effectOptions));
			var overflow = sect.getStyle('overflow');
			var start = {
				display:'block',
				overflow: 'hidden'
			};
			if (smoothOk) start.opacity = 0;
			var effect = false;
			if (smoothOk) {
				effect = {opacity: 1};
			} else if (sect.getStyle('opacity').toInt() < 1) {
				sect.setStyle('opacity', 1);
				if (!this.options.smoothSize) this.fireEvent('onActiveAfterFx', [idx, sect, tab]);
			}
			if (this.options.smoothSize) {
				var size = sect.getDimensions().height;
				if ($chk(this.options.maxSize) && this.options.maxSize < size) 
					size = this.options.maxSize;
				if (!effect) effect = {};
				effect.height = size;
			}
			if ($chk(this.now)) this.hideSection(this.now);
			if (this.options.smoothSize && this.lastHeight) start.height = this.lastHeight;
			sect.setStyles(start);
			if (effect) {
				tab.retrieve('tabFx').start(effect).chain(function(){
					this.fireEvent('onActiveAfterFx', [idx, sect, tab]);
					sect.setStyles({
						height: this.options.maxSize == effect.height ? this.options.maxSize : "auto",
						overflow: overflow
					});
					sect.getElements('input, textarea').setStyle('opacity', 1);
				}.bind(this));
			}
			this.now = idx;
			this.fireEvent('onActive', [idx, sect, tab]);
		}
		tab.swapClass(this.options.deselectedClass, this.options.selectedClass);
		//return this;
		this.save(idx);
	}
});

/**
 * MooScroll beta [for mootools 1.2]
 * @author Jason J. Jaeger | greengeckodesign.com
 * @version 0.59
 * @license MIT-style License
 *			Permission is hereby granted, free of charge, to any person obtaining a copy
 *			of this software and associated documentation files (the "Software"), to deal
 *			in the Software without restriction, including without limitation the rights
 *			to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *			copies of the Software, and to permit persons to whom the Software is
 *			furnished to do so, subject to the following conditions:
 *	
 *			The above copyright notice and this permission notice shall be included in
 *			all copies or substantial portions of the Software.
 *	
 *			THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *			IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *			FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *			AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *			LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *			OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 *			THE SOFTWARE.
 **/
var MooScroll=new Class({Implements:Options,options:{selector:".scroll",increment:30,upBtnClass:"upBtn",downBtnClass:"downBtn",scrollBarClass:"scrollBar",scrollHandleClass:"scrollHandle",scrollHandleBGClass:"scrollHandleBG",scrollHandleTopClass:"scrollHandleTop",scrollHandleMiddleClass:"scrollHandleMiddle",scrollHandleBottomClass:"scrollHandleBottom",scrollControlsYClass:"scrollControlsY",handleOpacity:1,handleActiveOpacity:0.85,disabledOpacity:0.5,fullWindowMode:false,smoothMooScroll:{toAnchor:true,toMooScrollArea:true},restrictedBrowsers:[Browser.Engine.presto925,Browser.Platform.ipod,Browser.Engine.webkit419]},initialize:function(a){if(this.options.restrictedBrowsers.contains(true)){return}this.setOptions(a);this.mooScrollAreas=[];this.windowFxScroll=new Fx.Scroll(document.window,{wait:false});$(document.body).getElements(this.options.selector).each(function(c,b){var d=new MooScrollArea(this.options,c,this.windowFxScroll);this.mooScrollAreas.include(d);if(this.options.smoothMooScroll.toAnchor||this.options.smoothMooScroll.toMooScrollArea){this.smoothMooScroll=new SmoothMooScroll({toAnchor:this.options.smoothMooScroll.toAnchor,toMooScrollArea:this.options.smoothMooScroll.toMooScrollArea},d.contentEl,this.windowFxScroll)}}.bind(this))},loadContent:function(a){this.mooScrollAreas.each(function(c,b){c.loadContent(a)})},refresh:function(){this.mooScrollAreas.each(function(b,a){b.refresh()})},setSlider:function(a){this.mooScrollAreas.each(function(c,b){c.setSlider(a)})}});var MooScrollArea=new Class({Implements:Options,initialize:function(a,b,c){this.windowFxScroll=c;this.setOptions(a);this.parentEl=b.setProperty("rel","MooScrollArea");this.viewPort={x:$(window).getSize().x,y:$(window).getSize().y};this.parentElPadding=this.parentEl.getStyles("padding-top","padding-right","padding-bottom","padding-left");this.paddingHeight=parseFloat(this.parentEl.getStyle("padding-top"))+parseFloat(this.parentEl.getStyle("padding-bottom"));this.paddingWidth=parseFloat(this.parentEl.getStyle("padding-left"))+parseFloat(this.parentEl.getStyle("padding-right"));this.contentEl=new Element("div",{"class":"contentEl"}).adopt(this.parentEl.getChildren()).inject(this.parentEl,"top");this.parentEl.setStyle("overflow","hidden").setStyles({padding:0,width:parseFloat(this.parentEl.getStyle("width"))+this.paddingWidth,height:parseFloat(this.parentEl.getStyle("height"))+this.paddingHeight});this.borderHeight=parseFloat(this.parentEl.getStyle("border-top-width"))+parseFloat(this.parentEl.getStyle("border-bottom-width"));this.contentEl.setStyles({height:this.parentEl.getSize().y-this.borderHeight,overflow:"hidden",padding:0});this.paddingEl=new Element("div",{"class":"paddingEl"}).adopt(this.contentEl.getChildren()).inject(this.contentEl,"top").setStyles(this.parentElPadding);if(this.options.fullWindowMode){$(document).getElement("html").setStyle("overflow","hidden");this.parentEl.setStyles({height:"100%",width:"100%",position:"absolute"});this.contentEl.setStyles({height:"100%",width:"100%",position:"absolute"})}this.scrollControlsYWrapper=new Element("div",{"class":this.options.scrollControlsYClass}).inject(this.parentEl,"bottom");this.upBtn=new Element("div",{"class":this.options.upBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.downBtn=new Element("div",{"class":this.options.downBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollBar=new Element("div",{"class":this.options.scrollBarClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollHandle=new Element("div",{"class":this.options.scrollHandleClass}).inject(this.scrollBar,"inside");this.scrollHandleTop=new Element("div",{"class":this.options.scrollHandleTopClass}).inject(this.scrollHandle,"inside");this.scrollHandleBG=new Element("div",{"class":this.options.scrollHandleBGClass}).inject(this.scrollHandle,"inside");this.scrollHandleMiddle=new Element("div",{"class":this.options.scrollHandleMiddleClass}).inject(this.scrollHandle,"inside");this.scrollHandleBottom=new Element("div",{"class":this.options.scrollHandleBottomClass}).inject(this.scrollHandle,"inside");this.coverUp=new Element("div").inject(this.scrollControlsYWrapper,"bottom");this.fixIE6CSSbugs();this.overHang=this.paddingEl.getSize().y-this.parentEl.getSize().y;this.setHandleHeight();if(this.overHang<=0){this.greyOut();return}this.initSlider();this.parentEl.addEvents({mousewheel:function(d){d=new Event(d).stop();if(d.wheel>0){this.scrollUp(true)}else{if(d.wheel<0){this.scrollDown(true)}}}.bind(this),keydown:function(d){if(d.key==="up"){d=new Event(d).stop();this.scrollUp(true)}else{if(d.key==="down"||d.key==="space"){d=new Event(d).stop();this.scrollDown(true)}}}.bind(this),click:function(d){this.hasFocus=true;this.hasFocusTimeout=(function(){$clear(this.hasFocusTimeout);this.hasFocus=true}.bind(this)).delay(50)}.bind(this)});this.contentEl.addEvents({scroll:function(d){this.slider.set(this.contentEl.getScroll().y)}.bind(this)});this.scrollHandle.addEvents({mousedown:function(d){this.scrollHandle.addClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleActiveOpacity)}.bind(this)});document.addEvents({mouseup:function(d){this.scrollHandle.removeClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleOpacity);this.upBtn.removeClass(this.options.upBtnClass+"-Active");this.downBtn.removeClass(this.options.downBtnClass+"-Active")}.bind(this),keydown:function(d){if((this.hasFocus||this.options.fullWindowMode)&&(d.key==="down"||d.key==="space"||d.key==="up")){this.parentEl.fireEvent("keydown",d)}}.bind(this),click:function(d){this.hasFocus=false}.bind(this)});window.addEvent("resize",function(){$clear(this.refreshTimeout);if(this.options.fullWindowMode){this.refreshTimeout=(function(){$clear(this.refreshTimeout);if(this.viewPort.x!=$(window).getSize().x||this.viewPort.y!=$(window).getSize().y){this.refresh();this.viewPort.x=$(window).getSize().x;this.viewPort.y=$(window).getSize().y}}.bind(this)).delay(250)}}.bind(this));this.upBtn.addEvents({mousedown:function(d){$clear(this.upInterval);$clear(this.downInterval);this.upInterval=this.scrollUp.periodical(10,this);this.upBtn.addClass(this.options.upBtnClass+"-Active")}.bind(this),mouseup:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)});this.downBtn.addEvents({mousedown:function(d){$clear(this.upInterval);$clear(this.downInterval);this.downInterval=this.scrollDown.periodical(10,this);this.downBtn.addClass(this.options.downBtnClass+"-Active")}.bind(this),mouseup:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)})},initSlider:function(){this.slider=new Slider(this.scrollBar,this.scrollHandle,{range:[0,Math.round(this.overHang)],mode:"vertical",onChange:function(a,b){this.contentEl.scrollTo(0,a);this.webKitKludge(a)}.bind(this)}).set(0)},webKitKludge:function(a){if(!Browser.Engine.webkit){return}if(this.step>a){this.step=a;return}$clear(this.sliderTimeout);this.sliderTimeout=(function(){$clear(this.sliderTimeout);var b=(1*this.paddingEl.getSize().y)/100;if((b+a)>=this.overHang){if(this.paddingElTopMargin==null){this.paddingElTopMargin=parseFloat(this.paddingEl.getStyle("margin-top"))}this.paddingEl.setStyle("margin-top",this.paddingElTopMargin-b);if(!this.scrollHandleTopMargin){this.scrollHandleTopMargin=parseFloat(this.scrollHandle.getStyle("margin-top"))}this.scrollHandle.setStyle("margin-top",this.scrollHandleTopMargin+2);this.contentEl.scrollTo(0,this.overHang);this.step=this.overHang}else{this.paddingEl.setStyle("margin-top",this.paddingElTopMargin);this.scrollHandle.setStyle("margin-top",this.scrollHandleTopMargin);this.contentEl.scrollTo(0,a);this.step=a}}.bind(this)).delay(10)},scrollUp:function(a){var b=this.contentEl.getScroll().y-30;this.slider.set(b);if(this.contentEl.getScroll().y<=0&&a){document.window.scrollTo(0,document.window.getScroll().y-this.options.increment)}},scrollDown:function(c){var d=this.contentEl.getScroll().y+this.options.increment;this.slider.set(d);var a=(1*this.paddingEl.getSize().y)/100;var b=(this.paddingEl.getSize().y-this.parentEl.getSize().y)<=(this.contentEl.getScroll().y+a);if(b&&c){document.window.scrollTo(0,document.window.getScroll().y+this.options.increment)}},fixIE6CSSbugs:function(){if(Browser.Engine.trident4){this.parentEl.setStyle("height",this.parentEl.getStyle("height"));this.contentEl.setStyle("height",this.parentEl.getStyle("height"));var c=this.scrollBar.getStyle("top").toInt();var a=this.scrollBar.getStyle("bottom").toInt();var b=this.parentEl.getSize().y-this.borderHeight;this.scrollControlsYWrapper.setStyles({height:b});this.scrollBar.setStyles({height:b-c-a})}},setHandleHeight:function(){var a=(100-((this.overHang*100)/this.paddingEl.getSize().y));this.handleHeight=((a*this.parentEl.getSize().y)/100)-(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y);if((this.handleHeight+this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)>=this.scrollBar.getSize().y){this.handleHeight-=(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)*2}if(this.scrollHandle.getStyle("min-height")&&this.handleHeight<parseFloat(this.scrollHandle.getStyle("min-height"))){this.handleHeight=parseFloat(this.scrollHandle.getStyle("min-height"))+this.scrollHandleBottom.getSize().y+this.scrollHandleTop.getSize().y}this.scrollHandle.setStyles({height:this.handleHeight})},greyOut:function(){this.scrollHandle.setStyles({display:"none"});this.upBtn.setStyles({opacity:this.options.disabledOpacity});this.scrollControlsYWrapper.setStyles({opacity:this.options.disabledOpacity});this.downBtn.setStyles({opacity:this.options.disabledOpacity});this.scrollBar.setStyles({opacity:this.options.disabledOpacity});this.coverUp.setStyles({display:"block",position:"absolute",background:"white",opacity:0.01,right:"0",top:"0",width:"100%",height:this.scrollControlsYWrapper.getSize().y})},unGrey:function(){this.scrollHandle.setStyles({display:"block",height:"auto"});this.scrollControlsYWrapper.setStyles({opacity:1});this.upBtn.setStyles({opacity:1});this.downBtn.setStyles({opacity:1});this.scrollBar.setStyles({opacity:1});this.coverUp.setStyles({display:"none",width:0,height:0});this.setHandleHeight()},loadContent:function(a){this.slider.set(0);this.paddingEl.empty().set("html",a);this.refresh()},refresh:function(){var a=Math.round(((100*this.step)/this.overHang));if(this.options.fullWindowMode){var b=$(window).getSize();this.parentEl.setStyles({width:"100%",height:"100%"})}this.fixIE6CSSbugs();this.overHang=this.paddingEl.getSize().y-this.parentEl.getSize().y;this.setHandleHeight();if(this.overHang<=0){this.greyOut();return}else{this.unGrey()}this.scrollHandle.removeEvents();var c=Math.round((a*this.overHang)/100);this.initSlider();this.slider.set(c);if(Browser.Engine.trident4){this.scrollHandleBG.setStyle("height","0").setStyle("height","100%")}if(this.options.smoothMooScroll.toAnchor||this.options.smoothMooScroll.toMooScrollArea){this.smoothMooScroll=new SmoothMooScroll({toAnchor:this.options.smoothMooScroll.toAnchor,toMooScrollArea:this.options.smoothMooScroll.toMooScrollArea},this.contentEl,this.windowFxScroll)}},setSlider:function(a){if(a=="top"){this.slider.set(0)}else{if(a=="bottom"){this.slider.set("100%")}else{this.slider.set(a)}}}});var SmoothMooScroll=new Class({Extends:Fx.Scroll,initialize:function(b,c,d){this.setOptions(b);this.windowFxScroll=d;this.context=c;c=c||document;this.context=c;var f=c.getDocument(),e=c.getWindow();this.parent(c,b);this.links=(this.options.links)?$$(this.options.links):$$(f.links);var a=e.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(h){if(h.href.indexOf(a)!=0){return}var g=h.href.substr(a.length);if(g&&$(g)&&$(g).getParents().contains($(this.context))){this.useLink(h,g,true)}else{if(g&&$(g)&&!this.inMooScrollArea($(g))){this.useLink(h,g,false)}}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){e.location.hash=this.anchor},true)}},inMooScrollArea:function(a){return a.getParents().filter(function(c,b){return c.match("[rel=MooScrollArea]")}).length>0},putAnchorInAddressBar:function(a){window.location.href="#"+a},useLink:function(b,a,c){b.removeEvents("click");b.addEvent("click",function(d){if(!a||!$(a)){return}this.anchor=a;if(c){if(this.options.toMooScrollArea&&this.options.toAnchor){this.windowFxScroll.toElement(this.context.getParent()).chain(function(f,e){this.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}.bind(this))}else{if(this.options.toMooScrollArea){this.windowFxScroll.toElement(this.context.getParent()).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}else{if(this.options.toAnchor){this.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}}}}else{this.windowFxScroll.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}d.stop()}.bind(this))}});

/* ---- NJS ----- */

var NJS = NJS || {};

NJS.tabs = new Class({
	Implements: Options,
	options: {
		activeItem: null
	},
	initialize: function(element, options) {
		
		var tabs = new TabSwapper({
			  selectedClass: 'active',
			  deselectedClass: 'inactive',
			  tabs: $$('#profile-nav li'),
			  clickers: $$('#profile-nav li a'),
			  sections: $$('div.foreground-inner div.panel'),
			  cookieName: 'profile-tabs',
			  smooth: true,
			  smoothSize: false
			});
	}

});

NJS.slideshow = new Class({
	Implements: Options,
	options: {
	
	},
	initialize: function(element, options) {
		
		this.element = $(element);
		this.items = this.element.getElements('div.league-item');
		
		if (this.items.length > 1) {
			var pagenav = new Element('ul', {'class': 'pagenav'});
			var pagenavItems = [];
			pagenavItems.push(new Element('li', {'class': 'back'}));
			pagenavItems.push(new Element('li', {'class': 'forward'}));
			
			var linkItems = [];
			linkItems.push(new Element('a', {
				'id': 'pagenavButtonBack',
				'href': 'javascript:void(0);',
				'html': '<span>Zur&uuml;ck</span>'
			}));
			linkItems.push(new Element('a', {
				'id': 'pagenavButtonForward',
				'href': 'javascript:void(0);',
				'html': '<span>Vor</span>'
			}));
			
			linkItems.each(function(el, index) { el.inject(pagenavItems[index]); });
			pagenavItems.each(function(el, index) { el.inject(pagenav); });
			this.element.adopt(pagenav);
			
			
			var pagecounter = new Element('span', {
				'class': 'pagecounter',
				'html': '<span id="slideNow">x</span> von <span id="slideMax">x</span>'
			});
			
			this.element.adopt(pagecounter);
			this.start(this);
		}
	},
	
	start: function(that) {
		var slideshow = new SimpleSlideShow({
			startIndex: 0,
			slides: that.items,
			currentIndexContainer: 'slideNow',
			maxContainer: 'slideMax',
			nextLink: 'pagenavButtonForward',
			prevLink: 'pagenavButtonBack'
		});
	}

});

NJS.replays = new Class({
	Implements: Options,
	options: {
		activeItem: null
	},
	initialize: function(element, options) {
		var that = this;
		this.element = $(element);
		
		running = false;
		news = [];
		
		news.activeItem = 1;
		news.item = []
		news.slider = $('replays').getElement('div.container').getElement('div.helper');
		news.item.box = $$('#replays div.container div.helper a.replay');
	
		
		news.numberOfItems = news.item.box.length;
		news.item.boxW = news.item.box[0].getSize().x + news.item.box[0].getStyle('margin-right').toInt();
		news.itemsW = news.numberOfItems * news.item.boxW;
		
		news.buttons = $$('span.button-replay');
		that.setButtonsInvisible(news, news.buttons, '');
		that.updateResults(news);
		
		news.buttons.each(function(el,index) {
			
			if (el.hasClass('back')) {
				el.addEvent('click', function(event) {
					if (running == false) {
						news.activeItem--;
						that.move(news, 'back', that);
					}
				});
			} else if (el.hasClass('forward')) {
					el.addEvent('click', function(event) {
						if (running == false) {
							news.activeItem++;
							that.move(news, 'forward', that);
						}
					});
			}
		});
	},
	move: function(el,direction, thatObject) {
		el.oldLeft = el.slider.getStyle('left');
		el.newLeftBack = (el.slider.getStyle('left').toInt() + el.item.boxW) + 'px';
		el.newLeftForward = (el.slider.getStyle('left').toInt() - el.item.boxW) + 'px';
		
		if (direction == 'back') {
			el.effect = new Fx.Morph(el.slider, {duration: 'normal', link: 'cancel', transition: Fx.Transitions.Expo.easeInOut,
				onStart: function(){
	        running = true;
	        thatObject.setButtonsInvisible(news, news.buttons, direction);
	        thatObject.updateResults(el);
				},
				onComplete: function(){
	        running = false;
				}
		});
			el.effect.start({'left': el.oldLeft, 'left': el.newLeftBack});
		} else if (direction == 'forward') {
			el.effect = new Fx.Morph(el.slider, {duration: 'normal', link: 'cancel', transition: Fx.Transitions.Expo.easeInOut,
				onStart: function(){
					running = true;
					thatObject.setButtonsInvisible(news, news.buttons, direction);
					thatObject.updateResults(el);
				},
				onComplete: function(){
	        running = false;
				}
			});
			el.effect.start({'left': el.oldLeft, 'left': el.newLeftForward});
		}
	},
	setButtonsInvisible: function(el, buttons, direction) {
			if ((el.slider.getStyle('left') == -el.item.boxW + 'px' && direction == 'back') || (el.slider.getStyle('left') == '0px' && direction == '') || news.numberOfItems < 5) {
				buttons[0].setStyle('visibility', 'hidden');
			} else {
				buttons[0].setStyle('visibility', 'visible');
			}
			if ((el.slider.getStyle('left') == (-el.itemsW + 5 * el.item.boxW) + 'px'  && direction == 'forward') || news.numberOfItems < 5) {
				buttons[1].setStyle('visibility', 'hidden');
			} else {
				buttons[1].setStyle('visibility', 'visible');
			}

	},
	updateResults: function(el) {
		if (!$('replays').getElement('p.results')) {
			var results = new Element('p', {
				'class': 'results',
				'html': 'Results'
			});
			$('replays').adopt(results);	
		}
		$('replays').getElement('p.results').set('html', el.activeItem + ' bis ' + (el.activeItem + 3) + ' von ' + news.numberOfItems + ' Replays');
	}
});

window.addEvent('domready', function() {
	if($('replays')) {
		var replays = new NJS.replays('#replays div.container');
	}
	
	if($('profile-nav')) {
		var tabs = new NJS.tabs();
	}
	
	if($$('last-results')) {
		var tabs = [];
		$$('.last-results.tabs').each(function(el, index) {
			tabs[index] = new TabSwapper({
			  selectedClass: 'active',
			  deselectedClass: 'inactive',
			  tabs: el.getElements('li'),
			  clickers: $$('#profile-nav li a'),
			  sections: el.getElement('div.results-content').getElements('div'),
			  cookieName: 'last-results-'+index,
			  smoothSize: false
			});
		});
	}
	
	var resultHeadlines = $$('h1.channelhead-results');
	if(resultHeadlines) {
		resultHeadlines.shift();
		resultHeadlines.setStyle('display', 'none');
	}
});
