diff --git a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js
index 1187440b0..3f55be0e6 100644
--- a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js
+++ b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js
@@ -1,10 +1,807 @@
/*!
-* bootstrap.js v3.0.0 by @fat and @mdo
-* Copyright 2013 Twitter Inc.
-* http://www.apache.org/licenses/LICENSE-2.0
-*/
-if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]}}t.fn.emulateTransitionEnd=function(e){var i=!1,n=this;t(this).one(t.support.transition.end,function(){i=!0});var o=function(){i||t(n).trigger(t.support.transition.end)};return setTimeout(o,e),this},t(function(){t.support.transition=e()})}(window.jQuery),+function(t){"use strict";var e='[data-dismiss="alert"]',i=function(i){t(i).on("click",e,this.close)};i.prototype.close=function(e){function i(){s.trigger("closed.bs.alert").remove()}var n=t(this),o=n.attr("data-target");o||(o=n.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,""));var s=t(o);e&&e.preventDefault(),s.length||(s=n.hasClass("alert")?n:n.parent()),s.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one(t.support.transition.end,i).emulateTransitionEnd(150):i())};var n=t.fn.alert;t.fn.alert=function(e){return this.each(function(){var n=t(this),o=n.data("bs.alert");o||n.data("bs.alert",o=new i(this)),"string"==typeof e&&o[e].call(n)})},t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",e,i.prototype.close)}(window.jQuery),+function(t){"use strict";var e=function(i,n){this.$element=t(i),this.options=t.extend({},e.DEFAULTS,n)};e.DEFAULTS={loadingText:"loading..."},e.prototype.setState=function(t){var e="disabled",i=this.$element,n=i.is("input")?"val":"html",o=i.data();t+="Text",o.resetText||i.data("resetText",i[n]()),i[n](o[t]||this.options[t]),setTimeout(function(){"loadingText"==t?i.addClass(e).attr(e,e):i.removeClass(e).removeAttr(e)},0)},e.prototype.toggle=function(){var t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var e=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===e.prop("type")&&t.find(".active").removeClass("active")}this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=function(i){return this.each(function(){var n=t(this),o=n.data("bs.button"),s="object"==typeof i&&i;o||n.data("bs.button",o=new e(this,s)),"toggle"==i?o.toggle():i&&o.setState(i)})},t.fn.button.Constructor=e,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api","[data-toggle^=button]",function(e){var i=t(e.target);i.hasClass("btn")||(i=i.closest(".btn")),i.button("toggle"),e.preventDefault()})}(window.jQuery),+function(t){"use strict";var e=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",t.proxy(this.pause,this)).on("mouseleave",t.proxy(this.cycle,this))};e.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},e.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},e.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},e.prototype.to=function(e){var i=this,n=this.getActiveIndex();return e>this.$items.length-1||0>e?void 0:this.sliding?this.$element.one("slid",function(){i.to(e)}):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",t(this.$items[e]))},e.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition.end&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},e.prototype.next=function(){return this.sliding?void 0:this.slide("next")},e.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},e.prototype.slide=function(e,i){var n=this.$element.find(".item.active"),o=i||n[e](),s=this.interval,a="next"==e?"left":"right",r="next"==e?"first":"last",l=this;if(!o.length){if(!this.options.wrap)return;o=this.$element.find(".item")[r]()}this.sliding=!0,s&&this.pause();var h=t.Event("slide.bs.carousel",{relatedTarget:o[0],direction:a});if(!o.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var e=t(l.$indicators.children()[l.getActiveIndex()]);e&&e.addClass("active")})),t.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(h),h.isDefaultPrevented())return;o.addClass(e),o[0].offsetWidth,n.addClass(a),o.addClass(a),n.one(t.support.transition.end,function(){o.removeClass([e,a].join(" ")).addClass("active"),n.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(h),h.isDefaultPrevented())return;n.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=function(i){return this.each(function(){var n=t(this),o=n.data("bs.carousel"),s=t.extend({},e.DEFAULTS,n.data(),"object"==typeof i&&i),a="string"==typeof i?i:s.slide;o||n.data("bs.carousel",o=new e(this,s)),"number"==typeof i?o.to(i):a?o[a]():s.interval&&o.pause().cycle()})},t.fn.carousel.Constructor=e,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this},t(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(e){var i,n=t(this),o=t(n.attr("data-target")||(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"")),s=t.extend({},o.data(),n.data()),a=n.attr("data-slide-to");a&&(s.interval=!1),o.carousel(s),(a=n.attr("data-slide-to"))&&o.data("bs.carousel").to(a),e.preventDefault()}),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var e=t(this);e.carousel(e.data())})})}(window.jQuery),+function(t){"use strict";var e=function(i,n){this.$element=t(i),this.options=t.extend({},e.DEFAULTS,n),this.transitioning=null,this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};e.DEFAULTS={toggle:!0},e.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},e.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e=t.Event("show.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.$parent&&this.$parent.find("> .panel > .in");if(i&&i.length){var n=i.data("bs.collapse");if(n&&n.transitioning)return;i.collapse("hide"),n||i.data("bs.collapse",null)}var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("in")[o]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return s.call(this);var a=t.camelCase(["scroll",o].join("-"));this.$element.one(t.support.transition.end,t.proxy(s,this)).emulateTransitionEnd(350)[o](this.$element[0][a])}}},e.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return t.support.transition?void this.$element[i](0).one(t.support.transition.end,t.proxy(n,this)).emulateTransitionEnd(350):n.call(this)}}},e.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var i=t.fn.collapse;t.fn.collapse=function(i){return this.each(function(){var n=t(this),o=n.data("bs.collapse"),s=t.extend({},e.DEFAULTS,n.data(),"object"==typeof i&&i);o||n.data("bs.collapse",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.collapse.Constructor=e,t.fn.collapse.noConflict=function(){return t.fn.collapse=i,this},t(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(e){var i,n=t(this),o=n.attr("data-target")||e.preventDefault()||(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""),s=t(o),a=s.data("bs.collapse"),r=a?"toggle":n.data(),l=n.attr("data-parent"),h=l&&t(l);a&&a.transitioning||(h&&h.find('[data-toggle=collapse][data-parent="'+l+'"]').not(n).addClass("collapsed"),n[s.hasClass("in")?"addClass":"removeClass"]("collapsed")),s.collapse(r)})}(window.jQuery),+function(t){"use strict";function e(){t(n).remove(),t(o).each(function(e){var n=i(t(this));n.hasClass("open")&&(n.trigger(e=t.Event("hide.bs.dropdown")),e.isDefaultPrevented()||n.removeClass("open").trigger("hidden.bs.dropdown"))})}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var n=i&&t(i);return n&&n.length?n:e.parent()}var n=".dropdown-backdrop",o="[data-toggle=dropdown]",s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.prototype.toggle=function(n){var o=t(this);if(!o.is(".disabled, :disabled")){var s=i(o),a=s.hasClass("open");if(e(),!a){if("ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t('
').insertAfter(t(this)).on("click",e),s.trigger(n=t.Event("show.bs.dropdown")),n.isDefaultPrevented())return;s.toggleClass("open").trigger("shown.bs.dropdown"),o.focus()}return!1}},s.prototype.keydown=function(e){if(/(38|40|27)/.test(e.keyCode)){var n=t(this);if(e.preventDefault(),e.stopPropagation(),!n.is(".disabled, :disabled")){var s=i(n),a=s.hasClass("open");if(!a||a&&27==e.keyCode)return 27==e.which&&s.find(o).focus(),n.click();var r=t("[role=menu] li:not(.divider):visible a",s);if(r.length){var l=r.index(r.filter(":focus"));38==e.keyCode&&l>0&&l--,40==e.keyCode&&l').appendTo(document.body),this.$element.on("click.dismiss.modal",t.proxy(function(t){t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),n&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;n?this.$backdrop.one(t.support.transition.end,e).emulateTransitionEnd(150):e()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(t.support.transition.end,e).emulateTransitionEnd(150):e()):e&&e()};var i=t.fn.modal;t.fn.modal=function(i,n){return this.each(function(){var o=t(this),s=o.data("bs.modal"),a=t.extend({},e.DEFAULTS,o.data(),"object"==typeof i&&i);s||o.data("bs.modal",s=new e(this,a)),"string"==typeof i?s[i](n):a.show&&s.show(n)})},t.fn.modal.Constructor=e,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(e){var i=t(this),n=i.attr("href"),o=t(i.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),s=o.data("modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},o.data(),i.data());e.preventDefault(),o.modal(s,this).one("hide",function(){i.is(":visible")&&i.focus()})}),t(document).on("show.bs.modal",".modal",function(){t(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){t(document.body).removeClass("modal-open")})}(window.jQuery),+function(t){"use strict";var e=function(t,e){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",t,e)};e.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.prototype.init=function(e,i,n){this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(n);for(var o=this.options.trigger.split(" "),s=o.length;s--;){var a=o[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focus",l="hover"==a?"mouseleave":"blur";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},e.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,n){i[t]!=n&&(e[t]=n)}),e},e.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show()},e.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},e.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(e),e.isDefaultPrevented())return;var i=this.tip();this.setContent(),this.options.animation&&i.addClass("fade");var n="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,o=/\s?auto?\s?/i,s=o.test(n);s&&(n=n.replace(o,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(n),this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element);var a=this.getPosition(),r=i[0].offsetWidth,l=i[0].offsetHeight;if(s){var h=this.$element.parent(),c=n,p=document.documentElement.scrollTop||document.body.scrollTop,f="body"==this.options.container?window.innerWidth:h.outerWidth(),u="body"==this.options.container?window.innerHeight:h.outerHeight(),d="body"==this.options.container?0:h.offset().left;n="bottom"==n&&a.top+a.height+l-p>u?"top":"top"==n&&a.top-p-l<0?"bottom":"right"==n&&a.right+r>f?"left":"left"==n&&a.left-r'}),e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),e.prototype.constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content")[this.options.html?"html":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTitle()||this.getContent()},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},e.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var i=t.fn.popover;t.fn.popover=function(i){return this.each(function(){var n=t(this),o=n.data("bs.popover"),s="object"==typeof i&&i;o||n.data("bs.popover",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(window.jQuery),+function(t){"use strict";function e(i,n){var o,s=t.proxy(this.process,this);this.$element=t(t(i).is("body")?window:i),this.$body=t("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",s),this.options=t.extend({},e.DEFAULTS,n),this.selector=(this.options.target||(o=t(i).attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=t([]),this.targets=t([]),this.activeTarget=null,this.refresh(),this.process()}e.DEFAULTS={offset:10},e.prototype.refresh=function(){var e=this.$element[0]==window?"offset":"position";this.offsets=t([]),this.targets=t([]);var i=this;this.$body.find(this.selector).map(function(){var n=t(this),o=n.data("target")||n.attr("href"),s=/^#\w/.test(o)&&t(o);return s&&s.length&&[[s[e]().top+(!t.isWindow(i.$scrollElement.get(0))&&i.$scrollElement.scrollTop()),o]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){i.offsets.push(this[0]),i.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=i-this.$scrollElement.height(),o=this.offsets,s=this.targets,a=this.activeTarget;if(e>=n)return a!=(t=s.last()[0])&&this.activate(t);for(t=o.length;t--;)a!=s[t]&&e>=o[t]&&(!o[t+1]||e<=o[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,t(this.selector).parents(".active").removeClass("active");var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',n=t(i).parents("li").addClass("active");n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")};var i=t.fn.scrollspy;t.fn.scrollspy=function(i){return this.each(function(){var n=t(this),o=n.data("bs.scrollspy"),s="object"==typeof i&&i;o||n.data("bs.scrollspy",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);e.scrollspy(e.data())})})}(window.jQuery),+function(t){"use strict";var e=function(e){this.element=t(e)};e.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),n=e.attr("data-target");if(n||(n=e.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var o=i.find(".active:last a")[0],s=t.Event("show.bs.tab",{relatedTarget:o});if(e.trigger(s),!s.isDefaultPrevented()){var a=t(n);this.activate(e.parent("li"),i),this.activate(a,a.parent(),function(){e.trigger({type:"shown.bs.tab",relatedTarget:o})})}}},e.prototype.activate=function(e,i,n){function o(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),e.addClass("active"),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active"),n&&n()}var s=i.find("> .active"),a=n&&t.support.transition&&s.hasClass("fade");a?s.one(t.support.transition.end,o).emulateTransitionEnd(150):o(),s.removeClass("in")};var i=t.fn.tab;t.fn.tab=function(i){return this.each(function(){var n=t(this),o=n.data("bs.tab");o||n.data("bs.tab",o=new e(this)),"string"==typeof i&&o[i]()})},t.fn.tab.Constructor=e,t.fn.tab.noConflict=function(){return t.fn.tab=i,this},t(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault(),t(this).tab("show")})}(window.jQuery),+function(t){"use strict";var e=function(i,n){this.options=t.extend({},e.DEFAULTS,n),this.$window=t(window).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(i),this.affixed=this.unpin=null,this.checkPosition()};e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=t(document).height(),n=this.$window.scrollTop(),o=this.$element.offset(),s=this.options.offset,a=s.top,r=s.bottom;"object"!=typeof s&&(r=a=s),"function"==typeof a&&(a=s.top()),"function"==typeof r&&(r=s.bottom());var l=null!=this.unpin&&n+this.unpin<=o.top?!1:null!=r&&o.top+this.$element.height()>=i-r?"bottom":null!=a&&a>=n?"top":!1;this.affixed!==l&&(this.unpin&&this.$element.css("top",""),this.affixed=l,this.unpin="bottom"==l?o.top-n:null,this.$element.removeClass(e.RESET).addClass("affix"+(l?"-"+l:"")),"bottom"==l&&this.$element.offset({top:document.body.offsetHeight-r-this.$element.height()}))}};var i=t.fn.affix;t.fn.affix=function(i){return this.each(function(){var n=t(this),o=n.data("bs.affix"),s="object"==typeof i&&i;o||n.data("bs.affix",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),i=e.data();i.offset=i.offset||{},i.offsetBottom&&(i.offset.bottom=i.offsetBottom),i.offsetTop&&(i.offset.top=i.offsetTop),e.affix(i)})})}(window.jQuery),/*!
+ * bootstrap.js v3.0.0 by @fat and @mdo
+ * Copyright 2013 Twitter Inc.
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+if (!jQuery)throw new Error("Bootstrap requires jQuery");
++function(t) {
+ "use strict";
+ function e() {
+ var t = document.createElement("bootstrap"), e = {WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend"};
+ for (var i in e)if (void 0 !== t.style[i])return{end: e[i]}
+ }
+
+ t.fn.emulateTransitionEnd = function(e) {
+ var i = !1, n = this;
+ t(this).one(t.support.transition.end, function() {
+ i = !0
+ });
+ var o = function() {
+ i || t(n).trigger(t.support.transition.end)
+ };
+ return setTimeout(o, e), this
+ }, t(function() {
+ t.support.transition = e()
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = '[data-dismiss="alert"]', i = function(i) {
+ t(i).on("click", e, this.close)
+ };
+ i.prototype.close = function(e) {
+ function i() {
+ s.trigger("closed.bs.alert").remove()
+ }
+
+ var n = t(this), o = n.attr("data-target");
+ o || (o = n.attr("href"), o = o && o.replace(/.*(?=#[^\s]*$)/, ""));
+ var s = t(o);
+ e && e.preventDefault(), s.length || (s = n.hasClass("alert") ? n : n.parent()), s.trigger(e = t.Event("close.bs.alert")), e.isDefaultPrevented() || (s.removeClass("in"), t.support.transition && s.hasClass("fade") ? s.one(t.support.transition.end, i).emulateTransitionEnd(150) : i())
+ };
+ var n = t.fn.alert;
+ t.fn.alert = function(e) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.alert");
+ o || n.data("bs.alert", o = new i(this)), "string" == typeof e && o[e].call(n)
+ })
+ }, t.fn.alert.Constructor = i, t.fn.alert.noConflict = function() {
+ return t.fn.alert = n, this
+ }, t(document).on("click.bs.alert.data-api", e, i.prototype.close)
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(i, n) {
+ this.$element = t(i), this.options = t.extend({}, e.DEFAULTS, n)
+ };
+ e.DEFAULTS = {loadingText: "loading..."}, e.prototype.setState = function(t) {
+ var e = "disabled", i = this.$element, n = i.is("input") ? "val" : "html", o = i.data();
+ t += "Text", o.resetText || i.data("resetText", i[n]()), i[n](o[t] || this.options[t]), setTimeout(function() {
+ "loadingText" == t ? i.addClass(e).attr(e, e) : i.removeClass(e).removeAttr(e)
+ }, 0)
+ }, e.prototype.toggle = function() {
+ var t = this.$element.closest('[data-toggle="buttons"]');
+ if (t.length) {
+ var e = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change");
+ "radio" === e.prop("type") && t.find(".active").removeClass("active")
+ }
+ this.$element.toggleClass("active")
+ };
+ var i = t.fn.button;
+ t.fn.button = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.button"), s = "object" == typeof i && i;
+ o || n.data("bs.button", o = new e(this, s)), "toggle" == i ? o.toggle() : i && o.setState(i)
+ })
+ }, t.fn.button.Constructor = e, t.fn.button.noConflict = function() {
+ return t.fn.button = i, this
+ }, t(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(e) {
+ var i = t(e.target);
+ i.hasClass("btn") || (i = i.closest(".btn")), i.button("toggle"), e.preventDefault()
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(e, i) {
+ this.$element = t(e), this.$indicators = this.$element.find(".carousel-indicators"), this.options = i, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", t.proxy(this.pause, this)).on("mouseleave", t.proxy(this.cycle, this))
+ };
+ e.DEFAULTS = {interval: 5e3, pause: "hover", wrap: !0}, e.prototype.cycle = function(e) {
+ return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), this
+ }, e.prototype.getActiveIndex = function() {
+ return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active)
+ }, e.prototype.to = function(e) {
+ var i = this, n = this.getActiveIndex();
+ return e > this.$items.length - 1 || 0 > e ? void 0 : this.sliding ? this.$element.one("slid", function() {
+ i.to(e)
+ }) : n == e ? this.pause().cycle() : this.slide(e > n ? "next" : "prev", t(this.$items[e]))
+ }, e.prototype.pause = function(e) {
+ return e || (this.paused = !0), this.$element.find(".next, .prev").length && t.support.transition.end && (this.$element.trigger(t.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
+ }, e.prototype.next = function() {
+ return this.sliding ? void 0 : this.slide("next")
+ }, e.prototype.prev = function() {
+ return this.sliding ? void 0 : this.slide("prev")
+ }, e.prototype.slide = function(e, i) {
+ var n = this.$element.find(".item.active"), o = i || n[e](), s = this.interval, a = "next" == e ? "left" : "right", r = "next" == e ? "first" : "last", l = this;
+ if (!o.length) {
+ if (!this.options.wrap)return;
+ o = this.$element.find(".item")[r]()
+ }
+ this.sliding = !0, s && this.pause();
+ var h = t.Event("slide.bs.carousel", {relatedTarget: o[0], direction: a});
+ if (!o.hasClass("active")) {
+ if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid", function() {
+ var e = t(l.$indicators.children()[l.getActiveIndex()]);
+ e && e.addClass("active")
+ })), t.support.transition && this.$element.hasClass("slide")) {
+ if (this.$element.trigger(h), h.isDefaultPrevented())return;
+ o.addClass(e), o[0].offsetWidth, n.addClass(a), o.addClass(a), n.one(t.support.transition.end,function() {
+ o.removeClass([e, a].join(" ")).addClass("active"), n.removeClass(["active", a].join(" ")), l.sliding = !1, setTimeout(function() {
+ l.$element.trigger("slid")
+ }, 0)
+ }).emulateTransitionEnd(600)
+ } else {
+ if (this.$element.trigger(h), h.isDefaultPrevented())return;
+ n.removeClass("active"), o.addClass("active"), this.sliding = !1, this.$element.trigger("slid")
+ }
+ return s && this.cycle(), this
+ }
+ };
+ var i = t.fn.carousel;
+ t.fn.carousel = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.carousel"), s = t.extend({}, e.DEFAULTS, n.data(), "object" == typeof i && i), a = "string" == typeof i ? i : s.slide;
+ o || n.data("bs.carousel", o = new e(this, s)), "number" == typeof i ? o.to(i) : a ? o[a]() : s.interval && o.pause().cycle()
+ })
+ }, t.fn.carousel.Constructor = e, t.fn.carousel.noConflict = function() {
+ return t.fn.carousel = i, this
+ }, t(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(e) {
+ var i, n = t(this), o = t(n.attr("data-target") || (i = n.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "")), s = t.extend({}, o.data(), n.data()), a = n.attr("data-slide-to");
+ a && (s.interval = !1), o.carousel(s), (a = n.attr("data-slide-to")) && o.data("bs.carousel").to(a), e.preventDefault()
+ }), t(window).on("load", function() {
+ t('[data-ride="carousel"]').each(function() {
+ var e = t(this);
+ e.carousel(e.data())
+ })
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(i, n) {
+ this.$element = t(i), this.options = t.extend({}, e.DEFAULTS, n), this.transitioning = null, this.options.parent && (this.$parent = t(this.options.parent)), this.options.toggle && this.toggle()
+ };
+ e.DEFAULTS = {toggle: !0}, e.prototype.dimension = function() {
+ var t = this.$element.hasClass("width");
+ return t ? "width" : "height"
+ }, e.prototype.show = function() {
+ if (!this.transitioning && !this.$element.hasClass("in")) {
+ var e = t.Event("show.bs.collapse");
+ if (this.$element.trigger(e), !e.isDefaultPrevented()) {
+ var i = this.$parent && this.$parent.find("> .panel > .in");
+ if (i && i.length) {
+ var n = i.data("bs.collapse");
+ if (n && n.transitioning)return;
+ i.collapse("hide"), n || i.data("bs.collapse", null)
+ }
+ var o = this.dimension();
+ this.$element.removeClass("collapse").addClass("collapsing")[o](0), this.transitioning = 1;
+ var s = function() {
+ this.$element.removeClass("collapsing").addClass("in")[o]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
+ };
+ if (!t.support.transition)return s.call(this);
+ var a = t.camelCase(["scroll", o].join("-"));
+ this.$element.one(t.support.transition.end, t.proxy(s, this)).emulateTransitionEnd(350)[o](this.$element[0][a])
+ }
+ }
+ }, e.prototype.hide = function() {
+ if (!this.transitioning && this.$element.hasClass("in")) {
+ var e = t.Event("hide.bs.collapse");
+ if (this.$element.trigger(e), !e.isDefaultPrevented()) {
+ var i = this.dimension();
+ this.$element[i](this.$element[i]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;
+ var n = function() {
+ this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
+ };
+ return t.support.transition ? void this.$element[i](0).one(t.support.transition.end, t.proxy(n, this)).emulateTransitionEnd(350) : n.call(this)
+ }
+ }
+ }, e.prototype.toggle = function() {
+ this[this.$element.hasClass("in") ? "hide" : "show"]()
+ };
+ var i = t.fn.collapse;
+ t.fn.collapse = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.collapse"), s = t.extend({}, e.DEFAULTS, n.data(), "object" == typeof i && i);
+ o || n.data("bs.collapse", o = new e(this, s)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.collapse.Constructor = e, t.fn.collapse.noConflict = function() {
+ return t.fn.collapse = i, this
+ }, t(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(e) {
+ var i, n = t(this), o = n.attr("data-target") || e.preventDefault() || (i = n.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, ""), s = t(o), a = s.data("bs.collapse"), r = a ? "toggle" : n.data(), l = n.attr("data-parent"), h = l && t(l);
+ a && a.transitioning || (h && h.find('[data-toggle=collapse][data-parent="' + l + '"]').not(n).addClass("collapsed"), n[s.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), s.collapse(r)
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ function e() {
+ t(n).remove(), t(o).each(function(e) {
+ var n = i(t(this));
+ n.hasClass("open") && (n.trigger(e = t.Event("hide.bs.dropdown")), e.isDefaultPrevented() || n.removeClass("open").trigger("hidden.bs.dropdown"))
+ })
+ }
+
+ function i(e) {
+ var i = e.attr("data-target");
+ i || (i = e.attr("href"), i = i && /#/.test(i) && i.replace(/.*(?=#[^\s]*$)/, ""));
+ var n = i && t(i);
+ return n && n.length ? n : e.parent()
+ }
+
+ var n = ".dropdown-backdrop", o = "[data-toggle=dropdown]", s = function(e) {
+ t(e).on("click.bs.dropdown", this.toggle)
+ };
+ s.prototype.toggle = function(n) {
+ var o = t(this);
+ if (!o.is(".disabled, :disabled")) {
+ var s = i(o), a = s.hasClass("open");
+ if (e(), !a) {
+ if ("ontouchstart"in document.documentElement && !s.closest(".navbar-nav").length && t('').insertAfter(t(this)).on("click", e), s.trigger(n = t.Event("show.bs.dropdown")), n.isDefaultPrevented())return;
+ s.toggleClass("open").trigger("shown.bs.dropdown"), o.focus()
+ }
+ return!1
+ }
+ }, s.prototype.keydown = function(e) {
+ if (/(38|40|27)/.test(e.keyCode)) {
+ var n = t(this);
+ if (e.preventDefault(), e.stopPropagation(), !n.is(".disabled, :disabled")) {
+ var s = i(n), a = s.hasClass("open");
+ if (!a || a && 27 == e.keyCode)return 27 == e.which && s.find(o).focus(), n.click();
+ var r = t("[role=menu] li:not(.divider):visible a", s);
+ if (r.length) {
+ var l = r.index(r.filter(":focus"));
+ 38 == e.keyCode && l > 0 && l--, 40 == e.keyCode && l < r.length - 1 && l++, ~l || (l = 0), r.eq(l).focus()
+ }
+ }
+ }
+ };
+ var a = t.fn.dropdown;
+ t.fn.dropdown = function(e) {
+ return this.each(function() {
+ var i = t(this), n = i.data("dropdown");
+ n || i.data("dropdown", n = new s(this)), "string" == typeof e && n[e].call(i)
+ })
+ }, t.fn.dropdown.Constructor = s, t.fn.dropdown.noConflict = function() {
+ return t.fn.dropdown = a, this
+ }, t(document).on("click.bs.dropdown.data-api", e).on("click.bs.dropdown.data-api", ".dropdown form",function(t) {
+ t.stopPropagation()
+ }).on("click.bs.dropdown.data-api", o, s.prototype.toggle).on("keydown.bs.dropdown.data-api", o + ", [role=menu]", s.prototype.keydown)
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(e, i) {
+ this.options = i, this.$element = t(e), this.$backdrop = this.isShown = null, this.options.remote && this.$element.load(this.options.remote)
+ };
+ e.DEFAULTS = {backdrop: !0, keyboard: !0, show: !0}, e.prototype.toggle = function(t) {
+ return this[this.isShown ? "hide" : "show"](t)
+ }, e.prototype.show = function(e) {
+ var i = this, n = t.Event("show.bs.modal", {relatedTarget: e});
+ this.$element.trigger(n), this.isShown || n.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', t.proxy(this.hide, this)), this.backdrop(function() {
+ var n = t.support.transition && i.$element.hasClass("fade");
+ i.$element.parent().length || i.$element.appendTo(document.body), i.$element.show(), n && i.$element[0].offsetWidth, i.$element.addClass("in").attr("aria-hidden", !1), i.enforceFocus();
+ var o = t.Event("shown.bs.modal", {relatedTarget: e});
+ n ? i.$element.find(".modal-dialog").one(t.support.transition.end,function() {
+ i.$element.focus().trigger(o)
+ }).emulateTransitionEnd(300) : i.$element.focus().trigger(o)
+ }))
+ }, e.prototype.hide = function(e) {
+ e && e.preventDefault(), e = t.Event("hide.bs.modal"), this.$element.trigger(e), this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), t(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"), t.support.transition && this.$element.hasClass("fade") ? this.$element.one(t.support.transition.end, t.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal())
+ }, e.prototype.enforceFocus = function() {
+ t(document).off("focusin.bs.modal").on("focusin.bs.modal", t.proxy(function(t) {
+ this.$element[0] === t.target || this.$element.has(t.target).length || this.$element.focus()
+ }, this))
+ }, e.prototype.escape = function() {
+ this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", t.proxy(function(t) {
+ 27 == t.which && this.hide()
+ }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
+ }, e.prototype.hideModal = function() {
+ var t = this;
+ this.$element.hide(), this.backdrop(function() {
+ t.removeBackdrop(), t.$element.trigger("hidden.bs.modal")
+ })
+ }, e.prototype.removeBackdrop = function() {
+ this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
+ }, e.prototype.backdrop = function(e) {
+ var i = this.$element.hasClass("fade") ? "fade" : "";
+ if (this.isShown && this.options.backdrop) {
+ var n = t.support.transition && i;
+ if (this.$backdrop = t('').appendTo(document.body), this.$element.on("click.dismiss.modal", t.proxy(function(t) {
+ t.target === t.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this))
+ }, this)), n && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e)return;
+ n ? this.$backdrop.one(t.support.transition.end, e).emulateTransitionEnd(150) : e()
+ } else!this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), t.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(t.support.transition.end, e).emulateTransitionEnd(150) : e()) : e && e()
+ };
+ var i = t.fn.modal;
+ t.fn.modal = function(i, n) {
+ return this.each(function() {
+ var o = t(this), s = o.data("bs.modal"), a = t.extend({}, e.DEFAULTS, o.data(), "object" == typeof i && i);
+ s || o.data("bs.modal", s = new e(this, a)), "string" == typeof i ? s[i](n) : a.show && s.show(n)
+ })
+ }, t.fn.modal.Constructor = e, t.fn.modal.noConflict = function() {
+ return t.fn.modal = i, this
+ }, t(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(e) {
+ var i = t(this), n = i.attr("href"), o = t(i.attr("data-target") || n && n.replace(/.*(?=#[^\s]+$)/, "")), s = o.data("modal") ? "toggle" : t.extend({remote: !/#/.test(n) && n}, o.data(), i.data());
+ e.preventDefault(), o.modal(s, this).one("hide", function() {
+ i.is(":visible") && i.focus()
+ })
+ }), t(document).on("show.bs.modal", ".modal",function() {
+ t(document.body).addClass("modal-open")
+ }).on("hidden.bs.modal", ".modal", function() {
+ t(document.body).removeClass("modal-open")
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(t, e) {
+ this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", t, e)
+ };
+ e.DEFAULTS = {animation: !0, placement: "top", selector: !1, template: '', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1}, e.prototype.init = function(e, i, n) {
+ this.enabled = !0, this.type = e, this.$element = t(i), this.options = this.getOptions(n);
+ for (var o = this.options.trigger.split(" "), s = o.length; s--;) {
+ var a = o[s];
+ if ("click" == a)this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this)); else if ("manual" != a) {
+ var r = "hover" == a ? "mouseenter" : "focus", l = "hover" == a ? "mouseleave" : "blur";
+ this.$element.on(r + "." + this.type, this.options.selector, t.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, t.proxy(this.leave, this))
+ }
+ }
+ this.options.selector ? this._options = t.extend({}, this.options, {trigger: "manual", selector: ""}) : this.fixTitle()
+ }, e.prototype.getDefaults = function() {
+ return e.DEFAULTS
+ }, e.prototype.getOptions = function(e) {
+ return e = t.extend({}, this.getDefaults(), this.$element.data(), e), e.delay && "number" == typeof e.delay && (e.delay = {show: e.delay, hide: e.delay}), e
+ }, e.prototype.getDelegateOptions = function() {
+ var e = {}, i = this.getDefaults();
+ return this._options && t.each(this._options, function(t, n) {
+ i[t] != n && (e[t] = n)
+ }), e
+ }, e.prototype.enter = function(e) {
+ var i = e instanceof this.constructor ? e : t(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
+ return clearTimeout(i.timeout), i.hoverState = "in", i.options.delay && i.options.delay.show ? void(i.timeout = setTimeout(function() {
+ "in" == i.hoverState && i.show()
+ }, i.options.delay.show)) : i.show()
+ }, e.prototype.leave = function(e) {
+ var i = e instanceof this.constructor ? e : t(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
+ return clearTimeout(i.timeout), i.hoverState = "out", i.options.delay && i.options.delay.hide ? void(i.timeout = setTimeout(function() {
+ "out" == i.hoverState && i.hide()
+ }, i.options.delay.hide)) : i.hide()
+ }, e.prototype.show = function() {
+ var e = t.Event("show.bs." + this.type);
+ if (this.hasContent() && this.enabled) {
+ if (this.$element.trigger(e), e.isDefaultPrevented())return;
+ var i = this.tip();
+ this.setContent(), this.options.animation && i.addClass("fade");
+ var n = "function" == typeof this.options.placement ? this.options.placement.call(this, i[0], this.$element[0]) : this.options.placement, o = /\s?auto?\s?/i, s = o.test(n);
+ s && (n = n.replace(o, "") || "top"), i.detach().css({top: 0, left: 0, display: "block"}).addClass(n), this.options.container ? i.appendTo(this.options.container) : i.insertAfter(this.$element);
+ var a = this.getPosition(), r = i[0].offsetWidth, l = i[0].offsetHeight;
+ if (s) {
+ var h = this.$element.parent(), c = n, p = document.documentElement.scrollTop || document.body.scrollTop, f = "body" == this.options.container ? window.innerWidth : h.outerWidth(), u = "body" == this.options.container ? window.innerHeight : h.outerHeight(), d = "body" == this.options.container ? 0 : h.offset().left;
+ n = "bottom" == n && a.top + a.height + l - p > u ? "top" : "top" == n && a.top - p - l < 0 ? "bottom" : "right" == n && a.right + r > f ? "left" : "left" == n && a.left - r < d ? "right" : n, i.removeClass(c).addClass(n)
+ }
+ var v = this.getCalculatedOffset(n, a, r, l);
+ this.applyPlacement(v, n), this.$element.trigger("shown.bs." + this.type)
+ }
+ }, e.prototype.applyPlacement = function(t, e) {
+ var i, n = this.tip(), o = n[0].offsetWidth, s = n[0].offsetHeight, a = parseInt(n.css("margin-top"), 10), r = parseInt(n.css("margin-left"), 10);
+ isNaN(a) && (a = 0), isNaN(r) && (r = 0), t.top = t.top + a, t.left = t.left + r, n.offset(t).addClass("in");
+ var l = n[0].offsetWidth, h = n[0].offsetHeight;
+ if ("top" == e && h != s && (i = !0, t.top = t.top + s - h), /bottom|top/.test(e)) {
+ var c = 0;
+ t.left < 0 && (c = -2 * t.left, t.left = 0, n.offset(t), l = n[0].offsetWidth, h = n[0].offsetHeight), this.replaceArrow(c - o + l, l, "left")
+ } else this.replaceArrow(h - s, h, "top");
+ i && n.offset(t)
+ }, e.prototype.replaceArrow = function(t, e, i) {
+ this.arrow().css(i, t ? 50 * (1 - t / e) + "%" : "")
+ }, e.prototype.setContent = function() {
+ var t = this.tip(), e = this.getTitle();
+ t.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), t.removeClass("fade in top bottom left right")
+ }, e.prototype.hide = function() {
+ function e() {
+ "in" != i.hoverState && n.detach()
+ }
+
+ var i = this, n = this.tip(), o = t.Event("hide.bs." + this.type);
+ return this.$element.trigger(o), o.isDefaultPrevented() ? void 0 : (n.removeClass("in"), t.support.transition && this.$tip.hasClass("fade") ? n.one(t.support.transition.end, e).emulateTransitionEnd(150) : e(), this.$element.trigger("hidden.bs." + this.type), this)
+ }, e.prototype.fixTitle = function() {
+ var t = this.$element;
+ (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "")
+ }, e.prototype.hasContent = function() {
+ return this.getTitle()
+ }, e.prototype.getPosition = function() {
+ var e = this.$element[0];
+ return t.extend({}, "function" == typeof e.getBoundingClientRect ? e.getBoundingClientRect() : {width: e.offsetWidth, height: e.offsetHeight}, this.$element.offset())
+ }, e.prototype.getCalculatedOffset = function(t, e, i, n) {
+ return"bottom" == t ? {top: e.top + e.height, left: e.left + e.width / 2 - i / 2} : "top" == t ? {top: e.top - n, left: e.left + e.width / 2 - i / 2} : "left" == t ? {top: e.top + e.height / 2 - n / 2, left: e.left - i} : {top: e.top + e.height / 2 - n / 2, left: e.left + e.width}
+ }, e.prototype.getTitle = function() {
+ var t, e = this.$element, i = this.options;
+ return t = e.attr("data-original-title") || ("function" == typeof i.title ? i.title.call(e[0]) : i.title)
+ }, e.prototype.tip = function() {
+ return this.$tip = this.$tip || t(this.options.template)
+ }, e.prototype.arrow = function() {
+ return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
+ }, e.prototype.validate = function() {
+ this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
+ }, e.prototype.enable = function() {
+ this.enabled = !0
+ }, e.prototype.disable = function() {
+ this.enabled = !1
+ }, e.prototype.toggleEnabled = function() {
+ this.enabled = !this.enabled
+ }, e.prototype.toggle = function(e) {
+ var i = e ? t(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
+ i.tip().hasClass("in") ? i.leave(i) : i.enter(i)
+ }, e.prototype.destroy = function() {
+ this.hide().$element.off("." + this.type).removeData("bs." + this.type)
+ };
+ var i = t.fn.tooltip;
+ t.fn.tooltip = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.tooltip"), s = "object" == typeof i && i;
+ o || n.data("bs.tooltip", o = new e(this, s)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.tooltip.Constructor = e, t.fn.tooltip.noConflict = function() {
+ return t.fn.tooltip = i, this
+ }
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(t, e) {
+ this.init("popover", t, e)
+ };
+ if (!t.fn.tooltip)throw new Error("Popover requires tooltip.js");
+ e.DEFAULTS = t.extend({}, t.fn.tooltip.Constructor.DEFAULTS, {placement: "right", trigger: "click", content: "", template: ''}), e.prototype = t.extend({}, t.fn.tooltip.Constructor.prototype), e.prototype.constructor = e, e.prototype.getDefaults = function() {
+ return e.DEFAULTS
+ }, e.prototype.setContent = function() {
+ var t = this.tip(), e = this.getTitle(), i = this.getContent();
+ t.find(".popover-title")[this.options.html ? "html" : "text"](e), t.find(".popover-content")[this.options.html ? "html" : "text"](i), t.removeClass("fade top bottom left right in"), t.find(".popover-title").html() || t.find(".popover-title").hide()
+ }, e.prototype.hasContent = function() {
+ return this.getTitle() || this.getContent()
+ }, e.prototype.getContent = function() {
+ var t = this.$element, e = this.options;
+ return t.attr("data-content") || ("function" == typeof e.content ? e.content.call(t[0]) : e.content)
+ }, e.prototype.arrow = function() {
+ return this.$arrow = this.$arrow || this.tip().find(".arrow")
+ }, e.prototype.tip = function() {
+ return this.$tip || (this.$tip = t(this.options.template)), this.$tip
+ };
+ var i = t.fn.popover;
+ t.fn.popover = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.popover"), s = "object" == typeof i && i;
+ o || n.data("bs.popover", o = new e(this, s)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.popover.Constructor = e, t.fn.popover.noConflict = function() {
+ return t.fn.popover = i, this
+ }
+}(window.jQuery), +function(t) {
+ "use strict";
+ function e(i, n) {
+ var o, s = t.proxy(this.process, this);
+ this.$element = t(t(i).is("body") ? window : i), this.$body = t("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", s), this.options = t.extend({}, e.DEFAULTS, n), this.selector = (this.options.target || (o = t(i).attr("href")) && o.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = t([]), this.targets = t([]), this.activeTarget = null, this.refresh(), this.process()
+ }
+
+ e.DEFAULTS = {offset: 10}, e.prototype.refresh = function() {
+ var e = this.$element[0] == window ? "offset" : "position";
+ this.offsets = t([]), this.targets = t([]);
+ var i = this;
+ this.$body.find(this.selector).map(function() {
+ var n = t(this), o = n.data("target") || n.attr("href"), s = /^#\w/.test(o) && t(o);
+ return s && s.length && [
+ [s[e]().top + (!t.isWindow(i.$scrollElement.get(0)) && i.$scrollElement.scrollTop()), o]
+ ] || null
+ }).sort(function(t, e) {
+ return t[0] - e[0]
+ }).each(function() {
+ i.offsets.push(this[0]), i.targets.push(this[1])
+ })
+ }, e.prototype.process = function() {
+ var t, e = this.$scrollElement.scrollTop() + this.options.offset, i = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, n = i - this.$scrollElement.height(), o = this.offsets, s = this.targets, a = this.activeTarget;
+ if (e >= n)return a != (t = s.last()[0]) && this.activate(t);
+ for (t = o.length; t--;)a != s[t] && e >= o[t] && (!o[t + 1] || e <= o[t + 1]) && this.activate(s[t])
+ }, e.prototype.activate = function(e) {
+ this.activeTarget = e, t(this.selector).parents(".active").removeClass("active");
+ var i = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]', n = t(i).parents("li").addClass("active");
+ n.parent(".dropdown-menu").length && (n = n.closest("li.dropdown").addClass("active")), n.trigger("activate")
+ };
+ var i = t.fn.scrollspy;
+ t.fn.scrollspy = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.scrollspy"), s = "object" == typeof i && i;
+ o || n.data("bs.scrollspy", o = new e(this, s)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.scrollspy.Constructor = e, t.fn.scrollspy.noConflict = function() {
+ return t.fn.scrollspy = i, this
+ }, t(window).on("load", function() {
+ t('[data-spy="scroll"]').each(function() {
+ var e = t(this);
+ e.scrollspy(e.data())
+ })
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(e) {
+ this.element = t(e)
+ };
+ e.prototype.show = function() {
+ var e = this.element, i = e.closest("ul:not(.dropdown-menu)"), n = e.attr("data-target");
+ if (n || (n = e.attr("href"), n = n && n.replace(/.*(?=#[^\s]*$)/, "")), !e.parent("li").hasClass("active")) {
+ var o = i.find(".active:last a")[0], s = t.Event("show.bs.tab", {relatedTarget: o});
+ if (e.trigger(s), !s.isDefaultPrevented()) {
+ var a = t(n);
+ this.activate(e.parent("li"), i), this.activate(a, a.parent(), function() {
+ e.trigger({type: "shown.bs.tab", relatedTarget: o})
+ })
+ }
+ }
+ }, e.prototype.activate = function(e, i, n) {
+ function o() {
+ s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), e.addClass("active"), a ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"), e.parent(".dropdown-menu") && e.closest("li.dropdown").addClass("active"), n && n()
+ }
+
+ var s = i.find("> .active"), a = n && t.support.transition && s.hasClass("fade");
+ a ? s.one(t.support.transition.end, o).emulateTransitionEnd(150) : o(), s.removeClass("in")
+ };
+ var i = t.fn.tab;
+ t.fn.tab = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.tab");
+ o || n.data("bs.tab", o = new e(this)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.tab.Constructor = e, t.fn.tab.noConflict = function() {
+ return t.fn.tab = i, this
+ }, t(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
+ e.preventDefault(), t(this).tab("show")
+ })
+}(window.jQuery), +function(t) {
+ "use strict";
+ var e = function(i, n) {
+ this.options = t.extend({}, e.DEFAULTS, n), this.$window = t(window).on("scroll.bs.affix.data-api", t.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", t.proxy(this.checkPositionWithEventLoop, this)), this.$element = t(i), this.affixed = this.unpin = null, this.checkPosition()
+ };
+ e.RESET = "affix affix-top affix-bottom", e.DEFAULTS = {offset: 0}, e.prototype.checkPositionWithEventLoop = function() {
+ setTimeout(t.proxy(this.checkPosition, this), 1)
+ }, e.prototype.checkPosition = function() {
+ if (this.$element.is(":visible")) {
+ var i = t(document).height(), n = this.$window.scrollTop(), o = this.$element.offset(), s = this.options.offset, a = s.top, r = s.bottom;
+ "object" != typeof s && (r = a = s), "function" == typeof a && (a = s.top()), "function" == typeof r && (r = s.bottom());
+ var l = null != this.unpin && n + this.unpin <= o.top ? !1 : null != r && o.top + this.$element.height() >= i - r ? "bottom" : null != a && a >= n ? "top" : !1;
+ this.affixed !== l && (this.unpin && this.$element.css("top", ""), this.affixed = l, this.unpin = "bottom" == l ? o.top - n : null, this.$element.removeClass(e.RESET).addClass("affix" + (l ? "-" + l : "")), "bottom" == l && this.$element.offset({top: document.body.offsetHeight - r - this.$element.height()}))
+ }
+ };
+ var i = t.fn.affix;
+ t.fn.affix = function(i) {
+ return this.each(function() {
+ var n = t(this), o = n.data("bs.affix"), s = "object" == typeof i && i;
+ o || n.data("bs.affix", o = new e(this, s)), "string" == typeof i && o[i]()
+ })
+ }, t.fn.affix.Constructor = e, t.fn.affix.noConflict = function() {
+ return t.fn.affix = i, this
+ }, t(window).on("load", function() {
+ t('[data-spy="affix"]').each(function() {
+ var e = t(this), i = e.data();
+ i.offset = i.offset || {}, i.offsetBottom && (i.offset.bottom = i.offsetBottom), i.offsetTop && (i.offset.top = i.offsetTop), e.affix(i)
+ })
+ })
+}(window.jQuery), /*!
* mustache.js - Logic-less {{mustache}} templates with JavaScript
* http://github.com/janl/mustache.js
*/
-function(t,e){if("object"==typeof exports&&exports)e(exports);else{var i={};e(i),"function"==typeof define&&define.amd?define(i):t.Mustache=i}}(this,function(t){function e(t,e){return b.call(t,e)}function i(t){return!e(v,t)}function n(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function o(t){return String(t).replace(/[&<>"'\/]/g,function(t){return C[t]})}function s(t){this.string=t,this.tail=t,this.pos=0}function a(t,e){this.view=t||{},this.parent=e,this._cache={}}function r(){this.clearCache()}function l(e,i,n,o){for(var s,a,r,h="",c=0,p=e.length;p>c;++c)switch(s=e[c],a=s[1],s[0]){case"#":if(r=n.lookup(a),"object"==typeof r)if($(r))for(var f=0,u=r.length;u>f;++f)h+=l(s[4],i,n.push(r[f]),o);else r&&(h+=l(s[4],i,n.push(r),o));else if("function"==typeof r){var d=null==o?null:o.slice(s[3],s[5]);r=r.call(n.view,d,function(t){return i.render(t,n)}),null!=r&&(h+=r)}else r&&(h+=l(s[4],i,n,o));break;case"^":r=n.lookup(a),(!r||$(r)&&0===r.length)&&(h+=l(s[4],i,n,o));break;case">":r=i.getPartial(a),"function"==typeof r&&(h+=r(n));break;case"&":r=n.lookup(a),null!=r&&(h+=r);break;case"name":r=n.lookup(a),null!=r&&(h+=t.escape(r));break;case"text":h+=a}return h}function h(t){for(var e,i=[],n=i,o=[],s=0,a=t.length;a>s;++s)switch(e=t[s],e[0]){case"#":case"^":o.push(e),n.push(e),n=e[4]=[];break;case"/":var r=o.pop();r[5]=e[2],n=o.length>0?o[o.length-1][4]:i;break;default:n.push(e)}return i}function c(t){for(var e,i,n=[],o=0,s=t.length;s>o;++o)e=t[o],e&&("text"===e[0]&&i&&"text"===i[0]?(i[1]+=e[1],i[3]=e[3]):(i=e,n.push(e)));return n}function p(t){return[new RegExp(n(t[0])+"\\s*"),new RegExp("\\s*"+n(t[1]))]}function f(e,o){function a(){if(T&&!E)for(;x.length;)delete k[x.pop()];else x=[];T=!1,E=!1}if(e=e||"",o=o||t.tags,"string"==typeof o&&(o=o.split(d)),2!==o.length)throw new Error("Invalid tags: "+o.join(", "));for(var r,l,f,v,b,w=p(o),$=new s(e),C=[],k=[],x=[],T=!1,E=!1;!$.eos();){if(r=$.pos,f=$.scanUntil(w[0]))for(var D=0,S=f.length;S>D;++D)v=f.charAt(D),i(v)?x.push(k.length):E=!0,k.push(["text",v,r,r+1]),r+=1,"\n"==v&&a();if(!$.scan(w[0]))break;if(T=!0,l=$.scan(y)||"name",$.scan(u),"="===l?(f=$.scanUntil(m),$.scan(m),$.scanUntil(w[1])):"{"===l?(f=$.scanUntil(new RegExp("\\s*"+n("}"+o[1]))),$.scan(g),$.scanUntil(w[1]),l="&"):f=$.scanUntil(w[1]),!$.scan(w[1]))throw new Error("Unclosed tag at "+$.pos);if(b=[l,f,r,$.pos],k.push(b),"#"===l||"^"===l)C.push(b);else if("/"===l){if(0===C.length)throw new Error('Unopened section "'+f+'" at '+r);var j=C.pop();if(j[1]!==f)throw new Error('Unclosed section "'+j[1]+'" at '+r)}else if("name"===l||"{"===l||"&"===l)E=!0;else if("="===l){if(o=f.split(d),2!==o.length)throw new Error("Invalid tags at "+r+": "+o.join(", "));w=p(o)}}var j=C.pop();if(j)throw new Error('Unclosed section "'+j[1]+'" at '+$.pos);return k=c(k),h(k)}var u=/\s*/,d=/\s+/,v=/\S/,m=/\s*=/,g=/\s*\}/,y=/#|\^|\/|>|\{|&|=|!/,b=RegExp.prototype.test,w=Object.prototype.toString,$=Array.isArray||function(t){return"[object Array]"===w.call(t)},C={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};s.prototype.eos=function(){return""===this.tail},s.prototype.scan=function(t){var e=this.tail.match(t);return e&&0===e.index?(this.tail=this.tail.substring(e[0].length),this.pos+=e[0].length,e[0]):""},s.prototype.scanUntil=function(t){var e,i=this.tail.search(t);switch(i){case-1:e=this.tail,this.pos+=this.tail.length,this.tail="";break;case 0:e="";break;default:e=this.tail.substring(0,i),this.tail=this.tail.substring(i),this.pos+=i}return e},a.make=function(t){return t instanceof a?t:new a(t)},a.prototype.push=function(t){return new a(t,this)},a.prototype.lookup=function(t){var e=this._cache[t];if(!e){if("."==t)e=this.view;else for(var i=this;i;){if(t.indexOf(".")>0){e=i.view;for(var n=t.split("."),o=0;e&&o ':''),s}function o(){var e,o="",s=t("#video").is(":checked"),a=t("#youtubeAutoplay").is(":checked"),r=t("#youtubeREL").is(":checked"),l=t("#youtubeHD").is(":checked"),h=t("#youtubeWidth").val(),c=t("#youtubeHeight").val(),p=i(t("#youtubeID").val(),s);return a&&(o+="&autoplay=1"),r&&(o+="&rel=0"),l&&(o+="&hd=1"),p&&(e=n(s,h,c,p+(s?"":o))),e}function s(){t("#preview").html(n(!0,420,315,i(t("#youtubeID").val())))}function a(t){clearTimeout(h),h=setTimeout(s,t||1e3)}function r(){var t=o();t&&parent.tinymce.activeEditor.insertContent(t),parent.tinymce.activeEditor.windowManager.close()}function l(){t("#preview").length&&t("#youtubeID").keypress(function(){a()}).change(function(){a(100)})}var h;t(function(){var e={youtubeurl:parent.tinymce.util.I18n.translate("Youtube URL"),youtubeID:parent.tinymce.util.I18n.translate("Youtube ID"),youtubeWidth:parent.tinymce.util.I18n.translate("width"),youtubeHeight:parent.tinymce.util.I18n.translate("height"),youtubeAutoplay:parent.tinymce.util.I18n.translate("autoplay"),youtubeHD:parent.tinymce.util.I18n.translate("HD video"),youtubeREL:parent.tinymce.util.I18n.translate("Related video")};t.get("view/forms.html",function(i){t("#template-container").append(Mustache.render(i,e)),l(),t("#insert-btn").on("click",r)})})}(jQuery);
\ No newline at end of file
+ function(t, e) {
+ if ("object" == typeof exports && exports)e(exports); else {
+ var i = {};
+ e(i), "function" == typeof define && define.amd ? define(i) : t.Mustache = i
+ }
+ }(this, function(t) {
+ function e(t, e) {
+ return b.call(t, e)
+ }
+
+ function i(t) {
+ return!e(v, t)
+ }
+
+ function n(t) {
+ return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
+ }
+
+ function o(t) {
+ return String(t).replace(/[&<>"'\/]/g, function(t) {
+ return C[t]
+ })
+ }
+
+ function s(t) {
+ this.string = t, this.tail = t, this.pos = 0
+ }
+
+ function a(t, e) {
+ this.view = t || {}, this.parent = e, this._cache = {}
+ }
+
+ function r() {
+ this.clearCache()
+ }
+
+ function l(e, i, n, o) {
+ for (var s, a, r, h = "", c = 0, p = e.length; p > c; ++c)switch (s = e[c], a = s[1], s[0]) {
+ case"#":
+ if (r = n.lookup(a), "object" == typeof r)if ($(r))for (var f = 0, u = r.length; u > f; ++f)h += l(s[4], i, n.push(r[f]), o); else r && (h += l(s[4], i, n.push(r), o)); else if ("function" == typeof r) {
+ var d = null == o ? null : o.slice(s[3], s[5]);
+ r = r.call(n.view, d, function(t) {
+ return i.render(t, n)
+ }), null != r && (h += r)
+ } else r && (h += l(s[4], i, n, o));
+ break;
+ case"^":
+ r = n.lookup(a), (!r || $(r) && 0 === r.length) && (h += l(s[4], i, n, o));
+ break;
+ case">":
+ r = i.getPartial(a), "function" == typeof r && (h += r(n));
+ break;
+ case"&":
+ r = n.lookup(a), null != r && (h += r);
+ break;
+ case"name":
+ r = n.lookup(a), null != r && (h += t.escape(r));
+ break;
+ case"text":
+ h += a
+ }
+ return h
+ }
+
+ function h(t) {
+ for (var e, i = [], n = i, o = [], s = 0, a = t.length; a > s; ++s)switch (e = t[s], e[0]) {
+ case"#":
+ case"^":
+ o.push(e), n.push(e), n = e[4] = [];
+ break;
+ case"/":
+ var r = o.pop();
+ r[5] = e[2], n = o.length > 0 ? o[o.length - 1][4] : i;
+ break;
+ default:
+ n.push(e)
+ }
+ return i
+ }
+
+ function c(t) {
+ for (var e, i, n = [], o = 0, s = t.length; s > o; ++o)e = t[o], e && ("text" === e[0] && i && "text" === i[0] ? (i[1] += e[1], i[3] = e[3]) : (i = e, n.push(e)));
+ return n
+ }
+
+ function p(t) {
+ return[new RegExp(n(t[0]) + "\\s*"), new RegExp("\\s*" + n(t[1]))]
+ }
+
+ function f(e, o) {
+ function a() {
+ if (T && !E)for (; x.length;)delete k[x.pop()]; else x = [];
+ T = !1, E = !1
+ }
+
+ if (e = e || "", o = o || t.tags, "string" == typeof o && (o = o.split(d)), 2 !== o.length)throw new Error("Invalid tags: " + o.join(", "));
+ for (var r, l, f, v, b, w = p(o), $ = new s(e), C = [], k = [], x = [], T = !1, E = !1; !$.eos();) {
+ if (r = $.pos, f = $.scanUntil(w[0]))for (var D = 0, S = f.length; S > D; ++D)v = f.charAt(D), i(v) ? x.push(k.length) : E = !0, k.push(["text", v, r, r + 1]), r += 1, "\n" == v && a();
+ if (!$.scan(w[0]))break;
+ if (T = !0, l = $.scan(y) || "name", $.scan(u), "=" === l ? (f = $.scanUntil(m), $.scan(m), $.scanUntil(w[1])) : "{" === l ? (f = $.scanUntil(new RegExp("\\s*" + n("}" + o[1]))), $.scan(g), $.scanUntil(w[1]), l = "&") : f = $.scanUntil(w[1]), !$.scan(w[1]))throw new Error("Unclosed tag at " + $.pos);
+ if (b = [l, f, r, $.pos], k.push(b), "#" === l || "^" === l)C.push(b); else if ("/" === l) {
+ if (0 === C.length)throw new Error('Unopened section "' + f + '" at ' + r);
+ var j = C.pop();
+ if (j[1] !== f)throw new Error('Unclosed section "' + j[1] + '" at ' + r)
+ } else if ("name" === l || "{" === l || "&" === l)E = !0; else if ("=" === l) {
+ if (o = f.split(d), 2 !== o.length)throw new Error("Invalid tags at " + r + ": " + o.join(", "));
+ w = p(o)
+ }
+ }
+ var j = C.pop();
+ if (j)throw new Error('Unclosed section "' + j[1] + '" at ' + $.pos);
+ return k = c(k), h(k)
+ }
+
+ var u = /\s*/, d = /\s+/, v = /\S/, m = /\s*=/, g = /\s*\}/, y = /#|\^|\/|>|\{|&|=|!/, b = RegExp.prototype.test, w = Object.prototype.toString, $ = Array.isArray || function(t) {
+ return"[object Array]" === w.call(t)
+ }, C = {"&": "&", "<": "<", ">": ">", '"': """, "'": "'", "/": "/"};
+ s.prototype.eos = function() {
+ return"" === this.tail
+ }, s.prototype.scan = function(t) {
+ var e = this.tail.match(t);
+ return e && 0 === e.index ? (this.tail = this.tail.substring(e[0].length), this.pos += e[0].length, e[0]) : ""
+ }, s.prototype.scanUntil = function(t) {
+ var e, i = this.tail.search(t);
+ switch (i) {
+ case-1:
+ e = this.tail, this.pos += this.tail.length, this.tail = "";
+ break;
+ case 0:
+ e = "";
+ break;
+ default:
+ e = this.tail.substring(0, i), this.tail = this.tail.substring(i), this.pos += i
+ }
+ return e
+ }, a.make = function(t) {
+ return t instanceof a ? t : new a(t)
+ }, a.prototype.push = function(t) {
+ return new a(t, this)
+ }, a.prototype.lookup = function(t) {
+ var e = this._cache[t];
+ if (!e) {
+ if ("." == t)e = this.view; else for (var i = this; i;) {
+ if (t.indexOf(".") > 0) {
+ e = i.view;
+ for (var n = t.split("."), o = 0; e && o < n.length;)e = e[n[o++]]
+ } else e = i.view[t];
+ if (null != e)break;
+ i = i.parent
+ }
+ this._cache[t] = e
+ }
+ return"function" == typeof e && (e = e.call(this.view)), e
+ }, r.prototype.clearCache = function() {
+ this._cache = {}, this._partialCache = {}
+ }, r.prototype.compile = function(e, i) {
+ var n = this._cache[e];
+ if (!n) {
+ var o = t.parse(e, i);
+ n = this._cache[e] = this.compileTokens(o, e)
+ }
+ return n
+ }, r.prototype.compilePartial = function(t, e, i) {
+ var n = this.compile(e, i);
+ return this._partialCache[t] = n, n
+ }, r.prototype.getPartial = function(t) {
+ return t in this._partialCache || !this._loadPartial || this.compilePartial(t, this._loadPartial(t)), this._partialCache[t]
+ }, r.prototype.compileTokens = function(t, e) {
+ var i = this;
+ return function(n, o) {
+ if (o)if ("function" == typeof o)i._loadPartial = o; else for (var s in o)i.compilePartial(s, o[s]);
+ return l(t, i, a.make(n), e)
+ }
+ }, r.prototype.render = function(t, e, i) {
+ return this.compile(t)(e, i)
+ }, t.name = "mustache.js", t.version = "0.7.2", t.tags = ["{{", "}}"], t.Scanner = s, t.Context = a, t.Writer = r, t.parse = f, t.escape = o;
+ var k = new r;
+ t.clearCache = function() {
+ return k.clearCache()
+ }, t.compile = function(t, e) {
+ return k.compile(t, e)
+ }, t.compilePartial = function(t, e, i) {
+ return k.compilePartial(t, e, i)
+ }, t.compileTokens = function(t, e) {
+ return k.compileTokens(t, e)
+ }, t.render = function(t, e, i) {
+ return k.render(t, e, i)
+ }, t.to_html = function(e, i, n, o) {
+ var s = t.render(e, i, n);
+ return"function" != typeof o ? s : void o(s)
+ }
+ }), function(t) {
+ function e(t) {
+ var e = t.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);
+ return e && 11 === e[2].length ? e[2] : !1
+ }
+
+ function i(t, i) {
+ var n = e(t);
+ return t && n && (t = "https://www.youtube.com/" + (i ? "embed/" : "v/") + e(t)), t
+ }
+
+ function n(t, e, i, n) {
+ var o, s;
+ return n && (o = 'width="' + e + '" height="' + i + '"', s = t ? '' : ''), s
+ }
+
+ function o() {
+ var e, o = "", s = t("#video").is(":checked"), a = t("#youtubeAutoplay").is(":checked"), r = t("#youtubeREL").is(":checked"), l = t("#youtubeHD").is(":checked"), h = t("#youtubeWidth").val(), c = t("#youtubeHeight").val(), p = i(t("#youtubeID").val(), s);
+ return a && (o += "&autoplay=1"), r && (o += "&rel=0"), l && (o += "&hd=1"), p && (e = n(s, h, c, p + (s ? "" : o))), e
+ }
+
+ function s() {
+ t("#preview").html(n(!0, 420, 315, i(t("#youtubeID").val())))
+ }
+
+ function a(t) {
+ clearTimeout(h), h = setTimeout(s, t || 1e3)
+ }
+
+ function r() {
+ var t = o();
+ t && parent.tinymce.activeEditor.insertContent(t), parent.tinymce.activeEditor.windowManager.close()
+ }
+
+ function l() {
+ t("#preview").length && t("#youtubeID").keypress(function() {
+ a()
+ }).change(function() {
+ a(100)
+ })
+ }
+
+ var h;
+ t(function() {
+ var e = {youtubeurl: parent.tinymce.util.I18n.translate("Youtube URL"), youtubeID: parent.tinymce.util.I18n.translate("Youtube ID"), youtubeWidth: parent.tinymce.util.I18n.translate("width"), youtubeHeight: parent.tinymce.util.I18n.translate("height"), youtubeAutoplay: parent.tinymce.util.I18n.translate("autoplay"), youtubeHD: parent.tinymce.util.I18n.translate("HD video"), youtubeREL: parent.tinymce.util.I18n.translate("Related video"), HTML5: parent.tinymce.util.I18n.translate("HTML5"), Insert: parent.tinymce.util.I18n.translate("Insert")};
+ t.get("view/forms.html", function(i) {
+ t("#template-container").append(Mustache.render(i, e)), l(), t("#insert-btn").on("click", r)
+ })
+ })
+}(jQuery);
\ No newline at end of file
diff --git a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js
index 21e7f4efd..2237682b3 100644
--- a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js
+++ b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js
@@ -6,5 +6,7 @@ tinymce.addI18n('en',{
'height' : 'Height',
'autoplay' : 'Autoplay',
'Related video' : 'Related video',
- 'HD video' : 'Watch in HD'
+ 'HD video' : 'Watch in HD',
+ 'Insert' : 'Insert',
+ 'HTML5' : 'Force HTML5'
});
\ No newline at end of file