<?php
/**
 * WordPress.com-specific functions and definitions.
 *
 * @package Duster
 */

global $themecolors;

/**
 * Set a default theme color array for WP.com.
 *
 * @global array $themecolors
 */
$themecolors = array(
	'bg'     => 'ffffff',
	'text'   => '333333',
	'link'   => '1b8be0',
	'border' => 'eeeeee',
	'url'    => '71baf1',
);

/**
 * WP.com: Show a nice admin message noting that the current theme has been
 * trumped by a newer one.
 */
function duster_add_notice() {
	$current_theme = wp_get_theme()->Name;

	if ( ! get_user_meta( get_current_user_id(), "$current_theme-theme-update", true ) ) {
		add_settings_error(
			'theme-update',
			'theme-update',
			sprintf(
				__( 'Howdy! Your current theme, <em>%1$s</em>, has seen an update in the form of a brand new theme, <a href="%3$s">%2$s</a>. For more information, check out <a href="%4$s">our blog post introducing %2$s to the world</a>. %5$s' ),
				$current_theme, // Old theme
				'Twenty Eleven', // New theme
				admin_url( 'themes.php?s=twentyeleven' ), // Link to new theme
				esc_url( 'http://en.blog.wordpress.com/2011/06/06/new-theme-twenty-eleven/' ), // Link to announcement post
				sprintf( '<a id="dismiss-theme-update" class="alignright" style="font-size: 16px;" title="%s" href="#">&times;</a>', __( 'Dismiss' ) ) // Dismiss
			),
			'updated'
		);

		remove_action( 'admin_notices', 'show_tip' );
		if ( ! has_filter( 'admin_notices', 'settings_errors' ) )
			add_action( 'admin_notices', 'settings_errors' );

		wp_enqueue_script( 'dismiss-theme-update', get_template_directory_uri() . '/js/dismiss-theme-update.js', array( 'jquery' ), 20130225 );
		wp_localize_script( 'dismiss-theme-update', 'dismissThemeUpdate', array(
			'theme' => $current_theme,
			'nonce' => wp_create_nonce( "$current_theme-theme-update" ),
		) );
	}
}
add_action( 'admin_init', 'duster_add_notice' );

/**
 * Updates user setting when theme update notice was dismissed.
 */
function duster_dismiss_theme_update() {
	$current_theme = wp_get_theme()->Name;
	check_ajax_referer( "$current_theme-theme-update", 'nonce' );

	if ( $_REQUEST['theme'] == $current_theme ) {
		update_user_meta( get_current_user_id(), "$current_theme-theme-update", true );
		wp_die( 1 );
	}
}
add_action( 'wp_ajax_dismiss_theme_update', 'duster_dismiss_theme_update' );