$(function(){
	
	loaderImg = new Image(); 
	loaderImg.src = "/images/ico/loader.gif";

	$(".p-close").live('click', function(){
		this.blur();
		$(this).parent().hide();
		$("#cover").hide();
		return false;
	});
	
	$(".p-close-thanks").live('click', function(){
		window.location = '';
		return false;
	});
	
	
	$('.showProduct').live('click', function(){
		this.blur();
		showCover();
		
		var id = $(this).attr('rel');
		$.ajax({
			url: '/catalog/ajaxProduct',
			data:		{"id": id},
			type:		'POST',
			success:	function(json) {
				//$('#ChangeColors').html(html);
				$('#PWnew,#PWday').hide();
				if(json.is_new == 'Y') $('#PWnew').show();
				else if(json.is_action == 'Y') $('#PWday').show();
				
				$('#PWname').html(json.name);
				$('#PWanons').html(json.anons);
				$('#PWprice1,#PWprice10').html(json.price1);
				$('#PWweight1,#PWweight10').html(json.weight1);
				$('#PWprice2').html(json.price2);
				$('#PWweight2').html(json.weight2);
				
				$('.orderBtn1').html(json.orderBtn1);
				$('.orderBtn2').html(json.orderBtn2);
				
				$('#PWpriceblock0,#PWpriceblock1,#PWpriceblock2,#PWpriceblock10').hide();
				if(json.price1 == 0 && json.price2 == 0) {
					$('#PWpriceblock0').show();
				} else if(json.price1 != 0 && json.price2 == 0) {
					$('#PWpriceblock10').show();
				} else if(json.price1 != 0 && json.price2 != 0) {
					$('#PWpriceblock1,#PWpriceblock2').show();
				}
				
				$('#PWimage')
					.html('<img src="'+json.image.resized+'" width="'+json.image.width+'" height="'+json.image.height+'" alt="'+json.image.alt+'" />')
					.find('img')
						.load(function(){
							var popup = $("#popup-card");
							var doc = $(document);
							
							var mleft = ($(window).width() - popup.width()) / 2;
							var mtop = ($(window).height() - popup.height()) / 2;
							if(mleft < 0) mleft = 0;
							mleft = mleft + doc.scrollLeft();
							if(mtop < 0) mtop = 0;
							mtop = mtop + doc.scrollTop();
							popup.css({left: mleft, top: mtop});
							
							popup.show();
						});
			}
		});
		return false;
	});
	
	
	
	$('.ajaxContent').live('click', function(){
		$.ajax({
			url: $(this).attr('href'),
			data:		{"ajax": "1"},
			type:		'POST',
			success:	function(html) {
				$('#pageContent').html(html);
				
				$('#basketBlock').css('height', $('#BasketInner').height());
				basketMaxPosition = $('.footer').offset();
				setTimeout(function(){
					$('#basketBlock').css('height', $('#BasketInner').height());
					basketMaxPosition = $('.footer').offset();
				}, 100);
				goScroll = true;
				positionBasket();
				
			}
		});
		
		return false;
	});
	
	$('.addToBasket').live('click', function(){
		var orderLink = $(this);
		$.ajax({
			url: $(this).attr('href'),
			data:		{"ajax": "1"},
			type:		'POST',
			success:	function(json) {
				$('#orderBtn' + json.id + '_' + json.formfactor).html(json.orderbtn);
				orderLink.parent().html(json.orderbtn);
				$('#basketBlock').html(json.basketBlock).hide();
				positionBasket();
			}
		});
		
		return false;
	});
	
	$('.delFromBasket').live('click', function(){
		var delLink = $(this);
		$.ajax({
			url: $(this).attr('href'),
			data:		$.extend({"ajax": "1"}, getFormData()),
			type:		'POST',
			success:	function(json) {
				$('#orderBtn' + json.id + '_' + json.formfactor).html(json.orderbtn);
				$('#basketBlock').html(json.basketBlock).hide();
				positionBasket();
				if(json.orderPage == 'Корзина пуста') {
					$("#popup-order").hide();
					$("#cover").hide();
				} else $('#OrderContent').html(json.orderPage);
			}
		});
		
		return false;
	});
	
	$('#aboutPizza').live('click', function(){
		var obj = this;
		$.ajax({
			url: '/catalog/ajaxTextAboutPizza',
			type:		'GET',
			success:	function(html) {
				$('#wrapTextAboutPizza').html(html);
				obj.blur(); return showPopup('popup-info');
			}
		});
		return false;
	});
	
	$('#Checkout').live('click', function(){
		this.blur();
		
		showCover();
		var popup = $("#popup-order");
		var doc = $(document);
		
		$.ajax({
			url: '/basket',
			type:		'GET',
			success:	function(html) {
				$('#OrderContent').html(html);
				popup.show();
				var mleft = ($(window).width() - popup.width()) / 2;
				var mtop = ($(window).height() - popup.height()) / 2;
				if(mleft < 0) mleft = 0;
				mleft = mleft + doc.scrollLeft();
				if(mtop < 0) mtop = 0;
				mtop = mtop + doc.scrollTop();
				popup.css({left: mleft, top: mtop});
			}
		});
		
		
		
		return false;
	});
	
	$('.countProducts').live('keyup', function(event){
		var ignore_codes = [37,38,39,40,9,18,16,17,13];
		if(in_array(event.keyCode, ignore_codes)) return true;
		var obj_id = $(this).attr('id');
		var idf = obj_id.substr(13).split('_');
		$.ajax({
			url: '/basket/edit',
			data: $.extend({
				"ajax":			"1", 
				"id":			idf[0],
				"formfactor":	idf[1],
				"count":		$(this).val()
			}, getFormData()),
			type:		'POST',
			success:	function(json) {
				$('#orderBtn' + json.id + '_' + json.formfactor).html(json.orderbtn);
				$('#basketBlock').html(json.basketBlock).hide();
				positionBasket();
				$('#OrderContent').html(json.orderPage);
				
				$('#'+obj_id).focus();
			}
		});
		
		return false;
	});
	
	$('#area').live('change', function(){
		$.ajax({
			url: '/basket',
			type:		'POST',
			data: $.extend({area: $(this).val()}, getFormData()),
			success:	function(html) {
				$('#OrderContent').html(html);
				$('#name').focus();
			}
		});
	});
	
	$('#discount').live('change', function(){
		$.ajax({
			url: '/basket',
			type:		'POST',
			data: $.extend({discount: $(this).val()}, getFormData()),
			success:	function(html) {
				$('#OrderContent').html(html);
				$('#name').focus();
			}
		});
	});
	
	$('#readyOrder').live('click', function(){
		this.blur();
		
		var loaderDelay = setTimeout(function(){
			$('#readyOrder').hide();
			$('#OrderProcess').show();
		}, 500);
		
		$.ajax({
			url:	'/basket',
			type:	'POST',
			data:	$.extend({"readyOrder": true}, getFormData()),
			success:	function(html) {
				clearTimeout(loaderDelay);
				if(html == 'ok') {
					$('#popup-order').hide();
					$('#cover').hide();
					$.ajax({
						url: '/catalog/ajaxThanks',
						type:		'GET',
						success:	function(html) {
							$('#wrapThanksText').html(html);
							return showPopup('popup-message');
						}
					});
				} else {
					$('#OrderContent').html(html);
				}
			}
		});
		//$('#popup-order').hide(); $('#cover').hide(); return showPopup('popup-message');
		return false;
	});
	
	//Расхерачим на js контейнер корзины
	$('#basketBlock').css('height', $('#BasketInner').height());
	var basketPosition = $('#basketBlock').offset();
	var basketMaxPosition = $('.footer').offset();
	setTimeout(function(){
		basketMaxPosition = $('.footer').offset();
	}, 5000);
	var basketObj = $('#BasketInner');
	var goScroll = true;
	var currentBasketPosition = basketPosition.top;
	var basketHeight = $('#BasketInner').height();
	$(window).scroll(function() {
		if(!goScroll) return;
		goScroll = false;
		var scrolling = setTimeout(function(){
			clearTimeout(scrolling);
			basketObj.stop();
			
			var scrollTop = $(window).scrollTop();
			var basketHeight = $('#BasketInner').height();
			var nextPos = scrollTop - basketPosition.top;
			if(scrollTop <= basketPosition.top) {
				nextPos = 0;
			}
			
			var bottomPos = nextPos + basketHeight + basketPosition.top;
			if(bottomPos > basketMaxPosition.top -16) {
				nextPos = basketMaxPosition.top - 16 - basketHeight - basketPosition.top;
			}
			
			basketObj.animate({'top': nextPos}, 600, function(){ currentBasketPosition = nextPos; });
			goScroll = true;
		}, 400);
	});
	setTimeout(function(){
		$(window).trigger('scroll');
	}, 1000);
	
	function positionBasket() {
		basketObj = $('#BasketInner');
		basketObj.css({'top': currentBasketPosition});
		$('#basketBlock').show();
	}
	
});

function getFormData() {
	return {
		'area': $('#area').val(),
		'name':	$('#name').val(),
		'phone':	$('#phone').val(),
		'address':	$('#address').val(),
		'time':	$('#time').val(),
		'now':	$('#now').attr('checked')
	};
}

var showPopup = function(id) {
	showCover();
	var popup = $("#"+id);
	var doc = $(document);
	popup.show();
	var mleft = ($(window).width() - popup.width()) / 2;
	var mtop = ($(window).height() - popup.height()) / 2;
	if(mleft < 0) mleft = 0;
	mleft = mleft + doc.scrollLeft();
	if(mtop < 0) mtop = 0;
	mtop = mtop + doc.scrollTop();
	popup.css({left: mleft, top: mtop});
	
	return false;
}

var showCover = function() {
	var cover = $("#cover");
	var doc = $(document);
	cover.css({width: doc.width(), height: doc.height()}).show();
}

function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict; 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
            	return true;
            }
        }
    }
     return false;
}

