diff --git a/js/jquery.inline-confirmation.js b/js/jquery.inline-confirmation.js
index 680a04e..ee4e59a 100644
--- a/js/jquery.inline-confirmation.js
+++ b/js/jquery.inline-confirmation.js
@@ -41,81 +41,88 @@
* cancelCallback function the callback function to execute after the cancel action, accepts the original action object as an argument
*/
-(function($){
-
- $.fn.inlineConfirmation = function(options) {
- var defaults = {
- confirm: "Confirm",
- cancel: "Cancel",
- separator: " ",
- reverse: false,
- hideOriginalAction: true,
- bindsOnEvent: "click",
- expiresIn: 0,
- confirmCallback: function() { return true; },
- cancelCallback: function() { return true; }
+(function ($) {
+
+ $.fn.inlineConfirmation = function (options) {
+ var defaults = {
+ confirm: "Confirm",
+ cancel: "Cancel",
+ separator: " ",
+ reverse: false,
+ hideOriginalAction: true,
+ bindsOnEvent: "click",
+ expiresIn: 0,
+ clickCallback: function () { return true; },
+ confirmCallback: function () { return true; },
+ cancelCallback: function () { return true; },
+ expireCallback: function () { return true; }
+ };
+
+ var original_action;
+ var timeout_id;
+ var all_actions = $(this);
+ var options = $.extend(defaults, options);
+ var block_class = "inline-confirmation-block";
+ var confirm_class = "inline-confirmation-confirm";
+ var cancel_class = "inline-confirmation-cancel";
+ var action_class = "inline-confirmation-action";
+
+ options.confirm = "" + options.confirm + "";
+ options.cancel = "" + options.cancel + "";
+
+ var action_set = options.reverse === false
+ ? options.confirm + options.separator + options.cancel
+ : options.cancel + options.separator + options.confirm;
+
+ $(this).on(options.bindsOnEvent, function (e) {
+ original_action = $(this);
+ var args = new Array();
+ args[0] = original_action;
+
+ all_actions.show();
+ options.clickCallback.apply(this, args);
+ $("span." + block_class).hide();
+
+ if (options.hideOriginalAction === true) {
+ $(this).trigger("update").hide();
+ }
+
+ var active_action_set = $("span." + block_class, $(this).parent());
+
+ if (active_action_set.length > 0) {
+ active_action_set.show();
+ } else {
+ $(this).after("" + action_set + "");
+ }
+
+ if (options.expiresIn > 0) {
+ timeout_id = setTimeout(function () {
+ $("span." + block_class, original_action.parent()).hide();
+ original_action.show();
+
+ options.expireCallback.apply(this, args);
+ }, options.expiresIn * 1000);
+ }
+
+ e.preventDefault();
+ return false;
+ });
+
+ $(this).parent().delegate("span." + action_class, "click", function () {
+ clearTimeout(timeout_id);
+ $(this).parent().hide();
+ original_action.show();
+
+ var args = new Array();
+ args[0] = original_action;
+
+ if ($(this).hasClass(confirm_class)) {
+ options.confirmCallback.apply(this, args);
+ } else {
+ options.cancelCallback.apply(this, args);
+ }
+ return false;
+ });
};
- var original_action;
- var timeout_id;
- var all_actions = $(this);
- var options = $.extend(defaults, options);
- var block_class = "inline-confirmation-block";
- var confirm_class = "inline-confirmation-confirm";
- var cancel_class = "inline-confirmation-cancel";
- var action_class = "inline-confirmation-action";
-
- options.confirm = "" + options.confirm + "";
- options.cancel = "" + options.cancel + "";
-
- var action_set = options.reverse === false
- ? options.confirm + options.separator + options.cancel
- : options.cancel + options.separator + options.confirm;
-
- $(this).on(options.bindsOnEvent, function(e) {
- original_action = $(this);
-
- all_actions.show();
- $("span." + block_class).hide();
-
- if (options.hideOriginalAction === true) {
- $(this).trigger("update").hide();
- }
-
- var active_action_set = $("span." + block_class, $(this).parent());
-
- if (active_action_set.length > 0) {
- active_action_set.show();
- } else {
- $(this).after("" + action_set + "");
- }
-
- if (options.expiresIn > 0) {
- timeout_id = setTimeout(function() {
- $("span." + block_class, original_action.parent()).hide();
- original_action.show();
- }, options.expiresIn * 1000);
- }
-
- e.preventDefault();
- return false;
- });
-
- $(this).parent().delegate("span." + action_class, "click", function() {
- clearTimeout(timeout_id);
- $(this).parent().hide();
- original_action.show();
-
- var args = new Array();
- args[0] = original_action;
-
- if ($(this).hasClass(confirm_class)) {
- options.confirmCallback.apply(this, args);
- } else {
- options.cancelCallback.apply(this, args);
- }
- return false;
- });
- };
-
})(jQuery);