Added set_status_header function
diff --git a/system/libraries/Output.php b/system/libraries/Output.php
index 2263fdf..781e368 100644
--- a/system/libraries/Output.php
+++ b/system/libraries/Output.php
@@ -122,39 +122,78 @@
 	 * @param	string	

 	 * @return	void

 	 */	

-	function set_status_header($code, $text='')

-	{		

-		if ( ! in_array($code, array(200, 304, 401, 404)) AND $text == '')

+	function set_status_header($code = '200', $text = '')

+	{

+		$stati = array(

+							'200'	=> 'OK',

+							'201'	=> 'Created',

+							'202'	=> 'Accepted',

+							'203'	=> 'Non-Authoritative Information',

+							'204'	=> 'No Content',

+							'205'	=> 'Reset Content',

+							'206'	=> 'Partial Content',

+							

+							'300'	=> 'Multiple Choices',

+							'301'	=> 'Moved Permanently',

+							'302'	=> 'Found',

+							'304'	=> 'Not Modified',

+							'305'	=> 'Use Proxy',

+							'307'	=> 'Temporary Redirect',

+							

+							'400'	=> 'Bad Request',

+							'401'	=> 'Unauthorized',

+							'403'	=> 'Forbidden',

+							'404'	=> 'Not Found',

+							'405'	=> 'Method Not Allowed',

+							'406'	=> 'Not Acceptable',

+							'407'	=> 'Proxy Authentication Required',

+							'408'	=> 'Request Timeout',

+							'409'	=> 'Conflict',

+							'410'	=> 'Gone',

+							'411'	=> 'Length Required',

+							'412'	=> 'Precondition Failed',

+							'413'	=> 'Request Entity Too Large',

+							'414'	=> 'Request-URI Too Long',

+							'415'	=> 'Unsupported Media Type',

+							'416'	=> 'Requested Range Not Satisfiable',

+							'417'	=> 'Expectation Failed',

+		

+							'500'	=> 'Internal Server Error',

+							'501'	=> 'Not Implemented',

+							'502'	=> 'Bad Gateway',

+							'503'	=> 'Service Unavailable',

+							'504'	=> 'Gateway Timeout',

+							'505'	=> 'HTTP Version Not Supported'

+						);

+

+		if ($code == '' OR ! is_numeric($code))

 		{

-			show_error('You must submit a status message and a status code');

+			show_error('Status codes must be numeric');

 		}

-	

+

+		if (isset($stati[$code]) AND $text == '')

+		{				

+			$text = $stati[$code];

+		}

+		

 		if ($text == '')

 		{

-			switch($code)

-			{

-				case 200:	$text = 'OK';

-					break;

-				case 304:	$text = 'Not Modified';

-					break;

-				case 401:	$text = 'Unauthorized';

-					break;

-				case 404:	$text = 'Not Found';

-					break;

-			}

+			show_error('No status text available.  Please check your status code number or supply your own message text.');

 		}

+		

+		$server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : FALSE;

 	

 		if (substr(php_sapi_name(), 0, 3) == 'cgi')

 		{

-			@header("Status: {$code} {$text}", TRUE);

+			header("Status: {$code} {$text}", TRUE);

 		}

-		elseif ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1' OR $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0')

+		elseif ($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0')

 		{

-			@header($_SERVER['SERVER_PROTOCOL']." {$code} {$text}", TRUE, $code);

+			header($server_protocol." {$code} {$text}", TRUE, $code);

 		}

 		else

 		{

-			@header("HTTP/1.1 {$code} {$text}", TRUE, $code);

+			header("HTTP/1.1 {$code} {$text}", TRUE, $code);

 		}

 	}