	function Preload() {
		var pic = new Array();
		pic[0] = 'common/ub2/img/bp/knowing-on.gif';
		pic[1] = 'common/ub2/img/bp/minibank-on.gif';
		pic[2] = 'common/ub2/img/bp/progress-on.gif';
		pic[3] = 'common/ub2/img/bp/leader-on.gif';
		pic[4] = 'common/ub2/img/bp/partner-on.gif';
		pic[5] = 'common/ub2/img/bp/lux-on.gif';
		var temp=pic;
		var arImages = new Array();
		for(x=0; x < temp.length; x++) {
			arImages[x]=new Image();
			arImages[x].src=pic[x];
		}
}
$(function(){
	$('#top .buy-yellow img, #top .airplan img,.form-angle img').ifixpng();
});

/**
 * K
 */
var url, city;

$(function() {
	var timer;
	
	$('ul.red-menu li.consultant a').hover(function() {
		clearTimeout(timer);
		$(this).siblings().show();
	}, function() {
		var that = this;
		timer = setTimeout(function() {
			$(that).siblings().hide();
		}, 1500);
	});
	
	$('ul.red-menu li.consultant span.description').hover(function() {
		clearTimeout(timer);
	}, function() {
		var that = this;
		timer = setTimeout(function() {
			$(that).hide();
		}, 1500);
	});
	
	/*  Калькулятор
	 * 
	 * Для всех:
	 * 
	 * Этот файл, html-файлы калькулятора, заявки и формы заявки переведены в UTF-8, 
	 * ибо возникли проблемы с перекодировкой кириллицы при перебросе параметров калькулятора в форму заявки и обратно.
	 * Более конкретно, decodeURIComponent() работает с UTF-8, а в адресной строке текст кодировался в Windows-1251 и его было не вытащить по-быстрому.
	 * Весьма желательно сохранять кодировку этих файлов, если конечно у вас не найдется времени на решение указанной проблемы.
	 * 
	 * 
	 * Для менеджеров:
	 *
	 * Цены и группировка по городам описаны ниже, где-то начиная со строк 340-345. Формат описан там же. 
	 * Самостоятельно можно изменять цены и изменять список городов (не забывая добавлять соот. пункты в HTML).
	 * С добавлением новых контролов и логикой доступности шагов и контролов лучше справятся разработчики.
	 * 
	 * 
	 * Для разработчиков:
	 * 
	 * В первом шаге, несмотря на обилие кода, работает все достаточно просто. Cначала все шаги делаются недоступными (c.init). 
	 * Затем (в нижней части кода) навешиваются обработчики, запускаемые при смене значений полей.
	 * Указанные обработчики запускают функции (c.setStepsAvailability, c.setControlsAvailabilityAndValues), которые изменяют доступность шагов и контролов, и функцию пересчета результата (c.calculate).
	 * Функция пересчета результата получает значение всех заполненных и доступных полей, ищет в объекте "c.config" значение цены для каждого, складывает все вместе и отображает результат. 
	 * Большинство остальных функций - вспомогательные, написаны для снижения дублируемости кода.
	 * Второй шаг сделан не особо элегантно, на скорую руку: проверяется нахождение в URL определенного параметра, при его наличии выводится соот. текст.
	 */
	/*------------------------------------------------------------------------------------------------------------------- */
	formatPrice = function(price) {
		if (price) {
			var formatted = '', thousandsCount = 0, num = '', price = price.toString();
		
			for (var i = price.length; i > 0; i--) {
				num = price.substr(i - 1, 1);
				thousandsCount++;
				if (thousandsCount % 3 == 0) {
					num = ' ' + num;
				} 
				formatted = num + formatted;
			}
			formatted = $.trim(formatted);
			
			return formatted;
		}
	}
	
	if ($('#calculator').length) {
		$('<img class="bottom-corner" src="/common/ub2/img/bp/k/calculator-bottom.png" alt="" />').appendTo('#calculator');
		
		$('#calculator span.result.one-time, #calculator span.result.total').hide();
		$('#calculator form').submit(function() {
			$(':disabled', this).each(function() {
				if ($(this).is('input') ) {
					$(this).removeAttr('disabled');
				}
			})
		});

		$('#price0-1, #price0-2, #price1, #price2, #price3, #price4, #price5, #price6, #price7').hide();
		
		(function() {
			var c = {
				container: $('#calculator')
			};
			c.steps = $('ol li', c.container);
			c.controls = $('input, select', c.steps);
			c.form = $('form', c.container);
			c.resultContainer = $('span.result.monthly span.amount', c.container);
			c.resultOneTimeContainer = $('span.result.one-time', c.container);
			c.resultOneTimeInput = $('input[name="one-time-total"]', c.container);
			c.resultTotalContainer = $('span.result.total', c.container);
			c.resultTotalInput = $('input[name="total"]', c.container);
			c.finishControl = $('div.submit input', c.container);
			/**
			 * Подготовка к работе
			 */
			c.init = function() {
				var url = $(document).url();
				
				c.resetOptions();
				c.setInitialStepsAvailability();
				c.finishControl.attr('disabled', 'disabled');
				
				/* пытаемся восстановить значения из url */
				if (url.param('city') ) {
					$.each(url.params, function(k, v) {
						if (v == 1 || v == 0) {
							c.getControl(k, v).attr('checked', 'checked').trigger('change');
						} else {
							c.getControl(k).val(decodeURIComponent(v).replace(/\+/gi, ' ') ).trigger('change');
						}
					});
				}
			}
			
			/**
			 * Делаем все шаги, за исключением первого, недоступными
			 */
			c.setInitialStepsAvailability = function() {
				for (var i = 1; i < c.steps.length; i++) {
					c.disableStep(i);
				}
			}
			
			/**
			 * Некоторые браузеры запоминают выбранные значения в формах и восстанавливают их при перезагрузке или повторном визите. Нам этого не нужно. 
			 */
			c.resetOptions = function() {
				c.form[0].reset();
			}
			
			/**
			 * Делает указанный шаг и его контролы недоступными
			 * @param {Integer} step
			 */
			c.disableStep = function(step) {
				c.steps.eq(step).addClass('disabled').find('input, select').attr('disabled', 'disabled').trigger('change.calculatorcs');
			}
			
			/**
			 * Делает указанный шаг и его контролы доступными
			 * @param {Integer} step
			 */
			c.enableStep = function(step) {
				c.steps.eq(step).removeClass('disabled').find('input').not('[name=enable-docs-el-inner]').not('[name="enable-banking"]').not('[name="enable-docs-el"]').not('[name="enable-docs-std"]').removeAttr('disabled');
				$('div.checkbox-select', c.steps.eq(step) ).each(function() {
					if ($('input', this).is(':checked') && $('input', this).is(':enabled') ) {
						$('select', this).removeAttr('disabled');
						$('input', this).trigger('change.calculatorcs');
					}
				});
			}
			
			/**
			 * Возвращает контрол (контролы) по заданному имени (именам)
			 * @param {String} name
			 */
			c.getControl = function(name, value) {
				var result;
				if (typeof name != 'string') {
					var filter = [];
					$.each(name, function(k, v) {
						filter.push('[name="' + v + '"]');
					});
					filter = filter.join(',');
					result = c.controls.filter(filter);
				} else {
					result = c.controls.filter('[name="' + name + '"]');
				}
				if (value) {
					result = result.filter('[value="' + value + '"]');
				}
				return result;
			};
			
			/**
			 * Возвращает некоторые свойства контрола
			 * @param {Object} control
			 */
			c.getControlProps = function(control) {
				return {
					step: c.steps.index(control.parents('li:first') ),
					value: control.val(),
					name: control.attr('name'),
					isSet: control.is(':checked') || control.is('select') && control.val() != 'none'
				}
			}
			
			/**
			 * Управление доступностью шагов
			 * @param {Object} control
			 */
			c.setStepsAvailability = function(control) {
				var ctrl = c.getControlProps(control);
				switch (ctrl.step) {
					case 0:
						if (ctrl.value != 'none') {
							c.enableStep(1);
							$('#price0-1').show();
						}
					break;
					case 1:
						if (c.getControl('remote').is(':checked') ) {
							c.enableStep(2);
						}
					break;
					case 2:
						if (c.getControl('enable-docs-std').is(':checked') && c.getControl('enable-docs-std').is(':enabled') && c.getControl('docs-std-limit').val() != 'none' || c.getControl('enable-docs-el').is(':checked') && c.getControl('enable-docs-el').is(':enabled') && c.getControl('docs-el-limit').val() != 'none') {
							c.enableStep(3);
							c.enableStep(4);
							c.enableStep(5);
							$('#price5, #price6, #price7').each(function() {
								if ($(this).text() != 'undefined руб.') {
									$(this).show()
								}
							});
							c.finishControl.removeAttr('disabled');
						} else {
							if ( (!c.getControl('enable-docs-std').is(':checked') ) && (!c.getControl('enable-docs-el').is(':checked') )) {
							//	c.disableStep(2);
							}
							c.disableStep(3);
							c.disableStep(4);
							c.disableStep(5);
							$('#price5, #price6, #price7').hide();
							c.finishControl.attr('disabled', 'disabled');
						}
					break;
				}
			}
			
			/**
			 * Управление доступностью контролов
			 * @param {Object} control
			 */
			c.setControlsAvailabilityAndValues = function(control) {
				var ctrl = c.getControlProps(control);
				switch (ctrl.name) {
					case 'city':
						c.getControl('open-account-rub').attr('checked', 'checked').trigger('change');
					break;
					case 'remote':
						var linkedControls = c.getControl(['enable-docs-std']);
						if (ctrl.value == 1) {
							if (!c.getControl('enable-docs-el').is(':checked') ) {
								linkedControls.attr('disabled', 'disabled');
								c.getControl('docs-std-limit').attr('disabled', 'disabled');
							} else {
							//	linkedControls.removeAttr('disabled');
							}
							c.getControl(['enable-docs-el']).removeAttr('disabled');
							c.getControl(['enable-docs-el-inner']).attr('checked', 'checked');
							if (c.getControl('enable-docs-el').is(':checked') ) {
								c.getControl('docs-el-limit').removeAttr('disabled');
							}
							c.getControl('enable-banking').removeAttr('disabled');
							
							c.getControl(['enable-banking']).attr('checked', 'checked');	
							c.resultOneTimeContainer.show();
							c.resultTotalContainer.show();
							
							c.getControl('enable-docs-el').attr('checked', 'checked').trigger('change');
							
							document.getElementById('price2').innerHTML = c.cost['remote'][1] + ' руб.';
							$('#price2, #price4, #price0-2').show();
							$('#price1').hide();
						} else if (ctrl.value == 0) {
							linkedControls.removeAttr('disabled');
							c.getControl(['enable-docs-el', 'docs-el-limit']).attr('disabled', 'disabled').trigger('change.calculatorcs');
							c.getControl(['enable-docs-el']).removeAttr('checked');
							c.getControl(['enable-docs-el-inner']).removeAttr('checked');
							
							c.getControl('enable-banking').removeAttr('checked', 'checked').trigger('change');
							c.getControl('enable-banking').attr('disabled', 'disabled');
							c.resultOneTimeContainer.hide();
							c.resultTotalContainer.hide();
							
							c.getControl('enable-docs-std').attr('checked', 'checked').trigger('change');
							
							document.getElementById('price1').innerHTML = c.cost['remote'][0] + ' руб.';
							$('#price1, #price3').show();
							$('#price2, #price4, #price0-2').hide();
						}
					break;
					case 'enable-banking':
						var linkedControls = c.getControl('remote');
						if (ctrl.isSet) {
							
							c.resultOneTimeContainer.show();
							c.resultTotalContainer.show();
						} else {
							c.getControl('remote').filter('[value=0]').removeAttr('disabled');
							
							c.resultOneTimeContainer.hide();
							if (! c.getControl('business-package').is(':checked') ) {
								c.resultTotalContainer.hide();
							}
						}
					break;
					case 'business-package':
						if (ctrl.isSet) {
							c.resultTotalContainer.show();
							c.resultTotalContainer.find('span.title').text('Итоговая сумма платежа за 7 месяцев обслуживания (с учетом скидки)');
						} else {
							if (! c.getControl('enable-banking').is(':checked') ) {
								c.resultTotalContainer.hide();
							}
							c.resultTotalContainer.find('span.title').text('Итоговая сумма платежа');
						}
					break;
					case 'enable-docs-std':
						if (!ctrl.isSet) {
							c.getControl('remote').filter('[value=1]').removeAttr('disabled');
							$('#price3').hide();
						} else {
							$('#price3').show();							
						}
					break;
					case 'enable-giving-out': 
						if (!ctrl.isSet) {
							$('#price5').hide();
						} else {
							$('#price5').show();							
						}
					break;
					case 'enable-reception-std': 
						if (!ctrl.isSet) {
							$('#price6').hide();
						} else {
							$('#price6').show();							
						}
					break;
					case 'enable-reception-encashed': 
						if (!ctrl.isSet) {
							$('#price7').hide();
						} else {
							$('#price7').show();							
						}
					break;
					case 'enable-docs-el':
						var linkedControls = c.getControl('docs-el-limit');
						if (ctrl.isSet) {
							linkedControls.removeAttr('disabled');
							c.getControl('enable-docs-std').removeAttr('disabled');
							if (c.getControl('enable-docs-std').is(':checked') ) {
								c.getControl('docs-std-limit').removeAttr('disabled');
							}
							$('#price4').show();
						} else {
							linkedControls.attr('disabled', 'disabled');
							$('#price4').hide();
						}
					break;
					case 'docs-el-limit':
						if (ctrl.isSet) {
							c.getControl('enable-docs-std').removeAttr('disabled');
							if (c.getControl('enable-docs-std').is(':checked') ) {
								c.getControl('docs-std-limit').removeAttr('disabled');
							}
						} else {
							c.getControl(['enable-docs-std', 'docs-std-limit']).attr('disabled', 'disabled');
						}
					break;
					case 'open-account-rub':
						if (ctrl.isSet) {
							$('#price0-1').show();
						} else {
							$('#price0-1').hide();
						}
					break;
				}
			}
			
			/**
			 * Получение значений всех контролов
			 */
			c.getOptions = function() {
				var options = {};
				c.controls.each(function() {
					if ($(this).is(':enabled') && ($(this).is('select') && $(this).val() != 'none' || $(this).is('input') && $(this).is(':checked') ) ) {
						options[$(this).attr('name')] = $(this).val();
					}
				});
				return options;
			}
			
			/**
			 * Подсчет итоговой стоимости
			 */
			c.calculate = function() {
				var options = c.getOptions(), total = 0, oneTimeTotal = 0;

				document.getElementById('price3').innerHTML = formatPrice(c.cost['docs-std-limit'][options['docs-std-limit']]) + ' руб.';
				document.getElementById('price4').innerHTML = formatPrice(c.cost['docs-el-limit'][options['docs-el-limit']]) + ' руб.';
				document.getElementById('price5').innerHTML = formatPrice(c.cost['giving-out-limit'][options['giving-out-limit']]) + ' руб.';
				document.getElementById('price6').innerHTML = formatPrice(c.cost['reception-std-limit'][options['reception-std-limit']]) + ' руб.';
				document.getElementById('price7').innerHTML = formatPrice(c.cost['reception-encashed-limit'][options['reception-encashed-limit']]) + ' руб.';
				
				if (options['docs-std-limit']) {
					$('#price-per-item-3').text('x ' + c.cost['docs-std-limit'][options['docs-std-limit'] ] / parseInt(options['docs-std-limit']) + ' руб.');
				} else {
					$('#price-per-item-3').text('');
				}
				
				if (options['docs-el-limit']) {
					$('#price-per-item-4').text('x ' + c.cost['docs-el-limit'][options['docs-el-limit'] ] / parseInt(options['docs-el-limit']) + ' руб.');
				} else {
					$('#price-per-item-4').text('');
				}		
				
				if (options['giving-out-limit']) {
					$('#price-per-item-5').text('x ' + c.cost['giving-out-limit'][options['giving-out-limit'] ] * 100 / parseInt(options['giving-out-limit'].replace(/ /g, '') ) + ' %');
				} else {
					$('#price-per-item-5').text('');
				}
				
				if (options['reception-std-limit']) {
					$('#price-per-item-6').text('x ' + c.cost['reception-std-limit'][options['reception-std-limit'] ] * 100 / parseInt(options['reception-std-limit'].replace(/ /g, '') ) + ' %');
				} else {
					$('#price-per-item-6').text('');
				}
				
				if (options['reception-encashed-limit']) {
					$('#price-per-item-7').text('x ' + c.cost['reception-encashed-limit'][options['reception-encashed-limit'] ] * 100 / parseInt(options['reception-encashed-limit'].replace(/ /g, '') ) + ' %');
				} else {
					$('#price-per-item-7').text('');
				}
				
				
				$.each(options, function(k, v) {
					if (typeof c.cost[k] != 'undefined') {
						total += c.cost[k][v];
					}
					if (typeof c.costForExtras[k] != 'undefined') {
						oneTimeTotal += c.costForExtras[k][v];
					}
				});
				c.resultContainer.text(total === 0 ? '...' : formatPrice(total) );
				
				c.resultTotalInput.val(formatPrice(total) );
				var k = total;
				if ((options['business-package']) && (options['enable-banking'])) {
					c.resultOneTimeContainer.find('span.amount').text(formatPrice(oneTimeTotal) );
					c.resultOneTimeInput.val(formatPrice(oneTimeTotal) );
					c.resultTotalContainer.find('span.amount').text(formatPrice(oneTimeTotal + total * 6) );
				} else if (options['business-package']) {
					c.resultTotalContainer.find('span.amount').text(formatPrice(total * 6) );
				} else if (options['enable-banking']) {
					c.resultOneTimeContainer.find('span.amount').text(formatPrice(oneTimeTotal) );
					c.resultOneTimeInput.val(formatPrice(oneTimeTotal) );
					c.resultTotalContainer.find('span.amount').text(formatPrice(oneTimeTotal + total) );
				} else {
					c.resultOneTimeInput.removeAttr('value');
					c.resultTotalContainer.removeAttr('value');
				}
			}
			
			/**
			 * Конфигурация. Здесь указываются группы городов и стоимость услуг. 
			 */
			c.config = [{
				/* ниже перечисляются города группы */
				//cities: ['Миасс', 'Златоуст', 'Озерск', 'Троицк', 'Южноуральск', 'Копейск', 'Чайковский', 'Березники', 'Лысьва', 'Соликамск', 'Карасук', 'Татарск', 'Чулым', 'Черепаново', 'Искитим', 'Болотное', 'Бердск', 'Барабинск', 'Северск'],
				cities: ['1', '2', '3', '4', '5', '7', '8', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41'],
				/* значения первого уровня = именам контролов; вложенные пары ключ:значение соот. имени варианта контрола и стоимости */
				cost: {
					'remote': {
						1: 500,
						0: 1000
					},
					'docs-std-limit': {
						'5': 175,
						'15': 480,
						'25': 750,
						'50': 1400,
						'100': 2500
					},
					'docs-el-limit': {
						'5': 115,
						'15': 300,
						'25': 450,
						'50': 800,
						'100': 1500,
						'200': 2800
					},
					'giving-out-limit': {
						'50000': 500,
						'150000': 1500,
						'300000': 3000,
						'600000': 6000,
						'1000000': 10000
					},
					'reception-std-limit': {
						'100000': 140,
						'500000': 650,
						'1500000': 1800,
						'3000000': 3000,
						'5000000': 4000
					},
					'reception-encashed-limit': {
						'1000000': 800,
						'3000000': 2100,
						'5000000': 3500,
						'10000000': 6000,
						'15000000': 9000
					}
				},
				/* тут стоимость доп. услуг */
				costForExtras: {
					'enable-banking': {
						1: 1500
					}
				}
			},
			{
				//cities: ['Томск', 'Челябинск', 'Магнитогорск', 'Пермь'],
				cities: ['9', '42', '43', '44', '45', '46', '47', '48', '49'],
				cost: {
					'remote': {
						1: 700,
						0: 1200
					},
					'docs-std-limit': {
						'5': 200,
						'15': 555,
						'25': 875,
						'50': 1650,
						'100': 3000
					},
					'docs-el-limit': {
						'5': 125,
						'15': 345,
						'25': 500,
						'50': 900,
						'100': 1500,
						'200': 2800
					},
					'giving-out-limit': {
						'50000': 550,
						'150000': 1650,
						'300000': 3300,
						'600000': 6600,
						'1000000': 11000
					},
					'reception-std-limit': {
						'100000': 140,
						'500000': 650,
						'1500000': 1800,
						'3000000': 3000,
						'5000000': 4000 
					},
					'reception-encashed-limit': {
						'1000000': 800,
						'3000000': 2100,
						'5000000': 3500,
						'10000000': 6000,
						'15000000': 9000
					}
				},
				costForExtras: {
					'enable-banking': {
						1: 1500
					}
				}
			},
			{
				//cities: ['Новосибирск'],
				cities: ['6', '50'], 
				cost: {
					'remote': {
						1: 800,
						0: 1200
					},
					'docs-std-limit': {
						'5': 225,
						'15': 645,
						'25': 1000,
						'50': 1900,
						'100': 3500
					},
					'docs-el-limit': {
						'5': 150,
						'15': 420,
						'25': 625,
						'50': 1000,
						'100': 1800,
						'200': 3200
					},
					'giving-out-limit': {
						'50000': 600,
						'150000': 1800,
						'300000': 3600,
						'600000': 7200,
						'1000000': 12000 
					},
					'reception-std-limit': {
						'100000': 140,
						'500000': 650,
						'1500000': 1800,
						'3000000': 3000,
						'5000000': 4000 
					},
					'reception-encashed-limit': {
						'1000000': 800,
						'3000000': 2100,
						'5000000': 3500,
						'10000000': 6000,
						'15000000': 9000
					}
				},
				costForExtras: {
					'enable-banking': {
						1: 1700
					}
				}
			}];
			
			/**
			 * Определение принадлежности города к опред. ценовой группе при его смене
			 */
			c.controls.filter('[name=city]').bind('change.calculatorcity', function() {
				var city = $(this).val();
				$.each(c.config, function(k, v) {
					if ($.inArray(city, v.cities) != -1) {
						c.cost = v.cost;
						c.costForExtras = v.costForExtras;
						return false;
					}
				});
			});
			
			/**
			 * Запрещает выбор пустого значения после указания какого-либо из городов
			 */
			c.controls.filter('[name=city]').one('change.calculatorcityone', function() {
				$('option[value=none]', this).attr('disabled', 'disabled');
			});
			
			/**
			 * При активации выбирает первый вариант из списка, запрещает выбор пустого значения в дальнейшем
			 */
			c.steps.find('div.checkbox-select input').one('change.calculatorone', function() {
				$(this).parents('div.control:first').find('option[value=none]').attr('disabled', 'disabled');
				$(this).parents('div.control:first').find('option:eq(1)').attr('selected', 'selected');
			});
			
			/**
			 * При активации выбирает первый вариант из списка, запрещает выбор пустого значения в дальнейшем
			 */
			c.steps.find('div.checkbox-select input').bind('change.calculatorcs', function() {
				var select = $(this).parents('div.control:first').find('select');
				var selectedIdx = select.find('option').index(select.find(':selected') ) || 1;
				if ($(this).is(':checked') && $(this).is(':enabled') ) {
					select.removeAttr('disabled');
					if (select.data('selected')) {
						select.find('option').eq(select.data('selected')).attr('selected', 'selected').trigger('change');
					}
				} else {
					select.attr('disabled', 'disabled').data('selected', selectedIdx).find('option:first').attr('selected', 'selected');
				}
			});
			
			/**
			 * При изменении значения любого из контролов пересчитывает результат и изменяет доступность шагов и контролов
			 */
			c.controls.bind('change.calculator', function() {
				c.setControlsAvailabilityAndValues($(this) );
				c.setStepsAvailability($(this) );
				c.calculate();
			});
			
			/**
			 * IE не сообщает об изменении значения radio и checkbox. Трюк ниже помогает ему вести себя прилично.
			 */
			c.controls.not('select').click(function() {
				this.blur();
				this.focus();
			});
			
			/**
			 * Старые версие IE не знают про option[disabled]. Эмулируем. 
			 */
			if ($.browser.msie && $.browser.version < 8) {
				c.controls.filter('select').change(function() {
					var el = $(this);
					if (el.attr('value') == 'none' && el.data('selected') ) {
						el.find('option').eq(el.data('selected') ).attr('selected', 'selected').trigger('change');
					} else {
						el.data('selected', el.find('option').index(el.find(':selected') ) );
					}
				});
			}
			
			c.init();
		})();
		
		
		
		/* подсказки */
		var tipContainer = $('<div id="tip-container"><div class="tip" /></div>').appendTo('body').bgiframe(), tipTimer, borrowedText = '', tipEl;
		$('span.tip').hover(function() {
			clearTimeout(tipTimer);
			
			if (tipEl && borrowedText) {
				tipEl.attr('title', borrowedText);
			}
			
			tipContainer.find('.tip').text($(this).attr('title') ).end().css({
				left: $(this).offset().left + $(this).width(),
				top: $(this).offset().top - tipContainer.height() - 25
			});
			
			tipEl = $(this);
			borrowedText = $(this).attr('title');
			$(this).attr('title', '');
			
			tipContainer.show();
		}, function() {
			var that = this;
			tipTimer = setTimeout(function() {
				tipContainer.hide();
			}, 1500);
		});
		
		tipContainer.hover(function() {
			clearTimeout(tipTimer);
		}, function() {
			tipTimer = setTimeout(function() {
				tipContainer.hide();
			}, 1500);
		});
	}
	
	/* вторая часть/шаг */
	if ($('#calculator-order').length) {
		var url = $(document).url();
		var getParam = function(name, stripSpaces) {
			var value = url.param(name);
			if (value != null) {
				value = decodeURIComponent(url.param(name) ).replace(/\+/gi, ' ');
				if (stripSpaces) {
					value = value.replace(' ', '');
				}
				return value;
			} else {
				return false;
			}
		};
		var showParam = function(name, value) {
			if (value) {
				resultsList.append('<tr><td style="padding-right: 10px;">' + name + ':</td><td nowrap style="padding-right: 10px;"><span class="value">' + value + '</span></td></tr>');
			} else {
				resultsList.append('<tr><td>' + name + '</td><td><br/></td></tr>');
			}
		}
		var city = getParam('city');
		city = cities[city];
		if (city) {
			var resultsContainer = $('<div id="calculator-results"><h2>Выбранные в калькуляторе опции:</h2></div>').insertBefore('#calculator-order');
			var resultsList = $('<table cellpadding="0" cellspacing="0" style="border:1px solid #dedede; collapse: border-collapse; margin-top: 8px;" />').appendTo(resultsContainer);
			
			if (!$('body').is('.print') ) {
				$('<br/><a href="/species/constructor/calculator/' + url.attr('query') + '">Изменить параметры</a><div class="print" style="padding-top: 10px;"><a href="/species/constructor/print/' + url.attr('query') + '" target="_blank">Распечатать результат расчета</a></div>').appendTo(resultsContainer);
			}
			
			showParam('Город', city);
			if (getParam('open-account-rub') ) {
				showParam('Бесплатное открытие расчетного счета в рублях', '\+');
			}
			
			if (getParam('remote') == 0) {
				showParam('Ведение счета без системы удаленного доступа', '\+');
			} else {
				showParam('Ведение счета с использованием системы удаленного доступа', '\+');
			}
			
			if (getParam('enable-banking') ) {
				showParam('Установка системы «Интернет-Банк» или «Банк-Клиент» на один год (включает генерацию одного ключа)', '\+');
			}
			
			if (getParam('docs-std-limit') ) {
				showParam('Проведение платежных документов на бумажных носителях, в мес.', getParam('docs-std-limit') );
			}
			if (getParam('docs-el-limit') ) {
				showParam('Проведение платежных документов при использовании системы удаленного доступа, в другой банк, в мес.', getParam('docs-el-limit') );
			}
			if (getParam('enable-docs-el-inner') ) {
				showParam('Неограниченное проведение платежных документов при использовании системы удаленного доступа, внутри банка', '\+');
			}
			
			if (getParam('giving-out-limit') ) {
				showParam('Выдача наличных денежных средств, в мес.', formatPrice(getParam('giving-out-limit')) + ' руб.' );
				
			}
			if (getParam('reception-std-limit') ) {
				showParam('Прием и пересчет наличных денежных средств, в мес.', formatPrice(getParam('reception-std-limit')) + ' руб.' );
			}
			if (getParam('reception-encashed-limit') ) {
				showParam('Прием и пересчет инкасированной выдачи банкнотами ЦБ РФ, в мес.', formatPrice(getParam('reception-encashed-limit')) + ' руб.' );
			}
			if (getParam('total') ) {
				showParam('<strong>Стоимость пакета составляет</strong>', getParam('total') + ' руб.');
			}
			if (getParam('one-time-total') ) {
				showParam('Дополнительный платеж за установку системы дистанционного банковского обслуживания', getParam('one-time-total') + ' руб.');
			}
			if ((getParam('one-time-total') ) || (getParam('business-package') )) {
				var k = parseFloat(getParam('total', true) ) + parseFloat(getParam('one-time-total', true) );
				var nam = '<strong>Итоговая сумма платежа за 7 месяцев обслуживания</strong>';
				if (getParam('business-package') ) {
					k = parseFloat(getParam('total', true) ) * 6;
					if (getParam('one-time-total') ) k += parseFloat(getParam('one-time-total', true) );
					nam += ' (с учетом стоимости бизнес-пакета за 6 месяцев)';
				}
				showParam(nam, formatPrice(k) + ' руб.');
			}
			
			if (getParam('open-account-foreign') || getParam('bank-agent') || getParam('open-account-corporative') || getParam('sms')) {
				showParam('<em>Особое предложение</em>:');
			}
			
			if (getParam('open-account-foreign') ) {
				showParam('Открытие расчетного счета в иностранной валюте', '\+');
			}
			
			if (getParam('bank-agent') ) {
				showParam('Осуществление банком функций агента валютного контроля', '\+');
			}
			
			if (getParam('open-account-corporative') ) {
				showParam('Открытие корпоративного карт-счета и выдача корпоративной карты «VISA Business»', '\+');
			}
			
			if (getParam('sms') ) {
				showParam('Услуга «Мобильный банк» (sms-сервис)', '\+');
			}
			
			setTimeout(function() {
				var iframe = $('#calculator-order').contents();
				
				iframe.find('select[name="city"] option').each(function() {
					if (city == $(this).val() ) {
						$(this).attr('selected', 'selected');
						return false;
					}
				});
				
				$.each(url.params, function(k, v) {
					iframe.find('form').append('<input type="hidden" name="' + k + '" value="' + decodeURIComponent(v).replace(/\+/gi, ' ') + '" />');
				});
			}, 1000);
			
		}
		else {
		  var resultsContainer = $('<div id="calculator-results">Перед заказом <a href="/species/constructor/calculator/">рассчитайте свой бизнес-пакет</a>').insertBefore('#calculator-order');
		}
	}
	/* ---------------------------------------------------------------------------------------------------------------- */
});


