<?php
add_action('widgets_init', 'reedwan_tabs_load_widgets');

function reedwan_tabs_load_widgets()
{
	register_widget('Reedwan_Tabs_Widget');
}

class Reedwan_Tabs_Widget extends WP_Widget {
	
	function Reedwan_Tabs_Widget()
	{
		$widget_ops = array('classname' => 'reedwan_tabs', 'description' => 'Popular posts, comments and tags tabbed widget.');

		$control_ops = array('id_base' => 'reedwan_tabs-widget');

		$this->WP_Widget('reedwan_tabs-widget', 'Backstreet : Sidebar Tabs', $widget_ops, $control_ops);
	}
	
	function widget($args, $instance)
	{
		extract($args);
		
		$posts = $instance['posts'];
		$comments = $instance['comments'];
		$tags_count = $instance['tags'];
		$show_popular_posts = isset($instance['show_popular_posts']) ? 'true' : 'false';
		$show_comments = isset($instance['show_comments']) ? 'true' : 'false';
		$show_tags = isset($instance['show_tags']) ? 'true' : 'false';
		
		
		echo $before_widget;
		?>
		<!-- BEGIN WIDGET -->
		<div class="tabs-wrapper ">
			<ul class="tabs-sidebar">
				<?php if($show_popular_posts == 'true'): ?><li><h3><a href="#post-tabs"><?php _e('Popular', 'Backstreet'); ?></a></h3></li><?php endif; ?>
				<?php if($show_comments == 'true'): ?><li><h3><a href="#comments-tabs"><?php _e('Comments', 'Backstreet'); ?></a></h3></li><?php endif; ?>
				<?php if($show_tags == 'true'): ?><li class="last"><h3><a href="#tags-tabs"><?php _e('Tags', 'Backstreet'); ?></a></h3></li><?php endif; ?>
			</ul>
			<div class="clear"></div>
			<div class="tabs_container" >
			
				<?php if($show_popular_posts == 'true'): ?>
				<div id="post-tabs" class="tab_content">
					<?php
					$popular_posts = new WP_Query('showposts='.$posts.'&orderby=comment_count&order=DESC');
					if($popular_posts->have_posts()): ?>
						<?php while($popular_posts->have_posts()): $popular_posts->the_post(); ?>
						<?php
							if(has_post_format('video') || has_post_format('audio') || has_post_format('gallery')) 
							{
								$format_icon = 'class="' . get_post_format() . '-format-icon"';
							}
							else {
								$format_icon = 'class="standard-format-icon"';
							}
						?>
						<div class="block-tabs">
							<?php if(has_post_thumbnail()): ?>
							<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'small-post-thumb'); ?>
							<div class="tabs-image">
								<a <?php echo $format_icon; ?> href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img class="fadeover" src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>"  width='75' height='60' /></a>
							</div>
							<?php else: ?>
							<div class="tabs-image">
								<a <?php echo $format_icon; ?> href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img class="fadeover" src="<?php echo get_template_directory_uri(); ?>/timthumb.php?src=<?php echo get_template_directory_uri(); ?>/images/thumbnail.png&w=75&h=60" alt="<?php the_title(); ?>"  width='75' height='60' /></a>
							</div>
							<?php endif; ?>
							<div class="description">
							<h3><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><?php the_title(); ?></a></h3>
							<div class="tabs-meta">
								<?php the_time(get_option('date_format')); ?>
							</div>
							</div>
							
						</div>
						<?php endwhile; ?>
					<?php endif; ?>
				</div>
				<?php endif; ?>
				
				<?php if($show_comments == 'true'): ?>
				<div id="comments-tabs" class="tab_content">
					<?php
					$number = $instance['comments'];
					global $wpdb;
					$recent_comments = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_approved, comment_type, comment_author_url, SUBSTRING(comment_content,1,110) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT $number";
					$the_comments = $wpdb->get_results($recent_comments);
					foreach ($the_comments as $comment) { ?>
						<div class="block-tabs">
							<?php echo get_avatar($comment, '65'); ?>
							<span class="commenters"><?php echo strip_tags($comment->comment_author); ?> &raquo;</span>
							<a class="comment-text-side" href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="<?php echo strip_tags($comment->comment_author); ?> on <?php echo $comment->post_title; ?>"><?php echo string_limit_words(strip_tags($comment->com_excerpt), 10); ?>...</a>
						</div>
					<?php } ?>
				</div>
				<?php endif; ?>
				
				<?php if($show_tags == 'true'): ?>
				<div id="tags-tabs" class="tab_content">
					<div class='tagcloud'>
					<?php
					$tags = get_tags(array('orderby' => 'count', 'order' => 'DESC', 'number' => $tags_count));
					foreach ((array) $tags as $tag) {
					?>
					<?php echo '<a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a>';	?>
					<?php } ?>
					</div>
				</div>
				<?php endif; ?>
				
			</div>
		
		</div>
		<!-- END WIDGET -->
		<div class="clear"></div>
		<?php
		echo $after_widget;
	}
	
	function update($new_instance, $old_instance)
	{
		$instance = $old_instance;
		
		$instance['posts'] = $new_instance['posts'];
		$instance['comments'] = $new_instance['comments'];
		$instance['tags'] = $new_instance['tags'];
		$instance['show_popular_posts'] = $new_instance['show_popular_posts'];
		$instance['show_comments'] = $new_instance['show_comments'];
		$instance['show_tags'] = $new_instance['show_tags'];
		
		return $instance;
	}

	function form($instance)
	{
		$defaults = array('posts' => 3, 'comments' => '3', 'tags' => 20, 'show_popular_posts' => 'on', 'show_comments' => 'on', 'show_tags' =>  'on');
		$instance = wp_parse_args((array) $instance, $defaults); ?>
		<p>
			<label for="<?php echo $this->get_field_id('posts'); ?>">Number of posts:</label>
			<input class="widefat" style="width: 30px;" id="<?php echo $this->get_field_id('posts'); ?>" name="<?php echo $this->get_field_name('posts'); ?>" value="<?php echo $instance['posts']; ?>" />
		</p>
		<p>
			<label for="<?php echo $this->get_field_id('comments'); ?>">Number of comments:</label>
			<input class="widefat" style="width: 30px;" id="<?php echo $this->get_field_id('comments'); ?>" name="<?php echo $this->get_field_name('comments'); ?>" value="<?php echo $instance['comments']; ?>" />
		</p>
		<p>
			<label for="<?php echo $this->get_field_id('tags'); ?>">Number of tags:</label>
			<input class="widefat" style="width: 30px;" id="<?php echo $this->get_field_id('tags'); ?>" name="<?php echo $this->get_field_name('tags'); ?>" value="<?php echo $instance['tags']; ?>" />
		</p>
		<p>
			<input class="checkbox" type="checkbox" <?php checked($instance['show_popular_posts'], 'on'); ?> id="<?php echo $this->get_field_id('show_popular_posts'); ?>" name="<?php echo $this->get_field_name('show_popular_posts'); ?>" /> 
			<label for="<?php echo $this->get_field_id('show_popular_posts'); ?>">Show popular posts</label>
		</p>
		<p>
			<input class="checkbox" type="checkbox" <?php checked($instance['show_comments'], 'on'); ?> id="<?php echo $this->get_field_id('show_comments'); ?>" name="<?php echo $this->get_field_name('show_comments'); ?>" /> 
			<label for="<?php echo $this->get_field_id('show_comments'); ?>">Show comments</label>
		</p>
		<p>
			<input class="checkbox" type="checkbox" <?php checked($instance['show_tags'], 'on'); ?> id="<?php echo $this->get_field_id('show_tags'); ?>" name="<?php echo $this->get_field_name('show_tags'); ?>" /> 
			<label for="<?php echo $this->get_field_id('show_tags'); ?>">Show tags</label>
		</p>
	<?php }
}
?>