<?php
global $flc_prefix;
require_once dirname( __FILE__ ) . "/{$flc_prefix}Db.php";
require_once dirname( __FILE__ ) . "/{$flc_prefix}Dash.php";
require_once dirname( __FILE__ ) . "/{$flc_prefix}Metabox.php";

class FLC{
	private $db_prefix;
	private $plugin_options;

	public $db;
	public $plugin_dir;
	public $plugin_url;
	public $plugin_name;
	public $plugin_tables;
	public $plugin_namespace;

	public function __construct( ){
		global $wpdb;
		global $flc_prefix;

		$this->plugin_name = 'Footer Links Commando';
		$dir_name = dirname(  dirname( plugin_basename(__FILE__) ) );
        	$this->plugin_url = trailingslashit( WP_PLUGIN_URL . '/' . $dir_name );
        	$this->plugin_dir = trailingslashit( WP_PLUGIN_DIR . '/' . $dir_name );
        	$this->plugin_namespace = strtolower($flc_prefix);
		$this->plugin_options = "{$this->plugin_namespace}_options";
		$this->db_prefix = "{$wpdb->prefix}{$this->plugin_namespace}_";
		$this->plugin_tables = array(
			'links' => $this->db_prefix . 'links',
			'sections' => $this->db_prefix . 'sections',
		);
		$db_class = "{$flc_prefix}Db";
        	$this->db = new $db_class( );
		$metabox_class = "{$flc_prefix}Metabox";
		$this->metabox = new $metabox_class( $this );
		add_action('admin_menu', array($this, 'admin_menu'));
		add_action('wp_footer', array($this, 'footer'));
	}
	public function footer(){
		include("{$this->plugin_dir}views/footer.php");
	}
	public function admin_menu(){
		global $flc_prefix;
		$menu_class = "{$flc_prefix}Dash";
		return new $menu_class( $this );
	}
	public function add_option( $option, $value ){
		$data = unserialize(base64_decode(get_option($this->plugin_options)));
		$data[$option] = $value;
		$data = base64_encode(serialize($data));
		update_option($this->plugin_options, $data);
	}
	public function get_option( $option ){
		$data = unserialize(base64_decode(get_option( $this->plugin_options )));
		return $data[$option];
	}
	public function create_tables(){
		$sections = "CREATE TABLE IF NOT EXISTS {$this->plugin_tables['sections']} (
				id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
				name VARCHAR(20),
				title VARCHAR(75),
				created INT UNSIGNED
		);";
		$links = "CREATE TABLE IF NOT EXISTS {$this->plugin_tables['links']} (
				id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
				section_id INT UNSIGNED,
				url text,
				target VARCHAR(10),
				anchor VARCHAR(50),
				do_index VARCHAR(1),
				do_follow VARCHAR(1),
				created INT UNSIGNED
		);";
		require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
		dbDelta( $sections );
		dbDelta( $links );
	}
	public function install(){
		$options = array();
		$options = base64_encode(serialize( $options ));
		add_option( $this->plugin_options, $options );
		$this->create_tables();
		$this->add_option( 'social', '1' );
		$this->add_option( 'bg_color', "#ffffff" );
		$this->add_option( 'link_color', "#428bca");
		$this->add_option( 'section_color', "#777777");
	}
}
?>
