Files
Batflat/inc/jscripts/lightbox/lightbox.min.js
2018-03-12 13:23:44 +01:00

2 lines
6.6 KiB
JavaScript

/* https://github.com/bootstrap-plus/bootstrap-media-lightbox */
(function(b){var a=function(c,d){this.init(c,d)};a.DEFAULTS={gallery:true,caption:true,fontSet:"fa"};a.prototype.getOptions=function(c,d){d=b.extend({},a.DEFAULTS,c.data(),d);if(d.fontSet===undefined){d.fontSet=this.getFontSet()}return d};a.prototype.init=function(h,e){var g=this;this.options=this.getOptions(h,e);if(b("#bootstrap-media-lightbox").length==0){if(this.options.fontSet==="fa"){var d='<div id="bootstrap-media-lightbox-close"><span class="fa-stack fa-lg"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-times fa-stack-1x fa-inverse" data-dismiss="modal" aria-hidden="true"></i></span></div>';var f='<i class="fa fa-chevron-left"></i>';var c='<i class="fa fa-chevron-right"></i>'}else{var d='<div id="bootstrap-media-lightbox-close"><i class="glyphicon glyphicon-remove-circle" data-dismiss="modal" aria-hidden="true"></i></div>';var f='<i class="glyphicon glyphicon-chevron-left"></i>';var c='<i class="glyphicon glyphicon-chevron-right"></i>'}b(document.body).append('<div class="modal fade" id="bootstrap-media-lightbox" tabindex="-1" role="dialog" aria-labelledby="bootstrap-media-lightbox-label" aria-hidden="true">'+d+'<div id="bootstrap-media-lightbox-content-container" data-dismiss="modal"></div><div id="bootstrap-media-lightbox-backward">'+f+'</div><div id="bootstrap-media-lightbox-forward">'+c+'</div><div id="bootstrap-media-lightbox-caption-container"><div id="bootstrap-media-lightbox-caption"></div></div></div>')}b(h).each(function(i){b(this).on("click",function(j){j.preventDefault();g.updatePictureInLightbox(b(this),h,i);b("#bootstrap-media-lightbox").modal("show")})})};a.prototype.updatePictureInLightbox=function(f,i,d){var e=this;if(this.options.gallery===false||i.size()<2){b("#bootstrap-media-lightbox-backward").hide();b("#bootstrap-media-lightbox-forward").hide()}else{if(d==0){b("#bootstrap-media-lightbox-backward").hide();b("#bootstrap-media-lightbox-forward").show()}else{if(d==i.size()-1){b("#bootstrap-media-lightbox-backward").show();b("#bootstrap-media-lightbox-forward").hide()}else{b("#bootstrap-media-lightbox-backward").show();b("#bootstrap-media-lightbox-forward").show()}}}var g=f.attr("href");var c=["png","jpg","jpeg","bmp"];var h=g.split(".").pop().toLowerCase();if(f.data("target")!==undefined){}if(b.inArray(h,c)>-1){this.addImage(g)}else{if(g.substr(0,22)=="http://www.youtube.com"){this.addYoutubeVideo(g)}else{if(g.substr(0,16)=="http://vimeo.com"){this.addVimeoVideo(g)}else{if(g.substr(0,4)=="http"){this.addIframe(g)}}}}this.addCaption(f);b("#bootstrap-media-lightbox-forward").unbind("click");b("#bootstrap-media-lightbox-forward").click(function(){e.updatePictureInLightbox(i.eq(d+1),i,d+1)});b("#bootstrap-media-lightbox-backward").unbind("click");b("#bootstrap-media-lightbox-backward").click(function(){e.updatePictureInLightbox(i.eq(d-1),i,d-1)});b("#bootstrap-media-lightbox-close").click(function(){b("#bootstrap-media-lightbox-iframe").attr("src","")})};a.prototype.addImage=function(e){var d=this;var c=new Image();c.onload=function(){if(d.options.width===undefined&&d.options.height===undefined){d.contentWidth=c.width;d.contentHeight=c.height}else{if(d.options.width===undefined){d.contentWidth=d.options.height/c.height*c.width;d.contentHeight=d.options.height}else{if(d.options.height===undefined){d.contentHeight=d.options.width/c.width*c.height;d.contentWidth=d.options.width}}}d.validateSize();var f=b("#bootstrap-media-lightbox-content-container");f.html('<img width="'+d.contentWidth+'" height="'+d.contentHeight+'" src="'+e+'" />');d.setMargins(f)};c.src=e};a.prototype.addIframe=function(d){if(this.options.width===undefined&&this.options.height===undefined){this.contentWidth=420;this.contentHeight=315}else{if(this.options.width===undefined){this.contentWidth=420/(315/this.options.height);this.contentHeight=this.options.height}else{if(this.options.height===undefined){this.contentHeight=315/(420/this.options.width);this.contentWidth=this.options.width}}}var e=b("#bootstrap-media-lightbox-content-container");var c='<iframe id="bootstrap-media-lightbox-iframe" style="background-color: white" width="'+this.contentWidth+'" height="'+this.contentHeight+'" src="'+d+'" frameborder="0" allowfullscreen></iframe>';this.setMargins(e);e.html(c)};a.prototype.addYoutubeVideo=function(e){if(this.options.width===undefined&&this.options.height===undefined){this.contentWidth=420;this.contentHeight=315}else{if(this.options.width===undefined){this.contentWidth=420/(315/this.options.height);this.contentHeight=this.options.height}else{if(this.options.height===undefined){this.contentHeight=315/(420/this.options.width);this.contentWidth=this.options.width}}}this.validateSize();var f=b("#bootstrap-media-lightbox-content-container");var d=e.substr(31);var c='<iframe id="bootstrap-media-lightbox-iframe" width="'+this.contentWidth+'" height="'+this.contentHeight+'" src="http://www.youtube-nocookie.com/embed/'+d+'" frameborder="0" allowfullscreen></iframe>';f.html(c);this.setMargins(f)};a.prototype.addVimeoVideo=function(e){if(this.options.width===undefined&&this.options.height===undefined){this.contentWidth=420;this.contentHeight=315}else{if(this.options.width===undefined){this.contentWidth=420/(315/this.options.height);this.contentHeight=this.options.height}else{if(this.options.height===undefined){this.contentHeight=315/(420/this.options.width);this.contentWidth=this.options.width}}}this.validateSize();var f=b("#bootstrap-media-lightbox-content-container");var d=e.substr(17);var c='<iframe id="bootstrap-media-lightbox-iframe" width="'+this.contentWidth+'" height="'+this.contentHeight+'" src="http://player.vimeo.com/video/'+d+'" frameborder="0" allowfullscreen></iframe>';f.html(c);this.setMargins(f)};a.prototype.addCaption=function(d){var c=d.attr("title");if(c!==""&&c!==undefined&&this.options.caption===true){b("#bootstrap-media-lightbox-caption-container").show();b("#bootstrap-media-lightbox-caption").text(c)}else{b("#bootstrap-media-lightbox-caption-container").hide()}};a.prototype.getFontSet=function(){var c=b('<i class="fa"></i>');if(c.css("font-family")==="FontAwesome"){return"fa"}return"glyphicon"};a.prototype.validateSize=function(e){var g=b(window).height();var d=b(window).width();if(this.contentWidth+50>d){var c=this.contentWidth;this.contentWidth=d-50;this.contentHeight=this.contentHeight*this.contentWidth/c}if(this.contentHeight+80>g){var f=this.contentHeight;this.contentHeight=g-80;this.contentWidth=this.contentWidth*this.contentHeight/f}};a.prototype.setMargins=function(c){var e=b(window).height();var d=b(window).width();c.css({"margin-top":(e-50-this.contentHeight)/2});c.css({"margin-left":(d-this.contentWidth)/2})};b.fn.lightbox=function(c){new a(b(this),c)};b(".lightbox").lightbox()})(jQuery);