/**
  * Shortcode Functionality
  */
 function embed_shortcode($atts)
 {
     $embed = "";
     $durl = "";
     $default_width = ead_sanitize_dims(get_option('ead_width', '100%'));
     $default_height = ead_sanitize_dims(get_option('ead_height', '500px'));
     $default_provider = get_option('ead_provider', 'google');
     $default_download = get_option('ead_download', 'none');
     $show = false;
     extract(shortcode_atts(array('url' => '', 'drive' => '', 'width' => $default_width, 'height' => $default_height, 'language' => 'en', 'viewer' => $default_provider, 'download' => $default_download), $atts));
     if (isset($atts['provider'])) {
         $viewer = $atts['provider'];
     }
     if (!isset($atts['provider']) and !isset($atts['viewer'])) {
         $viewer = 'google';
     }
     if ($url) {
         $filedata = wp_remote_head($url);
         $durl = '';
         $privatefile = '';
         if (ead_allowdownload($viewer)) {
             if ($download == 'alluser' or $download == 'all') {
                 $show = true;
             } elseif ($download == 'logged' and is_user_logged_in()) {
                 $show = true;
             }
         }
         if ($show) {
             $filesize = 0;
             $url = esc_url($url, array('http', 'https'));
             if (!is_wp_error($filedata) && isset($filedata['headers']['content-length'])) {
                 $filesize = ead_human_filesize($filedata['headers']['content-length']);
             } else {
                 $filesize = 0;
             }
             $fileHtml = '';
             if ($filesize) {
                 $fileHtml = ' [' . $filesize . ']';
             }
             $durl = '<p class="embed_download"><a href="' . $url . '" download >' . __('Download', 'ead') . $fileHtml . ' </a></p>';
         }
         $url = esc_url($url, array('http', 'https'));
         $providerList = array('google', 'microsoft');
         if (!in_array($viewer, $providerList)) {
             $viewer = 'google';
         }
         switch ($viewer) {
             case 'google':
                 $embedsrc = '//docs.google.com/viewer?url=%1$s&embedded=true&hl=%2$s';
                 $iframe = sprintf($embedsrc, urlencode($url), esc_attr($language));
                 break;
             case 'microsoft':
                 $embedsrc = '//view.officeapps.live.com/op/embed.aspx?src=%1$s';
                 $iframe = sprintf($embedsrc, urlencode($url));
                 break;
         }
         $style = 'style="width:%1$s; height:%2$s; border: none;"';
         $stylelink = sprintf($style, ead_sanitize_dims($width), ead_sanitize_dims($height));
         $iframe = '<iframe src="' . $iframe . '" ' . $stylelink . '></iframe>';
         $show = false;
         $embed = '<div class="ead-document">' . $iframe . $privatefile . $durl . '</div>';
     } else {
         $embed = __('No Url Found', 'ead');
     }
     return $embed;
 }
/**
 * Validate File url
 *
 * @since   1.0
 * @return  string Download link
 */
function ead_validateurl($url)
{
    $types = ead_validmimeTypes();
    $url = esc_url($url, array('http', 'https'));
    $remote = wp_remote_head($url);
    $json['status'] = false;
    $json['message'] = '';
    if (wp_remote_retrieve_response_code($remote) == 200) {
        //Gzip Support
        $filename = pathinfo($url);
        $doctypes = ead_validmimeTypes();
        if (ead_validType($url, $doctypes)) {
            $json['status'] = true;
            $json['message'] = __("Done", 'ead');
            $json['file']['url'] = $url;
            if (isset($filename)) {
                $json['file']['filename'] = $filename['basename'];
            } else {
                $json['file']['filename'] = __("Document", 'ead');
            }
            if (!is_wp_error($filedata) && isset($filedata['headers']['content-length'])) {
                $json['file']['filesizeHumanReadable'] = ead_human_filesize($remote['headers']['content-length']);
            } else {
                $json['file']['filesizeHumanReadable'] = 0;
            }
        } else {
            $json['message'] = __("File format is not supported.", 'ead');
            $json['status'] = false;
        }
    } elseif (is_wp_error($remote)) {
        $json['message'] = $remote->get_error_message();
        $json['status'] = false;
    } else {
        $json['message'] = __('Sorry, the file URL is not valid.', 'ead');
        $json['status'] = false;
    }
    return $json;
}