scroller = {

	p : 0, // aktualni pozice

	goToP : function() {
		scroller.cont.style.left = scroller.p + 'px';
	},

	move : function (offs) {
		scroller.p = scroller.p + offs;
		if (scroller.p < scroller.minP) {
			scroller.stop();
			scroller.p = scroller.minP;
			cls.replace(scroller.btnR, 'scrollerBtnRActive', 'scrollerBtnRInactive');
		}
		if (scroller.p > scroller.maxP) {
			scroller.stop();
			scroller.p = scroller.maxP;
			cls.replace(scroller.btnL, 'scrollerBtnLActive', 'scrollerBtnLInactive');
		}
		scroller.goToP();
	},

	moveR : function() {
		cls.replace(scroller.btnL, 'scrollerBtnLInactive', 'scrollerBtnLActive');
		scroller.tmr = window.setInterval(function() { scroller.move(-scroller.step); }, scroller.tick);
	},

	moveL : function() {
		cls.replace(scroller.btnR, 'scrollerBtnRInactive', 'scrollerBtnRActive');
		scroller.tmr = window.setInterval(function() { scroller.move(scroller.step); }, scroller.tick);
	},

	stop : function() {
		if (scroller.tmr) { clearInterval(scroller.tmr); scroller.tmr = false; }
	},

	appendP : function(e) {
		e = evt.fix(e);
		tgt = e.target;
		while (tgt.tagName != 'a' && tgt.tagName != 'A') {
			if (!tgt.parentNode) return false;
			else tgt = tgt.parentNode;
		}
		tgt.href += '?scrollerPosition=' + scroller.p;
		return true;
	},

	init : function() {

		if (window.opera && (!window.opera.version || parseFloat(window.opera.version()) < 8)) return;

		scroller.w = 100; // sirka jednoho prvku
		scroller.tick = 1; // interval zmeny
		scroller.step = 3; // o kolik se meni
		scroller.cw = 670; // sirka viditelneho pruhu

		scroller.num = document.getElementById('productScroller').getElementsByTagName('li').length;
		scroller.cont = document.getElementById('productScrollerContent');

		scroller.minP = scroller.cw - scroller.w * scroller.num;
		scroller.maxP = 0;

		elm = document.getElementById('productScroller');
		scroller.btnR = document.getElementById('productScrollerRight');
		scroller.btnL = document.getElementById('productScrollerLeft');

		cls.add(elm, 'scroller');
		if (scroller.cw < scroller.w * scroller.num) {

			cls.add(scroller.btnR, ((scroller.p > scroller.minP) ? 'scrollerBtnRActive' : 'scrollerBtnRInactive'));
			cls.add(scroller.btnL, ((scroller.p < scroller.maxP) ? 'scrollerBtnLActive' : 'scrollerBtnLInactive'));

			evt.add(scroller.btnR, 'mousedown', function() { scroller.moveR(); });
			evt.add(scroller.btnL, 'mousedown', function() { scroller.moveL(); });
			evt.add(scroller.btnR, 'mouseup', function() { scroller.stop(); });
			evt.add(scroller.btnL, 'mouseup', function() { scroller.stop(); });
			evt.add(scroller.btnR, 'mouseout', function() { scroller.stop(); });
			evt.add(scroller.btnL, 'mouseout', function() { scroller.stop(); });

		} else {

			cls.add(scroller.btnR, 'scrollerBtnRInactive');
			cls.add(scroller.btnL, 'scrollerBtnLInactive');
		}
		scroller.cont.style.width = (scroller.num * scroller.w) + 'px';
		scroller.goToP();

		var links = document.getElementById('productScroller').getElementsByTagName('a');
		for (i in links) {
			if (links[i].href) { evt.add(links[i], 'click', scroller.appendP); }
		}
	}
}

evt.add(window, 'load', scroller.init);
