// catalog browse objekt s polozkama horizontalne na jednom radku
var objToScroll = $('cont-cont-box-inner--content--wrap--cont--');
var objContent = $('mag-preview_group_0');
var itemsOnScreen = 4;
var speedAuto = 7;

// nejaka ta funkcnost
var actualScrollPositionX = 0;
var newScrollPositionX = 0;
var arrListItem = objToScroll.getElements('div[class=list_item]');
var itemSizeX = arrListItem[0].getSize().x;

var arrClear = objContent.getElements('div[class=clear]');
var objClear = arrClear[arrClear.length-1];
objClear.dispose();
for (var n = 0; n<itemsOnScreen; n++){ // abychom se mohli tocit dokola, tak kopie prvnich X polozek
	objContent.appendChild(arrListItem[n].cloneNode(true));
}

objContent.setStyle('width', objToScroll.getElements('div[class=list_item]').length*(itemSizeX)+'px');
var contentSizeX = objToScroll.getElements('div[class=list_item]').length*(itemSizeX);
var intervalID = null;
var autoScrollDiff = 2;
var autoScrollDisableTick = 0;

var scrollFn = function(){
	diff = (actualScrollPositionX - newScrollPositionX) / 5;

	if (Math.abs(diff) < 0.1) { // zakonceni posouvani, at to netrva
		diff = actualScrollPositionX - newScrollPositionX;
	}

	actualScrollPositionX -= diff;
	if (actualScrollPositionX < 0){ // kdyz jsme na zacatku a chce doleva
		actualScrollPositionX = (contentSizeX - itemSizeX*(itemsOnScreen))-1;
		newScrollPositionX = (contentSizeX - itemSizeX*(itemsOnScreen+1));
	}

	if (actualScrollPositionX >= (contentSizeX - itemSizeX*itemsOnScreen)){ // kdyz jsme na konci, tak se tocime
		actualScrollPositionX = 0;
		newScrollPositionX = 0;
	}

	objToScroll.scrollTo(actualScrollPositionX, 0);

	if (actualScrollPositionX == newScrollPositionX) {
		$clear(intervalID);
		autoScrollDisableTick = 1;
	}
}


var autoScrollFn = function(){
	if (autoScrollDiff == 0) {
		autoScrollDisableTick++;
		if (autoScrollDisableTick > 120) {
			autoScrollDiff = speedAuto;
		}
	} else {
		autoScrollDisableTick = 0;
		newScrollPositionX = actualScrollPositionX + autoScrollDiff;
		diff = (actualScrollPositionX - newScrollPositionX) / 5;

		if (Math.abs(diff) < 0.1) { // zakonceni posouvani, at to netrva
			diff = actualScrollPositionX - newScrollPositionX;
		}

		actualScrollPositionX -= diff;
		if (actualScrollPositionX < 0){ // kdyz jsme na zacatku a chce doleva
			actualScrollPositionX = (contentSizeX - itemSizeX*(itemsOnScreen))-1;
			newScrollPositionX = (contentSizeX - itemSizeX*(itemsOnScreen+1));
		}

		if (actualScrollPositionX >= (contentSizeX - itemSizeX*itemsOnScreen)){ // kdyz jsme na konci, tak se tocime
			actualScrollPositionX = 0;
			newScrollPositionX = 0;
		}

		objToScroll.scrollTo(actualScrollPositionX, 0);
	}
}

var stopAutoScroll = function(){
	autoScrollDiff = 0;
	autoScrollDisableTick = 1;
}

// scroll right
function scrollRight() {
		newScrollPositionX = actualScrollPositionX + itemSizeX;
		intervalID = scrollFn.periodical(30);
}

// scroll right
function scrollLeft() {
		newScrollPositionX = actualScrollPositionX - itemSizeX;
		intervalID = scrollFn.periodical(30);
}


// obladaci prvky posouvani
$('right-arr').onclick = scrollRight;
$('left-arr').onclick = scrollLeft;
$('right-arr').onmousemove = stopAutoScroll;
$('left-arr').onmousemove = stopAutoScroll;


// start automatickeho posouvani
autoScrollDiff = speedAuto;
autoScrollFn.periodical(75);

