jQuery(window).load(function(){

	// Startseite Fading
	jQuery('.images').fadeShow();

	// smartSlider
	jQuery('.smartslider').smartslider();


	// Produktbild Zoom
	var zoomViewport, zoomImageUrl, zoomImage, zoomViewportPos, zoomViewportWidth, zoomViewportHeight, zoomImageWidth, zoomImageHeight;
	jQuery('#article-image').hover(function(){
		zoomViewport = jQuery(this);
		zoomViewportHeight = zoomViewport.height();
		zoomViewportWidth = zoomViewport.width();
		zoomImageUrl = zoomViewport.find('> img:last-child').attr('src').replace('normal','gross');
		zoomViewport.append('<img class="zoom-image" src="'+zoomImageUrl+'" alt="" title="" style="display: none">');
		zoomImage = jQuery('.zoom-image');
		zoomImageWidth = zoomImage.width();
		zoomImageHeight = zoomImage.height();
		zoomImage.show();
		zoomViewportPos = zoomViewport.offset();
		moveRatioX = parseInt(zoomImageWidth / zoomViewportWidth);
		moveRatioY = parseInt(zoomImageHeight / zoomViewportHeight);

		jQuery(document).mousemove(function(e){
			moveLeft = (e.pageX-zoomViewportPos.left) * moveRatioX;
			moveTop = (e.pageY-zoomViewportPos.top) * moveRatioY;
			moveLeft = ( moveLeft+zoomViewportWidth > zoomImageWidth ) ? zoomImageWidth-zoomViewportWidth : moveLeft;
			moveTop = ( moveTop+zoomViewportHeight > zoomImageHeight ) ? zoomImageHeight-zoomViewportHeight : moveTop;
			zoomImage.css({
				left: -moveLeft,
				top: -moveTop
			});
		});
	},function(){
		zoomImage.fadeOut(0, function(){
			zoomImage.remove();
		});
		jQuery(document).unbind('mousemove');
	});



	// Produktbilder Switch
	var articleImageWrapper = jQuery('#article-image');
	var articleImage = articleImageWrapper.find('> img');
	var articleImageWidth = articleImage.width();
	var articleImageHeight = articleImage.height();

	articleImageWrapper.css({
		height: articleImageHeight,
		width: articleImageWidth
	});
	
	jQuery('.article-thumbnails a').click(function(e){
		
		obj = jQuery(this);
		if ( !obj.hasClass('current') ) {
			imageUrl = obj.attr('href');
			jQuery('.article-thumbnails .current').removeClass('current');
			obj.addClass('current');
		
			articleImageWrapper.append('<img src="' + imageUrl + '" alt="" title="" style="display: none; z-index: 10"  />');
		
			newImage = articleImageWrapper.find('> :last-child');
			newImageHeight = newImage.height();

			if ( articleImageWrapper.height() > newImageHeight ) {
				articleImageWrapper.stop().animate({
					height: newImageHeight
				}, 'fast', function(){
					newImage.fadeIn('fast', function(){
						articleImageWrapper.find('> :first-child').remove();
					});
				});
			} else if (articleImageWrapper.height() < newImageHeight){
				newImage.fadeIn('fast', function(){
					articleImageWrapper.stop().animate({
						height: newImageHeight
					}, 'fast', function(){
						articleImageWrapper.find('> :first-child').remove();
					});
				});
			} else {
				newImage.fadeIn('fast', function(){
					articleImageWrapper.find('> :first-child').remove();
				});
			}
			newImage.css('zIndex', 5);
		}
		e.preventDefault();
	});



	// Warenkorb Refresh
	jQuery('.count').keydown(function(){
		jQuery('#refresh').slideDown('slow');
	})
	
	
	
	// Wie hast Du uns gefunden
	jQuery('input[name=gefunden]').change(function(){
		
		jQuery('#gefunden-detail-wrap').remove();
		
		checked = jQuery('input[name=gefunden]:checked');
		
		switch ( checked.val() ) {
			case 'Ich hab euch im Internet gefunden' :
				label = '&Uuml;ber welche Seite bist Du gekommen?';
			break;
			case 'Ich hab in folgender Zeitschrift über euch gelesen' :
				label = 'In welcher Zeitschrift hast Du &uuml;ber uns gelesen?'
			break;
			case 'Mir hat jemand von euch erzählt' :
				label = '';
			break;
			case 'Ich hab euch auf folgender Messe/folgendem Event gesehen' :
				label = 'Auf welcher Messe hast Du uns gesehen?';
			break;
		}
		
		if ( '' != label ) {
			checked.parent().after('<p id="gefunden-detail-wrap"><label class="checkbox-label" for="gefunden-detail">' + label + '</label> <input name="gefunden-detail" id="gefunden-detail" value="" type="text" /></p>');
		}
		
	});
	
	var cOrdersend = false;
	jQuery('#complete_order').submit(function(e){
		if ( false == cOrdersend ) {
			e.preventDefault();
			if ( jQuery('input[name=gefunden]:checked').length > 0 ) {
			
				obj = jQuery(this);
				obj.addClass('loading');

				url = jQuery('base').attr('href');

				jQuery.post( url + 'woher.php', {woher: jQuery('input[name=gefunden]:checked').val(), detail: jQuery('#gefunden-detail').val() }, function(response){});
				cOrdersend = true;
				jQuery('#complete_order').submit();
			
			} else {
				jQuery('.woher').prepend('<div class="message error"><p>Bitte w&auml;hlen Sie eine Antwort aus</p></div>');
			}
		}
	});
});



/**
 *
 * fadeShow
 *
 */
(function($){
	$.fn.fadeShow = function(options) {
		var defaults = {
			activeClass: 'current',
			duration: 2000,
			easing: 'linear',
			timeout: 5000
		};
		var options = $.extend(defaults, options);
		return this.each(function(i,e) {
			var obj = $(this);
			var fadingElements = obj.children();
			var countElements = fadingElements.length;
			var images = obj.children();
			images.each(function(i,e){
				if ( 0 == i )
					jQuery(e).addClass(options.activeClass);
					
				jQuery(e).css({
					zIndex: countElements-i
				})
			});

			var fadeShow = window.setInterval(function(){
				var current = jQuery('.' + options.activeClass);
				if ( countElements == current.index() + 1 ) {
					current.removeClass(options.activeClass);
					obj
						.find('> :first-child')
						.fadeIn(options.duration, options.easing)
						.addClass(options.activeClass);
					fadingElements.show();
				} else {
					current.fadeOut(options.duration, options.easing);
					current
						.removeClass(options.activeClass)
						.next()
						.addClass(options.activeClass);
				}
			}, options.timeout+options.duration);
		});
	};
})(jQuery);



/**
 *
 * smartSlider
 *
 */
	(function(jQuery){
		jQuery.fn.smartslider = function(options) {

			var defaults = {
				closedClass : 'closed',
				openClass : 'opened',
				scrollTo : false,
				scrollSpeed: 'slow',
				speed : 'fast',
				trigger : 'click',
				targetAttribute : 'href',
				unbind : false
			};

			var options = jQuery.extend(defaults, options);

			return this.each(function() {
				var obj = jQuery(this);

				if (true === options.unbind)
					obj.unbind(options.trigger);

				// Get target Element
				var target = jQuery(obj.attr(options.targetAttribute));

				// Hide target Element
				if ( !obj.hasClass(options.openClass) && !target.hasClass(options.openClass) )
				{
					target.hide();
				 	obj.addClass(options.closedClass);
				 	target.addClass(options.closedClass);
				}

				// Bind toggle
				jQuery(this).bind(options.trigger,function(){

					// Toggle
					target.toggle(options.speed);

					// Add CSS Classes for styling
					if (obj.hasClass(options.openClass))
					{
						obj.removeClass(options.openClass);
						obj.addClass(options.closedClass);

						target.removeClass(options.openClass);
						target.addClass(options.closedClass);
					}
					// Add CSS Classes for styling
					else
					{
						obj.removeClass(options.closedClass);
						obj.addClass(options.openClass);

						target.removeClass(options.closedClass);
						target.addClass(options.openClass);

						if (true == options.scrollTo)
						{
							var offSet = parseInt(target.offset().top);
							jQuery('html').animate({
								scrollTop: offSet
							}, options.scrollSpeed);
						}
					}
					return false;
				});

			});
		};
	})(jQuery);
