function UpdateBGSoundSetting(newSoundStatus){
	var options={
		type:'POST', 
		async:false,
		data: {'action':'UpdateBGSoundSetting', 'SoundStatus':newSoundStatus},
		success:function(data, status){
			// data received from server
			if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
				alert('Unexpected response from server!');
			}else if(data.rc==1){ //ok				
			}else{
				alert(data.msg);
			}	
		}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		},	
		url: defaultRequestUrl, 
		dataType:'json', 
		timeout:10000
	};
	$.ajax(options);
	return false;
}

function SetSelectedOrderPaymentMethod(requestUrl, frmID, paymentMethodID){
	var options={
		type:'POST', 
		async:false,
		data: {'action':'SetSelectedOrderPaymentMethod', 'PaymentMethodID':paymentMethodID},
		success:function(data, status){
			// data received from server
			if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
				alert('Unexpected response from server!');
			}else if(data.rc==1){
				$(frmID).submit();
			}else{
				alert(data.msg);
			}	
		}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		},	
		url: requestUrl, 
		dataType:'json', 
		timeout:10000
	};
	$.ajax(options);
	return false;
}

function LoadProductCombinationData(requestUrl){
	var frmAddToShoppingBasket=$('#frmAddToShoppingBasket');
	$fldAction = $("input[name='action']", frmAddToShoppingBasket);
	$fldAction.val('LoadProductCombinationData');	
	
	var options={
			type:'POST', 
			async:false, 
			success:function(data, status){
				// data received from server
				if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
					alert('Unexpected response from server!');
				}else if(data.rc=='1'){
					if(data.values==undefined){
					}else{						
						for( k in data.values ) {
							var htmlID = '#'+k; 
							var htmlElement = $(htmlID);
							if(htmlElement!=undefined){
								htmlElement.html(data.values[k]);
							}else{ // skip
							}	
						}
					}
				}else if(data.rc=='-1'){
					if(data.values==undefined){
					}else{						
						for( k in data.values ) {
							var htmlID = '#'+k; 
							var htmlElement = $(htmlID);
							if(htmlElement!=undefined){
								htmlElement.html(data.values[k]);
							}else{ // skip
							}	
						}
					}
					alert(data.msg);
				}else{
					alert(data.msg);
				}	
			}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		} , 
		url:requestUrl, 
		dataType:'json', 
		timeout:10000
	};
	frmAddToShoppingBasket.ajaxSubmit(options);		
	return false;
}

function SpecialProductActionForShoppingBasket(action, productID, requestUrl){
	var result = false;
	var options={
		type:'POST', 
		async:false,
		data: {'action':action, 'product_id':productID},
		success:function(data, status){
			// data received from server
			if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
				alert('Unexpected response from server!');
			}else if(data.rc==1){
				if(data.values==undefined){
				}else{	// console.log(data);										
				}
				result = true; // ok
			}else{
				alert(data.msg);				
			}	
		}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		}, 
		url: requestUrl, 
		dataType:'json', 
		timeout:10000
	};
	$.ajax(options);
	return result;	
}


function AddToShoppingBasket(requestUrl){
	var frmAddToShoppingBasket=$('#frmAddToShoppingBasket'); 
	var frmAddedToShoppingBasket=$('#frmAddedToShoppingBasket');
	var btnCheckoutButton=$('#CheckoutButton');
	var topLinkShoppingBasket = $('#TopLinkShoppingBasket');
	
	$fldAction = $("input[name='action']", frmAddToShoppingBasket);
	$fldAction.val('AddProductToShoppingBasket');
	
	var options={
			type:'POST', 
			async:false, 
			success:function(data, status){
				// data received from server
				if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
					alert('Unexpected response from server!');
				}else if(data.rc=='1'){
					var newHeight = frmAddToShoppingBasket.outerHeight();
					frmAddedToShoppingBasket.css('height', newHeight - 40 );
					frmAddToShoppingBasket.toggle();	
					frmAddedToShoppingBasket.toggle();
					btnCheckoutButton.show();
					topLinkShoppingBasket.attr('onclick',''); 
					
					if(data.values==undefined){
					}else{
						//console.log(data);
						for( k in data.values ) {
							var htmlID = '#'+k; 
							var htmlElement = $(htmlID);
							if(htmlElement!=undefined){
								htmlElement.html(data.values[k]);
							}else{ // skip
							}	
						}
					}
					
				}else{
					alert(data.msg);
				}	
			}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		} , 
		url:requestUrl, 
		dataType:'json', 
		timeout:10000
	};
	frmAddToShoppingBasket.ajaxSubmit(options);		
	return false;
}


function IncreaseProductFromShoppingbasket(orderLineID, requestUrl, productVariantID){
	ShoppingbasketAction('IncreaseProductFromShoppingBasket', orderLineID, requestUrl, productVariantID);
	return false;
}
	
function DecreaseProductFromShoppingbasket(orderLineID, requestUrl, productVariantID){
	ShoppingbasketAction('DecreaseProductFromShoppingBasket', orderLineID, requestUrl, productVariantID);
	return false;
}
	
function RemoveProductFromShoppingbasket(orderLineID, requestUrl, productVariantID){
	ShoppingbasketAction('RemoveProductFromShoppingBasket', orderLineID, requestUrl, productVariantID);
	return false;
}


function ShoppingbasketAction(action, orderLineID, requestUrl, productVariantID){
	var options={
		type:'POST', 
		async:false,
		data: {'action':action, 'productVariantID':productVariantID},
		success:function(data, status){
			// data received from server
			if(data==undefined || data.rc==undefined || (data.rc!=1 && data.msg==undefined)){
				alert('Unexpected response from server!');
			}else if(data.rc==1){
				if(data.values==undefined){
				}else{
					//console.log(data);
					for( k in data.values ) {
						var htmlID = '#'+k; 
						var htmlElement = $(htmlID);
						if(htmlElement!=undefined){
							htmlElement.html(data.values[k]);
						}else{ // skip
						}	
					}
					
					var v = data.values['orderLine_quantity_'+productVariantID];
					if(v!=undefined	&& v==0){
						$(orderLineID).remove();
					}
					
					var v = data.values['order_items'];
					if(v!=undefined	&& v==0){
						$('#shoppingBasketOverview').hide();
						$('#shoppingBasketBtnPay').hide();
						$('#noShoppingBasketOrderLines').show();
					}					
				}				
			}else{
				alert(data.msg);
			}	
		}, 
		error:function(xhr, status, errorThrown){
			alert('An error has occured!');
		}, 
		url: requestUrl, 
		dataType:'json', 
		timeout:10000
	};
	$.ajax(options);
	return null;
}
