<?php

add_action( 'widgets_init', 'tie_video_widget_box' );
function tie_video_widget_box() {
	register_widget( 'tie_video_widget' );
}
class tie_video_widget extends WP_Widget {

	public function __construct(){
		$widget_ops 	= array( 'classname' => 'video-widget', 'description' => ''  );
		$control_ops 	= array( 'width' => 250, 'height' => 350, 'id_base' => 'video-widget' );
		parent::__construct( 'video-widget', THEME_NAME .' - '.__( 'Video' , 'tie') , $widget_ops, $control_ops );
	}

	public function widget( $args, $instance ) {
		extract( $args );

		$title      = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );

		echo $before_widget;
		echo $before_title;
		echo $title ;
		echo $after_title;
			$protocol = is_ssl() ? 'https' : 'http';

			if (!empty( $instance['embed_code'] ) ){
				echo $instance['embed_code'];

			}elseif( !empty( $instance['video_url'] ) ){
				$wp_embed = new WP_Embed();
				$video_url = $instance['video_url'] ;
				$video_output = $wp_embed->run_shortcode('[embed width="320" height="180"]'.$video_url.'[/embed]');
				if( $video_output == '<a href="'.$video_url.'">'.$video_url.'</a>' ){
					$width  = '320' ;
					$height = '180';
					$video_link = @parse_url($video_url);
					if ( $video_link['host'] == 'www.youtube.com' || $video_link['host']  == 'youtube.com' ) {
						parse_str( @parse_url( $video_url, PHP_URL_QUERY ), $my_array_of_vars );
						$video =  $my_array_of_vars['v'] ;
						$video_output ='<iframe width="'.$width.'" height="'.$height.'" src="'.$protocol.'://www.youtube.com/embed/'.$video.'?rel=0&wmode=opaque" frameborder="0" allowfullscreen></iframe>';
					}
					elseif( $video_link['host'] == 'www.youtu.be' || $video_link['host']  == 'youtu.be' ){
						$video = substr(@parse_url($video_url, PHP_URL_PATH), 1);
						$video_output ='<iframe width="'.$width.'" height="'.$height.'" src="'.$protocol.'://www.youtube.com/embed/'.$video.'?rel=0&wmode=opaque" frameborder="0" allowfullscreen></iframe>';
					}elseif( $video_link['host'] == 'www.vimeo.com' || $video_link['host']  == 'vimeo.com' ){
						$video = (int) substr(@parse_url($video_url, PHP_URL_PATH), 1);
						$video_output='<iframe src="'.$protocol.'://player.vimeo.com/video/'.$video.'?wmode=opaque" width="'.$width.'" height="'.$height.'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
					}
					elseif( $video_link['host'] == 'www.dailymotion.com' || $video_link['host']  == 'dailymotion.com' ){
						$video = substr(@parse_url($video_url, PHP_URL_PATH), 7);
						$video_id = strtok($video, '_');
						$video_output='<iframe frameborder="0" width="'.$width.'" height="'.$height.'" src="'.$protocol.'://www.dailymotion.com/embed/video/'.$video_id.'"></iframe>';
					}
				}

				if( !empty($video_output) ) echo $video_output;
			}

		echo $after_widget;
	}

	public function update( $new_instance, $old_instance ) {
		$instance 				= $old_instance;
		$instance['title'] 		= strip_tags( $new_instance['title'] );
		$instance['embed_code'] = $new_instance['embed_code'] ;
		$instance['video_url'] 	= strip_tags( $new_instance['video_url'] );
		return $instance;
	}

	public function form( $instance ) {
		$defaults = array( 'title' =>__('Featured Video', 'tie') );
		$instance = wp_parse_args( (array) $instance, $defaults ); ?>

		<p>
			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' , 'tie') ?></label>
			<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php if( !empty( $instance['title'] ) ) echo $instance['title']; ?>" class="widefat" type="text" />
		</p>
		<p>
			<label for="<?php echo $this->get_field_id( 'embed_code' ); ?>"><?php _e( 'Embed Code' , 'tie') ?></label>
			<textarea id="<?php echo $this->get_field_id( 'embed_code' ); ?>" name="<?php echo $this->get_field_name( 'embed_code' ); ?>" class="widefat" ><?php if( !empty( $instance['embed_code'] ) ) echo $instance['embed_code']; ?></textarea>
		</p>
		<p>
			<label for="<?php echo $this->get_field_id( 'video_url' ); ?>"><?php _e( 'Video URL' , 'tie') ?></label>
			<input id="<?php echo $this->get_field_id( 'video_url' ); ?>" name="<?php echo $this->get_field_name( 'video_url' ); ?>" value="<?php if( !empty( $instance['video_url'] ) ) echo $instance['video_url']; ?>" class="widefat" type="text" />
		</p>
	<?php
	}
}
?>
