Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

/*================================================================================

* @name: bPopup - if you can't get it up, use bPopup


* @author: (c)Bjoern Klinggaard (twitter@bklinggaard)
* @demo: http://dinbror.dk/bpopup
* @version: 0.9.4.min
================================================================================*/
(function(b){b.fn.bPopup=function(z,F){function K()
{a.contentContainer=b(a.contentContainer||c);switch(a.content){case "iframe":var
h=b('<iframe class="b-iframe"
'+a.iframeAttr+"></iframe>");h.appendTo(a.contentContainer);r=c.outerHeight(!
0);s=c.outerWidth(!0);A();h.attr("src",a.loadUrl);k(a.loadCallback);break;case
"image":A();b("<img />").load(function()
{k(a.loadCallback);G(b(this))}).attr("src",a.loadUrl).hide().appendTo(a.contentCont
ainer);break;default:A(),b('<div class="b-ajax-
wrapper"></div>').load(a.loadUrl,a.loadData,function()
{k(a.loadCallback);G(b(this))}).hide().appendTo(a.contentContainer)}}function A()
{a.modal&&b('<div class="b-modal
'+e+'"></div>').css({backgroundColor:a.modalColor,position:"fixed",top:0,right:0,bo
ttom:0,left:0,opacity:0,zIndex:a.zIndex+t}).appendTo(a.appendTo).fadeTo(a.speed,a.o
pacity);D();c.data("bPopup",a).data("id",e).css({left:"slideIn"==a.transition||"sli
deBack"==a.transition?"slideBack"==a.transition?g.scrollLeft()+u:-1*(v+s):l(!(!
a.follow[0]&&m||
f)),position:a.positionStyle||"absolute",top:"slideDown"==a.transition||"slideUp"==
a.transition?"slideUp"==a.transition?g.scrollTop()+w:x+-1*r:n(!(!a.follow[1]&&p||
f)),"z-index":a.zIndex+t+1}).each(function()
{a.appending&&b(this).appendTo(a.appendTo)});H(!0)}function q(){a.modal&&b(".b-
modal."+c.data("id")).fadeTo(a.speed,0,function(){b(this).remove()});a.scrollBar||
b("html").css("overflow","auto");b(".b-
modal."+e).unbind("click");g.unbind("keydown."+e);d.unbind("."+e).data("bPopup",0<d
.data("bPopup")-1?d.data("bPopup")-
1:null);c.undelegate(".bClose, ."+a.closeClass,"click."+e,q).data("bPopup",null);H(
);return!1}function G(h){var
b=h.width(),e=h.height(),d={};a.contentContainer.css({height:e,width:b});e>=c.heigh
t()&&(d.height=c.height());b>=c.width()&&(d.width=c.width());r=c.outerHeight(!
0);s=c.outerWidth(!
0);D();a.contentContainer.css({height:"auto",width:"auto"});d.left=l(!(!
a.follow[0]&&m||f));d.top=n(!(!a.follow[1]&&p||f));c.animate(d,250,function()
{h.show();B=E()})}function L()
{d.data("bPopup",t);c.delegate(".bClose, ."+a.closeClass,"click."+e,q);a.modalClose
&&b(".b-modal."+e).css("cursor","pointer").bind("click",q);M||!a.follow[0]&&!
a.follow[1]||d.bind("scroll."+e,function()
{B&&c.dequeue().animate({left:a.follow[0]?l(!f):"auto",top:a.follow[1]?n(!
f):"auto"},a.followSpeed,a.followEasing)}).bind("resize."+e,function()
{w=y.innerHeight||d.height();u=y.innerWidth||
d.width();if(B=E())clearTimeout(I),I=setTimeout(function()
{D();c.dequeue().each(function(){f?
b(this).css({left:v,top:x}):b(this).animate({left:a.follow[0]?l(!
0):"auto",top:a.follow[1]?n(!
0):"auto"},a.followSpeed,a.followEasing)})},50)});a.escClose&&g.bind("keydown."+e,f
unction(a){27==a.which&&q()})}function H(b){function d(e)
{c.css({display:"block",opacity:1}).animate(e,a.speed,a.easing,function()
{J(b)})}switch(b?a.transition:a.transitionClose||a.transition){case
"slideIn":d({left:b?l(!(!a.follow[0]&&m||f)):g.scrollLeft()-(s||c.outerWidth(!0))-
C});break;case "slideBack":d({left:b?l(!(!a.follow[0]&&m||f)):g.scrollLeft()
+u+C});break;case "slideDown":d({top:b?n(!(!a.follow[1]&&p||f)):g.scrollTop()-(r||
c.outerHeight(!0))-C});break;case "slideUp":d({top:b?n(!(!a.follow[1]&&p||
f)):g.scrollTop()+w+C});break;default:c.stop().fadeTo(a.speed,b?1:0,function()
{J(b)})}}function J(b){b?(L(),k(F),a.autoClose&&setTimeout(q,a.autoClose)):
(c.hide(),k(a.onClose),a.loadUrl&&(a.contentContainer.empty(),c.css({height:"auto",
width:"auto"})))}function l(a){return a?v+g.scrollLeft():v}function n(a){return a?
x+g.scrollTop():x}function k(a){b.isFunction(a)&&a.call(c)}function D(){x=p?
a.position[1]:Math.max(0,(w-c.outerHeight(!0))/2-a.amsl);v=m?a.position[0]:(u-
c.outerWidth(!0))/2;B=E()}function E(){return w>c.outerHeight(!0)&&u>c.outerWidth(!
0)}b.isFunction(z)&&(F=z,z=null);var
a=b.extend({},b.fn.bPopup.defaults,z);a.scrollBar||
b("html").css("overflow","hidden");var
c=this,g=b(document),y=window,d=b(y),w=y.innerHeight||d.height(),u=y.innerWidth||
d.width(),M=/OS 6(_\d)
+/i.test(navigator.userAgent),C=200,t=0,e,B,p,m,f,x,v,r,s,I;c.close=function()
{a=this.data("bPopup");e="__b-popup"+d.data("bPopup")+"__";q()};return
c.each(function(){b(this).data("bPopup")||(k(a.onOpen),t=(d.data("bPopup")||
0)+1,e="__b-popup"+t+"__",p="auto"!==a.position[1],m="auto"!
==a.position[0],f="fixed"===a.positionStyle,r=c.outerHeight(!0),s=c.outerWidth(!
0),a.loadUrl?K():A())})};b.fn.bPopup.defaults={amsl:50,appending:!
0,appendTo:"body",autoClose:!1,closeClass:"b-
close",content:"ajax",contentContainer:!1,easing:"swing",escClose:!0,follow:[!0,!
0],followEasing:"swing",followSpeed:500,iframeAttr:'scrolling="no"
frameborder="0"',loadCallback:!1,loadData:!1,loadUrl:!1,modal:!0,modalClose:!
0,modalColor:"#000",onClose:!1,onOpen:!1,opacity:0.7,position:
["auto","auto"],positionStyle:"absolute",scrollBar:!
0,speed:250,transition:"fadeIn",transitionClose:!1,zIndex:9997}})(jQuery);

You might also like