function number_format (number, decimals, dec_point, thousands_sep){
number=(number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0:+number,
prec = !isFinite(+decimals) ? 0:Math.abs(decimals),
sep=(typeof thousands_sep==='undefined') ? ',':thousands_sep,
dec=(typeof dec_point==='undefined') ? '.':dec_point,
s='',
toFixedFix=function (n, prec){
var k=Math.pow(10, prec);
return '' + Math.round(n * k) / k;
};
s=(prec ? toFixedFix(n, prec):'' + Math.round(n)).split('.');
if(s[0].length > 3){
s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if((s[1]||'').length < prec){
s[1]=s[1]||'';
s[1] +=new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
function wc_price(price, wc_settings_args, numberonly=false){
var default_args={
decimal_sep: wc_settings_args.decimal_separator,
currency_position: wc_settings_args.currency_position,
currency_symbol: wc_settings_args.currency_symbol,
thousand_sep: wc_settings_args.currency_format_thousand_separator,
num_decimals: wc_settings_args.currency_format_num_decimals,
html: true
};
price=number_format(price, default_args.num_decimals, default_args.decimal_sep, default_args.thousand_sep);
var formatted_price=price;
if(!numberonly){
formatted_price='<span class="woocommerce-price-amount">' + formatted_price + '</spam>';
var formatted_symbol=default_args.html ? '<span class="woocommerce-Price-currencySymbol">' + default_args.currency_symbol + '</span>':default_args.currency_symbol;
if('left'===default_args.currency_position){
formatted_price=formatted_symbol + formatted_price;
}else if('right'===default_args.currency_position){
formatted_price=formatted_price + formatted_symbol;
}else if('left_space'===default_args.currency_position){
formatted_price=formatted_symbol + ' ' + formatted_price;
}else if('right_space'===default_args.currency_position){
formatted_price=formatted_price + ' ' + formatted_symbol;
}}
formatted_price=default_args.html&&formatted_price;
return formatted_price;
}
function block_popup(){
jQuery('#loader-overlay').removeClass('hidden');
}
function unblock_popup(){
jQuery('#loader-overlay').addClass('hidden');
}
function myupdate_cart(qty_element, cart_key,new_qty){
block_popup();
jQuery.ajax({
url: xoo_cp_localize.wc_ajax_url.toString().replace('%%endpoint%%', 'mycart_cp_update_cart'),
type: 'POST',
data: {
cart_key: cart_key,
new_qty: new_qty
},
success: function(response){
if(response.fragments){
console.log(response);
qty_element.val(new_qty);
var jc=Number(qty_element.parents('.cart-product').find('.product-price').find('.woocommerce-price-amount').html());
console.log('jednotkova cena, mnozstvo a celkova cena:');
console.log(jc);
var mn=Number(qty_element.val());
console.log(mn);
var cc=wc_price(jc*mn,wc_settings_args,true);
console.log(cc);
if(mn===0){
qty_element.parents('.cart-product').remove();
}else{
qty_element.parents('.cart-product').find('.product-subtotal').find('.woocommerce-price-amount').html(cc);
}
jQuery.each(response.fragments, function(key, value){
jQuery(key).html(value);
});
if(response.items_count===0){
block_popup();
location.reload();
}}else{
console.log(response);
}
unblock_popup();
}})
}
jQuery(document).on('click', '.mycart-chng' , function(){
var _this=jQuery(this);
var qty_element=_this.parents('.cart-product').find('.mycart-cp-qty');
qty_element.trigger('focusin');
var input_qty=parseFloat(qty_element.val());
var step=parseFloat(qty_element.attr('step'));
var min_value=parseFloat(qty_element.attr('min'));
var max_value=parseFloat(qty_element.attr('max'));
if(_this.hasClass('mycart-remove')){
var new_qty=0;
}
else if(_this.hasClass('mycart-plus')){
var new_qty=input_qty + step;
if(new_qty > max_value&&max_value > 0){
alert('Maximum Quantity: ' + max_value);
return;
}}else if(_this.hasClass('mycart-minus')){
var new_qty=input_qty - step;
if(new_qty===0){
_this.parents('.cart-product').find('.cart-title-price-remove').find('.mycart-remove').trigger('click');
return;
}else if(new_qty < min_value){
return;
}else if(input_qty < 0){
alert('Invalid');
return;
}}
var cart_key=qty_element.data('cart_item_key');
myupdate_cart(qty_element, cart_key, new_qty);
});
jQuery(document).on('change','.mycart-cp-qty',function(e){
var _this=jQuery(this);
var new_qty=parseFloat(jQuery(this).val());
var step=parseFloat(jQuery(this).attr('step'));
var min_value=parseFloat(jQuery(this).attr('min'));
var max_value=parseFloat(jQuery(this).attr('max'));
var invalid=false;
if(new_qty===0){
_this.parents('.xoo-cp-pdetails').find('.xoo-cp-remove-pd').trigger('click');
return;
}
else if(isNaN(new_qty)||new_qty < 0){
invalid=true;
}
else if(new_qty > max_value&&max_value > 0){
alert('Maximum Quantity: ' + max_value);
invalid=true;
}
else if(new_qty < min_value){
invalid=true;
}
else if((new_qty % step)!==0){
alert('Quantity can only be purchased in multiple of ' + step);
invalid=true;
}else{
var cart_key=jQuery(this).data('cart_item_key');
myupdate_cart(jQuery(this), cart_key, new_qty);
}
if(invalid===true){
jQuery(this).val(focus_qty);
}});
jQuery(document).on('focusin','.mycart-cp-qty',function(){
focus_qty=jQuery(this).val();
});