jQuery(document).ready(function(){

	
	//Anker
	jQuery('#anker').click(function() {
		jQuery(window).scrollTo('#page','slow');
		return false;
	});

	//Footer
	if (jQuery.cookie('footer_display')) {

		jQuery('#footer_sitemap').css('display',jQuery.cookie('footer_display'));
		jQuery('#trigger').addClass(jQuery.cookie('footer_display'));
	};

	if (jQuery.cookie('banner_height')) {
    	jQuery('#banner_home, .banner_item').css('height',jQuery.cookie('banner_height'));
	}

	jQuery('#trigger').click(function() {

		if (jQuery('#trigger').is('.none')) {
			jQuery('#trigger').removeClass('none');
			jQuery('#footer_sitemap').css('display','block');
			jQuery(window).scrollTo('#footer','slow');
			jQuery.cookie('footer_display','block');
			jQuery('#banner_home, .banner_item').css('height','1200');
			jQuery.cookie('banner_height','1200');
			return false;
		} else {
			jQuery('#trigger').addClass('none');
			jQuery('#footer_sitemap').css('display','none');
			jQuery.cookie('footer_display','none');
			jQuery('#banner_home, .banner_item').css('height','1025');
			jQuery.cookie('banner_height','1025');
			return false;
		}
	});

	jQuery(".tabs").show();

	//Accordion

	if (typeof jQuery.fn.cycle == 'function') {
	    jQuery('.accordion:not(.collapse)').accordion({
	    	autoHeight: false
	    });

	    jQuery('.accordion.collapse').accordion({
	    	autoHeight: false,
	    	active: false,
	    	collapsible: true,
            alwaysOpen: false
	    });
	}

	//Tabs
	if (typeof jQuery.fn.tabs == 'function') {
	    jQuery('.tabs').tabs();
	    jQuery(".tabs").show();
	}

	//Banner Home
	if (typeof jQuery.fn.cycle == 'function') {
    	var currentMap = null;

    	currentMap = jQuery('#banner_home .banner_item a:first').clone();
    	currentMap.appendTo('#content_home');

		jQuery('#banner_home').cycle({
    		fx: 'fade',
    		pager: '#pager',
    		speed: 1000,
    		timeout: 15000,
			after: function(currSlideElement, nextSlideElement, options, forwardFlag) {
				if (currentMap) {
					currentMap.remove();
				}
				currentMap = jQuery(nextSlideElement).find('a').clone();
				currentMap.appendTo('#content_home');
				//alert(1);
			}
    	});
    }

	//Toolmenu Linke Spalte
	jQuery('#toolmenu a.trigger').click(function() {

		if (jQuery('#toolmenu ul').css('display') == 'block') {
        	jQuery('#toolmenu ul').hide();
        	jQuery('a.trigger').removeClass('active');
        	return false;
		} else {
			jQuery('#toolmenu ul').show();
			jQuery('a.trigger').addClass('active');
			return false;
		}

	});

	//addLayer
	jQuery('li.haslayer a.level0').live('mouseenter', function(e) {
		jQuery(this).addClass('isactive');
	});

	jQuery('li.haslayer').live('mouseenter', function(e) {
		jQuery(this).find('.layer').show();
	});

	jQuery('li.haslayer').live('mouseleave', function(e) {
		jQuery(this).find('.layer').hide();
		jQuery('li.haslayer a.level0').removeClass('isactive');
	});

	//Sprachwahl
	jQuery('#language').live('mouseenter', function(e) {
		jQuery(this).find('ul li.inactive').toggleClass('inactive-visible');
	});

	jQuery('#language').live('mouseleave', function(e) {
		jQuery(this).find('ul li.inactive').toggleClass('inactive-visible');
	});

	//Slider Produkte
	jQuery(function() {

		var conveyor = jQuery(".content-conveyor", jQuery("#sliderContent")),
		    items = jQuery(".item", jQuery("#sliderContent")),
		    viewer = jQuery(".viewer", jQuery("#sliderContent")),
            size = 0,
            value = 0,
            event;

        items.each(function() {
            size += jQuery(this).outerWidth(true, true);
        });

		conveyor.css({
			'width' : size + 'px'
		});

		var sliderOpts = {
			max: (size - viewer.width()),
			slide: function(e, ui) {
                conveyor.css("left", "-" + ui.value + "px");
			},
			change: function(e, ui) {
				value = ui.value;
				conveyor.css("left", "-" + ui.value + "px");
			}
		};

		jQuery("#slider").slider(sliderOpts);

		//for Focus

		jQuery(".preButton", jQuery("#sliderContent")).bind({
            mousedown: function() {
                if (event) {window.clearInterval(event);}

				event = window.setInterval(function() {
                    value -= 1;
                    if ( value <= 0 ) value = 0;
                    jQuery("#slider").slider("option", "value", value);
                }, 1);
            }
        });

		jQuery(".nextButton", jQuery("#sliderContent")).bind({
            mousedown: function() {
                if (event) {window.clearInterval(event);}

				event = window.setInterval(function() {
                    value += 1;
                    if ( value >= size ) value = size;
                    jQuery("#slider").slider("option", "value", value);
                }, 1);
            }
        });

		jQuery("body").bind({
			mouseup: function() {
                if (event) {window.clearInterval(event);}
            }
		});


	});


	//Tooltip
	if (typeof jQuery.fn.qtip == 'function') {
    	jQuery('.hastooltip').qtip({
    		position: {
    			target: 'mouse',
    			corner: {
    				target: 'topRight',
    				tooltip: 'bottomLeft'
    			},
    			adjust: {
    				mouse: true
    			}
    		},
    		style: {
    			border: 'none',
    			background: '#0A4585 url("/fileadmin/templates/images/backgrounds/tooltip.png") repeat-x left top',
    			color: '#FFFFFF'
    		}
    	});

    	jQuery('area').qtip({
    		position: {
                target: 'mouse',
    			corner: {
    				target: 'topRight',
    				tooltip: 'bottomLeft'
    			},
    			adjust: {
    				mouse: true
    			}
    		},
    		style: {
    			border: 'none',
    			background: '#0A4585 url("/fileadmin/templates/images/backgrounds/tooltip.png") repeat-x left top',
    			color: '#FFFFFF'
    		}
    	});
    }

	//Slider Historie
	if (typeof jQuery.fn.jcarousel == 'function') {
    	jQuery('#history_navigation').jcarousel();
    }

	//Breite für ul ermitteln
	var count_items = jQuery('#history_container ul li').size();
	var width_item	= jQuery('#history_container ul li').outerWidth();
	var width_list	= count_items * width_item;

	jQuery('#history_container ul').css('width',width_list);

	//Klickverhalten
	jQuery('#history_navigation li a').click(function() {

		jQuery('#history_navigation li a').removeClass('active');
		jQuery(this).addClass('active');

	    var target = jQuery(this).attr('href');
	    jQuery('#history_container').scrollTo(target,'slow');
	    return false;

	});
});

//Scrollbalken
jQuery(function() {
	if (typeof jQuery.fn.jScrollPane == 'function') {
	    jQuery('.scroll-pane').jScrollPane({showArrows:true, scrollbarWidth:11, dragMaxHeight:30});
    }
});

//Title for Nyromodal
jQuery(function($) {
	if (typeof jQuery.fn.nm == 'function') {
		$.nmAnims({
    		fade: {
    			showBg: function(nm, clb) {
    				nm.elts.box.show();
					nm.elts.boxInner.show();
					nm.elts.title && nm.elts.title.show();
					nm.elts.bg.fadeTo(0, 0.7, clb);
    			},
    			hideBg: function(nm, clb) {
    				nm.elts.box.hide();
					nm.elts.boxInner.hide();
					nm.elts.title && nm.elts.title.hide();
					nm.elts.bg.hide();
					clb();
    			},
				showLoad: function(nm, clb) {
					nm.elts.load.show();
					clb();
				},
				hideLoad: function(nm, clb) {
					nm.elts.load.hide();
					clb();
				},
				showCont: function(nm, clb) {
					nm.elts.cont.show();
					clb();
				},
				hideCont: function(nm, clb) {
					nm.elts.cont.css('overflow', 'hidden').hide();
					clb();
				},
				showTrans: function(nm, clb) {
					nm.elts.load
						.css({
							position: nm.elts.cont.css('position'),
							top: nm.elts.cont.css('top'),
							left: nm.elts.cont.css('left'),
							width: nm.elts.cont.css('width'),
							height: nm.elts.cont.css('height'),
							marginTop: nm.elts.cont.css('marginTop'),
							marginLeft: nm.elts.cont.css('marginLeft')
						})
						.show();
					nm.elts.cont.hide();
					clb();
				},
				hideTrans: function(nm, clb) {
					nm.elts.cont.css('visibility', 'hidden').show();
					nm.elts.load
						.css('position', nm.elts.cont.css('position'))
						.css({
							top: nm.elts.cont.css('top'),
							left: nm.elts.cont.css('left'),
							width: nm.elts.cont.css('width'),
							height: nm.elts.cont.css('height'),
							marginTop: nm.elts.cont.css('marginTop'),
							marginLeft: nm.elts.cont.css('marginLeft')
						});
						
					nm.elts.cont.css('visibility', '');
					nm.elts.load.fadeOut(clb);	
				},
				resize: function(nm, clb) {
					nm.elts.box.css({
						width: nm.sizes.w,
						height: nm.sizes.h,
						top: Math.floor((nm.getInternal().fullSize.viewH - nm.sizes.h - nm._getBoxPadding().top - nm._getBoxPadding().bottom - nm.sizes.title - nm.sizes.hMargin)/2 + nm.sizes.title),
						left: Math.floor((nm.getInternal().fullSize.viewW - nm.sizes.w - nm._getBoxPadding().left - nm._getBoxPadding().right - nm.sizes.wMargin)/2)
					});

					nm.elts.boxInner.css({
						width: nm.sizes.w,
						height: nm.sizes.h,
						top: parseInt(nm.elts.box.css('top')) + nm._getBoxPadding().top,
						left: parseInt(nm.elts.box.css('left')) + nm._getBoxPadding().left
					});

					if (nm.elts.title)
						nm.elts.title
							.css({
								position: 'fixed',
								width: nm.sizes.w,
								top: parseInt(nm.elts.box.css('top')) - nm.sizes.title,
								left: parseInt(nm.elts.box.css('left'))
							});

					nm.elts.cont.css({
						width: nm.sizes.w,
						height: nm.sizes.h,
						top: parseInt(nm.elts.box.css('top')) + nm._getBoxPadding().top,
						left: parseInt(nm.elts.box.css('left')) + nm._getBoxPadding().left
					});

					clb();
				}
    		}
    	});

    	$.nmObj({
			forcedTitle: null,

			_getBoxPadding: function() {
				return {
					top: parseInt(this.elts.box.css('padding-top')) || 0,
					right: parseInt(this.elts.box.css('padding-right')) || 0,
					bottom: parseInt(this.elts.box.css('padding-bottom')) || 0,
					left: parseInt(this.elts.box.css('padding-left')) || 0
				}
			},

			_getTitlePadding: function() {
				if (this.elts.title)
					return {
						w: this.elts.title.outerWidth(true) - this.elts.title.width(),
						h: this.elts.title.outerHeight(true) - this.elts.title.height()
					}
			},

			elts: {
				all: undefined,
				box: undefined,
				boxInner: undefined,
				bg: undefined,
				load: undefined,
				cont: undefined,
				hidden: undefined,
				title: undefined
			},

			sizes: {	// Size information
				initW: undefined,	// Initial width
				initH: undefined,	// Initial height
				w: undefined,		// width
				h: undefined,		// height
				minW: undefined,	// minimum Width
				minH: undefined,	// minimum height
				wMargin: undefined,	// Horizontal margin
				hMargin: undefined,	// Vertical margin
				title: 0
			},

    	    _initElts: function() {
				if (!this.stack && this.getInternal().stack.length > 1)
					this.elts = this.getInternal().stack[this.getInternal().stack.length-2]['nmObj'].elts;
				if (!this.elts.all || this.elts.all.closest('body').length == 0)
					this.elts.all = this.elts.bg = this.elts.box = this.elts.boxInner = this.elts.cont = this.elts.hidden = this.elts.load = undefined;
				if (!this.elts.all)
					this.elts.all = $('<div />').appendTo(this.getInternal()._container);
				if (!this.elts.bg)
					this.elts.bg = $('<div />').hide().appendTo(this.elts.all);
				if (!this.elts.box)
					this.elts.box = $('<div />').hide().appendTo(this.elts.all);
				if (!this.elts.boxInner)
					this.elts.boxInner = $('<div />').hide().appendTo(this.elts.box);
				if (!this.elts.cont)
					this.elts.cont = $('<div />').hide().appendTo(this.elts.boxInner);
				if (!this.elts.hidden)
					this.elts.hidden = $('<div />').hide().appendTo(this.elts.boxInner);
				this.elts.hidden.empty();
				if (!this.elts.load)
					this.elts.load = $('<div />').hide().appendTo(this.elts.boxInner);
				this._callFilters('initElts');
			},

			open: function() {
				if (this._nmOpener)
					this._nmOpener._close();
				this.getInternal()._pushStack(this.opener);
				this._opened = false;
				this._bgReady = false;
				this._open = true;
				this._initElts();
				this._load();
				this._nbContentLoading = 0;
				this._callAnim('showBg', $.proxy(function() {
					this._bgReady = true;
					if (this._nmOpener) {
						// fake closing of the opener nyroModal
						this._nmOpener._bgReady = false;
						this._nmOpener._loading = false;
						this._nmOpener._animated = false;
						this._nmOpener._opened = false;
						this._nmOpener._open = false;
						this._nmOpener.elts.cont = this._nmOpener.elts.hidden = this._nmOpener.elts.load = this._nmOpener.elts.box = this._nmOpener.elts.boxInner = this._nmOpener.elts.bg = this._nmOpener.elts.all = undefined;
						this._nmOpener.saveObj();
						this._nmOpener = undefined;
					}
					this._contentLoading();
				}, this));
			},

			close: function() {
				this._close();
				this._callFilters('beforeClose');
				var self = this;
				this._unreposition();
				self._callAnim('hideCont', function() {
					self._callAnim('hideLoad', function() {
						self._callAnim('hideBg', function() {
							self._callFilters('afterClose');
							self.elts.cont.remove();
							self.elts.hidden.remove();
							self.elts.load.remove();
							self.elts.box.remove();
							self.elts.boxInner.remove();
							self.elts.bg.remove();
							self.elts.all.remove();
							self.elts.cont = self.elts.hidden = self.elts.load = self.elts.box = self.elts.boxInner = self.elts.bg = self.elts.all = undefined;
						});
					});
				});
			},

			_writeContent: function() {
				this.elts.box
					.css({
						position: 'fixed',
						width: this.sizes.w,
						height: this.sizes.h,
						top: Math.floor((this.getInternal().fullSize.viewH - this.sizes.h - this._getBoxPadding().top - this._getBoxPadding().bottom - this.sizes.title - this.sizes.hMargin)/2 + this.sizes.title),
						left: Math.floor((this.getInternal().fullSize.viewW - this.sizes.w - this._getBoxPadding().left - this._getBoxPadding().right - this.sizes.wMargin)/2)
					});

				this.elts.boxInner
					.css({
						position: 'fixed',
						width: this.sizes.w,
						height: this.sizes.h,
						top: parseInt(this.elts.box.css('top')) + this._getBoxPadding().top,
						left: parseInt(this.elts.box.css('left')) + this._getBoxPadding().left
					});

				if (this.elts.title)
					this.elts.title
						.css({
							position: 'fixed',
							width: this.sizes.w,
							top: parseInt(this.elts.box.css('top')) - this.sizes.title,
							left: parseInt(this.elts.box.css('left'))
						});

				this.elts.cont
					.empty()
					.append(this.elts.hidden.contents())
					.append(this._scripts)
					.append(this.showCloseButton ? this.closeButton : '')
					.css({
						position: 'fixed',
						width: this.sizes.w,
						height: this.sizes.h,
						top: parseInt(this.elts.box.css('top')) + this._getBoxPadding().top,
						left: parseInt(this.elts.box.css('left')) + this._getBoxPadding().left
					});
			}
    	});

    	$.nmFilters({
    		emag: {
    			is: function(nm) {
    				return true;
    			},
    			initElts: function(nm) {
                    nm.elts.box.addClass('nyroModalContWrapper');
					nm.elts.boxInner.addClass('nyroModalContWrapperInner');
    			},
    			size: function(nm) {

    			},
    			afterReposition: function(nm) {
    			    nm.elts.cont.css({
    			        overflow : 'visible'
    			    });
    			}
    		}
    	});

		$.nmFilters({
    		title: {
    			is: function(nm) {
    				if ( nm.forcedTitle || nm.opener.is('[title]') ) {
						return true;
					}
    			},
				beforeShowCont: function(nm) {},
				close: function(nm) {},

				initElts: function(nm) {										
					if (nm.elts.title) {
						nm.elts.title.remove();
						nm.elts.title = undefined;
						delete(nm.elts.title);
					}
					
					if (nm.elts.title) {
						nm.store.title.remove();
						nm.store.title = undefined;
						delete(nm.store.title);					
					}					    			
																			
					if (!nm.store.title) {
						nm.store.title = $('<h1 />');
					}

					if (!nm.elts.title) {
						nm.elts.title = $('<div />').hide().insertBefore(nm.elts.box);
						nm.elts.title.append(nm.store.title);
						nm.elts.title.append(nm.closeButton);
					}

					nm.elts.title
						.find('.nyroModalClose').unbind('click.nyroModal').bind('click.nyroModal', function(e) {
							e.preventDefault();
							nm.close();
						});

					nm.elts.title.addClass('nyroModalContHeader');
					nm.store.title.addClass('nyroModalTitle');
				},
				size: function(nm) {
					if (nm.elts.title)
						nm.sizes.title = nm.elts.title.outerHeight(true);
    			},
				beforeShowCont: function(nm) {
					var title = nm.forcedTitle ? nm.forcedTitle : nm.opener.attr('title');
					if (nm.store.title)
						nm.store.title.text(title);
				},
    			afterClose: function(nm) {
    				
    			}
    		}
    	});

    	$.nmFilters({
    		gallery: {
    			filledContent: function(nm) {},
				close: function(nm) {},
				initElts: function(nm) {													
					if (nm.store.prev) {
						nm.store.prev.remove();
						nm.store.prev = undefined;	
						delete(nm.store.prev);
					}
					
					if (nm.store.next) {						
						nm.store.next.remove();					
						nm.store.next = undefined;										
						delete(nm.store.next);
					}
					
					var rel = nm.opener.attr('rel'),
						indexSpace = rel.indexOf(' ');
					nm.store.gallery = indexSpace > 0 ? rel.substr(0, indexSpace) : rel;
					nm.store.galleryLinks = $('[href][rel="'+nm.store.gallery+'"], [href][rel^="'+nm.store.gallery+' "]');
					nm.store.galleryIndex = nm.store.galleryLinks.index(nm.opener);

					if (!nm.store.prev) {
						nm.store.prev = $('<div />').appendTo(nm.elts.boxInner);
					}

					if (!nm.store.next) {
						nm.store.next = $('<div />').appendTo(nm.elts.boxInner);
					}

					nm.store.prev.addClass('nyroModalPrev');
					nm.store.next.addClass('nyroModalNext');
				},

				beforeShowCont: function(nm) {
					if (nm.galleryCounts && nm.store.title && nm.store.galleryLinks && nm.store.galleryLinks.length > 1) {
						var curTitle = nm.store.title.html();
						nm.store.title.html((curTitle.length ? curTitle+' - ' : '')+(nm.store.galleryIndex+1)+'/'+nm.store.galleryLinks.length);
					}

					var prev = this._getGalleryLink(nm, -1);

					if (prev) {
    					var link = $('<a />', {
								text: 'previous',
								href: '#'
							})
							.bind('click', function(e) {
								e.preventDefault();
								nm._callFilters('galleryPrev');
							});

						nm.store.prev.html(link);
    				} else {
						nm.store.prev.empty();
					}
    				var next = this._getGalleryLink(nm, 1);
    				if (next) {
    					var link = $('<a />', {
    							text: 'next',
    							href: '#'
    						})
    						.bind('click', function(e) {
    							e.preventDefault();
    							nm._callFilters('galleryNext');
    						});

						nm.store.next.html(link);
    				} else {
						nm.store.next.empty();
					}
				},

				close: function(nm) {					
					nm.store.gallery = undefined;
					nm.store.galleryLinks = undefined;
					nm.store.galleryIndex = undefined;
										
					delete(nm.store.gallery);
					delete(nm.store.galleryLinks);
					delete(nm.store.galleryIndex);					
				}
    		}
    	});
    }
});

/** ONCHANGE REDIRECT **/
jQuery(function() {
	jQuery(".redirect").change(function() {
		var location = jQuery(this).find('option:selected').val();
		baseLocation(location);
	});
});

/** IE7 Magic for base-tag **/
function baseLocation( location ) {
    var base = document.getElementsByTagName('base');
    var reg = new RegExp();
    reg.compile('^[A-Za-z]+://');

    if (!reg.test(location)) {
        if (base && base[0] && base[0].href) {
            if (base[0].href.substr(base[0].href.length-1) == '/' && location.charAt(0) == '/') {
                location = location.substr(1);
            }
            location = base[0].href + location;
        }
    }

    window.location.href = location;
}

function baseOpen( location, params ) {
    var base = document.getElementsByTagName('base');
    var reg = new RegExp();
    reg.compile('^[A-Za-z]+://');

    if (!reg.test(location)) {
        if (base && base[0] && base[0].href) {
            if (base[0].href.substr(base[0].href.length-1) == '/' && location.charAt(0) == '/') {
                location = location.substr(1);
            }
            location = base[0].href + location;
        }
    }
    vHWin = window.open( location, 'FEopenLink', params );
    vHWin.focus();
}
