// классы тега html
$('html').removeClass('nojs');
var browser = {
	ie: $('html').hasClass('ie'),
	ie6: $('html').hasClass('ie6'),
	ie7: $('html').hasClass('ie7'),
	ie8: $('html').hasClass('ie8'),
	ie9: $('html').hasClass('ie9')
};

jQuery(function($) {
	// msie6
	(function() {
		if (!browser.ie6)
			return;
		
		// png
		var css = ['#footer-wrap', '#footer-gradient .left', '#footer-gradient .right',
			'#footer-gradient .center', '#footer-main .social ul li a', '#header .search form input',
			'#header .search form button', '#header .gradient', '#header .gradient .left',
			'#header .gradient .right', '#main-menu .gradient', '#main-menu .gradient .left',
			'#main-menu .gradient .right', '#main-menu .big .retail-active', '#main-menu-shadow',
			'#main-menu-shadow .left', '#main-menu-shadow .right', '#products .shadow-top .left',
			'#products .shadow-top .right', '#products .shadow-top .middle',
			'#products .shadow-bottom .left', '#products .shadow-bottom .right',
			'#products .shadow-bottom .middle', '#products .prev', '#products .next',
			'#products .center', '#products .center .middle .columns ul li', '#teasers .gradient',
			'#teasers .gradient .left', '#teasers .gradient .right', '#teasers .grad-left',
			'#teasers .grad-left .arrow', '#teasers .grad-right', '#teasers .grad-right .arrow',
			'#press-main .news .title .rss', '#press-more .etc .exchange .convert .block input',
			'#press-more .etc .services .links', '#partners .gradient', '#partners .gradient .left',
			'#partners .gradient .right', '#retail-promo .gradient .left',
			'#retail-promo .gradient .right', '#retail-promo .gradient .center',
			'#inner-left ul .active .item', '#inner-left ul .active .item span', '#nav-arrow',
			'#nav-arrow .arrow', '#deposit-info .list li', '#press-center .right .blog .image .border',
			'#promo-video-list .item a div', '.price .c', '.price .r', '.price .l',
			'#vac-window form .submit-button button', '#vac-main .right .description form button',
			'#vac-window form .input', '#main-menu .small .active', '.calc-main .slider-common .sl a',
			'#awards-en .shadow-top .left', '#awards-en .shadow-top .right', '#awards-en .shadow-top .middle',
			'#awards-en .shadow-bottom .left', '#awards-en .shadow-bottom .right',
			'#awards-en .shadow-bottom .middle', '#awards-en .prev', '#awards-en .next'];
		var html = ['#products .prev img', '#products .next img', '#products .center .left img',
			'#press-more .etc .blog .image img', '#press-more .etc .exchange .convert .block .arrow',
			'#ibank-window ul li .arrow', '#ibank-window ul li h2 a img',
			'#contact-window .map-title .arrow', '#promo-window .window-close img',
			'#blog-post-list .description .image img', '#kinder-window .window-close img'];
		
		DD_belatedPNG.fix(css.join(','));
		DD_belatedPNG.fix(html.join(','));
	})();
	
	// msie7
	(function() {
		if (!browser.ie7)
			return;
	})();
	
	// image precaching
	(function() {
		var images = ['hand-close.ico', 'hand-open.ico', 'calc-1-bg.png', 'calc-2-bg.png',
			'calc-3-bg.png'];
		
		$.each(images, function(i, el) {
			var tempImage = new Image();
			tempImage.src = '/images/' + el;
		});
	})();
	
	// форматирует число правильно с внесением пробелов между разрядами
	function numberFormat(value, nbsp) {
		nbsp = typeof(nbsp) != 'undefined' ? nbsp : false;
		
		value = value.toString().split('').reverse().join('');
		var accum = '';
		
		for (var i = 0; i < value.length; i++) {
			if (i % 3 == 0 && i != 0)
				accum += nbsp ? ';psbn&' : ' ';
			accum += value.charAt(i);
		}
		
		value = accum.split('').reverse().join('');
		return value;
	}
	
	// убирает пробелы и конвертирует форматированное в нормальный int
	function numberParse(value) {
		var newValue = value.toString();
		newValue = newValue.replace(/\s*/g, '');
		newValue = newValue.replace(/&nbsp;/g, '');
		newValue = parseInt(newValue);
		return newValue;
	}
	
	// форсировать перерисовку объекта
	function refresh(object) {
		if (!browser.ie)
			return;
		$(object).each(function() {
			this.fireEvent('onmove');
			
			var pl = parseInt($(this).css('padding-left'));
			$(this).css('padding-left', pl + 1);
			setTimeout($.proxy(function() {
				$(this).css('padding-left', pl);
			}, this), 1);
		});
	}
	
	(function() {
		var body = $('.js-html-body');
		
		$(window).resize(function() {
			body.removeClass('width-1024');
			if ($(window).width() <= 1090)
				body.addClass('width-1024');
		});
		
		$(window).trigger('resize');
	})();
	
	// окна и кнопки к ним
	(function() {
		var
			whiteShadow = $('.js-white-shadow'),
			ibankWindow = $('.js-ibank-window'), ibankButton = $('.js-ibank-button'),
			contactWindow = $('.js-contact-window'), contactButton = $('.js-contact-button'),
			sitemapWindow = $('.js-sitemap-window'), sitemapButton = $('.js-sitemap-button');
		
		whiteShadow.click(function() {
			whiteShadow.hide();
			ibankWindow.hide();
			contactWindow.hide();
			sitemapWindow.hide();
		});
		
		ibankButton.click(function() {
			whiteShadow.show();
			refresh(ibankWindow);
			ibankWindow.show();
			return false;
		});
		$('.js-close', ibankWindow).click(function() {
			whiteShadow.hide();
			ibankWindow.hide();
			return false;
		});
		
		contactButton.click(function() {
			whiteShadow.show();
			refresh(contactWindow);
			contactWindow.show();
			return false;
		});
		$('.js-close', contactWindow).click(function() {
			whiteShadow.hide();
			contactWindow.hide();
			return false;
		});
		
		sitemapButton.click(function() {
			whiteShadow.show();
			refresh(sitemapWindow);
			sitemapWindow.show();
			return false;
		});
		$('.js-close', sitemapWindow).click(function() {
			whiteShadow.hide();
			sitemapWindow.hide();
			return false;
		});
	})();
	
	// google maps на всех страницах в русской и казахской версиях
	(function() {
		var mainMap = $('.js-main-map'), contactButton = $('.js-contact-button');
		if (!mainMap.size() || typeof google == 'undefined')
			return;
		
		// карта
		var map = new google.maps.Map(mainMap.get(0), {
			center: new google.maps.LatLng(43.2412, 76.9031),
			zoom: 17,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		});
		
		// маркер
		var marker = new google.maps.Marker({
			position: new google.maps.LatLng(43.2402, 76.9064), 
			map: map
		});
		
		// инфо-окно
		var infoWindow = new google.maps.InfoWindow({
			content: '<strong>Головной офис</strong><br/><br/>Народный Банк Казахстана<br/>050008, г. Алматы,<br/>пр. Абая 109 В'
		});
		
		google.maps.event.addListener(marker, 'click', function() {
			infoWindow.open(map, marker);
		});
		
		// перерисовываем при открытии
		contactButton.click(function() {
			google.maps.event.trigger(map, 'resize');
			return false;
		});
	})();
	
	// google maps на странице контактов в английской версии
	(function() {
		var mapHolder = $('.js-map-holder');
		if (!mapHolder.size())
			return false;
		
		// карта
		var map = new google.maps.Map(mapHolder.get(0), {
			center: new google.maps.LatLng(43.2402, 76.9064),
			zoom: 17,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		});
		
		// маркер
		var marker = new google.maps.Marker({
			position: new google.maps.LatLng(43.2402, 76.9064), 
			map: map
		});
		
		// инфо-окно
		var infoWindow = new google.maps.InfoWindow({
			content: '<strong>Halyk Bank</strong><br/><br/>109V, Abay ave, Almaty,<br/>050008, Republic of Kazakhstan'
		});
		
		google.maps.event.addListener(marker, 'click', function() {
			infoWindow.open(map, marker);
		});
		infoWindow.open(map, marker);
	})();
	
	// ссылка с телефонами в шапке
	(function() {
		var contactButton = $('.js-contact-button');
		
		if (!contactButton.size())
			return;
		
		contactButton.bind('mouseenter mouseever', function() {
			contactButton.addClass('active');
		});
		contactButton.bind('mouseleave mouseout', function() {
			contactButton.removeClass('active');
		});
	})();
	
	// поисковый инпут
	(function() {
		var searchInput = $('.js-search-input');
		
		searchInput.blur(function() {
			if (searchInput.val() == '')
				searchInput.val(jsSearchInputText);
		});
		searchInput.focus(function() {
			if (searchInput.val() == jsSearchInputText)
				searchInput.val('');
		});
	})();
	
	// курсы валют
	(function() {
		var
			rates1Button = $('.js-rates-1-button'), rates1 = $('.js-rates-1'),
			rates2Button = $('.js-rates-2-button'), rates2 = $('.js-rates-2'),
			rates3Button = $('.js-rates-3-button'), rates3 = $('.js-rates-3');
		
		if (!rates1.size() || !rates2.size || !rates3.size())
			return;
		
		rates1Button.click(function() {
			rates1Button.addClass('active');
			rates2Button.removeClass('active');
			rates3Button.removeClass('active');
			rates1.show();
			rates2.hide();
			rates3.hide();
			return false;
		});
		
		rates2Button.click(function() {
			rates1Button.removeClass('active');
			rates2Button.addClass('active');
			rates3Button.removeClass('active');
			rates1.hide();
			rates2.show();
			rates3.hide();
			return false;
		});
		
		rates3Button.click(function() {
			rates1Button.removeClass('active');
			rates2Button.removeClass('active');
			rates3Button.addClass('active');
			rates1.hide();
			rates2.hide();
			rates3.show();
			return false;
		});
	})();
	
	// стоимость акций
	(function() {
		var
			shares1Button = $('.js-shares-1-button'), shares1 = $('.js-shares-1'),
			shares2Button = $('.js-shares-2-button'), shares2 = $('.js-shares-2');
		
		if (!shares1.size() || !shares2.size)
			return;
		
		shares1Button.click(function() {
			shares1Button.addClass('active');
			shares2Button.removeClass('active');
			shares1.show();
			shares2.hide();
			return false;
		});
		
		shares2Button.click(function() {
			shares1Button.removeClass('active');
			shares2Button.addClass('active');
			shares1.hide();
			shares2.show();
			return false;
		});
	})();
	
	// слайдер на главной
	(function() {
		var
			slide = $('.js-center-slide'), slidePrev = $('.js-slide-prev'), slideNext = $('.js-slide-next'),
			measurerSlide = $('.js-center-measurer-slide');
		
		if (!slide.size() || typeof productsSlides == 'undefined')
			return false;
		
		slide.filter(':first').before(slide.slice(-1).clone().addClass('cloned-slide'));
		slide.filter(':last').after(slide.slice(0, 1).clone().addClass('cloned-slide').removeClass('center-slide-first'));
		slide = $('.js-center-slide');
		
		slide.css({ 'left': '2000px' });
		slide.slice(1, 2).css({ 'left': '0' });
		slide.slice(0, 1).css({ 'left': '-1000px' });
		
		var currentSlide = 1, slideCount = slide.size(), animation = false;
		
		// пересчитываем ширину слайдов
		$(window).resize(function() {
			slide.width(measurerSlide.width());
		}).trigger('resize');
		
		// предыдущий
		slidePrev.click(function() {
			if (animation)
				return false;
			animation = true;
			
			for(var i = 0; i < slideCount; i++) {
				if (i < currentSlide)
					$(slide.get(i)).css({ 'left': '-1000px' });
				if (i == currentSlide)
					$(slide.get(i)).css({ 'left': '0' });
				if (i > currentSlide)
					$(slide.get(i)).css({ 'left': '2000px' });
			}
			
			if (currentSlide == 1) {
				slide.css({ 'left': '-1000px' });
			}
			
			if (currentSlide == 0) {
				slide.css({ 'left': '-1000px' });
				$(slide.get(currentSlide)).css({ 'left': '0' });
				$t(slide.get(currentSlide)).tween({ left: -1000, time: 0.5 });
				currentSlide = slideCount - 3;
				$t(slide.get(currentSlide)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
					slide.filter(':last').css({ 'left': '-1000px' });
				}});
			}
			else {
				$t(slide.get(currentSlide)).tween({ left: 2000, time: 0.5 });
				currentSlide--;
				$t(slide.get(currentSlide)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
			
			updateButtons();
			return false;
		});
		slidePrev.children('a').click(function() { slidePrev.trigger('click'); return false; });
		
		// следующий
		slideNext.click(function() {
			if (animation)
				return false;
			animation = true;
			
			for(var i = 0; i < slideCount; i++) {
				if (i < currentSlide)
					$(slide.get(i)).css({ 'left': '-1000px' });
				if (i == currentSlide)
					$(slide.get(i)).css({ 'left': '0' });
				if (i > currentSlide)
					$(slide.get(i)).css({ 'left': '2000px' });
			}
			
			if (currentSlide == slideCount - 2) {
				slide.css({ 'left': '2000px' });
			}
			
			if (currentSlide == slideCount - 1) {
				slide.css({ 'left': '2000px' });
				$(slide.get(currentSlide)).css({ 'left': '0' });
				$t(slide.get(currentSlide)).tween({ left: -1000, time: 0.5 });
				currentSlide = 2;
				$t(slide.get(currentSlide)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
					slide.filter(':last').css({ 'left': '2000px' });
				}});
			}
			else {
				$t(slide.get(currentSlide)).tween({ left: -1000, time: 0.5 });
				currentSlide++;
				$t(slide.get(currentSlide)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
			
			updateButtons();
			return false;
		});
		slideNext.children('a').click(function() { slideNext.trigger('click'); return false; });
		
		// апдейтим кнопки
		function updateButtons() {
			var prevSlide = currentSlide - 1, nextSlide = currentSlide + 1;
			if (prevSlide < 0)
				prevSlide = productsSlides.length - 3;
			if (nextSlide > productsSlides.length - 1)
				nextSlide = 2;
			
			$('p', slidePrev).html(productsSlides[prevSlide].title);
			$('img', slidePrev).attr('src', productsSlides[prevSlide].small_image_url);
			
			$('p', slideNext).html(productsSlides[nextSlide].title);
			$('img', slideNext).attr('src', productsSlides[nextSlide].small_image_url);
		}
		updateButtons();
	})();
	
	// слайдер событий на главной, в английской версии
	(function() {
		var
			award = $('.js-center-award'), awardPrev = $('.js-award-prev'), awardNext = $('.js-award-next'),
			measurerAward = $('.js-center-measurer-award');
		
		if (!award.size())
			return false;
		
		var currentAward = 0, awardCount = award.size(), animation = false;
		
		// пересчитываем ширину слайдов
		$(window).resize(function() {
			award.width(measurerAward.width());
		}).trigger('resize');
		
		// предыдущий
		awardPrev.click(function() {
			if (animation)
				return;
			animation = true;
			
			if (currentAward == 0) {
				$t(award.get(currentAward)).tween({ left: -1500, time: 0.5, onComplete: function() {
					award.css({ left: '-1500px' });
					$(award.get(currentAward)).css({ left: '0' });;
				}});
				currentAward = awardCount - 1;
				$t(award.get(currentAward)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
			else {
				$t(award.get(currentAward)).tween({ left: 2000, time: 0.5 });
				currentAward--;
				$t(award.get(currentAward)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
		});
		awardPrev.children('a').click(function() { awardPrev.trigger('click'); return false; });
		
		// следующий
		awardNext.click(function() {
			if (animation)
				return;
			animation = true;
			
			if (currentAward == awardCount - 1) {
				$t(award.get(currentAward)).tween({ left: 2000, time: 0.5, onComplete: function() {
					award.css({ left: '2000px' });
					$(award.get(currentAward)).css({ left: '0' });;
				}});
				currentAward = 0;
				$t(award.get(currentAward)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
			else {
				$t(award.get(currentAward)).tween({ left: -1500, time: 0.5 });
				currentAward++;
				$t(award.get(currentAward)).tween({ left: 0, time: 0.5, onComplete: function() {
					animation = false;
				}});
			}
		});
		awardNext.children('a').click(function() { awardNext.trigger('click'); return false; });
	})();
	
	// конвертация валюты
	(function() {
		var
			currency1 = $('.js-currency-1'), currency2 = $('.js-currency-2'), 
			currency3 = $('.js-currency-3'), currency4 = $('.js-currency-4'),
			desc = $('.js-currency-desc'), input = $('.js-currency-input'), result = $('.js-currency-result');
		
		if (!currency1.size() || !currency2.size() || !currency3.size() || !currency4.size())
			return;
		
		var currency = 'kzt';
		
		currency1.click(function() {
			currency1.addClass('active');
			currency2.removeClass('active');
			currency3.removeClass('active');
			currency4.removeClass('active');
			currency = 'kzt';
			calculate();
			return false;
		});
		currency2.click(function() {
			currency1.removeClass('active');
			currency2.addClass('active');
			currency3.removeClass('active');
			currency4.removeClass('active');
			currency = 'usd';
			calculate();
			return false;
		});
		currency3.click(function() {
			currency1.removeClass('active');
			currency2.removeClass('active');
			currency3.addClass('active');
			currency4.removeClass('active');
			currency = 'eur';
			calculate();
			return false;
		});
		currency4.click(function() {
			currency1.removeClass('active');
			currency2.removeClass('active');
			currency3.removeClass('active');
			currency4.addClass('active');
			currency = 'rub';
			calculate();
			return false;
		});
		
		input.bind('focus blur keydown keyup', calculate);
		
		// функция расчета
		function calculate() {
			desc.hide();
			result.show();
			
			var val = numberParse(input.val()), usd = 0, eur = 0, rub = 0;
			if (!val)
				val = 0;
			
			if (currency == 'kzt') {
				usd = (val / currencyRates.usd).toFixed(2);
				eur = (val / currencyRates.eur).toFixed(2);
				rub = (val / currencyRates.rub).toFixed(2);
				result.html(usd + '&nbsp;$&nbsp; &nbsp;' + eur + '&nbsp;€&nbsp; &nbsp;' + rub + '&nbsp;руб');
			}
			if (currency == 'usd') {
				val *= currencyRates.usd;
				kzt = val.toFixed(2);
				eur = (val / currencyRates.eur).toFixed(2);
				rub = (val / currencyRates.rub).toFixed(2);
				result.html(kzt + '&nbsp;тг&nbsp; &nbsp;' + eur + '&nbsp;€&nbsp; &nbsp;' + rub + '&nbsp;руб');
			}
			if (currency == 'eur') {
				val *= currencyRates.eur;
				kzt = val.toFixed(2);
				usd = (val / currencyRates.usd).toFixed(2);
				rub = (val / currencyRates.rub).toFixed(2);
				result.html(kzt + '&nbsp;тг&nbsp; &nbsp;' + usd + '&nbsp;$&nbsp; &nbsp;' + rub + '&nbsp;руб');
			}
			if (currency == 'rub') {
				val *= currencyRates.rub;
				kzt = val.toFixed(2);
				usd = (val / currencyRates.usd).toFixed(2);
				eur = (val / currencyRates.eur).toFixed(2);
				result.html(kzt + '&nbsp;тг&nbsp; &nbsp;' + usd + '&nbsp;$&nbsp; &nbsp;' + eur + '&nbsp;€');
			}
		}
	})();
	
	// тизеры
	(function() {
		var
			teasers = $('.js-teasers'), elements = $('.js-teasers-element'),
			teasersList = $('.js-teasers-list'),
			teasersPrev = $('.js-teasers-prev'), teasersNext = $('.js-teasers-next'),
			gradLeft = $('.js-teasers-grad-left'), gradRight = $('.js-teasers-grad-right'),
			current = 0, total = elements.size();
		
		if (!teasers.size() || !elements.size())
			return;
		
		// стрелки скрываем, если тизеров меньше пяти
		if(elements.size() <= 6) {
			teasersPrev.hide();
			teasersNext.hide();
			gradLeft.hide();
			gradRight.hide();
		}
		
		teasersList.width(10000);
		
		teasersPrev.click(function() {
			current--;
			if (current < 0)
				current = total - 6;
			
			$t(teasersList.get(0)).tween({
				left: -parseInt(teasers.width() / 7) * current,
				time: 0.25
			});
			return false;
		});
		
		teasersNext.click(function() {
			current++;
			if (current >= total - 5)
				current = 0;
			
			$t(teasersList.get(0)).tween({
				left: -parseInt(teasers.width() / 7) * current,
				time: 0.25
			});
			return false;
		});
		
		$(window).resize(function() {
			teasersList.css({
				left: -parseInt(teasers.width() / 7) * current + 'px'
			});
			elements.css({
				width: parseInt(teasers.width() * 0.15) + 'px',
				margin: '0 ' + parseInt(teasers.width() * 0.01) + 'px 200px 0'
			});
		});
		$(window).trigger('resize');
	})();
	
	// перекрестное выделение ячеек в таблице
	(function() {
		var innerText = $('.js-inner-text'), tables = $('table', innerText);
		
		if (!tables.size())
			return;
		
		tables.live('mouseleave mouseout', function() {
			$('tr td', this).css('background', '#fff');
		});
		
		$('tr td', tables).hover(function() {
			var td = $(this), tr = td.parents('tr'), table = tr.parents('table');
			var x = $('td', tr).index(td), y = $('tr', table).index(tr);
			
			$('tr td', table).css('background', '#fff');
			
			$('tr:nth-child(' + (y + 1) + ') td', table).css('background', '#ececec');
			$('tr td:nth-child(' + (x + 1) + ')', table).css('background', '#ececec');
		});
	})();
	
	// партнеры
	(function() {
		var partners = $('.js-partners'), partner = $('.js-partners .js-partner');
		
		if (!partners.size() || !partner.size())
			return;
		
		// preload изображений
		var preloadImage = new Image();
		$.each(partner, function(i) {
			preloadImage.src = $(this).data('smallImageUrl');
		});
		
		// наводим курсор
		partner.bind('mouseenter mouseover', function() {
			$(this).attr('src', $(this).data('smallImageUrl'));
		});
		
		// отводим курсор
		partner.bind('mouseleave mouseout', function() {
			$(this).attr('src', $(this).data('bwImageUrl'));
		});
	})();
	
	// переключение с короткой истории на длинную
	(function() {
		var
			aboutHistoryShort = $('.js-about-history-short'),
			aboutHistoryButton = $('.js-about-history-button'),
			aboutHistoryLong = $('.js-about-history-long');
		
		if (!aboutHistoryShort.size() || !aboutHistoryLong.size())
			return;
		
		aboutHistoryButton.click(function() {
			aboutHistoryShort.hide();
			aboutHistoryLong.show();
			return false;
		});
	})();
	
	// форма в залоговом имуществе
	(function() {
		var
			pledgeInput = $('.js-pledge-input'),
			pledgeInput1 = $('.js-pledge-input-1'),
			pledgeInput2 = $('.js-pledge-input-2'),
			pledgeInput3 = $('.js-pledge-input-3'),
			pledgeButton = $('.js-pledge-button'),
			pledgeButton1 = $('.js-pledge-button-1'),
			pledgeButton2 = $('.js-pledge-button-2'),
			pledgeButton3 = $('.js-pledge-button-3');
		
		if (!pledgeInput.size() || !pledgeButton.size())
			return;
		
		pledgeButton1.click(function() {
			pledgeInput.prop('checked', false);
			pledgeInput1.prop('checked', true);
			pledgeButton.removeClass('active');
			pledgeButton1.addClass('active');
			return false;
		});
		
		pledgeButton2.click(function() {
			pledgeInput.prop('checked', false);
			pledgeInput2.prop('checked', true);
			pledgeButton.removeClass('active');
			pledgeButton2.addClass('active');
			return false;
		});
		
		pledgeButton3.click(function() {
			pledgeInput.prop('checked', false);
			pledgeInput3.prop('checked', true);
			pledgeButton.removeClass('active');
			pledgeButton3.addClass('active');
			return false;
		});
	})();
	
	// промо-видео, окошко
	(function() {
		var
			videoList = $('.js-promo-video-list'), videoItem = $('.js-promo-video-item'),
			whiteShadow = $('.js-white-shadow'), promoWindow = $('.js-promo-window'),
			promoWindowPlayer = $('.js-promo-window-player');
		
		if (!videoList.size() || !videoItem.size())
			return;
		
		$('a', videoItem).click(function() {
			whiteShadow.show();
			refresh(promoWindow);
			promoWindow.show();
			
			var flashvars = {
				videosrc: $(this).data('videoUrl'),
				filesize: $(this).data('videoSize'),
				thumbsrc: $(this).data('thumbImageUrl')
			};
			
			swfobject.embedSWF('/swf/HalykBankVideoPlayer.swf', 'js-promo-window-player',
				'684', '408', '9.0.0', '', flashvars);
			
			return false;
		});
		
		$('.js-close', promoWindow).click(function() {
			whiteShadow.hide();
			promoWindow.hide();
			promoWindowPlayer.html('');
			return false;
		});
		
		$(whiteShadow).click(function() {
			whiteShadow.hide();
			promoWindow.hide();
			promoWindowPlayer.html('');
		});
	})();
	
	// соц. проекты → детям
	(function() {
		var
			socialKinder = $('.js-social-kinder'),
			socialSwitcher = $('.js-social-switcher'),
			socialContent = $('.js-social-content');
		
		if (!socialKinder.size() || !socialSwitcher.size() || !socialContent.size())
			return;
		
		socialSwitcher.click(function() {
			socialSwitcher.removeClass('active');
			$(this).addClass('active');
			
			socialContent.hide();
			$('.js-social-content-' + $(this).data('id'), socialKinder).show();
			
			return false;
		});
	})();
	
	// соц. проекты → детям, окошко
	(function() {
		var
			kinderImages = $('.js-kinder-images'), kinderImage = $('.js-kinder-image'),
			whiteShadow = $('.js-white-shadow'), kinderWindow = $('.js-kinder-window'),
			kinderWindowImage = $('.js-kinder-window-image'), kinderWindowPrice = $('.js-kinder-window-price'),
			kinderWindowPriceWrap = $('.js-kinder-window-price-wrap'), kinderWindowPriceSold = $('.js-kinder-window-price-sold'),
			kinderWindowTitle = $('.js-kinder-window-title'), kinderWindowDescription = $('.js-kinder-window-description');
		
		if (!kinderImages.size() || !kinderImage.size())
			return;
		
		$('a', kinderImage).click(function() {
			whiteShadow.show();
			
			kinderWindowImage.load(function() {
				refresh(kinderWindow);
				kinderWindow.show();
				
				kinderWindow.css({
					width: kinderWindowImage.width() + 'px',
					margin: '0 0 0 -' + parseInt(kinderWindowImage.width() / 2) + 'px',
					top: ($(window).scrollTop() + 25) + 'px'
				});
			});
			
			var parent = $(this).parents('.js-kinder-image');
			kinderWindowImage.attr('src', parent.data('averageImageUrl'));
			kinderWindowTitle.text($('.js-kinder-image-title', parent).text());
			kinderWindowDescription.text($('.js-kinder-image-description', parent).text());
			
			if (!$('.js-kinder-image-price', parent).size() || $('.js-kinder-image-price', parent).text()=='Продано') {
				kinderWindowPriceWrap.hide();
			}
			else {
				kinderWindowPriceWrap.show();
				kinderWindowPrice.text($('.js-kinder-image-price', parent).text());
			}
			
			if ($('.js-kinder-image-price', parent).text()=='Продано')
				kinderWindowPriceSold.show();
			else
				kinderWindowPriceSold.hide();
			
			return false;
		});
		
		$('.js-close', kinderWindow).click(function() {
			whiteShadow.hide();
			kinderWindow.hide();
			return false;
		});
		
		$(whiteShadow).click(function() {
			whiteShadow.hide();
			kinderWindow.hide();
		});
	})();
	
	// галерея, окошко
	(function() {
		var
			galleryImages = $('.js-gallery-images'), galleryImage = $('.js-gallery-image'),
			whiteShadow = $('.js-white-shadow'), galleryWindow = $('.js-gallery-window'),
			galleryWindowImage = $('.js-gallery-window-image'),
			galleryWindowTitle = $('.js-gallery-window-title');
		
		if (!galleryImages.size() || !galleryImage.size())
			return;
		
		$('a', galleryImage).click(function() {
			whiteShadow.show();
			
			galleryWindowImage.load(function() {
				refresh(galleryWindow);
				galleryWindow.show();
				
				galleryWindow.css({
					width: galleryWindowImage.width() + 'px',
					margin: '0 0 0 -' + parseInt(galleryWindowImage.width() / 2) + 'px',
					top: ($(window).scrollTop() + 25) + 'px'
				});
			});
			
			var parent = $(this).parents('.js-gallery-image');
			galleryWindowImage.attr('src', parent.data('averageImageUrl'));
			
			var titleHtml = '';
			if (parent.data('description'))
				titleHtml += '<strong>' + parent.data('description') + '</strong>, ';
			titleHtml += '<a href="' + parent.data('originalImageUrl') + '">Оригинальный размер</a> (';
			titleHtml += parent.data('width') + '×' + parent.data('height') + ', ';
			titleHtml += (parent.data('size') / 1024 / 1024).toFixed(2) + ' Мб)';
			galleryWindowTitle.html(titleHtml);
			
			return false;
		});
		
		$('.js-close', galleryWindow).click(function() {
			whiteShadow.hide();
			galleryWindow.hide();
			return false;
		});
		
		$(whiteShadow).click(function() {
			whiteShadow.hide();
			galleryWindow.hide();
		});
	})();
	
	// окошко отправки резюме
	(function() {
		var
			vacButtonForm = $('.js-vac-button-form'),
			whiteShadow = $('.js-white-shadow'), vacWindow = $('.js-vac-window');
		
		if (!vacWindow.size() || !vacButtonForm.size())
			return;
		
		$(vacButtonForm).click(function() {
			whiteShadow.show();
			refresh(vacWindow);
			vacWindow.show();
			
			return false;
		});
		
		$('.js-close', vacWindow).click(function() {
			whiteShadow.hide();
			vacWindow.hide();
			return false;
		});
		
		$(whiteShadow).click(function() {
			whiteShadow.hide();
			vacWindow.hide();
		});
	})();
	
	// фейковая кнопка в форме отправки резюме
	(function() {
		var fakeFileButton = $('.js-fake-file-button'), fakeFileText = $('.js-fake-file-text');
		
		if (!fakeFileButton.size() || !fakeFileText.size())
			return;
		
		fakeFileButton.change(function() {
			fakeFileText.val($(this).val());
		});
	})();
	
	// обновление капчи формы
	(function() {
		var captchaUpdate = $('.js-captcha-update'), captchaImage = $('.js-captcha-image');
		if (!captchaUpdate.size())
			return;
		
		captchaUpdate.click(function() {
			captchaImage.trigger('click');
			return false;
		});
	})();
	
	// форма обратной связи — тип сообщения, рус. и каз. версии
	(function() {
		var
			form = $('.js-feedback-form'),
			feedbackType = $('.js-feedback-type', form),
			feedbackType1 = $('.js-feedback-type-1', form),
			feedbackType2 = $('.js-feedback-type-2', form);
		
		if (!form.size() || !feedbackType.size())
			return;
		
		feedbackType1.click(function() {
			feedbackType.parent().removeClass('active');
			feedbackType1.parent().addClass('active');
			$('#FeedbackMessage_type_0').prop('checked', true);
			$('#FeedbackMessage_type_1').prop('checked', false);
			return false;
		});
		feedbackType2.click(function() {
			feedbackType.parent().removeClass('active');
			feedbackType2.parent().addClass('active');
			$('#FeedbackMessage_type_0').prop('checked', false);
			$('#FeedbackMessage_type_1').prop('checked', true);
			return false;
		});
	})();
	
	// форма обратной связи — обращение к человеку, англ. версия
	(function() {
		var
			form = $('.js-feedback-form'),
			feedbackTitle = $('.js-feedback-title', form),
			feedbackTitle1 = $('.js-feedback-title-1', form),
			feedbackTitle2 = $('.js-feedback-title-2', form),
			feedbackTitle3 = $('.js-feedback-title-3', form);
		
		if (!form.size() || !feedbackTitle.size())
			return;
		
		feedbackTitle1.click(function() {
			feedbackTitle.parent().removeClass('active');
			feedbackTitle1.parent().addClass('active');
			$('#FeedbackMessage_title_0').prop('checked', true);
			$('#FeedbackMessage_title_1').prop('checked', false);
			$('#FeedbackMessage_title_2').prop('checked', false);
			return false;
		});
		feedbackTitle2.click(function() {
			feedbackTitle.parent().removeClass('active');
			feedbackTitle2.parent().addClass('active');
			$('#FeedbackMessage_title_0').prop('checked', false);
			$('#FeedbackMessage_title_1').prop('checked', true);
			$('#FeedbackMessage_title_2').prop('checked', false);
			return false;
		});
		feedbackTitle3.click(function() {
			feedbackTitle.parent().removeClass('active');
			feedbackTitle3.parent().addClass('active');
			$('#FeedbackMessage_title_0').prop('checked', false);
			$('#FeedbackMessage_title_1').prop('checked', false);
			$('#FeedbackMessage_title_2').prop('checked', true);
			return false;
		});
	})();
	
	// форма обратной связи — доволен ли производительностью, англ. версия
	(function() {
		var
			form = $('.js-feedback-form'),
			feedbackSatisfiedPerformance = $('.js-feedback-satisfied-performance', form),
			feedbackSatisfiedPerformance1 = $('.js-feedback-satisfied-performance-1', form),
			feedbackSatisfiedPerformance2 = $('.js-feedback-satisfied-performance-2', form);
		
		if (!form.size() || !feedbackSatisfiedPerformance.size())
			return;
		
		feedbackSatisfiedPerformance1.click(function() {
			feedbackSatisfiedPerformance.parent().removeClass('active');
			feedbackSatisfiedPerformance1.parent().addClass('active');
			$('#FeedbackMessage_satisfied_performance_0').prop('checked', true);
			$('#FeedbackMessage_satisfied_performance_1').prop('checked', false);
			return false;
		});
		feedbackSatisfiedPerformance2.click(function() {
			feedbackSatisfiedPerformance.parent().removeClass('active');
			feedbackSatisfiedPerformance2.parent().addClass('active');
			$('#FeedbackMessage_satisfied_performance_0').prop('checked', false);
			$('#FeedbackMessage_satisfied_performance_1').prop('checked', true);
			return false;
		});
	})();
	
	// форма обратной связи — доволен ли контентом, англ. версия
	(function() {
		var
			form = $('.js-feedback-form'),
			feedbackSatisfiedContent = $('.js-feedback-satisfied-content', form),
			feedbackSatisfiedContent1 = $('.js-feedback-satisfied-content-1', form),
			feedbackSatisfiedContent2 = $('.js-feedback-satisfied-content-2', form);
		
		if (!form.size() || !feedbackSatisfiedContent.size())
			return;
		
		feedbackSatisfiedContent1.click(function() {
			feedbackSatisfiedContent.parent().removeClass('active');
			feedbackSatisfiedContent1.parent().addClass('active');
			$('#FeedbackMessage_satisfied_content_0').prop('checked', true);
			$('#FeedbackMessage_satisfied_content_1').prop('checked', false);
			return false;
		});
		feedbackSatisfiedContent2.click(function() {
			feedbackSatisfiedContent.parent().removeClass('active');
			feedbackSatisfiedContent2.parent().addClass('active');
			$('#FeedbackMessage_satisfied_content_0').prop('checked', false);
			$('#FeedbackMessage_satisfied_content_1').prop('checked', true);
			return false;
		});
	})();
	
	// калькуляторы — переключалка
	(function() {
		var
			calcMenu = $('.js-calc-menu'),
			calcMenu1 = $('.js-calc-menu-1'), calcMenu2 = $('.js-calc-menu-2'), calcMenu3 = $('.js-calc-menu-3'),
			calcMain = $('.js-calc-main'),
			calcMain1 = $('.js-calc-main-1'), calcMain2 = $('.js-calc-main-2'), calcMain3 = $('.js-calc-main-3');
		
		if (!calcMenu.size())
			return false;
		
		// первый калькулятор
		calcMenu1.click(function() {
			calcMenu.parent().removeClass('active');
			calcMenu1.parent().addClass('active');
			
			calcMain.addClass('hidden');
			calcMain1.removeClass('hidden');
			
			refresh(calcMain1);
			window.location.hash = '#credit';
			
			return false;
		});
		
		// второй калькулятор
		calcMenu2.click(function() {
			calcMenu.parent().removeClass('active');
			calcMenu2.parent().addClass('active');
			
			calcMain.addClass('hidden');
			calcMain2.removeClass('hidden');
			
			refresh(calcMain2);
			window.location.hash = '#deposit';
			
			return false;
		});
		
		// третий калькулятор
		calcMenu3.click(function() {
			calcMenu.parent().removeClass('active');
			calcMenu3.parent().addClass('active');
			
			calcMain.addClass('hidden');
			calcMain3.removeClass('hidden');
			
			refresh(calcMain3);
			window.location.hash = '#plus-credit';
			
			return false;
		});
		
		// смотрим на якорь страницы
		if (window.location.hash == '#credit')
			calcMenu1.trigger('click');
		else if (window.location.hash == '#deposit')
			calcMenu2.trigger('click');
		else if (window.location.hash == '#plus-credit')
			calcMenu3.trigger('click');
		else
			window.location.hash = '#credit';
	})();
	
	// первый калькулятор — слайдер и расчет
	(function() {
		var
			calcMain1Form = $('.js-calc-main-1-form'),
			slider1 = $('.js-credit-slider-1'),
			slider2 = $('.js-credit-slider-2'),
			slider3 = $('.js-credit-slider-3'),
			slider1Value = $('.js-credit-slider-1-value'),
			slider2Value = $('.js-credit-slider-2-value'),
			slider3Value = $('.js-credit-slider-3-value'),
			resultValue = $('.js-credit-result');
		
		if (!calcMain1Form.size())
			return;
		
		calcMain1Form.submit(function() {
			calculate();
			return false;
		});
		
		// размер необходимого кредита
		$('div', slider1).slider({
			animate: false,
			min: 100,
			max: 99999999,
			step: 100,
			value: 6000000,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var max = $('div', slider1).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			},
			slide: function(e, ui) {
				//calculate();
				slider1Value.val(numberFormat(ui.value));
				
				var max = $('div', slider1).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			}
		});
		slider1Value.val(numberFormat($('div', slider1).slider('option', 'value')));
		slider1Value.bind('focus blur keydown keyup', function() {
			$('div', slider1).slider('option', 'value', numberParse($(this).val()));
			//calculate();
		});
		
		var max = $('div', slider1).slider('option', 'max');
		slider1.children('.js-gr').width(parseInt($('div', slider1).slider('option', 'value') / max * 331 + 6));
		
		// годовая процентная ставка
		$('div', slider2).slider({
			animate: false,
			min: 1,
			max: 99,
			step: 1,
			value: 15,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var max = $('div', slider2).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			},
			slide: function(e, ui) {
				//calculate();
				slider2Value.val(numberFormat(ui.value));
				
				var max = $('div', slider2).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			}
		});
		slider2Value.val(numberFormat($('div', slider2).slider('option', 'value')));
		slider2Value.bind('focus blur keydown keyup', function() {
			$('div', slider2).slider('option', 'value', numberParse($(this).val()));
			//calculate();
		});
		
		var max = $('div', slider2).slider('option', 'max');
		slider2.children('.js-gr').width(parseInt($('div', slider2).slider('option', 'value') / max * 331 + 6));
		
		// срок кредитования
		$('div', slider3).slider({
			animate: false,
			min: 1,
			max: 360,
			step: 1,
			value: 36,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var max = $('div', slider3).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			},
			slide: function(e, ui) {
				//calculate();
				slider3Value.val(numberFormat(ui.value));
				
				var max = $('div', slider3).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			}
		});
		slider3Value.val(numberFormat($('div', slider3).slider('option', 'value')));
		slider3Value.bind('focus blur keydown keyup', function() {
			$('div', slider3).slider('option', 'value', numberParse($(this).val()));
			//calculate();
		});
		
		var max = $('div', slider3).slider('option', 'max');
		slider3.children('.js-gr').width(parseInt($('div', slider3).slider('option', 'value') / max * 331 + 6));
		
		// сам расчет
		calculate();
		setInterval(calculate, 200);
		function calculate() {
			var
				sum = numberParse(slider1Value.val()),
				percent = numberParse(slider2Value.val()) / 1200,
				time = numberParse(slider3Value.val());
			
			var result = sum * percent / (1 - 1 / Math.pow(1 + percent, time));
			resultValue.text(numberFormat(parseInt(result)));
		}
	})();
	
	// второй калькулятор — слайдер и расчет
	(function() {
		var
			calcMain2Form = $('.js-calc-main-2-form');
			slider = $('.js-deposit-slider'), sliderValue = $('.js-deposit-slider-value'),
			resultValue = $('.js-deposit-result'), resultTable = $('.js-deposit-result-table'),
			type1 = $('.js-deposit-type-1'), type2 = $('.js-deposit-type-2'), type3 = $('.js-deposit-type-3'), type4 = $('.js-deposit-type-4'),
			currency1 = $('.js-deposit-currency-1'), currency2 = $('.js-deposit-currency-2'), currency3 = $('.js-deposit-currency-3'),
			rate = $('.js-deposit-rate'), effective = $('.js-deposit-effective'),
			periods = $('.js-deposit-periods'), period = $('.js-deposit-period');
		
		if (!calcMain2Form.size())
			return;
		
		// сумма вклада
		$('div', slider).slider({
			animate: false,
			min: 0,
			max: 1000000,
			step: 1000,
			value: 0,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var max = $('div', slider).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			},
			slide: function(e, ui) {
				calculate();
				sliderValue.val(numberFormat(ui.value));
				
				var max = $('div', slider).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			}
		});
		sliderValue.val(numberFormat($('div', slider).slider('option', 'value')));
		sliderValue.bind('focus blur keydown keyup', function() {
			$('div', slider).slider('option', 'value', numberParse($(this).val()));
			calculate();
		});
		
		var max = $('div', slider).slider('option', 'max');
		slider.children('.js-gr').width(parseInt($('div', slider).slider('option', 'value') / max * 331 + 6));
		
		// чек-группы
		$('.js-check-group').delegate('.js-check-group-item', 'click', function() {
			$(this).parents('.js-check-group').children().removeClass('active');
			$(this).parent().addClass('active');
			calculate();
			return false;
		});
		
		// константы
		var data = {
			// 1, народный стандартный
			1: {
				1: {
					rate: {'kzt': 4.4, 'usd': 1.5, 'eur': 1},
					effective: {'kzt': 4.6, 'usd': 1.5, 'eur': 1}
				},
				3: {
					rate: {'kzt': 7, 'usd': 2, 'eur': 1.75},
					effective: {'kzt': 7.3, 'usd': 2, 'eur': 1.8}
				},
				6: {
					rate: {'kzt': 7.7, 'usd': 4.55, 'eur': 3.5},
					effective: {'kzt': 8.1, 'usd': 4.7, 'eur': 3.6}
				},
				9: {
					rate: {'kzt': 7.9, 'usd': 4.7, 'eur': 3.7},
					effective: {'kzt': 8.3, 'usd': 4.9, 'eur': 3.8}
				},
				12: {
					rate: {'kzt': 8, 'usd': 4.8, 'eur': 3.8},
					effective: {'kzt': 8.4, 'usd': 5, 'eur': 3.9}
				},
				18: {
					rate: {'kzt': 8, 'usd': 4.8, 'eur': 3.8},
					effective: {'kzt': 8.4, 'usd': 5, 'eur': 3.9}
				},
				24: {
					rate: {'kzt': 8, 'usd': 4.8, 'eur': 3.8},
					effective: {'kzt': 8.4, 'usd': 5, 'eur': 3.9}
				},
				30: {
					rate: {'kzt': 8, 'usd': 4.8, 'eur': 3.8},
					effective: {'kzt': 8.4, 'usd': 5, 'eur': 3.9}
				},
				36: {
					rate: {'kzt': 8, 'usd': 4.8, 'eur': 3.8},
					effective: {'kzt': 8.4, 'usd': 5, 'eur': 3.9}
				}
			},
			// 2, народный пенсионный
			2: {
				6: {
					rate: {'kzt': 5.5, 'usd': 4.2, 'eur': 3.2},
					effective: {'kzt': 5.7, 'usd': 4.3, 'eur': 3.3} 
				},
				12: {
					rate: {'kzt': 8, 'usd': 4.7, 'eur': 3.7},
					effective: {'kzt': 8.4, 'usd': 4.9, 'eur': 3.8}
				}
			},
			// 3, halyk универсальный
			3: {
				9: {
					rate: {'kzt': 7, 'usd': 4, 'eur': 3.5},
					effective: {'kzt': 7.3, 'usd': 4.1, 'eur': 3.6}
				},
				12: {
					rate: {'kzt': 7, 'usd': 0, 'eur': 0},
					effective: {'kzt': 7.3, 'usd': 0, 'eur': 0}
				}
			},
			// 4, halyk детский
			4: {
				12: {
					rate: {'kzt': 7, 'usd': 4.5, 'eur': 3.5},
					effective: {'kzt': 7.1, 'usd': 4.6, 'eur': 3.5}
				},
				24: {
					rate: {'kzt': 7, 'usd': 4.5, 'eur': 3.5},
					effective: {'kzt': 7.1, 'usd': 4.6, 'eur': 3.5}
				},
				36: {
					rate: {'kzt': 7, 'usd': 4.5, 'eur': 3.5},
					effective: {'kzt': 7.1, 'usd': 4.6, 'eur': 3.5}
				},
				48: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				60: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				72: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				84: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				96: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				108: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				},
				120: {
					rate: {'kzt': 6, 'usd': 4, 'eur': 3},
					effective: {'kzt': 6.1, 'usd': 4.1, 'eur': 3}
				}
			}
		};
		
		// вспомогательное
		var depositTypeNew = -1, depositTypeOld = 0;
		
		// сам расчет
		calculate();
		setInterval(calculate, 500);
		function calculate() {
			// результат вычислений
			var result = 0;
			
			// тип депозита
			// 1, народный стандартный
			// 2, народный пенсионный
			// 3, halyk универсальный
			// 4, halyk детский
			var depositType = 0;
			if (type1.parent().hasClass('active'))
				depositType = 1;
			if (type2.parent().hasClass('active'))
				depositType = 2;
			if (type3.parent().hasClass('active'))
				depositType = 3;
			if (type4.parent().hasClass('active'))
				depositType = 4;
			
			depositTypeOld = depositTypeNew;
			depositTypeNew = depositType;
			
			// меняем сроки вклада в зависимости от типа депозита
			if (depositTypeOld != depositTypeNew) {
				var periodsHtml='', firstIteration = true;
				for (var i in data[depositType]) {
					periodsHtml += '<li class="';
					if (firstIteration) {
						firstIteration = false;
						periodsHtml += 'active';
					}
					periodsHtml += '"><a href="#" class="js-check-group-item js-deposit-period" data-month="';
					periodsHtml += i;
					periodsHtml += '"><span class="hold"><span class="text">';
					periodsHtml += i;
					periodsHtml += '</span></span></a></li>';
				}
				periods.html(periodsHtml);
			}
			
			// валюта
			var currencyType = 0;
			if (currency1.parent().hasClass('active'))
				currencyType = 'usd';
			if (currency2.parent().hasClass('active'))
				currencyType = 'kzt';
			if (currency3.parent().hasClass('active'))
				currencyType = 'eur';
			
			// Halyk Универсальный, 12 месяцев и только тенге
			$('a[data-month=12]', periods).parent().show();
			if (depositType == 3 && (currencyType == 'usd' || currencyType == 'eur'))
				$('a[data-month=12]', periods).parent().hide();
				
			// месяц выбранный
			var month = $('.js-deposit-periods li.active a').data('month');
			
			// меняем показатели в зависимости от типа депозита, типа срока и типа валюты
			rate.text(data[depositType][month].rate[currencyType]);
			effective.text(data[depositType][month].effective[currencyType]);
			var rateValue = data[depositType][month].rate[currencyType] / 100;
			
			// считаем
			var
				currentContrib = numberParse(sliderValue.val()),
				startContrib = currentContrib,
				tableData = [];
			
			for (var i = 1; i <= Math.ceil(month); i++) {
				var dayIncome = currentContrib * rateValue / 365;
				dayIncome *= 30.4;
				currentContrib = dayIncome + 1 * currentContrib;
				
				tableData.push(dayIncome.toFixed(2));
			}
			
			// выводим результат обычный
			result = parseInt(currentContrib - startContrib);
			resultValue.text(numberFormat(result));
			
			// выводим таблицу
			if (depositType == 2)
				resultTable.hide();
			else {
				resultTable.show();
				resultTableHtml='';
				
				// шапка
				resultTableHtml+='<thead><tr><td>Срок<br/>(мес)</td><td>Вознаграждение<br/>(';
				if (currencyType == 'usd')
					resultTableHtml+='доллары США';
				if (currencyType == 'eur')
					resultTableHtml+='евро';
				if (currencyType == 'kzt')
					resultTableHtml+='тенге';
				resultTableHtml+=')</td></tr></thead><tbody>';
				
				var iStep = 1;
				if (i > 20)
					iStep = 2;
				if (i > 40)
					iStep = 3;
				if (i > 50)
					iStep = 5;
				if (i > 60)
					iStep = 7;
				
				for (var i = 0; i < tableData.length; i += iStep) {
					resultTableHtml += '<tr><td>';
					resultTableHtml += i + 1;
					resultTableHtml += '</td><td>';
					resultTableHtml += tableData[i];
					resultTableHtml += '</td></tr>';
				}
				
				resultTableHtml+='</tbody>';
				resultTable.html(resultTableHtml);
			}
		}
	})();
	
	// третий калькулятор — слайдер и расчет
	(function() {
		var
			calcMain3Form = $('.js-calc-main-3-form'),
			slider1 = $('.js-plus-credit-slider-1'),
			slider2 = $('.js-plus-credit-slider-2'),
			slider1Value = $('.js-plus-credit-slider-1-value'),
			slider2Value = $('.js-plus-credit-slider-2-value'),
			radioButton = $('.js-plus-credit-radio-button'),
			radioButton1 = $('.js-plus-credit-radio-button-1'), radioButton2 = $('.js-plus-credit-radio-button-2'),
			resultValue = $('.js-plus-credit-result'),
			resultWarning1 = $('.js-plus-credit-warning-1'), resultWarning2 = $('.js-plus-credit-warning-2');
		
		if (!calcMain3Form.size())
			return;
		
		calcMain3Form.submit(function() {
			calculate();
			return false;
		});
		
		// среднемесячный доход
		$('div', slider1).slider({
			animate: false,
			min: 60000,
			max: 1000000,
			step: 1000,
			value: 150000,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var
					max = $('div', slider1).slider('option', 'max'),
					min = $('div', slider1).slider('option', 'min');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / (max - min) * 331 - 6));
			},
			slide: function(e, ui) {
				calculate();
				slider1Value.val(numberFormat(ui.value));
				
				var
					max = $('div', slider1).slider('option', 'max'),
					min = $('div', slider1).slider('option', 'min');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / (max - min) * 331 - 6));
			}
		});
		slider1Value.val(numberFormat($('div', slider1).slider('option', 'value')));
		slider1Value.bind('focus blur keydown keyup', function() {
			$('div', slider1).slider('option', 'value', numberParse($(this).val()));
			calculate();
		});
		
		var
			max = $('div', slider1).slider('option', 'max'),
			min = $('div', slider1).slider('option', 'min');
		slider1.children('.js-gr').width(parseInt($('div', slider1).slider('option', 'value') / (max - min) * 331 - 6));
		
		// сумма ежемесячных платежей
		$('div', slider2).slider({
			animate: false,
			min: 0,
			max: 1000000,
			step: 1000,
			value: 0,
			start: function(e, ui) { $('html').addClass('drag-cursor'); },
			stop: function(e, ui) { $('html').removeClass('drag-cursor'); },
			change: function(e, ui) {
				var max = $('div', slider2).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			},
			slide: function(e, ui) {
				calculate();
				slider2Value.val(numberFormat(ui.value));
				
				var max = $('div', slider2).slider('option', 'max');
				$(ui.handle).parent().parent().children('.js-gr').width(parseInt(ui.value / max * 331 + 6));
			}
		});
		slider2Value.val(numberFormat($('div', slider2).slider('option', 'value')));
		slider2Value.bind('focus blur keydown keyup', function() {
			$('div', slider2).slider('option', 'value', numberParse($(this).val()));
			calculate();
		});
		
		var max = $('div', slider2).slider('option', 'max');
		slider2.children('.js-gr').width(parseInt($('div', slider2).slider('option', 'value') / max * 331 + 6));
		
		// есть ли обязательства в других БВУ
		radioButton1.click(function() {
			radioButton.parent().removeClass('active');
			radioButton1.parent().addClass('active');
			calculate();
			return false;
		});
		radioButton2.click(function() {
			radioButton.parent().removeClass('active');
			radioButton2.parent().addClass('active');
			calculate();
			return false;
		});
		
		// сам расчет
		calculate();
		setInterval(calculate, 500);
		function calculate() {
			resultWarning1.hide();
			resultWarning2.hide();
			
			var
				income = numberParse(slider1Value.val());
				payment = numberParse(slider2Value.val());
				other = radioButton1.parent().hasClass('active') ? 0.2 : 0.5;
			
			if (income < 60000) {
				result = 0;
				resultWarning2.show();
			}
			else {
				var coef = (income * other - payment) / (income * 0.1);
				if (coef > 4)
					coef = 4;
				
				var result = income * coef;
				if (result > 1000000)
					result = 1000000;
				
				// округляем
				result = Math.floor(result / 10000) * 10000;
				
				// проверка конечного результата
				if (result < 100000) {
					result = 0;
					resultWarning1.show();
				}
			}
			
			resultValue.text(numberFormat(result));
		}
	})();
	
	// курсы валют — график
	(function() {
		var
			graph1 = $('.js-rates-graph-1'), graph2 = $('.js-rates-graph-2'),
			tooltip = $('.js-currency-tooltip'),
			graphType = $('.js-rates-graph-type'),
			graphType1 = $('.js-rates-graph-type-1'),
			graphType2 = $('.js-rates-graph-type-2'),
			graphCurrency = $('.js-rates-graph-currency'),
			graphCurrency1 = $('.js-rates-graph-currency-1'),
			graphCurrency2 = $('.js-rates-graph-currency-2'),
			graphCurrency3 = $('.js-rates-graph-currency-3');
		
		if (!graph1.size() || !graph2.size())
			return;
		
		// переключалка первая
		graphType1.click(function() {
			graphType.parent().removeClass('active');
			graphType1.parent().addClass('active');
			refreshGraphs();
			return false;
		});
		graphType2.click(function() {
			graphType.parent().removeClass('active');
			graphType2.parent().addClass('active');
			refreshGraphs();
			return false;
		});
		
		// переключалка вторая
		graphCurrency1.click(function() {
			graphCurrency.parent().removeClass('active');
			graphCurrency1.parent().addClass('active');
			refreshGraphs();
			return false;
		});
		graphCurrency2.click(function() {
			graphCurrency.parent().removeClass('active');
			graphCurrency2.parent().addClass('active');
			refreshGraphs();
			return false;
		});
		graphCurrency3.click(function() {
			graphCurrency.parent().removeClass('active');
			graphCurrency3.parent().addClass('active');
			refreshGraphs();
			return false;
		});
		
		var data = [];
		
		function getDate(ts) {
			var dt = new Date(ts);
			var monthNames = [];
			if (lang == 'en')
				monthNames = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
			else
				monthNames = ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'];
			return dt.getDate() + ' ' + monthNames[dt.getMonth()] + ' ' + dt.getFullYear();
		}
		
		// первый график
		var plot1Options = {
			xaxis: {
				mode: 'time',
				monthNames:
					(lang == 'en' ? ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'] : ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек']),
				timeformat: '%d %b %y',
				minTickSize: [1, 'day'],
				labelWidth: '40'
			},
			selection: { mode: 'x' },
			lines: { show: true },
			points: { show: true },
			grid: { hoverable: true, clickable: true }
		};
		var plot1 = $.plot(graph1, [data], plot1Options);
		
		// выбор отрезка
		graph1.bind('plotselected', function(e, range) {
			plot1 = $.plot(
				graph1,
				[data],
				$.extend(true, {}, plot1Options, { xaxis: { min: range.xaxis.from, max: range.xaxis.to }})
			);
			plot2.setSelection(range, true);
		});
		
		// ховер по точке на графике
		graph1.bind('plothover', function(e, position, item) {
			if(item) {
				tooltip.css({
					top: item.pageY + 'px',
					left: item.pageX + 'px'
				});
				tooltip.show();
				tooltip.html(item.datapoint[1] + '<br/>' + getDate(item.datapoint[0]));
			}
			else
				tooltip.hide();
		});
		
		// второй график
		var plot2Options = {
			lines: { show: true, lineWidth: 1 },
			shadowSize: 0,
			xaxis: { ticks: [], mode: 'time' },
			yaxis: { ticks: [] },
			selection: { mode: 'x' }
		};
		var plot2 = $.plot(graph2, [], plot2Options);
		
		// выбор отрезка
		$(graph2).bind('plotselected', function(r, range) {
			plot1.setSelection(range);
		});
		
		// обновление графиков
		refreshGraphs();
		function refreshGraphs() {
			$.ajax({
				url: ajaxGraphUrl,
				data: { type: getType(), currency: getCurrency(), YII_CSRF_TOKEN: YII_CSRF_TOKEN },
				type: 'POST',
				dataType: 'json',
				success: function(dataNew) {
					data = dataNew;
					
					plot1.setData([data]);
					plot1.setupGrid();
					plot1.draw();
					
					plot2.setData([data]);
					plot2.setupGrid();
					plot2.draw();
				}
			});
		}
		
		// тип графика
		function getType() {
			if(graphType1.parent().hasClass('active'))
				return 'buy';
			if(graphType2.parent().hasClass('active'))
				return 'sell';
			return 'buy';
		}
		
		// валюта графика
		function getCurrency() {
			if(graphCurrency1.parent().hasClass('active'))
				return 'usd';
			if(graphCurrency2.parent().hasClass('active'))
				return 'eur';
			if(graphCurrency3.parent().hasClass('active'))
				return 'rur';
			return 'usd';
		}
	})();
	
	// переключалка тарифов
	(function() {
		var
			tariff = $('.js-tariff'),
			tariffRetail = $('.js-tariff-retail'),
			tariffCorporate = $('.js-tariff-corporate'),
			tariffBiz = $('.js-tariff-biz'),
			tariffButton = $('.js-tariff-button'),
			tariffButtonRetail = $('.js-tariff-button-retail'),
			tariffButtonCorporate = $('.js-tariff-button-corporate'),
			tariffButtonBiz = $('.js-tariff-button-biz');
		
		if (!tariff.size() || !tariffButton.size())
			return;
		
		// включаем частным лицам
		tariffButtonRetail.click(function() {
			tariffButton.removeClass('tariff-button-active');
			tariffButtonRetail.addClass('tariff-button-active');
			
			tariff.removeClass('hidden');
			tariffCorporate.addClass('hidden');
			tariffBiz.addClass('hidden');
			
			window.location.hash = '#retail';
			return false;
		});
		// включаем корпоративным лицам
		tariffButtonCorporate.click(function() {
			tariffButton.removeClass('tariff-button-active');
			tariffButtonCorporate.addClass('tariff-button-active');
			
			tariff.removeClass('hidden');
			tariffRetail.addClass('hidden');
			tariffBiz.addClass('hidden');
			
			window.location.hash = '#corporate';
			return false;
		});
		// включаем МСБ
		tariffButtonBiz.click(function() {
			tariffButton.removeClass('tariff-button-active');
			tariffButtonBiz.addClass('tariff-button-active');
			
			tariff.removeClass('hidden');
			tariffRetail.addClass('hidden');
			tariffCorporate.addClass('hidden');
			
			window.location.hash = '#biz';
			return false;
		});
		
		// смотрим на якорь
		if (window.location.hash == '#retail')
			tariffButtonRetail.trigger('click');
		else if (window.location.hash == '#corporate')
			tariffButtonCorporate.trigger('click');
		else if (window.location.hash == '#biz')
			tariffButtonBiz.trigger('click');
		else
			window.location.hash = '#retail';
	})();
	
	// платежные карточки — подробнее
	(function() {
		var contentOpen = $('.js-payment-cards-content-open'), content = $('.js-payment-cards-content');
		if (!contentOpen.size() || !content.size())
			return;
		
		contentOpen.click(function() {
			content.show();
			contentOpen.hide();
			return false;
		});
	})();
	
	// курсы валют — таблица/список
	(function() {
		var
			currencyListForm = $('.js-currency-list-form'),
			currencyListTable = $('.js-currency-list-table'),
			currencyListData = $('.js-currency-list-data'),
			currencyListStart = $('.js-currency-list-start'),
			currencyListEnd = $('.js-currency-list-end'),
			currencyListType = $('.js-currency-list-type');
		if (!currencyListForm.size() || !currencyListTable.size() || !currencyListData.size())
			return;
		
		$('tr td', currencyListTable).live('click', function() {
			$(this).parent().toggleClass('selected');
		});
		
		currencyListForm.submit(function() {
			currencyListData.html('<tr><td colspan="4"><p class="loading">Загрузка данных...</p></td></tr>');
			currencyListTable.show();
			
			var type = 0;
			if (currencyListType.filter('[value=1]').prop('checked'))
				type = 1;
			if (currencyListType.filter('[value=2]').prop('checked'))
				type = 2;
			
			$.ajax({
				url: ajaxCurrencyListUrl,
				data: {
					start: currencyListStart.val(),
					end: currencyListEnd.val(),
					type: type,
					YII_CSRF_TOKEN: YII_CSRF_TOKEN
				},
				type: 'POST',
				dataType: 'html',
				success: function(html) {
					currencyListData.html(html);
				}
			});
			
			return false;
		});
	})();
});

