<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
	<title>All Forums Feed</title>
	<description>An RSS feed of the entire set of forums</description>
	<link>https://community.tubepress.com</link>
	<pubDate>Wed, 21 Aug 2019 21:12:57 +0000</pubDate>
	<ttl>30</ttl>
	<item>
		<title>How To Respond To The Youtube Api Compliance Audit</title>
		<link>https://community.tubepress.com/topic/5927-how-to-respond-to-the-youtube-api-compliance-audit/</link>
		<description><![CDATA[<p>TubePress Pro users might have recently received an email from YouTube with the following subject:</p><blockquote  class=""><p><strong>[ACTION REQUIRED] Please submit the requested details for YouTube API Compliance Audit</strong></p></blockquote><p>While this sounds a bit ominous, it’s actually just a routine audit conducted by Google. Unfortunately, as consumers of YouTube API services, TubePress Pro users will need to respond to their request for information. In short, you’ll need to spend a few minutes completing <a href='https://support.google.com/youtube/contact/yt_api_form' class='bbc_url' title='External link' rel='nofollow external'>this form</a>. Not all of the questions have obvious answers, so below you’ll find our suggestions on how to answer the trickier questions as they relate to TubePress Pro.</p><ul><li><strong><em>Reason for filling this form?</em></strong><br>Select “Audit Initiated by YouTube”.</li></ul><ul><li><strong><em>Describe your organization’s work as it relates to YouTube.</em></strong><br>We suggest something similar to the following:<br><blockquote>We use TubePress Pro, a WordPress plugin, on our website to display galleries of our organization’s YouTube videos.</blockquote></li></ul><ul><li><strong><em>Please list all your API Client(s)</em></strong><br>Enter the URL of your website where you have installed TubePress Pro. Better yet, paste a link to the page containing a TubePress gallery.</li></ul><ul><li><strong><em>Please list all the project numbers used for each of your API Client(s)</em></strong><br>You should have received a copy of your project number in the email from YouTube. You can also find it in the <a href='https://console.developers.google.com/' class='bbc_url' title='External link' rel='nofollow external'>Google Developer’s Console</a>.</li></ul><ul><li><strong><em>Is this a publicly or privately available API Client?</em></strong><br>Select “Publicly accessible”.</li></ul><ul><li><strong><em>Where can we find each API Client(s)?</em></strong><br>Enter “<a href='https://tubepress.xn--com-9o0a.' class='bbc_url' title='External link' rel='nofollow external'>https://tubepress.com”.</a></li></ul><ul><li><strong><em>If there is a log-in required to access the API client, please provide a demo account and instructions on how to access the API Client</em></strong><br>If your TubePress galleries are publicly accessible, simply paste a link to a page on your website with a TubePress gallery.<br><br>If your videos are behind a paywall, or any other access control, you’ll need to create a demo account for YouTube and provide instructions to view your TubePress galleries.</li></ul><ul><li><strong><em>Does your API Client commercialize YouTube Data?</em></strong><br>If your TubePress galleries are publicly accessible, which is most common, select “No”. If your TubePress galleries are behind a paywall, select “Yes”.</li></ul><ul><li><strong><em>Choose the option that best resembles your API Client’s use case</em></strong><br>We recommend that you enter “Video streaming site/app”.</li></ul><ul><li><strong><em>Specify all YouTube API Services used by this API Client</em></strong><br>Select “Data API”.</li></ul><ul><li><strong><em>Select the primary audience for your API Client</em></strong><br>Select “Viewers”.</li></ul><ul><li><strong><em>Approximately how many users use your API Client?</em></strong><br>Enter an estimate of the traffic volume to your TubePress galleries. For instance, “20K visitors per month.”</li></ul><ul><li><strong><em>Explain how your API Client is used by your users</em></strong><br>We recommend something like the following:<br><blockquote>My website visitors can browse our organization’s YouTube uploads via video galleries and watch the videos directly from my site.</blockquote></li></ul><ul><li><strong><em>Does your API Client use multiple projects to access YouTube APIs?</em></strong><br>Select “No”.</li></ul><ul><li><strong><em>Does this API Client create, access or use any metrics derived from YouTube data?</em></strong><br>Select “Yes”.</li></ul><ul><li><strong><em>Does this API Client display data from, or provide features or services across, multiple platforms (ex: Facebook, Twitter, etc.)?</em></strong><br>Select “No” unless you are using TubePress to display galleries that are comprised of YouTube videos mixed together with Vimeo or Dailymotion videos.</li></ul><ul><li><strong><em>Do you create/provide any type of reports using YouTube API Data?</em></strong><br>Select “No”.</li></ul><ul><li><strong><em>How long do you store YouTube API Data?</em></strong><br>Most users can select “&lt; 24 hours”. To be sure, check your cache settings at WP Admin &gt; Settings &gt; TubePress &gt; Cache.<br></li></ul><ul><li><strong><em>How often do you refresh YouTube API Data?</em></strong><br>Again, most users can select “24 hours”, but you’ll need to check your cache settings.</li></ul><ul><li><strong><em>Does this API Client allow users to authenticate with their Google credentials?</em></strong><br>Select “No”.</li></ul><ul><li><strong><em>Send documents (e.g., design documents, etc.) relating to your implementation …</em></strong><br>We recommend that you supply screenshots and/or screencasts of TubePress Pro on your website. This may include video galleries, single-video embeds, or the TubePress settings page.</li></ul><p>If you have any questions, please don’t hesitate to <a href='https://tubepress.com/contact/' class='bbc_url' title='External link' rel='nofollow external'>contact us</a> and we’ll be glad to help. As always, thanks for using TubePress!</p><p>The post <a href='https://tubepress.com/blog/2019/08/how-to-respond-to-the-youtube-api-compliance-audit/' class='bbc_url' title='External link' rel='nofollow external'>How to respond to the YouTube API Compliance Audit</a> appeared first on <a href='https://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/Lx-ldfAYySs" height="1" width="1" alt="Lx-ldfAYySs"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/Lx-ldfAYySs/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Wed, 21 Aug 2019 21:12:57 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5927-how-to-respond-to-the-youtube-api-compliance-audit/</guid>
	</item>
	<item>
		<title>Tester</title>
		<link>https://community.tubepress.com/topic/5926-tester/</link>
		<description><![CDATA[<p>test</p><p>The post <a href='https://tubepress.com/blog/2018/10/tester/' class='bbc_url' title='External link' rel='nofollow external'>tester</a> appeared first on <a href='https://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/srS0eqglrgw" height="1" width="1" alt="srS0eqglrgw"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/srS0eqglrgw/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Wed, 24 Oct 2018 23:51:25 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5926-tester/</guid>
	</item>
	<item>
		<title>Don’T Stress About The Updated Youtube Api Terms Of Service</title>
		<link>https://community.tubepress.com/topic/5925-don’t-stress-about-the-updated-youtube-api-terms-of-service/</link>
		<description><![CDATA[<p>Users of TubePress Pro have no doubt recently received the following email from YouTube warning about an impending update to the YouTube API&nbsp;Terms of Service and other legal agreements.</p><p><a href='http://media.wp.tubepress.com/2017/02/08132457/New-YouTube-Terms-of-Service-and-Developer-Policies.png' class='bbc_url' title='External link' rel='nofollow external'><span rel='lightbox'><img class='bbc_img' src="http://media.wp.tubepress.com/2017/02/08132457/New-YouTube-Terms-of-Service-and-Developer-Policies.png" width="615" height="383" alt="New-YouTube-Terms-of-Service-and-Develop"></span></a></p><p>Nearly all tech companies periodically update such agreements with their users. And while some updates are <a href='http://www.theverge.com/2016/11/30/13763714/uber-location-data-tracking-app-privacy-ios-android' class='bbc_url' title='External link' rel='nofollow external'>more ominous than others</a>, the “February 10th, 2017” update from YouTube is largely benign and will have a very small impact on TubePress users. The good news is that the changes <strong><a href='https://developers.google.com/youtube/terms/api-services-terms-of-service#agreement' class='bbc_url' title='External link' rel='nofollow external'>do not apply retroactively</a></strong>, which means that any existing copies of TubePress&nbsp;are not suddenly in violation. This does, however, mean that any future versions of TubePress will need to meet YouTube’s new requirements in order to stay within compliance.</p><p>Below we’ve summarized what to expect in future versions of TubePress. As you can see, most of the changes are very minor and are geared towards protecting user privacy.</p><ol><li>Display a link to the <a href='http://tubepress.com/privacy/' class='bbc_url' title='External link' rel='nofollow external'>TubePress Privacy Policy</a>&nbsp;in the TubePress administration areas as per <a href='https://developers.google.com/youtube/terms/api-services-terms-of-service#user-privacy' class='bbc_url' title='External link' rel='nofollow external'>section 7 of the updated ToS</a>.</li><li>Display a link to <a href='https://www.youtube.com/t/terms' class='bbc_url' title='External link' rel='nofollow external'>YouTube’s Terms of Service</a> in TubePress and update the <a href='http://tubepress.com/terms/' class='bbc_url' title='External link' rel='nofollow external'>TubePress Terms and Conditions</a>&nbsp;as&nbsp;per <a href='https://developers.google.com/youtube/terms/developer-policies#a-api-client-terms-of-use-and-privacy-policies' class='bbc_url' title='External link' rel='nofollow external'>section III.A.1 of the new Developer Policies</a>.</li><li>Update the <a href='http://tubepress.com/privacy/' class='bbc_url' title='External link' rel='nofollow external'>TubePress Privacy Policy</a> to detail exactly how TubePress uses and stores YouTube API data as per <a href='https://developers.google.com/youtube/terms/developer-policies#a-api-client-terms-of-use-and-privacy-policies' class='bbc_url' title='External link' rel='nofollow external'>Section III.A.2 of the new Developer Policies</a>.</li><li>Update the <a href='http://tubepress.com/privacy/' class='bbc_url' title='External link' rel='nofollow external'>TubePress Privacy Policy</a> to include a link to <a href='https://security.google.com/settings/security/permissions' class='bbc_url' title='External link' rel='nofollow external'>Google’s security settings page</a>&nbsp;as per <a href='https://developers.google.com/youtube/terms/developer-policies#d-accessing-youtube-api-services' class='bbc_url' title='External link' rel='nofollow external'>section D.2.c.i of the new Developer Policies</a>.</li><li>Prevent TubePress from storing any YouTube API data for longer than 30 days as per <a href='https://developers.google.com/youtube/terms/developer-policies#e-handling-youtube-data-and-content' class='bbc_url' title='External link' rel='nofollow external'>section E.4.d of the new Developer Policies</a>.</li><li>In TubePress galleries where YouTube videos are mixed with Vimeo and/or Dailymotion videos, provide proper attribution to indicate which videos are from YouTube as per <a href='https://developers.google.com/youtube/terms/developer-policies#f-user-experience' class='bbc_url' title='External link' rel='nofollow external'>section F.2.a of the new Developer Policies</a>.</li><li>Prevent the YouTube embedded video player from displaying at a size smaller than 200 pixels by 200 pixels as per the new <a href='https://developers.google.com/youtube/terms/required-minimum-functionality#embedded-youtube-player-size' class='bbc_url' title='External link' rel='nofollow external'>Required Minimum Functionality</a>.</li><li>Change the behavior of autoplay (i.e. start playing a video as soon as the page loads) to be compliant with the new <a href='https://developers.google.com/youtube/terms/required-minimum-functionality#autoplay-and-scripted-playbacks' class='bbc_url' title='External link' rel='nofollow external'>Required Minimum Functionality</a>.</li><li>Prevent YouTube thumbnails from displaying at any size less than 120 pixels wide by 70 pixels tall, as per the new <a href='https://developers.google.com/youtube/terms/required-minimum-functionality#autoplay-and-scripted-playbacks' class='bbc_url' title='External link' rel='nofollow external'>Required Minimum Functionality</a>.</li></ol><p>In summary, <strong>these changes will not affect the majority of TubePress users</strong>. We will ensure that future versions of TubePress (including our major update currently under development) are compliant with the terms set forth by YouTube, so there’s no action needed on your part at this time.</p><p>Thanks for using TubePress, and please don’t hesitate to <a href='http://support.tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>contact us</a> if you have any questions!</p><p>The post <a href='http://tubepress.com/blog/2017/02/dont-stress-about-the-updated-youtube-api-terms-of-service/' class='bbc_url' title='External link' rel='nofollow external'>Don’t Stress About the Updated YouTube API Terms of Service</a> appeared first on <a href='http://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/xNqU6Z6fyeE" height="1" width="1" alt="xNqU6Z6fyeE"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/xNqU6Z6fyeE/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Wed, 08 Feb 2017 21:51:06 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5925-don’t-stress-about-the-updated-youtube-api-terms-of-service/</guid>
	</item>
	<item>
		<title>Tubepress 5.0.0 Introduces Support For Dailymotion</title>
		<link>https://community.tubepress.com/topic/5924-tubepress-500-introduces-support-for-dailymotion/</link>
		<description><![CDATA[<p><span rel='lightbox'><img class='bbc_img' src="http://media.wp.tubepress.com/2016/03/01170431/Logo-Dailymotion-2015-300dpi-grey.png" width="617" height="114" alt="Logo-Dailymotion-2015-300dpi-grey.png"></span></p><p>Today we are very excited to announce the immediate availability of TubePress 5.0.0. This release proudly introduces full support for <a href='https://www.dailymotion.com' class='bbc_url' title='External link' rel='nofollow external'>Dailymotion</a>, one of the largest video hosts in the world. TubePress can now access nine individual Dailymotion video sources! There is no API setup required, and&nbsp;we will soon be releasing an add-on that allows TubePress to access private Dailymotion videos. Stand by for that!</p><p>We have also dropped&nbsp;support for PHP 5.2, which <a href='http://php.net/eol.php' class='bbc_url' title='External link' rel='nofollow external'>has reached end-of-life</a> over five years ago. The new requirement for TubePress Pro users is PHP 5.3.29 or higher. If you are still using PHP 5.2, you will need to ask your hosting provider to upgrade your installation before you upgrade to TubePress 5.0.0.</p><p>WordPress users can follow the upgrade instructions <a href='http://support.tubepress.com/customer/en/portal/articles/2032975-manual-upgrade-procedure' class='bbc_url' title='External link' rel='nofollow external'>here</a>, and standalone PHP users can find upgrade instructions <a href='http://support.tubepress.com/customer/en/portal/articles/2041796-upgrade-procedure' class='bbc_url' title='External link' rel='nofollow external'>here</a>. TubePress Express, Wix, Jimdo, and Weebly users will be upgraded to TubePress 5.0.0 in the very near future. As usual, please don’t hesitate to <a href='http://support.tubepress.com/customer/portal/emails/new' class='bbc_url' title='External link' rel='nofollow external'>contact us</a> if you experience any issues with this upgrade. We hope you enjoy this new release!</p><p>The post <a href='http://tubepress.com/blog/2016/03/tubepress-5-0-0-introduces-support-dailymotion/' class='bbc_url' title='External link' rel='nofollow external'>TubePress 5.0.0 Introduces Support for Dailymotion</a> appeared first on <a href='http://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/R5hNIv8-p8g" height="1" width="1" alt="R5hNIv8-p8g"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/R5hNIv8-p8g/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Wed, 02 Mar 2016 02:58:00 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5924-tubepress-500-introduces-support-for-dailymotion/</guid>
	</item>
	<item>
		<title>Tubepress 4.2.0 Released With Improved Vimeo Support</title>
		<link>https://community.tubepress.com/topic/5923-tubepress-420-released-with-improved-vimeo-support/</link>
		<description><![CDATA[<p><span rel='lightbox'><img class='bbc_img' src="http://media.wp.tubepress.com/2016/01/15180000/vimeo_logo_dark.png" width="300" height="85" alt="vimeo_logo_dark.png"></span></p><p>Today we are delighted to announce the immediate availability of TubePress 4.2.0. The most exciting improvement in this release is support for version 3 of the Vimeo API. Vimeo has deprecated version 2 of their API and it will likely soon be disabled completely, so TubePress 4.2.0 is a critical milestone in the long-term stability of your Vimeo video galleries.</p><p><strong>Please note that all TubePress Pro users that use Vimeo, including existing customers, will need to perform a one-time API setup that we have detailed <a href='http://support.tubepress.com/customer/en/portal/articles/2283351-vimeo-api-setup-for-wordpress' class='bbc_url' title='External link' rel='nofollow external'>here</a>.</strong> This setup is required by Vimeo, but thankfully is relatively quick and easy.</p><p>The other big feature in TubePress 4.2.0 is support for <a href='http://support.tubepress.com/customer/en/portal/articles/2278860-enable-automatic-plugin-updates' class='bbc_url' title='External link' rel='nofollow external'>automatic updates in WordPress</a>. Our users have long been clamoring for this capability, and it should make upgrading TubePress completely painless.</p><p>Lastly, this version includes a handful of bug fixes, new translations for Slovak and Dutch, and it will be the last version of TubePress that can run under PHP 5.2 (future versions will require PHP 5.3.29 or higher).</p><p>You can <a href='https://dashboard.tubepress.com/download' class='bbc_url' title='External link' rel='nofollow external'>download</a> TubePress 4.2.0 today and find all the latest documentation on <a href='http://support.tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>the support site</a>. As usual, please don’t hesitate to <a href='http://support.tubepress.com/customer/portal/emails/new' class='bbc_url' title='External link' rel='nofollow external'>contact us</a> for anything.</p><p>Thanks for using TubePress!</p><p>The post <a href='http://tubepress.com/blog/2016/01/tubepress-4-2-0-released/' class='bbc_url' title='External link' rel='nofollow external'>TubePress 4.2.0 Released with Improved Vimeo Support</a> appeared first on <a href='http://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/HeeIyZ4PGW0" height="1" width="1" alt="HeeIyZ4PGW0"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/HeeIyZ4PGW0/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Sat, 16 Jan 2016 02:02:26 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5923-tubepress-420-released-with-improved-vimeo-support/</guid>
	</item>
	<item>
		<title>Upgraded Authentication System – Action Required</title>
		<link>https://community.tubepress.com/topic/5922-upgraded-authentication-system-–-action-required/</link>
		<description><![CDATA[<p><strong>tl;dr – We upgraded our authentication system and most users will need to <a href='#' class='bbc_url' title='External link' rel='nofollow external'>set a new password</a>. There has not been a security breach.</strong></p><p>Over the past few months we have been quietly upgrading our server infrastructure to support an ever-growing customer base. As part of this process, today we are rolling out our completely new authentication and identity management system. This new system will provide a better login experience for users, increase our overall security posture, and will scale easily with our growth.</p><p>So what does this mean for you, the TubePress user? You will need to follow one of two paths moving forward:</p><ol><li>    <strong>If you log in to TubePress with a password (rather than Google, Facebook, or Twitter)</strong><ul><li>You will need to reset your password by <a href='#' class='bbc_url' title='External link' rel='nofollow external'>clicking here</a>.      </li><li>You will now log in with your email address and password; we no longer support “usernames” for authentication.</li></ul></li><li>    <strong>If you log in to TubePress with Google, Facebook, or Twitter</strong><ul><li>You may <a href='#' class='bbc_url' title='External link' rel='nofollow external'>continue to do so</a> but we’ll need to “connect” your account with your old account information. Please simply <a href='https://tubepress.desk.com/customer/portal/emails/new' class='bbc_url' title='External link' rel='nofollow external'>contact us</a> and let us know that you are logging in with Google/Facebook/Twitter – we’ll take care of the rest.      </li></ul></li></ol><p>It’s natural to suspect a security breach when a system-wide password reset is enforced.&nbsp;<strong>We can assure you that we have not experienced a security breach of any kind</strong>. We are simply upgrading our security system in an effort to further secure your data.</p><p>If you need any help logging in, or if you find something that isn’t working quite right, please <a href='https://tubepress.desk.com/customer/portal/emails/new' class='bbc_url' title='External link' rel='nofollow external'>contact us</a>! Our support staff is waiting to assist everyone through this transition and make it as painless as possible.</p><p>We hope that you’ll be pleased with this new system. Thanks for using TubePress!</p><p>The post <a href='http://tubepress.com/blog/2015/11/upgraded-authentication-system-action-required/' class='bbc_url' title='External link' rel='nofollow external'>Upgraded Authentication System – Action Required</a> appeared first on <a href='http://tubepress.com' class='bbc_url' title='External link' rel='nofollow external'>TubePress</a>.</p><span rel='lightbox'><img class='bbc_img' src="http://feeds.feedburner.com/~r/tubepress/AvGj/~4/Am-N7Mmy6I4" height="1" width="1" alt="Am-N7Mmy6I4"></span><br /><br /><a href='http://feedproxy.google.com/~r/tubepress/AvGj/~3/Am-N7Mmy6I4/' class='bbc_url' title='External link' rel='nofollow external'>View the full article</a>]]></description>
		<pubDate>Tue, 03 Nov 2015 04:50:10 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5922-upgraded-authentication-system-–-action-required/</guid>
	</item>
	<item>
		<title>Problem: Huge Gap Between Title And Video Player</title>
		<link>https://community.tubepress.com/topic/5921-problem-huge-gap-between-title-and-video-player/</link>
		<description><![CDATA[<p>Hi,</p>
<p>&nbsp;</p>
<p>I am having the issue described in this fix:</p>
<p>&nbsp;</p>
<p><a href='http://support.tubepress.com/customer/portal/articles/2038608-common-issues-with-responsive-video-embeds' class='bbc_url' title='External link' rel='nofollow external'>http://support.tubepress.com/customer/portal/articles/2038608-common-issues-with-responsive-video-embeds</a></p>
<p>&nbsp;</p>
<p>Unfortunately my site uses a responsive javascript that has a few different scripts within it (including FitVids 1.0) and I cant seem to make the changes necessary to fix it.</p>
<p>&nbsp;</p>
<p>Here is my javascript before any changes:</p>
<p>&nbsp;</p>
<p>Many thanks for you help!</p>
<p>
Rob</p>
<pre  class="prettyprint lang-js linenums:1">
/*!

 * FitVids 1.0

 *

 * Copyright 2011, Chris Coyier - http&#58;//css-tricks.com + Dave Rupert - http&#58;//daverupert.com

 * Credit to Thierry Koblentz - http&#58;//www.alistapart.com/articles/creating-intrinsic-ratios-for-video/

 * Released under the WTFPL license - http&#58;//sam.zoy.org/wtfpl/

 *

 * Date: Thu Sept 01 18:00:00 2011 -0500

 */



(function ($) {



	"use strict";



	$.fn.fitVids = function (options) {

		var settings = {

			customSelector: null

		};



		var div = document.createElement('div'),

			ref = document.getElementsByTagName('base')&#91;0] || document.getElementsByTagName('script')&#91;0];



		div.className = 'fit-vids-style';

		div.innerHTML = '&shy;&lt;style&gt;         \

      .fluid-width-video-wrapper {        \

         width: 100%;                     \

         position: relative;              \

         padding: 0;                      \

      }                                   \

                                          \

      .fluid-width-video-wrapper iframe,  \

      .fluid-width-video-wrapper object,  \

      .fluid-width-video-wrapper embed {  \

         position: absolute;              \

         top: 0;                          \

         left: 0;                         \

         width: 100%;                     \

         height: 100%;                    \

      }                                   \

    &lt;/style&gt;';



		ref.parentNode.insertBefore(div, ref);



		if (options) {

			$.extend(settings, options);

		}



		return this.each(function () {

			var selectors = &#91;

				"iframe&#91;src*='player.vimeo.com']",

				"iframe&#91;src*='www.youtube.com']",

				"iframe&#91;src*='www.youtube-nocookie.com']",

				"iframe&#91;src*='fast.wistia.com']",

				"embed"

			];



			if (settings.customSelector) {

				selectors.push(settings.customSelector);

			}



			var $allVideos = $(this).find(selectors.join(','));



			$allVideos.each(function () {

				var $this = $(this);

				if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) {

					return;

				}

				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 = 'fitvid' + Math.floor(Math.random() * 999999);

					$this.attr('id', videoID);

				}

				$this.wrap('&lt;div class="fluid-width-video-wrapper"&gt;&lt;/div&gt;').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100) + "%");

				$this.removeAttr('height').removeAttr('width');

			});

		});

	};

})(jQuery);



// FitVids

jQuery(function($) {

// Target your #container, #wrapper etc.

	$("#wrapper").fitVids({ ignore: '.ls-container'});

});



/*!

 * Mobile Menu

 *

 * GPL V2 License &#40;c&#41; CyberChimps

 */

(function ($) {

    var obj = {



        onClick: function () {

            $("#main-navigation").toggleClass("menu-open");

        }



    };



    $("nav#main-navigation").on("click", obj.onClick);

})(jQuery);



/*! http&#58;//mths.be/placeholder v2.0.7 by @mathias */

;(function(window, document, $) {



	var isInputSupported = 'placeholder' in document.createElement('input');

	var isTextareaSupported = 'placeholder' in document.createElement('textarea');

	var prototype = $.fn;

	var valHooks = $.valHooks;

	var propHooks = $.propHooks;

	var hooks;

	var placeholder;



	if (isInputSupported && isTextareaSupported) {



		placeholder = prototype.placeholder = function() {

			return this;

		};



		placeholder.input = placeholder.textarea = true;



	} else {



		placeholder = prototype.placeholder = function() {

			var $this = this;

			$this

				.filter((isInputSupported ? 'textarea' : ':input') + '&#91;placeholder]')

				.not('.placeholder')

				.bind({

					'focus.placeholder': clearPlaceholder,

					'blur.placeholder': setPlaceholder

				})

				.data('placeholder-enabled', true)

				.trigger('blur.placeholder');

			return $this;

		};



		placeholder.input = isInputSupported;

		placeholder.textarea = isTextareaSupported;



		hooks = {

			'get': function(element) {

				var $element = $(element);



				var $passwordInput = $element.data('placeholder-password');

				if ($passwordInput) {

					return $passwordInput&#91;0].value;

				}



				return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;

			},

			'set': function(element, value) {

				var $element = $(element);



				var $passwordInput = $element.data('placeholder-password');

				if ($passwordInput) {

					return $passwordInput&#91;0].value = value;

				}



				if (!$element.data('placeholder-enabled')) {

					return element.value = value;

				}

				if (value == '') {

					element.value = value;

					// Issue #56: Setting the placeholder causes problems if the element continues to have focus.

					if (element != safeActiveElement()) {

						// We can't use `triggerHandler` here because of dummy text/password inputs :(

						setPlaceholder.call(element);

					}

				} else if ($element.hasClass('placeholder')) {

					clearPlaceholder.call(element, true, value) || (element.value = value);

				} else {

					element.value = value;

				}

				// `set` can not return `undefined`; see http&#58;//jsapi.info/jquery/1.7.1/val#L2363

				return $element;

			}

		};



		if (!isInputSupported) {

			valHooks.input = hooks;

			propHooks.value = hooks;

		}

		if (!isTextareaSupported) {

			valHooks.textarea = hooks;

			propHooks.value = hooks;

		}



		$(function() {

			// Look for forms

			$(document).delegate('form', 'submit.placeholder', function() {

				// Clear the placeholder values so they don't get submitted

				var $inputs = $('.placeholder', this).each(clearPlaceholder);

				setTimeout(function() {

					$inputs.each(setPlaceholder);

				}, 10);

			});

		});



		// Clear placeholder values upon page reload

		$(window).bind('beforeunload.placeholder', function() {

			$('.placeholder').each(function() {

				this.value = '';

			});

		});



	}



	function args(elem) {

		// Return an object of element attributes

		var newAttrs = {};

		var rinlinejQuery = /^jQuery\d+$/;

		$.each(elem.attributes, function(i, attr) {

			if (attr.specified && !rinlinejQuery.test(attr.name)) {

				newAttrs&#91;attr.name] = attr.value;

			}

		});

		return newAttrs;

	}



	function clearPlaceholder(event, value) {

		var input = this;

		var $input = $(input);

		if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {

			if ($input.data('placeholder-password')) {

				$input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));

				// If `clearPlaceholder` was called from `$.valHooks.input.set`

				if (event === true) {

					return $input&#91;0].value = value;

				}

				$input.focus();

			} else {

				input.value = '';

				$input.removeClass('placeholder');

				input == safeActiveElement() && input.select();

			}

		}

	}



	function setPlaceholder() {

		var $replacement;

		var input = this;

		var $input = $(input);

		var id = this.id;

		if (input.value == '') {

			if (input.type == 'password') {

				if (!$input.data('placeholder-textinput')) {

					try {

						$replacement = $input.clone().attr({ 'type': 'text' });

					} catch(e) {

						$replacement = $('&lt;input&gt;').attr($.extend(args(this), { 'type': 'text' }));

					}

					$replacement

						.removeAttr('name')

						.data({

							'placeholder-password': $input,

							'placeholder-id': id

						})

						.bind('focus.placeholder', clearPlaceholder);

					$input

						.data({

							'placeholder-textinput': $replacement,

							'placeholder-id': id

						})

						.before($replacement);

				}

				$input = $input.removeAttr('id').hide().prev().attr('id', id).show();

				// Note: `$input&#91;0] != input` now!

			}

			$input.addClass('placeholder');

			$input&#91;0].value = $input.attr('placeholder');

		} else {

			$input.removeClass('placeholder');

		}

	}



	function safeActiveElement() {

		// Avoid IE9 `document.activeElement` of death

		// https&#58;//github.com/mathiasbynens/jquery-placeholder/pull/99

		try {

			return document.activeElement;

		} catch (err) {}

	}



}(this, document, jQuery));

/*!

 * response.js 0.9.0+201404091831

 * https&#58;//github.com/ryanve/response.js

 * MIT License &#40;c&#41; 2014 Ryan Van Etten

 */



(function(root, name, make) {

  var $ = root&#91;'jQuery'] || root&#91;'Zepto'] || root&#91;'ender'] || root&#91;'elo'];

  if (typeof module != 'undefined' && module&#91;'exports']) module&#91;'exports'] = make($);

  else root&#91;name] = make($);

}(this, 'Response', function($) {



  if (typeof $ != 'function') {

    try {

      return void console.warn('response.js aborted due to missing dependency');

    } catch (e) {}

  }



  var Response

    , Elemset

    , root = this

    , name = 'Response'

    , old = root&#91;name]

    , initContentKey = 'init' + name

    , win = window

    , doc = document

    , docElem = doc.documentElement

    , ready = $.domReady || $

    , $win = $(win)

    , DMS = typeof DOMStringMap != 'undefined'

    , AP = Array.prototype

    , OP = Object.prototype

    , push = AP.push

    , concat = AP.concat

    , toString = OP.toString

    , owns = OP.hasOwnProperty

    , isArray = Array.isArray || function(item) {

        return '&#91;object Array]' === toString.call(item);

      }

    , defaultPoints = {

          width: &#91;0, 320, 481, 641, 961, 1025, 1281]

        , height: &#91;0, 481]

        , ratio: &#91;1, 1.5, 2] // device-pixel-ratio

      }

    , propTests = {}

    , isCustom = {}

    , sets = { all: &#91;] }

    , suid = 1

    , screenW = screen.width   

    , screenH = screen.height  

    , screenMax = screenW &gt; screenH ? screenW : screenH

    , screenMin = screenW + screenH - screenMax

    , deviceW = function() { return screenW; }

    , deviceH = function() { return screenH; }

    , regexFunkyPunc = /&#91;^a-z0-9_\-\.]/gi

    , regexTrimPunc = /^&#91;\W\s]+|&#91;\W\s]+$|/g

    , regexCamels = /(&#91;a-z])(&#91;A-Z])/g

    , regexDashB4 = /-(.)/g

    , regexDataPrefix = /^data-(.+)$/



    , procreate = Object.create || function(parent) {

        /** @constructor */

        function Type() {}

        Type.prototype = parent;

        return new Type;

      }

    , namespaceIt = function(eventName, customNamespace) {

        customNamespace = customNamespace || name;

        return eventName.replace(regexTrimPunc, '') + '.' + customNamespace.replace(regexTrimPunc, '');

      }

    , event = {

          allLoaded: namespaceIt('allLoaded') // fires on lazy elemsets when all elems in a set have been loaded once

          //, update: namespaceIt('update') // fires on each elem in a set each time that elem is updated

        , crossover: namespaceIt('crossover') // fires on window each time dynamic breakpoint bands is crossed

      }

    

      // normalized matchMedia

    , matchMedia = win.matchMedia || win.msMatchMedia

    , media = matchMedia ? bind(matchMedia, win) : function() {

        return {}; 

      }

    , mq = matchMedia ? function(q) {

        return !!matchMedia.call(win, q);

      } : function() {

        return false;

      }

  

      // http&#58;//ryanve.com/lab/dimensions

      // http&#58;//github.com/ryanve/verge/issues/13

    , viewportW = function() {

        var a = docElem.clientWidth, b = win.innerWidth;

        return a &lt; b ? b : a;

      }

    , viewportH = function() {

        var a = docElem.clientHeight, b = win.innerHeight;

        return a &lt; b ? b : a;

      }



    , band = bind(between, viewportW)

    , wave = bind(between, viewportH)

    , device = {

          'band': bind(between, deviceW)

        , 'wave': bind(between, deviceH)

      };



  function isNumber(item) {

    return item === +item;

  }

  

  /**

   * @param {Function} fn

   * @param {*=} scope

   * @return {Function}

   */

  function bind(fn, scope) {

    return function() {

      return fn.apply(scope, arguments);

    };

  }



  /**

   * @this {Function}

   * @param {number} min

   * @param {number=} max

   * @return {boolean}

   */

  function between(min, max) {

    var point = this.call();

    return point &gt;= (min || 0) && (!max || point &lt;= max);

  }



  /**

   * @param {{length:number}} stack

   * @param {Function} fn

   * @param {*=} scope

   * @return {Array}

   */

  function map(stack, fn, scope) {

    for (var r = &#91;], l = stack.length, i = 0; i &lt; l;) r&#91;i] = fn.call(scope, stack&#91;i], i++, stack);

    return r;

  }



  /**

   * @param {string|{length:number}} list

   * @return {Array} new and compact

   */

  function compact(list) {

    return !list ? &#91;] : sift(typeof list == 'string' ? list.split(' ') : list);

  }



  /**

   * @since 0.4.0, supports scope and sparse-item iteration since 0.6.2

   * @param {{length:number}} stack

   * @param {Function} fn

   * @param {*=} scope

   */

  function each(stack, fn, scope) {

    if (null == stack) return stack;

    for (var l = stack.length, i = 0; i &lt; l;) fn.call(scope || stack&#91;i], stack&#91;i], i++, stack);

    return stack;

  }



  /**

   * @since 0.4.0 skips null|undefined since 0.6.2, adds `0` since 0.7.11

   * @param {{length:number}} stack

   * @param {(string|number)=} prefix

   * @param {(string|number)=} suffix

   * @return {Array} new array of affixed strings or added numbers

   */

  function affix(stack, prefix, suffix) {

    if (null == prefix) prefix = '';

    if (null == suffix) suffix = '';

    for (var r = &#91;], l = stack.length, i = 0; i &lt; l; i++)

      null == stack&#91;i] || r.push(prefix + stack&#91;i] + suffix);

    return r;

  }



  /**

   * @param {{length:number}} stack to iterate

   * @param {(Function|string|*)=} fn callback or typestring

   * @param {(Object|boolean|*)=} scope or inversion boolean

   * @since 0.4.0, supports scope and typestrings since 0.6.2

   * @example Response.sift(&#91;5, 0, 'str'], isFinite) // &#91;5, 0]

   * @example Response.sift(&#91;5, 0, 'str']) // &#91;5, 'str']

   */

  function sift(stack, fn, scope) {

    var fail, l, v, r = &#91;], u = 0, i = 0, run = typeof fn == 'function', not = true === scope;

    for (l = stack && stack.length, scope = not ? null : scope; i &lt; l; i++) {

      v = stack&#91;i];

      fail = run ? !fn.call(scope, v, i, stack) : fn ? typeof v !== fn : !v;

      fail === not && (r&#91;u++] = v);

    }

    return r;

  }



  /**

   * @since 0.3.0

   * @param {Object|Array|Function|*} r receiver

   * @param {Object|Array|Function|*} s supplier Undefined values are ignored.

   * @return {Object|Array|Function|*} receiver

   */

  function merge(r, s) {

    if (null == r || null == s) return r;

    if (typeof s == 'object' && isNumber(s.length)) push.apply(r, sift(s, 'undefined', true));

    else for (var k in s) owns.call(s, k) && void 0 !== s&#91;k] && (r&#91;k] = s&#91;k]);

    return r;

  }



  /**

   * @description Call `fn` on each stack value or directly on a non-stack item

   * @since 0.3.0 scope support added in 0.6.2

   * @param {*} item stack or non-stack item

   * @param {Function} fn callback

   * @param {*=} scope defaults to current item

   */

  function route(item, fn, scope) {

    if (null == item) return item;

    if (typeof item == 'object' && !item.nodeType && isNumber(item.length)) each(item, fn, scope);

    else fn.call(scope || item, item);

    return item;

  }

  

  /**

   * Response.dpr(decimal) Tests if a minimum device pixel ratio is active. 

   * Or (version added in 0.3.0) returns the device-pixel-ratio

   * @param {number} decimal is the integer or float to test.

   * @return {boolean|number}

   * @example Response.dpr() // get the device-pixel-ratio (or 0 if undetectable)

   * @example Response.dpr(1.5) // true when device-pixel-ratio is 1.5+

   * @example Response.dpr(2) // true when device-pixel-ratio is 2+

   */

  function dpr(decimal) {

    // Consider: github.com/ryanve/res

    var dPR = win.devicePixelRatio;

    if (null == decimal) return dPR || (dpr(2) ? 2 : dpr(1.5) ? 1.5 : dpr(1) ? 1 : 0); // approx

    if (!isFinite(decimal)) return false;



    // Use window.devicePixelRatio if supported - supported by Webkit 

    // (Safari/Chrome/Android) and Presto 2.8+ (Opera) browsers.     

    if (dPR && dPR &gt; 0) return dPR &gt;= decimal; 



    // Fallback to .matchMedia/.msMatchMedia. Supported by Gecko (FF6+) and more:

    // @link developer.mozilla.org/en/DOM/window.matchMedia

    // -webkit-min- and -o-min- omitted (Webkit/Opera supported above)

    // The generic min-device-pixel-ratio is expected to be added to the W3 spec.

    // Return false if neither method is available.

    decimal = 'only all and (min--moz-device-pixel-ratio:' + decimal + ')';

    if (mq(decimal)) return true;

    return mq(decimal.replace('-moz-', ''));

  }



  /**

   * Response.camelize

   * @example Response.camelize('data-casa-blanca') // casaBlanca

   */

  function camelize(s) {

    // Remove data- prefix and convert remaining dashed string to camelCase:

    return s.replace(regexDataPrefix, '$1').replace(regexDashB4, function(m, m1) {

      return m1.toUpperCase();

    });

  }



  /**

   * Response.datatize

   * Converts pulpFiction (or data-pulpFiction) to data-pulp-fiction

   * @example Response.datatize('casaBlanca')  // data-casa-blanca

   */

  function datatize(s) {

    // Make sure there's no data- already in s for it to work right in IE8.

    return 'data-' + (s ? s.replace(regexDataPrefix, '$1').replace(regexCamels, '$1-$2').toLowerCase() : s);

  }



  /**

   * Convert stringified primitives back to JavaScript.

   * @param {string|*} s String to parse into a JavaScript value.

   * @return {*}

   */

  function parse(s) {

    var n; // undefined, or becomes number

    return typeof s != 'string' || !s ? s

      : 'false' === s ? false

      : 'true' === s ? true

      : 'null' === s ? null

      : 'undefined' === s || (n = (+s)) || 0 === n || 'NaN' === s ? n

      : s;

  }

  

  /**

   * @param {Element|{length:number}} e

   * @return {Element|*}

   */

  function first(e) {

    return !e || e.nodeType ? e : e&#91;0];

  }



  /**

   * internal-use function to iterate a node's attributes

   * @param {Element} el

   * @param {Function} fn

   * @param {(boolean|*)=} exp

   */

  function eachAttr(el, fn, exp) {

    var test, n, a, i, l;

    if (!el.attributes) return;

    test = typeof exp == 'boolean' ? /^data-/ : test;

    for (i = 0, l = el.attributes.length; i &lt; l;) {

      if (a = el.attributes&#91;i++]) {

        n = '' + a.name;

        test && test.test(n) !== exp || null == a.value || fn.call(el, a.value, n, a);

      }

    }

  }



  /**

   * Get object containing an element's data attrs.

   * @param {Element} el

   * @return {DOMStringMap|Object|undefined}

   */

  function getDataset(el) {

    var ob;

    if (!el || 1 !== el.nodeType) return;  // undefined

    if (ob = DMS && el.dataset) return ob; // native

    ob = {}; // Fallback plain object cannot mutate the dataset via reference.

    eachAttr(el, function(v, k) {

      ob&#91;camelize(k)] = '' + v;

    }, true);

    return ob;

  }

  

  /**

   * @param {Element} el

   * @param {Object} ob

   * @param {Function} fn

   */

  function setViaObject(el, ob, fn) {

    for (var n in ob) owns.call(ob, n) && fn(el, n, ob&#91;n]);

  }

  

  /**

   * @param {Object|Array|Function} el

   * @param {(string|Object|*)=} k

   * @param {*=} v

   */  

  function dataset(el, k, v) {

    el = first(el);

    if (!el || !el.setAttribute) return;

    if (void 0 === k && v === k) return getDataset(el);

    var exact = isArray(k) && datatize(k&#91;0]);

    if (typeof k == 'object' && !exact) {

      k && setViaObject(el, k, dataset);

    } else {

      k = exact || datatize(k);

      if (!k) return;

      if (void 0 === v) {

        k = el.getAttribute(k); // repurpose

        return null == k ? v : exact ? parse(k) : '' + k; // normalize

      }

      el.setAttribute(k, v = '' + v);

      return v; // current value

    }

  }



  /**

   * Response.deletes(elem, keys) Delete HTML5 data attributes (remove them from them DOM)

   * @since 0.3.0

   * @param {Element|{length:number}} elem is a DOM element or stack of them

   * @param {string|Array} ssv data attribute key(s) in camelCase or lowercase to delete

   */

  function deletes(elem, ssv) {

    ssv = compact(ssv);

    route(elem, function(el) {

      each(ssv, function(k) {

        el.removeAttribute(datatize(k));

      });

    });

  }



  function sel(keys) {

    // Convert an array of data keys into a selector string

    // Converts &#91;"a","b","c"] into "&#91;data-a],&#91;data-b],&#91;data-c]"

    // Double-slash escapes periods so that attrs like data-density-1.5 will work

    // @link api.jquery.com/category/selectors/

    // @link github.com/jquery/sizzle/issues/76

    for (var k, r = &#91;], i = 0, l = keys.length; i &lt; l;)

      (k = keys&#91;i++]) && r.push('&#91;' + datatize(k.replace(regexTrimPunc, '').replace('.', '\\.')) + ']');

    return r.join();

  }



  /**

   * Response.target() Get the corresponding data attributes for an array of data keys.

   * @since 0.1.9

   * @param {Array} keys is the array of data keys whose attributes you want to select.

   * @return {Object} jQuery stack

   * @example Response.target(&#91;'a', 'b', 'c']) //  $('&#91;data-a],&#91;data-b],&#91;data-c]')

   * @example Response.target('a b c']) //  $('&#91;data-a],&#91;data-b],&#91;data-c]')

   */

  function target(keys) {

    return $(sel(compact(keys)));  

  }



  /** 

   * @since 0.3.0

   * @return {number} like jQuery(window).scrollLeft()

   */

  function scrollX() {

    return window.pageXOffset || docElem.scrollLeft; 

  }



  /** 

   * @since 0.3.0

   * @return {number} like $(window).scrollTop()

   */

  function scrollY() { 

    return window.pageYOffset || docElem.scrollTop; 

  }



  /**

   * area methods inX/inY/inViewport

   * @since 0.3.0

   */

  function rectangle(el, verge) {

    // Local handler for area methods:

    // adapted from github.com/ryanve/dime

    // The native object is read-only so we 

    // have use a copy in order to modify it.

    var r = el.getBoundingClientRect ? el.getBoundingClientRect() : {};

    verge = typeof verge == 'number' ? verge || 0 : 0;

    return {

        top: (r.top || 0) - verge

      , left: (r.left || 0) - verge

      , bottom: (r.bottom || 0) + verge

      , right: (r.right || 0) + verge

    };

  }

     

  // The verge is the amount of pixels to act as a cushion around the viewport. It can be any 

  // integer. If verge is zero, then the inX/inY/inViewport methods are exact. If verge is set to 100, 

  // then those methods return true when for elements that are are in the viewport *or* near it, 

  // with *near* being defined as within 100 pixels outside the viewport edge. Elements immediately 

  // outside the viewport are 'on the verge' of being scrolled to.



  function inX(elem, verge) {

    var r = rectangle(first(elem), verge);

    return !!r && r.right &gt;= 0 && r.left &lt;= viewportW();

  }



  function inY(elem, verge) {

    var r = rectangle(first(elem), verge);

    return !!r && r.bottom &gt;= 0 && r.top &lt;= viewportH();

  }



  function inViewport(elem, verge) {

    // equiv to: inX(elem, verge) && inY(elem, verge)

    // But just manually do both to avoid calling rectangle() and first() twice.

    // It actually gzips smaller this way too:

    var r = rectangle(first(elem), verge);

    return !!r && r.bottom &gt;= 0 && r.top &lt;= viewportH() && r.right &gt;= 0 && r.left &lt;= viewportW();

  }

  

  /**

   * @description Detect whether elem should act in src or markup mode.

   * @param {Element} elem

   * @return {number}

   */

  function detectMode(elem) {

    // Normalize to lowercase to ensure compatibility across HTML/XHTML/XML.

    // These are the elems that can use src attr per the W3 spec:

    //dev.w3.org/html5/spec-author-view/index.html#attributes-1

    //stackoverflow.com/q/8715689/770127

    //stackoverflow.com/a/4878963/770127

    var srcElems = { img:1, input:1, source:3, embed:3, track:3, iframe:5, audio:5, video:5, script:5 }

      , modeID = srcElems&#91; elem.nodeName.toLowerCase() ] || -1;



    // -5 =&gt; markup mode for video/audio/iframe w/o src attr.

    // -1 =&gt; markup mode for any elem not in the array above.

    //  1 =&gt; src mode  for img/input (empty content model). Images.

    //  3 =&gt; src mode  for source/embed/track (empty content model). Media *or* time data.

    //  5 =&gt; src mode  for audio/video/iframe/script *with* src attr.

    //  If we at some point we need to differentiate &lt;track&gt; we'll use 4, but for now

    //  it's grouped with the other non-image empty content elems that use src.

    //  hasAttribute is not supported in IE7 so check elem.getAttribute('src')

    return 4 &gt; modeID ? modeID : null != elem.getAttribute('src') ? 5 : -5;

  }



  /**

   * Response.store()

   * Store a data value on each elem targeted by a jQuery selector. We use this for storing an 

   * elem's orig (no-js) state. This gives us the ability to return the elem to its orig state.

   * The data it stores is either the src attr or the innerHTML based on result of detectMode().

   * @since 0.1.9

   * @param {Object} $elems DOM element | jQuery object | nodeList | array of elements

   * @param {string} key is the key to use to store the orig value w/ @link api.jquery.com/data/

   * @param {string=} source  (@since 0.6.2) an optional attribute name to read data from

   */

  function store($elems, key, source) {

    var valToStore;

    if (!$elems || null == key) throw new TypeError('@store');

    source = typeof source == 'string' && source;

    route($elems, function(el) {

      if (source) valToStore = el.getAttribute(source);

      else if (0 &lt; detectMode(el)) valToStore = el.getAttribute('src');

      else valToStore = el.innerHTML;

      null == valToStore ? deletes(el, key) : dataset(el, key, valToStore); 

    });

    return Response;

  }



  /**

   * Response.access() Access data-* values for element from an array of data-* keys. 

   * @since 0.1.9 added support for space-separated strings in 0.3.1

   * @param {Object} elem is a native or jQuery element whose values to access.

   * @param {Array|string} keys is an array or SSV string of data keys

   * @return {Array} dataset values corresponding to each key. Since 0.4.0 if

   *   the params are wrong then the return is an empty array.

   */

  function access(elem, keys) {

    var ret = &#91;];

    elem && keys && each(compact(keys), function(k) {

      ret.push(dataset(elem, k));

    }, elem);

    return ret;

  }



  function addTest(prop, fn) {

    if (typeof prop == 'string' && typeof fn == 'function') {

      propTests&#91;prop] = fn;

      isCustom&#91;prop] = 1;

    }

    return Response;

  }

    

  // Prototype object for element sets used in Response.create

  // Each element in the set inherits this as well, so some of the 

  // methods apply to the set, while others apply to single elements.

  Elemset = (function() {

    var crossover = event.crossover

      //, update = event.update

      , min = Math.min;



    // Techically data attributes names can contain uppercase in HTML, but, The DOM lowercases 

    // attributes, so they must be lowercase regardless when we target them in jQuery. Force them 

    // lowercase here to prevent issues. Removing all punc marks except for dashes, underscores,

    // and periods so that we don't have to worry about escaping anything crazy.

    // Rules @link dev.w3.org/html5/spec/Overview.html#custom-data-attribute

    // jQuery selectors @link api.jquery.com/category/selectors/ 

    function sanitize(key) {

      // Allow lowercase alphanumerics, dashes, underscores, and periods:

      return typeof key == 'string' ? key.toLowerCase().replace(regexFunkyPunc, '') : '';

    }

    

    function ascending(a, b) {

      return a - b;

    }



    return {

        $e: 0 // jQuery instance

      , mode: 0 // integer  defined per element

      , breakpoints: null // array, validated @ configure()

      , prefix: null // string, validated @ configure()

      , prop: 'width' // string, validated @ configure()

      , keys: &#91;] // array, defined @ configure()

      , dynamic: null // boolean, defined @ configure()

      , custom: 0 // boolean, see addTest()

      , values: &#91;] // array, available values

      , fn: 0 // callback, the test fn, defined @ configure()

      , verge: null // integer  uses default based on device size

      , newValue: 0

      , currValue: 1

      , aka: null

      , lazy: null

      , i: 0  // integer, the index of the current highest active breakpoint min

      , uid: null



      , reset: function() {

          var subjects = this.breakpoints, i = subjects.length, tempIndex = 0;

          while (!tempIndex && i--) this.fn(subjects&#91;i]) && (tempIndex = i);

          if (tempIndex !== this.i) {

            // Crossover occurred. Fire the crossover events:

            $win.trigger(crossover).trigger(this.prop + crossover);

            this.i = tempIndex || 0;

          }

          return this;

        }



      , configure: function(options) {

          merge(this, options);

        

          var i, points, prefix, aliases, aliasKeys, isNumeric = true, prop = this.prop;

          this.uid = suid++;

          if (null == this.verge) this.verge = min(screenMax, 500);

          if (!(this.fn = propTests&#91;prop])) throw new TypeError('@create');



          // If we get to here then we know the prop is one one our supported props:

          // 'width', 'height', 'device-width', 'device-height', 'device-pixel-ratio'

          if (null == this.dynamic) this.dynamic = 'device' !== prop.slice(0, 6);

          

          this.custom = isCustom&#91;prop];

          prefix = this.prefix ? sift(map(compact(this.prefix), sanitize)) : &#91;'min-' + prop + '-'];

          aliases = 1 &lt; prefix.length ? prefix.slice(1) : 0;

          this.prefix = prefix&#91;0];

          points = this.breakpoints;

          

          // Sort and validate (#valid8) custom breakpoints if supplied.

          // Must be done before keys are created so that the keys match:

          if (isArray(points)) {

            each(points, function(v) {

              if (!v && v !== 0) throw 'invalid breakpoint';

              isNumeric = isNumeric && isFinite(v);

            });

            

            isNumeric && points.sort(ascending);

            if (!points.length) throw new TypeError('.breakpoints');

          } else {

            // The default breakpoints are presorted.

            points = defaultPoints&#91;prop] || defaultPoints&#91;prop.split('-').pop()];

            if (!points) throw new TypeError('.prop');

          }



          this.breakpoints = points;

          this.keys = affix(this.breakpoints, this.prefix); // Create array of data keys.

          this.aka = null; // Reset just in case a value was merged in.



          if (aliases) {

            aliasKeys = &#91;];

            i = aliases.length;

            while (i--) aliasKeys.push(affix(this.breakpoints, aliases&#91;i]));

            this.aka = aliasKeys; // this.aka is an array of arrays (one for each alias)

            this.keys = concat.apply(this.keys, aliasKeys); // flatten aliases into this.keys

          }



          sets.all = sets.all.concat(sets&#91;this.uid] = this.keys); // combined keys ===&gt; sets.all

          return this;

        }



      , target: function() {

          this.$e = $(sel(sets&#91;this.uid])); // Cache selection. DOM must be ready.

          store(this.$e, initContentKey);  // Store original (no-js) value to data key.

          this.keys.push(initContentKey);  // #keys now equals #breakpoints+1

          return this;

        }



      // The rest of the methods are designed for use with single elements.

      // They are for use in a cloned instances within a loop.

      , decideValue: function() {

          // Return the first value from the values array that passes the boolean

          // test callback. If none pass the test, then return the fallback value.

          // this.breakpoints.length === this.values.length + 1  

          // The extra member in the values array is the initContentKey value.

          var val = null, subjects = this.breakpoints, sL = subjects.length, i = sL;

          while (val == null && i--) this.fn(subjects&#91;i]) && (val = this.values&#91;i]);

          this.newValue = typeof val == 'string' ? val : this.values&#91;sL];

          return this; // chainable

        }



      , prepareData: function(elem) {

          this.$e = $(elem);

          this.mode = detectMode(elem);

          this.values = access(this.$e, this.keys);

          if (this.aka) {

            // If there are alias keys then there may be alias values. Merge the values from 

            // all the aliases into the values array. The merge method only merges in truthy values

            // and prevents falsey values from overwriting truthy ones. (See Response.merge)

            // Each of the this.aka arrays has the same length as the this.values

            // array, so no new indexes will be added, just filled if there's truthy values.

            var i = this.aka.length;

            while (i--) this.values = merge(this.values, access(this.$e, this.aka&#91;i]));

          }

          return this.decideValue();

        }



      , updateDOM: function() {

          // Apply the method that performs the actual swap. When updateDOM called this.$e and this.e refer

          // to single elements. Only update the DOM when the new value is different than the current value.

          if (this.currValue === this.newValue) { return this; }

          this.currValue = this.newValue;

          if (0 &lt; this.mode) { 

            this.$e&#91;0].setAttribute('src', this.newValue); 

          } else if (null == this.newValue) { 

            this.$e.empty && this.$e.empty(); 

          } else {

            if (this.$e.html) {

              this.$e.html(this.newValue); 

            } else {

              this.$e.empty && this.$e.empty();

              this.$e&#91;0].innerHTML = this.newValue;

            }

          }

          // this.$e.trigger(update); // may add this event in future

          return this;

        }

    };

  }());

  

  // The keys are the prop and the values are the method that tests that prop.

  // The props with dashes in them are added via array notation below.

  // Props marked as dynamic change when the viewport is resized:

  propTests&#91;'width'] = band;   // dynamic

  propTests&#91;'height'] = wave;  // dynamic

  propTests&#91;'device-width'] = device.band;

  propTests&#91;'device-height'] = device.wave;

  propTests&#91;'device-pixel-ratio'] = dpr;



  function resize(fn) {

    $win.on('resize', fn);

    return Response; // chain

  }



  function crossover(prop, fn) {

    var temp, eventToFire, eventCrossover = event.crossover;

    if (typeof prop == 'function') {// support args in reverse

      temp = fn;

      fn = prop;

      prop = temp;

    }

    eventToFire = prop ? ('' + prop + eventCrossover) : eventCrossover;

    $win.on(eventToFire, fn);

    return Response; // chain

  }



  /**

   * Response.action A facade for calling functions on both the ready and resize events.

   * @link http&#58;//responsejs.com/#action

   * @since 0.1.3

   * @param {Function|Array} action is the callback name or array of callback names to call.

   * @example Response.action(myFunc1) // call myFunc1() on ready/resize

   * @example Response.action(&#91;myFunc1, myFunc2]) // call myFunc1(), myFunc2() ...

   */

  function action(fnOrArr) {

    route(fnOrArr, function(fn) {

      ready(fn);

      resize(fn);

    });

    return Response;

  }

  

  /**

   * Create their own Response attribute sets, with custom breakpoints and data-* names.

   * @since 0.1.9

   * @param {Object|Array} args is an options object or an array of options objects.

   * @link http&#58;//responsejs.com/#create

   * @example Response.create(object) // single

   * @example Response.create(&#91;object1, object2]) // bulk

   */

  function create(args) {

    route(args, function(options) {

      if (typeof options != 'object') throw new TypeError('@create');

      var elemset = procreate(Elemset).configure(options)

        , lowestNonZeroBP

        , verge = elemset.verge

        , breakpoints = elemset.breakpoints

        , scrollName = namespaceIt('scroll')

        , resizeName = namespaceIt('resize');



      if (!breakpoints.length) return;



      // Identify the lowest nonzero breakpoint. (They're already sorted low to high by now.)

      lowestNonZeroBP = breakpoints&#91;0] || breakpoints&#91;1] || false;

    

      ready(function() {

        var allLoaded = event.allLoaded, lazy = !!elemset.lazy;

        

        function resizeHandler() {

          elemset.reset();

          each(elemset.$e, function(el, i) {

            elemset&#91;i].decideValue().updateDOM();

          }).trigger(allLoaded);

        }

        

        function scrollHandler() {

          each(elemset.$e, function(el, i) {

            inViewport(elemset&#91;i].$e, verge) && elemset&#91;i].updateDOM();

          });

        }



        // Target elements containing this set's Response data attributes and chain into the 

        // loop that occurs on ready. The selector is cached to elemset.$e for later use.

        each(elemset.target().$e, function(el, i) {

          elemset&#91;i] = procreate(elemset).prepareData(el);// Inherit from elemset

          if (!lazy || inViewport(elemset&#91;i].$e, verge)) {

            // If not lazy update all the elems in the set. If

            // lazy, only update elems in the current viewport.

            elemset&#91;i].updateDOM(); 

          }

        });



        // device-* props are static and only need to be tested once. The others are

        // dynamic, meaning they need to be tested on resize. Also if a device so small

        // that it doesn't support the lowestNonZeroBP then we don't need to listen for 

        // resize events b/c we know the device can't resize beyond that breakpoint.



        if (elemset.dynamic && (elemset.custom || lowestNonZeroBP &lt; screenMax)) {

           resize(resizeHandler, resizeName);

        }



        // We don't have to re-decide the content on scrolls because neither the viewport or device

        // properties change from a scroll. This setup minimizes the operations binded to the scroll 

        // event. Once everything in the set has been swapped once, the scroll handler is deactivated

        // through the use of a custom event.

        if (!lazy) return;

        

        $win.on(scrollName, scrollHandler);

        elemset.$e.one(allLoaded, function() {

          $win.off(scrollName, scrollHandler);

        });

      });

    });

    return Response;

  }

  

  function noConflict(callback) {

    if (root&#91;name] === Response) root&#91;name] = old;

    if (typeof callback == 'function') callback.call(root, Response);

    return Response;

  }

  

  // Many methods are @deprecated (see issue #51)

  Response = {

      deviceMin: function() { return screenMin; }

    , deviceMax: function() { return screenMax; }

    //, sets: function(prop) {// must be uid

    //  return $(sel(sets&#91;prop] || sets.all));

    //}

    , noConflict: noConflict

    , create: create

    , addTest: addTest

    , datatize: datatize

    , camelize: camelize

    , render: parse

    , store: store

    , access: access

    , target: target

    , object: procreate

    , crossover: crossover

    , action: action

    , resize: resize

    , ready: ready

    , affix: affix

    , sift: sift

    , dpr: dpr

    , deletes: deletes

    , scrollX: scrollX

    , scrollY: scrollY

    , deviceW: deviceW

    , deviceH: deviceH

    , device: device

    , inX: inX

    , inY: inY

    , route: route

    , merge: merge

    , media: media

    , mq: mq

    , wave: wave

    , band: band

    , map: map

    , each: each

    , inViewport: inViewport

    , dataset: dataset

    , viewportH: viewportH

    , viewportW: viewportW

  };



  // Initialize

  ready(function() {

    var settings = dataset(doc.body, 'responsejs'), parse = win.JSON && JSON.parse || $.parseJSON;

    settings = settings && parse ? parse(settings) : settings;

    settings && settings.create && create(settings.create);

    // Remove .no-responsejs and add .responsejs

    docElem.className = docElem.className.replace(/(^|\s)(no-)?responsejs(\s|$)/, '$1$3') + ' responsejs ';

  });



  return Response;

}));

/*!

 * Move focus in Internet Explorer and Chrome

 *

 * GPL V2+ License &#40;C&#41; 2012-2014 Automattic, Inc.

 */

( function() {

	var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) &gt; -1,

	    is_opera  = navigator.userAgent.toLowerCase().indexOf( 'opera' )  &gt; -1,

	    is_ie     = navigator.userAgent.toLowerCase().indexOf( 'msie' )   &gt; -1;



	if ( ( is_webkit || is_opera || is_ie ) && 'undefined' !== typeof( document.getElementById ) ) {

		var eventMethod = ( window.addEventListener ) ? 'addEventListener' : 'attachEvent';

		window&#91; eventMethod ]( 'hashchange', function() {

			var element = document.getElementById( location.hash.substring( 1 ) );



			if ( element ) {

				if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) )

					element.tabIndex = -1;



				element.focus();

			}

		}, false );

	}

})();



/**

 * jQuery Scroll Top Plugin 1.0.0

 *

 * GPL V2 License &#40;c&#41; CyberChimps

 */

jQuery(document).ready(function ($) {

	$('a&#91;href=#scroll-top]').click(function () {

		$('html, body').animate({

			scrollTop: 0

		}, 'slow');

		return false;

	});

});
</pre>
<p>and&nbsp;</p>
<pre  class="prettyprint lang-js linenums:1">
!function($){"use strict";$.fn.fitVids=function(options){var settings={customSelector:null},div=document.createElement("div"),ref=document.getElementsByTagName("base")&#91;0]||document.getElementsByTagName("script")&#91;0];return div.className="fit-vids-style",div.innerHTML="&shy;&lt;style&gt;               .fluid-width-video-wrapper {                 width: 100%;                              position: relative;                       padding: 0;                            }                                                                                   .fluid-width-video-wrapper iframe,        .fluid-width-video-wrapper object,        .fluid-width-video-wrapper embed {           position: absolute;                       top: 0;                                   left: 0;                                  width: 100%;                              height: 100%;                          }                                       &lt;/style&gt;",ref.parentNode.insertBefore(div,ref),options&&$.extend(settings,options),this.each(function(){var selectors=&#91;"iframe&#91;src*='player.vimeo.com']","iframe&#91;src*='www.youtube.com']","iframe&#91;src*='www.youtube-nocookie.com']","iframe&#91;src*='fast.wistia.com']","embed"];settings.customSelector&&selectors.push(settings.customSelector);var $allVideos=$(this).find(selectors.join(","));$allVideos.each(function(){var $this=$(this);if(!("embed"===this.tagName.toLowerCase()&&$this.parent("object").length||$this.parent(".fluid-width-video-wrapper").length)){var height="object"===this.tagName.toLowerCase()||$this.attr("height")&&!isNaN(parseInt($this.attr("height"),10))?parseInt($this.attr("height"),10):$this.height(),width=isNaN(parseInt($this.attr("width"),10))?$this.width():parseInt($this.attr("width"),10),aspectRatio=height/width;if(!$this.attr("id")){var videoID="fitvid"+Math.floor(999999*Math.random());$this.attr("id",videoID)}$this.wrap('&lt;div class="fluid-width-video-wrapper"&gt;&lt;/div&gt;').parent(".fluid-width-video-wrapper").css("padding-top",100*aspectRatio+"%"),$this.removeAttr("height").removeAttr("width")}})})}}(jQuery),jQuery(function($){$("#wrapper").fitVids({ignore:".ls-container"})}),function($){var obj={onClick:function(){$("#main-navigation").toggleClass("menu-open")}};$("nav#main-navigation").on("click",obj.onClick)}(jQuery),function(window,document,$){function args(elem){var newAttrs={},rinlinejQuery=/^jQuery\d+$/;return $.each(elem.attributes,function(i,attr){attr.specified&&!rinlinejQuery.test(attr.name)&&(newAttrs&#91;attr.name]=attr.value)}),newAttrs}function clearPlaceholder(event,value){var input=this,$input=$(input);if(input.value==$input.attr("placeholder")&&$input.hasClass("placeholder"))if($input.data("placeholder-password")){if($input=$input.hide().next().show().attr("id",$input.removeAttr("id").data("placeholder-id")),event===!0)return $input&#91;0].value=value;$input.focus()}else input.value="",$input.removeClass("placeholder"),input==safeActiveElement()&&input.select()}function setPlaceholder(){var $replacement,input=this,$input=$(input),id=this.id;if(""==input.value){if("password"==input.type){if(!$input.data("placeholder-textinput")){try{$replacement=$input.clone().attr({type:"text"})}catch(e){$replacement=$("&lt;input&gt;").attr($.extend(args(this),{type:"text"}))}$replacement.removeAttr("name").data({"placeholder-password":$input,"placeholder-id":id}).bind("focus.placeholder",clearPlaceholder),$input.data({"placeholder-textinput":$replacement,"placeholder-id":id}).before($replacement)}$input=$input.removeAttr("id").hide().prev().attr("id",id).show()}$input.addClass("placeholder"),$input&#91;0].value=$input.attr("placeholder")}else $input.removeClass("placeholder")}function safeActiveElement(){try{return document.activeElement}catch(err){}}var hooks,placeholder,isInputSupported="placeholder"in document.createElement("input"),isTextareaSupported="placeholder"in document.createElement("textarea"),prototype=$.fn,valHooks=$.valHooks,propHooks=$.propHooks;isInputSupported&&isTextareaSupported?(placeholder=prototype.placeholder=function(){return this},placeholder.input=placeholder.textarea=!0):(placeholder=prototype.placeholder=function(){var $this=this;return $this.filter((isInputSupported?"textarea":":input")+"&#91;placeholder]").not(".placeholder").bind({"focus.placeholder":clearPlaceholder,"blur.placeholder":setPlaceholder}).data("placeholder-enabled",!0).trigger("blur.placeholder"),$this},placeholder.input=isInputSupported,placeholder.textarea=isTextareaSupported,hooks={get:function(element){var $element=$(element),$passwordInput=$element.data("placeholder-password");return $passwordInput?$passwordInput&#91;0].value:$element.data("placeholder-enabled")&&$element.hasClass("placeholder")?"":element.value},set:function(element,value){var $element=$(element),$passwordInput=$element.data("placeholder-password");return $passwordInput?$passwordInput&#91;0].value=value:$element.data("placeholder-enabled")?(""==value?(element.value=value,element!=safeActiveElement()&&setPlaceholder.call(element)):$element.hasClass("placeholder")?clearPlaceholder.call(element,!0,value)||(element.value=value):element.value=value,$element):element.value=value}},isInputSupported||(valHooks.input=hooks,propHooks.value=hooks),isTextareaSupported||(valHooks.textarea=hooks,propHooks.value=hooks),$(function(){$(document).delegate("form","submit.placeholder",function(){var $inputs=$(".placeholder",this).each(clearPlaceholder);setTimeout(function(){$inputs.each(setPlaceholder)},10)})}),$(window).bind("beforeunload.placeholder",function(){$(".placeholder").each(function(){this.value=""})}))}(this,document,jQuery),function(root,name,make){var $=root.jQuery||root.Zepto||root.ender||root.elo;"undefined"!=typeof module&&module.exports?module.exports=make($):root&#91;name]=make($)}(this,"Response",function($){function isNumber(item){return item===+item}function bind(fn,scope){return function(){return fn.apply(scope,arguments)}}function between(min,max){var point=this.call();return point&gt;=(min||0)&&(!max||max&gt;=point)}function map(stack,fn,scope){for(var r=&#91;],l=stack.length,i=0;l&gt;i;)r&#91;i]=fn.call(scope,stack&#91;i],i++,stack);return r}function compact(list){return list?sift("string"==typeof list?list.split(" "):list):&#91;]}function each(stack,fn,scope){if(null==stack)return stack;for(var l=stack.length,i=0;l&gt;i;)fn.call(scope||stack&#91;i],stack&#91;i],i++,stack);return stack}function affix(stack,prefix,suffix){null==prefix&&(prefix=""),null==suffix&&(suffix="");for(var r=&#91;],l=stack.length,i=0;l&gt;i;i++)null==stack&#91;i]||r.push(prefix+stack&#91;i]+suffix);return r}function sift(stack,fn,scope){var fail,l,v,r=&#91;],u=0,i=0,run="function"==typeof fn,not=!0===scope;for(l=stack&&stack.length,scope=not?null:scope;l&gt;i;i++)v=stack&#91;i],fail=run?!fn.call(scope,v,i,stack):fn?typeof v!==fn:!v,fail===not&&(r&#91;u++]=v);return r}function merge(r,s){if(null==r||null==s)return r;if("object"==typeof s&&isNumber(s.length))push.apply(r,sift(s,"undefined",!0));else for(var k in s)owns.call(s,k)&&void 0!==s&#91;k]&&(r&#91;k]=s&#91;k]);return r}function route(item,fn,scope){return null==item?item:("object"==typeof item&&!item.nodeType&&isNumber(item.length)?each(item,fn,scope):fn.call(scope||item,item),item)}function dpr(decimal){var dPR=win.devicePixelRatio;return null==decimal?dPR||(dpr(2)?2:dpr(1.5)?1.5:dpr(1)?1:0):isFinite(decimal)?dPR&&dPR&gt;0?dPR&gt;=decimal:(decimal="only all and (min--moz-device-pixel-ratio:"+decimal+")",mq(decimal)?!0:mq(decimal.replace("-moz-",""))):!1}function camelize(s){return s.replace(regexDataPrefix,"$1").replace(regexDashB4,function(m,m1){return m1.toUpperCase()})}function datatize(s){return"data-"+(s?s.replace(regexDataPrefix,"$1").replace(regexCamels,"$1-$2").toLowerCase():s)}function parse(s){var n;return"string"==typeof s&&s?"false"===s?!1:"true"===s?!0:"null"===s?null:"undefined"===s||(n=+s)||0===n||"NaN"===s?n:s:s}function first(e){return!e||e.nodeType?e:e&#91;0]}function eachAttr(el,fn,exp){var test,n,a,i,l;if(el.attributes)for(test="boolean"==typeof exp?/^data-/:test,i=0,l=el.attributes.length;l&gt;i;)(a=el.attributes&#91;i++])&&(n=""+a.name,test&&test.test(n)!==exp||null==a.value||fn.call(el,a.value,n,a))}function getDataset(el){var ob;if(el&&1===el.nodeType)return(ob=DMS&&el.dataset)?ob:(ob={},eachAttr(el,function(v,k){ob&#91;camelize(k)]=""+v},!0),ob)}function setViaObject(el,ob,fn){for(var n in ob)owns.call(ob,n)&&fn(el,n,ob&#91;n])}function dataset(el,k,v){if(el=first(el),el&&el.setAttribute){if(void 0===k&&v===k)return getDataset(el);var exact=isArray(k)&&datatize(k&#91;0]);if("object"!=typeof k||exact){if(k=exact||datatize(k),!k)return;return void 0===v?(k=el.getAttribute(k),null==k?v:exact?parse(k):""+k):(el.setAttribute(k,v=""+v),v)}k&&setViaObject(el,k,dataset)}}function deletes(elem,ssv){ssv=compact(ssv),route(elem,function(el){each(ssv,function(k){el.removeAttribute(datatize(k))})})}function sel(keys){for(var k,r=&#91;],i=0,l=keys.length;l&gt;i;)(k=keys&#91;i++])&&r.push("&#91;"+datatize(k.replace(regexTrimPunc,"").replace(".","\\."))+"]");return r.join()}function target(keys){return $(sel(compact(keys)))}function scrollX(){return window.pageXOffset||docElem.scrollLeft}function scrollY(){return window.pageYOffset||docElem.scrollTop}function rectangle(el,verge){var r=el.getBoundingClientRect?el.getBoundingClientRect():{};return verge="number"==typeof verge?verge||0:0,{top:(r.top||0)-verge,left:(r.left||0)-verge,bottom:(r.bottom||0)+verge,right:(r.right||0)+verge}}function inX(elem,verge){var r=rectangle(first(elem),verge);return!!r&&r.right&gt;=0&&r.left&lt;=viewportW()}function inY(elem,verge){var r=rectangle(first(elem),verge);return!!r&&r.bottom&gt;=0&&r.top&lt;=viewportH()}function inViewport(elem,verge){var r=rectangle(first(elem),verge);return!!r&&r.bottom&gt;=0&&r.top&lt;=viewportH()&&r.right&gt;=0&&r.left&lt;=viewportW()}function detectMode(elem){var srcElems={img:1,input:1,source:3,embed:3,track:3,iframe:5,audio:5,video:5,script:5},modeID=srcElems&#91;elem.nodeName.toLowerCase()]||-1;return 4&gt;modeID?modeID:null!=elem.getAttribute("src")?5:-5}function store($elems,key,source){var valToStore;if(!$elems||null==key)throw new TypeError("@store");return source="string"==typeof source&&source,route($elems,function(el){valToStore=source?el.getAttribute(source):0&lt;detectMode(el)?el.getAttribute("src"):el.innerHTML,null==valToStore?deletes(el,key):dataset(el,key,valToStore)}),Response}function access(elem,keys){var ret=&#91;];return elem&&keys&&each(compact(keys),function(k){ret.push(dataset(elem,k))},elem),ret}function addTest(prop,fn){return"string"==typeof prop&&"function"==typeof fn&&(propTests&#91;prop]=fn,isCustom&#91;prop]=1),Response}function resize(fn){return $win.on("resize",fn),Response}function crossover(prop,fn){var temp,eventToFire,eventCrossover=event.crossover;return"function"==typeof prop&&(temp=fn,fn=prop,prop=temp),eventToFire=prop?""+prop+eventCrossover:eventCrossover,$win.on(eventToFire,fn),Response}function action(fnOrArr){return route(fnOrArr,function(fn){ready(fn),resize(fn)}),Response}function create(args){return route(args,function(options){if("object"!=typeof options)throw new TypeError("@create");var lowestNonZeroBP,elemset=procreate(Elemset).configure(options),verge=elemset.verge,breakpoints=elemset.breakpoints,scrollName=namespaceIt("scroll"),resizeName=namespaceIt("resize");breakpoints.length&&(lowestNonZeroBP=breakpoints&#91;0]||breakpoints&#91;1]||!1,ready(function(){function resizeHandler(){elemset.reset(),each(elemset.$e,function(el,i){elemset&#91;i].decideValue().updateDOM()}).trigger(allLoaded)}function scrollHandler(){each(elemset.$e,function(el,i){inViewport(elemset&#91;i].$e,verge)&&elemset&#91;i].updateDOM()})}var allLoaded=event.allLoaded,lazy=!!elemset.lazy;each(elemset.target().$e,function(el,i){elemset&#91;i]=procreate(elemset).prepareData(el),(!lazy||inViewport(elemset&#91;i].$e,verge))&&elemset&#91;i].updateDOM()}),elemset.dynamic&&(elemset.custom||screenMax&gt;lowestNonZeroBP)&&resize(resizeHandler,resizeName),lazy&&($win.on(scrollName,scrollHandler),elemset.$e.one(allLoaded,function(){$win.off(scrollName,scrollHandler)}))}))}),Response}function noConflict(callback){return root&#91;name]===Response&&(root&#91;name]=old),"function"==typeof callback&&callback.call(root,Response),Response}if("function"!=typeof $)try{return void console.warn("response.js aborted due to missing dependency")}catch(e){}var Response,Elemset,root=this,name="Response",old=root&#91;name],initContentKey="init"+name,win=window,doc=document,docElem=doc.documentElement,ready=$.domReady||$,$win=$(win),DMS="undefined"!=typeof DOMStringMap,AP=Array.prototype,OP=Object.prototype,push=AP.push,concat=AP.concat,toString=OP.toString,owns=OP.hasOwnProperty,isArray=Array.isArray||function(item){return"&#91;object Array]"===toString.call(item)},defaultPoints={width:&#91;0,320,481,641,961,1025,1281],height:&#91;0,481],ratio:&#91;1,1.5,2]},propTests={},isCustom={},sets={all:&#91;]},suid=1,screenW=screen.width,screenH=screen.height,screenMax=screenW&gt;screenH?screenW:screenH,screenMin=screenW+screenH-screenMax,deviceW=function(){return screenW},deviceH=function(){return screenH},regexFunkyPunc=/&#91;^a-z0-9_\-\.]/gi,regexTrimPunc=/^&#91;\W\s]+|&#91;\W\s]+$|/g,regexCamels=/(&#91;a-z])(&#91;A-Z])/g,regexDashB4=/-(.)/g,regexDataPrefix=/^data-(.+)$/,procreate=Object.create||function(parent){function Type(){}return Type.prototype=parent,new Type},namespaceIt=function(eventName,customNamespace){return customNamespace=customNamespace||name,eventName.replace(regexTrimPunc,"")+"."+customNamespace.replace(regexTrimPunc,"")},event={allLoaded:namespaceIt("allLoaded"),crossover:namespaceIt("crossover")},matchMedia=win.matchMedia||win.msMatchMedia,media=matchMedia?bind(matchMedia,win):function(){return{}},mq=matchMedia?function(q){return!!matchMedia.call(win,q)}:function(){return!1},viewportW=function(){var a=docElem.clientWidth,b=win.innerWidth;return b&gt;a?b:a},viewportH=function(){var a=docElem.clientHeight,b=win.innerHeight;return b&gt;a?b:a},band=bind(between,viewportW),wave=bind(between,viewportH),device={band:bind(between,deviceW),wave:bind(between,deviceH)};return Elemset=function(){function sanitize(key){return"string"==typeof key?key.toLowerCase().replace(regexFunkyPunc,""):""}function ascending(a,b){return a-b}var crossover=event.crossover,min=Math.min;return{$e:0,mode:0,breakpoints:null,prefix:null,prop:"width",keys:&#91;],dynamic:null,custom:0,values:&#91;],fn:0,verge:null,newValue:0,currValue:1,aka:null,lazy:null,i:0,uid:null,reset:function(){for(var subjects=this.breakpoints,i=subjects.length,tempIndex=0;!tempIndex&&i--;)this.fn(subjects&#91;i])&&(tempIndex=i);return tempIndex!==this.i&&($win.trigger(crossover).trigger(this.prop+crossover),this.i=tempIndex||0),this},configure:function(options){merge(this,options);var i,points,prefix,aliases,aliasKeys,isNumeric=!0,prop=this.prop;if(this.uid=suid++,null==this.verge&&(this.verge=min(screenMax,500)),!(this.fn=propTests&#91;prop]))throw new TypeError("@create");if(null==this.dynamic&&(this.dynamic="device"!==prop.slice(0,6)),this.custom=isCustom&#91;prop],prefix=this.prefix?sift(map(compact(this.prefix),sanitize)):&#91;"min-"+prop+"-"],aliases=1&lt;prefix.length?prefix.slice(1):0,this.prefix=prefix&#91;0],points=this.breakpoints,isArray(points)){if(each(points,function(v){if(!v&&0!==v)throw"invalid breakpoint";isNumeric=isNumeric&&isFinite(v)}),isNumeric&&points.sort(ascending),!points.length)throw new TypeError(".breakpoints")}else if(points=defaultPoints&#91;prop]||defaultPoints&#91;prop.split("-").pop()],!points)throw new TypeError(".prop");if(this.breakpoints=points,this.keys=affix(this.breakpoints,this.prefix),this.aka=null,aliases){for(aliasKeys=&#91;],i=aliases.length;i--;)aliasKeys.push(affix(this.breakpoints,aliases&#91;i]));this.aka=aliasKeys,this.keys=concat.apply(this.keys,aliasKeys)}return sets.all=sets.all.concat(sets&#91;this.uid]=this.keys),this},target:function(){return this.$e=$(sel(sets&#91;this.uid])),store(this.$e,initContentKey),this.keys.push(initContentKey),this},decideValue:function(){for(var val=null,subjects=this.breakpoints,sL=subjects.length,i=sL;null==val&&i--;)this.fn(subjects&#91;i])&&(val=this.values&#91;i]);return this.newValue="string"==typeof val?val:this.values&#91;sL],this},prepareData:function(elem){if(this.$e=$(elem),this.mode=detectMode(elem),this.values=access(this.$e,this.keys),this.aka)for(var i=this.aka.length;i--;)this.values=merge(this.values,access(this.$e,this.aka&#91;i]));return this.decideValue()},updateDOM:function(){return this.currValue===this.newValue?this:(this.currValue=this.newValue,0&lt;this.mode?this.$e&#91;0].setAttribute("src",this.newValue):null==this.newValue?this.$e.empty&&this.$e.empty():this.$e.html?this.$e.html(this.newValue):(this.$e.empty&&this.$e.empty(),this.$e&#91;0].innerHTML=this.newValue),this)}}}(),propTests.width=band,propTests.height=wave,propTests&#91;"device-width"]=device.band,propTests&#91;"device-height"]=device.wave,propTests&#91;"device-pixel-ratio"]=dpr,Response={deviceMin:function(){return screenMin},deviceMax:function(){return screenMax},noConflict:noConflict,create:create,addTest:addTest,datatize:datatize,camelize:camelize,render:parse,store:store,access:access,target:target,object:procreate,crossover:crossover,action:action,resize:resize,ready:ready,affix:affix,sift:sift,dpr:dpr,deletes:deletes,scrollX:scrollX,scrollY:scrollY,deviceW:deviceW,deviceH:deviceH,device:device,inX:inX,inY:inY,route:route,merge:merge,media:media,mq:mq,wave:wave,band:band,map:map,each:each,inViewport:inViewport,dataset:dataset,viewportH:viewportH,viewportW:viewportW},ready(function(){var settings=dataset(doc.body,"responsejs"),parse=win.JSON&&JSON.parse||$.parseJSON;settings=settings&&parse?parse(settings):settings,settings&&settings.create&&create(settings.create),docElem.className=docElem.className.replace(/(^|\s)(no-)?responsejs(\s|$)/,"$1$3")+" responsejs "}),Response}),function(){var is_webkit=navigator.userAgent.toLowerCase().indexOf("webkit")&gt;-1,is_opera=navigator.userAgent.toLowerCase().indexOf("opera")&gt;-1,is_ie=navigator.userAgent.toLowerCase().indexOf("msie")&gt;-1;if((is_webkit||is_opera||is_ie)&&"undefined"!=typeof document.getElementById){var eventMethod=window.addEventListener?"addEventListener":"attachEvent";window&#91;eventMethod]("hashchange",function(){var element=document.getElementById(location.hash.substring(1));element&&(/^(?:a|select|input|button|textarea)$/i.test(element.tagName)||(element.tabIndex=-1),element.focus())},!1)}}(),jQuery(document).ready(function($){$("a&#91;href=#scroll-top]").click(function(){return $("html, body").animate({scrollTop:0},"slow"),!1})});
</pre>
]]></description>
		<pubDate>Thu, 29 Oct 2015 20:00:42 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5921-problem-huge-gap-between-title-and-video-player/</guid>
	</item>
	<item>
		<title><![CDATA[&#34;no Matching Videos&#34; Vimeo Channel/user]]></title>
		<link>https://community.tubepress.com/topic/5919-no-matching-videos-vimeo-channeluser/</link>
		<description><![CDATA[<p>We have followed all the steps and gone through the support pages but nothing fixes our issue. We try different users and channels but nothing gets the issue resolved. Any input would be great.</p>
]]></description>
		<pubDate>Fri, 23 Oct 2015 19:46:40 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5919-no-matching-videos-vimeo-channeluser/</guid>
	</item>
	<item>
		<title>Get Playlist Id</title>
		<link>https://community.tubepress.com/topic/5918-get-playlist-id/</link>
		<description><![CDATA[<p>Hi friends,</p>
<p>&nbsp;</p>
<p>I want to get the playlist ID in this file:&nbsp;/theme/templates/gallery/main.html.twig</p>
<p>&nbsp;</p>
<p>Does anyone know how could I do?</p>
<p>&nbsp;</p>
<p>Thanks</p>
]]></description>
		<pubDate>Mon, 19 Oct 2015 07:59:03 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5918-get-playlist-id/</guid>
	</item>
	<item>
		<title>Disable Shadowbox?</title>
		<link>https://community.tubepress.com/topic/5917-disable-shadowbox/</link>
		<description><![CDATA[<p>I get numerous 404 errors for Shadowbox related files (mostly image files) in TubePress Pro 4.1.11. I have seen I'm supposed to install Shadowbox.js separately but the shadowbox-js.com domain is down and your instructions to install it are no longer relevant. Regardless, I'd like to simply disable the need for Shadowbox.js if possible and get rid of the 404 errors. Please let me know if this is possible. Thanks!</p>
<div id='attach_wrap' class='clearfix'>
	<h4>Attached Thumbnails</h4>
	<ul>
		
			<li class=''>
				<a class='resized_img' rel='lightbox[24801]' id='ipb-attach-url-514-0-74314100-1776289355' href="https://community.tubepress.com/uploads/post-12407-0-23298900-1444955699.png" title="Screen Shot 2015-10-15 at 9.34.39 PM.png - Size: 112.52KB"><img itemprop="image" src="https://community.tubepress.com/uploads/post-12407-0-23298900-1444955699_thumb.png" id='ipb-attach-img-514-0-74314100-1776289355' style='width:100;height:10' class='attach' width="100" height="10" alt="Screen Shot 2015-10-15 at 9.34.39 PM.png" /></a>


			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Fri, 16 Oct 2015 00:35:12 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5917-disable-shadowbox/</guid>
	</item>
	<item>
		<title>Playlist Tag Not Playing Videos From Playlist</title>
		<link>https://community.tubepress.com/topic/5916-playlist-tag-not-playing-videos-from-playlist/</link>
		<description><![CDATA[<pre  class="prettyprint lang-">
&#91;tubepress mode=“playlist” playlistValue=“PL5jzJWLEfKp0bcS8-K60VrnwKlOozof9J”]
</pre>
<p>I have four websites using TubePress Pro 4.1.11 and only one of them is giving me&nbsp;an issue.&nbsp;&nbsp; I absolutely love this Plugin but I've been beating myself to death trying to resolve this issue.</p>
<p>&nbsp;</p>
<p>This issue is this:</p>
<p>&nbsp;</p>
<p>On <a href='http://www.pontiacgtoparts.com' class='bbc_url' title='External link' rel='nofollow external'>www.pontiacgtoparts.com</a>, I have a bunch of pages for certain parts such as Doors, Mirrors, Emblems, etc.&nbsp;&nbsp; I have proper playlists setup on YouTube for each page.&nbsp; However, when I use the shortcode tags (provided above), it never pays attention to the playlist content. It just plays whatever it seems like it wants to play.&nbsp;&nbsp; For the video source, I have it to set use the Videos from the YouTube username of BillionsAndTrillions</p>
<p>&nbsp;</p>
<p>Advanced debugging is enabled.&nbsp; Anything I'm missing? Works perfect on my three other sites of <a href='http://www.gtopartsforsale.com' class='bbc_url' title='External link' rel='nofollow external'>www.gtopartsforsale.com</a>, <a href='http://www.oldsmobilecutlassparts.com' class='bbc_url' title='External link' rel='nofollow external'>www.oldsmobilecutlassparts.com</a>, and www.buickskylarkpart.com</p>
<p>&nbsp;</p>
<p>Can you please CC my developer at <a href='mailto:wkharris@gmail.com' class='bbc_url' title='External link' rel='nofollow external'>wkharris@gmail.com</a> ?</p>
<p>&nbsp;</p>
<p>Thank You,</p>
<p>Frank</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></description>
		<pubDate>Sun, 11 Oct 2015 19:45:10 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5916-playlist-tag-not-playing-videos-from-playlist/</guid>
	</item>
	<item>
		<title>How To Embed Different Youtube Playlists In Different Wordpress Pages</title>
		<link>https://community.tubepress.com/topic/5915-how-to-embed-different-youtube-playlists-in-different-wordpress-pages/</link>
		<description><![CDATA[<p><span  style="color:rgb(51,51,51);font-family:'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;">Hi I just tried to do the do multiple playlist as per the instruction below. I get the following error:</span><br><span  style="color:rgb(51,51,51);font-family:'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;">YouTube responded with an error: The playlist identified with the requests &lt;code&gt;playlistId&lt;/code&gt; parameter cannot be found.</span><br><br><br><span  style="color:rgb(51,51,51);font-family:'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;">I had put in the code as below on my page: <a href='http://smarthomeworks.com.au/savant-smart-homes/' class='bbc_url' title='External link' rel='nofollow external'>http://smarthomeworks.com.au/savant-smart-homes/</a></span><br><span  style="color:rgb(51,51,51);font-family:'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;">[tubepress mode=“playlist” playlistValue=“PLmUhqmK6lJCA_dntOs8aQyN8tvFLFp6N7”]</span></p>
]]></description>
		<pubDate>Wed, 30 Sep 2015 01:27:37 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5915-how-to-embed-different-youtube-playlists-in-different-wordpress-pages/</guid>
	</item>
	<item>
		<title>Youtube Responded To Tubepress With An Http 410 - No Longer Available</title>
		<link>https://community.tubepress.com/topic/5914-youtube-responded-to-tubepress-with-an-http-410-no-longer-available/</link>
		<description><![CDATA[<p>What does that error message mean?</p>
<p>&nbsp;</p>
<p>My YT account is in tact. My playlists are in tact. One of the videos from my playlist was removed by YT.</p>
]]></description>
		<pubDate>Tue, 29 Sep 2015 00:07:52 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5914-youtube-responded-to-tubepress-with-an-http-410-no-longer-available/</guid>
	</item>
	<item>
		<title><![CDATA[Pagnation Has Extra &#62;&#62;&#62;&#62; After &#34;next&#34;]]></title>
		<link>https://community.tubepress.com/topic/5913-pagnation-has-extra-after-next/</link>
		<description><![CDATA[<p>I am running into an issue with the navigation/pagnation. I have the pages working properly but the pagnation will display as:</p>
<p>&nbsp;</p>
<p>&lt;&lt; prev&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; next &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt; &gt; &gt; &gt;&nbsp;</p>
<p>&nbsp;</p>
<p>You can see this at the following page: <a href='http://laserproductsus.com/v2/videos/lt-2d3d-laser-templator-videos/' class='bbc_url' title='External link' rel='nofollow external'>http://laserproductsus.com/v2/videos/lt-2d3d-laser-templator-videos/</a></p>
<p>&nbsp;</p>
<p>I have submitted tickets and no one is responding to them. I am using the Pro version (paid) but that doesn't seem to help in getting support.</p>
]]></description>
		<pubDate>Fri, 25 Sep 2015 18:25:17 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5913-pagnation-has-extra-after-next/</guid>
	</item>
	<item>
		<title>How Can I Change Text Orientation?</title>
		<link>https://community.tubepress.com/topic/5912-how-can-i-change-text-orientation/</link>
		<description><![CDATA[<p>Hi, I have a site on Wix platform, is it possible to change the titles orientation under the youtube gallery?</p>
<p>and change the font?</p>
<p>&nbsp;</p>
<p>thank you</p>
<p>&nbsp;</p>
]]></description>
		<pubDate>Fri, 25 Sep 2015 06:42:12 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5912-how-can-i-change-text-orientation/</guid>
	</item>
	<item>
		<title>Search Text Saved To Text File</title>
		<link>https://community.tubepress.com/topic/5911-search-text-saved-to-text-file/</link>
		<description>When some one types a search save the entered text to a text file to show the most recent searched items on antother page.</description>
		<pubDate>Fri, 25 Sep 2015 04:53:44 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5911-search-text-saved-to-text-file/</guid>
	</item>
	<item>
		<title>One Website Licence</title>
		<link>https://community.tubepress.com/topic/5910-one-website-licence/</link>
		<description><![CDATA[<p>HI, is the one website licence mean one installation? I like to use it on difference sub domain, which licence to purchase? &nbsp;&nbsp;</p>
]]></description>
		<pubDate>Mon, 21 Sep 2015 09:12:17 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5910-one-website-licence/</guid>
	</item>
	<item>
		<title>Tubepress Pro 4.1.11 - Fatal Error: Out Of Memory</title>
		<link>https://community.tubepress.com/topic/5909-tubepress-pro-4111-fatal-error-out-of-memory/</link>
		<description><![CDATA[<p>Hi,<br><br>
I have TubePress Pro (developer's license). I just tried installing tubepress pro version 4.1.11 onto one of my client's websites. After I install the plugin and try to activate it, it won't let me activate it and gives me the following error message: Fatal error: Out of memory (allocated 34865152) (tried to allocate 273417 bytes) in /homepages/30/d220008111/htdocs/blog/new/wp-content/plugins/tubepress_pro_4_1_11/vendor/ehough/iconic/src/main/php/ehough/iconic/parameterbag/ParameterBag.php on line 235<br><br>
He is running php 5.5 on his hosting package and his wp memory limit is 365 mb, so I think he should have enough resources to run this plugin.</p>
<p>&nbsp;</p>
<p>Any ideas on why this is happeneing and how to fix it?</p>
]]></description>
		<pubDate>Wed, 16 Sep 2015 03:58:41 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5909-tubepress-pro-4111-fatal-error-out-of-memory/</guid>
	</item>
	<item>
		<title>Wordpress Admin Tabs Are Empty?</title>
		<link>https://community.tubepress.com/topic/5908-wordpress-admin-tabs-are-empty/</link>
		<description><![CDATA[<p>I'm attempting to add YouTube video galleries to my WordPress Multisite network. The Tubepress Pro admin panel is however BLANK (see attached).</p>
<p>&nbsp;</p>
<p><strong>Details:</strong></p>
<ol><li>WP 4.3</li>
	<li>TubePressPro 4.1.11</li>
	<li>WooThemes Theme Framewok 6.2 (latest version)</li>
</ol><p>&nbsp;</p>
<p>This has been a problem plaguing my site since version 4.1.x</p>
<p>&nbsp;</p>
<p>Thanks in advance for your help.</p>
]]></description>
		<pubDate>Wed, 09 Sep 2015 17:06:10 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5908-wordpress-admin-tabs-are-empty/</guid>
	</item>
	<item>
		<title>Filters For Video</title>
		<link>https://community.tubepress.com/topic/5906-filters-for-video/</link>
		<description><![CDATA[<p>I need to categorize the videos and put a filter for the visiting user, you can select only the videos you interezan.</p>
]]></description>
		<pubDate>Mon, 07 Sep 2015 19:32:22 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5906-filters-for-video/</guid>
	</item>
	<item>
		<title>Secure Youtube Thumbnails Not Using Https</title>
		<link>https://community.tubepress.com/topic/5905-secure-youtube-thumbnails-not-using-https/</link>
		<description><![CDATA[<p>Hi Eric,</p>
<p>&nbsp;</p>
<p>I'm using Tubepress Pro 4.1.11 on my site and I've enabled the "Enable HTTPS" option for my YouTube thumbnails (and they display as HQ, with the black bars and everything) but TubePress is still delivering images from <a href='http://i.ytimg.com/' class='bbc_url' title='External link' rel='nofollow external'>http://i.ytimg.com/</a></p>
<p>&nbsp;</p>
<p>This is causing issues for my SSL Cert when viewing my site.</p>
<p>&nbsp;</p>
<p><a href='https://loiraplatinada.com' class='bbc_url' title='External link' rel='nofollow external'>https://loiraplatinada.com</a></p>
<p>&nbsp;</p>
<p>Thanks!</p>
]]></description>
		<pubDate>Sat, 05 Sep 2015 08:25:28 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5905-secure-youtube-thumbnails-not-using-https/</guid>
	</item>
	<item>
		<title>Youtube Responded With An Error: Serving Limit Exceeded</title>
		<link>https://community.tubepress.com/topic/5904-youtube-responded-with-an-error-serving-limit-exceeded/</link>
		<description><![CDATA[<p>Help</p>
<p>Im getting :</p>
<p>&nbsp;</p>
<p><span  style="color:rgb(204,204,204);font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">YouTube responded with an error: Serving Limit Exceeded</span></p>]]></description>
		<pubDate>Wed, 02 Sep 2015 12:19:46 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5904-youtube-responded-with-an-error-serving-limit-exceeded/</guid>
	</item>
	<item>
		<title><![CDATA[Error Message: &#34;youtube Responded With An Error: Serving Limit Exceeded&#34;]]></title>
		<link>https://community.tubepress.com/topic/5903-error-message-youtube-responded-with-an-error-serving-limit-exceeded/</link>
		<description><![CDATA[<p>edit. problem resolved. do not know how to delete this post.</p>
]]></description>
		<pubDate>Tue, 01 Sep 2015 18:12:29 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5903-error-message-youtube-responded-with-an-error-serving-limit-exceeded/</guid>
	</item>
	<item>
		<title><![CDATA[Tried Creating A Ticket, But It's In A Perpetual Loop]]></title>
		<link>https://community.tubepress.com/topic/5902-tried-creating-a-ticket-but-its-in-a-perpetual-loop/</link>
		<description><![CDATA[<p>Downloaded 4.1.11 this morning, uploaded it via ftp, and when I go in to activate it, the entire site breaks (white screen).<br><br>
Get this error message when I deactivate ALL plugins and then activate TubePress Pro:<br><br>
Catchable fatal error: Argument 1 passed to tubepress_app_impl_html_CssAndJsGenerationHelper::_recursivelyGetFromTheme() must implement interface tubepress_app_api_theme_ThemeInterface, null given, called in /wp-content/plugins/tubepress_pro_4_1_11/src/platform/scripts/classloading/classes.php on line 3088 and defined in /wp-content/plugins/tubepress_pro_4_1_11/src/platform/scripts/classloading/classes.php on line 3117<br><br>
I verified that the APC extension is NOT activated on the hosting.&nbsp; I followed the upgrade procedure properly.<br><br>
(Note: The old version we were running was 3.1.5.&nbsp; No one received any emails about upgrades, and we had no idea there was anything going on until the video library was broken this morning.&nbsp; How do we get notified of upgrades? The email address on my account is a valid email.)</p>
]]></description>
		<pubDate>Tue, 01 Sep 2015 14:32:42 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5902-tried-creating-a-ticket-but-its-in-a-perpetual-loop/</guid>
	</item>
	<item>
		<title>No Matching Videos After Upgrade.</title>
		<link>https://community.tubepress.com/topic/5901-no-matching-videos-after-upgrade/</link>
		<description><![CDATA[<p>Hi,&nbsp;</p>
<p>&nbsp;</p>
<p>After I upgraded to 4.1.11, my page no longer displays any videos, and returns <b>No&nbsp;</b><strong>matching videos&nbsp;</strong>(<a href='http://www.sumsa.org.au/gallery/videos/' class='bbc_url' title='External link' rel='nofollow external'>http://www.sumsa.org.au/gallery/videos/</a>).&nbsp; </p>
<p>&nbsp;</p>
<p>Youtube page is: youtube.com/SUMSAmedia</p>
<p>&nbsp;</p>
<p>I looked through the other posts, and couldn't see what the problem is.</p>
<p>&nbsp;</p>
<p>Thank you in advance</p>
]]></description>
		<pubDate>Mon, 31 Aug 2015 03:49:07 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5901-no-matching-videos-after-upgrade/</guid>
	</item>
	<item>
		<title>500 Something Went Wrong But We Are Working  On It!</title>
		<link>https://community.tubepress.com/topic/5900-500-something-went-wrong-but-we-are-working-on-it/</link>
		<description><![CDATA[<p>How come all of a sudden, this is showing on my Wordpress site @ canadiancountrymusicvideos.com</p>
<p>&nbsp;</p>

	<span  style="color:rgb(71,143,202);font-size:38.75px">&nbsp;500&nbsp;</span>Something Went Wrong

	But we are working&nbsp;&nbsp;on it!
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>What is this about guys? Quite embarrassing! I haven't edited the site in over a week, so no changes were even made. I really hope someone gets back to me &nbsp;about this!!!!!&nbsp;</p>
<p>&nbsp;</p>
<p>PLEASE!&nbsp;</p>
<p>&nbsp;</p>
<p>Or Time to turn to alternatives and I used to love tubepress...</p>
<p>&nbsp;</p>
<p>Thanks.</p>
<p>&nbsp;</p>
]]></description>
		<pubDate>Sat, 29 Aug 2015 00:36:24 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5900-500-something-went-wrong-but-we-are-working-on-it/</guid>
	</item>
	<item>
		<title>Amazon S3 And Tubepress</title>
		<link>https://community.tubepress.com/topic/5899-amazon-s3-and-tubepress/</link>
		<description><![CDATA[<p>Hi,&nbsp;</p>
<p>&nbsp;</p>
<p>My videos will be hosted on Amazon S3 and I am currently using TubePress pro for other videos on YouTube.&nbsp;</p>
<p>Is it possible to use videos from Amazon in Tubepress?</p>
<p>&nbsp;</p>
<p>Thank you,</p>
<p>Diana</p>
]]></description>
		<pubDate>Fri, 28 Aug 2015 15:40:53 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5899-amazon-s3-and-tubepress/</guid>
	</item>
	<item>
		<title>Upgrade Completely Breaks Tubepress</title>
		<link>https://community.tubepress.com/topic/5898-upgrade-completely-breaks-tubepress/</link>
		<description><![CDATA[<p>I just upgraded from 3.1.6 to 4.1.11 and Tubepress now doesn't work at all. My pages simply return the following error:</p>
<p>&nbsp;</p>
<p><b>Fatal error</b><span  style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;">: Class 'tubepress_impl_patterns_toposort_TopologicalSort' not found in</span><b>/nfs/c10/h04/mnt/150983/domains/videomi.com/html/tubepress/src/main/php/classes/tubepress/impl/html/CssAndJsRegistry.php</b><span  style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;">&nbsp;on line&nbsp;</span><b>315</b></p>
<p>&nbsp;</p>
<p><strong>There was also a file called "tubepress-content/config/boot.json" in the old installation. I'm using the standalone version.</strong></p>
<p>&nbsp;</p>
<p><strong>Any suggestions on how to fix this?</strong></p>
<p>&nbsp;</p>
<p><strong>Chris Blair</strong></p>
]]></description>
		<pubDate>Thu, 27 Aug 2015 16:58:28 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5898-upgrade-completely-breaks-tubepress/</guid>
	</item>
	<item>
		<title><![CDATA[Videos Won't Play]]></title>
		<link>https://community.tubepress.com/topic/5897-videos-wont-play/</link>
		<description><![CDATA[<p>Tried options Need the videos to play in either shadow box, or a light box feature.</p>
<p>&nbsp;</p>
<p>Link:&nbsp;<a href='http://www.mattemig.net/videos/' class='bbc_url' title='External link' rel='nofollow external'>http://www.mattemig.net/videos/</a></p>
<p>&nbsp;</p>
<p>videos do not play, please help</p>
]]></description>
		<pubDate>Sun, 23 Aug 2015 05:03:21 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5897-videos-wont-play/</guid>
	</item>
	<item>
		<title>Video Membership Site</title>
		<link>https://community.tubepress.com/topic/5896-video-membership-site/</link>
		<description><![CDATA[<p>I want to add videos on my site behind a membership wall.&nbsp; Is that possible with tubepress.&nbsp; It will defeat the purpose if I put the videos on youtube publically.&nbsp; Is there a way to make them private on youtube and allow them to be seen through tubepress?&nbsp; Or is there another option to handle this?</p>
]]></description>
		<pubDate>Thu, 20 Aug 2015 04:25:31 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5896-video-membership-site/</guid>
	</item>
	<item>
		<title>No Videos Or Playlists Rendering?</title>
		<link>https://community.tubepress.com/topic/5894-no-videos-or-playlists-rendering/</link>
		<description><![CDATA[<p>I've noticed for a while now that none of my videos are rendering in my blog. I've spent hundreds of hours setting up playlists and menu's and paid for the pro service which when going was all good.</p>
<p>&nbsp;</p>
<p>Anyone else having any problems lately and or know whats causing it?</p>
]]></description>
		<pubDate>Tue, 18 Aug 2015 22:27:59 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5894-no-videos-or-playlists-rendering/</guid>
	</item>
	<item>
		<title><![CDATA[Tubepress Pro Developer's License -- Possible For Auto Updates In The Future?]]></title>
		<link>https://community.tubepress.com/topic/5893-tubepress-pro-developers-license-possible-for-auto-updates-in-the-future/</link>
		<description><![CDATA[<p>I recently purchased a developer's license for TubePress pro, as I am a web designer and use TubePress on a large number of websites.</p>
<p>&nbsp;</p>
<p>However, as a freelance designer and not part of a big business, I am only one person and I don't manage every client's website that I design -- they are usually responsible for maintaining and updating their own website after launch.</p>
<p>&nbsp;</p>
<p>In the TubePress documentation, it suggests that you manually update TubePress pro: <a href='http://docs.tubepress.com/en/3.1.6/manual/wordpress/install-upgrade-uninstall.html' class='bbc_url' title='External link' rel='nofollow external'>http://docs.tubepress.com/en/3.1.6/manual/wordpress/install-upgrade-uninstall.html</a></p>
<p>&nbsp;</p>
<p>In the future, is it possible to build in a system with a licensing key that would allow me to enter the key into all WordPress websites that I use TubePress Pro,&nbsp; so then clients can auto update their own sites? Gravity forms, Events Manager Pro, and many other paid plugins have this option for their developer's licenses.</p>
<p>&nbsp;</p>
<p>Otherwise, I have to go in and manually update like 30 different websites every time TubePress Pro needs to be updated. Do you have any suggestions on how to work around this?</p>
]]></description>
		<pubDate>Fri, 14 Aug 2015 17:00:58 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5893-tubepress-pro-developers-license-possible-for-auto-updates-in-the-future/</guid>
	</item>
	<item>
		<title>Excessive Space After Video Title Before Video Itself</title>
		<link>https://community.tubepress.com/topic/5891-excessive-space-after-video-title-before-video-itself/</link>
		<description><![CDATA[<p>I've just upgraded to Pro, deactivated the free version and activated the Pro version. Upon refreshing the page and then even clearing the cache, I'm continuing to get an excessive amount of space between the focus video title and the video itself. I have a screenshot for you. I will also look at in Firebug to see what's taking up that space. Please let me know if this is a known issue, how I might go about fixing, etc.</p>
<p>Thanks!</p>
<p>Daniel</p>
<p>&nbsp;</p>
<p>Page in question:</p>
<p><a href='https://thecll.org/videos/youtube-test/' class='bbc_url' title='External link' rel='nofollow external'>https://thecll.org/videos/youtube-test/</a></p>
<div id='attach_wrap' class='clearfix'>
	<h4>Attached Thumbnails</h4>
	<ul>
		
			<li class=''>
				<a class='resized_img' rel='lightbox[24653]' id='ipb-attach-url-508-0-78046300-1776289355' href="https://community.tubepress.com/uploads/post-12879-0-46820600-1439508721.png" title="tubepress-issue-excessive space.png - Size: 264.77KB"><img itemprop="image" src="https://community.tubepress.com/uploads/post-12879-0-46820600-1439508721_thumb.png" id='ipb-attach-img-508-0-78046300-1776289355' style='width:100;height:51' class='attach' width="100" height="51" alt="tubepress-issue-excessive space.png" /></a>


			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Thu, 13 Aug 2015 23:32:59 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5891-excessive-space-after-video-title-before-video-itself/</guid>
	</item>
	<item>
		<title>Youtube Responded To Tubepress With An Http 410 - No Longer Available</title>
		<link>https://community.tubepress.com/topic/5887-youtube-responded-to-tubepress-with-an-http-410-no-longer-available/</link>
		<description><![CDATA[<p>&nbsp;YouTube responded to TubePress with an HTTP 410 - No longer available this error is displayed. I created a google API and pasted it over here. This happens irrespective of using&nbsp;<span  style="color:rgb(68,68,68);font-family:'Open Sans', sans-serif;font-size:13px;font-weight:bold;text-align:right;">YouTube search for or&nbsp;</span><span  style="color:rgb(68,68,68);font-family:'Open Sans', sans-serif;font-size:13px;font-weight:bold;text-align:right;">This YouTube playlist option, moreover when I paste the playlist to the field the field resets itself to the default. What am I to do!?</span></p>
]]></description>
		<pubDate>Wed, 12 Aug 2015 04:51:54 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5887-youtube-responded-to-tubepress-with-an-http-410-no-longer-available/</guid>
	</item>
	<item>
		<title>Create A Subset Of Videos From A Playlist</title>
		<link>https://community.tubepress.com/topic/5886-create-a-subset-of-videos-from-a-playlist/</link>
		<description><![CDATA[<p>I there a way to create a subset video from a playlist using the tag feature.. I don't want pull in multiple videos, just a subset of an existing playlist equal to a tag..&nbsp;</p>
<p>&nbsp;</p>
<p>something like</p>
<p>&nbsp;</p>
<p>&nbsp;<span  style="color:rgb(64,64,64);font-family:Lato,'proxima-nova', 'Helvetica Neue', Arial, sans-serif;font-size:16px;">[tubepress mode="playlist &nbsp;+ tag" &nbsp;playlistValue="F5D324185EE73FEC"</span></p>
<div  style="margin:1px 0px 24px;color:rgb(64,64,64);font-family:Lato,'proxima-nova', 'Helvetica Neue', Arial, sans-serif;font-size:16px;">
<div  style="margin:0px"><span>&nbsp;tagValue='"san diego craft beer"' ]</span><br><div>&nbsp;</div>
</div>
</div>
<p>but - only get "san diego craft beer" from the specific playlist</p>
]]></description>
		<pubDate>Wed, 12 Aug 2015 04:17:31 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5886-create-a-subset-of-videos-from-a-playlist/</guid>
	</item>
	<item>
		<title>Troubles With New Widget</title>
		<link>https://community.tubepress.com/topic/5885-troubles-with-new-widget/</link>
		<description><![CDATA[<p>I just noticed that the Tubepress widget I had in the sidebar said "Legacy", so I switched to the new one. I wish I hadn't.</p>
<p>&nbsp;</p>
<p>The previous widget's look was very clean, but the new one has the pagination in it, which looks terrible in a small widget, and seems totally unnecessary there. Also, it tries to show the first thumbnail as a full video at first, and when that shrinks down, it's still larger than the rest of the thumbnails in the widget, and duplicates the first thumbnail's video. (See left column: <a href='http://www.humortimes.com/)' class='bbc_url' title='External link' rel='nofollow external'>http://www.humortimes.com/)</a></p>
<p>&nbsp;</p>
<p>I've searched the documentation and shortcode (btw, please put a prominent link to the shortcode list in the documentation, couldn't find it there, had to just google 'tubepress shortcode' to find it), and can't find anything about the widget in general, or shortcode to deal with this problem.</p>
<p>&nbsp;</p>
<p>How can I eliminate the pagination from the widget (tried paginationBelow="false", not working), as well as the attempt to show a full size video, and have all the thumbnails the same size?</p>
<p>&nbsp;</p>
<p>Thank you.</p>
]]></description>
		<pubDate>Mon, 10 Aug 2015 00:28:51 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5885-troubles-with-new-widget/</guid>
	</item>
	<item>
		<title>Vimeo: Invalid Signature</title>
		<link>https://community.tubepress.com/topic/5884-vimeo-invalid-signature/</link>
		<description><![CDATA[<p>I can see my Youtube videos fine but i am switching my stuff to Vimeo. I am getting&nbsp;<span  style="color:rgb(51,51,51);font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;background-color:rgb(242,222,222);">Invalid signature</span>&nbsp;when I publish my page. I setup my app and got a "Client Identifier" and "Client Secrets" from the app. Please let me know how to fix.</p>
<p>&nbsp;</p>
<p><a href='http://ccchowchilla.com/watch-sermons/' class='bbc_url' title='External link' rel='nofollow external'>http://ccchowchilla.com/watch-sermons/</a></p>
<p>&nbsp;</p>
<p>"https://vimeo.com/album/3512645"<br>
&nbsp;</p>
<p>&nbsp;</p>
<p>[tubepress mode="vimeoAlbum" vimeoAlbumValue="3512645" resultsPerPage="12" ajaxPagination="true" hqThumbs="true"]</p>]]></description>
		<pubDate>Sat, 08 Aug 2015 18:14:32 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5884-vimeo-invalid-signature/</guid>
	</item>
	<item>
		<title>All Videos Not Showing</title>
		<link>https://community.tubepress.com/topic/5883-all-videos-not-showing/</link>
		<description><![CDATA[<p>I have the Pro version and added the following code on the video page and only 7 of the 19 videos in the YouTube playlist are showing up <a href='http://www.markcastrillon.com/videos' class='bbc_url' title='External link' rel='nofollow external'>http://www.markcastrillon.com/videos</a></p>
<p>&nbsp;</p>
<p>[tubepress mode="playlist" playlistValue="PLfZcrzTJ_1hYFAvQPDA8AKjcOOKEu8Nix"]</p>
<p>&nbsp;</p>
<p>Can you please help me here?</p>
]]></description>
		<pubDate>Fri, 07 Aug 2015 21:02:27 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5883-all-videos-not-showing/</guid>
	</item>
	<item>
		<title>Tubepress</title>
		<link>https://community.tubepress.com/topic/5882-tubepress/</link>
		<description><![CDATA[<p>Hello The youtube user has a more videos but tubepress show like for each page 3&nbsp;video&nbsp;<span rel='lightbox'><img class='bbc_img' src="http://i.imgur.com/vAIP7Go.jpg" alt="vAIP7Go.jpg"></span></p>
]]></description>
		<pubDate>Thu, 06 Aug 2015 13:06:10 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5882-tubepress/</guid>
	</item>
	<item>
		<title>Upgraded To Tubepress Pro But Videos Not Working</title>
		<link>https://community.tubepress.com/topic/5881-upgraded-to-tubepress-pro-but-videos-not-working/</link>
		<description><![CDATA[<p>Hi,</p>
<p>&nbsp;</p>
<p>We have multisite wordpress installed & we recently purchased tubepress pro. When we click on video nothing happens, it doesn't play.</p>
<p>Please help our website is&nbsp;<span  style="color:rgb(0,102,33);font-family:arial, sans-serif">viveick.com</span></p>
<p>&nbsp;</p>
]]></description>
		<pubDate>Wed, 05 Aug 2015 09:49:44 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5881-upgraded-to-tubepress-pro-but-videos-not-working/</guid>
	</item>
	<item>
		<title>What Happens After A Year?</title>
		<link>https://community.tubepress.com/topic/5880-what-happens-after-a-year/</link>
		<description><![CDATA[<p>If I pay for subscription for one year what happens after that - am I still able to use the plugin on my designated site?</p>
]]></description>
		<pubDate>Tue, 04 Aug 2015 06:46:24 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5880-what-happens-after-a-year/</guid>
	</item>
	<item>
		<title>Change Domine To My Website</title>
		<link>https://community.tubepress.com/topic/5879-change-domine-to-my-website/</link>
		<description><![CDATA[<p><span><span>I need to change</span> <span>the domain</span> <span>of</span> <span>my website,</span> <span>there is a problem</span> <span>with</span> <span>the</span> <span>license</span> <span>TubePress</span> <span>pro?</span></span></p>
]]></description>
		<pubDate>Tue, 04 Aug 2015 03:03:01 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5879-change-domine-to-my-website/</guid>
	</item>
	<item>
		<title>Flexible Thumbnail Rows Add-On, Seriously?</title>
		<link>https://community.tubepress.com/topic/5878-flexible-thumbnail-rows-add-on-seriously/</link>
		<description><![CDATA[<p>Hi guys,</p>
<p>&nbsp;</p>
<p>you should know, it is really shameful that you're selling something which is esentially a bug-fix as a 24$ add-on.</p>
]]></description>
		<pubDate>Mon, 03 Aug 2015 19:49:41 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5878-flexible-thumbnail-rows-add-on-seriously/</guid>
	</item>
	<item>
		<title>Quick Question</title>
		<link>https://community.tubepress.com/topic/5876-quick-question/</link>
		<description><![CDATA[<p>Hello,</p>
<p>&nbsp;</p>
<p>Thank-you in advance for your help. &nbsp;On my website there are some pages where I want to have the video player visible at the top of the page. &nbsp;However, there are some pages where I dont want to show my video player, but rather just the thumbnails. &nbsp;How can I do this?</p>
<p>&nbsp;</p>
<p>Thank-you so very much</p>
<p>&nbsp;</p>
<p>Michael</p>
]]></description>
		<pubDate>Fri, 31 Jul 2015 05:43:53 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5876-quick-question/</guid>
	</item>
	<item>
		<title>Big White Area</title>
		<link>https://community.tubepress.com/topic/5875-big-white-area/</link>
		<description><![CDATA[<p>Hello People,</p>
<p>&nbsp;</p>
<p>Just bought the pro license and installed it on my website.</p>
<p>&nbsp;</p>
<p>For some reason i get a big white gap above the video's&nbsp;</p>
<p>&nbsp;</p>
<p><a href='http://www.pokeren.nl/master-classics-poker-2013-videos' class='bbc_url' title='External link' rel='nofollow external'>http://www.pokeren.nl/master-classics-poker-2013-videos</a></p>
<p>&nbsp;</p>
<p>Maybe someone overhere can help me out?<br><br>
Kinds regards</p>
]]></description>
		<pubDate>Thu, 30 Jul 2015 13:12:25 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5875-big-white-area/</guid>
	</item>
	<item>
		<title>Youtube Responded With An Error: There Is A Per-Ip Or Per-Referer Restriction</title>
		<link>https://community.tubepress.com/topic/5874-youtube-responded-with-an-error-there-is-a-per-ip-or-per-referer-restriction/</link>
		<description><![CDATA[<p>How do I fix this</p>
<p>&nbsp;</p>
<p>YouTube responded with an error: There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.</p>
<p>&nbsp;</p>
<p>Just upgraded to 4.1.11</p>
]]></description>
		<pubDate>Wed, 29 Jul 2015 15:14:34 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5874-youtube-responded-with-an-error-there-is-a-per-ip-or-per-referer-restriction/</guid>
	</item>
	<item>
		<title>Host Videos</title>
		<link>https://community.tubepress.com/topic/5873-host-videos/</link>
		<description><![CDATA[<p>Does TubePress Express offer the ability to host videos similar to the Wordpress.com for video? Also, can I use SmugMug and Flickr? Please let me know. &nbsp;Tks</p>
]]></description>
		<pubDate>Wed, 29 Jul 2015 13:25:51 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5873-host-videos/</guid>
	</item>
	<item>
		<title>Pages Only Displays 3 Vids After New Version Installed</title>
		<link>https://community.tubepress.com/topic/5872-pages-only-displays-3-vids-after-new-version-installed/</link>
		<description><![CDATA[<p>j</p>
]]></description>
		<pubDate>Sun, 26 Jul 2015 16:22:23 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5872-pages-only-displays-3-vids-after-new-version-installed/</guid>
	</item>
	<item>
		<title>Change Tubepress_Page Url</title>
		<link>https://community.tubepress.com/topic/5871-change-tubepress-page-url/</link>
		<description><![CDATA[<div>Change url tubepress_page</div>
<div>&nbsp;</div>
<div>Hello guys how are you?</div>
<div>&nbsp;</div>
<div>I wonder how do I change the url: tubepress_page pages?</div>
<div>I wanted something meusite_page type.</div>
<div>How do I change this url?</div>
<div>&nbsp;</div>
<div>Thanks! Today got the plugin and I'm really enjoying it!</div>
]]></description>
		<pubDate>Thu, 23 Jul 2015 22:13:49 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5871-change-tubepress-page-url/</guid>
	</item>
	<item>
		<title><![CDATA[Player &#34;detached&#34;]]></title>
		<link>https://community.tubepress.com/topic/5870-player-detached/</link>
		<description><![CDATA[<p>Hi,</p>
<div>
<div><span><span>I have</span> <span>big problems with</span> <span>the player</span> <span>in a "</span><span>detached</span><span>"</span><span>.</span><br><span>My</span> <span>previous</span> <span>code used</span> <span>with</span> <span>Tubepress</span> <span>3.x.x.</span> <span>He looked like</span> <span>and everything worked.</span></span></div>
<div>
<pre  class="prettyprint">
&lt;tt class="my_1"&gt;&#91;tubepress theme="jacek/player_detached" playerLocation="detached" output="player" galleryId="12345" autoplay="false"]&lt;/tt&gt;
&lt;tt class="my_1"&gt;&#91;tubepress theme="jacek/news_detached" https="true" mode="playlist" playlistValue="PLXARrAhwLqu40irXJPnHrDPwp2ts3UGZx"  resultsPerPage = "4" playerLocation="detached"]&lt;/tt&gt;
&lt;tt class="my_1"&gt;&#91;tubepress theme="jacek/youtube_checker_detached" https="true" mode="playlist" playlistValue="PLXARrAhwLqu4CPJNOxUV9WNs8lZIA4Uui"  resultsPerPage = "4" playerLocation="detached"]&lt;/tt&gt;
&lt;tt class="my_1"&gt;&#91;tubepress theme="jacek/experten_detached" https="true" mode="playlist" playlistValue="PLXARrAhwLqu5h1M4qGR-1W9mEQpdVizHQ" resultsPerPage = "4" playerLocation="detached"]&lt;/tt&gt;
</pre>
</div>
<div><span><span>At the moment</span> <span>it does not show</span> <span>me</span> <span>any</span> <span>player</span><span>.</span><br><span>What</span> <span>I'm doing</span> <span>wrong?</span> <span>Or maybe</span> <span>I forgot something</span> <span>...</span><br><br><span>I look forward to</span> <span>help</span> <span>in the documentation</span> <span>because</span> <span>there is nothing about</span> <span>your "</span><span>detached</span><span>"</span><span>.</span></span></div>
<div>&nbsp;</div>
<div><span><span>WP</span> <span>4.2.2</span><br><span>Tubepress</span> <span>Pro v.4.1.11</span></span></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><span><span>I am greeting<br>
Jacek</span></span></div>
</div>]]></description>
		<pubDate>Mon, 20 Jul 2015 13:47:47 +0000</pubDate>
		<guid isPermaLink="false">https://community.tubepress.com/topic/5870-player-detached/</guid>
	</item>
</channel>
</rss>