/**
 * Produkt Empfehlungen
 *
 * @author Fstrauss
 * @access public
 *
 * Beispiel:
 *
 *	HTML Markup:
 *
 *	<div class="product-recommendation-container">
 *		<h3>Produktempfehlungen</h3>
 *		<div class="recommendation" title="1101010031" url="http://shop.buenting-tee.loc/typo3services.php"></div>
 *		<div class="recommendation" title="1101010031" url="http://shop.buenting-tee.loc/typo3services.php"></div>
 *	</div>
 *
 *	title = produkt SKU
 *	url = URL zum Service
 *
 *	Javascript:
 *
 *  $('div.product-recommendation-container').productRecommendation();
 *
 *  CSS:
 *  Siehe Bünting-Tee TYPO3: content.css
 *
 */

(function($){

$.fn.productRecommendation = function(options) {

	/**
	 * Plugin Default Options
	 */
	var defaults = {
		serviceURL : '?service=product_information'
	}

	options = $.extend(defaults, options);


    var createRecommendation = function(product) {

    	var domTitle;
		if(product.title.length > 22) { domTitle = product.title.substr(0,22)+'...' } else { domTitle = product.title }
		
        var title   = $('<h4>').html(domTitle),
			img     = $('<img>').attr('src',product.image),
			price   = $('<span>').html(product.price).addClass('price'),
			mwst    = $('<span>').html(product.mwst).addClass('mwst'),
			link    = $('<a>').html('Details').attr('href',product.link),
			clean   = $('<div>').addClass('clean'),
			container = $('<div>').addClass('recommendation');

	
		container.append(title);
		container.append(img);
		container.append(price);
		container.append(mwst);
		container.append(link);
		container.append(clean);

		return container;

    }



	var getURL = function(parent) {
		return $(parent).find('div.recommendation:first').attr('url');
	}
	var getSKUs = function(parent) {

		var sku =""
			

		$(parent).find('div.recommendation').each(function(i, item) {
			sku+=$(this).attr('title');
			if(i != ($(parent).find('div.recommendation').length-1)) {
				sku+= ',';			
			}
		})
		return sku;
	}


    return this.each(function() {
		var SKUs	= getSKUs(this),
			URL		= getURL(this),
			self	= this,
			i		= 0;
		
		
		
		$.getJSON(URL+options.serviceURL+'&product_sku='+SKUs+'&jsoncallback=?', function(data) {
			
	
			$(self).find('div.recommendation').remove();

			var container 	= $(self),
				hidden 		= $('<div>').addClass('product-recommendation-hidden'),
				more 		= $('<div class="more"><a href="#"><span>weitere Empfehlungen</span></a></div>'),
				item;
	
			$(data).each(function(i, item) {

				item = createRecommendation(item);
				
				if(i == 0) {
					container.append(item);
				} else {
					item.appendTo($(container).find('div.product-recommendation-hidden'));
				}

				if(i == 0 && data.length > 1) {
				
					more.click(function() {
						var self = this;
						$(container).find('div.product-recommendation-hidden').slideToggle('fast',function() {
							if($(container).find('div.product-recommendation-hidden').css('display') == "none") {
								$(self).removeClass('active');
							} else {
								$(self).addClass('active');
							}
						});

						return false;
					})
					container.append(more);

					container.append(hidden);
					
				}

			});

		});
	});
};

})(jQuery);
