var clickedLink = 0;
var $leftMenu = $('#left-menu');
var ajaxBlockApi;
var animationDone = true;
var isFirstAjax = true;

$(document).ready(function(){
	$('.main-bg-img-wrapper').append('<img src="" id="main-bg-img" alt="" class="hidden" style="display:none"/>');


	var firstLoad = 1;
	var $mainBg = $('#main-bg-img');
	var $mainCol = $('#main-col');
	var $replaceEl = $('#ajax-replace');

	scrollMainCol = function(href, direction, sendData, pushHref){
		if (!animationDone) return;
		var oldSrc = $mainBg.attr('src');
		ajaxSend = function() {
			$.ajax({
				url: href,
				cache: true,
				dataType: 'json',
				data: sendData,
				beforeSend: function(){
					animationDone = false;
					$('#ajaxloader').fadeIn();
					clickedLink = 1;
					scrollHeight = Math.max(50 + $mainCol.height(), $(window).height());
					animationDone = false;

					if (firstLoad) {
						direction = -1;
						$mainBg.hide();
					} else {
						$mainCol.animate({'top': -direction * scrollHeight}, {duration:1000, queue:true, easing:'easeInOutQuart'});
						$mainCol.promise().done(function(){
							$mainBg.fadeOut({queue:true});
						})
					}
				},
				success	: function(data){
					$('#left-menu').html(data['menu']);
					doAnimate = function(){
						if (!$mainCol.add($mainBg).is(':animated')) {
							clearInterval(doAnimateInterval);
							var completeFlag = false;
							loadFunc = function(){
								$mainBg.fadeIn({ queue:true, duration: 1000});
								$mainBg.promise().done(function(){

									$replaceEl.html(data['full_page']);
									scrollHeight = Math.max(50 + $mainCol.height(), $(window).height());
									$mainCol.css({'top':direction * scrollHeight});

									$mainCol.animate({'top': 0}, {duration:1000, queue:true,easing:'easeInOutQuart'});
									$mainCol.promise().done(function(){
										$('#ajaxloader').fadeOut();
										animationDone = true;
									})

								  	pageReinit();
								})
							}

							$mainBg.one('load', loadFunc).attr({'src':data.main_bg}).each(function() {
								if(this.complete && !$.browser.mozilla)
									loadFunc();
							});

							document.title = data['page_title'];

							if (pushHref)
								$.history.putHash(href);
						}
					}
					doAnimateInterval = setInterval(doAnimate,100);

					if (firstLoad && typeof(preloadBgs) !== 'undefined' && preloadBgs.length) {	// Если выполнился первый аякс, то стартуем прелоадер фоновых картинок
						setTimeout(function(){
							preloadImages(preloadBgs);
						}, 5000);
					}

					firstLoad = 0;
				}
			});

		}

		if (isFirstAjax && $.browser.opera) {	// Хак для глючной оперы с чудесным багом
			isFirstAjax = false;
			$('#ajaxloader').fadeIn();
			setTimeout(ajaxSend, 5000);
		} else {
			ajaxSend();
		}

	}


	$('.logo a').live('click',function(){
		scrollMainCol($(this).attr('href'), -1, '', true);
		$('#main-menu li').removeClass('active');
		return false;
	})

	$('#content-news-block .item a').live('click',function(){
		scrollMainCol($(this).attr('href'), 1, '', true);
		$('#main-menu li a[href="news"]').parent().addClass('active');
		return false;
	})

	$('#main-menu li a').live('click',function(){
		var $link = $(this);
		var $menu = $link.parents('#main-menu');

		var activeLiPos = $menu.find('li').index($menu.find('li.active'));
		var clickedPos = $menu.find('li').index($link.parent());

		if (clickedPos < activeLiPos)
			scrollDirection = -1;
		else
			scrollDirection = 1;

		href = $link.attr('href');

		if (clickedPos == activeLiPos )
			ajaxBlockApi.ajaxLoad(null, 'Prev',href, true);
		else scrollMainCol(href, scrollDirection, '', true);

		return false;
	})

	pageReinit = function(){
		$('.first-col').each(function(){
			$(this).next().add($(this).next().find('.scroll-pane')).height($(this).height());
		})

		$("#slider-block").maincarousel({autoanimate:true});
		$("#content-news-block").maincarousel();
		$("#page-ajax-block").maincarousel({isajax:true});
		ajaxBlockApi = $("#page-ajax-block").data('maincarousel');

		$('.tabs').each(function(){
			tabsWidth = parseInt($(this).width())/$(this).find('a').length;
			$(this).find('a').width(tabsWidth-1+'px');
			$(this).find('a.active').live('click',function(){return false;})
		})

		$(".news-imgs.inline-slider .slide-small-imgs").maincarousel({size: 3, items: 'li', container: '.inline-items', previous:'.inline-slider-prev', next: '.inline-slider-next'});
		$(".povilion-imgs.inline-slider .slide-small-imgs").maincarousel({size: 4, items: 'li', container: '.inline-items', previous:'.inline-slider-prev', next: '.inline-slider-next'});

//// всё пока здесь
		$('.inline-slider').each(function(){
			$(this).find('.inline-big-items li:not(:first)').hide();
			$(this).find(".slide-small-imgs li img").die('click').live('click',function(){
				idx = $(this).parents('ul').eq(0).find('li').removeClass('active').index($(this).parent());
				$(this).parent().addClass('active');

				$inlineslider = $(this).parents('.inline-slider');
				$li = $inlineslider.find('.big-imgs li');
				$li.filter(':not(:eq('+idx+'))').fadeOut(500, 'easeInOutQuart').promise().done(function(){
					$li.eq(idx).fadeIn(500, 'easeInOutBack');
				});
			})
		})

		var sliderTimerShow, sliderTimerHide ;
		$('.slider-link, .slider-link-brends').live({
			mouseenter :function(){
				var $el = $(this);
				$el.addClass('hide').next().stop(true,false).animate({'left':0},500);
			},
			click : function(){
				$el = $(this).parent();
				$el.find('.slider-link, .slider-link-brends').removeClass('hide');
				$el.find('.slider-wrapper').stop(true,false).animate({'left':'-100%'},500);
			}
		})

		$('.slide-small-imgs').live({
			mouseenter:function(){
				clearTimeout(sliderTimerHide);
			},
			mouseleave:function(){
				var $el = $(this);
				sliderTimerHide = setTimeout(function(){
					$el.find('.slider-link, .slider-link-brends').removeClass('hide');
					$el.find('.slider-wrapper').stop(true,false).animate({'left':'-100%'},500);
				},500)
			}
		})

		$('.scroll-pane').each(function(){
			$(this).jScrollPane({showArrows:true, verticalGutter: 15});
		})

		$('.main-col').find("a[rel=fancybox] , a[href$='.jpg'], a[href$='.png'], a[href$='.gif']").fancybox({
				'transitionIn'	:	'easeInOutBack',
				'transitionOut'	:	'easeInOutBack',
				'speedIn'		:	600,
				'speedOut'		:	200,
				'overlayColor'  :	'#000',
				'autoScale'		:	false
		});

		$('.text table.zebra').each(function(){
			$(this).find('tr:even').addClass('zebra');
		})

		if ($('.gMap').length){
			gMapInitialize();
		}

	}

	pageReinit();

	$('#feedbacks').live('submit',function(){
		var form = $(this);
		var data = 'name='+form.find('input[name=name]').attr('value');
			data = data +'&'+'phone='+form.find('input[name=phone]').attr('value');
			data = data +'&'+'mail='+form.find('input[name=mail]').attr('value');
			data = data +'&'+'message='+form.find('textarea[name=message]').val();

		$.ajax({
			url: form.attr('action'),
			dataType: 'json',
			data: data,
			type: 'post',
			success	: function(data){

				var tmp = $(data.full_page).find('#ajax-repl').html();
				$('#ajax-repl').html(tmp);

//				form.html(data.full_page);
//				form.html(form.find('#ajax-repl').html());

			}
		})
		return false;
	})

	historyCallback = function(hash) {
			pushHref = true;
			if (hash == '') {
				hash = window.location.pathname;
				pushHref = false;
			}

			if (!clickedLink) {

				clickedLink = 1;
				hashPos = hash.indexOf($('#left-menu li.active a').attr('href'));
				if (( hashPos == 0 || hashPos == 1 ) && !firstLoad && $('#left-menu li.active').length  && $('#page-ajax-block').length )
					ajaxBlockApi.ajaxLoad(null, 'Prev',hash, pushHref);
				else
				if ($('a[href="'+hash+'"]').length) {
					if (firstLoad){
						$mainCol.css({'top':'-10000px'});
					scrollMainCol(hash,-1,'', pushHref);

					}else
						$('a[href="'+hash+'"]').eq(0).click();
				}
				else {
					if (firstLoad)
						$mainCol.css({'top':'-10000px'});
					scrollMainCol(hash,-1,'', pushHref);
				}
			}
			clickedLink = 0;
			pushHref = true;
	}
	$.history.init(historyCallback ,{ unescape: ",/?_=&" });

	$('input[type=text], textarea').example(function() {
	  return $(this).attr('title');
	});

	$('#search-form').live('submit',function(){
		var form = $(this);
		var data = 'search='+form.find('input[type=text]').val();
		if (form.find('input[type=text]').attr('value') == form.find('input[type=text]').attr('title'))
			data = 'search=';

		scrollMainCol(form.attr('action')+'?'+data,1,data, true);
		return false;
	})

	$('.search-results a').live('click',function(){
		scrollMainCol($(this).attr('href'),-1,'', true);
		return false;
	})


});



preloadImages = function (imgs, callback) {

	var callback = callback || function(){};

	for (var i in imgs) {
		var img = new Image();
		img.onload = callback.call(img, i);
		img.src = imgs[i];
	}

}

