var changeCountTimer = null;

function openBasket() {
	$("#basket_overlay").slideToggle('1000', function() {
		if($("#basket_overlay").css('display') == 'block') {
			loadBasket();
			loadShops();
			loadAddresses();
			$.scrollTo('#basket_overlay', 500);
		}			
	});	
}

$(document).ready(function() {
	
	$("#basket_thumb, #basket .button_buy").live('click', function() {
		//$("div#basket_block").html( '<div class="clear">&nbsp;</div><div style="width: 100%; text-align: center; margin: 20px 0 10px 0;"><img src="/public/assets/img/ajaxloading.gif" alt="" title="" border="0" /></div>' );
		$.scrollTo("#wrapper", 500);
		$("#compare_overlay").slideUp('normal');
		openBasket();
	});
	
	//add product
	$("a.buy, .colum_compare a.button_buy, .gift a.button_buy, .add-order-product").live( "click", function(){
		
		if($(this).attr('rel') != '') {
			$("#basket-loading").fadeIn('slow');
			
			if($(".additional-extra:checked").length > 0) {
				$.ajax({
					url: extURL+'basket/?'+$(".additional-extra:checked").serialize(),
					type: "POST",
					dataType: 'script',
					data: { action: "add", id: $(this).attr('rel') },
					success: function() { 
						loadBasketLabel(); 
						$("#basket-loading").fadeOut('slow'); 
					
						openBasket();
					}
				});
			}
			else {
				$.ajax({
					url: extURL+'basket/',
					type: "POST",
					dataType: 'script',
					data: { action: "add", id: $(this).attr('rel') },
					success: function() { 
						loadBasketLabel(); 
						$("#basket-loading").fadeOut('slow'); 

						openBasket();
					}
				});
			}

		}
	    return false;
	});  
	
	//add complect
	$("#package a.button_buy, .add-order-complect").live( "click", function(){
		if($(this).attr('rel') != '') {
			$("#basket-loading").fadeIn('slow');
			
			if($(".additional-extra:checked").length > 0) {
				$.ajax({
					url: extURL+'basket/?'+$(".additional-extra:checked").serialize(),
					type: "POST",
					dataType: 'script',
					data: { action: "add_complect", id: $(this).attr('rel') },
					success: function() { 
						loadBasketLabel(); 
						$("#basket-loading").fadeOut('slow');
						
						openBasket();
					}
				});
			}
			else {
				$.ajax({
					url: extURL+'basket/',
					type: "POST",
					dataType: 'script',
					data: { action: "add_complect", id: $(this).attr('rel') },
					success: function() { 
						loadBasketLabel(); 
						$("#basket-loading").fadeOut('slow'); 

						openBasket();
					}
				});
			}
			
		}
	    return false;
	});  
	
	//show login form
	$('#existing_customer').live('click', function() {
		$("#basket-account-form").slideUp('slow', function() {
			$("#basket-login-form").slideDown('slow');
		})
	});

	//show register form
	$('#new_customer').live('click', function() {
		$("#basket-login-form").slideUp('slow', function() {
			$("#company").click();
			$("#basket-account-form").slideDown('slow');
		})
	});
	
	//Change delivery
	$("#basket-delivery-shop").live('click', function() {
		$("#basket-addresses").slideUp('slow', function() {
			$("#basket-add-address").slideUp();
			$("#basket-offices").slideDown('slow');
		});
		$("#basket-delivery-p").slideUp('slow');
	});

	$("#basket-delivery-curier").live('click', function() {
		$("#basket-offices").slideUp('slow', function() {
			if(loggedIn) {
				$("#basket-add-address").hide();
				$("#basket-addresses").slideDown('slow');
			}
			else {
				$("#basket-add-address").slideDown();
			}
		});
		$("#basket-delivery-p").slideUp('slow');
	});
	
	$("#add-address-btn").live('click', function() {
		$("#basket-add-address").slideToggle('slow');		
	});
	
	//Copy invoice data
	$("#copy_addres").live('click', function() {
		if($(this).is(":checked")) {
			$("#basket-invoice_name").val($("#basket-person_name").val());
			$("#basket-invoice_address").val($("#basket-address").val());
			$("#basket-invoice_city").val($("#basket-city").val());
			$("#basket-invoice_postcode").val($("#basket-post_code").val());
		}
	});
	
	//Use promo code
	$("#basket-use-promo").live('click', function() {
		$("#basket-loading").fadeIn('slow');
		$.ajax({
			url: extURL+'basket/',
			type: "POST",
			dataType: 'script',
			data: { action: "use_promo", code: $("#basket-promo_code").val() },
			success: function() { $("#basket-loading").fadeOut('slow'); }
		});
	});
	
	//Use pc leva
	$("#basket-use-pc").live('click', function() {
		$("#basket-loading").fadeIn('slow');
		$.ajax({
			url: extURL+'basket/',
			type: "POST",
			dataType: 'script',
			data: { action: "use_pcleva", pclv: $("#basket-pc_leva").val() },
			success: function() { $("#basket-loading").fadeOut('slow'); }
		});
	});
	
	//Reload basket info
	$("#basket-payment-cart, #basket-payment-bank, #basket-payment-deliver, #basket-payment-leasing, #basket-delivery-curier, #basket-delivery-shop").live('click', function() {
		
		if($(this).val() == 'deliver') {
			$("#basket-delivery-curier").attr('checked', true);
			$("#basket-delivery-shop").attr('disabled', true);
			
			$("#basket-offices").slideUp('slow', function() {
				if(loggedIn) {
					$("#basket-add-address").hide();
					$("#basket-addresses").slideDown('slow');
				}
				else {
					$("#basket-add-address").slideDown();
				}
			});
			$("#basket-delivery-p").slideUp('slow');
		}
		else {
			$("#basket-delivery-shop").attr('disabled', false);
		}
		
		loadBasket();
	});
	
	$(".additional-extra").live('click', function() {
		var addPrice = 0;
		$(".additional-extra").each(function() {
			if($(this).is(":checked")) {
				addPrice += parseFloat($(this).attr('rel'));
			}
		});
		
		var productPrice = parseFloat($("#product-price-input").val()) + parseFloat(addPrice);
		$("#product-price").html(productPrice.toFixed(0)+' лв.');
		
		$(".complect-price-input").each(function() {
			var cprice = parseFloat($(this).val()) + parseFloat(addPrice);
			$(this).prev('.complect-price').html(cprice.toFixed(0)+' лв.');
		});
		
	});

});

function loadBasket() {
	
	var payment = '';
	if($("#basket-payment-cart").is(':checked')) { payment = 'cart'; }
	if($("#basket-payment-bank").is(':checked')) { payment = 'bank'; }
	if($("#basket-payment-deliver").is(':checked')) { payment = 'deliver'; }
	if($("#basket-payment-leasing").is(':checked')) { payment = 'leasing'; }
	
	var delivery = 'false';
	if($("#basket-delivery-curier").is(":checked")) { delivery = 'true'; }
	
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "GET",
		dataType: 'script',
		data: { action: "load", payment: payment, delivery: delivery },
		success: function() { $("#basket-loading").fadeOut('slow'); }
	});
}

function loadShops() {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "GET",
		dataType: 'script',
		data: { action: "load_shops" },
		success: function() { $("#basket-loading").fadeOut('slow'); }
	});
}

function loadAddresses() {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "GET",
		dataType: 'script',
		data: { action: "load_addresses" },
		success: function() { $("#basket-loading").fadeOut('slow'); }
	});
}

function loadBasketLabel() {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "GET",
		dataType: 'script',
		data: { action: "load_label" },
		success: function() { $("#basket-loading").fadeOut('slow'); }
	});
}

function changeBasketCountClear() {
	clearTimeout(changeCountTimer);
}

function changeBasketCountInit(count, product) {
	changeCountTimer = setTimeout('changeBasketCount('+count+', '+product+');', 500);
}

function changeBasketCount(count, product) {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "POST",
		dataType: 'script',
		data: { action: "change_count", count: count, product: product },
		success: function() {
			loadBasket();
			$("#basket-loading").fadeOut('slow');
		}
	});
}

function changeBasketComplectCount(count, complect) {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "POST",
		dataType: 'script',
		data: { action: "change_complect_count", count: count, complect: complect },
		success: function() {
			loadBasket();
			$("#basket-loading").fadeOut('slow');
		}
	});
}

function basketLogin() {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "POST",
		dataType: 'script',
		data: { action: "login", email: $("#basket-login-email").val(), password: $("#basket-login-password").val(), remember: $("#basket-login-remember").is(":checked") },
		success: function() { $("#basket-loading").fadeOut('slow'); }
	});
}

function showForgottenBox() {
	$("#basket_overlay").slideUp('slow', function() {
		$("#forgot_password").slideDown('slow');
	});	
}

function submitBasket() {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/?'+$('#basket-form').serialize(),
		type: "POST",
		dataType: 'script',
		data: { action: "finish_order" },
		success: function() { updateCustomSelects(); $("#basket-loading").fadeOut('slow'); }
	});
	return false;
}

function deleteProduct(id) {
	$("#basket-loading").fadeIn('slow');
	$.ajax({
		url: extURL+'basket/',
		type: "POST",
		dataType: 'script',
		data: { action: "delete", id: id },
		success: function() { loadBasketLabel(); $("#basket-loading").fadeOut('slow'); }
	});
    return false;
}

function reOrder(id) {
	$.ajax({
		url: extURL+'basket/',
		type: "POST",
		dataType: 'script',
		data: { action: "reorder", id: id },
		success: function() { loadBasketLabel(); }
	});
    return false;
}

function updateCustomSelects() {
	$('select').each(function() {
		if ($(this).hasClass('invalid')) {
			$('.custom-select#'+$(this).attr('id')).addClass('invalid');
		} else {
			$('.custom-select#'+$(this).attr('id')).removeClass('invalid');
		}
	});
}

