require_dependency 'oneboxer/oembed_onebox'

module Oneboxer
  class YoutubeOnebox < OembedOnebox
    matcher /^https?:\/\/(?:www\.)?(?:youtube\.com|youtu\.be)\/.+$/

    def oembed_endpoint
      "http://www.youtube.com/oembed?url=#{BaseOnebox.uriencode(@url.sub('https://', 'http://'))}&format=json"
    end

    def onebox
      (super || []).each do |entry|
        # Youtube allows HTTP and HTTPS, so replace them with the protocol-agnostic variant
        BaseOnebox.replace_agnostic entry
        # Add wmode=opaque to the iframe src URL so that the flash player is rendered within the document flow instead of on top
        BaseOnebox.append_embed_wmode entry
      end
    end
  end
end
