$(document).ready(function() {
	try {
		if (document.getElementById('links')) {
			new (function() {
				var mainElem     = '.links';
				var elemsClasses = '.links .item';
				var elemsLinks   = '.links a.main';
				var elemFirst    = '.links .item.no1';
	
				var innerUl      = '.links .in ul';
				var movers       = {
					left  : '.links .leftMover',
					right : '.links .rightMover'
				};
				
				var secSlider    = {
					over  : '.pcars',
					inner : '.inner'
				}
	
				var popUpLinks   = '.links .item li a';
				var popUpDiv     = '.vuzlist';
				var popUpItems   = '.vuz';
				var popUpLimit   = 4;
				
				var origItemWidth = parseInt($(popUpItems+':first').css('width'));
				if (!origItemWidth) {
					origItemWidth = 170;
				}
			
				if (!document.getElementById('links')) {
					return false;
				}
			
				function is_ie(no) {
					return (navigator.appVersion).indexOf('MSIE ' + (no ? no : '')) != -1 ? true : false;
				}
	
				var offset = is_ie() ? 20 : 10;
				var interval = 10;
				
				var mini = {
					offset : (is_ie() ? 10 : 5),
					interval : 20
				};
				
				var timeouts = new Array();
	
				/**
				 * vrati aktualni otevreno podnabidku vozu
				 * @return jQuery object			 
				 **/
				function getOpenedDiv() {
					var _width = 0;
					var _div = null;
					var elems = $(elemsClasses);
					
					for (i = 0; i < elems.length; i++) {
						_w = elems[i].offsetWidth;
						if (_w > _width) {
							_width = _w;
							_div = elems[i];
						}
					}
					
					return $(_div);
				}
	
				var moving = false;
	
				/**
				 * jeden objekt otevre, druhy zavre
				 * param jQuery object _opener
				 * param jQuery object _closer			 			 
				 **/
				function moveIt(_opener, _closer) {
					_cwid = parseInt(_closer.css('width'));
					_cnew = (_cwid-offset) < width.min ? width.min : _cwid-offset;
					_closer.css('width', _cnew+'px');
					
					_owid = parseInt(_opener.css('width'));
					_onew = (_owid+offset) > width.max ? width.max : _owid+offset;
					_opener.css('width', _onew+'px');
					
	 				if ((_cnew == width.min && _onew != width.max) || (_cnew != width.min && _onew == width.max)) {
	 					
					}
	
					if (_cnew == width.min || _onew == width.max) {
						return moveItStop(_opener, _closer);
					}
					
					timeouts.push(setTimeout(function() {
						moveIt(_opener, _closer);
					}, interval));
				}
	
				function moveItStop() {
					_opener.css('overflow', 'visible');
					moving = false;
					return false;
				}
				
				/**
				 * ponastavuje sirky
				 * vychazi se z width u hlavniho odkazu, ostatni se dopocitaji
				 **/
				function setCountWidths() {
					elemsNum  = $(elemsLinks).size();
					elemsWid  = $(elemsLinks+':first-child').attr('offsetWidth');
					totalWid  = $(mainElem).width();
					
					firstWid  = totalWid-(elemsWid*elemsNum)+elemsWid;
					scrollWid = firstWid-elemsWid;
					
					$(elemsClasses).css('width', elemsWid+'px');
					$(elemsClasses).first().css('width', firstWid+'px');		
				};
				
				setCountWidths();
				
				var width = {
					min : $(elemsLinks).attr('offsetWidth'),
					max : getOpenedDiv().attr('offsetWidth')
				};
				
				/**
				 * priradi akci odkazum na onclick
				 * zjistime, co se ma otevirat, co zavirat a provedeme			 
				 **/
				$(elemsLinks).click(function() {
					hidePopUps();			
					if (!moving) {
						for (i = 0; i < timeouts.length; i++) {
							clearTimeout(timeouts[i]);
						}
					
						_opener = $(this).parent();
						_closer = getOpenedDiv();
						_closer.css('overflow', 'hidden');
	
						moving = true;
						moveIt(_opener, _closer);
					}
					return false;
				});
	
				var secMover = '.pcars .inner';
				
				/**
				 * posouvani uvnitr posouvatka
				 * pouze na hover
				 **/
				function moveMove(smer, elem, self) {
					_left = parseInt(elem.css('marginLeft'));
					_wi = elem.children('li').attr('offsetWidth')*elem.children('li').size();  
					
					maxLeft = _wi-elem.parent().attr('offsetWidth');

					if (smer > 0 && _left >= 0) {
						return stopMove();
					}
	
	 				if (smer < 0 && (_left*smer) >= maxLeft) {
					 	return stopMove();
					}
					
					_left = _left*smer;
					newLeft = (_left+mini.offset)*smer;
					
					elem.css('marginLeft', newLeft+'px');
					
					_secMover = self.parent().parent();
					secMover = _secMover.children(secSlider.over).children(secSlider.inner);
					secMover.css('left', newLeft+'px');
					
					miniTimeouts.push(setTimeout(function() {
						moveMove(smer, elem, self);
					}, mini.interval));
				}
				
				/**
				 * zastavi minimover
				 * vyresetuje timeouty a povoli opetovne spusteni			 
				 **/
				function stopMove() {
					for (i = 0; i < miniTimeouts.length; i++) {
						clearTimeout(miniTimeouts[i]);
					}
					innerMoving = false;
					return;
				}
				
				var miniTimeouts = new Array();
				var innerMoving = false;
				
				/**
				 * minislider
				 * ovladac doleva a doprava			 
				 **/
				$(movers.left).hover(function() {
					hidePopUps();
					if (!innerMoving) {
						innerMoving = true;
						elem = this.parentNode.getElementsByTagName('ul')[0];
						elem = $(elem);
						innerMoving = true;
						moveMove(1, elem, $(this));
					}
				}, function() {
					stopMove();
				});
				
				$(movers.right).hover(function() {
					hidePopUps();
					if (!innerMoving) {
						innerMoving = true;

						elem = this.parentNode.getElementsByTagName('ul')[0];
						elem = $(elem);
						innerMoving = true;
						moveMove(-1, elem, $(this));
					}
				}, function() {
					stopMove();
				});
	
				function hidePopUps() {
					$(popUpDiv).css('display', 'none');
				}
				
				$('body').hover(function() {
					hidePopUps();
				});
	
				/**
				 * popup menu nahoru
				 * spocteni pozice a sirky
				 * zobrazujeme prvek dle ID, ktere necemu odpovida
				 **/
				$(popUpLinks).hover(function() {
					hidePopUps();
					
					_class = $(this).attr('className');
					_elem  = $('#'+_class);
					_elem.css('display', 'block');
					
					childCount = _elem.children().size();
	
					if (childCount > popUpLimit) {
						cols = Math.ceil(childCount/popUpLimit);
						_elem.css('width', (cols*origItemWidth)+'px');
					}
	
					_elem.css('display', 'block');
					_elem.css('top', '-'+(_elem.attr('offsetHeight'))+'px');
					_elem.css('left', $(this).attr('offsetLeft'))
					
				}, function() {
				});
				
				$(popUpDiv).hover(function() {
				}, function() {
					hidePopUps();
				});

				$(mainElem).css('overflow', 'visible');
				$(elemFirst).css('overflow', 'visible');
			});
		}
	} catch (err) {
		if (typeof console != 'undefined') {
			console.log(err);
		} else {
			throw new Error(err);
		}
	}
});
