(function(n){n(document).on("click","a[data-reveal-id]",function(t){t.preventDefault();var i=n(this).attr("data-reveal-id");n("#"+i).reveal(n(this).data())});n.fn.reveal=function(t){var t=n.extend({},{animation:"fadeAndPop",animationspeed:300,closeonbackgroundclick:!0,dismissmodalclass:"close-reveal-modal"},t);return this.each(function(){function f(){e=!1}function s(){e=!0}var i=n(this),u=parseInt(i.css("top")),o=i.height()+u,e=!1,r=n(".reveal-modal-bg"),h;r.length==0&&(r=n('<div class="reveal-modal-bg" />').insertAfter(i));i.bind("reveal:open",function(){r.unbind("click.modalEvent");n("."+t.dismissmodalclass).unbind("click.modalEvent");e||(s(),t.animation=="fadeAndPop"&&(i.css({top:n(document).scrollTop()-o,opacity:0,visibility:"visible"}),r.fadeIn(t.animationspeed/2),i.delay(t.animationspeed/2).animate({top:n(document).scrollTop()+u+"px",opacity:1},t.animationspeed,f())),t.animation=="fade"&&(i.css({opacity:0,visibility:"visible",top:n(document).scrollTop()+u}),r.fadeIn(t.animationspeed/2),i.delay(t.animationspeed/2).animate({opacity:1},t.animationspeed,f())),t.animation=="none"&&(i.css({visibility:"visible",top:n(document).scrollTop()+u}),r.css({display:"block"}),f()));i.unbind("reveal:open")});i.bind("reveal:close",function(){e||(s(),t.animation=="fadeAndPop"&&(r.delay(t.animationspeed).fadeOut(t.animationspeed),i.animate({top:n(document).scrollTop()-o+"px",opacity:0},t.animationspeed/2,function(){i.css({top:u,opacity:1,visibility:"hidden"});f()})),t.animation=="fade"&&(r.delay(t.animationspeed).fadeOut(t.animationspeed),i.animate({opacity:0},t.animationspeed,function(){i.css({opacity:1,visibility:"hidden",top:u});f()})),t.animation=="none"&&(i.css({visibility:"hidden",top:u}),r.css({display:"none"})));i.unbind("reveal:close")});i.trigger("reveal:open");h=n("."+t.dismissmodalclass).bind("click.modalEvent",function(){i.trigger("reveal:close")});t.closeonbackgroundclick&&(r.css({cursor:"pointer"}),r.bind("click.modalEvent",function(){i.trigger("reveal:close")}));n("body").keyup(function(n){n.which===27&&i.trigger("reveal:close")})})}})(jQuery)