;(function ($) { 'use strict'; $.fn.vids = function (options) { var settings = { customSelector: null, ignore: null }; if (!document.getElementById('vids-style')) { var head = document.head || document.getElementsByTagName('head')[0]; var css = '.video-wrap{width:100%;position:relative;padding:0}.video-wrap iframe, .video-wrap object, .video-wrap embed{position:absolute;top:0;left:0;width:100%;height:100%}'; var div = document.createElement("div"); div.innerHTML = '

x

'; head.appendChild(div.childNodes[1]); } if (options) { $.extend(settings, options); } return this.each(function () { var selectors = [ 'iframe[src*="youtube.com"]', 'iframe[src*="youtube-nocookie.com"]', 'iframe[src*="player.vimeo.com"]', 'iframe[src*="dailymotion.com"]', 'iframe[src*="metacafe.com"]', 'iframe[src*="player.twitch.tv"]', 'iframe[src*="vine.co"]', 'iframe[src*="liveleak.com"]', 'iframe[src*="kickstarter.com"][src*="video.html"]', 'object', 'embed' ]; if (settings.customSelector) { selectors.push(settings.customSelector); } var ignoreList = '.vids-ignore'; if (settings.ignore) { ignoreList = ignoreList + ', ' + settings.ignore; } var $allVideos = $(this).find(selectors.join(',')); $allVideos = $allVideos.not('object object'); $allVideos = $allVideos.not(ignoreList); $allVideos.each(function (count) { var $this = $(this); if ($this.parents(ignoreList).length > 0) { return; } if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.video-wrap').length) { return; } if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) { $this.attr('height', 9); $this.attr('width', 16); } var height = (this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10)))) ? parseInt($this.attr('height'), 10) : $this.height(), width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), aspectRatio = height / width; if (!$this.attr('id')) { var videoID = 'vid' + count; $this.attr('id', videoID); } $this.wrap('
').parent('.video-wrap').css('padding-top', (aspectRatio * 100) + '%'); $this.removeAttr('height').removeAttr('width'); }); }); }; })(window.jQuery || window.Zepto);