$(document).ready(function(){
	//menu hover 
	menuHover();
	function menuHover(){
		var _hold = $("ul.main-menu");
		var _li = $("li", _hold );
		_li.hover(function(){
			$(this).addClass("hover");
		},function(){
			$(this).removeClass("hover");
		})
	};
	// question list ***********************************************************
	var _questionList = $('ul.question-list > li');
	if (_questionList.length) {
		_questionList.each(function(i,li){
			var _opener = $('strong a', li);
			var _slide = $('p', li);
			if (!$(li).hasClass('open')) _slide.hide(); else _slide.show();
			_opener.click(function(){
				if (!$(li).hasClass('open')) {
					$(_slide).slideDown(400);
					$(li).addClass("open");
				} else {
					$(_slide).slideUp(400);
					$(li).removeClass("open");
				};
				return false;
			});
		});
	}
	
	// navigation slide ********************************************************
	slideNav();
	function slideNav(){
		var _sidebar = $('div.sidebar');
		var _nav = $('ul.menu', _sidebar);
		var _footer = $('#footer')
		var _navMargin = 0;
		if (_nav) {
			_sidebar.pos = _sidebar.offset();
			_footer.pos = _footer.offset();
			var _top = _sidebar.pos.top + 22; // + paddingTop
			var _bottom = _footer.pos.top - _sidebar.height() - 406 - 223; // - paddingBottom - paddingFooter
			$(window).scroll(function(){
				if ($(window).scrollTop() > _top) _navMargin = $(window).scrollTop() - _top;
				else _navMargin = 0;
				if (_navMargin > _bottom) _navMargin = _bottom;
				_nav.animate({paddingTop:_navMargin},{queue:false, duration:400});
			});
		}
	}
	
	// navigation slide ********************************************************
	slideComment();
	function slideComment(){
		var _commentHolder = $('div.form-holder');
		if (_commentHolder.find('div.comment-box').length > 4) {
			var _comment = $('div.form-column', _commentHolder);
			var _footer = $('#footer');
			var _navMargin = 0;
			var _navTempMargin =0;
			var _maxTopPadding = _commentHolder.innerHeight(true)-_comment.innerHeight(true)-50;
			if (_commentHolder) {
				_commentHolder.pos = _commentHolder.offset();
				_footer.pos = _footer.offset();
				var _top = _commentHolder.pos.top - 30;
				$(window).scroll(function(){
					if ($(window).scrollTop() > _top) {
						_navMargin = $(window).scrollTop() - _top;
					}
					else _navTempMargin;
					if (_maxTopPadding<_navMargin) _navMargin = _maxTopPadding;
					_comment.animate({paddingTop:_navMargin},{queue:false, duration:400});
				});
			};
		};
	};
	
	// tab slider **************************************************************
	if (typeof $().slideNews == 'function') {
		$('div.tab-slider').slideNews({
			btNext:false,
			btPrev:false,
			tabsNews:'ul.tabset a',
			holderList: 'div.tab-rotator',
			scrollElParent: 'div.mover',
			scrollEl: 'div.mover > div.tab',
			autoSlide: false
		});
	}
	
	// footer ******************************************************************
	var _footerBar = $('div.small-footer');
	_footerBar.each(function(i, f){
		var _close = $('a.close', this);
		var _open = $('a.open', this);
		_close.click(function(){
			$(f).addClass('close');
			return false;
		});
		_open.click(function(){
			$(f).removeClass('close');
			return false;
		});
	});
	
	// horizontal scroll *******************************************************
	var _horizontalGallery = $('div.big-gallery');
	hg(_verticalGallery);
	function hg(verticalGallery) {
		_horizontalGallery.each(function(i, gal){
			var _prev = $('a.previous', gal);
			var _next = $('a.next', gal);
			var _holder = $('div.gallery > div', gal);
			var _mover = $('>ul', _holder);
			var _li = $('>li', _mover);
			var _swicher = $('div.swicher', gal);
			var _current = 0;
			var _step = _li.innerWidth(true);
			var _length = _li.length - 1;
			var _margin = 0;
			var _autoSlide = 4000;
			var _t = false;
			var _currentA;
			var _hover= false;

			_swicher._html = '<ul>';
			for (var j=0; j<Math.floor(_length/3)+1; j++) {
				_swicher._html += '<li><a href="#">'+i+'</a></li>';
			};
			_swicher._html += '</ul>';
			_swicher.html(_swicher._html);
			var _swicher = $('div.swicher ul a', gal);
			_prev.css('visibility','hidden');
			_swicher.eq(0).parent().addClass('active');
			if (_swicher.length<=1) {
				_down.css('visibility','hidden');
				_up.css('visibility','hidden');
				_swicher.css('visibility','hidden');
			}

			var setActive = function(_c) {
				_next.css('visibility','visible');
				_next.addClass("enable");
				_prev.css('visibility','visible');
				_prev.addClass("enable");
				_swicher.parent().removeClass('active');
				var _index = Math.floor((_c+2)/3);
				_swicher.eq(_index).parent().addClass('active');
				if (_c >= _length-2) {
					_prev.addClass("enable");
					_next.removeClass("enable");
					_next.css('visibility','hidden');
				}
				if (_c <= 0) {
					_next.addClass("enable");
					_prev.removeClass("enable");
					_prev.css('visibility','hidden');
				}
			}

			_holder.hover(function(){
				clearInterval(_t);
				_hover=true;
			},function(){
				_hover=false;
				if (_autoSlide) autoSlide();
			});

			_holder.wheel(function(event,delta){
				clearInterval(_t);
				setActive(_current);
				if (_swicher.length<=1) {
					_up.removeClass("enable");
					_down.removeClass("enable");
				};
				if (delta<0) {
					if(_next.hasClass("enable")) _next.trigger("click");
				} else {
					if(_prev.hasClass("enable")) _prev.trigger("click");
				};
				return false;
			});

			_next.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current += 1;
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginLeft':-_margin},{duration:300, queue:false});
				return false;
			});
			_prev.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current -= 1;
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginLeft':-_margin},{duration:300, queue:false});
				return false;
			});
			_swicher.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current = _swicher.index($(this));
				_current *= 3;
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginLeft':-_margin},{duration:900, queue:false});
				return false;
			});
			if (_autoSlide) {
				var _switchItem = $("li", _swicher.parents("ul"));
				autoSlide();
			};
			function autoSlide(){
				if (!_hover) {
					_t = setInterval(function(){
						_currentA = _switchItem.index(_switchItem.filter(".active"))+1;
						if(_currentA==_swicher.length) _currentA=0;
						_swicher.eq(_currentA).trigger('click');
					},_autoSlide);
				}
			}
		});
	}
	
	// vertical scroll *********************************************************
	var _verticalGallery = $('div.verticalGallery');
	vg(_verticalGallery);
	function vg(verticalGallery) {
		verticalGallery.each(function(i, gal){
			var _up = $('a.previous', gal);
			var _down = $('a.next', gal);
			var _holder = $('div.gallery', gal);
			var _mover = $('>ul', _holder);
			var _li = $('>li', _mover);
			var _swicher = $('div.swicher div', gal);
			var _current = 0;
			var _step = _holder.innerHeight(true);
			var _length = _li.length - 1;
			var _margin = 0;
			var _autoSlide = 4000;
			var _t = false;
			var _currentA;
			var _hover= false;
			
			_swicher._html = '<ul>';
			_li.each(function(i){
				_swicher._html += '<li><a href="#">'+i+'</a></li>';
			});
			_swicher._html += '</ul>';
			_swicher.html(_swicher._html);
			var _swicher = $('div.swicher ul a', gal);
			_up.css('visibility','hidden');
			_swicher.eq(0).parent().addClass('active');
			if (_swicher.length<=1) {
				_down.css('visibility','hidden');
				_up.css('visibility','hidden');
				_swicher.css('visibility','hidden');
				_up.removeClass("enable");
				_down.removeClass("enable");
			}

			var setActive = function(_c) {
				_down.css('visibility','visible');
				_down.addClass("enable");
				_up.css('visibility','visible');
				_up.addClass("enable");
				_swicher.parent().removeClass('active');
				_swicher.eq(_c).parent().addClass('active');
				if (_c >= _length) {
					_up.addClass("enable");
					_down.removeClass("enable");
					_down.css('visibility','hidden');
				}
				if (_c <= 0) {
					_down.addClass("enable");
					_up.removeClass("enable");
					_up.css('visibility','hidden');
				}
			}
			$(".main-menu").hover(function(){
				clearInterval(_t);
				_hover=true;
			},function(){
				if (_autoSlide) autoSlide();
				_hover=false;
			})
			_holder.hover(function(){
				clearInterval(_t);
				_hover=true;
			},function(){
				_hover=false;
				if (_autoSlide) autoSlide();
			});

			_holder.wheel(function(event,delta){
				clearInterval(_t);
				setActive(_current);
				if (_swicher.length<=1) {
					_up.removeClass("enable");
					_down.removeClass("enable");
				};
				if (delta<0) {
					if(_down.hasClass("enable")) _down.trigger("click");
				} else {
					if(_up.hasClass("enable")) _up.trigger("click");
				};
				return false;
			});
			
			_down.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current += 1;
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginTop':-_margin},{duration:300, queue:false});
				return false;
			});
			_up.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current -= 1;
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginTop':-_margin},{duration:300, queue:false});
				return false;
			});
			_swicher.click(function(){
				if (_t) {
					clearInterval(_t);
					if (_autoSlide && !_hover) autoSlide();
				};
				_current = _swicher.index($(this));
				setActive(_current);
				_margin = _current*_step;
				_mover.animate({'marginTop':-_margin},{duration:300, queue:false});
				return false;
			});
			if (_autoSlide) {
				var _switchItem = $("li", _swicher.parents("ul"));
				autoSlide();
			};
			function autoSlide(){
				if (!_hover) {
					_t = setInterval(function(){
						_currentA = _switchItem.index(_switchItem.filter(".active"))+1;
						if(_currentA==_swicher.length) _currentA=0;
						_swicher.eq(_currentA).trigger('click');
					},_autoSlide);
				}
			}
		});
	}
	// switch image on hover  *********************************************************
	/*
	* in HTML <a href="#" rel="images/game1/pic" class="3">
	* rel path to the group of pictire "images/game1/"  and their common name "pic"
	* class count of pictures what will be change in this "window" ( default == 6 )
	*/
	
	hoverSlideImage();
	function hoverSlideImage(){
	//default options
		var _holder = $(".hoverSlideImage"); //holder class name 
		var _duration = 700;  // duration to change  items 1 sec = 1000 
		var _defNum = 6; // default number of pictures wich would be changed
		var _curIndex = 0; 

		_holder.each(function(i, _this){
			var _src; var _item; var _thumb; var _curNum=1; var _num=0; var preloadedimage = new Array(); var _t;
			$(_this).mouseenter(function(){
				_this._hover=true;
				preloadedimage = new Image();
				if ($(_this).children("a").attr("class") && $(_this).children("a").attr("class")!="") _num=parseInt($(_this).children("a").attr("class"));
				if ($(_this).children("a").attr("rel") && $(_this).children("a").attr("rel")!="") _src=$(_this).children("a").attr("rel");
				else _num=_defNum;
				_item = $("img", _this);
				_thumb = _item.attr("src");
				if(_t) clearTimeout(_t);
				switchImage();
			}).mouseleave(function(){
				if(_t) clearTimeout(_t);
				_item.attr("src", _thumb);
				_this._hover = false;
			});
			function switchImage(){
				if (_this._hover) {
					if (_item.attr("src").indexOf(".gif")!=-1) {
						preloadedimage.onload = function(){
							_item.attr("src",_src+_curNum+".gif");
							if (_curNum!=_num) _curNum++;
							else _curNum=1;
							_t = setTimeout(function(){switchImage();},_duration);
							preloadedimage.onload = null;
							if (!_this._hover) _item.attr("src",_thumb);
						};
						preloadedimage.src = _src+_curNum+".gif";
						_item.attr("src",_src+_curNum+".gif");
						
						
					} else if (_item.attr("src").indexOf(".jpg")!=-1) {
						preloadedimage.onload = function(){
							_item.attr("src",_src+_curNum+".jpg");
							if (_curNum!=_num) _curNum++;
							else _curNum=1;
							_t = setTimeout(function(){switchImage();},_duration);
							preloadedimage.onload = null;
							if (!_this._hover) _item.attr("src",_thumb);
						};
						preloadedimage.src = _src+_curNum+".jpg";
						_item.attr("src",_src+_curNum+".jpg");
					};
				};
			}
		});
	}
});
