function initFancy(){
	var _defOpt = {
		'overlayShow' 	: true,
		'overlayOpacity': 0.7,
		'overlayColor'	: '#000',
		'padding'		: 0,
		'autoScale'		: true,
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'titlePosition' : 'inside',
		'width'			: 640,
		'height'		: 360
	};

	jQuery('.open-fancy').each(function(){
		if(this.href.indexOf('vimeo')!=-1){
			jQuery(this).click(function(){
				_defOpt = jQuery.extend(_defOpt, {
					'titleShow'		: (this.title && this.title!='') ? true : false,
					'title'			: this.title,
					'href'			: this.href.replace(new RegExp("([0-9])","i"),'moogaloop.swf?clip_id=$1')+'&server=vimeo.com&show_title=1&show_byline=1&autoplay=1&wmode=transparent',
					'type'			: 'swf',
					'swf'			: {'allowfullscreen':'true'}
				});
				jQuery.fancybox(_defOpt);
				return false;
			});
		}else if(this.href.indexOf('youtube')!=-1){
			jQuery(this).click(function() {
				_defOpt = jQuery.extend(_defOpt, {
					'titleShow'		: (this.title && this.title!='') ? true : false,
					'title'			: this.title,
					'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/') + '&autoplay=1&fs=1&wmode=transparent',
					'type'			: 'swf',
					'swf'			: {'allowfullscreen':'true'}
				});
				jQuery.fancybox(_defOpt);
				return false;
			}); 
		}else if(jQuery(this).attr('href')!='#'){
			jQuery(this).fancybox(_defOpt);
		}else jQuery(this).click(function(){return false;})
	});
}

function openClose() {
	var _d = 500;
	var _a = null;
	jQuery('.slide-block').each(function(){
		var opener = jQuery('.title', this);
		var slider = jQuery('.block', this);
		opener.click(function(){
			if(jQuery(this).hasClass('opened')){
				slider.slideUp(_d,function(){
					opener.removeClass('opened');
					_a = null;
				});
			}else{
				slider.slideDown(_d, function(){
					opener.addClass('opened');
					_a = opener;
				});
			}
			return false;
		});
		jQuery(document).mousedown(function(e){
			var _f = false;
			jQuery(e.target).parents().each(function(){
				if(this == slider.get(0)) _f= true;
			});
			if(!_f){
				if(_a && _a.hasClass('opened')) opener.trigger('click');
			}
		})
	});
}


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,
		thumbsCreate: false,
		duration : 500,
		step: false,
		pause: false,
		event: 'click',
		easing: 'linear',
		circleSlide: true,
		disableClass: 'disable',
		autoSlide:false,
		onBeforeChange: null,
		onChange: null
	},_options);

	return this.each(function(){
		var _this = this;

		var _holderBlock = jQuery(_options.holderList,_this);
		var _moover = jQuery(_options.scrollElParent,_holderBlock).css('position','relative');
		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(_options.thumbsCreate){
			var _html = '<ul>';
			for(var i=0; i<jQuery(_options.scrollEl,_moover).length; i++) {
				_html+='<li><a href="#">'+(i+1)+'</a></li>';
			};
			_html += '</ul>';
			_thumbs.html(_html);
			_thumbs = _thumbs.find('a');
		}
		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);
		};
//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');
			_moover.animate({left: -_mM},{easing: _options.easing, 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;});
		};
//thumbs
		if(_thumbs){
			_thumbs.click(function(){
				var _ind = _thumbs.index(this);
				_a = _ind;
				_thumbs.removeClass('active').eq(_a).addClass('active');
				_mM = _step*_ind;
				_this.rotate(_mM);
				return false;
			});
		}
	//play|pause
		if(_pause && _pause.length){
			_pause.click(function(){
				_play.removeClass('active');
				jQuery(this).addClass('active');
				if(_t) clearTimeout(_t);
				return false;
			});
		};
		if(_play && _play.length){
			_play.click(function(){
				_pause.removeClass('active');
				jQuery(this).addClass('active');
				_this.autoslide();
				return false;
			});
		};
	});
};

jQuery(document).ready(function(){
	jQuery('div.carousel').vvGalleryScroll({
		holderList: 'div.holder',
		scrollElParent: '> ul',
		scrollEl: '> li',
		easing: 'easeInOutBack',
		btnPrev: 'a.link-prev',
		btnNext: 'a.link-next',
		duration : 1000,
		autoSlide:6000
	});
	openClose();
	jQuery('.category-list img, .category-box img').mouseenter(function(){
		jQuery(this).animate({opacity: 0.2},{durarion: 400,queue: false});
	}).mouseleave(function(){
		jQuery(this).animate({opacity: 1},{durarion: 500,queue: false,complete: function(){
			jQuery(this).css({opacity: 'auto'});
		}});
	});

	initFancy();
	
	jQuery('.aside .navbar li span:empty').closest('li').remove();
});
