var addToCart = function(e){
	
	$("#jsTopCartHide").hide();
	$("#jsTopCartShow").show();
	$("#jsBasketContent").hide();
	
	if (typeof $("input[name='details']").val() == 'undefined' || typeof $("input[name='cart2']", this).val() != 'undefined')
	{
		e.preventDefault();
		
		var prodId = $("input[name='product_id']", this).val();
		var amount = $("input[name='amount']", this).val();
	}
	else
	{
		var prodId = $("input[name='product_id']").val();
		var amount = $("input[name='amount']").val();
	}
	
	waitStartCart();
	var clock = new Date();
	
	/**
	 * Sprawdzenie czy pole select ma wybraną wartość.
	 */
	if (typeof $("input[name='cart2']", this).val() == 'undefined')
	{
		$("select").each(function(i, value){
			if (typeof this.value == 'undefined' || this.value == null || this.value == '' || this.value == 0)
			{
				prodId = 0;
				return false;
			}
		});
	}
	
	/**
	 * Zabezpieczenie na odświeżanie zawartości strony.
	 * Przypdaek gdy wyszstkie widoczne selecty mają wybraną wartość, a pozostałe selecty
	 * nie zostały w ogóle wyświetlone.
	 */
	
	if (typeof $("input[name='cart2']", this).val() == 'undefined')
	{
		$("#selectAttr div").each(function(i, val){
			if ($(val).attr('id'))
			{
				if (typeof $("select", val).val() == 'undefined' || $("select", val).val() == 'undefined')
				{
					prodId = 0;
					return false;
				}
			}
		});
	}
	
	if (prodId == 0)
	{
		$.unblockUI();
		attributeCart();
		return false;
	}
	
		$.ajax({
			type: "POST",
			url: "/jkoszyk",
			dataType: "json",
			data:
			{
				productId: prodId,
				amount: amount
			},
			success: function(result) {
				$('#jsCartAmount').text(result.MCart['allAmount']+' '+result.MCart['string']);
				$('.jsCartAllSum').text(parseFloat(result.MCart['allsum']).toFixed(2));
				$("#jsTopCartProd").text('');
				$.unblockUI();
				addToCartInfo();
			},
			error: function ()
			{
				$.unblockUI();
				addToCartError();
			}
		});
}

function addToCartInfo()
{
	$.blockUI({ 
		message: $('#jsAddToCart'), 
		fadeIn: 700, 
		fadeOut: 700, 
		showOverlay: false,
		css: { 
			border: 'none',
			backgroundColor: 'transparent',
			width: '352px',
			height: '82px',
			textAlign: 'left'
		}
	});
}

function attributeCart()
{
	$.blockUI({ 
		message: $('#jsAttributeCart'), 
		fadeIn: 700, 
		fadeOut: 700, 
		showOverlay: false,
		css: { 
			border: 'none',
			backgroundColor: 'transparent',
			width: '352px',
			height: '82px',
			textAlign: 'left'
		}
	});
}

function addToCartError()
{
	$.blockUI({ 
		message: $('#jsAddToCartError'), 
		fadeIn: 700, 
		fadeOut: 700, 
		showOverlay: false,
		css: { 
			border: 'none',
			backgroundColor: 'transparent',
			width: '352px',
			height: '82px',
			textAlign: 'left'
		}
	});
}

/*!
 * Pokazuje divek Proszę Czekać.
 */
function waitStartCart()
{
	$.blockUI({ 
		message: $('#jsPleaseWaitCart'), 
		fadeIn: 700, 
		fadeOut: 700, 
		showOverlay: false,
		css: { 
			border: 'none',
			backgroundColor: 'transparent',
			width: '352px',
			height: '82px',
			textAlign: 'left'
		}
	});
}

/*!
 * Chowa divek Proszę Czekać.
 */
function waitStopCart(timeStart)
{
	var clock = new Date();

	if (timeStart > 0)
	{
		var showTime = 1500 - (clock.getTime() - timeStart);

		if (showTime > 0)
			setTimeout($.unblockUI, showTime);
		else
			$.unblockUI();
	}
	else
	{
		$.unblockUI();
	}
}

$(document).ready(function(){
	$('.jsAddToCart').submit(addToCart);
		
	$("input[name='cart']").click(addToCart);
	$("input[name='jsGoToCart']").click(function(){
		document.location = '/koszyk';
	});
	$("input[name='jsGoToShop']").click(function(){
		$.unblockUI();
	});
	$("input[name='jsAttributeCheck']").click(function(){
		$.unblockUI();
	});
	$("input[name='jsCartError']").click(function(){
		$.unblockUI();
	});
});
