Index: functions.php
===================================================================
--- functions.php	(revision 2974)
+++ functions.php	(working copy)
@@ -20,8 +20,34 @@
 
 add_action('wp_head', 'kubrick_head');
 
+$kubrick_settings = get_settings('kubrick_settings');
+
+function kubrick_get_settings($name) {
+	global $kubrick_settings;
+
+	if (! isset($kubrick_settings["$name"]) ) {
+		$kubrick_settings["$name"] = get_settings("kubrick_$name");
+		update_option('kubrick_settings', $kubrick_settings);
+		delete_option("kubrick_$name");
+	}
+
+	return $kubrick_settings["$name"];
+}
+
+function kubrick_update_option($name, $value) {
+	global $kubrick_settings;
+
+	$kubrick_settings["$name"] = $value;
+
+	update_option('kubrick_settings', $kubrick_settings);
+}
+
+function kubrick_delete_option($name) {
+	kubrick_update_option($name, false);
+}
+
 function kubrick_header_image() {
-	return apply_filters('kubrick_header_image', get_settings('kubrick_header_image'));
+	return apply_filters('kubrick_header_image', kubrick_get_settings('header_image'));
 }
 
 function kubrick_upper_color() {
@@ -48,7 +74,7 @@
 }
 
 function kubrick_header_color() {
-	return apply_filters('kubrick_header_color', get_settings('kubrick_header_color'));
+	return apply_filters('kubrick_header_color', kubrick_get_settings('header_color'));
 }
 
 function kubrick_header_color_string() {
@@ -60,7 +86,7 @@
 }
 
 function kubrick_header_display() {
-	return apply_filters('kubrick_header_display', get_settings('kubrick_header_display'));
+	return apply_filters('kubrick_header_display', kubrick_get_settings('header_display'));
 }
 
 function kubrick_header_display_string() {
@@ -75,49 +101,49 @@
 		if ( 'save' == $_REQUEST['action'] ) {
 			if ( isset($_REQUEST['njform']) ) {
 				if ( isset($_REQUEST['defaults']) ) {
-					delete_option('kubrick_header_image');
-					delete_option('kubrick_header_color');
-					delete_option('kubrick_header_display');
+					kubrick_delete_option('header_image');
+					kubrick_delete_option('header_color');
+					kubrick_delete_option('header_display');
 				} else {
 					if ( '' == $_REQUEST['njfontcolor'] )
-						delete_option('kubrick_header_color');
+						kubrick_delete_option('header_color');
 					else
-						update_option('kubrick_header_color', $_REQUEST['njfontcolor']);
+						kubrick_update_option('header_color', $_REQUEST['njfontcolor']);
 
 					if ( preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njuppercolor'], $uc) && preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njlowercolor'], $lc) ) {
 						$uc = ( strlen($uc[0]) == 3 ) ? $uc[0]{0}.$uc[0]{0}.$uc[0]{1}.$uc[0]{1}.$uc[0]{2}.$uc[0]{2} : $uc[0];
 						$lc = ( strlen($lc[0]) == 3 ) ? $lc[0]{0}.$lc[0]{0}.$lc[0]{1}.$lc[0]{1}.$lc[0]{2}.$lc[0]{2} : $lc[0];
-						update_option('kubrick_header_image', "header-img.php?upper=$uc&amp;lower=$lc");
+						kubrick_update_option('header_image', "header-img.php?upper=$uc&amp;lower=$lc");
 					}
 
 					if ( isset($_REQUEST['toggledisplay']) ) {
-						if ( false === get_settings('kubrick_header_display') )
-							update_option('kubrick_header_display', 'none');
+						if ( false === kubrick_get_settings('header_display') )
+							kubrick_update_option('header_display', 'none');
 						else
-							delete_option('kubrick_header_display');
+							kubrick_delete_option('header_display');
 					}
 				}
 			} else {
 	
 				if ( isset($_REQUEST['headerimage']) ) {
 					if ( '' == $_REQUEST['headerimage'] )
-						delete_option('kubrick_header_image');
+						kubrick_delete_option('header_image');
 					else
-						update_option('kubrick_header_image', $_REQUEST['headerimage']);
+						kubrick_update_option('header_image', $_REQUEST['headerimage']);
 				}
 	
 				if ( isset($_REQUEST['fontcolor']) ) {
 					if ( '' == $_REQUEST['fontcolor'] )
-						delete_option('kubrick_header_color');
+						kubrick_delete_option('header_color');
 					else
-						update_option('kubrick_header_color', $_REQUEST['fontcolor']);
+						kubrick_update_option('header_color', $_REQUEST['fontcolor']);
 				}
 	
 				if ( isset($_REQUEST['fontdisplay']) ) {
 					if ( '' == $_REQUEST['fontdisplay'] || 'inline' == $_REQUEST['fontdisplay'] )
-						delete_option('kubrick_header_display');
+						kubrick_delete_option('header_display');
 					else
-						update_option('kubrick_header_display', 'none');
+						kubrick_update_option('header_display', 'none');
 				}
 			}
 			//print_r($_REQUEST);
