Theme options on custom child theme for bp-default , twenty-eleven like.

//Edit: For proper files attachment see the second post!

Hi,
I am developing a new child theme for bp-default. On this theme, i wanted a theme options page similar to the one on twenty-eleven. To get started i took "theme-options.php", and .css and .js from twenty eleven, since i didn't know how to get started.
I modified every label "twenty-eleven" in "blocky", the name of my theme. I started changing stuff, checking that everything was working. Then i got rid of the templates part, because i do not want to effer this option. Then i started adding my own option fields.
My option field is a in a select list, it allows you to change the menus background image, by enqueuing a different css (the same way dark/light color scheme works) i called this "deco".
For some reason, the field renders perfectly in the admin page, and it remembers my selection. Although it does not enqueue the CSS. Everything else works perfectly.
The funny part is that i never learned php or css, but it came by messing around with code, and i used my first functions like.. last week. think i got them pretty much figured out, but there is something wrong in my code and after a while searching for my mistake, i can't find it... i'm just gonna paste my whole theme-options.php here and hopefully someone kind will be wanting to spend some time helping me.. here it is: (i didn't edit the twenty eleven references in the comments)

<?php
/**
 * Twenty Eleven Theme Options
 *
 * @package WordPress
 * @subpackage Twenty_Eleven
 * @since Twenty Eleven 1.0
 */

/**
 * Properly enqueue styles and scripts for our theme options page.
 *
 * This function is attached to the admin_enqueue_scripts action hook.
 *
 * @since Twenty Eleven 1.0
 *
 */
function blocky_admin_enqueue_scripts( $hook_suffix ) {
	wp_enqueue_style( 'blocky-theme-options', get_stylesheet_directory_uri() . '/_inc/theme-options.css', false, '2011-04-28' );
	wp_enqueue_script( 'blocky-theme-options', get_stylesheet_directory_uri() . '/_inc/theme-options.js', array( 'farbtastic' ), '2011-06-10' );
	wp_enqueue_style( 'farbtastic' );
}
add_action( 'admin_print_styles-appearance_page_theme_options', 'blocky_admin_enqueue_scripts' );

/**
 * Register the form setting for our blocky_options array.
 *
 * This function is attached to the admin_init action hook.
 *
 * This call to register_setting() registers a validation callback, blocky_theme_options_validate(),
 * which is used when the option is saved, to ensure that our option values are complete, properly
 * formatted, and safe.
 *
 * We also use this function to add our theme option if it doesn't already exist.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_theme_options_init() {

	// If we have no options in the database, let's add them now.
	if ( false === blocky_get_theme_options() )
		add_option( 'blocky_theme_options', blocky_get_default_theme_options() );

	register_setting(
		'blocky_options',       // Options group, see settings_fields() call in blocky_theme_options_render_page()
		'blocky_theme_options', // Database option, see blocky_get_theme_options()
		'blocky_theme_options_validate' // The sanitization callback, see blocky_theme_options_validate()
	);

	// Register our settings field group
	add_settings_section(
		'general', // Unique identifier for the settings section
		'', // Section title (we don't want one)
		'__return_false', // Section callback (we don't want anything)
		'theme_options' // Menu slug, used to uniquely identify the page; see blocky_theme_options_add_page()
	);

	// Register our individual settings fields
	add_settings_field(
		'color_scheme',  // Unique identifier for the field for this section
		__( 'Color Scheme', 'blocky' ), // Setting field label
		'blocky_settings_field_color_scheme', // Function that renders the settings field
		'theme_options', // Menu slug, used to uniquely identify the page; see blocky_theme_options_add_page()
		'general' // Settings section. Same as the first argument in the add_settings_section() above
	);

	add_settings_field( 'link_color', __( 'Link Color',     'blocky' ), 'blocky_settings_field_link_color', 'theme_options', 'general' );
	add_settings_field( 'deco',     __( 'Menus Decoration', 'blocky' ), 'blocky_settings_field_deco',     'theme_options', 'general' );
}
add_action( 'admin_init', 'blocky_theme_options_init' );

/**
 * Change the capability required to save the 'blocky_options' options group.
 *
 * @see blocky_theme_options_init() First parameter to register_setting() is the name of the options group.
 * @see blocky_theme_options_add_page() The edit_theme_options capability is used for viewing the page.
 *
 * By default, the options groups for all registered settings require the manage_options capability.
 * This filter is required to change our theme options page to edit_theme_options instead.
 * By default, only administrators have either of these capabilities, but the desire here is
 * to allow for finer-grained control for roles and users.
 *
 * @param string $capability The capability used for the page, which is manage_options by default.
 * @return string The capability to actually use.
 */
function blocky_option_page_capability( $capability ) {
	return 'edit_theme_options';
}
add_filter( 'option_page_capability_blocky_options', 'blocky_option_page_capability' );

/**
 * Add our theme options page to the admin menu, including some help documentation.
 *
 * This function is attached to the admin_menu action hook.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_theme_options_add_page() {
	$theme_page = add_theme_page(
		__( 'Theme Options', 'blocky' ),   // Name of page
		__( 'Theme Options', 'blocky' ),   // Label in menu
		'edit_theme_options',                    // Capability required
		'theme_options',                         // Menu slug, used to uniquely identify the page
		'blocky_theme_options_render_page' // Function that renders the options page
	);

	if ( ! $theme_page )
		return;

	add_action( "load-$theme_page", 'blocky_theme_options_help' );
}
add_action( 'admin_menu', 'blocky_theme_options_add_page' );

function blocky_theme_options_help() {

	$help = '<p>' . __( 'Some themes provide customization options that are grouped together on a Theme Options screen. If you change themes, options may change or disappear, as they are theme-specific. Your current theme, Blocky, provides the following Theme Options:', 'blocky' ) . '</p>' .
			'<ol>' .
				'<li>' . __( '<strong>Color Scheme</strong>: You can choose a color palette of "Light" (light background with dark text) or "Dark" (dark background with light text) for your site.', 'blocky' ) . '</li>' .
				'<li>' . __( '<strong>Link Color</strong>: You can choose the color used for text links on your site. You can enter the HTML color or hex code, or you can choose visually by clicking the "Select a Color" button to pick from a color wheel.', 'blocky' ) . '</li>' .
				'<li>' . __( '<strong>Menu decoration</strong>: You can choose what decoration you want for your site’s menus.', 'blocky' ) . '</li>' .
			'</ol>' .
			'<p>' . __( 'Remember to click "Save Changes" to save any changes you have made to the theme options.', 'blocky' ) . '</p>';

	$sidebar = '<p><strong>' . __( 'For more information:', 'blocky' ) . '</strong></p>' .
		'<p>' . __( '<a href="http://codex.wordpress.org/Appearance_Theme_Options_Screen" target="_blank">Documentation on Theme Options</a>', 'blocky' ) . '</p>' .
		'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>', 'blocky' ) . '</p>';

	$screen = get_current_screen();

	if ( method_exists( $screen, 'add_help_tab' ) ) {
		// WordPress 3.3
		$screen->add_help_tab( array(
			'title' => __( 'Overview', 'blocky' ),
			'id' => 'theme-options-help',
			'content' => $help,
			)
		);

		$screen->set_help_sidebar( $sidebar );
	} else {
		// WordPress 3.2
		add_contextual_help( $screen, $help . $sidebar );
	}
}

/**
 * Returns an array of color schemes registered for Twenty Eleven.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_color_schemes() {
	$color_scheme_options = array(
		'light' => array(
			'value' => 'light',
			'label' => __( 'Light', 'blocky' ),
			'thumbnail' => get_stylesheet_directory_uri() . '/_inc/images/light.png',
			'default_link_color' => '#33CC33',
		),
		'dark' => array(
			'value' => 'dark',
			'label' => __( 'Dark', 'blocky' ),
			'thumbnail' => get_stylesheet_directory_uri() . '/_inc/images/dark.png',
			'default_link_color' => '#33CC33',
		),
	);

	return apply_filters( 'blocky_color_schemes', $color_scheme_options );
}

/**
 * Returns an array of layout options registered for Twenty Eleven.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_decos() {
	$deco_options = array(
		'grass' => array(
			'value' => 'grass',
			'label' => __( 'Grass', 'blocky' ),
			'thumbnail' => get_template_directory_uri() . '/inc/images/content-sidebar.png',
		),
		'stone' => array(
			'value' => 'stone',
			'label' => __( 'Stone', 'blocky' ),
			'thumbnail' => get_template_directory_uri() . '/inc/images/sidebar-content.png',
		),
		'dirt' => array(
			'value' => 'dirt',
			'label' => __( 'Dirt', 'blocky' ),
			'thumbnail' => get_template_directory_uri() . '/inc/images/content.png',
		),
	);

	return apply_filters( 'blocky_decos', $deco_options );
}

/**
 * Returns the default options for Twenty Eleven.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_get_default_theme_options() {
	$default_theme_options = array(
		'color_scheme' => 'light',
		'link_color'   => blocky_get_default_link_color( 'light' ),
		'theme_deco' => 'grass',
	);

	if ( is_rtl() )
 		$default_theme_options['theme_deco'] = 'grass';

	return apply_filters( 'blocky_default_theme_options', $default_theme_options );
}

/**
 * Returns the default link color for Twenty Eleven, based on color scheme.
 *
 * @since Twenty Eleven 1.0
 *
 * @param $string $color_scheme Color scheme. Defaults to the active color scheme.
 * @return $string Color.
*/
function blocky_get_default_link_color( $color_scheme = null ) {
	if ( null === $color_scheme ) {
		$options = blocky_get_theme_options();
		$color_scheme = $options['color_scheme'];
	}

	$color_schemes = blocky_color_schemes();
	if ( ! isset( $color_schemes[ $color_scheme ] ) )
		return false;

	return $color_schemes[ $color_scheme ]['default_link_color'];
}

/**
 * Returns the options array for Twenty Eleven.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_get_theme_options() {
	return get_option( 'blocky_theme_options', blocky_get_default_theme_options() );
}

/**
 * Renders the Color Scheme setting field.
 *
 * @since Twenty Eleven 1.3
 */
function blocky_settings_field_color_scheme() {
	$options = blocky_get_theme_options();

	foreach ( blocky_color_schemes() as $scheme ) {
	?>
	<div class="layout image-radio-option color-scheme">
	<label class="description">
		<input type="radio" name="blocky_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> />
		<input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" />
		<span>
			<img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" alt="" />
			<?php echo $scheme['label']; ?>
		</span>
	</label>
	</div>
	<?php
	}
}

/**
 * Renders the Link Color setting field.
 *
 * @since Twenty Eleven 1.3
 */
function blocky_settings_field_link_color() {
	$options = blocky_get_theme_options();
	?>
	<input type="text" name="blocky_theme_options[link_color]" id="link-color" value="<?php echo esc_attr( $options['link_color'] ); ?>" />
	<a href="#" class="pickcolor hide-if-no-js" id="link-color-example"></a>
	<input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'blocky' ); ?>" />
	<div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
	<br />
	<span><?php printf( __( 'Default color: %s', 'blocky' ), '<span id="default-color">' . blocky_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span>
	<?php
}

/**
 * Renders the Layout setting field.
 *
 * @since Twenty Eleven 1.3
 */
function blocky_settings_field_deco() {
	$options = blocky_get_theme_options();
		?>
    <div class="layout image-radio-option theme-layout">
		<select name="blocky_theme_options[theme_deco]" id="blocky_theme_options[theme_deco]">
        	<?php foreach ( blocky_decos() as $deco ) { ?>
           <option value="<?php echo esc_attr( $deco['value'] ); ?>" <?php selected( $options['theme_deco'], $deco['value'] ); ?>><?php echo esc_attr( $deco['label'] ); ?></option>
           <?php } ?>
       </select>
       </div> <?php
}

/**
 * Returns the options array for Twenty Eleven.
 *
 * @since Twenty Eleven 1.2
 */
function blocky_theme_options_render_page() {
	?>
	<div class="wrap">
		<?php screen_icon(); ?>
		<h2><?php printf( __( '%s Theme Options', 'blocky' ), get_current_theme() ); ?></h2>
		<?php settings_errors(); ?>

		<form method="post" action="options.php">
			<?php
				settings_fields( 'blocky_options' );
				do_settings_sections( 'theme_options' );
				submit_button();
			?>
		</form>
	</div>
	<?php
}

/**
 * Sanitize and validate form input. Accepts an array, return a sanitized array.
 *
 * @see blocky_theme_options_init()
 * @todo set up Reset Options action
 *
 * @since Twenty Eleven 1.0
 */
function blocky_theme_options_validate( $input ) {
	$output = $defaults = blocky_get_default_theme_options();

	// Color scheme must be in our array of color scheme options
	if ( isset( $input['color_scheme'] ) && array_key_exists( $input['color_scheme'], blocky_color_schemes() ) )
		$output['color_scheme'] = $input['color_scheme'];

	// Our defaults for the link color may have changed, based on the color scheme.
	$output['link_color'] = $defaults['link_color'] = blocky_get_default_link_color( $output['color_scheme'] );

	// Link color must be 3 or 6 hexadecimal characters
	if ( isset( $input['link_color'] ) && preg_match( '/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color'] ) )
		$output['link_color'] = '#' . strtolower( ltrim( $input['link_color'], '#' ) );

	// Theme deco must be in our array of theme deco options
	if ( isset( $input['theme_deco'] ) && array_key_exists( $input['theme_deco'], blocky_decos() ) )
		$output['theme_deco'] = $input['theme_deco'];

	return apply_filters( 'blocky_theme_options_validate', $output, $input, $defaults );
}

/**
 * Enqueue the styles for the current color scheme.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_enqueue_color_scheme() {
	$options = blocky_get_theme_options();
	$color_scheme = $options['color_scheme'];

	if ( 'dark' == $color_scheme )
		wp_enqueue_style( 'dark', get_stylesheet_directory_uri() . '/styles/dark.css', array(), null );

	do_action( 'blocky_enqueue_color_scheme', $color_scheme );
}
add_action( 'wp_enqueue_scripts', 'blocky_enqueue_color_scheme' );

/**
 * Add a style block to the theme for the current link color.
 *
 * This function is attached to the wp_head action hook.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_print_link_color_style() {
	$options = blocky_get_theme_options();
	$link_color = $options['link_color'];

	$default_options = blocky_get_default_theme_options();

	// Don't do anything if the current link color is the default.
	if ( $default_options['link_color'] == $link_color )
		return;
?>
	<style>
		/* Link color */
		a,
		#site-title a:focus,
		#site-title a:hover,
		#site-title a:active,
		.entry-title a:hover,
		.entry-title a:focus,
		.entry-title a:active,
		.widget_blocky_ephemera .comments-link a:hover,
		section.recent-posts .other-recent-posts a[rel="bookmark"]:hover,
		section.recent-posts .other-recent-posts .comments-link a:hover,
		.format-image footer.entry-meta a:hover,
		#site-generator a:hover {
			color: <?php echo $link_color; ?>;
		}
		section.recent-posts .other-recent-posts .comments-link a:hover {
			border-color: <?php echo $link_color; ?>;
		}
		article.feature-image.small .entry-summary p a:hover,
		.entry-header .comments-link a:hover,
		.entry-header .comments-link a:focus,
		.entry-header .comments-link a:active,
		.feature-slider a.active {
			background-color: <?php echo $link_color; ?>;
		}
	</style>
<?php
}
add_action( 'wp_head', 'blocky_print_link_color_style' );

/**
 * Enqueue the styles for the current menu decoration.
 *
 * @since Twenty Eleven 1.0
 */
function blocky_enqueue_deco() {
	$options = blocky_get_theme_options();
	$deco = $options['deco'];

	if ( 'stone' == $deco )
		wp_enqueue_style( 'stone', get_stylesheet_directory_uri() . '/styles/stone.css', array(), null );

	do_action( 'blocky_enqueue_deco', $deco );
}
add_action( 'wp_enqueue_scripts', 'blocky_enqueue_deco' );

Sorry for this big block of code...
I was trying to find the difference between blocky_enqueue_color_scheme() that works and blocky_enqueue_deco() that doesn't work, but it seems to me that it is similar...

Huge thanks to anyone helping me on this! (i also attach my file if it's easier for someone)