function give_reputation(obj, user, mode, influence) {
	// Build Form
	if(typeof obj != "object") {
		obj = get(obj, ID);
	}
	var holder = ajax_box();
	var pos = get_position(obj);
	holder.style.width = '205px';
	holder.style.top = (pos[0] + obj.offsetHeight + 2)+'px';
	holder.style.left = (pos[1] - 50 + obj.offsetWidth)+'px';
	if(influence <= 0) influence = 1;
	form_str = "<form name=\"reputation_form\" onsubmit=\"return give_reputation_submit('"+ user +"', '"+ mode +"');\"><span style=\"float: left;\"><span class=\"title\">"+ mode.charAt(0).toUpperCase() + mode.substr(1, mode.length-1) +" Reputation ("+ influence +"%)</span><br />Reason: <input type=\"text\" name=\"reputation_reason\" id=\"reputation_reason\" size=\"25\" /><br /><input type=\"button\" onclick=\"give_reputation_submit('"+ user +"', '"+ mode +"');\" value=\"Submit\" /><input type=\"button\" value=\"Cancel\" onclick=\"show_hide('ajax_box');\" /></span>";
	form_str += "</form>";
	holder.innerHTML = form_str;
	return false;
}
function give_reputation_submit(user, mode) {
	show_hide('ajax_box');
	reason = document.getElementById('reputation_reason').value;
	dataRequest("/action/reputation/user/"+ escape(user) +"/mode/"+ escape(mode) +"/reason/"+ escape(reason));
	return false;
}
function update_reputation_display(user, inf) {
	var span = get('span', TAG);
	for(i=0; i<span.length; i++) {
		if(span.item(i).className.match(new RegExp('(^|\s)'+user+'_rep_display(\s|$)', 'i'))) {
			rep = parseInt(span.item(i).innerHTML) + inf;
			span.item(i).innerHTML = rep + "%";
		}
	}
	var a = get('a', TAG);
	for(i=0; i<a.length; i++) {
		if(a.item(i).className.match(/(^|\s)rep_control(\s|$)/i)) {
			a.item(i).style.display = 'none';
		}
	}
}