$(document).ready(function(){
	initPopup ();				// popup functions
	initSlideShow();			// slideshow
	initTabs ();				// tabs
    
    if($('.scrollable').length)
        $('.scrollable').css('height', $('#content').height()-450-$('.video-list').height());
});
function initTabs () {
	$('.tabset').makeTabset({
		control : '#submenu',
		tab : '.slider',
		animate : false,
		animate_holder : '.tabs'
	});
}
function initSlideShow () {
	$('div.gallery').fadeGallery({
		slideElements:'div.gallery-holder li',
		pauseOnHover:true,
		autoRotation:true,
		switchTime:1500,
		duration:650,
		event:'click'
	});
}

function _request(url, id_list, id_list2, fn){
    if($(id_list2[0]).hasClass('cached')){
        if(fn) fn();
        return;
    }
    $.ajax({
        url: url,
        dataType: 'html',
        cache: false,
        error: function(){
        },
        success: function(data){
            var m = data.match(/<body[\s\S]*body>/m),
                mdta = m? m[0].replace('<body', '<div').replace('/body>', '/div>'): data,
                $data = $('<div>' + mdta + '</div>'),
                ids = id_list;
                
            for(var i=0,l=ids.length;i<l;i++){
                var el = $data.find(id_list2[i]);
                $(ids[i]).replaceWith(el);
            }
            
            if(fn) fn();
        }
    });
}
    
function initPopup () {
	$("a.popup1").click(function(){
        _request($(this).attr('rel'), ['div.popup1 .loader'], ['.loader'], function(){
            $('div.popup1 .popup-holder').css('top', $(window).scrollTop()+100);
            $('div.popup1').css("display", "none");
            $('div.popup1').css("left","0");
            $('div.popup1').fadeIn(300);
        });
		return false;
	});
    
	$("a.popup2").click(function(){
        _request($(this).attr('rel'), ['div.popup2 .loader'], ['.loader'], function(){
            $('div.popup2 .popup-holder').css('top',$(window).scrollTop()+100);
            $('div.popup2').css("display","none");
            $('div.popup2').css("left","0");
            $('div.popup2').fadeIn(300);
        });
		return false;
	});
    
	$("a.popup4").click(function(){
        _request($(this).attr('rel'), ['div.popup4 .loader'], ['.loader'], function(){
            $('div.popup4 .popup-holder').css('top',$(window).scrollTop()+100);
            $('div.popup4').css("display","none");
            $('div.popup4').css("left","0");
            $('div.popup4').fadeIn(300);
        });
		return false;
	});
    
	$("a.popup5").click(function(){
        $('div.popup5 .popup-holder').css('top',$(window).scrollTop()+100);
        $('div.popup5').css("display","none");
        $('div.popup5').css("left","0");
        $('div.popup5').fadeIn(300);
		return false;
	});
    
    $('form[rel^="load:"]').live('submit', function(e){
        var that = this, $this = $(this);
        $this.find('input[type="submit"]').attr('disabled', 'true');
        
        $this.ajaxSubmit(function(data){
            if(!data){
                $this.closest('.popup').find('.loader')
                     .html('<h1>Не удалось отправить запрос</h1>'+
                           '<p>Попробуйте отправить запрос чуть позднее.</p>');
                $this.find('input[type="submit"]').attr('disabled', '');
                return false;
            }
            
            if(yaCounter99262 && $this.closest('.popup2').length){
                yaCounter99262.reachGoal('ring');
            }
            
            if(yaCounter99262 && $this.closest('.popup1').length){
                yaCounter99262.reachGoal('letter');
            }
            
            var m = data.match(/<body[\s\S]*body>/m),
                mdta = m? m[0].replace('<body', '<div').replace('/body>', '/div>'): data,
                $data = $('<div>' + mdta + '</div>'),
                ids = $this.attr('rel').replace('load:', '').split(',');
            
            for(var i=0,l=ids.length;i<l;i++){
                $this.closest('.popup').find('.loader').replaceWith($data.find(ids[i]));
            }
        });
        
        return false;
    });
    
    var loading = false;
	$("a.extra_menu_item_1").click(function(){
        _request($(this).attr('href'), ['div.popup3 .loader'], ['.loader'], function(){
            initAutoScalingNav({
                menuId: "submenu",
                sideClasses: true
            });
            
          	$('.slider').makeGallery({
                gallery_frame : '.slider-holder',
                gallery_holder : 'ul',
                gallery_item : 'li',
                gallery_name : '.slider'
            });
            
            $('div.popup3 .popup-holder').css('top',$(window).scrollTop()+100);
            $('div.popup3').css("display","none");
            $('div.popup3').css("left","0");
            $('div.popup3').fadeIn(300);
            
            $('#submenu li a').click(function submenuClick(){
                if(loading) return false;
                loading = true;
                $('#submenu li.active').removeClass('active');
                $(this).closest('li').addClass('active');
                _request($(this).attr('href'), ['div.popup3 .tabs'], ['.tabs'], function(){
                    initAutoScalingNav({
                        menuId: "submenu",
                        sideClasses: true
                    });
                    
                    if(!$('.slider').hasClass('scaling-ready'))
                        $('.slider').makeGallery({
                            gallery_frame : '.slider-holder',
                            gallery_holder : 'ul',
                            gallery_item : 'li',
                            gallery_name : '.slider'
                        });
                    
                    $('div.popup3 .loader').fadeIn(300);
                    
                    loading = false;
                    $('#submenu li a').click(submenuClick);
                });
                return false;
            });
            
        });
		return false;
	});
    
	$('.popup .btn-close, .popup .bg').live('click', function(){
		$(this).parents('.popup').fadeOut(300);
		return false;
	});
	$('.popup-holder').each(function(){
		$(this).css({
			"left" : ($('body').width()-$(this).outerWidth())/2
		});
	});
	$('.popup').css('height',popupBg());
}
function popupBg () {
	var _h = $('#wrapper').height();
	if (_h < $(window).height()) {
		_h = $(window).height();
	}
	return _h
}
$(window).resize(function(){
	$('.popup').css('height',popupBg());
});
(function($) {
	$.fn.makeTabset = function(o) {
		o = $.extend( {
			tab : '.tab',
			control : '.tabset',
			animate : false,
			animate_holder : '.holder'
		}, o || {});
		$(this).each(
				function() {
					tabset_holder = $(this);
					tabset_holder.find(o.control + ' li').each(function(){
						$(this).find('a').attr('href','tab'+($(this).index()+1));
					});
					var index = 1;
					tabset_holder.find(o.tab).each(function(){
						$(this).addClass('tab'+index);
						index += 1;
					});
					tabset_holder.find(o.control + ' li a').bind('click',function(){
						if (!$(this).parent().is('.active')) {
							$('.slider-playing').removeClass('slider-playing');
							if (t) {
								clearTimeout(t);
							}
							if (o.animate == true) {
								tabset_holder.find(o.animate_holder).height(tabset_holder.find(o.animate_holder).height());
								tabset_holder.find(o.tab + '.' + tabset_holder.find(o.control + ' .active a').attr('href')).fadeOut(200);
								tabset_holder.find(o.control + ' .active').removeClass('active');
								$(this).parent().addClass('active');
								tabset_holder.find(o.tab + '.' + $(this).attr('href')).css('width', tabset_holder.find(o.animate_holder).width()).css('position', 'absolute').css('left', '-9999px').show();
								var heightTo = tabset_holder.find(o.tab + '.' + tabset_holder.find(o.control + ' .active a').attr('href')).height();
								tabset_holder.find(o.animate_holder).animate({
									height: heightTo
								}, 500, function(){
									tabset_holder.find(o.tab + '.' + tabset_holder.find(o.control + ' .active a').attr('href')).css('width','100%').css('position', 'static').css('left', '0').hide();
									tabset_holder.find(o.tab + '.' + tabset_holder.find(o.control + ' .active a').attr('href')).fadeIn(200);
									$(this).css('height','auto');
								});
							}
							else {
								tabset_holder.find(o.control + ' .active').removeClass('active');
								tabset_holder.find(o.tab).hide();
								$(this).parent().addClass('active');
								tabset_holder.find(o.tab + '.' + $(this).attr('href')).show();
							}
						}
						return false;
					});
				});
	};
})(jQuery);
(function($) {
	$.fn.makeGallery = function(o) {
		o = $.extend( {
			interval : 5000, /* интервал вращения 1000 = 1секунда */
			speed : 1500, /* скорость перемещения 1000 = 1секунда */
			gallery_name : '.gallery',
			gallery_frame : '.frame',
			gallery_holder : 'ul',
			gallery_item : 'li'
		}, o || {});
		var steps = 1;
		$(this).each(
				function() {
					main_holder = $(this);
					main_holder.find('.pagination .num').text('1/' + main_holder.find(o.gallery_frame + ' ' + o.gallery_item).size());
					main_holder.find(o.gallery_frame + ' ' + o.gallery_item).each(function(){
						$(this).attr('rel',$(this).index()+1);
					})
					var item_class = main_holder.find(o.gallery_item).attr('class');
					var step = ($(this).find(o.gallery_item).width()+parseInt($(this).find(o.gallery_item).css('margin-right'))+parseInt($(this).find(o.gallery_item).css('margin-left'))) * steps;
					main_holder.find(o.gallery_holder).css('width',main_holder.find(o.gallery_item).size()*($(this).find(o.gallery_item).width()+parseInt($(this).find(o.gallery_item).css('margin-right'))+parseInt($(this).find(o.gallery_item).css('margin-left'))));
					main_holder.find('.btn-prev').click(function(){
						t = setTimeout(oneStep, o.interval);
						$(this).parents(o.gallery_name).removeClass('slider-playing');
						$(this).parents(o.gallery_name).find(o.gallery_holder).css('margin-left',-step);
						$(this).parents(o.gallery_name).find(o.gallery_holder).prepend($(this).parents(o.gallery_name).find(o.gallery_holder).find(o.gallery_item+':last'));
						$(this).parents(o.gallery_name).find(o.gallery_holder).animate({marginLeft:0}, o.speed, function(){
							$(this).css('margin-left','0');
							$(this).parents(o.gallery_name).find('.pagination .num').text($(this).parents(o.gallery_name).find(o.gallery_frame).find(o.gallery_item+':first').attr('rel')+'/' + $(this).parents(o.gallery_name).find(o.gallery_frame + ' ' + o.gallery_item).size());
						});
						return false;
					});
					main_holder.find('.btn-next').click(function(){
						t = setTimeout(oneStep, o.interval);
						$(this).parents(o.gallery_name).removeClass('slider-playing');
						$(this).parents(o.gallery_name).find(o.gallery_holder).animate({marginLeft:step*(-1)}, o.speed, function(){
							$(this).append($(this).parents(o.gallery_name).find(o.gallery_item+':first'));
							$(this).css('margin-left','0');
							$(this).parents(o.gallery_name).find('.pagination .num').text($(this).parents(o.gallery_name).find(o.gallery_frame).find(o.gallery_item+':first').attr('rel')+'/' + $(this).parents(o.gallery_name).find(o.gallery_frame + ' ' + o.gallery_item).size());
						});
						return false;
					});
					main_holder.find('.btn-pause').click(function(){
						if (!$(this).parents(o.gallery_name).hasClass('slider-playing')) {
							$(this).parents(o.gallery_name).addClass('slider-playing');
							oneStep ();
						} else {
							$(this).parents(o.gallery_name).removeClass('slider-playing');
							clearTimeout(t);
						}
						return false;
					})
					function oneStep () {
						if ($('.slider-playing').size() != 0) {
							$('.slider-playing').find(o.gallery_holder).animate({
								marginLeft: step * (-1)
							}, o.speed, function(){
								$(this).append($(this).parents(o.gallery_name).find(o.gallery_item + ':first'));
								$(this).css('margin-left', '0');
								$(this).parents(o.gallery_name).find('.pagination .num').text($(this).parents(o.gallery_name).find(o.gallery_frame).find(o.gallery_item + ':first').attr('rel') + '/' + $(this).parents(o.gallery_name).find(o.gallery_frame + ' ' + o.gallery_item).size());
							});
							t = setTimeout(oneStep, o.interval);
						}
					};
				});
	};
})(jQuery);
jQuery.fn.fadeGallery = function(_options){
	var _options = jQuery.extend({
		slideElements:'div.slideset > div',
		pagerLinks:'ul.paging a',
		btnNext:'a.next',
		btnPrev:'a.prev',
		btnPlayPause:'a.play-pause',
		pausedClass:'paused',
		playClass:'playing',
		activeClass:'active',
		pauseOnHover:true,
		autoRotation:false,
		autoHeight:false,
		switchTime:3000,
		duration:650,
		event:'click'
	},_options);

	return this.each(function(){
		var _this = jQuery(this);
		var _slides = jQuery(_options.slideElements, _this);
		var _pagerLinks = jQuery(_options.pagerLinks, _this);
		var _btnPrev = jQuery(_options.btnPrev, _this);
		var _btnNext = jQuery(_options.btnNext, _this);
		var _btnPlayPause = jQuery(_options.btnPlayPause, _this);
		var _pauseOnHover = _options.pauseOnHover;
		var _autoRotation = _options.autoRotation;
		var _activeClass = _options.activeClass;
		var _pausedClass = _options.pausedClass;
		var _playClass = _options.playClass;
		var _autoHeight = _options.autoHeight;
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _controlEvent = _options.event;

		var _hover = false;
		var _prevIndex = 0;
		var _currentIndex = 0;
		var _slideCount = _slides.length;
		var _timer;
		if(!_slideCount) return;
		_slides.hide().eq(_currentIndex).show();
		if(_autoRotation) _this.removeClass(_pausedClass).addClass(_playClass);
		else _this.removeClass(_playClass).addClass(_pausedClass);

		if(_btnPrev.length) {
			_btnPrev.bind(_controlEvent,function(){
				prevSlide();
				return false;
			});
		}
		if(_btnNext.length) {
			_btnNext.bind(_controlEvent,function(){
				nextSlide();
				return false;
			});
		}
		if(_pagerLinks.length) {
			_pagerLinks.each(function(_ind){
				jQuery(this).bind(_controlEvent,function(){
					if(_currentIndex != _ind) {
						_prevIndex = _currentIndex;
						_currentIndex = _ind;
						switchSlide();
					}
					return false;
				});
			});
		}

		if(_btnPlayPause.length) {
			_btnPlayPause.bind(_controlEvent,function(){
				if(_this.hasClass(_pausedClass)) {
					_this.removeClass(_pausedClass).addClass(_playClass);
					_autoRotation = true;
					autoSlide();
				} else {
					if(_timer) clearTimeout(_timer);
					_this.removeClass(_playClass).addClass(_pausedClass);
				}
				return false;
			});
		}

		function prevSlide() {
			_prevIndex = _currentIndex;
			if(_currentIndex > 0) _currentIndex--;
			else _currentIndex = _slideCount-1;
			switchSlide();
		}
		function nextSlide() {
			_prevIndex = _currentIndex;
			if(_currentIndex < _slideCount-1) _currentIndex++;
			else _currentIndex = 0;
			switchSlide();
		}
		function refreshStatus() {
			if(_pagerLinks.length) _pagerLinks.removeClass(_activeClass).eq(_currentIndex).addClass(_activeClass);
			_slides.eq(_prevIndex).removeClass(_activeClass);
			_slides.eq(_currentIndex).addClass(_activeClass);
		}
		function switchSlide() {
			_slides.eq(_prevIndex).fadeOut(_duration);
			_slides.eq(_currentIndex).fadeIn(_duration);
			refreshStatus();
			autoSlide();
		}

		function autoSlide() {
			if(!_autoRotation || _hover) return;
			if(_timer) clearTimeout(_timer);
			_timer = setTimeout(nextSlide,_switchTime+_duration);
		}
		if(_pauseOnHover) {
			_this.hover(function(){
				_hover = true;
				if(_timer) clearTimeout(_timer);
			},function(){
				_hover = false;
				autoSlide();
			});
		}
		refreshStatus();
		autoSlide();
	});
}


$(function(){
    if(!$('#dgallery,.dgallery').length) return;
    
    $('#dgallery ul a,.dgallery ul a').click(function(){
        var $this = $(this), dgallery = $(this).closest('#dgallery');
        if(!dgallery.length) dgallery = $(this).closest('.dgallery');
        if($this.closest('li').hasClass('active')) return false;
        $('<img />').load(function(){
            dgallery.find('.visual').animate({'opacity': 0}, 400, function(){
                dgallery.find('.visual img').attr('src', $this.attr('href')).closest('.visual').animate({'opacity': 1}, 400);
            });
        }).attr('src', $this.attr('href'));
        dgallery.find('ul .active').removeClass('active');
        $this.closest('li').addClass('active');
        return false;
    });
})
