AJAX múltiplo solicita funções combinadas em um?

Tenho praticamente a mesma chamada de solicitação do Ajax, mas preciso expandi-la para ser mais genérica

Veja o código de exemplo:http: //jsfiddle.net/2b8gR/6

Eu o trabalho para a Página A e quero usá-lo para a Página B, C, D, etc ... mas não quero reescrever a função para cada nova solicitação do Aja

A maior parte do código permanecerá o mesmo, exceto:

input próximo / anterior (page_a_next torna-se page_b_next)display page div (display_page_a_page se torna display_page_b_page)display page number div (display_page_a_number torna-se display_page_b_number)ajax solicita o nome da página do URL (url: 'page_a.php? page =' + currentPageA, torna-se url: 'page_b.php? page =' + currentPageB,)

e assim por diante

Como faço para que a chamada e os elementos do Ajax sejam mais genéricos, para que eu não precise escrever essa solicitação várias vezes?

NOTA: Eu preciso ser capaz de acompanhar cada página (A, B, C, etc ...) exibida no momento. E sim, todos estes estão na mesma página

HTML:

<!-- Page A -->
<div>
    <span>Page A</span>
    <input id="page_a_next" name="page_a_next" type="button" value="Next" data-inline="true" />
    <input id="page_a_prev" name="page_a_prev" type="button" value="Previous" data-inline="true" /> 
</div>   
<div id="display_page_a_page" name="display_page_a_page">
</div>
<div id="display_page_a_number" name="display_page_a_number">
</div>

<!-- Page B -->
<div>
    <span>Page B</span>
    <input id="page_b_next" name="page_b_next" type="button" value="Next" data-inline="true" />
    <input id="page_b_prev" name="page_b_prev" type="button" value="Previous" data-inline="true" /> 
</div>   
<div id="display_page_b_page" name="display_page_b_page">
</div>
<div id="display_page_b_number" name="display_page_b_number">
</div>

JS:

var currentPageA=1;
var totalPageA=113;
loadPageA();

$("#page_a_next, #page_a_prev").click(function(){
    currentPageA = ($(this).attr('id')=='page_a_next') ? currentPageA + 1 : currentPageA - 1;

    if(currentPageA<=0) {
        currentPageA=1;                
        $('#page_a_prev').attr('disabled','disabled');
    } else if(currentPageA==114) {
        currentPageA=113;
        $('#page_a_next').attr('disabled','disabled');
    } else {
        loadPageA();
    }                
});

function loadPageA(){
    $('#page_a_next').attr('disabled','disabled');
    $('#page_a_prev').attr('disabled','disabled');

    $.ajax({
        url: 'page_a.php?page='+currentPageA,
        type: 'POST',
        error : function (){ alert('Error'); }, 
        success: function (data) {
            $('#display_page_a_number').html(currentPageA + ' of ' + totalPageA);
            $('#display_page_a_page').html(data);
            $('#page_a_next').attr('disabled','');
            $('#page_a_prev').attr('disabled','');
        }
    });
}

questionAnswers(3)

yourAnswerToTheQuestion