function BxBlgVote (iEntryId, iVote, sPlace, sModuleUri) {
	var $this = this;

    this.updateVoteCount = function (i) {        
        var s = 'blg_count_vote_' + (i > 0 ? 'positive' : 'negative');
        var e = $(s);        
        if (!e) return;
        var ii = parseInt(e.innerHTML);
        ii += 1;
        e.innerHTML = ii;
    };

	var h = function (r) {		
		var o = new BxXmlRequest('','','');			
		var ret = o.getRetNodeValue (r, 'ret');
		
		if(ret == 'err') {
			alert ('Voting error');
		}
		else if(ret == 'login') {
			showLoginForm();
		}
		else if(ret == 'dup') {
			alert ('Duplicate vote');
		}
                //--- EXP - BEGIN - Check for purchasing ---//
		else if(ret == 'unpermited') {
			alert("You need to buy this extension to be able to vote it.");
		}
		//--- EXP - END - Check for purchasing ---//
                else if(ret.substr(0, 6) == 'error:') {
			alert(ret.substr(6));
		}
		else {
            $this.updateVoteCount(iVote);
			$('entry_vote_' + iEntryId).innerHTML = ret;
		}		

		return false;
	};
	
	var sAction = 'xml_vote';
	if(sPlace == 'comment')
		sAction = 'xml_vote_comment';

    if (!sModuleUri.length)
        sModuleUri = aBxConfig['moduleUri'];

	new BxXmlRequest (aBxConfig['urlRoot'] + sModuleUri + sAction + "/?id=" + iEntryId + '&vote=' + iVote + '&place=' + sPlace + '&date=' + (new Date()), h, true);

	return false;
}
