function affirm(elem) {
    var id = $(elem).parent().parent().attr('id');
    $.get( '/affirm', {fid: id} )
        .done( function(data) {
            $(elem).hide('slow', function() { $(elem).remove() });
        });
}
function start(elem) {
    var eid = $(elem).parent().parent().attr('id');
    $.get( '/start', {eid: eid} )
        .done( function(data) {
            $(elem).hide('slow', function() { $(elem).remove() });
        });
}
function pay(elem) {
    var eid = $(elem).parent().parent().attr('id');
    $.get( '/pay', {eid: eid} )
        .done( function(data) {
            $(elem).hide('slow', function() { $(elem).remove() });
        });
}

function participate(elem) {
    var eid = $(elem).parent().parent().attr('id');
    $.get( '/participate', {eid: eid} )
        .done( function(data) {
            $(elem).hide('slow', function() { $(elem).remove() });
        });

}

@@ -1,226 +1,595 @@
-function affirm(elem) %7B%0A    var id = $(elem).parent().parent().attr('id');%0A    $.get( '/affirm', %7Bfid: id%7D )%0A        .done( function(data) %7B%0A            $(elem).hide('slow', function() %7B $(elem).remove() %7D);%0A        %7D
+// core%0A%22use strict%22;%0A%0Afunction replace(data) %7B%0A%09var error_holder = $('#error');%0A%09if (data) %7B%0A%09%09var result = JSON.parse(data);%0A%09%09var err_msg = result.error;%0A%09%09if (err_msg) %7B%0A%09%09%09$(error_holder).text(err_msg);%0A%09%09%09return;%0A%09%09%7D%0A%09%09var action = $(this).parent();%0A%09%09$(this).hide('slow', function() %7B $(this).remove(); %7D);%0A%09%09$(action).append(data);%0A%09%7D%0A%09else %7B%0A%09%09$(error_holder).text(%22Internal: Response is empty. Look handlers, Luke.%22);%0A%09%7D%0A%7D%0A%0A// actions%0Afunction affirm(elem) %7B%0A    var id = $(elem).parent().parent().attr('id');%0A    $.get( '/affirm',       %7Bfid: id%7D ).done( replace.bind(elem) 
 );%0A%7D%0A
+%0A
 func
@@ -679,16 +679,23 @@
 /start',
+       
  %7Beid: e
@@ -703,122 +703,40 @@
 d%7D )
-%0A        .done( function(data) %7B%0A            $(elem).hide('slow', function() %7B $(elem).remove() %7D);%0A        %7D
+.done( replace.bind(elem) 
 );%0A%7D%0A
+%0A
 func
@@ -796,32 +796,46 @@
 t().attr('id');%0A
+    var parts%0A
     $.get( '/pay
@@ -841,129 +841,68 @@
 y', 
-%7Beid: eid%7D )%0A        .done( function(data) %7B%0A            $(elem).hide('slow', function() %7B $(elem).remove() %7D);%0A        %7D
+         %7Beid: 100500, parts: 0%7D ).done( replace.bind(elem) 
 );%0A%7D
@@ -1010,16 +1010,17 @@
 cipate',
+ 
  %7Beid: e
@@ -1028,119 +1028,35 @@
 d%7D )
-%0A        .done( function(data) %7B%0A            $(elem).hide('slow', function() %7B $(elem).remove(
+.done( replace.bind(elem
 ) 
-%7D
 );%0A
-        %7D);%0A%0A
 %7D%0A

add basic function for replacing.