Skip to content

Instantly share code, notes, and snippets.

@amitrogye
Created December 6, 2013 02:23
Show Gist options
  • Save amitrogye/7817595 to your computer and use it in GitHub Desktop.
Save amitrogye/7817595 to your computer and use it in GitHub Desktop.
jquery.vanillabox-0.1.3.min
(function($){/*
Vanillabox
(C) 2013 cocopon.
Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
*/
var d;function g(){}function k(a){return void 0!==a}function l(a){function b(){}b.prototype=m.prototype;a.prototype=new b}function n(a,b){var c=a.length,e;for(e=0;e<c;e++)b.call(this,a[e],e)}function q(a,b){var c=[],e=a.length,f;for(f=0;f<e;f++)c.push(b.call(this,a[f],f));return c}function r(){var a=new $.Deferred;setTimeout(function(){a.resolve()},0);return a.promise()}function s(){return!!navigator.userAgent.match(/(ipod|iphone|ipad)/ig)};function t(){};var u={pa:function(a){return a.a.show()},$:function(a){return a.a.hide()},oa:function(a){u.N(a);return a.a.show()},Z:function(a){return a.a.hide()},N:function(a){var b=a.f,c=b.o(),e=v(a,c);b.a.css({width:c.width,height:c.height});a.a.css({left:e.left,top:e.top});return r()},na:function(a){return a.a.show()},Y:function(a){return a.a.hide()}},w={pa:function(a){return a.a.fadeIn(200)},$:function(a){return a.a.fadeOut(300)},sa:function(a,b,c,e){var f=a.f.a;f.stop();b=f.animate({width:b.width,height:b.height},
e);a=a.a;a.stop();c=a.animate({left:c.left,top:c.top},e);return $.when(b,c)},oa:function(a){var b=a.f,c=b.o(),e=v(a,c);b.a.css({width:c.width,height:c.height});a.a.css({left:e.left,top:e.top});return r()},Z:function(){return r()},N:function(a){var b=a.f.o(),c=v(a,b);return w.sa(a,b,c,300)},na:function(a){return a.a.fadeIn(200)},Y:function(a){return a.a.fadeOut(300)}};var x={none:u,"default":w};function z(){this.c()}d=z.prototype;d.c=function(){var a=$("<div>");a.addClass("vnbx-mask");this.a=a;this.e()};d.b=function(){this.g();this.a=null};d.e=function(){$(window).on("resize",$.proxy(this.F,this));this.a.on("click",$.proxy(this.n,this))};d.g=function(){$(window).off("resize",this.F);this.a.off("click",this.n)};d.w=function(){var a=this.a;a.width("");a.height("");var b=$(window),c=$(document),e=Math.max(c.width(),b.width()),b=Math.max(c.height(),b.height());a.width(e);a.height(b)};d.F=function(){this.w()};
d.n=function(){$(this).trigger("vnbx_click")};function A(a){a=(a||{}).q;this.k=k(a)?a:w;this.c()}d=A.prototype;d.c=function(){var a=$("<div>");a.addClass("vnbx-container");this.a=a;this.e()};d.b=function(){this.g();this.a=null};d.e=function(){};d.g=function(){this.u()};d.P=function(){$(this.d).on("vnbx_complete",$.proxy(this.B,this))};d.u=function(){$(this.d).off("vnbx_complete",this.B)};d.o=function(){var a=this.d,b={width:0,height:0};a&&(b=a.o());return{width:Math.max(b.width,200),height:Math.max(b.height,150)}};
function B(a){a.ca={width:(window.innerWidth||document.documentElement.clientWidth)-100,height:(window.innerHeight||document.documentElement.clientHeight)-100};a.d&&C(a)}function C(a){var b=a.ca;a.d.U(Math.max(b.width,200),Math.max(b.height,150))}d.w=function(){var a=this.d,b=a.o();a.a.css({marginLeft:-Math.round(b.width/2),marginTop:-Math.round(b.height/2)})};d.B=function(){this.w()};function D(a){this.f=new A({q:(a||{}).q});this.c();this.e()}d=D.prototype;d.c=function(){var a=$("<div>");a.addClass("vnbx-frame");this.a=a;this.a.append(this.f.a)};d.b=function(){this.f.b();this.f=null;this.g();this.a=null};d.e=function(){this.a.on("click",$.proxy(this.n,this))};d.g=function(){this.a.off("click",this.n)};
function v(a,b){var c=a.f.a,e=c.width(),f=c.height();c.width(b.width);c.height(b.height);var h=$(window),p=a.a,y=window.innerWidth||document.documentElement.clientWidth,S=window.innerHeight||document.documentElement.clientHeight,y=Math.round(h.scrollLeft()+(y-p.outerWidth())/2),h=Math.round(h.scrollTop()+(S-p.outerHeight())/2);c.width(e);c.height(f);return{left:y,top:h}}d.n=function(a){a.stopPropagation()};function m(a){a=a||{};this.qa=this.ba=!1;this.ma=a.path;this.Ba=k(a.title)?a.title:"";this.c()}d=m.prototype;d.c=function(){var a=$("<div>");a.addClass("vnbx-content");this.a=a;this.V();this.e()};d.V=g;d.e=g;d.g=g;d.b=function(){this.g();this.a=null};d.o=function(){var a=this.a;return{width:a.width(),height:a.height()}};d.U=function(a,b){this.a.css({maxWidth:a,maxHeight:b})};d.load=function(){this.a.addClass("vnbx-loading");this.ba?E(this,this.qa):this.S()};d.S=g;
function E(a,b){var c=a.a;a.ba=!0;a.qa=b;c.removeClass("vnbx-loading");b||c.addClass("vnbx-error");$(a).trigger("vnbx_complete",b)}function F(a){m.call(this,a)}l(F);F.prototype.c=function(){m.prototype.c.call(this);this.a.addClass("vnbx-empty")};F.prototype.load=function(){var a=this;setTimeout(function(){$(a).trigger("vnbx_complete",!0)},0)};function G(a){m.call(this,a)}l(G);d=G.prototype;d.V=function(){var a=$("<img>");this.a.append(a);this.v=a};d.b=function(){m.prototype.b.call(this);this.v=null};
d.e=function(){var a=this.v;a.on("load",$.proxy(this.D,this));a.on("error",$.proxy(this.C,this))};d.g=function(){var a=this.v;a.off("load",this.D);a.off("error",this.C)};d.U=function(a,b){this.v.css({maxWidth:a,maxHeight:b})};d.S=function(){this.v.attr("src",this.ma)};d.D=function(){E(this,!0)};d.C=function(){E(this,!1)};function H(a){a=a||{};this.xa=a.H;this.wa=a.G;m.call(this,a)}l(H);d=H.prototype;d.V=function(){var a=$("<iframe>");a.attr("frameborder",0);this.a.append(a);this.l=a};
d.b=function(){m.prototype.b.call(this);this.l=null};d.e=function(){var a=this.l;a.on("load",$.proxy(this.D,this));a.on("error",$.proxy(this.C,this))};d.g=function(){var a=this.l;a.off("load",this.D);a.off("error",this.C)};d.o=function(){var a=s()?this.a:this.l;return{width:a.width(),height:a.height()}};d.U=function(a,b){(s()?this.a:this.l).css({maxWidth:a,maxHeight:b})};d.S=function(){this.l.attr("src",this.ma)};
d.D=function(){if(this.l.attr("src")){var a=s()?this.a:this.l;a.width(this.xa);a.height(this.wa);E(this,!0)}};d.C=function(){E(this,!1)};var I={image:function(a){return new G({path:a.attr("href"),title:a.attr("title")})},iframe:function(a,b){return new H({path:a.attr("href"),H:b.H,G:b.G,title:a.attr("title")})}};function J(a){a=a||{};this.p=k(a.ra)?a.ra:1;this.s=k(a.loop)?a.loop:!1;K(this,k(a.page)?a.page:0)}function K(a,b){var c=a.h,e=a.p,e=Math.min(Math.max(b,0),e-1);a.h=e;c!==e&&$(a).trigger("vnbx_change")}J.prototype.next=function(){var a=this.p,b=this.h,c=b+1;c>a-1&&(c=this.s?0:a-1);this.h=c;b!==c&&$(this).trigger("vnbx_change")};J.prototype.J=function(){var a=this.p,b=this.h,c=b-1;0>c&&(c=this.s?a-1:0);this.h=c;b!==c&&$(this).trigger("vnbx_change")};function L(a){this.t=a.r;this.R=k(a.disabled)?a.disabled:!1;this.c()}d=L.prototype;d.c=function(){var a=$("<div>");a.addClass("vnbx-button");this.t&&a.addClass(this.t);a.attr("ontouchstart","void(0)");this.a=a;this.e()};d.b=function(){this.a=null};d.e=function(){this.a.on("click",$.proxy(this.n,this))};d.g=function(){this.a.off("click",this.n)};function M(a,b){var c=a.a;a.R=b;a.R?c.addClass("vnbx-disabled"):c.removeClass("vnbx-disabled")}d.n=function(a){a.stopPropagation();this.R||$(this).trigger("vnbx_click")};function N(a){this.t=a.r;this.c()}N.prototype.c=function(){var a=$("<div>");a.addClass("vnbx-label");this.t&&a.addClass(this.t);this.a=a};N.prototype.b=function(){this.a=null};function O(a){if(!a.W||0===a.W.length)throw new t;this.O=!1;this.K=a.W;this.k=k(a.q)?a.q:w;this.za=a.ya;this.Aa=a.va;this.L=a.ta;this.ua={H:a.H,G:a.G,type:a.type};this.j=new J({loop:a.loop,ra:this.K.length});this.c()}d=O.prototype;
d.c=function(){var a=this,b=new z,c=b.a;c.addClass("vnbx");c.hide();$("body").append(c);a.m=b;P(a);var e=new D({q:a.k}),b=e.a;a.i=e;c.append(b);c=new N({r:"vnbx-title"});a.X=c;b.append(c.a);c=new N({r:"vnbx-pager"});a.T=c;b.append(c.a);c=new L({r:"vnbx-prev"});a.I=c;b.append(c.a);c=new L({r:"vnbx-next"});a.A=c;b.append(c.a);c=new L({r:"vnbx-close"});a.L||c.a.hide();a.M=c;b.append(c.a);a.e();b=q(a.K,function(b){b=$(b);var c=a.ua,e=I[c.type];if(!e)throw new t;return e(b,c)});a.Q=b;b=new F;Q(a,b)};
function P(a){var b=a.m.a;s()&&b.addClass("vnbx-ios");a.L&&b.addClass("vnbx-close-button-enabled");1<a.j.p&&b.addClass("vnbx-group")}d.b=function(){R(this);this.g();n(this.Q,function(a){a.b()});this.Q=null;this.X.b();this.X=null;this.T.b();this.T=null;this.M.b();this.M=null;this.I.b();this.I=null;this.A.b();this.A=null;this.i.b();this.i=null;this.m.a.remove();this.m.b();this.m=null};
d.e=function(){this.K.on("click",$.proxy(this.ka,this));$(this.m).on("vnbx_click",$.proxy(this.ga,this));$(this.j).on("vnbx_change",$.proxy(this.ia,this));$(this.M).on("vnbx_click",$.proxy(this.da,this));$(this.I).on("vnbx_click",$.proxy(this.ja,this));$(this.A).on("vnbx_click",$.proxy(this.ha,this))};
d.g=function(){this.K.off("click",this.ka);$(this.m).off("vnbx_click",this.ga);$(this.j).off("vnbx_change",this.ia);$(this.M).off("vnbx_click",this.da);$(this.I).off("vnbx_click",this.ja);$(this.A).off("vnbx_click",this.ha);this.u();this.d=null};function T(a){var b=$(window),c=$(document);b.on("resize",$.proxy(a.F,a));b.on("scroll",$.proxy(a.la,a));c.on("keyup",$.proxy(a.fa,a))}function R(a){var b=$(window),c=$(document);b.off("resize",a.F,a);b.off("scroll",a.la,a);c.off("keyup",a.fa,a)}
d.P=function(){var a=this.i.f.d,b=a.a;$(a).on("vnbx_complete",$.proxy(this.B,this));b.on("click",$.proxy(this.ea,this))};d.u=function(){var a=this.i.f.d,b=a.a;$(a).off("complete",this.B);b.off("click",this.ea)};d.show=function(a){var b=this,c=b.k;if(b.O)return r();b.O=!0;T(b);B(b.i.f);var e=b.m;e.w();var e=c.pa(e),c=c.oa(b.i),f=b.j;a=k(a)?a:0;var h=a!==f.h;K(f,a);h||U(b);return $.when(e,c).then(function(){$(b).trigger("vnbx_show")})};
d.hide=function(){var a=this;return a.O?$.when(a.k.Z(a.i),a.k.$(a.m)).then(function(){R(a);a.O=!1;$(a).trigger("vnbx_hide")}):r()};d.J=function(){this.j.J()};d.next=function(){this.j.next()};function Q(a,b){var c=a.i.f,e=a.i.f.d;if(e!==b){e&&a.u();e=c.k;c.d&&(c.u(),e.Y(c.d));c.d=b;c.P();c.ca&&C(c);var f=c.a,h=c.d.a,p=f.find("> *");0===p.length?f.append(h):h.insertBefore(p.first());e.na(c.d);a.P();a.X.a.text(b.Ba);b.load()}c.w()}
function U(a){var b=a.j;a.T.a.text(String(b.h+1)+" of "+String(b.p));M(a.I,!(b.s||0<b.h));M(a.A,!(b.s||b.h<b.p-1));Q(a,a.Q[a.j.h])}function V(a){a.aa&&clearTimeout(a.aa);a.aa=setTimeout(function(){a.za&&a.k.N(a.i)},300)}d.F=function(){V(this)};d.la=function(){V(this)};d.fa=function(a){if(this.Aa)switch(a.keyCode){case 27:this.hide();break;case 37:this.J();break;case 39:this.next()}};d.ka=function(a){var b=this.K.index(a.delegateTarget);0>b||(a.preventDefault(),this.show(b))};d.ia=function(){U(this)};
d.ga=function(){this.L||this.hide()};d.da=function(){this.L&&this.hide()};d.ja=function(){this.J()};d.ha=function(){this.next()};d.B=function(a,b){this.k.N(this.i);$(this).trigger("vnbx_load",b)};d.ea=function(a){var b=this.j;a.stopPropagation();b.s||b.h<b.p-1?this.next():this.hide()};var W={animation:"default",closeButton:!1,keyboard:!0,loop:!1,preferredHeight:600,preferredWidth:800,repositionOnScroll:!1,type:"image"};$.fn.Ca=function(a){var b={};$.extend(b,W);$.extend(b,a);a=$(this);return new O({q:x[b.animation]||w,ta:b.closeButton,va:b.keyboard,loop:b.loop,G:b.preferredHeight,H:b.preferredWidth,ya:b.repositionOnScroll,W:a,type:b.type})};$.fn.vanillabox=$.fn.Ca;O.prototype.dispose=O.prototype.b;O.prototype.hide=O.prototype.hide;O.prototype.next=O.prototype.next;O.prototype.previous=O.prototype.J;O.prototype.show=O.prototype.show;})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment