/**
  * Function is used to display palyer and video information
  *
  * @param array $arguments          
  * @return unknown number string
  */
 function hdflv_sharerender($arguments = array())
 {
     global $wpdb, $current_user;
     /** Variable initialization for ContusVideoDetailView */
     $output = $videourl = $imgurl = $vid = $playlistid = $homeplayerData = $rate = $no_views = $windo = $post_date = '';
     $video_playlist_id = $videoId = $hitcount = $show_posted_by = $show_added_on = $show_social_icon = $ratecount = $videodivId = 0;
     $fetched = array();
     /** Get random number to attach */
     $videodivId = rand();
     /** Check admin logged in */
     $isAdmin = absint(filter_input(INPUT_GET, 'admin'));
     /**  Query to get settings data from db */
     $configXML = getPluginSettings();
     /** Generate flashvars detail 
      * for player starts here */
     $flashvars = $pluginflashvars = 'baserefW=' . home_url();
     /**  Get width from settings */
     $width = $configXML->width;
     if (isset($arguments['width']) && !empty($arguments['width'])) {
         /** Get width from short code */
         $width = $arguments['width'];
     }
     /** Get height from settings */
     $height = $configXML->height;
     if (isset($arguments['height']) && !empty($arguments['height'])) {
         /** Get height from short code */
         $height = $arguments['height'];
     }
     /** Get playor colors, posted by, social icon, rss icon 
      * and related videos count from settings object */
     $player_color = unserialize($configXML->player_colors);
     $show_posted_by = $player_color['show_posted_by'];
     $show_social_icon = $player_color['show_social_icon'];
     $show_rss_icon = $player_color['show_rss_icon'];
     $number_related_video = get_related_video_count();
     /** If related video is not given in settings page,
      * then assign default value 100 */
     if (empty($number_related_video)) {
         $number_related_video = 100;
     }
     /** Get show added on option from settings*/
     if (isset($player_color['show_added_on'])) {
         $show_added_on = $player_color['show_added_on'];
     }
     /** Send report for video */
     if (isset($arguments['id'])) {
         /** Get video id from short code */
         $videodivId .= $arguments['id'];
         $vid = $arguments['id'];
     }
     if (!empty($vid)) {
         $wp_user = wp_get_current_user();
         $wp_user_id = $wp_user->ID;
         /** Call function to get video details  */
         $homeplayerData = $this->short_video_detail($vid, $number_related_video);
         $fetched[] = $homeplayerData;
     }
     /** Store video details in variables */
     if (!empty($homeplayerData)) {
         /** Get video detials from model */
         $videoUrl = $homeplayerData->file;
         $videoId = $homeplayerData->vid;
         $video_title = $homeplayerData->name;
         $video_slug = $homeplayerData->slug;
         $video_file_type = $homeplayerData->file_type;
         $video_playlist_id = $homeplayerData->playlist_id;
         $description = $homeplayerData->description;
         $tag_name = $homeplayerData->tags_name;
         $hitcount = $homeplayerData->hitcount;
         $uploadedby = $homeplayerData->display_name;
         $uploadedby_id = $homeplayerData->ID;
         $ratecount = $homeplayerData->ratecount;
         $rate = $homeplayerData->rate;
         $post_date = $homeplayerData->post_date;
         $video_thumb = getImagesValue($homeplayerData->image, $video_file_type, $homeplayerData->amazon_buckets, '');
     }
     /** Get playlist id from short code */
     if (isset($arguments['playlistid'])) {
         /** Get video id */
         $videodivId .= $arguments['playlistid'];
         /** Get playlist id */
         $playlistid = $arguments['playlistid'];
         /** Set flash vars */
         $flashvars .= '&mtype=playerModule';
     }
     /** Check view is from admin */
     if (!empty($isAdmin)) {
         $flashvars .= '&adminview=true';
     }
     /** Generate flashvars detail for player starts here */
     if (!empty($playlistid) && !empty($vid)) {
         $flashvars .= '&pid=' . $playlistid . '&vid=' . $vid;
     } elseif (!empty($playlistid)) {
         $flashvars .= '&pid=' . $playlistid . '&showPlaylist=true';
         $playlist_videos = $this->_contOBJ->video_pid_detail($playlistid, 'detailpage', $number_related_video);
         /** Get video details based on the playlist id */
         if (!empty($playlist_videos)) {
             $videoId = $playlist_videos[0]->vid;
             $video_playlist_id = $playlist_videos[0]->playlist_id;
             $hitcount = $playlist_videos[0]->hitcount;
             $uploadedby = $playlist_videos[0]->display_name;
             $uploadedby_id = $playlist_videos[0]->ID;
             $ratecount = $playlist_videos[0]->ratecount;
             $rate = $playlist_videos[0]->rate;
             $fetched[] = $playlist_videos[0];
         }
     } else {
         if ($this->_post_type !== APPTHAVIDEOGALLERY && $this->_page_post_type !== APPTHAVIDEOGALLERY) {
             $flashvars .= '&vid=' . $vid . '&showPlaylist=false';
         } else {
             $flashvars .= '&vid=' . $vid;
         }
     }
     /** Set flashvars based on the short code arguments */
     if (isset($arguments['flashvars'])) {
         $flashvars .= '&' . $arguments['flashvars'];
     }
     if (!isset($arguments['playlistid']) && isset($arguments['id']) && $this->_post_type !== APPTHAVIDEOGALLERY && $this->_page_post_type !== APPTHAVIDEOGALLERY) {
         $flashvars .= '&playlist_autoplay=false&playlist_auto=false';
     }
     /** Generate flashvars detail for player ends here */
     $player_not_support = __('Player doesnot support this video.', APPTHA_VGALLERY);
     $htmlplayer_not_support = __('Html5 Not support This video Format.', APPTHA_VGALLERY);
     $output .= ' <script> var videoPage;                      
               videoPage = "' . $this->_mPageid . '"; </script>';
     if (isset($arguments['title']) && $arguments['title'] == 'on') {
         $output .= '<h2 id="video_title' . $videodivId . '" class="videoplayer_title" ></h2>';
         $pluginflashvars .= $flashvars .= '&amp;videodata=current_video_' . $videodivId;
     }
     /** Player starts here */
     $output .= '<div id="mediaspace' . $videodivId . '" class="videoplayer">';
     $mobile = vgallery_detect_mobile();
     /** Embed player code */
     if (isset($fetched) && $fetched[0]->file_type == 5 && !empty($fetched[0]->embedcode)) {
         $playerembedcode = stripslashes($fetched[0]->embedcode);
         $playeriframewidth = str_replace('width=', 'width="' . $width . '"', $playerembedcode);
         if ($mobile) {
             $output .= $playerembedcode;
         } else {
             $output .= str_replace('height=', 'height="' . $height . '"', $playeriframewidth);
             watchedVideoHitCount($fetched[0]->vid, false);
         }
     } else {
         if ($mobile) {
             /** Check mobile device is detected */
             /** Get video detail for HTML5 player
              * Load video details */
             foreach ($fetched as $media) {
                 $videourl = $media->file;
                 $file_type = $media->file_type;
                 $imgurl = getImagesValue($media->image, $file_type, $media->amazon_buckets, '');
             }
             /** Check file type youtube, viddler,dailymotion */
             if ($file_type == 3 || $file_type == 1) {
                 if (strpos($videourl, 'youtube') > 0) {
                     $videoid = getYoutubeVideoID($videourl);
                     $output = '<div id="player"></div><script>var tag = document.createElement("script");tag.src = "https://www.youtube.com/iframe_api";var firstScriptTag = document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);var player;function onYouTubeIframeAPIReady() {player = new YT.Player("player", {width: "100%",videoId: "' . $videoid . '",playerVars: {"rel": 0,"showinfo":0,"modestbranding":0},events: {"onStateChange": onPlayerStateChange}});}var done = false;function onPlayerStateChange(event) {if (event.data == YT.PlayerState.PLAYING && !done) {currentVideoP(' . $videoId . ');done = true;}}</script>';
                     echo $output;
                     /** Generate youtube embed code for html5 player */
                 } else {
                     if (strpos($videourl, 'viddler') > 0) {
                         /** For viddler videos in URL method */
                         $imgstr = explode('/', $videourl);
                         $viddler_id = $imgstr[4];
                         $output = '<script type="text/javascript" src="//static.cdn-ec.viddler.com/js/arpeggio/v3/build/main-built.js"></script><div id="my-player"></div><script>var embed = new ViddlerEmbed({videoId: "' . $viddler_id . '",width: "100%",target: "#my-player"});var done = false;embed.manager.events.on("videoPlayer:play", function() {if (!done) {currentVideoP(' . $videoId . ');done = true;}});</script>';
                     } elseif (strpos($videourl, 'dailymotion') > 0) {
                         /** For dailymotion videos in URL method */
                         $split_id = getDailymotionVideoID($videourl);
                         $video = $videourl = $this->_protocolURL . 'www.dailymotion.com/embed/video/' . $split_id[0];
                         $output = '<script src="http://api.dmcdn.net/all.js"></script><div id="player"></div><script>var player = DM.player(document.getElementById("player"),{video: "' . $split_id[0] . '",width: "100%",params: {html: 0,wmode: "opaque"},events: {playing: function(){onPlayerStateChange();}}});var done = false;function onPlayerStateChange(){if (!done) {currentVideoP(' . $videoId . ');done = true;}}</script>';
                         echo $output;
                     } else {
                         $output .= '<video width="100%" height="' . $height . '" id="video" poster="' . $imgurl . '"   src="' . $videourl . '" autobuffer controls onerror="failed( event )">' . $htmlplayer_not_support . '</video>';
                     }
                 }
             } else {
                 /** For uploaded videos, get video URL */
                 $video_url = getVideosValue($videoFile, $file_type, $amazonBucket);
                 /** Check for RTMP videos */
                 if ($file_type == 4) {
                     $streamer = str_replace('rtmp://', 'http://', $media->streamer_path);
                     $video_url = $streamer . '_definst_/mp4:' . $videourl . '/playlist.m3u8';
                 }
                 /** Generate video code for html5 player */
                 $output .= '<video width="100%" height="' . $height . '" id="video" poster="' . $imgurl . '"   src="' . $video_url . '" autobuffer controls onerror="failed( event )">' . $htmlplayer_not_support . '</video>';
             }
         } else {
             $output .= '<div id="flashplayer"><embed src="' . $this->_swfPath . '" flashvars="' . $flashvars . '" width="' . $width . '" height="' . $height . '" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" wmode="transparent"></div>';
             /** Google adsense code Start */
             if ($player_color['googleadsense_visible'] == 1 && !$mobile && ($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY)) {
                 if ($homeplayerData->google_adsense && $homeplayerData->google_adsense_value) {
                     $output .= '<div>';
                     /**
                      * Call function to dipaly google adsense on player
                      */
                     $output .= $this->displayGoogleAdsense($width, $vid, $homeplayerData->vid);
                 }
             }
         }
     }
     $output .= '</div>';
     /** End Google adsense End. */
     /** Get current user agent */
     $useragent = $_SERVER['HTTP_USER_AGENT'];
     if (strpos($useragent, 'Windows Phone') > 0) {
         /** Check for windows phone */
         $windo = 'Windows Phone';
     }
     /**  Check platform */
     /** Call script to display error message within player */
     $output .= '<script type="text/javascript">
         function current_video_' . $videodivId . '( video_id,d_title ){  
             if( d_title == undefined ) { 
               document.getElementById( "video_title' . $videodivId . '" ).innerHTML=""; 
             } else { 
               document.getElementById( "video_title' . $videodivId . '" ).innerHTML=""; 
               document.getElementById( "video_title' . $videodivId . '" ).innerHTML=d_title; 
             } 
         } var txt =  navigator.platform ; 
         var windo = "' . $windo . '"; 
         function failed( e ) { 
             if( txt =="iPod"|| txt =="iPad" || txt == "iPhone" || windo=="Windows Phone" || txt == "Linux armv7l" || txt == "Linux armv6l" ) { 
               alert( "' . $player_not_support . '" ); 
             } 
         } </script>';
     /** Player ends here
      * Display description, views, tags, playlist names detail under player */
     if (isset($arguments['views']) && $arguments['views'] == 'on') {
         $videogalleryviews = true;
     } else {
         if (($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY) && $configXML->view_visible == 1) {
             $videogalleryviews = true;
         } else {
             $videogalleryviews = false;
             $no_views = 'noviews';
         }
     }
     /** Call function to display view count, posted on details in video detail page   */
     $output .= $this->displayViewsPostedON($show_added_on, $videogalleryviews, $no_views, $post_date, $hitcount);
     /** Display user name under player */
     $output .= '<div class="clearfix"></div>';
     if ($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY) {
         $user_url = get_user_permalink($this->_mPageid, $uploadedby_id, $uploadedby);
         if ($show_posted_by) {
             $output .= '<div class="video-page-username"><strong>' . __('Posted&nbsp;by', APPTHA_VGALLERY) . '&nbsp;:&nbsp;</strong><a href="' . $user_url . '">' . $uploadedby . '</a></div>';
         }
         /** Display category name under player  */
         if ($configXML->categorydisplay == 1) {
             /** Category display function */
             $output .= $this->displayCategory($vid);
         }
     }
     /**  Rating starts here for video details page  */
     if ($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY) {
         /** Set ratings control if enabled for player */
         if ($configXML->ratingscontrol == 1) {
             $ratingscontrol = true;
         } else {
             $ratingscontrol = false;
         }
     } else {
         if (isset($arguments['ratingscontrol']) && $arguments['ratingscontrol'] == 'on') {
             $ratingscontrol = true;
         } else {
             $ratingscontrol = false;
         }
     }
     /** Show ratings star avg */
     if ($ratingscontrol) {
         $ratestar = getRatingValue($rate, $ratecount, 'calc');
         /** Display ratings under player */
         $output .= $this->displayRatings($ratestar, $ratecount, $videodivId, $vid, $videoId);
     }
     /** Rating ends here */
     $output .= '</div>';
     if ($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY) {
         /** Display tag info */
         if (!empty($tag_name) && $configXML->tagdisplay == 1) {
             $output .= '<div class="video-page-tag"><strong>' . __('Tags', APPTHA_VGALLERY) . '          </strong>: ' . $tag_name . ' ' . '</div>';
         }
         /** Check if video url is YouTube */
         if (strpos($videoUrl, 'youtube') > 0) {
             $video_thumb = $this->_protocolURL . 'img.youtube.com/vi/' . getYoutubeVideoID($videoUrl) . '/hqdefault.jpg';
         }
         /** Display description */
         if (!empty($description)) {
             $removequotedescription = str_replace('"', '', $description);
             $videodescription = str_replace("'", '', $removequotedescription);
         } else {
             $videodescription = get_bloginfo('name');
         }
         /** Check amazon s3 bucket is enabled */
         if ($fetched[0]->amazon_buckets == 1) {
             $video_thumb = '';
         }
         /** Load rss url link */
         $rs_url = $this->_site_url . '/wp-admin/admin-ajax.php?action=rss&type=video&vid=' . $vid;
         $rss_image = getImagesDirURL() . '/rss_icon.png';
         /** Show social icons below player */
         if ($show_social_icon) {
             /** Function to display social icons
              * and rss icon */
             $output .= $this->displaySocialIcons($configXML->keyApps, $videodescription, $video_thumb, $video_title);
             /** Show rss url link and image
              * Build rss icon div */
             if ($show_rss_icon) {
                 $output .= '<div class="floatleft rssfeed">&nbsp;&nbsp;<a href="' . $rs_url . '"><img src="' . $rss_image . '"></a></div>';
             }
             $output .= '</div>';
             $output .= '<div class="clearfix">';
         }
         $output .= '<div class="video-cat-thumb">';
         /** Show rss icon enable / disable  */
         if ($show_rss_icon && !$show_social_icon) {
             $rs_url = $this->_site_url . '/wp-admin/admin-ajax.php?action=rss&type=video&vid=' . $vid;
             $rss_image = getImagesDirURL() . '/rss_icon.png';
             $output .= '<div class="video-socialshare"><div class="floatleft rssfeed">&nbsp;&nbsp;<a href="' . $rs_url . '"><img src="' . $rss_image . '"></a></div></div>';
         }
         /** Show or hide embed /iframe/report video option code for video detail page..  */
         if ($configXML->embed_visible == 1) {
             $output .= '<a href="javascript:void( 0 )" onclick="enableEmbed();" class="embed" id="allowEmbed"><span class="embed_text">' . __('Embed&nbsp;Code', APPTHA_VGALLERY) . '</span><span class="embed_arrow"></span></a>';
         }
         if (isset($player_color['iframe_visible']) && $player_color['iframe_visible']) {
             $output .= '<a href="javascript::void(0);" onclick="view_iframe_code();" id="iframe_code" class="embed"><span class="embed_text">' . __('Iframe', APPTHA_VGALLERY) . '</span><span class="embed_arrow"></span></a>';
         }
         if (isset($player_color['report_visible']) && $player_color['report_visible']) {
             $output .= '<a href="javascript:void(0)" onclick="reportVideo();" class="embed" id="allowReport"><span class="embed_text">' . __('Report&nbsp;Video', APPTHA_VGALLERY) . '</span><span class="embed_arrow"></span></a>';
         }
         /** Condition for embed code */
         if ($fetched[0]->file_type == 5 && !empty($fetched[0]->embedcode)) {
             $embed_code = stripslashes($fetched[0]->embedcode);
         } else {
             /** Display embed code */
             $embed_code = '<embed src="' . $this->_swfPath . '" flashvars="' . $flashvars . '&amp;shareIcon=false&amp;email=false&amp;showPlaylist=false&amp;zoomIcon=false&amp;copylink=' . get_permalink() . '&amp;embedplayer=true" width="' . $width . '" height="' . $height . '" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" wmode="transparent">';
         }
         /** Call fucntion to display report video option */
         $output .= $this->displayReportVideo($embed_code, $video_slug, $current_user->user_email);
         /** Load embed code */
         if ($fetched[0]->file_type == 5 && $fetched[0]->embedcode) {
             $iframe_code = stripslashes($fetched[0]->embedcode);
         } else {
             /** Load iframe code */
             $iframe_code = '<iframe src="' . $this->_swfPath . '?' . $flashvars . '&amp;shareIcon=false&amp;email=false&amp;showPlaylist=false&amp;zoomIcon=false&amp;copylink=' . get_permalink() . '&amp;embedplayer=true" frameborder="0" width="' . $width . '" height="' . $height . '" ></iframe>';
         }
         $output .= '<textarea row="7" col="60" id="iframe-content" name="iframe-content" style="display:none;" onclick="this.select();">' . $iframe_code . '</textarea><input type="hidden" value="" id="iframeflag" name="iframeflag" />';
         /** Show /hide video description. */
         if ($configXML->showTag) {
             $output .= '<div style="clear: both;"></div><div class="video-page-desc">' . apply_filters('the_content', $description) . '</div>';
         }
         $output .= '</div></div>';
     }
     $output .= '</div></div>';
     /** Enable/disable Related videos slider */
     $flag = 0;
     if ($vid && isset($arguments['playlistid']) && isset($arguments['relatedvideos']) && $arguments['relatedvideos'] == 'on') {
         $flag = 1;
     }
     if ($flag == 1 || ($this->_post_type === APPTHAVIDEOGALLERY || $this->_page_post_type === APPTHAVIDEOGALLERY) && $player_color['show_related_video'] == 1) {
         /** Call function to display related videos slider */
         $output .= $this->relatedVideoSlider($vid, $video_playlist_id, $pluginflashvars, $width, $height, $videodivId);
     }
     /** To display video comments section */
     return $output . $this->videoComments($configXML);
 }
function videohitcount_function()
{
    /** Get video id from parameter for views count */
    $videoID = intval($_GET['vid']);
    watchedVideoHitCount($videoID, true);
}