
(function() {
	var listenPh = setInterval((function() {
		var ph = document.getElementById('links');

		if (ph) {
			clearInterval(listenPh);

			initBaraban();
		}
	}), 100);

	function initBaraban() {
		var portalsBaraban = document.getElementById('links-bar');
		var baraban = document.getElementById('bar');

		var portals = baraban.getElementsByTagName('a');
		var visible = baraban.getElementsByTagName('div');
		var barabanWidth = baraban.parentNode.clientWidth;
		baraban.style.width = visible.length * barabanWidth + 'px';

		var padding, vector, shift, go;
		for (var j = 0; j < visible.length; j++) {
			var vis = visible[j];

			if(j == visible.length - 1) {
				var t_shift = 0;

				while (vis.getElementsByTagName('a').length < 3) {
					var adding_node = portals[t_shift].cloneNode(true);
					adding_node.style.padding = 0;
					vis.appendChild(adding_node);
					t_shift++;
				}
			}

			padding = Math.floor((barabanWidth - vis.clientWidth) / vis.childNodes.length / 2);

			/*
			for (var i = 0; i < vis.childNodes.length; i++) {
				vis.childNodes[i].style.padding = '0 ' + padding + 'px';
			}
			*/
		}

		var steps = 16;
		var dx = barabanWidth / steps;
		portalsBaraban.onclick = function(e) {
			if (!e) {
				var e = window.event;
				e.target = e.srcElement;
			}

			offset = baraban.offsetLeft;
			go = false;

			if (offset % barabanWidth) {
				return null;
			}

			if ('bar-next' == e.target.id) {
				vector = -1;
				shift = (offset < -barabanWidth * (baraban.clientWidth/barabanWidth - 2)) ? barabanWidth : offset;
				go = true;
			}

			if ('bar-prev' == e.target.id) {
				vector = 1;
				shift = (!offset) ? -baraban.clientWidth  : offset;
				go = true;
			}

			if (go) {
				for (var i = 0; i < steps; i++) {
					setTimeout(function() {
						shift += dx * vector;
						baraban.style.left = shift + 'px';
					}, i * i);
				}
			}
		}

		portalsBaraban.onmousedown = function() {return false;}
		portalsBaraban.onselectstart = function() {return false;}
		portalsBaraban.className = 'bar-ready';
	}
})();


