var Punisher =
	{
		Initialize: function()
		{
			$( "#punisher_icon" )
				.ajaxStart( function(){
					$( this ).attr({
						'src': 'style_images/abyss/punisher_loader.gif',
						'width': 16,
						'height': 16
					});

					$( "#punish_rule,#extra,#punish_comment,#punish_button" ).attr('disabled', 'disabled');
				})
				.ajaxStop( function(){
					$( this ).attr({
						'src': 'style_images/abyss/nav_m.gif',
						'width': 8,
						'height': 8
					});

					$( "#punish_rule,#extra,#punish_comment,#punish_button" ).attr('disabled', '');
				});
		},

		SetPunish: function( params )
		{
			this.Initialize();
			
			$('#punish_button').attr('disabled', 'disabled');
			$.post(
				ipb_var_base_url + "act=warn&ajax=1&CODE=dopunish&mid=" + params.mid + "&t=" + params.topic + "&p=" + params.post,
				this.GetPunishParams(),
				function( data ){$('#executioner_form').html( data );}
			);
		},

		GetExtra: function( params )
		{
			this.Initialize();
			var self = this;

			var url = ipb_var_base_url + 'act=warn&ajax=1&CODE=getextra&mid=' + params.mid + '&rule=' + params.rule;
			$.post(
				url + "&sub=extra_punishment",
				self.GetPunishParams(),
				function( data )
				{
					$('#extra_punishment').html( data );
					$.post(
						url + "&sub=extra_comment",
						self.GetPunishParams(),
						function( data )
						{
							$('#extra_comment').html( data );
							$.fancybox.resize();
						}
					);
				}
			);
		},

		GetPunishParams: function()
		{
			var params =
				{
					key: $( "#punish_key" ).val(),
					rule: $( "#punish_rule" ).val(),
					comment: $( "#punish_comment" ).val()
				}

			if( $( "#extra" ) )
			{
				params.extra = $( "#extra option:selected" ).val();
			}

			return params;
		}
	}

