<?php

// Theme Features Init

add_action('after_setup_theme', 'rok_theme_setup');

function rok_theme_setup() {

	$wp_ver = get_bloginfo('version');

	if (function_exists('add_theme_support')) {
		
		if($wp_ver >= 3.0) {
	
			// Add default posts and comments RSS feed links to head
			
			add_theme_support('automatic-feed-links');
			
			// This theme uses wp_nav_menu() in one location.
			
			register_nav_menus( array(
				'top_nav' => _r('Top Navigation'),
			) );
			
			// Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
			
			/*function rok_theme_page_menu_args($args='') {
				$args['show_home'] = true;
				return $args;
			}
			
			add_filter('wp_nav_menu_args', 'rok_theme_page_menu_args');*/
			
			function rok_theme_page_menu_link($item) {
				$item = str_replace('current_page_item', 'current_page_item active', $item);		
				return $item;
			}
			
			add_filter('nav_menu_css_class', 'rok_theme_page_menu_link');
			
			function  rok_theme_page_menu_a_class($output) {
				$output = str_replace('<a', '<a class="link"', $output);
				return $output;
			}
			
			add_filter('walker_nav_menu_start_el', 'rok_theme_page_menu_a_class');
	
		}
				
	}
	
}

// Menu backwards compatibility

function rok_old_menu() {
	
	 wp_page_menu('menu_class=horiz-menu-top&title_li=&show_home=1&link_before=<span>&link_after=</span>');
		
}

add_filter('widget_text', 'do_shortcode');

rockettheme_translation();

// Widgets Include

$wp_ver = get_bloginfo('version');
if ($wp_ver >= 2.8) { 
    include(TEMPLATEPATH . '/includes/widgets/rokswitcher/rokswitcher_wget.php');
}
 
if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Over Main Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_over_main_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));
    
if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Main Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_main_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));
    
if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Under Main Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_under_main_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));

if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Inset',
        'before_widget' => '<li id="%1$s" class="inset_widget"><div class="widgets"><div class="mainblock-module '.get_option('mixx_inset_widget').' rokmodtools-%1$s" style="position: relative;"><div class="mainblock-mod"><div class="mainblock-mod2"><div class="mainblock-title-container">',
        'after_widget' => '</div></div></div><div class="mainblock-mod-bottom"><div class="mainblock-mod-bottom2"><div class="mainblock-mod-bottom3"/></div></div></div></div></li>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module module_inset">',
    ));    
    
if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Over Page Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_over_page_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));
    
if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Page Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_page_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));

if ( function_exists('register_sidebars') )
    register_sidebars(1, array(
    	'name' => 'Under Page Menu',
        'before_widget' => '<div class="side-module '.get_option('mixx_under_page_widget').' rokmodtools-%1$s widgets"><div class="side-mod"><div class="side-mod2"><div class="side-title-container">',
        'after_widget' => '</div></div></div><div class="side-mod-bottom"><div class="side-mod-bottom2"><div class="side-mod-bottom3"></div></div></div></div>',
        'before_title' => '<h3 class="module-title"><span class="bg"><span class="bg2">',
        'after_title' => '</span></span></h3><div class="close-handle"></div><div class="tools-handle"></div></div><div class="module">',
    ));
    
add_action('import_start', 'rt_change_path');
add_action('import_end', 'rt_unlink_file');

function rt_change_path() {
	global $wp_import;
	
	$xml = file_get_contents($wp_import->file);
	$xml = preg_replace("/\@RT_SITE_URL\@/", get_bloginfo('wpurl'), $xml);

	$temp = tempnam(sys_get_temp_dir(), "rt_wp_import");
	$handle = fopen($temp, "w");
	fwrite($handle, $xml);
	$wp_import->file = $temp;
	fclose($handle);
}

function rt_unlink_file() {
	global $wp_import;
	
	unlink($wp_import->file);
}

add_filter('widget_title', 'empty_title_swap');

function empty_title_swap($title, $restult='') {
	switch($title) {
		case '':
        	$result = '&nbsp;';
            break;
       	case $title:
       		$result = $title;
       		break;
	}
	return $result;
}

// Style Switcher

function rok_switcher() {

	global $cookie_prefix, $theme_style;
	
	$cookie_prefix = "mixxmag";
	$cookie_time = time()+31536000;
	$grab_theme = $_GET['tstyle'];
	
	$presetstyle = get_option('mixx_style');
	$tstyle = $presetstyle;
	
	$theme_style = get_option('mixx_style');
	
	if (isset($_REQUEST['tstyle'])) {
		setcookie ($cookie_prefix.'-tstyle', $grab_theme, $cookie_time, '/', false);
		header("Location: ". $_SERVER['PHP_SELF']);
		global $tstyle;
	}
	
	if(isset($_COOKIE[$cookie_prefix."-tstyle"])) {
		rebuildColorParams($_COOKIE[$cookie_prefix."-tstyle"]);
	}
	
	if ($presetstyle != $tstyle) {
    	rebuildColorParams($grab_theme);
	}

	$delete_cookies = $_GET['delete_cookies'];

	if($delete_cookies == 'true') {
		ob_start();
		setcookie($cookie_prefix.'-tstyle', '', $cookie_time, '/', false);
		header("Location: ". $_SERVER['PHP_SELF']);
		exit;
		ob_end_flush();
	}
}

function rebuildColorParams($grab_theme) {

	global $stylesList, $theme_style;
    
    $style = $stylesList[$grab_theme];
    
    $theme_style = $style[0];
    
}

function getSelected($style) {
	
	global $cookie_prefix;
	
	$grab_theme = $_COOKIE[$cookie_prefix."-tstyle"];
	if ($style==$grab_theme) return ' selected="selected"';
	else return "";
}
    
function rockettheme_translation() {
	load_theme_textdomain('mixxmag_lang');
}

function _r($str)
{
  return __($str, 'mixxmag_lang');
}

function _re($str)
{
  _e($str, 'mixxmag_lang');
}

if (!function_exists ("mysql_real_escape_string"))
{
  function mysql_real_escape_string ($str)
  {
    return mysql_escape_string ($str);
  }
}

function rockettheme_admin_menu() {
	if (!current_user_can('manage_options')) {
		return;
	}
	add_submenu_page(
		'themes.php'
		, _r('Mixxmag Settings')
		, _r('Mixxmag Settings')
		, 0
		, 'mixxmag-settings'
		, 'mixxmag_settings_showup'
	);
}
add_action('admin_menu', 'rockettheme_admin_menu');

function mixxmag_site_math() {

	global $content_width;
			
	$a = get_option('mixx_site_width');
	if(get_option('mixx_right_active') == "true") { $b = get_option('mixx_right_col'); } else { $b = 0; };
	$substract = $b + 3;
	$content_width = $a - $substract;
}

function rokbox_short($atts, $content = null) {
	extract(shortcode_atts(array(
		"title" => '',
		"size" => '',
		"album" => '',
		"text" => 'Click me!',
		"thumb" => '',
	), $atts));
	
	$your_size = "";
	if ($size != "") {
		$your_size = '['.$size.']';  
	} else {
		$your_size = "";
	}
	
	$your_album = "";
	if ($album != "") {
		$your_album = '('.$album.')';  
	} else {
		$your_album = "";
	}
	
	$your_title = "";
	if ($title != "") {
		$your_title = 'title="'.$title.'"';  
	} else {
		$your_title = "";
	}
	
	$thumb_class = "";
	if ($album != "") {
		$thumb_class = $album;  
	} else {
		$thumb_class = "rokbox-thumb";
	}
	
	$display = "";
	if ($thumb != "") {
		$display = '<img class="'.$thumb_class.'" src="'.$thumb.'" alt="'.$title.'" />';  
	} else {
		$display = $text;
	}
	
	return '<a rel="rokbox'.$your_size.''.$your_album.'" '.$your_title.' href="'.$content.'">'.$display.'</a>';
}

add_shortcode("rokbox", "rokbox_short");  

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {
	update_option( 'posts_per_page', 2 );
}

add_option('mixx_site_width', '958px', '', 'yes');
add_option('mixx_inset_col', '160px', '', 'yes');
add_option('mixx_right_col', '260px', '', 'yes');
add_option('mixx_font_face', 'ff-mixxmag', '', 'yes');
add_option('mixx_font_size', 'f-small', '', 'yes');
add_option('mixx_style', 'style1', '', 'yes');
add_option('mixx_over_main_widget', 'light', '', 'yes');
add_option('mixx_main_widget', 'promo', '', 'yes');
add_option('mixx_under_main_widget', 'dark', '', 'yes');
add_option('mixx_inset_widget', 'light', '', 'yes');
add_option('mixx_over_page_widget', 'dark', '', 'yes');
add_option('mixx_page_widget', 'light', '', 'yes');
add_option('mixx_under_page_widget', 'light', '', 'yes');
add_option('mixx_feature_cat_id', '4', '', 'yes');
add_option('mixx_more_news_cat_id', '6', '', 'yes');
add_option('mixx_inset_active', 'true', '', 'yes');
add_option('mixx_right_active', 'true', '', 'yes');
add_option('mixx_previous_issues_cat_1_id', '3', '', 'yes');
add_option('mixx_previous_issues_cat_2_id', '5', '', 'yes');
add_option('mixx_previous_issues_cat_3_id', '7', '', 'yes');
add_option('mixx_previous_issues_cat_4_id', '8', '', 'yes');
add_option('mixx_previous_issues_title', 'Previous Issues', '', 'yes');
add_option('rokbox_enabled', 'true', '', 'yes');
add_option('rokbox_style', 'light', '', 'yes');

if ( is_admin() ){
add_action( 'admin_init', 'register_mixxmag_settings' );
}

function register_mixxmag_settings() {
  register_setting( 'mixxmag-parameters', 'mixx_site_width' );
  register_setting( 'mixxmag-parameters', 'mixx_inset_col' );
  register_setting( 'mixxmag-parameters', 'mixx_right_col' );
  register_setting( 'mixxmag-parameters', 'mixx_font_face' );
  register_setting( 'mixxmag-parameters', 'mixx_font_size' );
  register_setting( 'mixxmag-parameters', 'mixx_style' );
  register_setting( 'mixxmag-parameters', 'mixx_over_main_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_main_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_under_main_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_inset_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_over_page_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_page_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_under_page_widget' );
  register_setting( 'mixxmag-parameters', 'mixx_feature_cat_id' );
  register_setting( 'mixxmag-parameters', 'mixx_more_news_cat_id' );
  register_setting( 'mixxmag-parameters', 'mixx_inset_active' );
  register_setting( 'mixxmag-parameters', 'mixx_right_active' );
  register_setting( 'mixxmag-parameters', 'mixx_previous_issues_cat_1_id' );
  register_setting( 'mixxmag-parameters', 'mixx_previous_issues_cat_2_id' );
  register_setting( 'mixxmag-parameters', 'mixx_previous_issues_cat_3_id' );
  register_setting( 'mixxmag-parameters', 'mixx_previous_issues_cat_4_id' );
  register_setting( 'mixxmag-parameters', 'mixx_previous_issues_title' );
  register_setting( 'mixxmag-parameters', 'rokbox_enabled' );
  register_setting( 'mixxmag-parameters', 'rokbox_style' );
}

function mixxmag_settings_showup() {
	include('rt_settings.php');
}

if (is_admin() && $_GET['page'] == 'mixxmag-settings') {
	add_action('admin_head', 'mixxmag_settings_admin_css');
}

function mixxmag_settings_admin_css() {
// override default WP admin setting
?>
<style type="text/css">
#icon-rt {
	background: url(<?php echo get_bloginfo('template_directory').'/images/rt_icon.png' ?>) no-repeat 0 0;
}
</style>

<?php
}

function mu_signup_css() { ?>
	<style type="text/css">
	.widecolumn .entry p {font-size: 1.05em;}
	.widecolumn {line-height: 1.6em;}
	.widecolumn {padding: 10px 0 20px 0;margin: 0 auto;width: 450px;}
	.widecolumn .post {margin: 0;}
	</style>
<?php 
}
 
function mu_add_signup_css () { 
	add_action('wp_head','mu_signup_css', 99);
}

add_action('signup_header','mu_add_signup_css');

if ( !function_exists('sys_get_temp_dir') )
{
    // Based on http://www.phpit.net/
    // article/creating-zip-tar-archives-dynamically-php/2/
    function sys_get_temp_dir()
    {
        // Try to get from environment variable
        if ( !empty($_ENV['TMP']) )
        {
            return realpath( $_ENV['TMP'] );
        }
        else if ( !empty($_ENV['TMPDIR']) )
        {
            return realpath( $_ENV['TMPDIR'] );
        }
        else if ( !empty($_ENV['TEMP']) )
        {
            return realpath( $_ENV['TEMP'] );
        }

        // Detect by creating a temporary file
        else
        {
            // Try to use system's temporary directory
            // as random name shouldn't exist
            $temp_file = tempnam( md5(uniqid(rand(), TRUE)), '' );
            if ( $temp_file )
            {
                $temp_dir = realpath( dirname($temp_file) );
                unlink( $temp_file );
                return $temp_dir;
            }
            else
            {
                return FALSE;
            }
        }
    }
}

?>