Advertisement
Guest User

minifiedbigfoot

a guest
Jan 10th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(e){e.bigfoot=function(t){function i(t,n){var r,i,s,o;t.each(function(){var t=e(this);s="#"+t.attr("href").split("#")[1];r=t.closest("sup");i=t.find("sup");if(r.length>0){o=(r.attr("id")||"")+(t.attr("id")||"");n.push(r.attr({"data-footnote-backlink-ref":o,"data-footnote-ref":s}))}else if(i.length>0){o=(i.attr("id")||"")+(t.attr("id")||"");n.push(t.attr({"data-footnote-backlink-ref":o,"data-footnote-ref":s}))}else{o=t.attr("id")||"";n.push(t.attr({"data-footnote-backlink-ref":o,"data-footnote-ref":s}))}})}function s(e){if(e.is(":empty")||e.children(":not(.hidden)").length==0){var t=e.parent();if(n.actionOriginalFN.toLowerCase()==="delete"){e.remove()}else{e.addClass("hidden").css({display:"none"})}s(t)}else if(e.children(":not(.hidden)").length==e.children("hr:not(.hidden)").length){var t=e.parent();if(n.actionOriginalFN.toLowerCase()==="delete"){e.remove()}else{e.children("hr").addClass("hidden").css({display:"none"});e.addClass("hidden").css({display:"none"})}s(t)}}function o(e,t){if(t.indexOf(" ")>=0){t=t.trim().replace(/ +/g,"|").replace(/(.*)/g,"($1)")}var n="(s|&nbsp;)*<s*a[^#<]*#"+t+"[^>]*>(.*?)<s*/s*a>";var r=new RegExp(n,"g");return e.replace(r,"").replace("[]","")}function u(e,t,n){var r=new RegExp("{{"+t+":([^}]*)}}","g"),i,s,o;while(i=r.exec(e)){if(i[1]){s=n.attr(i[1])||"";e=e.replace("{{"+t+":"+i[1]+"}}",s)}}return e}function d(t,r){t=t||".footnote-content";r=r||n.popoverDeleteDelay;e(t).each(function(){var t=e('.footnote-button[data-footnote-identifier="'+e(this).attr("data-footnote-identifier")+'"]'),n=e(this);if(t.hasClass("changing"))return;t.removeClass("active hover-instantiated click-instantiated").addClass("changing");n.removeClass("active").addClass("disapearing");setTimeout(function(){n.remove();t.removeClass("changing")},r)});return e(t.replace(".footnote-content",".footnote-button"))}function m(e,t){t=t||.5;var n=e.find(".tooltip");if(n.length>0){n.css({left:t*100+"%"})}}function g(t){var n=parseFloat(t.outerWidth()),r=parseFloat(t.outerHeight()),i=y(),s=t.offset().top-e(window).scrollTop()+r/2,o=t.offset().left+n/2;return{topRoom:s,bottomRoom:i.height-s,leftRoom:o,rightRoom:i.width-o,leftRelative:o/i.width,topRelative:s/i.height}}function y(){var e=document.createElement("div");e.style.cssText="position: fixed;top: 0;left: 0;bottom: 0;right: 0;";document.documentElement.insertBefore(e,document.documentElement.firstChild);var t={width:e.offsetWidth,height:e.offsetHeight};document.documentElement.removeChild(e);return t}var n=e.extend({actionOriginalFN:"ignore",activateOnHover:true,allowMultipleFN:false,appendPopoversTo:undefined,deleteOnUnhover:true,hoverDelay:100,popoverDeleteDelay:100,popoverCreateDelay:100,positionNextToBlock:true,positionContent:true,preventPageScroll:true,scope:false,contentMarkup:'<aside class="footnote-content bottom"'+'data-footnote-identifier="{{FOOTNOTENUM}}" '+'alt="Footnote {{FOOTNOTENUM}}">'+'<div class="footnote-main-wrapper">'+'<div class="footnote-content-wrapper">'+"{{FOOTNOTECONTENT}}"+'<a href="#fn:{{FOOTNOTENUM}}">Permalink</a> '+"</div></div>"+'<div class="tooltip"></div>'+"</aside>",buttonMarkup:'<a id="fnref:{{FOOTNOTENUM}}" href="#" class="footnote-button" '+'data-footnote-identifier="{{FOOTNOTENUM}}" '+'alt="See Footnote {{FOOTNOTENUM}}" '+'rel="footnote"'+'data-footnote-content="{{FOOTNOTECONTENT}}">'+'<span class="footnote-circle" data-footnote-identifier="{{FOOTNOTENUM}}"></span>'+'<span class="footnote-circle"></span>'+'<span class="footnote-circle"></span>'+"</a>"},t);var r=function(){var t;t=!n.scope?'a[href*="#"]':n.scope+' a[href*="#"]';var r=e(t).filter(function(){var t=e(this);var n=t.attr("rel");if(!n||n=="null"){n=""}return(t.attr("href")+n).match(/(fn|footnote|note)[:\-_\d]/gi)&&t.closest("[class*=footnote]:not(a):not(sup)").length<1});var a=[],f=[],l=[],c,h;i(r,f);e(f).each(function(){c=e(this).attr("data-footnote-ref").replace(":","\\:");h=e(c).closest("li");if(h.length>0){a.push(h);l.push(this)}});for(var p=0;p<a.length;p++){var d=o(e(a[p]).html().trim(),e(l[p]).data("footnote-backlink-ref")).replace(/"/g,"&quot;").replace(/&lt;/g,"&ltsym;").replace(/&gt;/g,"&gtsym;"),v=+(p+1),m="",g;if(d.indexOf("<")!==0){d="<p>"+d+"</p>"}m=n.buttonMarkup.replace(/\{\{FOOTNOTENUM\}\}/g,v).replace(/\{\{FOOTNOTECONTENT\}\}/g,d);m=u(m,"SUP",e(l[p]));m=u(m,"FN",e(a[p]));g=e(m).insertAfter(e(l[p]));e(l[p]).remove();var y=e(a[p]).parent();switch(n.actionOriginalFN.toLowerCase()){case"delete":e(a[p]).remove();s(y);break;case"hide":e(a[p]).addClass("hidden").css({display:"none"});s(y);break}}};var a=function(t){if(n.activateOnHover){var r=e(t.target).closest(".footnote-button"),i='[data-footnote-identifier="'+r.attr("data-footnote-identifier")+'"]';if(r.hasClass("active"))return;r.addClass("hover-instantiated");if(!n.allowMultipleFN){var s=".footnote-content:not("+i+")";d(s)}c(".footnote-button"+i).addClass("hover-instantiated")}};var f=function(t){var n=e(t.target),r=n.closest(".footnote-button");$nearFootnote=n.closest(".footnote-content");if(r.length>0){t.preventDefault();l(r)}else if($nearFootnote.length<1){if(e(".footnote-content").length>0){d()}}};var l=function(e){e.blur();var t='data-footnote-identifier="'+e.attr("data-footnote-identifier")+'"';if(e.hasClass("changing")){return}else if(!e.hasClass("active")){e.addClass("changing");setTimeout(function(){e.removeClass("changing")},n.popoverCreateDelay);c(".footnote-button["+t+"]");e.addClass("click-instantiated");if(!n.allowMultipleFN){d(".footnote-content:not(["+t+"])")}}else{if(!n.allowMultipleFN){d()}else{d(".footnote-content["+t+"]")}}};var c=function(t){t=t||".footnote-button";if(n.allowMultipleFN){var r=e(t).closest(".footnote-button")}else{var r=e(t+":first").closest(".footnote-button")}r.each(function(){var t=e(this);try{var r=n.contentMarkup.replace(/\{\{FOOTNOTENUM\}\}/g,t.attr("data-footnote-identifier")).replace(/\{\{FOOTNOTECONTENT\}\}/g,t.attr("data-footnote-content").replace(/&gtsym;/,"&gt;").replace(/&ltsym;/,"&lt;"));r=u(r,"BUTTON",t)}finally{if(!n.appendPopoversTo){$nearestBlock=t.closest("p, div, pre, li, ul, section, article, main, aside");$siblingFootnote=$nearestBlock.siblings(".footnote-content:last");if($siblingFootnote.length>0){$content=e(r).insertAfter($siblingFootnote)}else{$content=e(r).insertAfter($nearestBlock)}}else{$content=e(r).appendTo(n.appendPopoversTo+":first")}$content.attr("data-bigfoot-max-height",$content.height());v();t.addClass("active");$content.find(".footnote-content-wrapper").bindScrollHandler()}});var i=e(t.replace(".footnote-button",".footnote-content"));setTimeout(function(){i.addClass("active")},n.popoverCreateDelay);return i};e.fn.bindScrollHandler=function(){if(!n.preventPageScroll){return}e(this).on("DOMMouseScroll mousewheel",function(t){var n=e(this),r=n.scrollTop(),i=n[0].scrollHeight,s=parseInt(n.css("height")),o=n.closest(".footnote-content");if(n.scrollTop()>0&&n.scrollTop()<10){o.addClass("scrollable")}if(!o.hasClass("scrollable")){return}var u=t.type=="DOMMouseScroll"?t.originalEvent.detail*-40:t.originalEvent.wheelDelta,a=u>0;var f=function(){t.stopPropagation();t.preventDefault();t.returnValue=false;return false};if(!a&&-u>i-s-r){n.scrollTop(i);o.addClass("fully-scrolled");return f()}else if(a&&u>r){n.scrollTop(0);o.removeClass("fully-scrolled");return f()}else{o.removeClass("fully-scrolled")}})};var h=function(t){if(n.deleteOnUnhover&&n.activateOnHover){setTimeout(function(){var n=e(t.target).closest(".footnote-content, .footnote-button");if(e(".footnote-button:hover, .footnote-content:hover").length<1){d()}},n.hoverDelay)}};var p=function(e){if(e.keyCode==27){d()}};var v=function(){if(n.positionContent){e(".footnote-content").each(function(){var t=e(this),n='data-footnote-identifier="'+t.attr("data-footnote-identifier")+'"',r=t.find(".footnote-content-wrapper"),i=e(".footnote-button["+n+"]");var s=g(i),o=parseFloat(t.css("width")),u=parseFloat(t.css("margin-top")),a=+t.attr("data-bigfoot-max-height"),f=2*u+a,l=1e4;if(s.bottomRoom<f&&s.topRoom>s.bottomRoom){t.css({top:"auto",bottom:s.bottomRoom+"px"}).addClass("top").removeClass("bottom");l=s.topRoom-u-15;t.css({"transform-origin":s.leftRelative*100+"% 100%"})}else{t.css({bottom:"auto",top:s.topRoom+"px"}).addClass("bottom").removeClass("top");l=s.bottomRoom-u-15;t.css({"transform-origin":s.leftRelative*100+"% 0%"})}t.find(".footnote-content-wrapper").css({"max-height":Math.min(l,a)+"px"});t.css({left:s.leftRoom-s.leftRelative*o+"px"});m(t,s.leftRelative);if(parseInt(t.css("height"))<t.find(".footnote-content-wrapper")[0].scrollHeight){t.addClass("scrollable")}})}};var b=function(e,t){var r=n[e];n[e]=t;return r};var w=function(e){return n[e]};e(document).ready(function(){r();e(document).on("mouseenter",".footnote-button",a);e(document).on("touchend click",f);e(document).on("mouseout",".hover-instantiated",h);e(document).on("keyup",p);e(window).on("scroll resize",v)});return{close:function(e,t){return d(e,t)},activate:function(e){return c(e)},reposition:function(){return v()},getSetting:function(e){return w(e)},updateSetting:function(e,t){return b(e,t)}}}})(jQuery)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement