$(document).ready(function(){
	// *** product carousels ***
	if($('#productCarousel').length > 0){
		$("#productCarousel").CloudCarousel(		
			{			
				xPos: 300,
				yPos: 20,
				yRadius: 10,
				buttonLeft: $("#btnLeft"),
				buttonRight: $("#btnRight"),
				altBox: $("#alt-text"),
				titleBox: $("#title-text"),
				bringToFront: true 
				//autoRotate: "right",
				//autoRotateDelay: 2500 
			}
		);
		
		// *** carousel tooltip *** 
		var carouselImg = $("#productCarousel img");
		var carouselTooltip = $("#carouselTooltip");
		
		carouselImg.mouseenter(function(){
			var zIndex = $(this).css("z-index");
			if (parseInt(zIndex) > 90) {
				var tooltipData = $(this).data("tooltip");
				//log("tooltipData: ", tooltipData)
				tooltipData = tooltipData.split("||");
				carouselTooltip.find("p").text(tooltipData[0]);
				carouselTooltip.find("h3").removeClass().addClass(tooltipData[1]);
				carouselTooltip.find("h3").text(tooltipData[1]);
				carouselTooltip.find("a").attr("href", tooltipData[2] );
				
				if($.browser.msie){
					carouselTooltip.show();
				} else {
					carouselTooltip.fadeIn(500);
				}
			}
		});
		
		$("#btnRight, #btnLeft").click(function() { hideTooltip(); }); 
		$("#productCarousel").mouseleave(function() { hideTooltip(); }); 
		carouselImg.click(function() { hideTooltip(); }); 
		var hideTooltip = function () {
			if($.browser.msie){
				carouselTooltip.hide();
			} else {
				carouselTooltip.fadeOut(500);
			}
		};
	}
	
	// *** toggle list ***
	$('.toggleList li h3').click(function(){
		if($(this).hasClass('open')){
			$(this).removeClass('open');
		} else {
			$(this).addClass('open');
		}
		$(this).next('div').toggle();
	});
	
	// *** accordion ***
	if($('.accordion').length > 0){
		$('.accordion').accordion({
			header: '.head',
			collapsible: true,
			active: 0,
			autoHeight: false
		});
	}
	
	// *** stage home cycle ***
	if($('.stageCycle').length > 0){
		$('.stageCycle').before('<div class="clearfix"><div class="cycleNav">');
		$('.stageCycle ul')
			.cycle({
				fx:     'fade', 
				speed:  'slow', 
				timeout: 8000, 
				pauseOnPagerHover: true, 
				pager:  '.cycleNav' 
			});
		$('.cycleNav a').each(function(index){
			this.id = 'link' + index;
		});
	}

	// *** slider ***
	$('.slideshowWrapper').each(function() {
		var slideshowWrapper = this,
			currentPosition = 0,
			slides = $(this).find('ul li'),
			slideWidth = slides.innerWidth(),
			slidesPerClick = Math.round($(slideshowWrapper).attr('data-slidesperclick')) || 3,
			numberOfSlides = slides.length
		;

		$(slideshowWrapper).find('.slideshow').css({
			/* 'width': function(index, value) {
				return $(this).find('li').outerWidth() * numberOfSlides;
			}, */
			'width': '596px',
			'overflow': 'hidden'
		});

		// Readjust .slides width
		slides.css({
			'width': slideWidth
		});

		// Set ul width equal to width of all slides
		$(slideshowWrapper).find('.slideshow ul').css('width', slideWidth * numberOfSlides);

		// Insert left and right arrow controls in the DOM
		$(slideshowWrapper)
			.prepend('<span class="control controlLeft">Nach links</span>')
			.append('<span class="control controlRight">Nach rechts</span>');

		// Hide left arrow control on first load
		manageControls(currentPosition, numberOfSlides, slideshowWrapper, slidesPerClick);

		// Create event listeners for .controls clicks
		$(slideshowWrapper).find('.control').bind('click', function(){
			// Determine new position
			currentPosition = ($(this).hasClass('controlRight'))
				? currentPosition+slidesPerClick : currentPosition-slidesPerClick;

			// Hide / show controls
			manageControls(currentPosition, numberOfSlides, slideshowWrapper, slidesPerClick);

			// Move ul using margin-left
			$(slideshowWrapper).find('.slideshow ul').animate({
				'marginLeft': slideWidth*(-currentPosition)
			});
		});

	});
			
	// Manage controls
	function manageControls(position, numberOfSlides, slideshowWrapper, slidesPerClick) {
		var slideshowWidth = $(slideshowWrapper).find('.slideshow ul').outerWidth();
		var slideshowWrapperWidth = $(slideshowWrapper).outerWidth();
		
		// position 0 is first slide
		if(position == 0){
			$(slideshowWrapper).find('.controlLeft').hide();
		} else {
			$(slideshowWrapper).find('.controlLeft').show();
		}
		// numberOfSlides-3 is last slide
		if(position >= (numberOfSlides-slidesPerClick) || slideshowWidth < slideshowWrapperWidth){
			$(slideshowWrapper).find('.controlRight').hide();
		} else {
			$(slideshowWrapper).find('.controlRight').show();
		}
	}
	
	// *** captcha code layer ***		
	if($('a.captchaHelpLayerTrigger').length) {
		var CodeLayer = $('#codeHelp');
		$('a.captchaHelpLayerTrigger').click(function() {
			CodeLayer.show();
			CodeLayer.find('a.close').live('click', function() {
				CodeLayer.hide();
				return false;
			});
			return false;
		});
	}
	
	// *** Teilnahmebedingungen layer ***		
	if($('a.showSweepstakeTerms').length) {
		var termsLayer = $('#sweepstakeTerms');
		$('a.showSweepstakeTerms').click(function() {
			termsLayer.show();
			termsLayer.find('a.close').live('click', function() {
				termsLayer.hide();
				return false;
			});
			return false;
		});
	}
	
});


