function initNavigation() {
	var _menu = $('#nav');
	if(_menu.length) {
		_menu.find(' > li:last-child > div').css({left:'auto',right:'10px'});

		if ($.browser.msie && $.browser.version == '6.0') {
			_menu.find('li').hover(function(){
				$(this).addClass('hover');
			}, function() {
				$(this).removeClass('hover');
			});
		}
	}
}

function initGallery() {
	$('div.gallery').each(function(){
		// gallery options
		var _switchTime = 10000;
		var _slideSpeed = 250;
		var _gallery = $(this);
		var _btnPrev = _gallery.find('.link-prev');
		var _btnNext = _gallery.find('.link-next');
		var _listHolder = _gallery.find(' > div');
		var _holderWidth = _listHolder.width();
		var _list = _listHolder.find(' > ul');
		var _items = _list.find('> li');
		var _itemsCount = _items.length;
		var _itemsWidth = 0;
		var _currentIndex = 0;
		var _currentOffset = 0;
		var _timer = false;
		var _hoverFlag = false;
		var _autoSlide = true;

		// init gallery
		_items.each(function(){_itemsWidth+=$(this).outerWidth(true)});
		_list.append(_items.clone()).append(_items.clone());
		_items = _list.find('> li');
		_currentIndex = _itemsCount;
		_currentOffset = -_itemsWidth;
		_list.css({marginLeft:_currentOffset});

		// gallery events
		_btnPrev.click(function(){
			prevSlide();
			return false;
		});
		_btnNext.click(function(){
			nextSlide();
			return false;
		});

		// slide animation
		function prevSlide() {
			switchSlide(false);
		}
		function nextSlide() {
			switchSlide(true);
		}
		function switchSlide(_direction) {
			var _currentSlide;
			var _currentWidth;

			if(_direction) {
				_currentSlide = _items.eq(_currentIndex);
				_currentWidth = _currentSlide.outerWidth(true);
				_currentOffset += -_currentWidth;
				_currentIndex++;
			} else {
				_currentIndex--;
				_currentSlide = _items.eq(_currentIndex);
				_currentWidth = _currentSlide.outerWidth(true);
				_currentOffset += _currentWidth;
			}
			_list.animate({marginLeft:_currentOffset},{duration:_slideSpeed,queue:false, complete:function(){
				if(_currentIndex>=_itemsCount*2 || _currentIndex==0) {
					_currentIndex = _itemsCount;
					_currentOffset = -_itemsWidth;
					_list.css({marginLeft:_currentOffset});
				}
				if(_autoSlide && !_hoverFlag) _timer = setTimeout(function(){nextSlide()},_switchTime);
			}});
		}

		// auto slide function
		if(_autoSlide) {
			_timer = setTimeout(function(){nextSlide()},_switchTime);
			_gallery.hover(function(){
				_hoverFlag = true;
				if(_timer) clearTimeout(_timer);
			}, function(){
				_hoverFlag = false;
				_timer = setTimeout(function(){nextSlide()},_switchTime);
			});
		}
	});
}

$(document).ready(function(){
	initNavigation();
});
$(window).bind("load", function() {
	initGallery();
});