jQuery(document).ready(function($) {
	
	jQuery('#agreement').hide();
	$('#agreement_link').click(function() {
  			$('#agreement').toggle();
	});
	
})
/*
jQuery(function(){
	gal1 = jQuery('div.gallery-area').gallery({
		duration: 500,
		autoRotation: 5000,
		listOfSlides: 'div.slide > ul > li',
		switcher:'ul.swicher > li'
	});
	initDrop();
	initSharePopup();
	initPopups();
	openClose();
	initVideoLightbox();
});
*/
jQuery(function(){
    gal1 = jQuery('div.gallery-area').gallery({
        duration: 500,
        autoRotation: 5000,
        listOfSlides: 'div.slide > ul > li',
        switcher:'ul.swicher > li'
    });
    initDrop();
    initSharePopup();
    openClose();
    initVideoLightbox();
});

/* Fixes loading the image width in lightboxes - by MPR 08.02.2011 */
jQuery(window).load(function () {
    initPopups(); 
});

/*
function openClose(){
	var _holder = jQuery('.table-box2 tr');
	_holder.each(function(){
		var hold = jQuery(this);
		var _opener = jQuery('.open-close',hold);
		var _block = jQuery('.ort',hold);
		var _text = jQuery('.text',hold);
		_opener.click(function(){
			if(_text.length){
				if(hold.hasClass('active')){
					hold.removeClass('active');
					_block.removeAttr('class');
				}
				else{
					hold.addClass('active');
					_block.addClass('ort');
				}
			}
			return false;
		})
	})
}
*/
/*CR: Klick auf Titel oder Pfeil öffnet Veranstaltung*/
function openClose(){
	var _holder = jQuery('.table-box2 tr');
	var _textholder = jQuery('.table-box2 tr');
	
	_holder.each(function(){
		var hold = jQuery(this);
		var _opener = jQuery('.open-close',hold);
		var _block = jQuery('.ort',hold);
		var _text = jQuery('.text',hold);
		_opener.click(function(){
			if(_text.length){
				if(hold.hasClass('active')){
					hold.removeClass('active');
					// dont touch class -> make comment
					//_block.removeAttr('class');
				}
				else{
					hold.addClass('active');
					// dont touch class -> make comment
					//_block.addClass('ort');
				}
			}
			return false;
		})
	})
	_textholder.each(function(){
		var hold = jQuery(this);
		var _opener = jQuery('.open-close-text',hold);
		var _block = jQuery('.ort',hold);
		var _text = jQuery('.text',hold);
		_opener.click(function(){
			if(_text.length){
				if(hold.hasClass('active')){
					hold.removeClass('active');
					// dont touch class -> make comment
					//_block.removeAttr('class');
				}
				else{
					hold.addClass('active');
					// dont touch class -> make comment
					//_block.addClass('ort');
				}
			}
			return false;
		})
	})
}

// initFadePopup
function initSharePopup(){
	jQuery('.share > li').each(function(){
		var _this = jQuery(this),
			_popup = jQuery('.share-drop', _this),
			_speed = 300;
		
		_popup.css({
			display: 'none',
			opacity: 0
		})
		
		if(jQuery.browser.msie && jQuery.browser.version < 9) {
			_popup.css({
				opacity: 'auto'
			})
		}
		
		_this.mouseenter(function(){
			if(jQuery.browser.msie && jQuery.browser.version < 9){
				_popup.show();
			} else {
				_popup.show();
				_popup.animate({opacity: 1}, {queue: false, duration: _speed, complete: function(){
					_popup.css({
						opacity: 'auto',
						display: 'block'
					})
				}})
			}
		}).mouseleave(function(){
			if(jQuery.browser.msie && jQuery.browser.version < 9){
				_popup.hide();
			} else {
				_popup.animate({opacity: 0}, {queue: false, duration: _speed, complete: function(){
					_popup.hide();
				}})
			}
		})
	})
}

// popups function
function initPopups() {
	var _zIndex = 1000;
	var _fadeSpeed = 350;
	var _faderOpacity = 0.65;
	var _faderBackground = '#000';
	var _faderId = 'lightbox-overlay';
	var _closeLink = 'a.btn-close, a.close, a.cancel';
	var _fader;
	var _lightbox = null;
	var _ajaxClass = 'ajax-load';
	var _openers = jQuery('a.open-popup');
	var _page = jQuery(document);
	var _minWidth = jQuery('body > div:eq(0)').outerWidth();
	var _scroll = false;
	var _lightboxInner = '.light-box';
	if(jQuery.browser.msie && jQuery.browser.version < 9) _fadeSpeed = 0;

	// init popup fader
	_fader = jQuery('#'+_faderId);
	if(!_fader.length) {
		_fader = jQuery('<div />');
		_fader.attr('id',_faderId);
		jQuery('body').append(_fader);
	}
	_fader.css({
		opacity:_faderOpacity,
		backgroundColor:_faderBackground,
		position:'absolute',
		overflow:'hidden',
		display:'none',
		top:0,
		left:0,
		zIndex:_zIndex
	});

	// IE6 iframe fix
	if(jQuery.browser.msie && jQuery.browser.version < 7) {
		if(!_fader.children().length) {
			var _frame = jQuery('<iframe src="javascript:false" frameborder="0" scrolling="no" />');
			_frame.css({
				opacity:0,
				width:'100%',
				height:'100%'
			});
			var _frameOverlay = jQuery('<div>');
			_frameOverlay.css({
				top:0,
				left:0,
				zIndex:1,
				opacity:0,
				background:'#000',
				position:'absolute',
				width:'100%',
				height:'100%'
			});
			_fader.empty().append(_frame).append(_frameOverlay);
		}
	}

	// lightbox positioning function
	function positionLightbox() {
		if(_lightbox) {
			var _windowHeight = jQuery(window).height();
			var _windowWidth = jQuery(window).width();
			var _lightboxHeight = _lightbox.outerHeight();
			var _pageHeight = _page.height();
			
			if (_windowWidth < _minWidth) _fader.css('width',_minWidth);
				else _fader.css('width','100%');
			if (_windowHeight < _pageHeight) _fader.css('height',_pageHeight);
				else _fader.css('height',_windowHeight);

			_lightbox.css({
				position:'absolute',
				zIndex:(_zIndex+1)
			});

			// vertical position
			if (_windowHeight > _lightboxHeight) {
				if (jQuery.browser.msie && jQuery.browser.version < 7) {
					_lightbox.css({
						position:'absolute',
						top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
					});
				} else {
					_lightbox.css({
						position:'fixed',
						top: (_windowHeight - _lightboxHeight) / 2
					});
				}
			} else {
				var _faderHeight = _fader.height();
				if(_faderHeight < _lightboxHeight) _fader.css('height',_lightboxHeight);
				if (!_scroll) {
					if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
						_faderHeight = parseInt(jQuery(window).scrollTop())
						_scroll = _faderHeight;
					} else {
						_scroll = _faderHeight - _lightboxHeight;
					}
				}
				_lightbox.css({
					position:'absolute',
					top: _scroll
				});
			}

			// horizontal position
			if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({left:(_fader.width() - _lightbox.outerWidth()) / 2});
			else _lightbox.css({left: 0});
		}
	}

	// show/hide lightbox
	function toggleState(_state) {
		if(!_lightbox) return;
		if(_state) {
			_fader.fadeIn(_fadeSpeed,function(){
				_lightbox.fadeIn(_fadeSpeed);
			});
			_scroll = false;
			positionLightbox();
		} else {
			_lightbox.fadeOut(_fadeSpeed,function(){
				_fader.fadeOut(_fadeSpeed);
				_scroll = false;
			});
		}
	}

	// popup actions
	function initPopupActions(_obj) {
		if(!_obj.get(0).jsInit) {
			_obj.get(0).jsInit = true;
			// close link
			_obj.find(_closeLink).click(function(){
				_lightbox = _obj;
				toggleState(false);
				return false;
			});
		}
	}

	// lightbox openers
	_openers.each(function(){
		var _opener = jQuery(this);
		var _target = _opener.attr('href');

		// popup load type - ajax or static
		if(_opener.hasClass(_ajaxClass)) {
			_opener.click(function(){
				// ajax load
				if(jQuery('div[rel*="'+_target+'"]').length == 0) {
					jQuery.ajax({
						url: _target,
						type: "POST",
						dataType: "html",
						success: function(msg){
							// append loaded popup
							_lightbox = jQuery(msg);
							_lightbox.find('img').load(positionLightbox)
							_lightbox.attr('rel',_target).hide().css({
								position:'absolute',
								zIndex:(_zIndex+1),
								top: -9999,
								left: -9999
							});
							jQuery('body').append(_lightbox);

							// init js for lightbox
							initPopupActions(_lightbox);

							// show lightbox
							toggleState(true);
						},
						error: function(msg){
							alert('AJAX error!');
							return false;
						}
					});
				} else {
					_lightbox = jQuery('div[rel*="'+_target+'"]');
					toggleState(true);
				}
				return false;
			});
		} else {
			if(jQuery(_target).length) {
				// init actions for popup
				var _popup = jQuery(_target);
				/* Move Popup before Body-Tag MPR 03.12.2010 */
				_popup.appendTo("body");
				var _holder = jQuery(_lightboxInner + ' img',_popup);
				var _lightboxWidth = parseInt(_holder.outerWidth()) + parseInt(jQuery(_lightboxInner,_popup).css('paddingLeft')) + parseInt(jQuery(_lightboxInner,_popup).css('paddingRight'));
				_popup.css({width:_lightboxWidth});
				initPopupActions(_popup);
					// open popup
					_opener.click(function(){
					if(_lightbox) {
						_lightbox.fadeOut(_fadeSpeed,function(){
							_lightbox = _popup.hide();
							toggleState(true);
						})
					} else {
						_lightbox = _popup.hide();
						toggleState(true);
					}
					return false;
				});
			}
		}
	});

	// event handlers
	jQuery(window).resize(positionLightbox);
	jQuery(window).scroll(positionLightbox);
	jQuery(document).keydown(function (e) {
		if (!e) evt = window.event;
		if (e.keyCode == 27) {
			toggleState(false);
		}
	})
	_fader.click(function(){
		if(!_fader.is(':animated')) toggleState(false);
		return false;
	})
}

/*
 * Mega-Dropdown Hauptnavigation
 * NEW VERSION MIT HOVERINTENT
 * 
 */ 

function initDrop() {
	var hold = jQuery('ul#nav');
	hold.find('li').each(function(){
		var li = jQuery(this);
		if(li.parent().attr('id') != 'nav') {
            return this;
		}
		li.hoverIntent({
			over: function(){
					if (li.parent().attr('id') == 'nav') {
						li.find('> a').animate({marginTop: 15}, {queue: false, duration: 300});
						li.find('> .drop').fadeIn(500);
						li.addClass('visible-drop');
					}

					li.addClass('hover');
				},
			out: function() {
					if (li.parent().attr('id') == 'nav') {
						if(!li.hasClass('active')) {
							li.find('> a').animate({marginTop: 0}, {queue: false, duration: 300});
						}

						li.find('> .drop').fadeOut(500, function(){
							li.removeClass('visible-drop');
						});
					}


					li.removeClass('hover');
				},
			timeout: 500,
			interval: 100
		});
	});
}
(function($) {
	$.fn.gallery = function(options) { return new Gallery(this.get(0), options); };
	
	function Gallery(context, options) { this.init(context, options); };
	
	Gallery.prototype = {
		options:{},
		init: function (context, options){
			this.options = $.extend({
				duration: 700,
				slideElement: 1,
				autoRotation: false,
				effect: false,
				listOfSlides: 'ul > li',
				switcher: false,
				disableBtn: false,
				nextBtn: 'strong.link-next > a, a.link-next, a.btn-next, a.next',
				prevBtn: 'strong.link-prev > a, a.link-prev, a.btn-prev, a.prev',
				circle: true,
				direction: false,
				event: 'click',
				IE: false
			}, options || {});
			var _el = jQuery(context).find(this.options.listOfSlides);
			if (this.options.effect) this.list = _el;
			else this.list = _el.parent();
			this.switcher = jQuery(context).find(this.options.switcher);
			this.nextBtn = jQuery(context).find(this.options.nextBtn);
			this.prevBtn = jQuery(context).find(this.options.prevBtn);
			this.count = _el.index(_el.filter(':last'));
			
			if (this.options.switcher) this.active = this.switcher.index(this.switcher.filter('.active:eq(0)'));
			else this.active = _el.index(_el.filter('.active:eq(0)'));
			if (this.active < 0) this.active = 0;
			this.last = this.active;
			
			this.woh = _el.outerWidth(true);
			if (!this.options.direction) this.installDirections(this.list.parent().width());
			else {
				this.woh = _el.outerHeight(true);
				this.installDirections(this.list.parent().height());
			}
			
			if (!this.options.effect) {
				this.rew = this.count - this.wrapHolderW + 1;
				if (!this.options.direction) this.anim = '{marginLeft: -(this.woh * this.active)}';
				else this.anim = '{marginTop: -(this.woh * this.active)}';
				eval('this.list.css('+this.anim+')');
			}
			else {
				this.rew = this.count;
				this.list.css({opacity: 0}).removeClass('active').eq(this.active).addClass('active').css({opacity: 1}).css('opacity', 'auto');
				this.switcher.removeClass('active').eq(this.active).addClass('active');
			}
			
			this.initEvent(this, this.nextBtn, true);
			this.initEvent(this, this.prevBtn, false);
			if (this.options.disableBtn) this.initDisableBtn();
			if (this.options.autoRotation) this.runTimer(this);
			if (this.options.switcher) this.initEventSwitcher(this, this.switcher);
		},
		initDisableBtn: function(){
			this.prevBtn.removeClass('prev-'+this.options.disableBtn);
			this.nextBtn.removeClass('next-'+this.options.disableBtn);
			if (this.active == 0 || this.count+1 == this.wrapHolderW) this.prevBtn.addClass('prev-'+this.options.disableBtn);
			if (this.active == 0 && this.count == 1 || this.count+1 == this.wrapHolderW) this.nextBtn.addClass('next-'+this.options.disableBtn);
			if (this.active == this.rew) this.nextBtn.addClass('next-'+this.options.disableBtn);
		},
		installDirections: function(temp){
			this.wrapHolderW = Math.ceil(temp / this.woh);
			if (((this.wrapHolderW - 1) * this.woh + this.woh / 2) > temp) this.wrapHolderWwrapHolderW--;
		},
		fadeElement: function(){
			if ($.browser.msie && this.options.IE){
				this.list.eq(this.last).css({opacity:0});
				this.list.removeClass('active').eq(this.active).addClass('active').css({opacity:'auto'});
			}
			else{
				this.list.eq(this.last).animate({opacity:0}, {queue:false, duration: this.options.duration});
				this.list.removeClass('active').eq(this.active).addClass('active').animate({
					opacity:1
				}, {queue:false, duration: this.options.duration, complete: function(){
					jQuery(this).css('opacity','auto');
				}});
			}
			if (this.options.switcher) this.switcher.removeClass('active').eq(this.active).addClass('active');
			this.last = this.active;
		},
		scrollElement: function(){
			eval('this.list.animate('+this.anim+', {queue:false, duration: this.options.duration});');
			if (this.options.switcher) this.switcher.removeClass('active').eq(this.active / this.options.slideElement).addClass('active');
		},
		runTimer: function($this){
			if($this._t) clearTimeout($this._t);
			$this._t = setInterval(function(){
				$this.toPrepare($this, true);
			}, this.options.autoRotation);
		},
		initEventSwitcher: function($this, el){
			el.bind($this.options.event, function(){
				$this.active = $this.switcher.index(jQuery(this)) * $this.options.slideElement;
				if($this._t) clearTimeout($this._t);
				if ($this.options.disableBtn) $this.initDisableBtn();
				if (!$this.options.effect) $this.scrollElement();
				else $this.fadeElement();
				if ($this.options.autoRotation) $this.runTimer($this);
				return false;
			});
		},
		initEvent: function($this, addEventEl, dir){
			addEventEl.bind($this.options.event, function(){
				if($this._t) clearTimeout($this._t);
				$this.toPrepare($this, dir);
				if ($this.options.autoRotation) $this.runTimer($this);
				return false;
			});
		},
		toPrepare: function($this, side){
			if (($this.active == $this.rew) && $this.options.circle && side) $this.active = -$this.options.slideElement;
			if (($this.active == 0) && $this.options.circle && !side) $this.active = $this.rew + $this.options.slideElement;
			for (var i = 0; i < $this.options.slideElement; i++){
				if (side) { if ($this.active + 1 <= $this.rew) $this.active++; }
				else { if ($this.active - 1 >= 0) $this.active--; }
			};
			if (this.options.disableBtn) this.initDisableBtn();
			if (!$this.options.effect) $this.scrollElement();
			else $this.fadeElement();
		},
		stop: function(){
			if (this._t) clearTimeout(this._t);
		},
		play: function(){
			if (this._t) clearTimeout(this._t);
			if (this.options.autoRotation) this.runTimer(this);
		}
	}
}(jQuery));

// initVideoLightbox
function initVideoLightbox(){
	var _zIndex = 1000;
	var _fadeSpeed = 350;
	var _faderOpacity = 0.65;
	var _faderBackground = '#000';
	var _faderId = 'lightbox-overlay';
	var _closeLink = 'a.btn-close, a.close, a.cancel';
	var _fader;
	var _lightbox = null;
	var _openers = jQuery('a.lightbox-video');
	var _page = jQuery(document);
	var _minWidth = jQuery('body > div:eq(0)').outerWidth();
	var _scroll = false;
	if(jQuery.browser.msie && jQuery.browser.version < 9) _fadeSpeed = 0;

	// init popup fader
	_fader = jQuery('#'+_faderId);
	if(!_fader.length) {
		_fader = jQuery('<div />');
		_fader.attr('id',_faderId);
		jQuery('body').append(_fader);
	}
	_fader.css({
		opacity:_faderOpacity,
		backgroundColor:_faderBackground,
		position:'absolute',
		overflow:'hidden',
		display:'none',
		top:0,
		left:0,
		zIndex:_zIndex
	});

	// IE6 iframe fix
	if(jQuery.browser.msie && jQuery.browser.version < 7) {
		if(!_fader.children().length) {
			var _frame = jQuery('<iframe src="javascript:false" frameborder="0" scrolling="no" />');
			_frame.css({
				opacity:0,
				width:'100%',
				height:'100%'
			});
			var _frameOverlay = jQuery('<div>');
			_frameOverlay.css({
				top:0,
				left:0,
				zIndex:1,
				opacity:0,
				background:'#000',
				position:'absolute',
				width:'100%',
				height:'100%'
			});
			_fader.empty().append(_frame).append(_frameOverlay);
		}
	}

	// lightbox positioning function
	function positionLightbox() {
		if(_lightbox) {
			var _windowHeight = jQuery(window).height();
			var _windowWidth = jQuery(window).width();
			var _lightboxWidth = _lightbox.outerWidth();
			var _lightboxHeight = _lightbox.outerHeight();
			var _pageHeight = _page.height();

			if (_windowWidth < _minWidth) _fader.css('width',_minWidth);
				else _fader.css('width','100%');
			if (_windowHeight < _pageHeight) _fader.css('height',_pageHeight);
				else _fader.css('height',_windowHeight);

			_lightbox.css({
				position:'absolute',
				zIndex:(_zIndex+1)
			});

			// vertical position
			if (_windowHeight > _lightboxHeight) {
				if (jQuery.browser.msie && jQuery.browser.version < 7) {
					_lightbox.css({
						position:'absolute',
						top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
					});
				} else {
					_lightbox.css({
						position:'fixed',
						top: (_windowHeight - _lightboxHeight) / 2
					});
				}
			} else {
				var _faderHeight = _fader.height();
				if(_faderHeight < _lightboxHeight) _fader.css('height',_lightboxHeight);
				if (!_scroll) {
					if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
						_faderHeight = parseInt(jQuery(window).scrollTop())
						_scroll = _faderHeight;
					} else {
						_scroll = _faderHeight - _lightboxHeight;
					}
				}
				_lightbox.css({
					position:'absolute',
					top: _scroll
				});
			}

			// horizontal position
			if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({left:(_fader.width() - _lightbox.outerWidth()) / 2});
			else _lightbox.css({left: 0});
		}
	}

	// show/hide lightbox
	function toggleState(_state) {
		if(!_lightbox) return;
		if(_state) {
			_fader.fadeIn(_fadeSpeed,function(){
				_lightbox.fadeIn(_fadeSpeed);
			});
			_scroll = false;
			positionLightbox();
		} else {
			_lightbox.fadeOut(_fadeSpeed,function(){
				_fader.fadeOut(_fadeSpeed, function(){
					jQuery('.info-holder', _lightbox).empty();
					jQuery('.popup-gallery .slide > ul > li', _lightbox).removeClass('active');
					jQuery('.popup-gallery .slide > ul > li', _lightbox).eq(0).trigger('click');
				});
				_scroll = false;
			});
		}
	}

	// popup actions
	function initPopupActions(_obj) {
		if(!_obj.get(0).jsInit) {
			_obj.get(0).jsInit = true;
			// close link
			_obj.find(_closeLink).click(function(){
				_lightbox = _obj;
				toggleState(false);
				return false;
			});
			/*
			
			var _gallery = jQuery('.popup-gallery', _obj),
				_next = jQuery('.next', _gallery),
				_prev = jQuery('.prev', _gallery),
				_holderSlide = jQuery('.slide', _gallery),
				_slider = jQuery('> ul', _holderSlide),
				_slideEl = jQuery('> li', _slider),
				_i = 0,
				_activeClass = 'active',
				_visualBox = jQuery('.info-holder', _obj),
				_stepSlide = _holderSlide.outerWidth(),
				_widthEl = _slideEl.eq(0).outerWidth(),
				_speed = 300,
				_k = 3,
				_imax;
			
			setTimeout(function(){
				_stepSlide = _holderSlide.outerWidth();
				_widthEl = _slideEl.eq(0).outerWidth();
				_imax = Math.ceil(_slideEl.length / _k) - 1;
			}, _fadeSpeed)
			
			_slideEl.removeClass(_activeClass);
			
			_slideEl.click(function(){
				var $thisEl = jQuery(this);
				
				if(!$thisEl.hasClass(_activeClass)){
					_visualBox.empty().append(jQuery('.add-content', $thisEl).clone());
					_slideEl.removeClass(_activeClass);
					$thisEl.addClass(_activeClass);
				}
				return false;
			})
			_slideEl.eq(0).trigger('click');
			_next.click(function(){
				if(_i < _imax) _i++;
				else _i = 0;
				_sliderAnimate();
				return false;
			});
			_prev.click(function(){
				if(_i > 0) _i--;
				else _i = _imax;
				_sliderAnimate();
				return false;
			});
			
			function _sliderAnimate(){
				_slider.animate({marginLeft: - _i * _widthEl * _k}, {queue: false, duration: _speed})
			}
			*/
		}
	}

	// lightbox openers
	_openers.each(function(){
		var _opener = jQuery(this);
		var _target = _opener.attr('href');

		_opener.click(function(){
			// ajax load
			//if(jQuery('div[rel*="'+_target+'"]').length == 0) {
				jQuery.ajax({
					url: _target,
					type: "POST",
					dataType: "html",
					success: function(msg){
						// append loaded popup
						_lightbox = jQuery(msg);
						_lightbox.find('img').load(positionLightbox)
						_lightbox.attr('rel',_target).hide().css({
							position:'absolute',
							zIndex:(_zIndex+1),
							top: -9999,
							left: -9999
						});
						jQuery('body').append(_lightbox);

						// init js for lightbox
						initPopupActions(_lightbox);

						// show lightbox
						toggleState(true);
					},
					error: function(msg){
						alert('AJAX error!');
						return false;
					}
				});
			/*} else {
				_lightbox = jQuery('div[rel*="'+_target+'"]');
				toggleState(true);
			}*/
			return false;
		});
	});

	// event handlers
	jQuery(window).resize(positionLightbox);
	jQuery(window).scroll(positionLightbox);
	jQuery(document).keydown(function (e) {
		if (!e) evt = window.event;
		if (e.keyCode == 27) {
			toggleState(false);
		}
	})
	_fader.click(function(){
		if(!_fader.is(':animated')) toggleState(false);
		return false;
	})
}
