function lame_action(pid) {
	var url = $('lame_button' + pid).down(0).readAttribute('href');
	var url_object = url.toQueryParams();
	var action = url_object.action;
	var new_action = action == 'lame' ? 'remove_lame' : 'lame';

	if (parseInt(pid) && (action == 'lame' || action == 'remove_lame')) 
	{
		this.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"});
		new Ajax.Request(
			'xmlhttp.php', {
			method: 'post',
			parameters: {action: action, pid: pid},
			onSuccess: function(data) {
				var response = data.responseText.evalJSON();
				if (response.success) {
					$('lame_' + pid).update(response.block);

					url_object.action = new_action;
					var new_url = 'showthread.php?' + $H(url_object).toQueryString();
					if ((!response.can_remove_lame && action == 'lame') 
							|| (!response.can_add_lame && action == 'remove_lame')
							|| (response.lame_limit && action == 'remove_lame')) 
					{
						$('lame_button' + pid).down().remove();
					} 
					else 
					{
						$('lame_button' + pid).down().update(response.image);
						$('lame_button' + pid).down().writeAttribute('href', new_url);
					}
					
					if (action == 'lame') 
					{
						$('lame_button' + pid).removeClassName('lame_add');
						$('lame_button' + pid).addClassName('lame_remove');
					} 
					else 
					{
						$('lame_button' + pid).removeClassName('lame_remove');
						$('lame_button' + pid).addClassName('lame_add');
					}

					removeSpinner();
					
					if (response.lame_limit) {
						removeLameAdd(); 
					} else if (response.below_limit && response.can_add_lame) {
						var lame_add = $$('.lame_add');
						var id = '';
						var id_name = '';
						var rebuild_url = '';
						
						lame_add.each(function(item, i) {
							if (lame_add[i].empty()) {
								id_name = lame_add[i].readAttribute('id');
								id = id_name.slice(11);
								rebuild_url = 'showthread.php?action=lame&tid='+url_object.tid+'&pid=' + id;
								lame_add[i].innerHTML = '<a href="'+rebuild_url+'" onclick="lame_action('+id+'); return false; ">'
								+ response.image + '</a>';
							}
						});
					}
				}
				else if (response.error) 
				{
					removeSpinner();
					if (response.lame_limit) {
						removeLameAdd();
					}
					
					if (!response.can_remove_lame && action == 'remove_lame') {
						removeLameRemove();
					}
					errorPop(response.error);
				}
				else 
				{
					removeSpinner();
					errorPop('An error has occurred submitting while your request. Please refresh and try again.  If the problem persists, contact the board administrator.');
				}
			}
		});
	}
	else 
	{
		removeSpinner();
		errorPop('An error has occurred while submitting your request. Please refresh and try again.  If the problem persists, contact the board administrator.');
	}
}

function errorPop(message) {
	var dim = $('container').getDimensions();
	var page = document.viewport.getScrollOffsets();
	var top_page = page.top;
	var height = 0;
	if (window.innerHeight) 
	{
		height = window.innerHeight/2;
	} else if (document.documentElement.clientHeight) 
	{
		height = document.documentElement.clientHeight/2;
	}
	
	var div = new Element('div', {'id':'lame_bg_error'});
	div.setStyle({
		margin: '0px', 
		padding: '0px', 
		backgroundColor: '#000000',
		width: '100%',
		minHeight: dim.height + 'px',
		height: dim.height + 'px', 
		zIndex: '100', 
		position: 'absolute',
		opacity: '0.8', 
		filter: 'alpha(opacity=80)'});
	
	var div2 = new Element('div', {'id':'lame_msg_error'});
	div2.setStyle({
		margin: '0px',
		padding: '10px 5px 0px 5px',
		width: '200px',
		height: '200px',
		border: 'thin solid #000000',
		top: (top_page + height - 100) + 'px',
		left: (dim.width / 2) - 100 + 'px',
		position: 'absolute',
		zIndex: '101',
		color: 'red',
		fontWeight: 'bold',
		backgroundColor: '#CCCCCC'
	});
	
	div2.update(message + '<br /><br /><center><button type="button" onclick="$(\'lame_bg_error\').remove(); return false;">Close</button></center>');
	
	$('container').insert({'before' : div});
	$('lame_bg_error').insert({'top' : div2});
	
}

function removeLameAdd() {
	var lame_add = $$('.lame_add');
	var id = '';
	lame_add.each(function(item, i) {
		id = lame_add[i].readAttribute('id');
		lame_add[i].down().remove();					
	});	
}

function removeLameRemove() {
	var lame_add = $$('.lame_remove');
	var id = '';
	lame_add.each(function(item, i) {
		id = lame_add[i].readAttribute('id');
		lame_add[i].down().remove();					
	});	
}

function removeSpinner() {
	this.spinner.destroy();
	this.spinner = '';
}