/*window_resize - begin*/
var d = document;
var winIE = (navigator.userAgent.indexOf("Opera")==-1 && (d.getElementById &&  d.documentElement.behaviorUrns))  ? true : false;

function bodySize(){
	if(winIE && d.documentElement.clientWidth) {
		sObj = d.getElementsByTagName("body")[0].style;
		if (d.documentElement.clientWidth < 1000) {
			sObj.width = '1000px';
		} else if (d.documentElement.clientWidth > 1280) {
			sObj.width = '1280px';
		} else {
			sObj.width = '100%';
		}
		//sObj.width = (d.documentElement.clientWidth<1000) ? "1000px" : "100%";
	}
}

function init(){
	if(winIE) { bodySize(); }
}
 
onload = init;

if(winIE) { onresize = bodySize; }
/*window_resize - end*/

/*
$(document).ready(function() {
	$('.cart_added').slideDown();
});
*/



// er

// namespace
var p = {};

/*
 * On DOM Ready
 */
$(function(){
	
	$('body').addClass('js-enabled');
	
	$('form.type').submit(function(){
		$.cookie('showcart', null);
	});
	
	$('.text-normal table tr:even').addClass('even');
	
	p.restripe();
	
	if ($.fn.buttonstyler) {
		// + стилизация кнопок
		$('input.styled, .form-submit').buttonstyler();
	}
	
	/*
	 * [DF] Устанавливает заголовкам одинаковую высоту и выравнивает по нижнему краю.
	 */
	var counter = 1, height = 0, collection = $([]);
	$('.index_leaders .leader_block h6').each(function(i){

		$(this).wrap('<table class="wrapper"><tr><td></td></tr></table>');
		
		collection[collection.length] = this;
		collection.length += 1;
		var thisHeight = $(this).height();
		if (thisHeight > height) {
			height = thisHeight;
		}
		
		if (counter == 3 || $('.index_leaders .leader_block h6').index(this) == $('.index_leaders .leader_block h6').length - 1) {
			collection.each(function(){
				$(this).parent().height(height + 5);
			});
			counter = 0;
			height = 0;
			collection = $([]);
		}
		
		counter += 1;
	});
	
	
	$('a.to_cart').click(function(){
		
		if ($.cookie('showcart') == null) {
			$.cookie('showcart', '1', { expires: 365 });
		}
		
		var $this = $(this);
		$this.data('oldbg', $(this).css('background-image'));
		$this.css('background-image', 'url(/themes/amaltea/img/ajax-loader.gif)');
		$.post($(this).attr('href'), function(){
			$('<p class="confirm"><span class="wrapper-1"><span class="wrapper-2"><span class="wrapper-3"><span class="wrapper-4">товар добавлен</span></span></span></span></p>').appendTo($('body') );
			var $cf = $('.confirm:last');
			$cf.css({
				left: $this.offset().left + 'px',
				top: $this.offset().top + $this.height() + 13 + 'px'
			});
			$cf.fadeIn();
			setTimeout(function(){
				$cf.fadeOut(6000, function(){
					$cf.remove();
				});
			}, 1000);
			$this.css('background-image', $this.data('oldbg') );
			$this.removeData('oldbg');
			
			$('.cart_block').fadeIn();
			var price = $this.metadata().peritem;
			var totalPrice = $('.cart_block strong.price').data('pricewodiscount') + price ||  $('.cart_block strong.price').metadata().pricewodiscount + price;
			var config = $('.cart_block').metadata().config;
			
			$('.cart_block strong.price').data('pricewodiscount', totalPrice);
			
			if (totalPrice > config.discount.threshold){
				var discount = totalPrice / 100 * parseInt(config.discount.price);
				totalPrice -= discount;
				totalPrice = Math.round(totalPrice * 100) / 100;
			}
			
			if (totalPrice > config.delivery.threshold){
				$('.cart_block strong.price').data('freedelivery', 1);
			}
			
			if (typeof $('.cart_block strong.price').data('freedelivery') == 'undefined') {
				totalPrice = totalPrice + config.delivery.price;
			}
			
			$('.cart_block span.currency').text(formatCurrencyName(totalPrice) );
			
			$('.cart_block strong.price').text(formatPrice(totalPrice) );
			$('.cart_block strong.qty').text(parseInt($('.cart_block strong.qty').text() ) + 1);
			$('.cart_block span.unit-of-measure').text(formatUnitName(parseInt($('.cart_block strong.qty').text() ) ) );
			
		});
		return false;
	});
	
	/* Автопересчет стоимости заказа в корзине
	------------------------------------------------------------------------------------------------------------------- */
	if ($.fn.numid) {
		
		var formatPrice = function(price){
			price += '';
			var x = price.split('.');
			var x1 = x[0];
			var x2 = x.length > 1 ? '.' + x[1] : '';
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(x1)) {
				x1 = x1.replace(rgx, '$1' + ' ' + '$2');
			}
			x3 = x1 + x2;
			if (x3.match(/\.\d{1}$/)){
				x3 += '0';
			}
			return x3;
		}
		
		var formatUnitName = function(num){
			if (num == 11) {
				return 'товаров';
			}
			var unitName, numLastNumber = num.toString().substr(-1, 1);
			if (numLastNumber == 0 || numLastNumber > 4) {
				unitName = 'товаров';
			} else if (numLastNumber == 1) {
				unitName = 'товар';
			} else {
				unitName = 'товара';
			}
			return unitName;
		}
		
		var formatCurrencyName = function(num){
			if (num.toString().match('/\./') ) {
				return 'рубля';
			}
			num = num.toString().substr(-1, 1);
			var priceName = '';
			if (num == 0 || num > 4) {
				priceName = 'рублей';
			} else if (num == 1) {
				priceName = 'рубль';
			} else {
				priceName = 'рубля';
			};
			return priceName;
		}
		
		var recalculateTotalPrice = function(){
			var totalPrice = 0;
			$('table.basket td.price span.price span.value').each(function(){
				totalPrice += parseInt($.extractNumber($(this).text() ) );
			});
		
			var config = $('table.basket').metadata().config;
			
			if (totalPrice > config.delivery.threshold){
				$('table.basket tr.delivery td').text('Бесплатно');
			} else {
				$('table.basket tr.delivery td').text(config.delivery.price + ' руб.');
				totalPrice = totalPrice + config.delivery.price;
			}
			
			if (totalPrice > config.discount.threshold){
				var discount = totalPrice / 100 * parseInt(config.discount.price);
				totalPrice = totalPrice - discount;
				totalPrice = Math.round(totalPrice * 100) / 100;
				discount = Math.round(discount * 100) / 100;
				
				var discountFormatted = '-' + formatPrice(discount);
				$('table.basket tr.discount td span.price span.value').text(discountFormatted);
			} else {
				$('table.basket tr.discount td span.price span.value').text(0);
			}
	
			$('.cart_block span.currency').text(formatCurrencyName(totalPrice) );
			
			var totalPriceFormatted = formatPrice(totalPrice);
			$('table.basket tr.total td span.price span.value').text(totalPriceFormatted);
			$('.cart_block strong.price').text(totalPriceFormatted);
		};
		
		var recalculateTotalQty = function(){
			var totalQty = 0;
			$('table.basket td.amount input').each(function(){
				totalQty += parseInt($(this).val() );
			});
			
			$('.cart_block strong.qty').text(totalQty);
			
			var unitName = formatUnitName(totalQty);
			$('.cart_block span.unit-of-measure').text(unitName);
			
			if (totalQty == 0) {
				$('.cart_block strong.price').text(0);
				//$('.cart_block').fadeOut(3000);
			}
		}
		
		var recalculatePrice = function($input){
			var ppi = $input.parents('td:eq(0)').siblings('td.price').find('span.price').metadata().peritem;
			var a = $input.val();
			var tp = a * ppi;
			tp = Math.round(tp * 100) / 100;
			tp = formatPrice(tp);
			$input.parents('td:eq(0)').siblings('.price').find('.price .value').text(tp);
			recalculateTotalPrice();
			recalculateTotalQty();
			submitCart();
		}
		
		var t;
		var submitCart = function(){
			clearTimeout(t);
			t = setTimeout(function(){
				$.ajax({
				type: 'POST',
				url: '?q=cart.rpc&action=reset',
				data: $('.cart-submit').serialize()
			});
			}, 500);
		}
		
		// + переключатели больше/меньше
		$('table.basket td.amount input').numid({
			onDecrease: recalculatePrice,
			onIncrease: recalculatePrice,
			onKeyUp: recalculatePrice
		});
		
		// + удаление товара из корзины (уд. ряда в таблице со списком зак. товаров)
		$('table.basket td.delete input').deleterow({
			afterDelete: function(){
				recalculateTotalPrice();
				recalculateTotalQty();
				submitCart();
				if ($('table.basket tr').length == 4) {
					$('<p>В корзине нет товаров.</p>').insertBefore($('.cart-submit') );
					$('.cart-submit').hide();
				}
				p.restripe();
			}
		});
		
	}
	/* ---------------------------------------------------------------------------------------------------------------- */
	
	
	/* Валидация
	------------------------------------------------------------------------------------------------------------------- */
	if ($.validator) {
		/* дефолтные сообщения */
		$.validator.messages.required = "Это поле является обязательным для заполнения";
		$.validator.messages.email = "Некорректный формат адреса электронной почты";
		
		$('.form-create-wrapper form').validate();
		
		$('.form-create-wrapper form .control:has(label.required)').each(function() {
			$(this).find('input, textarea, select').each(function(){
				$(this).rules('add', 'required');
			});
		});
		
		$('.form-create-wrapper form .control.email-wrapper:has(label.required) input').each(function() {
			$(this).rules('add', 'email');
		});
		
		$('.form-create-wrapper form .control.set-wrapper:has(label.required)').each(function() {
			var $errorLabel = $('<label for="' + $(this).find('input:eq(0)').attr('name') + '" class="error">Пожалуйста, выберите один из предложенных вариантов.</label>');
			$(this).append($errorLabel);
			$errorLabel.hide();
		});
		
		/* доп. правила */
		$('form.type').each(function(){
			$(this).validate({
				errorPlacement: function(error, element){
					return;	
				},
				highlight: function(element, errorClass) {
					$(element).parent().addClass('invalid');
					$(element).addClass('invalid');
					return false;
				},
				unhighlight: function(element, errorClass) {
					$(element).parent().removeClass('invalid');
					$(element).removeClass('invalid');
				}
			});
		});
		
		$('form.type').each(function() {
			/*
			$(this).find('input').each(function(){
				$(this).rules('add', 'required');
			});
			*/
		});
	}
	/* ---------------------------------------------------------------------------------------------------------------- */
	
	
	$('ul.type-of-organization-selector li').click(function(){
		$('.types-of-organization form.type').hide();
		$('.types-of-organization form.type:eq(' + $('ul.type-of-organization-selector li').index(this) + ')').show();
		$(this).addClass('current').siblings().removeClass('current');
		return false;
	});
	
	
	$('.jsonly').show();
	$('.nojsonly').hide();
	
	$.preload([
		'themes/amaltea/img/siteimage/bg_confirm-left-top.png',
		'themes/amaltea/img/siteimage/bg_confirm-right-top.png',
		'themes/amaltea/img/siteimage/bg_confirm-left-bottom.png',
		'themes/amaltea/img/siteimage/bg_confirm-right-bottom.png',
		'themes/amaltea/img/ajax-loader.gif'
	]);
	
});

p.restripe = function(){
	$('table.striped tr').removeClass('even');
	$('table.striped tr:even').addClass('even');
}


/*
 * Аббревиатуры:
 * DF = dirty fix
 */
