
var presbeton = window.presbeton = window.presbeton || {};


/**
 * ProductController
 */
presbeton.ProductController = function()
{
	return this;
};

presbeton.ProductController.prototype.init = function()
{
	$('.more-images').each(function()
	{
		var $prevnext2 = $('<div class="prevnext"><a href="#" class="prev">předchozí</a> <a href="#" class="next">další</a></div>');
		var $imageCarousel = $(this);
	    $imageCarousel.find('.hscroll-box').before($prevnext2);
	    var imageScroller = new kff.widgets.Scroller($imageCarousel.find('.hscroll-box'), {
			scrollWidth: 56 * 3 + 3 * 10,
			carouselWidth: 56 * 3 + 2 * 10,
			itemWidth: 56,
			gapWidth: 10,
			prev: $imageCarousel.find('.prev'),
			next: $imageCarousel.find('.next')
		});
		imageScroller.init();
	});

	var productImageController = new presbeton.ProductImageController();
	productImageController.init();	
};


/* Rozklikávání obrázku */
presbeton.ProductImageController = function(element, options)
{
	this.options = $.extend({
	}, options);
	this.$element = $(element);
};

presbeton.ProductImageController.prototype.init = function()
{
	var that = this;
	this.$middleImageContainer = $('.product-img-box .img-box');
	this.$thumbnails = $('.product-img-box .more-images ul li a');
	this.$kfboxFakeLinksContainer = $('<div />').css({ display: 'none' }).appendTo($('.product-img-box'));
	this.$kfboxFakeLinks = this.$thumbnails.clone();
	this.$kfboxFakeLinks.appendTo(this.$kfboxFakeLinksContainer);
	this.$kfboxFakeLinks.kfBox();
	this.$loader = $('<div class="loader"></div>');

	if(this.$thumbnails.size())
	{
		this.$thumbnails.bind('click', $.proxy(this.clickThumbnail, this));
		this.$middleImageContainer.find('a').bind('click', function(event)
		{
			that.$kfboxFakeLinks.eq(0).triggerHandler('click');
			return false;
		});
	}
	else this.$middleImageContainer.find('a').kfBox();
};

presbeton.ProductImageController.prototype.clickThumbnail = function(event, kfbox)
{
	var $thumbnail = $(event.currentTarget);
	
	var i = this.$thumbnails.index(event.currentTarget);

	var urlLarge = $thumbnail.attr('href');
	var urlMiddle = $thumbnail.attr('data-largeImgUrl');

	if(this.$img instanceof jQuery)
	{
		this.$img.unbind();
		this.$loader.remove();
	}
	
	this.$middleImageContainer.append(this.$loader);	
	this.$img = $(document.createElement('img'));
	this.$img.bind('load', { urlLarge: urlLarge, $thumbnail: $thumbnail, i: i }, $.proxy(this.loadImage, this));
	this.$img.attr('src', urlMiddle);

	return false;
};

presbeton.ProductImageController.prototype.loadImage = function(event)
{
	this.$loader.remove();
	var $a = $('<a href="' + event.data.urlLarge + '"></a>');
	this.$middleImageContainer.find('.inner').empty().append($a);
	$a.append(event.currentTarget).bind('click', { i: event.data.i }, $.proxy(this.clickMiddle, this));
};

presbeton.ProductImageController.prototype.clickMiddle = function(event)
{
	this.$kfboxFakeLinks.eq(event.data.i).triggerHandler('click');
	return false;
};


