jQuery.fn.simpleLightbox = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		lightboxContentBlock: '.nonelight',
		faderOpacity: 0.65,
		faderBackground: '#000000',
		closeLink:'a.btn-close, .close',
		href:true,
		onShow: null,
		onClick: null
	},_options);

	return this.each(function(i, _this){
		var _this = jQuery(_this);
		var _d = $.browser.msie ? 0 : 300;
		var _center = true;
		var _posTimer = null , _posTimer2 = null;
		if (!_options.href)
			_this.lightboxContentBlock = _options.lightboxContentBlock;
		else _this.lightboxContentBlock = _this.attr('href');
		if (_this.lightboxContentBlock != '' && _this.lightboxContentBlock.length > 1) {
			_this.faderOpacity = _options.faderOpacity;
			_this.faderBackground = _options.faderBackground;
			_this.closeLink = _options.closeLink;
			var _fader;
			var _lightbox = $(_this.lightboxContentBlock);
			if (!jQuery('div.lightbox-fader').length)
				_fader = $('body').append('<div class="lightbox-fader"></div>');
			
			_fader = jQuery('div.lightbox-fader');
			_lightbox.css('zIndex',999);
			_fader.css({
				opacity:_this.faderOpacity,
				backgroundColor:_this.faderBackground,
				display:'none',
				position:'absolute',
				top:0,
				left:0,
				zIndex:998,
				textIndent: -9999
			}).text('$nbsp');
			if(typeof(document.body.style.maxHeight) == 'undefined'){
				var _frame = $('<iframe />');
				_fader.html(_frame);
				_frame.css({
					opacity: 0.5,
					clear: 'both',
					position: 'absolute',
					left: 0,
					top: 0,
					width: "100%",
					height: "100%",
					zIndex: 0
				});
				var _newdiv = $('<div />');
				_newdiv.css({
					background: '#f00',
					opacity:0,
					clear: 'both',
					position: 'absolute',
					left: 0,
					top: 0,
					width: "100%",
					height: "100%",
					zIndex: '90'
				});
				_fader.append(_newdiv);
			}
			_lightbox.shownFlag = false;

			_this.click(function(){
				if (jQuery.isFunction(_options.onClick)) {
					_options.onClick.apply(_this);
				}
				if (_fader.is(":visible")) {
					$(".lightbox").each(function(){
						$(this).css("display","none");
					});
					_lightbox.shownFlag = true;
					_lightbox.fadeIn(0);
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				} else {
				_fader.fadeIn(10, function(){
					_lightbox.shownFlag = true;
					_fader.shownFlag = true; 
					_lightbox.fadeIn(20, function(){
						if (jQuery.isFunction(_options.onShow)) {
							_options.onShow.apply(_lightbox);
						}
					});
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				});
				}
				return false;
			});
			_lightbox.bind('lbclose',function(){
				_lightbox.fadeOut(0, function(){
					_fader.fadeOut(0);
					$(this).css('top','');
					_center = true;
				});
			})
			jQuery(_this.closeLink, _lightbox).click(function(){
				_lightbox.trigger('lbclose');
				return false;
			});
			_fader.click(function(){
				_lightbox.trigger('lbclose');
				return false;
			});

			jQuery.fn.simpleLightbox.positionLightbox = function (_lbox) {
				if(!_lbox.shownFlag) return false;
				if(!_center) return false;
				var _height = 0;
				var _width = 0;
				var _minWidth = $('body > div:eq(0)').outerWidth();
				_minWidth = 1000;
				if (window.innerHeight) {
					_height = window.innerHeight;
					_width = window.innerWidth;
				} else {
					_height = document.documentElement.clientHeight;
					_width = document.documentElement.clientWidth;
				}
				var _thisHeight = _lbox.outerHeight();
				var _page = $('body > div:eq(0)');
				if (_lbox.length) {
					if (_height > _page.outerHeight(true)) _fader.css('height',_height); else _fader.css('height',_page.outerHeight(true));
					if (_width < _minWidth) {_fader.css('width',_minWidth);} else {_fader.css('width','100%');}
					if (_height > _thisHeight){
						_lbox.css({position:'absolute'});
						var _top = document.documentElement.scrollTop + document.body.scrollTop;
						if(_posTimer) clearTimeout(_posTimer);
						_posTimer = setTimeout(function(){
							_lbox.animate({top: (_top + (_height - _thisHeight) / 2)}, 200);
						},300);
					}
					else{
						var _top = $(window).scrollTop();
						_center = false;
						_lbox.css({
							position:'absolute'
						});
						if(_posTimer) clearTimeout(_posTimer);
						_posTimer = setTimeout(function(){
							_lbox.animate({top: (_top + (_height - _thisHeight) / 2)}, 200);
						},300);
					}if(_posTimer2) clearTimeout(_posTimer2);
					_posTimer2 = setTimeout(function(){
						if (_width > _lbox.outerWidth()) _lbox.css({left:(_width - _lbox.outerWidth()) / 2 + "px"});
						else _lbox.css({position:'absolute',left: 0});
					},300);
				}
			}
			
			jQuery(window).resize(function(){
				jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});
			jQuery(window).scroll(function(){
				jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});
			
			jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				$(document).keydown(function (e) {
				if (!e) evt = window.event;
				if (e.keyCode == 27) {
					_lightbox.trigger('lbclose');
				}
			});
		}
	});
}

jQuery.fn.scrollTo = function(_options){
	// defaults options
	var _options = jQuery.extend({
		top: false,
		duration: 900
	},_options);

	return this.each(function(i, _this){
		var _this = $(this);
		var _scrollToTop = 0;

		_this.click(function(){
			if(!_options.top){
				if(_this.attr('href').indexOf('#')!=-1 && $(_this.attr('href')).length){
					_scrollToTop = $(_this.attr('href')).offset().top;
				}
			}else _scrollToTop = _options.top;
			$('body').animate({scrollTop: _scrollToTop}, _options.duration);
			$('html').animate({scrollTop: _scrollToTop}, _options.duration);
			return false;
		});
	});
};

/*
 * jQuery galleryScroll v1.5.2
 */

/*
	************* OPTIONS ************************************** default ****************
	btPrev         - link for previos [selector]    	btPrev: 'a.link-prev'
	btNext         - link for next [selector]		btNext: 'a.link-next'
	holderList     - image list holder [Tag name]		holderList: 'div'
	scrollElParent - list [Tag name]			scrollElParent: 'ul'
	scrollEl       - list element [Tag name]		scrollEl: 'li'
	slideNum       - view slide numbers [boolean]		slideNum: false
	duration       - duration slide [1000 - 1sec]		duration : 1000
	step           - slide step [int]			step: false
	circleSlide    - slide circle [boolean]			circleSlide: true
	disableClass   - class for disable link	[string] 	disableClass: 'disable'
	funcOnclick    - callback function			funcOnclick: null
	innerMargin    - inner margin, use width step [px]      innerMargin:0
	autoSlide      - auto slide [1000 - 1sec]               autoSlide:false
	*************************************************************************************
*/
jQuery.fn.galleryScroll = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		btPrev: 'a.link-prev',
		btNext: 'a.link-next',
		holderList: 'div',
		scrollElParent: 'ul',
		scrollEl: 'li',
		slideNum: false,
		duration : 1000,
		step: false,
		circleSlide: true,
		disableClass: 'disable',
		funcOnclick: null,
		autoSlide:false,
		innerMargin:0,
		stepWidth:false
	},_options);

	return this.each(function(){
		var _this = jQuery(this);

		var _holderBlock = jQuery(_options.holderList,_this);
		var _gWidth = _holderBlock.width();
		var _animatedBlock = jQuery(_options.scrollElParent,_holderBlock);
		var _liWidth = jQuery(_options.scrollEl,_animatedBlock).outerWidth(true);
		var _liSum = jQuery(_options.scrollEl,_animatedBlock).length * _liWidth;
		var _margin = -_options.innerMargin;
		var f = 0;
		var _step = 0;
		var _autoSlide = _options.autoSlide;
		var _timerSlide = null;
		if (!_options.step) _step = _gWidth; else _step = _options.step*_liWidth;
		if (_options.stepWidth) _step = _options.stepWidth;
		
		if (!_options.circleSlide) {
			if (_options.innerMargin == _margin)
				jQuery(_options.btPrev,_this).addClass('prev-'+_options.disableClass);
		}
		if (_options.slideNum && !_options.step) {
			var _lastSection = 0;
			var _sectionWidth = 0;
			while(_sectionWidth < _liSum)
			{
				_sectionWidth = _sectionWidth + _gWidth;
				if(_sectionWidth > _liSum) {
				       _lastSection = _sectionWidth - _liSum;
				}
			}
		}
		if (_autoSlide) {
				_timerSlide = setTimeout(function(){
					autoSlide(_autoSlide);
				}, _autoSlide);
			_animatedBlock.hover(function(){
				clearTimeout(_timerSlide);
			}, function(){
				_timerSlide = setTimeout(function(){
					autoSlide(_autoSlide)
				}, _autoSlide);
			});
		}
	
		// click button 'Next'
		jQuery(_options.btNext,_this).bind('click',function(){
			jQuery(_options.btPrev,_this).removeClass('prev-'+_options.disableClass);
			if (!_options.circleSlide) {
				if (_margin + _step  > _liSum - _gWidth - _options.innerMargin) {
					if (_margin != _liSum - _gWidth - _options.innerMargin) {
						_margin = _liSum - _gWidth  + _options.innerMargin;
						jQuery(_options.btNext,_this).addClass('next-'+_options.disableClass);
						_f2 = 0;
					} 
				} else {
					_margin = _margin + _step;
					if (_margin == _liSum - _gWidth - _options.innerMargin) {
						jQuery(_options.btNext,_this).addClass('next-'+_options.disableClass);_f2 = 0;
					} 					
				}
			} else {
				if (_margin + _step  > _liSum - _gWidth + _options.innerMargin) {
					if (_margin != _liSum - _gWidth + _options.innerMargin) {
						_margin = _liSum - _gWidth  + _options.innerMargin;
					} else {
						_f2 = 1;
						_margin = -_options.innerMargin;
					}
				} else {
					_margin = _margin + _step;
					_f2 = 0;
				}
			} 
			
			_animatedBlock.animate({marginLeft: -_margin+"px"}, {queue:false,duration: _options.duration });
			
			if (_timerSlide) {
				clearTimeout(_timerSlide);
				_timerSlide = setTimeout(function(){
					autoSlide(_options.autoSlide)
				}, _options.autoSlide);
			}
			
			if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin,jQuery(_options.slideNum, _this),_gWidth,_lastSection);		
			if (jQuery.isFunction(_options.funcOnclick)) {
				_options.funcOnclick.apply(_this);
			}
			return false;
		});
		// click button 'Prev'
		var _f2 = 1;
		jQuery(_options.btPrev, _this).bind('click',function(){
			jQuery(_options.btNext,_this).removeClass('next-'+_options.disableClass);
			if (_margin - _step >= -_step - _options.innerMargin && _margin - _step <= -_options.innerMargin) {
				if (_f2 != 1) {
					_margin = -_options.innerMargin;
					_f2 = 1;
				} else {
					if (_options.circleSlide) {
						_margin = _liSum - _gWidth  + _options.innerMargin;
						f=1;_f2=0;
					} else {
						_margin = -_options.innerMargin
					}
				}
			} else if (_margin - _step < -_step + _options.innerMargin) {
				_margin = _margin - _step;
				f=0;
			}
			else {_margin = _margin - _step;f=0;};
			
			if (!_options.circleSlide && _margin == _options.innerMargin) {
				jQuery(this).addClass('prev-'+_options.disableClass);
				_f2=0;
			}
			
			if (!_options.circleSlide && _margin == -_options.innerMargin) jQuery(this).addClass('prev-'+_options.disableClass);
			_animatedBlock.animate({marginLeft: -_margin + "px"}, {queue:false, duration: _options.duration});
			
			if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin,jQuery(_options.slideNum, _this),_gWidth,_lastSection);
			
			if (_timerSlide) {
				clearTimeout(_timerSlide);
				_timerSlide = setTimeout(function(){
					autoSlide(_options.autoSlide)
				}, _options.autoSlide);
			}
			
			if (jQuery.isFunction(_options.funcOnclick)) {
				_options.funcOnclick.apply(_this);
			}
			return false;
		});
		
		if (_liSum <= _gWidth) {
			jQuery(_options.btPrev,_this).addClass('prev-'+_options.disableClass).unbind('click');
			jQuery(_options.btNext,_this).addClass('next-'+_options.disableClass).unbind('click');
		}
		// auto slide
		function autoSlide(autoSlideDuration){
			//if (_options.circleSlide) {
				jQuery(_options.btNext,_this).trigger('click');
			//}
		};
		// Number list
		jQuery.fn.galleryScroll.numListCreate = function(_elNumList, _liSumWidth, _width, _section){
			var _numListElC = '';
			var _num = 1;
			var _difference = _liSumWidth + _section;
			while(_difference > 0)
			{
				_numListElC += '<li><a href="">'+_num+'</a></li>';
				_num++;
				_difference = _difference - _width;
			}
			jQuery(_elNumList).html('<ul>'+_numListElC+'</ul>');
		};
		jQuery.fn.galleryScroll.numListActive = function(_marginEl, _slideNum, _width, _section){
			if (_slideNum) {
				jQuery('a',_slideNum).removeClass('active');
				var _activeRange = _width - _section-1;
				var _n = 0;
				if (_marginEl != 0) {
					while (_marginEl > _activeRange) {
						_activeRange = (_n * _width) -_section-1 + _options.innerMargin;
						_n++;
					}
				}
				var _a  = (_activeRange+_section+1 + _options.innerMargin)/_width - 1;
				jQuery('a',_slideNum).eq(_a).addClass('active');
			}
		};
		if (_options.slideNum && !_options.step) {
			jQuery.fn.galleryScroll.numListCreate(jQuery(_options.slideNum, _this), _liSum, _gWidth,_lastSection);
			jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this),_gWidth,_lastSection);
			numClick();
		};
		function numClick() {
			jQuery(_options.slideNum, _this).find('a').click(function(){
				jQuery(_options.btPrev,_this).removeClass('prev-'+_options.disableClass);
				jQuery(_options.btNext,_this).removeClass('next-'+_options.disableClass);
				
				var _indexNum = jQuery(_options.slideNum, _this).find('a').index(jQuery(this));
				_margin = (_step*_indexNum) - _options.innerMargin;
				f=0; _f2=0;
				if (_indexNum == 0) _f2=1;
				if (_margin + _step > _liSum) {
					_margin = _margin - (_margin - _liSum) - _step + _options.innerMargin;
					if (!_options.circleSlide) jQuery(_options.btNext, _this).addClass('next-'+_options.disableClass);
				}
				_animatedBlock.animate({marginLeft: -_margin + "px"}, {queue:false, duration: _options.duration});
				
				if (!_options.circleSlide && _margin==0) jQuery(_options.btPrev,_this).addClass('prev-'+_options.disableClass);
				jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this),_gWidth,_lastSection);
				
				if (_timerSlide) {
					clearTimeout(_timerSlide);
					_timerSlide = setTimeout(function(){
						autoSlide(_options.autoSlide)
					}, _options.autoSlide);
				}
				return false;
			});
		};
		jQuery(window).resize(function(){
			_gWidth = _holderBlock.width();
			_liWidth = jQuery(_options.scrollEl,_animatedBlock).outerWidth(true);
			_liSum = jQuery(_options.scrollEl,_animatedBlock).length * _liWidth;
			if (!_options.step) _step = _gWidth; else _step = _options.step*_liWidth;
			if (_options.slideNum && !_options.step) {
				var _lastSection = 0;
				var _sectionWidth = 0;
				while(_sectionWidth < _liSum)
				{
					_sectionWidth = _sectionWidth + _gWidth;
					if(_sectionWidth > _liSum) {
					       _lastSection = _sectionWidth - _liSum;
					}
				};
				jQuery.fn.galleryScroll.numListCreate(jQuery(_options.slideNum, _this), _liSum, _gWidth,_lastSection);
				jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this),_gWidth,_lastSection);
				numClick();
			};
			//if (_margin == _options.innerMargin) jQuery(this).addClass(_options.disableClass);
			if (_liSum - _gWidth  < _margin - _options.innerMargin) {
				if (!_options.circleSlide) jQuery(_options.btNext, _this).addClass('next-'+_options.disableClass);
				_animatedBlock.animate({marginLeft: -(_liSum - _gWidth + _options.innerMargin)}, {queue:false, duration: _options.duration});
			};
		});
	});
}
/*
* jQuery mouseGallerySlide v1.1.0 
*/
jQuery.fn.mouseGallerySlide = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		scrollElParent: 'ul',
		scrollEl: 'li',
		autoSlide: false,
		animateSpeed: 7000,
		speed: 1,
		onCreate: null
	},_options);

	return this.each(function(){
		var _this = $(this);

		var _gWidth = _this.outerWidth();
		var _scrollElParent = jQuery(_options.scrollElParent,_this);
		var _scrollEl = jQuery(_options.scrollEl,_this);
		var _maxMargin = _scrollEl.length * _scrollEl.outerWidth(true);
		var _autoSlide = _options.autoSlide;
		var _speed = _options.speed;

		var _sec = _maxMargin*_options.animateSpeed/_gWidth;

		var _width = _this.outerWidth();
		var _height = _this.outerHeight();

		var _chapter = _gWidth/9, _direction = 1;
		var _timerOut = false, _hover = false;;

		_this.bind('mousewheel',function(event, delta){
			var _marginScroll = parseInt(_scrollElParent.css('marginLeft'),10);
			if (delta>0) {
				_marginScroll -= 20;
				if ( -_marginScroll > 2*_maxMargin) _marginScroll = -_maxMargin - 20;
			}else{
				_marginScroll += 20;
				if ( -_marginScroll < _maxMargin) _marginScroll = -2*_maxMargin +20;
			}
			_scrollElParent.stop().css('marginLeft', _marginScroll);
			return false;
		}).hover(function(){
			_hover= true;
		},function(){
			_hover= false;
		}).mouseleave(function(){
			_scrollElParent.stop();
			setTimeout(function(){
				if(_options.autoSlide) autoSlide();
			},700);
		}).mouseenter(function(e){
			mouseOverMove(Math.floor((e.pageX - $(this).offset().left)/_chapter));
		}).mousemove(function(e){
			if(e.pageX%10==0) mouseOverMove(Math.floor((e.pageX - $(this).offset().left)/_chapter));
		});

		_scrollElParent.prepend(_scrollEl.clone(true));
		_scrollElParent.append(_scrollEl.clone(true));
		_scrollElParent.css('marginLeft', -_maxMargin);
		if(jQuery.isFunction(_options.onCreate)){
			_options.onCreate.apply(_this);
		};
		function mouseOverMove(i) {
			switch(i){
				case 0:		_speed = 3;break
				case 1:		_speed = 2;break
				case 2:		_speed = 1;break
				case 3:		_speed = 0;break
				case 4:		_speed = 0;break
				case 5:		_speed = 0;break
				case 6:		_speed = 1;break
				case 7:		_speed = 2;break
				case 8:		_speed = 3;break
				default:	_speed = 0;break
			}
			if (i < 4) _direction = 1;
			else if (i >=5) _direction = 3;
			else _direction = 2;
			_scrollElParent.stop();
			animateEl();
		}

		function animateEl(){
			if (_timerOut) clearTimeout(_timerOut);
			if(_direction == 1){
				_scrollElParent.animate({marginLeft:0},{
					easing: 'linear',
					queue: false,
					duration: _sec/_speed,
					complete:function(){
						_scrollElParent.css({'marginLeft':-(2*_maxMargin)});
						_timerOut = setTimeout(function(){
							if(_hover) animateEl();
							else if(_options.autoSlide) animateEl();
						},25);
					}
				});
			};
			if(_direction == 3){
				var k = (2*_maxMargin + _curMargin)/_maxMargin;
				_scrollElParent.animate({marginLeft:-2*_maxMargin},{
					easing: 'linear',
					duration: _sec/_speed,
					queue: false,
					complete:function(){
						_scrollElParent.css({'marginLeft':-_maxMargin});
						_timerOut = setTimeout(function(){
							if(_hover) animateEl();
							else if(_options.autoSlide) animateEl();
						},25);
					}
				});
			};
		}

		function autoSlide(){
			_curMargin = parseInt(_scrollElParent.css('marginLeft'),10);
			if(_autoSlide){
				var k = (_maxMargin + _curMargin)/_maxMargin;
				if (_autoSlide && !_hover ) _speed = _options.speed;
				_scrollElParent.stop().animate({marginLeft:-2*_maxMargin},{
					easing: 'linear',
					duration: _sec,
					complete:function(){
						_scrollElParent.css({'marginLeft':-_maxMargin});
						_timerOut = setTimeout(function(){
							if(_options.autoSlide) autoSlide();
						},25);
					}
				});
			};
		};
		autoSlide();
	});
};

jQuery.fn.vvGalleryScroll = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		btnPrev: 'a.link-prev',
		btnNext: 'a.link-next',
		holderList: 'div',
		scrollElParent: 'ul',
		scrollEl: 'li',
		thumbs: false,
		duration : 1000,
		step: false,
		pause: false,
		event: 'click',
		circleSlide: true,
		disableClass: 'disable',
		autoSlide:false,
		onBeforeChange: null,
		onChange: null
	},_options);

	return this.each(function(){
		var _this = this;

		var _holderBlock = jQuery(_this);
		var _moover = jQuery(_options.scrollElParent,_holderBlock);
		var _liWidth = jQuery(_options.scrollEl,_moover).outerWidth(true);
		var _gWidth = _holderBlock.width();
		var _liSum = jQuery(_options.scrollEl,_moover).length * _liWidth;
		var _thumbs = _options.thumbs ? (jQuery(_options.thumbs,_this).length ? jQuery(_options.thumbs,_this): false) : false;
		var _step = 0, _t = null, _mM=0;
		var _pause =  _options.pause ? jQuery(_options.pause,_this) : false;
		var _play = _options.play ? jQuery(_options.play,_this) : false;
		var _a = 0;
		if(_thumbs) _thumbs.removeClass('active').eq(_a).addClass('active');
//step
		if(typeof(_options.step)=='number') _step = _options.step;
		else if (!_options.step) _step = _gWidth; else _step = _options.step*_liWidth;
		if(!_options.circleSlide){
			if(_mM == 0) jQuery(_options.btnPrev,_this).addClass(_options.disableClass);
			else if(_mM ==_liSum-_gWidth) jQuery(_options.btnNext,_this).addClass(_options.disableClass);
		};
		_holderBlock.css({height: jQuery(_options.scrollEl,_moover).eq(_a).innerHeight(true)});
//prev btn
		if(jQuery(_options.btnPrev, _this)){
			jQuery(_options.btnPrev, _this).bind(_options.event, function(){
				if(!jQuery(this).hasClass(_options.disableClass)){
					jQuery(_options.btnNext,_this).removeClass(_options.disableClass);
					if(_mM - _step<0) (_mM!=0) ? _mM=0 : (_options.circleSlide ? _mM = _liSum - _gWidth : jQuery(_options.btnPrev,_this).addClass(_options.disableClass));
					else _mM -= _step;
					if(_a!= 0) _a--;
					else _a =jQuery(_options.scrollEl,_moover).length-1;
					_this.rotate(_mM);
				}
				return false;
			});
		};
//next btn
		if(jQuery(_options.btnNext, _this)){
			jQuery(_options.btnNext, _this).bind(_options.event, function(){
				if(!jQuery(this).hasClass(_options.disableClass)){
					jQuery(_options.btnPrev,_this).removeClass(_options.disableClass);
					if(_mM + _step >_liSum - _gWidth) (_mM!= _liSum - _gWidth) ? (_mM = _liSum - _gWidth) : (_options.circleSlide ? _mM = 0 : jQuery(_options.btnNext,_this).addClass(_options.disableClass));
					else _mM += _step;
					if(_a!= jQuery(_options.scrollEl,_moover).length-1) _a++;
					else _a =0;
					_this.rotate(_mM);
				}
				return false;
			});
		};
//animate
		_this.rotate = function(_mM){
			if(_t) clearTimeout(_t);
			if (jQuery.isFunction(_options.onBeforeChange)) {
				_options.onBeforeChange.apply(_this);
			}
			if(!_options.circleSlide){
				if(_mM == 0) jQuery(_options.btnPrev,_this).addClass(_options.disableClass);
				else if(_mM ==_liSum-_gWidth) jQuery(_options.btnNext,_this).addClass(_options.disableClass);
			};
			if(_thumbs) _thumbs.removeClass('active').eq(_a).addClass('active');
			_holderBlock.animate({height: jQuery(_options.scrollEl,_moover).eq(_a).innerHeight(true)},{duration: _options.duration, queue: false});
			_moover.animate({marginLeft: -_mM},{duration: _options.duration, queue: false, complete: function(){
				if (jQuery.isFunction(_options.onChange)) {
					_options.onChange.apply(_this);
				}
				_this.autoslide();
			}});
		};
//autoslide
		_this.autoslide = function(){
			if(_options.autoSlide && _liSum >= _gWidth){
				if(_t) clearTimeout(_t);
				_t = setTimeout(function(){
					jQuery(_options.btnPrev,_this).removeClass(_options.disableClass);
					if(_mM + _step >_liSum - _gWidth) (_mM!= _liSum - _gWidth) ? (_mM = _liSum - _gWidth) : (_options.circleSlide ? _mM = 0 : jQuery(_options.btnNext,_this).addClass(_options.disableClass));
					else _mM += _step;
					if(_a!= jQuery(_options.scrollEl,_moover).length-1) _a++;
					else _a =0;
					_this.rotate(_mM);
				}, _options.autoSlide);
			};
		};
		_this.autoslide();
//disable btns next/prev if need
		if (_liSum <= _gWidth) {
			jQuery(_options.btnPrev,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
			jQuery(_options.btnNext,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
		};
	});
};

function initValidation(){
	var _errorClass = 'incorrect';
	var _regEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var _regEmails = /^([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})+([, ]+[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})*$/;
	var _regPhone = /^[0-9\-\ \()]+$/;
	var _regNum = /^[0-9]+$/;
	var _regDay = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))$/;
	var _regMon = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1]{1}[0-2]{1}))$/;
	var _regYear = /^[19]{2}[0-9]{2}$/;
	
	$('form.calculator').each(function(){
		var _form = $(this);
		function checkFields() {
			
			var _flag = false;
			_form.find('.'+_errorClass).removeClass(_errorClass);

			// fields validation
			_form.find('input.required-email').each(function(){
				if(!_regEmail.test($(this).val())) addError($(this));
			});
			_form.find('input.required-day').each(function(){
				if(!_regDay.test($(this).val())) addError($(this));
			});
			_form.find('input.required-mon').each(function(){
				if(!_regMon.test($(this).val())) addError($(this));
			});
			_form.find('input.required-year').each(function(){
				if(!_regYear.test($(this).val())) addError($(this));
			});
			_form.find('textarea.required-many-emails').each(function(){
				if(!_regEmails.test($(this).val())) addError($(this));
			});
			_form.find('input.required-phone').each(function(){
				if(!_regPhone.test($(this).val())) addError($(this));
			});
			_form.find('input.required-num').each(function(){
				if(!_regNum.test($(this).val())) addError($(this));
			});
			_form.find('input.required, textarea.required').each(function(){
				if(!$(this).val().length || $(this).val() == $(this).attr('alt')) addError($(this));
			});
			_form.find('input.required-chek').each(function(){
				if (!$(this).is(':checked')) {
					$(this).parent('span').addClass('error-chk');
					_flag=true;
				}
			});
			_form.find('div.required-radio').each(function(){
				var _test = false;
				$(this).find('input[type=radio]').each(function(){
					if ($(this).is(':checked')) _test = true;
				});
				if (!_test) {
					_flag=true;
				}
			});

			// error class adding
			function addError(_obj) {
				_obj.parents('div:eq(0)').addClass(_errorClass);
				_flag=true;
			}
			return _flag;
		}

		// catch form submit event
		_form.submit(function(){
			if(checkFields()) {
				return false;
			}
		});
	});
}

$(function(){
	$('a.open-lb').simpleLightbox({
		faderOpacity: 0.5,
		closeLink:'.close-lb'
	});
	$('a.scrollTo').scrollTo();
	$('#carousel').galleryScroll({
		btPrev: 'a.link-prev',
		btNext: 'a.link-next',
		holderList: 'div.holder .wrap',
		scrollElParent: 'ul',
		scrollEl: 'li',
		slideNum: false,
		duration : 1000,
		circleSlide: true,
		autoSlide:false
	});
	jQuery('.popup-gal-holder').vvGalleryScroll({
		scrollElParent: '.popup-gal',
		scrollEl: '.gal-element',
		btnPrev: 'a.btn-prev',
		btnNext: 'a.btn-next',
		duration : 700,
		step: false,
		autoSlide:false
	});
	$('.logos-holder div').mouseGallerySlide({
		scrollElParent: 'ul',
		scrollEl: 'li',
		autoSlide: true,
		animateSpeed: 15000,
		speed: 1,
		onCreate: null
	});
	initValidation();
});

