jQuery(function() {
	function initialize() {
		/*jQuery('#sendForm').submit(function(event) {
			event.preventDefault();

			var $form = jQuery(this),
				name = $form.find('input[name="name"]').val(),
				phone = $form.find('input[name="phone"]').val(),
				url = $form.attr('action');

			if (name == '') {
				$form.find('input[name="name"]').parent().addClass('top-form-input-error');
			} else {
				$form.find('input[name="name"]').parent().removeClass('top-form-input-error');
			}

			if (phone == '') {
				$form.find('input[name="phone"]').parent().addClass('top-form-input-error');
			} else {
				$form.find('input[name="phone"]').parent().removeClass('top-form-input-error');
			}

			if (name!='' && phone!='') {
				jQuery.post(url, $form.serialize(), function(result) {
					if (result == 'succ') {
						$form.animate({ opacity: 0 }, 'slow', function() {
							$form.hide();
							jQuery('.top-form-thanks').css('opacity', 0).show().animate({ opacity: 1 });
						});
					} else {
						alert(result);
					}
				});
			}
		});*/

		jQuery('.b-custom-select').each(function() {
			var element = jQuery(this);
			element.find('i').text(element.find('select option:selected').html());
		});

		jQuery('.b-custom-select').bind('change', function() {
			var element = jQuery(this);
			element.find('i').text(element.find('select option:selected').html());
		});

		jQuery('.top-form-input input').bind('focus', function() {
			jQuery(this).parent().find('label').hide();
		}).bind('blur', function() {
			if (this.value == '') {
				jQuery(this).parent().find('label').show();
			}
		});

		jQuery('.footer-payment-item').bind('mouseover', function() {
			jQuery(this).stop().animate({ opacity: 1.0 });
		}).bind('mouseout', function() {
			jQuery(this).stop().animate({ opacity: 0.7 });
		});

		jQuery('.tr2b').each(function() {
			var element = jQuery(this);
			var wrapper = jQuery('<div class="tr2b-wrapper"></div>');
			element.before(wrapper);
			wrapper.append(element);
		});

		function highlightColumn(idx) {
			jQuery('.tr2b-' + idx).addClass('tr2b-' + idx + '-hl');
		}

		function unHighlightColumn(idx) {
			jQuery('.tr2b-' + idx).removeClass('tr2b-' + idx + '-hl');
		}

		for (var i = 1; i <= 4; i++) {
			jQuery('.tr2b tr td:nth-child(' + (i + 1) + ')')
				.addClass('tr2b-col tr2b-' + i)
				.bind('mouseover', (function(idx) {
					return function() {
						highlightColumn(idx);
					}
				})(i))
				.bind('mouseout', (function(idx) {
					return function() {
						unHighlightColumn(idx);
					}
				})(i))
				.click((function(idx) {
					return function() {
						location.href = jQuery('.tr2t-' + idx).find('a').attr('href');
					}
				})(i));

			jQuery('.tr2t tr td:nth-child(' + (i + 1) + ')')
				.addClass('tr2t-' + i)
				.bind('mouseover', (function(idx) {
					return function() {
						highlightColumn(idx);
					}
				})(i))
				.bind('mouseout', (function(idx) {
					return function() {
						unHighlightColumn(idx);
					}
				})(i));
		}

		jQuery('strike').each(function() {
			jQuery(this).append(jQuery('<s></s>'));
		});

		function decorateFileInput(element) {
			var inputElement = element.find('.b-custom-file-input');
			var nameElement = element.find('.b-custom-file-name');

			function handleChange() {
				var name = inputElement.val().replace(/\\/g, '/');
				var ind = name.lastIndexOf('/');

				if (ind >= 0) {
					name = name.substr(ind + 1);
				}

				nameElement.text(name);
			}

			inputElement.bind('change', handleChange);
			handleChange();
		}

		jQuery('.b-custom-file').each(function() {
			decorateFileInput(jQuery(this));
		});

		function removeFileClicked() {
			jQuery(this).parent().parent().remove();
			updateIndices(false);
		}

		function updateIndices(changeButtons) {
			var idx = 1;

			jQuery('.order-form-file-row').each(function() {
				var element = jQuery(this);

				if (changeButtons && element.find('.b-add-file').size()) {
					element.find('.order-form-file-btn').append(jQuery(
						'<img class="b-remove-file" src="/this/img/form_order_minus.gif" alt="" />'
					));

					element.find('.b-add-file').remove();
					element.find('.b-remove-file').click(removeFileClicked);
				}

				element.find('.b-custom-file-input').attr('name', 'upload_' + idx);
				idx += 1;
			});

			return idx;
		}

		function addFileClicked() {
			if (jQuery('.order-form-file-row').size() >= 5) {
				return;
			}

			var idx = updateIndices(true);

			var rowElement = jQuery([
				'<div class="order-form-file-row">',
					'<div class="order-form-file-wrap b-custom-file">',
						'<label class="order-form-file-label">',
							'<input size="1" type="file" class="order-form-file-input b-custom-file-input" name="upload_', idx, '" />',
						'</label>',
						'<div class="order-form-file-name b-custom-file-name"></div>',
					'</div>',
					'<div class="order-form-file-btn">',
						'<img class="b-add-file" src="/this/img/form_order_plus.gif" alt="" />',
					'</div>',
				'</div>'
			].join(''));

			jQuery('.order-form-file-container').append(rowElement);
			decorateFileInput(rowElement.find('.b-custom-file'));
			rowElement.find('.b-add-file').click(addFileClicked);
		}

		jQuery('.b-add-file').click(addFileClicked);

		jQuery('.b-counter').each(function() {
			jQuery(this).append(jQuery([
				'<div class="special-counter-element b-counter-day"></div>',
				'<div class="special-counter-element b-counter-hour"></div>',
				'<div class="special-counter-element b-counter-minute"></div>',
				'<div class="special-counter-element b-counter-second"></div>',
			].join('')));
		});

		function prependZero(num) {
			return (num >= 10 ? num : '0' + num);
		}

		function updateCounters() {
			var time_max = (60 * 60 * 24 * 7);
			var time_now = Math.floor((new Date()).valueOf() / 1000);

			jQuery('.b-counter').each(function() {
				var element = jQuery(this);
				var current = time_max - ((time_now + Number(element.attr('data-time-offset'))) % time_max);

				element.find('.b-counter-day').text(prependZero(Math.floor(current / (60 * 60 * 24))));
				element.find('.b-counter-hour').text(prependZero(Math.floor((current % (60 * 60 * 24)) / (60 * 60))));
				element.find('.b-counter-minute').text(prependZero(Math.floor((current % (60 * 60)) / 60)));
				element.find('.b-counter-second').text(prependZero(current % 60));
			});
		}

		if (jQuery('.b-counter').size()) {
			updateCounters();
			setInterval(updateCounters, 1000);
		}

		function updateCity(element) {
			jQuery('.header-office-address').text(element.attr('data-office'));
			jQuery('.header-office-metro').toggle(element.attr('data-metro') != '');
			jQuery('.header-office-metro-text').text(element.attr('data-metro'));
			jQuery('.header-call-city-current-text').text(element.text());
			jQuery('.header-call-phone').text(element.attr('data-phone'));
			jQuery('.header-call-descr-free-call').toggle(element.attr('data-show-free-call') == 'yes');

			jQuery('.header-call-city-change-popup').css('display', 'none');

			setTimeout(function() {
				jQuery('.header-call-city-change-popup').css('display', '');
			}, 100);

			jQuery.cookie('currentCity', element.attr('data-city-id'), {
				expires: 30,
				path: '/'
			});
		}

		jQuery('.b-set-city').click(function() {
			updateCity(jQuery(this));
			return false;
		});

		if (jQuery.cookie('currentCity') != '' && jQuery('.b-set-city-' + jQuery.cookie('currentCity')).size()) {
			updateCity(jQuery('.b-set-city-' + jQuery.cookie('currentCity')));
		} else {
			updateCity(jQuery('.b-set-city-spb'));
		}

		jQuery('.b-videobox').jqvideobox({
			width: 400,
			height: 300,
			flvplayer: '/this/swf/flvplayer.swf'
		});

		if (jQuery('.feedback-videos-wrap-inner').size()) {
			var videoThumbsCount = Number(jQuery('.feedback-videos-wrap-inner').attr('data-thumbs-count'));
			var currentVideoThumb = 0;
			var videoAnimInProcess = false;

			jQuery('.feedback-videos-prev').hide();
			jQuery('.feedback-videos-next').toggle(videoThumbsCount > 4);

			function updateThumbsPos() {
				videoAnimInProcess = true;
				jQuery('.feedback-videos-prev').toggle(currentVideoThumb != 0);
				jQuery('.feedback-videos-next').toggle(currentVideoThumb < videoThumbsCount - 4);

				jQuery('.feedback-videos-wrap-inner').animate({
					left: - (currentVideoThumb * (205 + 15))
				}, 'fast', function() {
					videoAnimInProcess = false;
				});
			}

			jQuery('.feedback-videos-prev').click(function() {
				if (!videoAnimInProcess) {
					currentVideoThumb--;
					updateThumbsPos();
				}
			});

			jQuery('.feedback-videos-next').click(function() {
				if (!videoAnimInProcess) {
					currentVideoThumb++;
					updateThumbsPos();
				}
			});
		}

		function mask(cb) {
			jQuery('.overlay-mask').css({
				height: jQuery(window).height() + 'px',
				opacity: 0,
				display: 'block'
			}).fadeTo('fast', 0.8, function() {
				if (typeof(cb) == 'function') {
					cb();
				}
			});
		}

		function unmask(cb) {
			jQuery('.overlay-mask').fadeTo('fast', 0, function() {
				jQuery('.overlay-mask').css('display', 'none');

				if (typeof(cb) == 'function') {
					cb();
				}
			});
		}

		var overlayClickedCb = null;

		jQuery('.overlay-mask').click(function() {
			if (typeof(overlayClickedCb) == 'function') {
				overlayClickedCb();
			}
		});

		function showThanks() {
			jQuery('.popup-thanks').css({
				top: Math.floor(jQuery(window).height() / 2 - 120 / 2),
				left: Math.floor(jQuery(window).width() / 2 - 700 / 2),
				display: 'block'
			});

			overlayClickedCb = function() {
				jQuery('.popup-thanks').hide();
				unmask();
			};
		}

		jQuery('.b-order-call').click(function() {
			mask();

			jQuery('.popup-order-call').css({
				top: Math.floor(jQuery(window).height() / 2 - 480 / 2),
				left: Math.floor(jQuery(window).width() / 2 - 315 / 2),
				display: 'block'
			});

			overlayClickedCb = function() {
				jQuery('.popup-order-call').hide();
				unmask();
			};

			return false;
		});

		function openOrderCallPopup() {
			if (
				(jQuery('.overlay-mask').is(':visible') && jQuery('.overlay-mask').height())
				||
				(jQuery('#lbOverlay').is(':visible') && jQuery('#lbOverlay').height())
			) {
				return;
			}

			jQuery.cookie('orderCallPopupHasOpened', 'yes', {
				path: '/'
			});

			mask();

			jQuery('.popup-order-call-popup').css({
				top: Math.floor(jQuery(window).height() / 2 - 305 / 2),
				left: Math.floor(jQuery(window).width() / 2 - 710 / 2),
				display: 'block'
			});

			overlayClickedCb = function() {
				jQuery('.popup-order-call-popup').hide();
				unmask();
			};
		}

		/*jQuery('.popup-order-call-form').submit(function(event) {
			event.preventDefault();

			var $form = jQuery(this),
				name = $form.find('input[name="name"]').val(),
				phone = $form.find('input[name="phone"]').val(),
				url = $form.attr('action');

			if (name == '') {
				$form.find('input[name="name"]').parent().addClass('popup-order-call-form-row-error');
			} else {
				$form.find('input[name="name"]').parent().removeClass('popup-order-call-form-row-error');
			}

			if (phone == '') {
				$form.find('input[name="phone"]').parent().addClass('popup-order-call-form-row-error');
			} else {
				$form.find('input[name="phone"]').parent().removeClass('popup-order-call-form-row-error');
			}

			if (name!='' && phone!='') {
				jQuery.post(url, $form.serialize(), function(result) {
					if (result != 'succ') {
						alert(result);
					} else {
						$form.find('input[name="name"]').val('');
						$form.find('input[name="phone"]').val('');
						jQuery('.popup-order-call').hide();
						jQuery('.popup-order-call-popup').hide();
						showThanks();
					}
				});
			}
		}); */

		jQuery('.popup-thanks, .popup-order-call-close').click(function() {
			if (typeof(overlayClickedCb) == 'function') {
				overlayClickedCb();
			}
		});

		if (jQuery.cookie('orderCallPopupHasOpened') != 'yes') {
			setTimeout(openOrderCallPopup, 1000 * (60 + 35));
		}
	}

	function checkLoaded() {
		if (jQuery('html').hasClass('wf-active')) {
			jQuery('#full-page-wrap').css('visibility', 'visible');
			initialize();
			return;
		}

		setTimeout(checkLoaded, 100);
	}

	checkLoaded();
});

