function karma(thumb,amount) {
	var req = initrequest();
	if (!req) {
		return;
	}
	var karma = thumb.parentNode.getAttribute('karma');
	var id = thumb.parentNode.getAttribute('elementid');
	var remove =
		amount > 0 && karma > 0
	||	amount < 0 && karma < 0;

	var poststr = 'ELEMENT='+encodeURIComponent(karma_element)+'&ID='+encodeURIComponent(id)+'&CRC='+karma_crc;
	if (amount < 0) {
		poststr += '&NEGATIVE=true';
	}
	if (remove) {
		poststr += '&REMOVE=true';
	}
	req.open('POST','/karma.act',true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.onreadystatechange = function() {
		if (req.readyState != 4) {
			return;
		}
		if (req.status == 200) {
			if (remove) {
				thumb.parentNode.setAttribute('karma',0);
				thumb.className += ' inactive';
				return;
			}
			thumb.parentNode.setAttribute('karma',amount);
			remclass(thumb,'inactive');
			if (amount > 0) {
				thumb.nextSibling.className += ' inactive';
			} else {
				thumb.previousSibling.className += ' inactive';
			}
		}
	};
	req.send(poststr);
}
