$(document).observe('dom:loaded', function(){
    $$('div.vote').each(function(vote){
        var updateFunction = function(event){
            if(!KB.Config.hasLogin()) return;
            Event.stop(event);
            var lastValue=Number(event.target.innerHTML);
            event.target.innerHTML='+';
            new Ajax.Request(event.target.href,
                {
                    method: 'get',
                    onSuccess: function(transport) {
                        if(transport.responseText=='success'){
                            event.target.innerHTML=lastValue+1;
                        } else{
                            alert(transport.responseText);
                            event.target.innerHTML=lastValue;
                        }
                    }
                }
            );
        }
        vote.down('.up').observe('click',updateFunction);
        vote.down('.down').observe('click',updateFunction);
    });
});