(function (){
'use strict';
var delay=(function(){
var timers={};
return function(callback, ms, unique){
clearTimeout(timers[unique]);
timers[unique]=setTimeout(callback, ms);
};})();
jQuery.fn.rightpress_live_product_update=function(params){
var self=this;
var form=this.closest('.product').find('form.cart');
var unique=Math.random().toString(36).slice(2);
form.find(':input').on('change keyup', function(){
queue();
});
form.on('rightpress_live_product_update_attach_input', function(event, element){
jQuery(element).find(':input').on('change keyup', function(){
queue();
});
});
form.on('found_variation, rightpress_live_product_update_trigger', function(){
queue();
});
queue();
function call(){
var form_data=form.serialize();
var product_id=params.product_id!==undefined ? params.product_id:form.find('button[type="submit"][name="add-to-cart"]').val();
if(product_id){
form_data +=(form_data!=='' ? '&':'') + 'rightpress_reference_product_id=' + product_id;
}
form.find('input, textarea, select').each(function(){
if(jQuery(this).is(':visible')&&typeof jQuery(this).prop('name')!=='undefined'){
form_data +=(form_data!=='' ? '&':'') + 'rightpress_complete_input_list[]=' + jQuery(this).prop('name');
}});
jQuery.ajax({
type: 'POST',
url: params.ajax_url,
context: self,
data: {
action: params.action,
data:   form_data
},
dataType: 'json',
dataFilter: jQuery.rightpress.sanitize_json_response,
beforeSend: params.before_send,
success: params.response_handler
});
}
function queue(){
delay(function(){
call();
}, 500, unique);
}};}());