var HoverSubnavigation = new Class({
	Implements: [Options, Events],
		
	options: {
		mainNaviSelector: 'DIV.mainnavi UL LI',
		subNaviSelector: '.subUL',
		subNaviId: 'subnavigation'
	},
	
	initialize: function(options) {
	
		this.setOptions(options);
	
		var mainNaviItems = $$(this.options.mainNaviSelector);
		var subNaviItems = $$(this.options.subNaviSelector);
		var subNavi = $(this.options.subNaviId);
	
		//subnavigation
		$each(mainNaviItems, function(mainNaviItem){
			var mainNaviLink = mainNaviItem.getElement('a');
			var mainNaviImage = mainNaviItem.getElement('img');
		
			mainNaviImage.setProperty('rel', mainNaviImage.get('src'));	
			mainNaviLink.removeProperty('onmouseout');
			
			$each(subNaviItems, function(subNaviItem){
				if(subNaviItem.hasClass(mainNaviItem.get('id'))) {
					
					if(mainNaviItem.hasClass('aktiv')){
						subNavi.addClass('displayMenu');
						subNaviItem.addClass('activeMenu');	
						subNaviItem.getParent().getPrevious('li').addClass('activeMenu');
						$$('.activeMenu').addClass('displayItem');
					}
					
					mainNaviItem.addEvent('mouseenter', function(){
						this.setMenuItemBack();
						subNavi.setStyle('display', 'block');	
						subNaviItem.getParent().getPrevious('li').addClass('displayItem');
						subNaviItem.addClass('displayItem');	
						mainNaviItem.addClass('selected');
					}.bind(this));
				}
			}.bind(this));
		}.bind(this));
	
		if($('parent_425')){
			$('parent_425').addEvent('mouseenter', function() {
				this.setMenuItemBack();
				subNavi.setStyle('display', 'none');
				$('parent_425').addClass('selected');
			}.bind(this));
		}
		if($('naviContainer')) {
			$('naviContainer').addEvent('mouseleave', function(){
				this.setMenuItemBack();
				subNavi.setStyle('display', 'none');
				$$('.activeMenu').addClass('displayItem');
			}.bind(this));	
		}
	},
		
	setMenuItemBack: function() {
		$each($$('LI.selected img'), function(menuImg) {
				menuImg.set('src', menuImg.get('rel'));
		});
		$$('.displayItem').removeClass('displayItem');
		$$('DIV.mainnavi UL LI.selected').removeClass('selected');
	}
});



var SlideHeadPictures = new Class({
	Implements: [Options, Events],
		
	options: {
		containerSelector: 'div#headPicture',
		itemsSelector: 'div#headPicture DIV.startElement',
		naviSelector: 'div#headPicture div.startnavi',
		tweenDuration: 3000,
		changeDuration: 20000,
		naviImage: 'fileadmin/templates/2011/images/inactive.gif',
		naviImageActive: 'fileadmin/templates/2011/images/active.gif'
	},
		
	initialize: function(options) {
		
		this.setOptions(options);
		var currentImage = 0;
		var imageCount = 0;
		var periodical = new Object();
		var container = $$(this.options.containerSelector);
		var headerImages = $$(this.options.itemsSelector);
		var naviContainer = $$(this.options.naviSelector);
		
		var blendImage =  function(imageNum) { 		
			if(imageNum || imageNum == 0) {
				currentImage = imageNum;
			} else {
				currentImage++;
			}
			
			if(currentImage == imageCount) {
				currentImage = 0;
			}
		
			$$('.startElement').fade('out');
			$('imageBlender_'+currentImage).fade('in');
			$$('.naviElement').set('src',this.options.naviImage);
			$$('.navi_'+currentImage).set('src', this.options.naviImageActive);
			if(imageCount > 1) {
				$clear(periodical);
				periodical = blendImage.periodical(this.options.changeDuration);
			}
		}.bind(this);
		
		$each(container, function(headerImageBlock, index) {
			$each(headerImages, function(headerImage, index) {
					 headerImage.setStyle('position', 'absolute');
					 headerImage.setStyle('top', 0);
					 headerImage.setStyle('left', 0);
						
					 headerImage.setStyle('z-index', (30 + index));
					 if(index>0)
						headerImage.setStyle('opacity', 0);
					 headerImage.setStyle('display', 'block');
						
					 headerImage.set('tween', {duration: this.options.tweenDuration});
					 headerImage.set('id', 'imageBlender_' + index);
		
			}.bind(this));
		
			imageCount = headerImages.length;
			
			if(imageCount > 1) {
				periodical = blendImage.periodical(this.options.changeDuration);
				var countNavi=0;
				naviContainer.each(function(navi) {
					headerImages.each(function(imageelement) {
						var naviElement = new Element('img', {
													  'class':'navi_'+countNavi+' naviElement',
													  'src':this.options.naviImage
													  });
						if (countNavi == 0)
							naviElement.set('src',this.options.naviImageActive);
						var currentNavi = countNavi++;
						naviElement.inject(navi,'bottom');
						naviElement.addEvent('click', function(){
							blendImage(currentNavi);
						}.bind(this));
					}.bind(this));
					countNavi=0;
				}.bind(this));
			}
		}.bind(this));	
	}
});


window.addEvent('domready', function(){    
		var subnavigation = new HoverSubnavigation();
		var headImageSlide = new SlideHeadPictures();
									 
        // set up Kopfzentrum container element 
        var count=0;
		
		$$('DIV.contentPulldown').each(function(pulldown){
			var myDiv = new Element('DIV', {'class':'menu-container'});
			var myDivText = new Element('span');
			var myDiv2 = new Element('DIV', {'class': 'container-div'});
			var myUL = new Element('UL', {'class':'links'});
			var myImageDiv = new Element('DIV', {'class':'moreImage'});
			var myImage = new Element('IMG', {'src':'fileadmin/templates/2011/images/more.gif'});
			var headerDivs = pulldown.getChildren('div.csc-header');
			var headerText = pulldown.getElement('h2').get('text');
			
			$$(pulldown.getChildren()).setStyle('display', 'none');
			
			myDiv.inject(pulldown, 'before');
			myDivText.set('html', headerText);
			myDivText.inject(myDiv);
			myDiv2.inject(myDiv);
			myUL.inject(myDiv2, 'bottom');
			
			$each(headerDivs, function(headerDiv){
				if(headerDiv.getElement('h1')){
						var headerRel = 'content_'+count;
						var headerText = headerDiv.getElement('h1').get('text');
						var myLi = new Element('LI');
						var myA = new Element('A', {'rel': headerRel, 'text':headerText});
								
						myA.inject(myLi);
						myLi.inject(myUL, 'bottom');
						myA.addEvent('click', function(){
							$$(pulldown.getChildren()).setStyle('display', 'none');
							$(headerRel).setStyle('display', 'block');
							setNextElementBlock($(headerRel));
							myDivText.set('text', headerText);
						});
						headerDiv.setStyle('display', 'none');
						headerDiv.getNext('p').set('id', headerRel);
						count++;
				}
			});
			
			myImageDiv.inject(myDiv,'after');
			myImage.inject(myImageDiv);
		});	
		
		$$('DIV.menu-container').each(function(el){							// Select-List setzen		
			var list=el.getElement('div');
			var myFx = new Fx.Slide(list).hide();
			var count = 0;
			var myImage = el.getNext('div');
			
			myImage.addEvent('click', function(){
				el.fireEvent('click');
			});
			
			el.addEvent(												
				'click', function(el){										// Selectliste-Oeffnen-Listener
					if (list.getStyle('margin-top')<'0px') {
						$$('.menu-container DIV').setStyle('height', '0px');
						$$('.menu-container DIV.container-div').setStyles({'height': '', 'margin-top':'-200px'});
						myFx.cancel();
						myFx.slideIn('vertical');
					}else{
						myFx.cancel();
						myFx.slideOut();
						count = 0;
					}
			});
	});
		$each($$("div.containerElement"), function(container, index){
			var mehrButton 		= container.getElement('div.mehrContent span.mehrLink');
			var mehrInhaltBox	= container.getElement('div.textContainer');
			var teaserInhaltBox	= container.getElement('div.shortyContainer');
			
			if(mehrButton){
				var sliderEffectContent = new Fx.Slide(mehrInhaltBox).hide();
				var sliderEffectShorty  = new Fx.Slide(teaserInhaltBox).show();
				mehrInhaltBox.setStyle('display', 'block');
				
				container.sliderEffectContent = sliderEffectContent;
				container.sliderEffectShorty = sliderEffectShorty;
				container.teaserInhaltBox = teaserInhaltBox;
				
				container.mehrButton= mehrButton;
				
				mehrButton.container = container;
				
				mehrButton.addEvent('click', function(){
					$each($$("div.containerElement.openBox"), function(container, index){
						container.removeClass('openBox');
						container.mehrButton.setStyle('visibility', 'visible');
						container.sliderEffectContent.slideOut();
					});
					
					this.setStyle('visibility', 'hidden');
					this.container.sliderEffectContent.slideIn();
					this.container.addClass('openBox');
				});
			}
		});
		
		$each($$("div.buttonContent"), function(buttonContent, divIndex){
			
			var buttonDiv = new Element('div', {'id':'kzl_buttons_'+divIndex, 'class':'kzl_buttons'});	
			var buttonTextDiv = new Element('div', {'id':'kzl_buttons_text_'+divIndex,'class':'kzl_buttons_text'});
			
			buttonDiv.inject(buttonContent, 'bottom');
			buttonTextDiv.inject(buttonContent, 'bottom');
			
			$each(buttonContent.getChildren("div.kzl_button"), function(button){
				button.inject(buttonDiv, 'bottom');	
				button.addEvent('click', function(){
					$$("div#kzl_buttons_text_"+divIndex+" div.kzl_button_text").setStyle('display', 'none');
					$(button.get('rel')).setStyle('display', 'block');
					$each($$("div#kzl_buttons_"+divIndex+" div.kzl_button"), function(button2){
						button2.getElement('img').set('src','fileadmin/templates/2011/images/button_'+button2.get('rel')+'.png');
					});
					button.getElement('img').set('src','fileadmin/templates/2011/images/button_'+button.get('rel')+'_active.png');
				});
			});
			
			$each(buttonContent.getChildren("div.kzl_button_text"), function(text,index){
				text.inject(buttonTextDiv, 'bottom');
				text.setStyle('display', 'none');
				if(index==0){	
					$each($$("div.kzl_button"), function(button2){
						if(button2.get('rel')==text.get('id'))
							button2.fireEvent('click');
					});
				}
			});
		});
		
		$each($$('div.newsText'), function(newsText) {
			newsText.addEvents({
				mouseover: function(){
							var newsSize = newsText.getScrollSize();
							newsText.tween('height', newsSize.y);
						},
				mouseout : function(){
							newsText.tween('height', 460);
				}
			});
		});
});

function setNextElementBlock(element) {
	var nextElement = element.getNext();
	if(!nextElement.hasClass('csc-header')) {
		nextElement.setStyle('display', 'block');
		setNextElementBlock(nextElement);
	}
}


