function guestbookScroller(elem, left, right, eltCount) {
	var _elt = elem;
	var _left = left;
	var _right = right;
	var _partWidth = elem.parent().width();
	var _width = 0;

	_elt.css('margin-left', '0px');
	var loadLeftId = (eltCount / 2)+1;
	var loadRightId = loadLeftId - 1;
	var loadLeft = function () {
		if (loadLeftId <= eltCount) {
			var img = new Image();
			img.src = '/images/ksiega_gosci/ksiega_gosci_0'+loadLeftId+'.jpg';
			loadLeftId++;
			img.onload = function(){
				_width += img.width;
				_elt.css('width', _width + 'px')
				_elt.append('<img class="part" src="' + img.src + '" alt="" />');
				prepareFn();
				loadLeft();
			}	
		}
		else
			loadLeftId = null;
	}
	var loadRight = function () {
		if (loadRightId >= 1) {
			var img = new Image();
			img.src = '/images/ksiega_gosci/ksiega_gosci_0'+loadRightId+'.jpg';
			loadRightId--;
			img.onload = function(){
				_width += img.width;
				_elt.css('width', _width + 'px');
				_elt.css('margin-left', (parseInt(_elt.css('margin-left')) - img.width) + 'px');
				_elt.prepend('<img class="part" src="' + img.src + '" alt="" />');
				prepareFn();				
				loadRight();
			}	
		}
		else
			loadRightId = null;
	}
	loadLeft();
	loadRight();
			
	var loader = jQuery('<img src="/images/layout/loader.gif" alt="loading..." />');
	loader.css({
		position: 'absolute',
		marginTop: '-80px',
		display: 'none'
	});
	_elt.parent().append(loader);
	
	var showLoader = function (x) {
		loader.css({display: 'block', marginLeft: x + 'px'})
	}
	var hideLoader = function (){
		loader.css('display', 'none');
	}
	
	var prepareFn = function(){
		_right.css('visibility', 'visible')
		_left.css('visibility', 'visible')
		hideLoader();
		_elt.dequeue();
		_elt.stop();
	}
	
	var scrollBackFn = function(){
		prepareFn();
		
		var marginLeft = Math.abs(parseInt(_elt.css('margin-left')));
		if (marginLeft - _partWidth/2 -1 < 0) {
			_elt.animate({marginLeft: '0px'})
			_left.css('visibility', 'hidden')
			if (loadRightId != null)
				showLoader(30);
		}
		else {
			_elt.animate({marginLeft: '+=' + _partWidth/2 + 'px'})
		}
		
		return false;
	}
	var scrollFrontFn = function(){
		prepareFn();
		
		var marginLeft = Math.abs(parseInt(_elt.css('margin-left')));
		if (marginLeft + 1.5*_partWidth >= _width) {
			_elt.animate({marginLeft: (_partWidth - _width) + 'px'})
			_right.css('visibility', 'hidden')
			if (loadLeftId != null)
				showLoader(860);
		}
		else {
			_elt.animate({marginLeft: '-=' + _partWidth/2 + 'px'})
		}
			
		return false;
	}
	_right.click(scrollFrontFn);
	_left.click(scrollBackFn);
	
	return {
		isFirst: function() {return (_aktElem == 1);},
		isLast: function() {return (_aktElem == _partCount);},
		scrollBack: scrollBackFn,
		scrollFront: scrollFrontFn
	}
}