/** * created by westsun on 2015/6/13. */ // magnific popup v1.0.0 by dmitry semenov // http://bit.ly/magnific-popup#build=inline+image+ajax+iframe+gallery+retina+imagezoom+fastclick (function(a){typeof define=="function"&&define.amd?define(["jquery"],a):typeof exports=="object"?a(require("jquery")):a(window.jquery||window.zepto)})(function(a){var b="close",c="beforeclose",d="afterclose",e="beforeappend",f="markupparse",g="open",h="change",i="mfp",j="."+i,k="mfp-ready",l="mfp-removing",m="mfp-prevent-close",n,o=function(){},p=!!window.jquery,q,r=a(window),s,t,u,v,w=function(a,b){n.ev.on(i+a+j,b)},x=function(b,c,d,e){var f=document.createelement("div");return f.classname="mfp-"+b,d&&(f.innerhtml=d),e?c&&c.appendchild(f):(f=a(f),c&&f.appendto(c)),f},y=function(b,c){n.ev.triggerhandler(i+b,c),n.st.callbacks&&(b=b.charat(0).tolowercase()+b.slice(1),n.st.callbacks[b]&&n.st.callbacks[b].apply(n,a.isarray(c)?c:[c]))},z=function(b){if(b!==v||!n.currtemplate.closebtn)n.currtemplate.closebtn=a(n.st.closemarkup.replace("%title%",n.st.tclose)),v=b;return n.currtemplate.closebtn},a=function(){a.magnificpopup.instance||(n=new o,n.init(),a.magnificpopup.instance=n)},b=function(){var a=document.createelement("p").style,b=["ms","o","moz","webkit"];if(a.transition!==undefined)return!0;while(b.length)if(b.pop()+"transition"in a)return!0;return!1};o.prototype={constructor:o,init:function(){var b=navigator.appversion;n.isie7=b.indexof("msie 7.")!==-1,n.isie8=b.indexof("msie 8.")!==-1,n.islowie=n.isie7||n.isie8,n.isandroid=/android/gi.test(b),n.isios=/iphone|ipad|ipod/gi.test(b),n.supportstransition=b(),n.probablymobile=n.isandroid||n.isios||/(opera mini)|kindle|webos|blackberry|(opera mobi)|(windows phone)|iemobile/i.test(navigator.useragent),s=a(document),n.popupscache={}},open:function(b){var c;if(b.isobj===!1){n.items=b.items.toarray(),n.index=0;var d=b.items,e;for(c=0;c(a||r.height())},_setfocus:function(){(n.st.focus?n.content.find(n.st.focus).eq(0):n.wrap).focus()},_onfocusin:function(b){if(b.target!==n.wrap[0]&&!a.contains(n.wrap[0],b.target))return n._setfocus(),!1},_parsemarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(f,[b,c,d]),a.each(c,function(a,c){if(c===undefined||c===!1)return!0;e=a.split("_");if(e.length>1){var d=b.find(j+"-"+e[0]);if(d.length>0){var f=e[1];f==="replacewith"?d[0]!==c[0]&&d.replacewith(c):f==="img"?d.is("img")?d.attr("src",c):d.replacewith(''):d.attr(e[1],c)}}else b.find(j+"-"+a).html(c)})},_getscrollbarsize:function(){if(n.scrollbarsize===undefined){var a=document.createelement("div");a.style.csstext="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendchild(a),n.scrollbarsize=a.offsetwidth-a.clientwidth,document.body.removechild(a)}return n.scrollbarsize}},a.magnificpopup={instance:null,proto:o.prototype,modules:[],open:function(b,c){return a(),b?b=a.extend(!0,{},b):b={},b.isobj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificpopup.instance&&a.magnificpopup.instance.close()},registermodule:function(b,c){c.options&&(a.magnificpopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableon:0,key:null,midclick:!1,mainclass:"",preloader:!0,focus:"",closeoncontentclick:!1,closeonbgclick:!0,closebtninside:!0,showclosebtn:!0,enableescapekey:!0,modal:!1,aligntop:!1,removaldelay:0,prependto:null,fixedcontentpos:"auto",fixedbgpos:"auto",overflowy:"auto",closemarkup:'',tclose:"close (esc)",tloading:"loading..."}},a.fn.magnificpopup=function(b){a();var c=a(this);if(typeof b=="string")if(b==="open"){var d,e=p?c.data("magnificpopup"):c[0].magnificpopup,f=parseint(arguments[1],10)||0;e.items?d=e.items[f]:(d=c,e.delegate&&(d=d.find(e.delegate)),d=d.eq(f)),n._openclick({mfpel:d},c,e)}else n.isopen&&n[b].apply(n,array.prototype.slice.call(arguments,1));else b=a.extend(!0,{},b),p?c.data("magnificpopup",b):c[0].magnificpopup=b,n.addgroup(c,b);return c};var c="inline",d,e,f,g=function(){f&&(e.after(f.addclass(d)).detach(),f=null)};a.magnificpopup.registermodule(c,{options:{hiddenclass:"hide",markup:"",tnotfound:"content not found"},proto:{initinline:function(){n.types.push(c),w(b+"."+c,function(){g()})},getinline:function(b,c){g();if(b.src){var d=n.st.inline,e=a(b.src);if(e.length){var f=e[0].parentnode;f&&f.tagname&&(e||(d=d.hiddenclass,e=x(d),d="mfp-"+d),f=e.after(e).detach().removeclass(d)),n.updatestatus("ready")}else n.updatestatus("error",d.tnotfound),e=a("
");return b.inlineelement=e,e}return n.updatestatus("ready"),n._parsemarkup(c,{},b),c}}});var h="ajax",i,j=function(){i&&a(document.body).removeclass(i)},k=function(){j(),n.req&&n.req.abort()};a.magnificpopup.registermodule(h,{options:{settings:null,cursor:"mfp-ajax-cur",terror:'the content could not be loaded.'},proto:{initajax:function(){n.types.push(h),i=n.st.ajax.cursor,w(b+"."+h,k),w("beforechange."+h,k)},getajax:function(b){i&&a(document.body).addclass(i),n.updatestatus("loading");var c=a.extend({url:b.src,success:function(c,d,e){var f={data:c,xhr:e};y("parseajax",f),n.appendcontent(a(f.data),h),b.finished=!0,j(),n._setfocus(),settimeout(function(){n.wrap.addclass(k)},16),n.updatestatus("ready"),y("ajaxcontentadded")},error:function(){j(),b.finished=b.loaderror=!0,n.updatestatus("error",n.st.ajax.terror.replace("%url%",b.src))}},n.st.ajax.settings);return n.req=a.ajax(c),""}}});var l,m=function(b){if(b.data&&b.data.title!==undefined)return b.data.title;var c=n.st.image.titlesrc;if(c){if(a.isfunction(c))return c.call(n,b);if(b.el)return b.el.attr(c)||""}return""};a.magnificpopup.registermodule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titlesrc:"title",verticalfit:!0,terror:'the image could not be loaded.'},proto:{initimage:function(){var c=n.st.image,d=".image";n.types.push("image"),w(g+d,function(){n.curritem.type==="image"&&c.cursor&&a(document.body).addclass(c.cursor)}),w(b+d,function(){c.cursor&&a(document.body).removeclass(c.cursor),r.off("resize"+j)}),w("resize"+d,n.resizeimage),n.islowie&&w("afterchange",n.resizeimage)},resizeimage:function(){var a=n.curritem;if(!a||!a.img)return;if(n.st.image.verticalfit){var b=0;n.islowie&&(b=parseint(a.img.css("padding-top"),10)+parseint(a.img.css("padding-bottom"),10)),a.img.css("max-height",n.wh-b)}},_onimagehassize:function(a){a.img&&(a.hassize=!0,l&&clearinterval(l),a.ischeckingimgsize=!1,y("imagehassize",a),a.imghidden&&(n.content&&n.content.removeclass("mfp-loading"),a.imghidden=!1))},findimagesize:function(a){var b=0,c=a.img[0],d=function(e){l&&clearinterval(l),l=setinterval(function(){if(c.naturalwidth>0){n._onimagehassize(a);return}b>200&&clearinterval(l),b++,b===3?d(10):b===40?d(50):b===100&&d(500)},e)};d(1)},getimage:function(b,c){var d=0,e=function(){b&&(b.img[0].complete?(b.img.off(".mfploader"),b===n.curritem&&(n._onimagehassize(b),n.updatestatus("ready")),b.hassize=!0,b.loaded=!0,y("imageloadcomplete")):(d++,d<200?settimeout(e,100):f()))},f=function(){b&&(b.img.off(".mfploader"),b===n.curritem&&(n._onimagehassize(b),n.updatestatus("error",g.terror.replace("%url%",b.src))),b.hassize=!0,b.loaded=!0,b.loaderror=!0)},g=n.st.image,h=c.find(".mfp-img");if(h.length){var i=document.createelement("img");i.classname="mfp-img",b.el&&b.el.find("img").length&&(i.alt=b.el.find("img").attr("alt")),b.img=a(i).on("load.mfploader",e).on("error.mfploader",f),i.src=b.src,h.is("img")&&(b.img=b.img.clone()),i=b.img[0],i.naturalwidth>0?b.hassize=!0:i.width||(b.hassize=!1)}return n._parsemarkup(c,{title:m(b),img_replacewith:b.img},b),n.resizeimage(),b.hassize?(l&&clearinterval(l),b.loaderror?(c.addclass("mfp-loading"),n.updatestatus("error",g.terror.replace("%url%",b.src))):(c.removeclass("mfp-loading"),n.updatestatus("ready")),c):(n.updatestatus("loading"),b.loading=!0,b.hassize||(b.imghidden=!0,c.addclass("mfp-loading"),n.findimagesize(b)),c)}}});var n,o=function(){return n===undefined&&(n=document.createelement("p").style.moztransform!==undefined),n};a.magnificpopup.registermodule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initzoom:function(){var a=n.st.zoom,d=".zoom",e;if(!a.enabled||!n.supportstransition)return;var f=a.duration,g=function(b){var c=b.clone().removeattr("style").removeattr("class").addclass("mfp-animated-image"),d="all "+a.duration/1e3+"s "+a.easing,e={position:"fixed",zindex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,c.css(e),c},h=function(){n.content.css("visibility","visible")},i,j;w("buildcontrols"+d,function(){if(n._allowzoom()){cleartimeout(i),n.content.css("visibility","hidden"),e=n._getitemtozoom();if(!e){h();return}j=g(e),j.css(n._getoffset()),n.wrap.append(j),i=settimeout(function(){j.css(n._getoffset(!0)),i=settimeout(function(){h(),settimeout(function(){j.remove(),e=j=null,y("zoomanimationended")},16)},f)},16)}}),w(c+d,function(){if(n._allowzoom()){cleartimeout(i),n.st.removaldelay=f;if(!e){e=n._getitemtozoom();if(!e)return;j=g(e)}j.css(n._getoffset(!0)),n.wrap.append(j),n.content.css("visibility","hidden"),settimeout(function(){j.css(n._getoffset())},16)}}),w(b+d,function(){n._allowzoom()&&(h(),j&&j.remove(),e=null)})},_allowzoom:function(){return n.curritem.type==="image"},_getitemtozoom:function(){return n.curritem.hassize?n.curritem.img:!1},_getoffset:function(b){var c;b?c=n.curritem.img:c=n.st.zoom.opener(n.curritem.el||n.curritem);var d=c.offset(),e=parseint(c.css("padding-top"),10),f=parseint(c.css("padding-bottom"),10);d.top-=a(window).scrolltop()-e;var g={width:c.width(),height:(p?c.innerheight():c[0].offsetheight)-f-e};return o()?g["-moz-transform"]=g.transform="translate("+d.left+"px,"+d.top+"px)":(g.left=d.left,g.top=d.top),g}}});var p="iframe",q="//about:blank",r=function(a){if(n.currtemplate[p]){var b=n.currtemplate[p].find("iframe");b.length&&(a||(b[0].src=q),n.isie8&&b.css("display",a?"block":"none"))}};a.magnificpopup.registermodule(p,{options:{markup:'
',srcaction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initiframe:function(){n.types.push(p),w("beforechange",function(a,b,c){b!==c&&(b===p?r():c===p&&r(!0))}),w(b+"."+p,function(){r()})},getiframe:function(b,c){var d=b.src,e=n.st.iframe;a.each(e.patterns,function(){if(d.indexof(this.index)>-1)return this.id&&(typeof this.id=="string"?d=d.substr(d.lastindexof(this.id)+this.id.length,d.length):d=this.id.call(this,d)),d=this.src.replace("%id%",d),!1});var f={};return e.srcaction&&(f[e.srcaction]=d),n._parsemarkup(c,f,b),n.updatestatus("ready"),c}}});var s=function(a){var b=n.items.length;return a>b-1?a-b:a<0?b+a:a},t=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificpopup.registermodule("gallery",{options:{enabled:!1,arrowmarkup:'',preload:[0,2],navigatebyimgclick:!0,arrows:!0,tprev:"previous (left arrow key)",tnext:"next (right arrow key)",tcounter:"%curr% of %total%"},proto:{initgallery:function(){var c=n.st.gallery,d=".mfp-gallery",e=boolean(a.fn.mfpfastclick);n.direction=!0;if(!c||!c.enabled)return!1;u+=" mfp-gallery",w(g+d,function(){c.navigatebyimgclick&&n.wrap.on("click"+d,".mfp-img",function(){if(n.items.length>1)return n.next(),!1}),s.on("keydown"+d,function(a){a.keycode===37?n.prev():a.keycode===39&&n.next()})}),w("updatestatus"+d,function(a,b){b.text&&(b.text=t(b.text,n.curritem.index,n.items.length))}),w(f+d,function(a,b,d,e){var f=n.items.length;d.counter=f>1?t(c.tcounter,e.index,f):""}),w("buildcontrols"+d,function(){if(n.items.length>1&&c.arrows&&!n.arrowleft){var b=c.arrowmarkup,d=n.arrowleft=a(b.replace(/%title%/gi,c.tprev).replace(/%dir%/gi,"left")).addclass(m),f=n.arrowright=a(b.replace(/%title%/gi,c.tnext).replace(/%dir%/gi,"right")).addclass(m),g=e?"mfpfastclick":"click";d[g](function(){n.prev()}),f[g](function(){n.next()}),n.isie7&&(x("b",d[0],!1,!0),x("a",d[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),n.container.append(d.add(f))}}),w(h+d,function(){n._preloadtimeout&&cleartimeout(n._preloadtimeout),n._preloadtimeout=settimeout(function(){n.preloadnearbyimages(),n._preloadtimeout=null},16)}),w(b+d,function(){s.off(d),n.wrap.off("click"+d),n.arrowleft&&e&&n.arrowleft.add(n.arrowright).destroymfpfastclick(),n.arrowright=n.arrowleft=null})},next:function(){n.direction=!0,n.index=s(n.index+1),n.updateitemhtml()},prev:function(){n.direction=!1,n.index=s(n.index-1),n.updateitemhtml()},goto:function(a){n.direction=a>=n.index,n.index=a,n.updateitemhtml()},preloadnearbyimages:function(){var a=n.st.gallery.preload,b=math.min(a[0],n.items.length),c=math.min(a[1],n.items.length),d;for(d=1;d<=(n.direction?c:b);d++)n._preloaditem(n.index+d);for(d=1;d<=(n.direction?b:c);d++)n._preloaditem(n.index-d)},_preloaditem:function(b){b=s(b);if(n.items[b].preloaded)return;var c=n.items[b];c.parsed||(c=n.parseel(b)),y("lazyload",c),c.type==="image"&&(c.img=a('').on("load.mfploader",function(){c.hassize=!0}).on("error.mfploader",function(){c.hassize=!0,c.loaderror=!0,y("lazyloaderror",c)}).attr("src",c.src)),c.preloaded=!0}}});var u="retina";a.magnificpopup.registermodule(u,{options:{replacesrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initretina:function(){if(window.devicepixelratio>1){var a=n.st.retina,b=a.ratio;b=isnan(b)?b():b,b>1&&(w("imagehassize."+u,function(a,c){c.img.css({"max-width":c.img[0].naturalwidth/b,width:"100%"})}),w("elementparse."+u,function(c,d){d.src=a.replacesrc(d,b)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){r.off("touchmove"+f+" touchend"+f)},e="mfpfastclick",f="."+e;a.fn.mfpfastclick=function(e){return a(this).each(function(){var g=a(this),h;if(c){var i,j,k,l,m,n;g.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalevent?a.originalevent.touches[0]:a.touches[0],j=m.clientx,k=m.clienty,r.on("touchmove"+f,function(a){m=a.originalevent?a.originalevent.touches:a.touches,n=m.length,m=m[0];if(math.abs(m.clientx-j)>10||math.abs(m.clienty-k)>10)l=!0,d()}).on("touchend"+f,function(a){d();if(l||n>1)return;h=!0,a.preventdefault(),cleartimeout(i),i=settimeout(function(){h=!1},b),e()})})}g.on("click"+f,function(){h||e()})})},a.fn.destroymfpfastclick=function(){a(this).off("touchstart"+f+" click"+f),c&&r.off("touchmove"+f+" touchend"+f)}}(),a()})