jQuery(function ($) {
	// create bigTeaser slideshow
		var bigTeaser = $('.icf__home__bigTeaser');
		// init videos
		  var videoPlaying = false;
		  var initVideo = function () {
			  $('*[id^=icfHomeBigTeaserVideo]').each(function () {
					jwplayer($(this).attr('id')).setup({
						controlbar: "none",
						flashplayer: "classes/cwx/multimedia/players/longtail/player.swf",
						file: $(this).attr('file'),
						image: $(this).attr('poster'),
						events: {
							onPlay: function () { videoPlaying = true; },
							onPause: function () { videoPlaying = false; },
							onComplete: function () { videoPlaying = false; }
						}
					});
				});
			};
		if (bigTeaser.length <= 1) return initVideo();
		var config = {
		  teaserWidth: 641, // [px]
		  teaserheight: 360, // [px]
		  slideWaitTime: 3000, // [ms]
		  slideDuration: 800, // [ms]
		  naviShowDuration: 250 // [ms]
		};
		// create gallery slider and append all bigTeasers to it
		  var cropper = $('<div id="icfHomeBigTeaserGalleryCropper" />').appendTo(bigTeaser.filter(':first'));
		  var slider = $('<div id="icfHomeBigTeaserGallerySlider" />').appendTo(cropper);
		  bigTeaser.filter(':first').find('.icfHomeBigTeaser').appendTo(slider);
			bigTeaser.filter(':not(:first)').find('.icfHomeBigTeaser').appendTo(slider).end().end().remove();
		// slider
			var slideTimeoutId;
		  var teaser = $('.icfHomeBigTeaser');
		  slider.width((teaser.length + 1) * config.teaserWidth).append('<div class="floatEnd" />');
			var slideIndex = 1;
			var moveSlider = function (e, moveTo) {
			  if (videoPlaying) return;
			  window.clearTimeout(slideTimeoutId);
				if (!isNaN(moveTo)) slideIndex = moveTo;
				slider.animate({'margin-left': -(slideIndex++ * config.teaserWidth) + 'px'}, config.slideDuration, function () {
				  if (slideIndex >= teaser.length) slideIndex = 0;
					if (!cropper.data('mouseover')) slideTimeoutId = window.setTimeout(moveSlider, config.slideWaitTime);
				});
			};
			$(window).bind('load', function () { slideTimeoutId = window.setTimeout(moveSlider, config.slideWaitTime); });
			cropper.bind('mouseenter', function () {
			  if (videoPlaying) return;
			  $(this).data('mouseover', true);
			  window.clearTimeout(slideTimeoutId);
			}).bind('mouseleave', function () {
			  if (videoPlaying) return;
			  $(this).data('mouseover', false);
			  window.clearTimeout(slideTimeoutId);
			  slideTimeoutId = window.setTimeout(moveSlider, config.slideWaitTime);
			});
		// navigator
		  var navi = $('<div id="icfHomeBigTeaserGalleryNavigator" />').appendTo(cropper);
		  var naviHeight = (Math.floor(teaser.length / 7) + 1) * 55;
		  var naviImgLoaded = function () { navi.css('left', parseInt((cropper.width() - navi.width()) / 2) + "px"); }
			if (teaser.length > 6) navi.css('width', "558px"); // necessary because navi is too big if width is not set and the thumbnails are displayed on two rows
			teaser.each(function (i) {
				var imgObj = $(this).find('img:first').length ? $(this).find('img:first') : $(this).find('video:first');
				var src = imgObj.attr('src') ? imgObj.attr('src') : (imgObj.attr('poster') ? imgObj.attr('poster') : false);
				if (!src) return;
				if (src.match(/_h[0-9]+/i)) src = src.replace(/_h[0-9]+/, "_h50");
				else src = src.substr(0, src.lastIndexOf(".")) + "_h50" + src.substr(src.lastIndexOf("."));
			  var imgWrap = $('<div class="icfHomeBigTeaserGallerySmallImageContainer">').bind('click', function () {
       		moveSlider(null, i);
				});
			  var img = $('<img src="' + src + '" alt="" />').bind('load', naviImgLoaded).appendTo(imgWrap);
			  imgWrap.appendTo(navi);
			});
			navi.append('<div class="floatEnd" />');
			cropper.bind('mouseenter', function () {
				navi.show().css('height', '0').animate({'height': naviHeight + 'px'}, config.naviShowDuration);
			}).bind('mouseleave', function () {
				navi.animate({'height': '0'}, config.naviShowDuration, function () { navi.hide(); });
			});
		initVideo()
});
