<?php
class mkSidebarGenerator {
	var $sidebar_names = array();
	var $footer_sidebar_count = 0;
	var $footer_sidebar_names = array();
	
	function __construct(){
		$this->sidebar_names = array(
			'page'=>__('Page Widget Area','mk_framework'),
			'single_post'=>__('Single Posts Widget Area','mk_framework'),
			'single_portfolio'=>__('Single Portfolios Widget Area','mk_framework'),
			'single_news'=>__('Single News Widget Area','mk_framework'),
			'search'=>__('Search Widget Area','mk_framework'),
			'archive'=>__('Archive Widget Area','mk_framework'),
			'404'=>__('404 Widget Area','mk_framework'),
			'woocommerce'=>__('Woocommerce Shop Widget Area','mk_framework'),
			'woocommerce_single'=>__('Woocommerce Single Widget Area','mk_framework'),
		);
		$this->footer_sidebar_names = array(
			__('First Footer Widget Area','mk_framework'),
			__('Second Footer Widget Area','mk_framework'),
			__('Third Footer Widget Area','mk_framework'),
			__('Fourth Footer Widget Area','mk_framework'),
			__('Fifth Footer Widget Area','mk_framework'),
			__('Sixth Footer Widget Area','mk_framework'),
		);

	}

	function register_sidebar(){

		$i = 1;

		foreach ($this->sidebar_names as $name){
			register_sidebar(array(
				'name' => $name,
				'id' => 'sidebar-'.$i,
				'description' => $name,
				'before_widget' => '<section id="%1$s" class="widget %2$s">',
				'after_widget' => '</section>',
				'before_title' => '<div class="widgettitle">',
				'after_title' => '</div>',
			));
			$i++;
		}	
		foreach ($this->footer_sidebar_names as $name){
			register_sidebar(array(
				'name' =>  $name,
				'id' => 'sidebar-'.$i,
				'description' => $name,
				'before_widget' => '<section id="%1$s" class="widget %2$s">',
				'after_widget' => '</section>',
				'before_title' => '<div class="widgettitle">',
				'after_title' => '</div>',
			));
			$i++;
		}


	register_sidebar( array(
			'name' =>  'Side Dashboard - Above Navigation',
			'id' => 'sidebar-'.$i,
			'description' => 'Side Dashboard widget area. widgets added int this area will be added above side dashboard navigation.',
			'before_widget' => '<section id="%1$s" class="widget %2$s">',
			'after_widget' => '</section>',
			'before_title' => '<div class="widgettitle">',
			'after_title' => '</div>',
	));	

	$i++;

	register_sidebar( array(
			'name' =>  'Side Dashboard - Below Navigation',
			'id' => 'sidebar-'.$i,
			'description' => 'Side Dashboard widget area. widgets added int this area will be added below side dashboard navigation.',
			'before_widget' => '<section id="%1$s" class="widget %2$s">',
			'after_widget' => '</section>',
			'before_title' => '<div class="widgettitle">',
			'after_title' => '</div>',
	));	
		
	$i++;
		
		//register custom sidebars
	$custom_sidebars = get_option(THEME_OPTIONS);
		if(!empty($custom_sidebars['sidebars'])){
			$custom_sidebar_names = explode(',',$custom_sidebars['sidebars']);
			foreach ($custom_sidebar_names as $name){
				register_sidebar(array(
					'name' =>  $name,
					'id' => 'sidebar-'.$i,
					'description' => $name,
					'before_widget' => '<section id="%1$s" class="widget %2$s">',
					'after_widget' => '</section>',
					'before_title' => '<div class="widgettitle">',
					'after_title' => '</div>',
				));

				$i++;
			}
		}
		
	}
	
	function get_sidebar($post_id){
		
		if(is_page() || is_home()){
			$sidebar = $this->sidebar_names['page'];
		}
		if(is_search()) {
		$sidebar = $this->sidebar_names["search"];
		}
		if(is_404()) {
		$sidebar = $this->sidebar_names["404"];
		}
		if(is_archive()) {
		$sidebar = $this->sidebar_names["archive"];
		}		
		if(is_singular('post')){
			$sidebar = $this->sidebar_names['single_post'];
		}
		if(is_singular('portfolio')){
			$sidebar = $this->sidebar_names['single_portfolio'];
		}
		if(is_singular('news')){
			$sidebar = $this->sidebar_names['single_news'];
		}
		if(is_archive()){
			$sidebar = $this->sidebar_names["archive"];
		}
		if ( function_exists('is_woocommerce') && is_woocommerce() && is_archive()) { 
			$sidebar = $this->sidebar_names["woocommerce"]; 
		}
		if ( function_exists('is_woocommerce') && is_woocommerce() && is_single()) { 
			$sidebar = $this->sidebar_names["woocommerce_single"]; 
		}
		if ( function_exists('is_bbpress') && is_bbpress()) { 
			$sidebar = $this->sidebar_names['page'];
		}

		
		
		if(!empty($post_id)){
			$custom = get_post_meta($post_id, '_sidebar', true);
			if(!empty($custom)){
				$sidebar = $custom;
			}
		}
		if(isset($sidebar)){
			dynamic_sidebar($sidebar);
		}
	}
	function get_footer_sidebar(){
		global $post;
		if(is_singular()) {
				if($this->footer_sidebar_count == 0) {
					$single_area = get_post_meta($post->ID, '_widget_first_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
				if($this->footer_sidebar_count == 1) {
					$single_area = get_post_meta($post->ID, '_widget_second_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
				if($this->footer_sidebar_count == 2) {
					$single_area = get_post_meta($post->ID, '_widget_third_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
				if($this->footer_sidebar_count == 3) {
					$single_area = get_post_meta($post->ID, '_widget_fourth_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
				if($this->footer_sidebar_count == 4) {
					$single_area = get_post_meta($post->ID, '_widget_fifth_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
				if($this->footer_sidebar_count == 5) {
					$single_area = get_post_meta($post->ID, '_widget_sixth_col', true);
					if(!empty($single_area)) {
						dynamic_sidebar($single_area);				
					} else {
						dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
					}
				}
		} else {
			dynamic_sidebar($this->footer_sidebar_names[$this->footer_sidebar_count]);
		}
		$single_area = '';
		$this->footer_sidebar_count++;
	}

}
global $_mkSidebarGenerator;
$_mkSidebarGenerator = new mkSidebarGenerator;

add_action('widgets_init', array($_mkSidebarGenerator,'register_sidebar'));

function mk_sidebar_generator($function){
	global $_mkSidebarGenerator;
	$args = array_slice( func_get_args(), 1 );
	return call_user_func_array(array( &$_mkSidebarGenerator, $function ), $args );
}


