Give – Donation Plugin and Fundraising Platform - Version 2.2.2

Version Description

Give version 1.8 is a major update. Please make sure you make a backup of your database before updating.

Download this release

Release Info

Developer dlocc
Plugin Icon 128x128 Give – Donation Plugin and Fundraising Platform
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

assets/dist/js/admin.js CHANGED
@@ -8,7 +8,7 @@
8
  * Full details and documentation:
9
  * http://openexchangerates.github.io/accounting.js/
10
  */
11
- !function(i,n){function o(e){return!!(""===e||e&&e.charCodeAt&&e.substr)}function a(e){return f?f(e):"[object Array]"===p.call(e)}function r(e){return e&&"[object Object]"===p.call(e)}function s(e,t){var i;e=e||{},t=t||{};for(i in t)t.hasOwnProperty(i)&&null==e[i]&&(e[i]=t[i]);return e}function l(e,t,i){var n,o,a=[];if(!e)return a;if(h&&e.map===h)return e.map(t,i);for(n=0,o=e.length;n<o;n++)a[n]=t.call(i,e[n],n,e);return a}function c(e,t){return e=Math.round(Math.abs(e)),isNaN(e)?t:e}function d(e){var t=u.settings.currency.format;return"function"==typeof e&&(e=e()),o(e)&&e.match("%v")?{pos:e,neg:e.replace("-","").replace("%v","-%v"),zero:e}:e&&e.pos&&e.pos.match("%v")?e:o(t)?u.settings.currency.format={pos:t,neg:t.replace("%v","-%v"),zero:t}:t}var u={};u.version="0.4.1",u.settings={currency:{symbol:"$",format:"%s%v",decimal:".",thousand:",",precision:2,grouping:3},number:{precision:0,grouping:3,thousand:",",decimal:"."}};var h=Array.prototype.map,f=Array.isArray,p=Object.prototype.toString,g=u.unformat=u.parse=function(e,t){if(a(e))return l(e,function(e){return g(e,t)});if("number"==typeof(e=e||0))return e;t=t||u.settings.number.decimal;var i=new RegExp("[^0-9-"+t+"]",["g"]),n=parseFloat((""+e).replace(/\((.*)\)/,"-$1").replace(i,"").replace(t,"."));return isNaN(n)?0:n},_=u.toFixed=function(e,t){t=c(t,u.settings.number.precision);var i=Math.pow(10,t);return(Math.round(u.unformat(e)*i)/i).toFixed(t)},m=u.formatNumber=u.format=function(e,t,i,n){if(a(e))return l(e,function(e){return m(e,t,i,n)});e=g(e);var o=s(r(t)?t:{precision:t,thousand:i,decimal:n},u.settings.number),d=c(o.precision),h=e<0?"-":"",f=parseInt(_(Math.abs(e||0),d),10)+"",p=f.length>3?f.length%3:0;return h+(p?f.substr(0,p)+o.thousand:"")+f.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+o.thousand)+(d?o.decimal+_(Math.abs(e),d).split(".")[1]:"")},v=u.formatMoney=function(e,t,i,n,o,h){if(a(e))return l(e,function(e){return v(e,t,i,n,o,h)});e=g(e);var f=s(r(t)?t:{symbol:t,precision:i,thousand:n,decimal:o,format:h},u.settings.currency),p=d(f.format);return(e>0?p.pos:e<0?p.neg:p.zero).replace("%s",f.symbol).replace("%v",m(Math.abs(e),c(f.precision),f.thousand,f.decimal))};u.formatColumn=function(e,t,i,n,h,f){if(!e)return[];var p=s(r(t)?t:{symbol:t,precision:i,thousand:n,decimal:h,format:f},u.settings.currency),_=d(p.format),v=_.pos.indexOf("%s")<_.pos.indexOf("%v"),b=0;return l(l(e,function(e,t){if(a(e))return u.formatColumn(e,p);e=g(e);var i=e>0?_.pos:e<0?_.neg:_.zero,n=i.replace("%s",p.symbol).replace("%v",m(Math.abs(e),c(p.precision),p.thousand,p.decimal));return n.length>b&&(b=n.length),n}),function(e,t){return o(e)&&e.length<b?v?e.replace(p.symbol,p.symbol+new Array(b-e.length+1).join(" ")):new Array(b-e.length+1).join(" ")+e:e})},void 0!==e&&e.exports&&(t=e.exports=u),t.accounting=u}()},function(e,t,i){var n,o,a;!function(r){o=[i(0)],n=r,void 0!==(a="function"==typeof n?n.apply(t,o):n)&&(e.exports=a)}(function(e){var t,i,n,o,a,r,s=function(){},l=!!window.jQuery,c=e(window),d=function(e,i){t.ev.on("mfp"+e+".mfp",i)},u=function(t,i,n,o){var a=document.createElement("div");return a.className="mfp-"+t,n&&(a.innerHTML=n),o?i&&i.appendChild(a):(a=e(a),i&&a.appendTo(i)),a},h=function(i,n){t.ev.triggerHandler("mfp"+i,n),t.st.callbacks&&(i=i.charAt(0).toLowerCase()+i.slice(1),t.st.callbacks[i]&&t.st.callbacks[i].apply(t,e.isArray(n)?n:[n]))},f=function(i){return i===r&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),r=i),t.currTemplate.closeBtn},p=function(){e.magnificPopup.instance||(t=new s,t.init(),e.magnificPopup.instance=t)},g=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1};s.prototype={constructor:s,init:function(){var i=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.supportsTransition=g(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),n=e(document),t.popupsCache={}},open:function(i){var o;if(!1===i.isObj){t.items=i.items.toArray(),t.index=0;var r,s=i.items;for(o=0;o<s.length;o++)if(r=s[o],r.parsed&&(r=r.el[0]),r===i.el[0]){t.index=o;break}}else t.items=e.isArray(i.items)?i.items:[i.items],t.index=i.index||0;if(t.isOpen)return void t.updateItemHTML();t.types=[],a="",i.mainEl&&i.mainEl.length?t.ev=i.mainEl.eq(0):t.ev=n,i.key?(t.popupsCache[i.key]||(t.popupsCache[i.key]={}),t.currTemplate=t.popupsCache[i.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,i),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=u("bg").on("click.mfp",function(){t.close()}),t.wrap=u("wrap").attr("tabindex",-1).on("click.mfp",function(e){t._checkIfClose(e.target)&&t.close()}),t.container=u("container",t.wrap)),t.contentContainer=u("content"),t.st.preloader&&(t.preloader=u("preloader",t.container,t.st.tLoading));var l=e.magnificPopup.modules;for(o=0;o<l.length;o++){var p=l[o];p=p.charAt(0).toUpperCase()+p.slice(1),t["init"+p].call(t)}h("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(d("MarkupParse",function(e,t,i,n){i.close_replaceWith=f(n.type)}),a+=" mfp-close-btn-in"):t.wrap.append(f())),t.st.alignTop&&(a+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:c.scrollTop(),position:"absolute"}),(!1===t.st.fixedBgPos||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:n.height(),position:"absolute"}),t.st.enableEscapeKey&&n.on("keyup.mfp",function(e){27===e.keyCode&&t.close()}),c.on("resize.mfp",function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var g=t.wH=c.height(),_={};if(t.fixedContentPos&&t._hasScrollBar(g)){var m=t._getScrollbarSize();m&&(_.marginRight=m)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):_.overflow="hidden");var v=t.st.mainClass;return t.isIE7&&(v+=" mfp-ie7"),v&&t._addClassToMFP(v),t.updateItemHTML(),h("BuildControls"),e("html").css(_),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||e(document.body)),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP("mfp-ready"),t._setFocus()):t.bgOverlay.addClass("mfp-ready"),n.on("focusin.mfp",t._onFocusIn)},16),t.isOpen=!0,t.updateSize(g),h("Open"),i},close:function(){t.isOpen&&(h("BeforeClose"),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP("mfp-removing"),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){h("Close");var i="mfp-removing mfp-ready ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(i+=t.st.mainClass+" "),t._removeClassFromMFP(i),t.fixedContentPos){var o={marginRight:""};t.isIE7?e("body, html").css("overflow",""):o.overflow="",e("html").css(o)}n.off("keyup.mfp focusin.mfp"),t.ev.off(".mfp"),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&!0!==t.currTemplate[t.currItem.type]||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t.st.autoFocusLast&&t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,h("AfterClose")},updateSize:function(e){if(t.isIOS){var i=document.documentElement.clientWidth/window.innerWidth,n=window.innerHeight*i;t.wrap.css("height",n),t.wH=n}else t.wH=e||c.height();t.fixedContentPos||t.wrap.css("height",t.wH),h("Resize")},updateItemHTML:function(){var i=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),i.parsed||(i=t.parseEl(t.index));var n=i.type;if(h("BeforeChange",[t.currItem?t.currItem.type:"",n]),t.currItem=i,!t.currTemplate[n]){var a=!!t.st[n]&&t.st[n].markup;h("FirstMarkupParse",a),t.currTemplate[n]=!a||e(a)}o&&o!==i.type&&t.container.removeClass("mfp-"+o+"-holder");var r=t["get"+n.charAt(0).toUpperCase()+n.slice(1)](i,t.currTemplate[n]);t.appendContent(r,n),i.preloaded=!0,h("Change",i),o=i.type,t.container.prepend(t.contentContainer),h("AfterChange")},appendContent:function(e,i){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&!0===t.currTemplate[i]?t.content.find(".mfp-close").length||t.content.append(f()):t.content=e:t.content="",h("BeforeAppend"),t.container.addClass("mfp-"+i+"-holder"),t.contentContainer.append(t.content)},parseEl:function(i){var n,o=t.items[i];if(o.tagName?o={el:e(o)}:(n=o.type,o={data:o,src:o.src}),o.el){for(var a=t.types,r=0;r<a.length;r++)if(o.el.hasClass("mfp-"+a[r])){n=a[r];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return o.type=n||t.st.type||"inline",o.index=i,o.parsed=!0,t.items[i]=o,h("ElementParse",o),t.items[i]},addGroup:function(e,i){var n=function(n){n.mfpEl=this,t._openClick(n,e,i)};i||(i={});var o="click.magnificPopup";i.mainEl=e,i.items?(i.isObj=!0,e.off(o).on(o,n)):(i.isObj=!1,i.delegate?e.off(o).on(o,i.delegate,n):(i.items=e,e.off(o).on(o,n)))},_openClick:function(i,n,o){if((void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick)||!(2===i.which||i.ctrlKey||i.metaKey||i.altKey||i.shiftKey)){var a=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(c.width()<a)return!0;i.type&&(i.preventDefault(),t.isOpen&&i.stopPropagation()),o.el=e(i.mfpEl),o.delegate&&(o.items=n.find(o.delegate)),t.open(o)}},updateStatus:function(e,n){if(t.preloader){i!==e&&t.container.removeClass("mfp-s-"+i),n||"loading"!==e||(n=t.st.tLoading);var o={status:e,text:n};h("UpdateStatus",o),e=o.status,n=o.text,t.preloader.html(n),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),i=e}},_checkIfClose:function(i){if(!e(i).hasClass("mfp-prevent-close")){var n=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(n&&o)return!0;if(!t.content||e(i).hasClass("mfp-close")||t.preloader&&i===t.preloader[0])return!0;if(i===t.content[0]||e.contains(t.content[0],i)){if(n)return!0}else if(o&&e.contains(document,i))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?n.height():document.body.scrollHeight)>(e||c.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(i){if(i.target!==t.wrap[0]&&!e.contains(t.wrap[0],i.target))return t._setFocus(),!1},_parseMarkup:function(t,i,n){var o;n.data&&(i=e.extend(n.data,i)),h("MarkupParse",[t,i,n]),e.each(i,function(i,n){if(void 0===n||!1===n)return!0;if(o=i.split("_"),o.length>1){var a=t.find(".mfp-"+o[0]);if(a.length>0){var r=o[1];"replaceWith"===r?a[0]!==n[0]&&a.replaceWith(n):"img"===r?a.is("img")?a.attr("src",n):a.replaceWith(e("<img>").attr("src",n).attr("class",a.attr("class"))):a.attr(o[1],n)}}else t.find(".mfp-"+i).html(n)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:s.prototype,modules:[],open:function(t,i){return p(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=i||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,i){i.options&&(e.magnificPopup.defaults[t]=i.options),e.extend(this.proto,i.proto),this.modules.push(t)},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:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(i){p();var n=e(this);if("string"==typeof i)if("open"===i){var o,a=l?n.data("magnificPopup"):n[0].magnificPopup,r=parseInt(arguments[1],10)||0;a.items?o=a.items[r]:(o=n,a.delegate&&(o=o.find(a.delegate)),o=o.eq(r)),t._openClick({mfpEl:o},n,a)}else t.isOpen&&t[i].apply(t,Array.prototype.slice.call(arguments,1));else i=e.extend(!0,{},i),l?n.data("magnificPopup",i):n[0].magnificPopup=i,t.addGroup(n,i);return n};var _,m,v,b=function(){v&&(m.after(v.addClass(_)).detach(),v=null)};e.magnificPopup.registerModule("inline",{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push("inline"),d("Close.inline",function(){b()})},getInline:function(i,n){if(b(),i.src){var o=t.st.inline,a=e(i.src);if(a.length){var r=a[0].parentNode;r&&r.tagName&&(m||(_=o.hiddenClass,m=u(_),_="mfp-"+_),v=a.after(m).detach().removeClass(_)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),a=e("<div>");return i.inlineElement=a,a}return t.updateStatus("ready"),t._parseMarkup(n,{},i),n}}});var y,x=function(){y&&e(document.body).removeClass(y)},w=function(){x(),t.req&&t.req.abort()};e.magnificPopup.registerModule("ajax",{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push("ajax"),y=t.st.ajax.cursor,d("Close.ajax",w),d("BeforeChange.ajax",w)},getAjax:function(i){y&&e(document.body).addClass(y),t.updateStatus("loading");var n=e.extend({url:i.src,success:function(n,o,a){var r={data:n,xhr:a};h("ParseAjax",r),t.appendContent(e(r.data),"ajax"),i.finished=!0,x(),t._setFocus(),setTimeout(function(){t.wrap.addClass("mfp-ready")},16),t.updateStatus("ready"),h("AjaxContentAdded")},error:function(){x(),i.finished=i.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",i.src))}},t.st.ajax.settings);return t.req=e.ajax(n),""}}});var k,C=function(i){if(i.data&&void 0!==i.data.title)return i.data.title;var n=t.st.image.titleSrc;if(n){if(e.isFunction(n))return n.call(t,i);if(i.el)return i.el.attr(n)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var i=t.st.image,n=".image";t.types.push("image"),d("Open"+n,function(){"image"===t.currItem.type&&i.cursor&&e(document.body).addClass(i.cursor)}),d("Close"+n,function(){i.cursor&&e(document.body).removeClass(i.cursor),c.off("resize.mfp")}),d("Resize"+n,t.resizeImage),t.isLowIE&&d("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var i=0;t.isLowIE&&(i=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-i)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,k&&clearInterval(k),e.isCheckingImgSize=!1,h("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,n=e.img[0],o=function(a){k&&clearInterval(k),k=setInterval(function(){if(n.naturalWidth>0)return void t._onImageHasSize(e);i>200&&clearInterval(k),i++,3===i?o(10):40===i?o(50):100===i&&o(500)},a)};o(1)},getImage:function(i,n){var o=0,a=function(){i&&(i.img[0].complete?(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("ready")),i.hasSize=!0,i.loaded=!0,h("ImageLoadComplete")):(o++,o<200?setTimeout(a,100):r()))},r=function(){i&&(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("error",s.tError.replace("%url%",i.src))),i.hasSize=!0,i.loaded=!0,i.loadError=!0)},s=t.st.image,l=n.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",i.el&&i.el.find("img").length&&(c.alt=i.el.find("img").attr("alt")),i.img=e(c).on("load.mfploader",a).on("error.mfploader",r),c.src=i.src,l.is("img")&&(i.img=i.img.clone()),c=i.img[0],c.naturalWidth>0?i.hasSize=!0:c.width||(i.hasSize=!1)}return t._parseMarkup(n,{title:C(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(k&&clearInterval(k),i.loadError?(n.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",i.src))):(n.removeClass("mfp-loading"),t.updateStatus("ready")),n):(t.updateStatus("loading"),i.loading=!0,i.hasSize||(i.imgHidden=!0,n.addClass("mfp-loading"),t.findImageSize(i)),n)}}});var j,T=function(){return void 0===j&&(j=void 0!==document.createElement("p").style.MozTransform),j};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,i=t.st.zoom,n=".zoom";if(i.enabled&&t.supportsTransition){var o,a,r=i.duration,s=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),n="all "+i.duration/1e3+"s "+i.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},a="transition";return o["-webkit-"+a]=o["-moz-"+a]=o["-o-"+a]=o[a]=n,t.css(o),t},l=function(){t.content.css("visibility","visible")};d("BuildControls"+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void l();a=s(e),a.css(t._getOffset()),t.wrap.append(a),o=setTimeout(function(){a.css(t._getOffset(!0)),o=setTimeout(function(){l(),setTimeout(function(){a.remove(),e=a=null,h("ZoomAnimationEnded")},16)},r)},16)}}),d("BeforeClose"+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=r,!e){if(!(e=t._getItemToZoom()))return;a=s(e)}a.css(t._getOffset(!0)),t.wrap.append(a),t.content.css("visibility","hidden"),setTimeout(function(){a.css(t._getOffset())},16)}}),d("Close"+n,function(){t._allowZoom()&&(l(),a&&a.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(i){var n;n=i?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var o=n.offset(),a=parseInt(n.css("padding-top"),10),r=parseInt(n.css("padding-bottom"),10);o.top-=e(window).scrollTop()-a;var s={width:n.width(),height:(l?n.innerHeight():n[0].offsetHeight)-r-a};return T()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var S=function(e){if(t.currTemplate.iframe){var i=t.currTemplate.iframe.find("iframe");i.length&&(e||(i[0].src="//about:blank"),t.isIE8&&i.css("display",e?"block":"none"))}};e.magnificPopup.registerModule("iframe",{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',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(){t.types.push("iframe"),d("BeforeChange",function(e,t,i){t!==i&&("iframe"===t?S():"iframe"===i&&S(!0))}),d("Close.iframe",function(){S()})},getIframe:function(i,n){var o=i.src,a=t.st.iframe;e.each(a.patterns,function(){if(o.indexOf(this.index)>-1)return this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1});var r={};return a.srcAction&&(r[a.srcAction]=o),t._parseMarkup(n,r,i),t.updateStatus("ready"),n}}});var M=function(e){var i=t.items.length;return e>i-1?e-i:e<0?i+e:e},I=function(e,t,i){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,i)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',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 i=t.st.gallery,o=".mfp-gallery";if(t.direction=!0,!i||!i.enabled)return!1;a+=" mfp-gallery",d("Open"+o,function(){i.navigateByImgClick&&t.wrap.on("click"+o,".mfp-img",function(){if(t.items.length>1)return t.next(),!1}),n.on("keydown"+o,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),d("UpdateStatus"+o,function(e,i){i.text&&(i.text=I(i.text,t.currItem.index,t.items.length))}),d("MarkupParse"+o,function(e,n,o,a){var r=t.items.length;o.counter=r>1?I(i.tCounter,a.index,r):""}),d("BuildControls"+o,function(){if(t.items.length>1&&i.arrows&&!t.arrowLeft){var n=i.arrowMarkup,o=t.arrowLeft=e(n.replace(/%title%/gi,i.tPrev).replace(/%dir%/gi,"left")).addClass("mfp-prevent-close"),a=t.arrowRight=e(n.replace(/%title%/gi,i.tNext).replace(/%dir%/gi,"right")).addClass("mfp-prevent-close");o.click(function(){t.prev()}),a.click(function(){t.next()}),t.container.append(o.add(a))}}),d("Change"+o,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),d("Close"+o,function(){n.off(o),t.wrap.off("click"+o),t.arrowRight=t.arrowLeft=null})},next:function(){t.direction=!0,t.index=M(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=M(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,n=Math.min(i[0],t.items.length),o=Math.min(i[1],t.items.length);for(e=1;e<=(t.direction?o:n);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?n:o);e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=M(i),!t.items[i].preloaded){var n=t.items[i];n.parsed||(n=t.parseEl(i)),h("LazyLoad",n),"image"===n.type&&(n.img=e('<img class="mfp-img" />').on("load.mfploader",function(){n.hasSize=!0}).on("error.mfploader",function(){n.hasSize=!0,n.loadError=!0,h("LazyLoadError",n)}).attr("src",n.src)),n.preloaded=!0}}}});e.magnificPopup.registerModule("retina",{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,i=e.ratio;i=isNaN(i)?i():i,i>1&&(d("ImageHasSize.retina",function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})}),d("ElementParse.retina",function(t,n){n.src=e.replaceSrc(n,i)}))}}}}),p()})},function(e,t){jQuery.fn.giveHintCss=function(e,t){return this.each(function(){var i=jQuery(this);t=jQuery.extend({label:""},t);var n=i.next("span.give-hint-tooltip-js");if(!n.length){var o=t.label.length?t.label:i.data("hint-aria-label");if(!o.length)return;i.after('<span class="give-hint-tooltip-js hint--top hint--medium" aria-label="'+o+'"></span>'),n=i.next(),n.css({top:-i.outerHeight(),left:-i.outerWidth()/2})}"show"===e?n.addClass("hint--always"):"hide"===e&&n.removeClass("hint--always")})},jQuery(document).ready(function(e){function t(t){if(!t.is('[class*="hint"]')){var i=t.attr("class"),n=[],o=t.data("tooltip").split(" ").length;i&&(i=i.split(" "),n=e.grep(i,function(e){return-1!==e.indexOf("give-icon")}),n.length&&(n=n.join(" "),t.removeClass(n),t.append('<i class="'+n+'"></i>'))),t.addClass("hint--top"),15<o?t.addClass("hint--large"):7<o&&t.addClass("hint--medium"),t.attr("aria-label",t.data("tooltip"))}}var i=e("[data-tooltip]");i.length&&i.each(function(i,n){n=n instanceof jQuery?n:e(n),t(n)}),e("body").on("hover","[data-tooltip]",function(){t(e(this))})})},function(e,t,i){"use strict";var n=i(7),o=i(8),a={init:function(){var e=["form"],t=0;for(jQuery(document).trigger("give:preInit");t<e.length;)a[e[t]].init&&a[e[t]].init(),t++;jQuery(document).trigger("give:postInit")},fn:{formatCurrency:function(e,t,i){var n={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:parseInt(give_global_vars.number_decimals),currency:give_global_vars.currency};if(e=e.toString().trim(),i=void 0===i?{}:i,i.length&&(n={symbol:"",decimal:a.form.fn.getInfo("decimal_separator",i),thousand:a.form.fn.getInfo("thousands_separator",i),precision:a.form.fn.getInfo("number_decimals",i),currency:a.form.fn.getInfo("currency_code",i)}),t=jQuery.extend(n,t),t.precision=parseInt(t.precision),"INR"===t.currency){var o=accounting.unformat(e,".").toString(),r="",s=void 0,l=void 0,c=o.indexOf(".");for(-1!==c&&t.precision?(r=Number(o.substr(parseInt(c))).toFixed(t.precision).toString().substr(1),o=o.substr(0,parseInt(c)),r.length?t.precision+1>r.length&&(r=(r+"000000000").substr(0,t.precision+1)):r=".0000000000".substr(0,parseInt(c)+1)):r=".000000000".substr(0,t.precision+1),s=o.substr(-3),l=o.substr(0,parseInt(o.length)-3);l.length>0;)s=l.substr(-2)+t.thousand+s,l=l.substr(0,parseInt(l.length)-2);r.length&&(s+=r),e=s,void 0!==t.symbol&&t.symbol.length&&("after"===t.position?e+=t.symbol:e=t.symbol+e)}else"after"===t.position&&(t.format="%v%s"),e=accounting.formatMoney(e,t);return e},unFormatCurrency:function(e,t){if("string"==typeof e){var i=","===t.trim()?/[^0-9\,-]+/g:/[^0-9\.-]+/g;e=e.replace(i,""),0===e.indexOf(t)?e=e.substr(1):e.length-1===e.indexOf(t)&&(e=e.slice(0,-1))}return Math.abs(parseFloat(accounting.unformat(e,t)))},getParameterByName:function(e,t){t||(t=window.location.href),e=e.replace(/[\[\]]/g,"\\$&");var i=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),n=i.exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},getGlobalVar:function(e){return void 0===give_global_vars[e]?"":give_global_vars[e]},setCache:function(e,t,i){i.length?a.cache["form_"+a.form.fn.getInfo("form-id",i)][e]=t:a.cache[e]=t},getCache:function(e,t){var i=void 0,n=a.cache["form_"+a.form.fn.getInfo("form-id",t)];return i=t.length?void 0!==n?n[e]:"":a.cache[e],i=void 0===i?"":i},__getCookie:function(e){var t="; "+document.cookie,i=t.split("; "+e+"="),n="";return 2===i.length&&(n=i.pop().split(";").shift()),n}},cache:{}};a.notice=n.a,a.form=o.a,t.a=a},function(e,t,i){"use strict";t.a={fn:{renderNotice:function(e,t){var i=void 0;switch(t=void 0!==t?t:{},e){case"bad_minimum":i=jQuery('<div class="give_error give-invalid-minimum give-hidden">'+this.getNotice(e,t)+"</div>");break;case"bad_maximum":i=jQuery('<div class="give_error give-invalid-maximum give-hidden">'+this.getNotice(e,t)+"</div>")}if(!t.length)return"";i.insertBefore(t.find(".give-total-wrap")).show()},getNotice:function(e,t){if(!e.length)return null;var i,n,o;if(i=n=o="",t.length)switch(e){case"bad_minimum":n=Give.fn.getGlobalVar(e),o=Give.form.fn.getMinimumAmount(t);break;case"bad_maximum":n=Give.fn.getGlobalVar(e),o=Give.form.fn.getMaximumAmount(t)}return t.length&&""!==n&&(i=n+" "+Give.fn.formatCurrency(o,{symbol:Give.form.fn.getInfo("currency_symbol",t),position:Give.form.fn.getInfo("currency_position",t)},t)),i}}}},function(e,t,i){"use strict";t.a={init:function(){this.fn.field.formatCreditCard(jQuery("form.give-form")),this.fn.__initialize_cache(),window.onload=function(){Give.form.fn.__sendBackToForm()}},fn:{disable:function(e,t){if(!e.length)return!1;e.find(".give-submit").prop("disabled",t)},formatAmount:function(e,t,i){return t.length?Give.fn.formatCurrency(e,i,t):e},getInfo:function(e,t){var i="";if(t=void 0!==t?t:{},!e.length||!t.length)return i;switch(e){case"gateways":i=[],jQuery.each(t.find('input[name="payment-mode"]'),function(e,t){t=t instanceof jQuery?t:jQuery(t),i.push(t.val().trim())});break;case"form-type":t.hasClass("give-form-type-set")?i="set":t.hasClass("give-form-type-multi")&&(i="multi");break;case"form-id":i=t.find('input[name="give-form-id"]').val();break;default:i=t.get(0).hasAttribute("data-"+e)?t.attr("data-"+e):t.attr(e),void 0!==i&&i.trim()}return i},setInfo:function(e,t,i,n){if(!i.length)return!1;switch(e=void 0===e?"data":e){case"nonce":i.find('input[name="give-form-hash"]').val(t)}if(void 0!==n&&!n.length)return!1;switch(e){case"attr":i.attr(n,t);break;default:i.data(n,t)}return!0},getGateway:function(e){var t="";return e.length?(t=e.find('input[name="payment-mode"]:checked').val().trim(),void 0!==t?t:""):t},getVariablePrices:function(e){var t,i=[];return e.length&&e.hasClass("give-form-type-multi")&&(t=e.find(".give-donation-levels-wrap [data-price-id] "))?(jQuery.each(t,function(t,n){n=n instanceof jQuery?n:jQuery(n);var o=Give.form.fn.getInfo("decimal_separator",e);i.push({price_id:n.data("price-id"),amount:Give.fn.unFormatCurrency(n.val(),o)})}),i):i},getPriceID:function(e,t){var i=this.getVariablePrices(e),n=Give.fn.unFormatCurrency(e.find('input[name="give-amount"]').val(),this.getInfo("decimal_separator",e)),o=Give.fn.getCache("amount_"+n,e)?Give.fn.getCache("amount_"+n,e):-1;return t=void 0===t||t,i.length&&-1===o&&(t?(jQuery.each(i,function(e,t){if(t.amount===n)return o=t.price_id,!1}),-1===o&&this.getMinimumAmount(e)<=n&&this.getMaximumAmount(e)>=n&&this.getMinimumAmount(e)<=n&&(o="custom")):o=jQuery('input[name="give-price-id"]',e).val()),o},getMinimumAmount:function(e){return e.find('input[name="give-form-minimum"]').val()},getMaximumAmount:function(e){return e.find('input[name="give-form-maximum"]').val()},getAmount:function(e){if(!e.length)return null;var t=e.find('input[name="give-amount"]').val();return void 0!==t&&t||(t=0),Give.fn.unFormatCurrency(t,this.getInfo("decimal_separator",e))},getNonce:function(e){if(!e.length)return"";var t=e.find('input[name="give-form-hash"]').val();return void 0!==t&&t||(t=""),t},resetNonce:function(e){if(!e.length||!jQuery('input[name="give-form-hash"]',e).length)return!1;Give.form.fn.disable(e,!0),jQuery.post(give_global_vars.ajaxurl,{action:"give_donation_form_nonce",give_form_id:Give.form.fn.getInfo("form-id",e)},function(t){Give.form.fn.setInfo("nonce",t.data,e,""),Give.form.fn.disable(e,!1)})},resetAllNonce:function(e){if(!e.length)return!1;Give.form.fn.disable(e,!0),jQuery.post(give_global_vars.ajaxurl,{action:"give_donation_form_reset_all_nonce",give_form_id:Give.form.fn.getInfo("form-id",e)},function(t){var i=e.find('input[name="give-form-user-register-hash"]');Give.form.fn.setInfo("nonce",t.data.give_form_hash,e,""),i.length&&i.val(t.data.give_form_user_register_hash),Give.form.fn.disable(e,!1),jQuery(document).trigger("give_reset_all_nonce",[t.data])})},autoSelectDonationLevel:function(e,t){if(!e.length||"multi"!==this.getInfo("form-type",e))return!1;switch(t=void 0===t?this.getPriceID(e,!1):t,!0){case!!e.find(".give-radio-input").length:e.find(".give-radio-input").prop("checked",!1),e.find('.give-radio-input[data-price-id="'+t+'"]').prop("checked",!0).addClass("give-default-level");break;case!!e.find("button.give-donation-level-btn").length:e.find("button.give-donation-level-btn").blur(),e.find('button.give-donation-level-btn[data-price-id="'+t+'"]').focus().addClass("give-default-level");break;case!!e.find("select.give-select-level").length:e.find("select.give-select-level option").prop("selected",!1),e.find('select.give-select-level option[data-price-id="'+t+'"]').prop("selected",!0).addClass("give-default-level")}},autoSetMultiLevel:function(e){var t=e.parents("form"),i=e.val(),n=e.data("price-id");if(void 0===n&&(n=e.find("option:selected").data("price-id")),"custom"===n)return t.find(".give-amount-top").val("").focus(),!1;t.find(".give-amount-top").val(i),t.find("span.give-amount-top").text(i);var o=Give.form.fn.getInfo("decimal_separator",t);jQuery(".give-donation-amount .give-text-input",t).attr("data-amount",Give.fn.unFormatCurrency(t.find(".give-final-total-amount").attr("data-total"),o)),t.find(".give-donation-amount .give-text-input").trigger("blur",[t,i,n])},__sendBackToForm:function(){var e=Give.fn.getParameterByName("form-id"),t=Give.fn.getParameterByName("payment-mode");if(!e||!t)return!1;var i=jQuery("body").find("#give-form-"+e+"-wrap"),n=i.find("form.give-form"),o=i.hasClass("give-display-modal"),a=i.hasClass("give-display-button"),r=i.hasClass("give-display-reveal");n.find("#give-gateway-radio-list label").removeClass("give-gateway-option-selected"),n.find("input[name=payment-mode][value="+t+"]").prop("checked",!0).parent().addClass("give-gateway-option-selected");var s=Give.fn.getParameterByName("level-id"),l=n.find('*[data-price-id="'+s+'"]');if(l.length>0&&this.autoSetMultiLevel(l),jQuery(".give-form-wrap").hasClass("give-form-grid-wrap")&&1===jQuery("#give-modal-form-"+e).length)return void jQuery.magnificPopup.open({items:{type:"inline",src:"#give-modal-form-"+e},fixedContentPos:!0,fixedBgPos:!0,closeBtnInside:!0,midClick:!0,removalDelay:300,mainClass:"modal-fade-slide"});o||a?give_open_form_modal(i,n):r&&(n.find(".give-btn-reveal").hide(),n.find("#give-payment-mode-select, #give_purchase_form_wrap").slideDown())},isValidDonationAmount:function(e){if(e.find('input[name="give-form-minimum"]').length<=0)return!0;var t=this.getMinimumAmount(e),i=this.getMaximumAmount(e),n=this.getAmount(e),o=this.getPriceID(e,!0);return 0!==n&&(-1<n&&n>=t&&n<=i||-1!==o)},__initialize_cache:function(){jQuery.each(jQuery(".give-form"),function(e,t){t=t instanceof jQuery?t:jQuery(t),Give.cache["form_"+Give.form.fn.getInfo("form-id",t)]=[]})},field:{formatCreditCard:function(e){e.each(function(e,t){t=jQuery(t);var i=t.find(".card-number"),n=t.find(".card-cvc"),o=t.find(".card-expiry");i.length&&(i.payment("formatCardNumber"),n.payment("formatCardCVC"),o.payment("formatCardExpiry"))})}}}}},function(e,t){!function(e){"use strict";function t(e,t){return function(i){i.target&&i.target.matches(e)&&t.apply(this,arguments)}}Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),i=t.length;--i>=0&&t.item(i)!==this;);return i>-1}),e.addDynamicEventListener=function(e,i,n,o,a){e.addEventListener(i,t(n,o),a)}}(window)},function(e,t,i){"use strict";function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),i.d(t,"GiveModal",function(){return c}),i.d(t,"GiveErrorAlert",function(){return d}),i.d(t,"GiveWarningAlert",function(){return u}),i.d(t,"GiveNoticeAlert",function(){return h}),i.d(t,"GiveSuccessAlert",function(){return f}),i.d(t,"GiveConfirmModal",function(){return p}),i.d(t,"GiveFormModal",function(){return g});var r=i(4),s=(i.n(r),i(9)),l=(i.n(s),function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}()),c=function(){function e(t){if(a(this,e),e===this.constructor)throw new Error("Abstract classes can't be instantiated.");this.config=Object.assign({type:"",triggerSelector:"",externalPlugin:"magnificPopup",classes:{modalWrapper:""},modalContent:{}},t),this.config.mainClass=((this.config.mainClass?this.config.mainClass:"")+" modal-fade-slide").trim()}return l(e,[{key:"init",value:function(){this.setupTemplate(),this.popupConfig(),this.__setupClickEvent()}},{key:"getTemplate",value:function(){var e='<div class="give-hidden"></div>';return this.config.type.length&&(e='<div class="give-modal give-modal--zoom '+(this.config.classes.modalWrapper?(""+this.config.classes.modalWrapper).trim():"")+'">\n\n\t\t\t\t<div class="give-modal__body">\n\t\t\t\t\t'+(this.config.modalContent.title?'<h2 class="give-modal__title">'+this.config.modalContent.title+"</h2>":"")+"\n\t\t\t\t\t"+(this.config.modalContent.desc?'<p class="give-modal__description">'+this.config.modalContent.desc+"</p>":"")+'\n\t\t\t\t</div>\n\t\n\t\t\t\t<div class="give-modal__controls">\n\n\t\t\t\t\t'+("form"===this.config.type?'<div class="spinner"></div>':"")+"\n\t\t\t\t\t"+("form"===this.config.type?'<a class="give-modal--additional-link" href="'+this.config.modalContent.link+'">'+this.config.modalContent.link_text+"</a>":"")+'\n\n\t\t\t\t\t<button class="give-button give-button--secondary give-popup-close-button">\n\t\t\t\t\t\t'+(this.config.modalContent.cancelBtnTitle?this.config.modalContent.cancelBtnTitle:"confirm"===this.config.type?give_vars.cancel:give_vars.close)+"\n\t\t\t\t\t</button>\n\n\t\t\t\t\t"+("confirm"!==this.config.type&&"form"!==this.config.type?"":'<button class="give-button give-button--primary give-popup-'+this.config.type+'-button">\n\n\t\t\t\t\t\t'+(this.config.modalContent.confirmBtnTitle?this.config.modalContent.confirmBtnTitle:give_vars.confirm)+"\n\t\t\t\t\t</button>")+"\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>"),e}},{key:"setupTemplate",value:function(){this.config.template=this.getTemplate()}},{key:"__setupClickEvent",value:function(){this.config.triggerSelector.length&&jQuery(this.config.triggerSelector).magnificPopup(this.config)}},{key:"popupConfig",value:function(){"magnificPopup"===this.config.externalPlugin&&(this.config.items=this.config.items||{src:this.config.template,type:"inline"},this.config.removalDelay=300,this.config.fixedContentPos=!0,this.config.fixedBgPos=!0,this.config.alignTop=!0,this.config.showCloseBtn=!1,this.config.closeOnBgClick=!1,this.config.enableEscapeKey=!0,this.config.focus=".give-popup-close-button")}},{key:"render",value:function(){switch(this.config.externalPlugin){case"magnificPopup":this.config.triggerSelector||jQuery.magnificPopup.open(this.config)}return this}}],[{key:"__closePopup",value:function(e){e.preventDefault(),jQuery.magnificPopup.instance.close()}}]),e}(),d=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--error",i.init(),i}return o(t,e),t}(c),u=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--warning",i.init(),i}return o(t,e),t}(c),h=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--notice",i.init(),i}return o(t,e),t}(c),f=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--success",i.init(),i}return o(t,e),t}(c),p=function(e){function t(e){a(this,t),e.type="confirm";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return void 0!==e.modalWrapper&&""!==e.modalWrapper&&(i.config.classes.modalWrapper=e.modalWrapper),i.init(),i}return o(t,e),l(t,null,[{key:"__confirmPopup",value:function(){"function"==typeof jQuery.magnificPopup.instance.st.successConfirm&&(jQuery.magnificPopup.instance.st.successConfirm({el:jQuery.magnificPopup.instance.st.el}),jQuery.magnificPopup.close())}}]),t}(c),g=function(e){function t(e){a(this,t),e.type="form";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return void 0!==e.modalWrapper&&""!==e.modalWrapper&&(i.config.classes.modalWrapper=e.modalWrapper),i.init(),i}return o(t,e),l(t,null,[{key:"__submitPopup",value:function(){"function"==typeof jQuery.magnificPopup.instance.st.successConfirm&&jQuery.magnificPopup.instance.st.successConfirm({el:jQuery.magnificPopup.instance.st.el})}}]),t}(c);window.addDynamicEventListener(document,"click",".give-popup-close-button",c.__closePopup,{}),window.addDynamicEventListener(document,"click",".give-popup-confirm-button",p.__confirmPopup,{}),window.addDynamicEventListener(document,"click",".give-popup-form-button",g.__submitPopup,{})},,,,,,,,,,,,,,,function(e,t,i){i(26),e.exports=i(27)},function(e,t){},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i.d(t,"init",function(){return v}),i.d(t,"fn",function(){return b}),i.d(t,"cache",function(){return y}),i.d(t,"modal",function(){return x});var n=i(28),o=(i.n(n),i(1)),a=(i.n(o),i(29)),r=(i.n(a),i(30)),s=(i.n(r),i(31)),l=(i.n(s),i(32)),c=(i.n(l),i(33)),d=(i.n(c),i(34)),u=(i.n(d),i(5)),h=(i.n(u),i(6)),f=i(10),p=i(35),g=(i.n(p),i(36)),_=(i.n(g),i(37)),m=(i.n(_),i(38));i.n(m),i(39),i(40);h.a.modal=f;var v=h.a.init,b=h.a.fn,y=h.a.cache,x=h.a.modal},function(e,t){(function(){var e,t,i,n,o=function(e,t){return function(){return e.apply(t,arguments)}},a=function(e,t){function i(){this.constructor=e}for(var n in t)r.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},r={}.hasOwnProperty;n=function(){function e(){this.options_index=0,this.parsed=[]}return e.prototype.add_node=function(e){return"OPTGROUP"===e.nodeName.toUpperCase()?this.add_group(e):this.add_option(e)},e.prototype.add_group=function(e){var t,i,n,o,a,r;for(t=this.parsed.length,this.parsed.push({array_index:t,group:!0,label:e.label,title:e.title?e.title:void 0,children:0,disabled:e.disabled,classes:e.className}),a=e.childNodes,r=[],i=0,n=a.length;i<n;i++)o=a[i],r.push(this.add_option(o,t,e.disabled));return r},e.prototype.add_option=function(e,t,i){if("OPTION"===e.nodeName.toUpperCase())return""!==e.text?(null!=t&&(this.parsed[t].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:e.value,text:e.text,html:e.innerHTML,title:e.title?e.title:void 0,selected:e.selected,disabled:!0===i?i:e.disabled,group_array_index:t,group_label:null!=t?this.parsed[t].label:null,classes:e.className,style:e.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},e}(),n.select_to_array=function(e){var t,i,o,a,r;for(a=new n,r=e.childNodes,i=0,o=r.length;i<o;i++)t=r[i],a.add_node(t);return a.parsed},t=function(){function e(t,i){this.form_field=t,this.options=null!=i?i:{},this.label_click_handler=o(this.label_click_handler,this),e.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return e.prototype.set_default_values=function(){return this.click_test_action=function(e){return function(t){return e.test_active_click(t)}}(this),this.activate_action=function(e){return function(t){return e.activate_field(t)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},e.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||e.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||e.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||e.default_no_result_text},e.prototype.choice_label=function(e){return this.include_group_label_in_selected&&null!=e.group_label?"<b class='group-name'>"+this.escape_html(e.group_label)+"</b>"+e.html:e.html},e.prototype.mouse_enter=function(){return this.mouse_on_container=!0},e.prototype.mouse_leave=function(){return this.mouse_on_container=!1},e.prototype.input_focus=function(e){if(this.is_multiple){if(!this.active_field)return setTimeout(function(e){return function(){return e.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},e.prototype.input_blur=function(e){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(e){return function(){return e.blur_test()}}(this),100)},e.prototype.label_click_handler=function(e){return this.is_multiple?this.container_mousedown(e):this.activate_field()},e.prototype.results_option_build=function(e){var t,i,n,o,a,r,s;for(t="",s=0,r=this.results_data,o=0,a=r.length;o<a&&(i=r[o],n="",n=i.group?this.result_add_group(i):this.result_add_option(i),""!==n&&(s++,t+=n),(null!=e?e.first:void 0)&&(i.selected&&this.is_multiple?this.choice_build(i):i.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(i))),!(s>=this.max_shown_results));o++);return t},e.prototype.result_add_option=function(e){var t,i;return e.search_match&&this.include_option_in_results(e)?(t=[],e.disabled||e.selected&&this.is_multiple||t.push("active-result"),!e.disabled||e.selected&&this.is_multiple||t.push("disabled-result"),e.selected&&t.push("result-selected"),null!=e.group_array_index&&t.push("group-option"),""!==e.classes&&t.push(e.classes),i=document.createElement("li"),i.className=t.join(" "),e.style&&(i.style.cssText=e.style),i.setAttribute("data-option-array-index",e.array_index),i.innerHTML=e.highlighted_html||e.html,e.title&&(i.title=e.title),this.outerHTML(i)):""},e.prototype.result_add_group=function(e){var t,i;return(e.search_match||e.group_match)&&e.active_options>0?(t=[],t.push("group-result"),e.classes&&t.push(e.classes),i=document.createElement("li"),i.className=t.join(" "),i.innerHTML=e.highlighted_html||this.escape_html(e.label),e.title&&(i.title=e.title),this.outerHTML(i)):""},e.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},e.prototype.reset_single_select_options=function(){var e,t,i,n,o;for(i=this.results_data,o=[],e=0,t=i.length;e<t;e++)n=i[e],n.selected?o.push(n.selected=!1):o.push(void 0);return o},e.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},e.prototype.results_search=function(e){return this.results_showing?this.winnow_results():this.results_show()},e.prototype.winnow_results=function(e){var t,i,n,o,a,r,s,l,c,d,u,h,f,p,g;for(this.no_results_clear(),d=0,s=this.get_search_text(),t=s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(t),l=this.results_data,n=0,o=l.length;n<o;n++)a=l[n],a.search_match=!1,u=null,h=null,a.highlighted_html="",this.include_option_in_results(a)&&(a.group&&(a.group_match=!1,a.active_options=0),null!=a.group_array_index&&this.results_data[a.group_array_index]&&(u=this.results_data[a.group_array_index],0===u.active_options&&u.search_match&&(d+=1),u.active_options+=1),g=a.group?a.label:a.text,a.group&&!this.group_search||(h=this.search_string_match(g,c),a.search_match=null!=h,a.search_match&&!a.group&&(d+=1),a.search_match?(s.length&&(f=h.index,r=g.slice(0,f),i=g.slice(f,f+s.length),p=g.slice(f+s.length),a.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(i)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=a.group_array_index&&this.results_data[a.group_array_index].search_match&&(a.search_match=!0)));return this.result_clear_highlight(),d<1&&s.length?(this.update_results_content(""),this.no_results(s)):(this.update_results_content(this.results_option_build()),(null!=e?e.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},e.prototype.get_search_regex=function(e){var t,i;return i=this.search_contains?e:"(^|\\s|\\b)"+e+"[^\\s]*",this.enable_split_word_search||this.search_contains||(i="^"+i),t=this.case_sensitive_search?"":"i",new RegExp(i,t)},e.prototype.search_string_match=function(e,t){var i;return i=t.exec(e),!this.search_contains&&(null!=i?i[1]:void 0)&&(i.index+=1),i},e.prototype.choices_count=function(){var e,t,i,n;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,n=this.form_field.options,e=0,t=n.length;e<t;e++)i=n[e],i.selected&&(this.selected_option_count+=1);return this.selected_option_count},e.prototype.choices_click=function(e){if(e.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},e.prototype.keydown_checker=function(e){var t,i;switch(i=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),8!==i&&this.pending_backstroke&&this.clear_backstroke(),i){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(e),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&e.preventDefault();break;case 32:this.disable_search&&e.preventDefault();break;case 38:e.preventDefault(),this.keyup_arrow();break;case 40:e.preventDefault(),this.keydown_arrow()}},e.prototype.keyup_checker=function(e){var t,i;switch(i=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),i){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:e.preventDefault(),this.results_showing&&this.result_select(e);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},e.prototype.clipboard_event_checker=function(e){if(!this.is_disabled)return setTimeout(function(e){return function(){return e.results_search()}}(this),50)},e.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},e.prototype.include_option_in_results=function(e){return!(this.is_multiple&&!this.display_selected_options&&e.selected)&&(!(!this.display_disabled_options&&e.disabled)&&!e.empty)},e.prototype.search_results_touchstart=function(e){return this.touch_started=!0,this.search_results_mouseover(e)},e.prototype.search_results_touchmove=function(e){return this.touch_started=!1,this.search_results_mouseout(e)},e.prototype.search_results_touchend=function(e){if(this.touch_started)return this.search_results_mouseup(e)},e.prototype.outerHTML=function(e){var t;return e.outerHTML?e.outerHTML:(t=document.createElement("div"),t.appendChild(e),t.innerHTML)},e.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},e.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},e.prototype.get_no_results_html=function(e){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(e)+"</span>\n</li>"},e.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},e.default_multiple_text="Select Some Options",e.default_single_text="Select an Option",e.default_no_result_text="No results match",e}(),e=jQuery,e.fn.extend({chosen:function(n){return t.browser_is_supported()?this.each(function(t){var o,a;if(o=e(this),a=o.data("chosen"),"destroy"===n)return void(a instanceof i&&a.destroy());a instanceof i||o.data("chosen",new i(this,n))}):this}}),i=function(t){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,t),i.prototype.setup=function(){return this.form_field_jq=e(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},i.prototype.set_up_html=function(){var t,i;return t=["chosen-container"],t.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),i={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(i.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=e("<div />",i),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},i.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},i.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.container.on("touchend.chosen",function(e){return function(t){e.container_mouseup(t)}}(this)),this.container.on("mousedown.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.container.on("mouseup.chosen",function(e){return function(t){e.container_mouseup(t)}}(this)),this.container.on("mouseenter.chosen",function(e){return function(t){e.mouse_enter(t)}}(this)),this.container.on("mouseleave.chosen",function(e){return function(t){e.mouse_leave(t)}}(this)),this.search_results.on("mouseup.chosen",function(e){return function(t){e.search_results_mouseup(t)}}(this)),this.search_results.on("mouseover.chosen",function(e){return function(t){e.search_results_mouseover(t)}}(this)),this.search_results.on("mouseout.chosen",function(e){return function(t){e.search_results_mouseout(t)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(e){return function(t){e.search_results_mousewheel(t)}}(this)),this.search_results.on("touchstart.chosen",function(e){return function(t){e.search_results_touchstart(t)}}(this)),this.search_results.on("touchmove.chosen",function(e){return function(t){e.search_results_touchmove(t)}}(this)),this.search_results.on("touchend.chosen",function(e){return function(t){e.search_results_touchend(t)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(e){return function(t){e.results_update_field(t)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(e){return function(t){e.activate_field(t)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(e){return function(t){e.close_field(t)}}(this)),this.search_field.on("blur.chosen",function(e){return function(t){e.input_blur(t)}}(this)),this.search_field.on("keyup.chosen",function(e){return function(t){e.keyup_checker(t)}}(this)),this.search_field.on("keydown.chosen",function(e){return function(t){e.keydown_checker(t)}}(this)),this.search_field.on("focus.chosen",function(e){return function(t){e.input_focus(t)}}(this)),this.search_field.on("cut.chosen",function(e){return function(t){e.clipboard_event_checker(t)}}(this)),this.search_field.on("paste.chosen",function(e){return function(t){e.clipboard_event_checker(t)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(e){return function(t){e.choices_click(t)}}(this)):this.container.on("click.chosen",function(e){e.preventDefault()})},i.prototype.destroy=function(){return e(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},i.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},i.prototype.container_mousedown=function(t){var i;if(!this.is_disabled)return!t||"mousedown"!==(i=t.type)&&"touchstart"!==i||this.results_showing||t.preventDefault(),null!=t&&e(t.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!t||e(t.target)[0]!==this.selected_item[0]&&!e(t.target).parents("a.chosen-single").length||(t.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),e(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},i.prototype.container_mouseup=function(e){if("ABBR"===e.target.nodeName&&!this.is_disabled)return this.results_reset(e)},i.prototype.search_results_mousewheel=function(e){var t;if(e.originalEvent&&(t=e.originalEvent.deltaY||-e.originalEvent.wheelDelta||e.originalEvent.detail),null!=t)return e.preventDefault(),"DOMMouseScroll"===e.type&&(t*=40),this.search_results.scrollTop(t+this.search_results.scrollTop())},i.prototype.blur_test=function(e){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},i.prototype.close_field=function(){return e(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},i.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},i.prototype.test_active_click=function(t){var i;return i=e(t.target).closest(".chosen-container"),i.length&&this.container[0]===i[0]?this.active_field=!0:this.close_field()},i.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=n.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},i.prototype.result_do_highlight=function(e){var t,i,n,o,a;if(e.length){if(this.result_clear_highlight(),this.result_highlight=e,this.result_highlight.addClass("highlighted"),n=parseInt(this.search_results.css("maxHeight"),10),a=this.search_results.scrollTop(),o=n+a,i=this.result_highlight.position().top+this.search_results.scrollTop(),(t=i+this.result_highlight.outerHeight())>=o)return this.search_results.scrollTop(t-n>0?t-n:0);if(i<a)return this.search_results.scrollTop(i)}},i.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},i.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},i.prototype.update_results_content=function(e){return this.search_results.html(e)},i.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},i.prototype.set_tab_index=function(e){var t;if(this.form_field.tabIndex)return t=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=t},i.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=e("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},i.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},i.prototype.search_results_mouseup=function(t){var i;if(i=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first(),i.length)return this.result_highlight=i,this.result_select(t),this.search_field.focus()},i.prototype.search_results_mouseover=function(t){var i;if(i=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first())return this.result_do_highlight(i)},i.prototype.search_results_mouseout=function(t){if(e(t.target).hasClass("active-result")||e(t.target).parents(".active-result").first())return this.result_clear_highlight()},i.prototype.choice_build=function(t){var i,n;return i=e("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(t)+"</span>"),t.disabled?i.addClass("search-choice-disabled"):(n=e("<a />",{class:"search-choice-close","data-option-array-index":t.array_index}),n.on("click.chosen",function(e){return function(t){return e.choice_destroy_link_click(t)}}(this)),i.append(n)),this.search_container.before(i)},i.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(e(t.target))},i.prototype.choice_destroy=function(e){if(this.result_deselect(e[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),e.parents("li").first().remove(),this.search_field_scale()},i.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},i.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},i.prototype.result_select=function(e){var t,i;if(this.result_highlight)return t=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?t.removeClass("active-result"):this.reset_single_select_options(),t.addClass("result-selected"),i=this.results_data[t[0].getAttribute("data-option-array-index")],i.selected=!0,this.form_field.options[i.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(i):this.single_set_selected_text(this.choice_label(i)),this.is_multiple&&(!this.hide_results_on_select||e.metaKey||e.ctrlKey)?e.metaKey||e.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[i.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,e.preventDefault(),this.search_field_scale())},i.prototype.single_set_selected_text=function(e){return null==e&&(e=this.default_text),e===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(e)},i.prototype.result_deselect=function(e){var t;return t=this.results_data[e],!this.form_field.options[t.options_index].disabled&&(t.selected=!1,this.form_field.options[t.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[t.options_index].value}),this.search_field_scale(),!0)},i.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},i.prototype.get_search_field_value=function(){return this.search_field.val()},i.prototype.get_search_text=function(){return e.trim(this.get_search_field_value())},i.prototype.escape_html=function(t){return e("<div/>").text(t).html()},i.prototype.winnow_results_set_highlight=function(){var e,t;if(t=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(e=t.length?t.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(e)},i.prototype.no_results=function(e){var t;return t=this.get_no_results_html(e),this.search_results.append(t),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},i.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},i.prototype.keydown_arrow=function(){var e;return this.results_showing&&this.result_highlight?(e=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(e):void 0:this.results_show()},i.prototype.keyup_arrow=function(){var e;return this.results_showing||this.is_multiple?this.result_highlight?(e=this.result_highlight.prevAll("li.active-result"),e.length?this.result_do_highlight(e.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},i.prototype.keydown_backstroke=function(){var e;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(e=this.search_container.siblings("li.search-choice").last(),e.length&&!e.hasClass("search-choice-disabled")?(this.pending_backstroke=e,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},i.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},i.prototype.search_field_scale=function(){var t,i,n,o,a,r,s;if(this.is_multiple){for(a={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"],i=0,n=r.length;i<n;i++)o=r[i],a[o]=this.search_field.css(o);return t=e("<div />").css(a),t.text(this.get_search_field_value()),e("body").append(t),s=t.width()+25,t.remove(),this.container.is(":visible")&&(s=Math.min(this.container.outerWidth()-10,s)),this.search_field.width(s)}},i.prototype.trigger_form_field_change=function(e){return this.form_field_jq.trigger("input",e),this.form_field_jq.trigger("change",e)},i}(t)}).call(this)},function(e,t){!function(e){e.color={},e.color.make=function(t,i,n,o){var a={};return a.r=t||0,a.g=i||0,a.b=n||0,a.a=null!=o?o:1,a.add=function(e,t){for(var i=0;i<e.length;++i)a[e.charAt(i)]+=t;return a.normalize()},a.scale=function(e,t){for(var i=0;i<e.length;++i)a[e.charAt(i)]*=t;return a.normalize()},a.toString=function(){return a.a>=1?"rgb("+[a.r,a.g,a.b].join(",")+")":"rgba("+[a.r,a.g,a.b,a.a].join(",")+")"},a.normalize=function(){function e(e,t,i){return t<e?e:t>i?i:t}return a.r=e(0,parseInt(a.r),255),a.g=e(0,parseInt(a.g),255),a.b=e(0,parseInt(a.b),255),a.a=e(0,a.a,1),a},a.clone=function(){return e.color.make(a.r,a.b,a.g,a.a)},a.normalize()},e.color.extract=function(t,i){var n;do{if(""!=(n=t.css(i).toLowerCase())&&"transparent"!=n)break;t=t.parent()}while(!e.nodeName(t.get(0),"body"));return"rgba(0, 0, 0, 0)"==n&&(n="transparent"),e.color.parse(n)},e.color.parse=function(i){var n,o=e.color.make;if(n=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(i))return o(parseInt(n[1],10),parseInt(n[2],10),parseInt(n[3],10));if(n=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))return o(parseInt(n[1],10),parseInt(n[2],10),parseInt(n[3],10),parseFloat(n[4]));if(n=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(i))return o(2.55*parseFloat(n[1]),2.55*parseFloat(n[2]),2.55*parseFloat(n[3]));if(n=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))return o(2.55*parseFloat(n[1]),2.55*parseFloat(n[2]),2.55*parseFloat(n[3]),parseFloat(n[4]));if(n=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(i))return o(parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16));if(n=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(i))return o(parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16));var a=e.trim(i).toLowerCase();return"transparent"==a?o(255,255,255,0):(n=t[a]||[0,0,0],o(n[0],n[1],n[2]))};var t={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),function(e){function t(t,n,o,a){function r(e,t){t=[me].concat(t);for(var i=0;i<e.length;++i)e[i].apply(this,t)}function s(e){ie=l(e),p(),g()}function l(t){for(var i=[],n=0;n<t.length;++n){var o=e.extend(!0,{},ne.series);null!=t[n].data?(o.data=t[n].data,delete t[n].data,e.extend(!0,o,t[n]),t[n].data=o.data):o.data=t[n],i.push(o)}return i}function c(e,t){var i=e[t+"axis"];return"object"==typeof i&&(i=i.n),"number"!=typeof i&&(i=1),i}function d(){return e.grep(ce.concat(de),function(e){return e})}function u(e){var t,i,n={};for(t=0;t<ce.length;++t)(i=ce[t])&&i.used&&(n["x"+i.n]=i.c2p(e.left));for(t=0;t<de.length;++t)(i=de[t])&&i.used&&(n["y"+i.n]=i.c2p(e.top));return void 0!==n.x1&&(n.x=n.x1),void 0!==n.y1&&(n.y=n.y1),n}function h(e){var t,i,n,o={};for(t=0;t<ce.length;++t)if((i=ce[t])&&i.used&&(n="x"+i.n,null==e[n]&&1==i.n&&(n="x"),null!=e[n])){o.left=i.p2c(e[n]);break}for(t=0;t<de.length;++t)if((i=de[t])&&i.used&&(n="y"+i.n,null==e[n]&&1==i.n&&(n="y"),null!=e[n])){o.top=i.p2c(e[n]);break}return o}function f(t,i){return t[i-1]||(t[i-1]={n:i,direction:t==ce?"x":"y",options:e.extend(!0,{},t==ce?ne.xaxis:ne.yaxis)}),t[i-1]}function p(){var t,i=ie.length,n=-1;for(t=0;t<ie.length;++t){var o=ie[t].color;null!=o&&(i--,"number"==typeof o&&o>n&&(n=o))}i<=n&&(i=n+1);var a,r=[],s=ne.colors,l=s.length,d=0;for(t=0;t<i;t++)a=e.color.parse(s[t%l]||"#666"),t%l==0&&t&&(d=d>=0?d<.5?-d-.2:0:-d),r[t]=a.scale("rgb",1+d);var u,h=0;for(t=0;t<ie.length;++t){if(u=ie[t],null==u.color?(u.color=r[h].toString(),++h):"number"==typeof u.color&&(u.color=r[u.color].toString()),null==u.lines.show){var p,g=!0;for(p in u)if(u[p]&&u[p].show){g=!1;break}g&&(u.lines.show=!0)}null==u.lines.zero&&(u.lines.zero=!!u.lines.fill),u.xaxis=f(ce,c(u,"x")),u.yaxis=f(de,c(u,"y"))}}function g(){function t(e,t,i){t<e.datamin&&t!=-v&&(e.datamin=t),i>e.datamax&&i!=v&&(e.datamax=i)}var i,n,o,a,s,l,c,u,h,f,p,g,_=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,v=Number.MAX_VALUE;for(e.each(d(),function(e,t){t.datamin=_,t.datamax=m,t.used=!1}),i=0;i<ie.length;++i)s=ie[i],s.datapoints={points:[]},r(_e.processRawData,[s,s.data,s.datapoints]);for(i=0;i<ie.length;++i){if(s=ie[i],p=s.data,!(g=s.datapoints.format)){if(g=[],g.push({x:!0,number:!0,required:!0}),g.push({y:!0,number:!0,required:!0}),s.bars.show||s.lines.show&&s.lines.fill){var b=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);g.push({y:!0,number:!0,required:!1,defaultValue:0,autoscale:b}),s.bars.horizontal&&(delete g[g.length-1].y,g[g.length-1].x=!0)}s.datapoints.format=g}if(null==s.datapoints.pointsize){s.datapoints.pointsize=g.length,c=s.datapoints.pointsize,l=s.datapoints.points;var y=s.lines.show&&s.lines.steps;for(s.xaxis.used=s.yaxis.used=!0,n=o=0;n<p.length;++n,o+=c){f=p[n];var x=null==f;if(!x)for(a=0;a<c;++a)u=f[a],h=g[a],h&&(h.number&&null!=u&&(u=+u,isNaN(u)?u=null:u==1/0?u=v:u==-1/0&&(u=-v)),null==u&&(h.required&&(x=!0),null!=h.defaultValue&&(u=h.defaultValue))),l[o+a]=u;if(x)for(a=0;a<c;++a)u=l[o+a],null!=u&&(h=g[a],h.x&&t(s.xaxis,u,u),h.y&&t(s.yaxis,u,u)),l[o+a]=null;else if(y&&o>0&&null!=l[o-c]&&l[o-c]!=l[o]&&l[o-c+1]!=l[o+1]){for(a=0;a<c;++a)l[o+c+a]=l[o+a];l[o+1]=l[o-c+1],o+=c}}}}for(i=0;i<ie.length;++i)s=ie[i],r(_e.processDatapoints,[s,s.datapoints]);for(i=0;i<ie.length;++i){s=ie[i],l=s.datapoints.points,c=s.datapoints.pointsize,g=s.datapoints.format;var w=_,k=_,C=m,j=m;for(n=0;n<l.length;n+=c)if(null!=l[n])for(a=0;a<c;++a)u=l[n+a],(h=g[a])&&!1!==h.autoscale&&u!=v&&u!=-v&&(h.x&&(u<w&&(w=u),u>C&&(C=u)),h.y&&(u<k&&(k=u),u>j&&(j=u)));if(s.bars.show){var T;switch(s.bars.align){case"left":T=0;break;case"right":T=-s.bars.barWidth;break;case"center":T=-s.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+s.bars.align)}s.bars.horizontal?(k+=T,j+=T+s.bars.barWidth):(w+=T,C+=T+s.bars.barWidth)}t(s.xaxis,w,C),t(s.yaxis,k,j)}e.each(d(),function(e,t){t.datamin==_&&(t.datamin=null),t.datamax==m&&(t.datamax=null)})}function _(e){return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}function m(i){var n=document.createElement("canvas");if(n.className=i,e(n).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(t),!n.getContext){if(!window.G_vmlCanvasManager)throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");n=window.G_vmlCanvasManager.initElement(n)}var o=n.getContext("2d"),a=_(o);return n.width=he*a,n.height=fe*a,n.style.width=he+"px",n.style.height=fe+"px",o.save(),o.scale(a,a),n}function v(){if(he=t.width(),fe=t.height(),he<=0||fe<=0)throw new Error("Invalid dimensions for plot, width = "+he+", height = "+fe)}function b(e){var t=e.getContext("2d"),i=_(t);e.style.width!=he&&(e.width=he*i,e.style.width=he+"px"),e.style.height!=fe&&(e.height=fe*i,e.style.height=fe+"px"),t.restore(),t.save(),t.scale(i,i)}function y(){be&&clearTimeout(be),re.unbind("mousemove",H),re.unbind("mouseleave",R),re.unbind("click",U),r(_e.shutdown,[re])}function x(e){function t(e){return e}var i,n,o=e.options.transform||t,a=e.options.inverseTransform;"x"==e.direction?(i=e.scale=pe/Math.abs(o(e.max)-o(e.min)),n=Math.min(o(e.max),o(e.min))):(i=e.scale=ge/Math.abs(o(e.max)-o(e.min)),i=-i,n=Math.max(o(e.max),o(e.min))),e.p2c=o==t?function(e){return(e-n)*i}:function(e){return(o(e)-n)*i},e.c2p=a?function(e){return a(n+e/i)}:function(e){return n+e/i}}function w(e){var t=e.options,i=e.ticks||[],n=t.labelWidth||0,o=t.labelHeight||0,a=e.font;se.save(),se.font=a.style+" "+a.variant+" "+a.weight+" "+a.size+"px '"+a.family+"'";for(var r=0;r<i.length;++r){var s=i[r];if(s.lines=[],s.width=s.height=0,s.label){for(var l=(s.label+"").replace(/<br ?\/?>|\r\n|\r/g,"\n").split("\n"),c=0;c<l.length;++c){var d={text:l[c]},u=se.measureText(d.text);d.width=u.width,d.height=null!=u.height?u.height:a.size,d.height+=Math.round(.15*a.size),s.width=Math.max(d.width,s.width),s.height+=d.height,s.lines.push(d)}null==t.labelWidth&&(n=Math.max(n,s.width)),null==t.labelHeight&&(o=Math.max(o,s.height))}}se.restore(),e.labelWidth=Math.ceil(n),e.labelHeight=Math.ceil(o)}function k(t){var i,n=t.labelWidth,o=t.labelHeight,a=t.options.position,r=t.options.tickLength,s=ne.grid.axisMargin,l=ne.grid.labelMargin,c="x"==t.direction?ce:de,d=e.grep(c,function(e){return e&&e.options.position==a&&e.reserveSpace});if(e.inArray(t,d)==d.length-1&&(s=0),null==r){var u=e.grep(c,function(e){return e&&e.reserveSpace});i=0==e.inArray(t,u),r=i?"full":5}isNaN(+r)||(l+=+r),"x"==t.direction?(o+=l,"bottom"==a?(ue.bottom+=o+s,t.box={top:fe-ue.bottom,height:o}):(t.box={top:ue.top+s,height:o},ue.top+=o+s)):(n+=l,"left"==a?(t.box={left:ue.left+s,width:n},ue.left+=n+s):(ue.right+=n+s,t.box={left:he-ue.right,width:n})),t.position=a,t.tickLength=r,t.box.padding=l,t.innermost=i}function C(e){"x"==e.direction?(e.box.left=ue.left-e.labelWidth/2,e.box.width=he-ue.left-ue.right+e.labelWidth):(e.box.top=ue.top-e.labelHeight/2,e.box.height=fe-ue.bottom-ue.top+e.labelHeight)}function j(){var t,i=ne.grid.minBorderMargin,n={x:0,y:0};if(null==i)for(i=0,t=0;t<ie.length;++t)i=Math.max(i,2*(ie[t].points.radius+ie[t].points.lineWidth/2));n.x=n.y=Math.ceil(i),e.each(d(),function(e,t){var i=t.direction;t.reserveSpace&&(n[i]=Math.ceil(Math.max(n[i],("x"==i?t.labelWidth:t.labelHeight)/2)))}),ue.left=Math.max(n.x,ue.left),ue.right=Math.max(n.x,ue.right),ue.top=Math.max(n.y,ue.top),ue.bottom=Math.max(n.y,ue.bottom)}function T(){var i,n=d(),o=ne.grid.show;for(var a in ue){var s=ne.grid.margin||0;ue[a]="number"==typeof s?s:s[a]||0}r(_e.processOffset,[ue]);for(var a in ue)"object"==typeof ne.grid.borderWidth?ue[a]+=o?ne.grid.borderWidth[a]:0:ue[a]+=o?ne.grid.borderWidth:0;if(e.each(n,function(e,t){t.show=t.options.show,null==t.show&&(t.show=t.used),t.reserveSpace=t.show||t.options.reserveSpace,S(t)}),o){var l={style:t.css("font-style"),size:Math.round(.8*(+t.css("font-size").replace("px","")||13)),variant:t.css("font-variant"),weight:t.css("font-weight"),family:t.css("font-family")},c=e.grep(n,function(e){return e.reserveSpace});for(e.each(c,function(t,i){M(i),I(i),P(i,i.ticks),i.font=e.extend({},l,i.options.font),w(i)}),i=c.length-1;i>=0;--i)k(c[i]);j(),e.each(c,function(e,t){C(t)})}pe=he-ue.left-ue.right,ge=fe-ue.bottom-ue.top,e.each(n,function(e,t){x(t)}),B()}function S(e){var t=e.options,i=+(null!=t.min?t.min:e.datamin),n=+(null!=t.max?t.max:e.datamax),o=n-i;if(0==o){var a=0==n?1:.01;null==t.min&&(i-=a),null!=t.max&&null==t.min||(n+=a)}else{var r=t.autoscaleMargin;null!=r&&(null==t.min&&(i-=o*r)<0&&null!=e.datamin&&e.datamin>=0&&(i=0),null==t.max&&(n+=o*r)>0&&null!=e.datamax&&e.datamax<=0&&(n=0))}e.min=i,e.max=n}function M(t){var n,o=t.options;if(n="number"==typeof o.ticks&&o.ticks>0?o.ticks:.3*Math.sqrt("x"==t.direction?he:fe),t.delta=(t.max-t.min)/n,"time"==o.mode&&!t.tickGenerator)throw new Error("Time mode requires the flot.time plugin.");if(t.tickGenerator||(t.tickGenerator=function(e){var t=o.tickDecimals,n=-Math.floor(Math.log(e.delta)/Math.LN10);null!=t&&n>t&&(n=t);var a,r,s,l=Math.pow(10,-n),c=e.delta/l,d=[],u=0,h=Number.NaN;c<1.5?a=1:c<3?(a=2,c>2.25&&(null==t||n+1<=t)&&(a=2.5,++n)):a=c<7.5?5:10,a*=l,null!=o.minTickSize&&a<o.minTickSize&&(a=o.minTickSize),e.tickDecimals=Math.max(0,null!=t?t:n),e.tickSize=o.tickSize||a,r=i(e.min,e.tickSize);do{s=h,h=r+u*e.tickSize,d.push(h),++u}while(h<e.max&&h!=s);return d},t.tickFormatter=function(e,t){var i=t.tickDecimals?Math.pow(10,t.tickDecimals):1,n=""+Math.round(e*i)/i;if(null!=t.tickDecimals){var o=n.indexOf("."),a=-1==o?0:n.length-o-1;if(a<t.tickDecimals)return(a?n:n+".")+(""+i).substr(1,t.tickDecimals-a)}return n}),e.isFunction(o.tickFormatter)&&(t.tickFormatter=function(e,t){return""+o.tickFormatter(e,t)}),null!=o.alignTicksWithAxis){var a=("x"==t.direction?ce:de)[o.alignTicksWithAxis-1];if(a&&a.used&&a!=t){var r=t.tickGenerator(t);if(r.length>0&&(null==o.min&&(t.min=Math.min(t.min,r[0])),null==o.max&&r.length>1&&(t.max=Math.max(t.max,r[r.length-1]))),t.tickGenerator=function(e){var t,i,n=[];for(i=0;i<a.ticks.length;++i)t=(a.ticks[i].v-a.min)/(a.max-a.min),t=e.min+t*(e.max-e.min),n.push(t);return n},!t.mode&&null==o.tickDecimals){var s=Math.max(0,1-Math.floor(Math.log(t.delta)/Math.LN10)),l=t.tickGenerator(t);l.length>1&&/\..*0$/.test((l[1]-l[0]).toFixed(s))||(t.tickDecimals=s)}}}}function I(t){var i=t.options.ticks,n=[];null==i||"number"==typeof i&&i>0?n=t.tickGenerator(t):i&&(n=e.isFunction(i)?i(t):i);var o,a;for(t.ticks=[],o=0;o<n.length;++o){var r=null,s=n[o];"object"==typeof s?(a=+s[0],s.length>1&&(r=s[1])):a=+s,null==r&&(r=t.tickFormatter(a,t)),isNaN(a)||t.ticks.push({v:a,label:r})}}function P(e,t){e.options.autoscaleMargin&&t.length>0&&(null==e.options.min&&(e.min=Math.min(e.min,t[0].v)),null==e.options.max&&t.length>1&&(e.max=Math.max(e.max,t[t.length-1].v)))}function z(){se.clearRect(0,0,he,fe),r(_e.drawBackground,[se]);var e=ne.grid;e.show&&e.backgroundColor&&O(),e.show&&!e.aboveData&&(Q(),E());for(var t=0;t<ie.length;++t)r(_e.drawSeries,[se,ie[t]]),D(ie[t]);r(_e.draw,[se]),e.show&&e.aboveData&&(Q(),E())}function A(e,t){for(var i,n,o,a,r=d(),s=0;s<r.length;++s)if(i=r[s],i.direction==t&&(a=t+i.n+"axis",e[a]||1!=i.n||(a=t+"axis"),e[a])){n=e[a].from,o=e[a].to;break}if(e[a]||(i="x"==t?ce[0]:de[0],n=e[t+"1"],o=e[t+"2"]),null!=n&&null!=o&&n>o){var l=n;n=o,o=l}return{from:n,to:o,axis:i}}function O(){se.save(),se.translate(ue.left,ue.top),se.fillStyle=te(ne.grid.backgroundColor,ge,0,"rgba(255, 255, 255, 0)"),se.fillRect(0,0,pe,ge),se.restore()}function Q(){var t,i,n,o;se.save(),se.translate(ue.left,ue.top);var a=ne.grid.markings;if(a)for(e.isFunction(a)&&(i=me.getAxes(),i.xmin=i.xaxis.min,i.xmax=i.xaxis.max,i.ymin=i.yaxis.min,i.ymax=i.yaxis.max,a=a(i)),t=0;t<a.length;++t){var r=a[t],s=A(r,"x"),l=A(r,"y");null==s.from&&(s.from=s.axis.min),null==s.to&&(s.to=s.axis.max),null==l.from&&(l.from=l.axis.min),null==l.to&&(l.to=l.axis.max),s.to<s.axis.min||s.from>s.axis.max||l.to<l.axis.min||l.from>l.axis.max||(s.from=Math.max(s.from,s.axis.min),s.to=Math.min(s.to,s.axis.max),l.from=Math.max(l.from,l.axis.min),l.to=Math.min(l.to,l.axis.max),s.from==s.to&&l.from==l.to||(s.from=s.axis.p2c(s.from),s.to=s.axis.p2c(s.to),l.from=l.axis.p2c(l.from),l.to=l.axis.p2c(l.to),s.from==s.to||l.from==l.to?(se.beginPath(),se.strokeStyle=r.color||ne.grid.markingsColor,se.lineWidth=r.lineWidth||ne.grid.markingsLineWidth,se.moveTo(s.from,l.from),se.lineTo(s.to,l.to),se.stroke()):(se.fillStyle=r.color||ne.grid.markingsColor,se.fillRect(s.from,l.to,s.to-s.from,l.from-l.to))))}i=d(),n=ne.grid.borderWidth;for(var c=0;c<i.length;++c){var u,h,f,p,g=i[c],_=g.box,m=g.tickLength;if(g.show&&0!=g.ticks.length){for(se.strokeStyle=g.options.tickColor||e.color.parse(g.options.color).scale("a",.22).toString(),se.lineWidth=1,"x"==g.direction?(u=0,h="full"==m?"top"==g.position?0:ge:_.top-ue.top+("top"==g.position?_.height:0)):(h=0,u="full"==m?"left"==g.position?0:pe:_.left-ue.left+("left"==g.position?_.width:0)),g.innermost||(se.beginPath(),f=p=0,"x"==g.direction?f=pe:p=ge,1==se.lineWidth&&(u=Math.floor(u)+.5,h=Math.floor(h)+.5),se.moveTo(u,h),se.lineTo(u+f,h+p),se.stroke()),se.beginPath(),t=0;t<g.ticks.length;++t){var v=g.ticks[t].v;f=p=0,isNaN(v)||v<g.min||v>g.max||"full"==m&&("object"==typeof n&&n[g.position]>0||n>0)&&(v==g.min||v==g.max)||("x"==g.direction?(u=g.p2c(v),p="full"==m?-ge:m,"top"==g.position&&(p=-p)):(h=g.p2c(v),f="full"==m?-pe:m,"left"==g.position&&(f=-f)),1==se.lineWidth&&("x"==g.direction?u=Math.floor(u)+.5:h=Math.floor(h)+.5),se.moveTo(u,h),se.lineTo(u+f,h+p))}se.stroke()}}n&&(o=ne.grid.borderColor,"object"==typeof n||"object"==typeof o?("object"!=typeof n&&(n={top:n,right:n,bottom:n,left:n}),"object"!=typeof o&&(o={top:o,right:o,bottom:o,left:o}),n.top>0&&(se.strokeStyle=o.top,se.lineWidth=n.top,se.beginPath(),se.moveTo(0-n.left,0-n.top/2),se.lineTo(pe,0-n.top/2),se.stroke()),n.right>0&&(se.strokeStyle=o.right,se.lineWidth=n.right,se.beginPath(),se.moveTo(pe+n.right/2,0-n.top),se.lineTo(pe+n.right/2,ge),se.stroke()),n.bottom>0&&(se.strokeStyle=o.bottom,se.lineWidth=n.bottom,se.beginPath(),se.moveTo(pe+n.right,ge+n.bottom/2),se.lineTo(0,ge+n.bottom/2),se.stroke()),n.left>0&&(se.strokeStyle=o.left,se.lineWidth=n.left,se.beginPath(),se.moveTo(0-n.left/2,ge+n.bottom),se.lineTo(0-n.left/2,0),se.stroke())):(se.lineWidth=n,se.strokeStyle=ne.grid.borderColor,se.strokeRect(-n/2,-n/2,pe+n,ge+n))),se.restore()}function E(){se.save(),e.each(d(),function(e,t){if(t.show&&0!=t.ticks.length){var i=t.box,n=t.font;se.fillStyle=t.options.color,se.font=n.style+" "+n.variant+" "+n.weight+" "+n.size+"px "+n.family,se.textAlign="start",se.textBaseline="middle";for(var o=0;o<t.ticks.length;++o){var a=t.ticks[o];if(!(!a.label||a.v<t.min||a.v>t.max))for(var r,s,l,c=0,d=0;d<a.lines.length;++d)l=a.lines[d],"x"==t.direction?(r=ue.left+t.p2c(a.v)-l.width/2,s="bottom"==t.position?i.top+i.padding:i.top+i.height-i.padding-a.height):(s=ue.top+t.p2c(a.v)-a.height/2,r="left"==t.position?i.left+i.width-i.padding-l.width:i.left+i.padding),s+=l.height/2+c,c+=l.height,window.opera&&window.opera.version().split(".")[0]<12&&(r=Math.floor(r),s=Math.ceil(s-2)),se.fillText(l.text,r,s)}}}),se.restore()}function D(e){e.lines.show&&W(e),e.bars.show&&N(e),e.points.show&&q(e)}function W(e){function t(e,t,i,n,o){var a=e.points,r=e.pointsize,s=null,l=null;se.beginPath();for(var c=r;c<a.length;c+=r){var d=a[c-r],u=a[c-r+1],h=a[c],f=a[c+1];if(null!=d&&null!=h){if(u<=f&&u<o.min){if(f<o.min)continue;d=(o.min-u)/(f-u)*(h-d)+d,u=o.min}else if(f<=u&&f<o.min){if(u<o.min)continue;h=(o.min-u)/(f-u)*(h-d)+d,f=o.min}if(u>=f&&u>o.max){if(f>o.max)continue;d=(o.max-u)/(f-u)*(h-d)+d,u=o.max}else if(f>=u&&f>o.max){if(u>o.max)continue;h=(o.max-u)/(f-u)*(h-d)+d,f=o.max}if(d<=h&&d<n.min){if(h<n.min)continue;u=(n.min-d)/(h-d)*(f-u)+u,d=n.min}else if(h<=d&&h<n.min){if(d<n.min)continue;f=(n.min-d)/(h-d)*(f-u)+u,h=n.min}if(d>=h&&d>n.max){if(h>n.max)continue;u=(n.max-d)/(h-d)*(f-u)+u,d=n.max}else if(h>=d&&h>n.max){if(d>n.max)continue;f=(n.max-d)/(h-d)*(f-u)+u,h=n.max}d==s&&u==l||se.moveTo(n.p2c(d)+t,o.p2c(u)+i),s=h,l=f,se.lineTo(n.p2c(h)+t,o.p2c(f)+i)}}se.stroke()}se.save(),se.translate(ue.left,ue.top),se.lineJoin="round";var i=e.lines.lineWidth,n=e.shadowSize;if(i>0&&n>0){se.lineWidth=n,se.strokeStyle="rgba(0,0,0,0.1)";var o=Math.PI/18;t(e.datapoints,Math.sin(o)*(i/2+n/2),Math.cos(o)*(i/2+n/2),e.xaxis,e.yaxis),se.lineWidth=n/2,t(e.datapoints,Math.sin(o)*(i/2+n/4),Math.cos(o)*(i/2+n/4),e.xaxis,e.yaxis)}se.lineWidth=i,se.strokeStyle=e.color;var a=G(e.lines,e.color,0,ge);a&&(se.fillStyle=a,function(e,t,i){for(var n=e.points,o=e.pointsize,a=Math.min(Math.max(0,i.min),i.max),r=0,s=!1,l=1,c=0,d=0;!(o>0&&r>n.length+o);){r+=o;var u=n[r-o],h=n[r-o+l],f=n[r],p=n[r+l];if(s){if(o>0&&null!=u&&null==f){d=r,o=-o,l=2;continue}if(o<0&&r==c+o){se.fill(),s=!1,o=-o,l=1,r=c=d+o;continue}}if(null!=u&&null!=f){if(u<=f&&u<t.min){if(f<t.min)continue;h=(t.min-u)/(f-u)*(p-h)+h,u=t.min}else if(f<=u&&f<t.min){if(u<t.min)continue;p=(t.min-u)/(f-u)*(p-h)+h,f=t.min}if(u>=f&&u>t.max){if(f>t.max)continue;h=(t.max-u)/(f-u)*(p-h)+h,u=t.max}else if(f>=u&&f>t.max){if(u>t.max)continue;p=(t.max-u)/(f-u)*(p-h)+h,f=t.max}if(s||(se.beginPath(),se.moveTo(t.p2c(u),i.p2c(a)),s=!0),h>=i.max&&p>=i.max)se.lineTo(t.p2c(u),i.p2c(i.max)),se.lineTo(t.p2c(f),i.p2c(i.max));else if(h<=i.min&&p<=i.min)se.lineTo(t.p2c(u),i.p2c(i.min)),se.lineTo(t.p2c(f),i.p2c(i.min));else{var g=u,_=f;h<=p&&h<i.min&&p>=i.min?(u=(i.min-h)/(p-h)*(f-u)+u,h=i.min):p<=h&&p<i.min&&h>=i.min&&(f=(i.min-h)/(p-h)*(f-u)+u,p=i.min),h>=p&&h>i.max&&p<=i.max?(u=(i.max-h)/(p-h)*(f-u)+u,h=i.max):p>=h&&p>i.max&&h<=i.max&&(f=(i.max-h)/(p-h)*(f-u)+u,p=i.max),u!=g&&se.lineTo(t.p2c(g),i.p2c(h)),se.lineTo(t.p2c(u),i.p2c(h)),se.lineTo(t.p2c(f),i.p2c(p)),f!=_&&(se.lineTo(t.p2c(f),i.p2c(p)),se.lineTo(t.p2c(_),i.p2c(p)))}}}}(e.datapoints,e.xaxis,e.yaxis)),i>0&&t(e.datapoints,0,0,e.xaxis,e.yaxis),se.restore()}function q(e){function t(e,t,i,n,o,a,r,s){for(var l=e.points,c=e.pointsize,d=0;d<l.length;d+=c){var u=l[d],h=l[d+1];null==u||u<a.min||u>a.max||h<r.min||h>r.max||(se.beginPath(),u=a.p2c(u),h=r.p2c(h)+n,"circle"==s?se.arc(u,h,t,0,o?Math.PI:2*Math.PI,!1):s(se,u,h,t,o),se.closePath(),i&&(se.fillStyle=i,se.fill()),se.stroke())}}se.save(),se.translate(ue.left,ue.top);var i=e.points.lineWidth,n=e.shadowSize,o=e.points.radius,a=e.points.symbol;if(0==i&&(i=1e-4),i>0&&n>0){var r=n/2;se.lineWidth=r,se.strokeStyle="rgba(0,0,0,0.1)",t(e.datapoints,o,null,r+r/2,!0,e.xaxis,e.yaxis,a),se.strokeStyle="rgba(0,0,0,0.2)",t(e.datapoints,o,null,r/2,!0,e.xaxis,e.yaxis,a)}se.lineWidth=i,se.strokeStyle=e.color,t(e.datapoints,o,G(e.points,e.color),0,!1,e.xaxis,e.yaxis,a),se.restore()}function F(e,t,i,n,o,a,r,s,l,c,d,u){var h,f,p,g,_,m,v,b,y;d?(b=m=v=!0,_=!1,h=i,f=e,g=t+n,p=t+o,f<h&&(y=f,f=h,h=y,_=!0,m=!1)):(_=m=v=!0,b=!1,h=e+n,f=e+o,p=i,(g=t)<p&&(y=g,g=p,p=y,b=!0,v=!1)),f<s.min||h>s.max||g<l.min||p>l.max||(h<s.min&&(h=s.min,_=!1),f>s.max&&(f=s.max,m=!1),p<l.min&&(p=l.min,b=!1),g>l.max&&(g=l.max,v=!1),h=s.p2c(h),p=l.p2c(p),f=s.p2c(f),g=l.p2c(g),r&&(c.beginPath(),c.moveTo(h,p),c.lineTo(h,g),c.lineTo(f,g),c.lineTo(f,p),c.fillStyle=r(p,g),c.fill()),u>0&&(_||m||v||b)&&(c.beginPath(),c.moveTo(h,p+a),_?c.lineTo(h,g+a):c.moveTo(h,g+a),v?c.lineTo(f,g+a):c.moveTo(f,g+a),m?c.lineTo(f,p+a):c.moveTo(f,p+a),b?c.lineTo(h,p+a):c.moveTo(h,p+a),c.stroke()))}function N(e){se.save(),se.translate(ue.left,ue.top),se.lineWidth=e.bars.lineWidth,se.strokeStyle=e.color;var t;switch(e.bars.align){case"left":t=0;break;case"right":t=-e.bars.barWidth;break;case"center":t=-e.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+e.bars.align)}var i=e.bars.fill?function(t,i){return G(e.bars,e.color,t,i)}:null;!function(t,i,n,o,a,r,s){for(var l=t.points,c=t.pointsize,d=0;d<l.length;d+=c)null!=l[d]&&F(l[d],l[d+1],l[d+2],i,n,o,a,r,s,se,e.bars.horizontal,e.bars.lineWidth)}(e.datapoints,t,t+e.bars.barWidth,0,i,e.xaxis,e.yaxis),se.restore()}function G(t,i,n,o){var a=t.fill;if(!a)return null;if(t.fillColor)return te(t.fillColor,n,o,i);var r=e.color.parse(i);return r.a="number"==typeof a?a:.4,r.normalize(),r.toString()}function B(){if(t.find(".legend").remove(),ne.legend.show){for(var i,n,o=[],a=[],r=!1,s=ne.legend.labelFormatter,l=0;l<ie.length;++l)i=ie[l],i.label&&(n=s?s(i.label,i):i.label)&&a.push({label:n,color:i.color});if(ne.legend.sorted)if(e.isFunction(ne.legend.sorted))a.sort(ne.legend.sorted);else if("reverse"==ne.legend.sorted)a.reverse();else{var c="descending"!=ne.legend.sorted;a.sort(function(e,t){return e.label==t.label?0:e.label<t.label!=c?1:-1})}for(var l=0;l<a.length;++l){var d=a[l];l%ne.legend.noColumns==0&&(r&&o.push("</tr>"),o.push("<tr>"),r=!0),o.push('<td class="legendColorBox"><div style="border:1px solid '+ne.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+d.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+d.label+"</td>")}if(r&&o.push("</tr>"),0!=o.length){var u='<table style="font-size:smaller;color:'+ne.grid.color+'">'+o.join("")+"</table>";if(null!=ne.legend.container)e(ne.legend.container).html(u);else{var h="",f=ne.legend.position,p=ne.legend.margin;null==p[0]&&(p=[p,p]),"n"==f.charAt(0)?h+="top:"+(p[1]+ue.top)+"px;":"s"==f.charAt(0)&&(h+="bottom:"+(p[1]+ue.bottom)+"px;"),"e"==f.charAt(1)?h+="right:"+(p[0]+ue.right)+"px;":"w"==f.charAt(1)&&(h+="left:"+(p[0]+ue.left)+"px;");var g=e('<div class="legend">'+u.replace('style="','style="position:absolute;'+h+";")+"</div>").appendTo(t);if(0!=ne.legend.backgroundOpacity){var _=ne.legend.backgroundColor;null==_&&(_=ne.grid.backgroundColor,_=_&&"string"==typeof _?e.color.parse(_):e.color.extract(g,"background-color"),_.a=1,_=_.toString());var m=g.children();e('<div style="position:absolute;width:'+m.width()+"px;height:"+m.height()+"px;"+h+"background-color:"+_+';"> </div>').prependTo(g).css("opacity",ne.legend.backgroundOpacity)}}}}}function L(e,t,i){var n,o,a,r=ne.grid.mouseActiveRadius,s=r*r+1,l=null;for(n=ie.length-1;n>=0;--n)if(i(ie[n])){var c=ie[n],d=c.xaxis,u=c.yaxis,h=c.datapoints.points,f=d.c2p(e),p=u.c2p(t),g=r/d.scale,_=r/u.scale;if(a=c.datapoints.pointsize,d.options.inverseTransform&&(g=Number.MAX_VALUE),u.options.inverseTransform&&(_=Number.MAX_VALUE),c.lines.show||c.points.show)for(o=0;o<h.length;o+=a){var m=h[o],v=h[o+1];if(null!=m&&!(m-f>g||m-f<-g||v-p>_||v-p<-_)){var b=Math.abs(d.p2c(m)-e),y=Math.abs(u.p2c(v)-t),x=b*b+y*y;x<s&&(s=x,l=[n,o/a])}}if(c.bars.show&&!l){var w="left"==c.bars.align?0:-c.bars.barWidth/2,k=w+c.bars.barWidth;for(o=0;o<h.length;o+=a){var m=h[o],v=h[o+1],C=h[o+2];null!=m&&((ie[n].bars.horizontal?f<=Math.max(C,m)&&f>=Math.min(C,m)&&p>=v+w&&p<=v+k:f>=m+w&&f<=m+k&&p>=Math.min(C,v)&&p<=Math.max(C,v))&&(l=[n,o/a]))}}}return l?(n=l[0],o=l[1],a=ie[n].datapoints.pointsize,{datapoint:ie[n].datapoints.points.slice(o*a,(o+1)*a),dataIndex:o,series:ie[n],seriesIndex:n}):null}function H(e){ne.grid.hoverable&&Y("plothover",e,function(e){return 0!=e.hoverable})}function R(e){ne.grid.hoverable&&Y("plothover",e,function(e){return!1})}function U(e){Y("plotclick",e,function(e){return 0!=e.clickable})}function Y(e,i,n){var o=re.offset(),a=i.pageX-o.left-ue.left,r=i.pageY-o.top-ue.top,s=u({left:a,top:r});s.pageX=i.pageX,s.pageY=i.pageY;var l=L(a,r,n);if(l&&(l.pageX=parseInt(l.series.xaxis.p2c(l.datapoint[0])+o.left+ue.left,10),l.pageY=parseInt(l.series.yaxis.p2c(l.datapoint[1])+o.top+ue.top,10)),ne.grid.autoHighlight){for(var c=0;c<ve.length;++c){var d=ve[c];d.auto!=e||l&&d.series==l.series&&d.point[0]==l.datapoint[0]&&d.point[1]==l.datapoint[1]||$(d.series,d.point)}l&&X(l.series,l.datapoint,e)}t.trigger(e,[s,l])}function V(){var e=ne.interaction.redrawOverlayInterval;if(-1==e)return void K();be||(be=setTimeout(K,e))}function K(){be=null,le.save(),le.clearRect(0,0,he,fe),le.translate(ue.left,ue.top);var e,t;for(e=0;e<ve.length;++e)t=ve[e],t.series.bars.show?ee(t.series,t.point):J(t.series,t.point);le.restore(),r(_e.drawOverlay,[le])}function X(e,t,i){if("number"==typeof e&&(e=ie[e]),"number"==typeof t){var n=e.datapoints.pointsize;t=e.datapoints.points.slice(n*t,n*(t+1))}var o=Z(e,t);-1==o?(ve.push({series:e,point:t,auto:i}),V()):i||(ve[o].auto=!1)}function $(e,t){null==e&&null==t&&(ve=[],V()),"number"==typeof e&&(e=ie[e]),"number"==typeof t&&(t=e.data[t]);var i=Z(e,t);-1!=i&&(ve.splice(i,1),V())}function Z(e,t){for(var i=0;i<ve.length;++i){var n=ve[i];if(n.series==e&&n.point[0]==t[0]&&n.point[1]==t[1])return i}return-1}function J(t,i){var n=i[0],o=i[1],a=t.xaxis,r=t.yaxis,s="string"==typeof t.highlightColor?t.highlightColor:e.color.parse(t.color).scale("a",.5).toString();if(!(n<a.min||n>a.max||o<r.min||o>r.max)){var l=t.points.radius+t.points.lineWidth/2;le.lineWidth=l,le.strokeStyle=s;var c=1.5*l;n=a.p2c(n),o=r.p2c(o),le.beginPath(),"circle"==t.points.symbol?le.arc(n,o,c,0,2*Math.PI,!1):t.points.symbol(le,n,o,c,!1),le.closePath(),le.stroke()}}function ee(t,i){var n="string"==typeof t.highlightColor?t.highlightColor:e.color.parse(t.color).scale("a",.5).toString(),o=n,a="left"==t.bars.align?0:-t.bars.barWidth/2;le.lineWidth=t.bars.lineWidth,le.strokeStyle=n,F(i[0],i[1],i[2]||0,a,a+t.bars.barWidth,0,function(){return o},t.xaxis,t.yaxis,le,t.bars.horizontal,t.bars.lineWidth)}function te(t,i,n,o){if("string"==typeof t)return t;for(var a=se.createLinearGradient(0,n,0,i),r=0,s=t.colors.length;r<s;++r){var l=t.colors[r];if("string"!=typeof l){var c=e.color.parse(o);null!=l.brightness&&(c=c.scale("rgb",l.brightness)),null!=l.opacity&&(c.a*=l.opacity),l=c.toString()}a.addColorStop(r/(s-1),l)}return a}var ie=[],ne={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:!0,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:"bottom",mode:null,timezone:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:!1},yaxis:{autoscaleMargin:.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:!1,radius:3,lineWidth:2,fill:!0,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:!1,fillColor:null,steps:!1},bars:{show:!1,lineWidth:2,barWidth:1,fill:!0,fillColor:null,align:"left",horizontal:!1,zero:!0},shadowSize:3,highlightColor:null},grid:{show:!0,aboveData:!1,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:!1,hoverable:!1,autoHighlight:!0,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},oe=null,ae=null,re=null,se=null,le=null,ce=[],de=[],ue={left:0,right:0,top:0,bottom:0},he=0,fe=0,pe=0,ge=0,_e={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},me=this;me.setData=s,me.setupGrid=T,me.draw=z,me.getPlaceholder=function(){return t},me.getCanvas=function(){return oe},me.getPlotOffset=function(){return ue},me.width=function(){return pe},me.height=function(){return ge},me.offset=function(){var e=re.offset();return e.left+=ue.left,e.top+=ue.top,e},me.getData=function(){return ie},me.getAxes=function(){var t={};return e.each(ce.concat(de),function(e,i){i&&(t[i.direction+(1!=i.n?i.n:"")+"axis"]=i)}),t},me.getXAxes=function(){return ce},me.getYAxes=function(){return de},me.c2p=u,me.p2c=h,me.getOptions=function(){return ne},me.highlight=X,me.unhighlight=$,me.triggerRedrawOverlay=V,me.pointOffset=function(e){return{left:parseInt(ce[c(e,"x")-1].p2c(+e.x)+ue.left,10),top:parseInt(de[c(e,"y")-1].p2c(+e.y)+ue.top,10)}},me.shutdown=y,me.resize=function(){v(),b(oe),b(ae)},me.hooks=_e,function(){for(var t=0;t<a.length;++t){var i=a[t];i.init(me),i.options&&e.extend(!0,ne,i.options)}}(),function(t){var i;for(e.extend(!0,ne,t),null==ne.xaxis.color&&(ne.xaxis.color=ne.grid.color),null==ne.yaxis.color&&(ne.yaxis.color=ne.grid.color),null==ne.xaxis.tickColor&&(ne.xaxis.tickColor=ne.grid.tickColor),null==ne.yaxis.tickColor&&(ne.yaxis.tickColor=ne.grid.tickColor),null==ne.grid.borderColor&&(ne.grid.borderColor=ne.grid.color),null==ne.grid.tickColor&&(ne.grid.tickColor=e.color.parse(ne.grid.color).scale("a",.22).toString()),i=0;i<Math.max(1,ne.xaxes.length);++i)ne.xaxes[i]=e.extend(!0,{},ne.xaxis,ne.xaxes[i]);for(i=0;i<Math.max(1,ne.yaxes.length);++i)ne.yaxes[i]=e.extend(!0,{},ne.yaxis,ne.yaxes[i]);for(ne.xaxis.noTicks&&null==ne.xaxis.ticks&&(ne.xaxis.ticks=ne.xaxis.noTicks),ne.yaxis.noTicks&&null==ne.yaxis.ticks&&(ne.yaxis.ticks=ne.yaxis.noTicks),ne.x2axis&&(ne.xaxes[1]=e.extend(!0,{},ne.xaxis,ne.x2axis),ne.xaxes[1].position="top"),ne.y2axis&&(ne.yaxes[1]=e.extend(!0,{},ne.yaxis,ne.y2axis),ne.yaxes[1].position="right"),ne.grid.coloredAreas&&(ne.grid.markings=ne.grid.coloredAreas),ne.grid.coloredAreasColor&&(ne.grid.markingsColor=ne.grid.coloredAreasColor),ne.lines&&e.extend(!0,ne.series.lines,ne.lines),ne.points&&e.extend(!0,ne.series.points,ne.points),ne.bars&&e.extend(!0,ne.series.bars,ne.bars),null!=ne.shadowSize&&(ne.series.shadowSize=ne.shadowSize),null!=ne.highlightColor&&(ne.series.highlightColor=ne.highlightColor),i=0;i<ne.xaxes.length;++i)f(ce,i+1).options=ne.xaxes[i];for(i=0;i<ne.yaxes.length;++i)f(de,i+1).options=ne.yaxes[i];for(var n in _e)ne.hooks[n]&&ne.hooks[n].length&&(_e[n]=_e[n].concat(ne.hooks[n]));r(_e.processOptions,[ne])}(o),function(){var i,n=t.children("canvas.flot-base"),o=t.children("canvas.flot-overlay");0==n.length||0==o?(t.html(""),t.css({padding:0}),"static"==t.css("position")&&t.css("position","relative"),v(),oe=m("flot-base"),ae=m("flot-overlay"),i=!1):(oe=n.get(0),ae=o.get(0),i=!0),se=oe.getContext("2d"),le=ae.getContext("2d"),re=e(ae),i&&(t.data("plot").shutdown(),me.resize(),le.clearRect(0,0,he,fe),re.unbind(),t.children().not([oe,ae]).remove()),t.data("plot",me)}(),s(n),T(),z(),function(){ne.grid.hoverable&&(re.mousemove(H),re.bind("mouseleave",R)),ne.grid.clickable&&re.click(U),r(_e.bindEvents,[re])}();var ve=[],be=null}function i(e,t){return t*Math.floor(e/t)}e.plot=function(i,n,o){return new t(e(i),n,o,e.plot.plugins)},e.plot.version="0.8-alpha",e.plot.plugins=[],e.fn.plot=function(t,i){return this.each(function(){e.plot(this,t,i)})}}(jQuery)},function(e,t){!function(e){function t(e){function t(e,t,o){var r=null;if(i(t)&&(c(t),n(e),a(e),l(t),_>=2)){var s=d(t),m=0,b=u();void 0===x[t.bars.order]&&(h(s)?x[t.bars.order]=-1*f(g,s-1,Math.floor(_/2)-1)-b:x[t.bars.order]=f(g,Math.ceil(_/2),s-2)+b+2*v),m=x[t.bars.order],r=p(o,t,m),o.points=r}return r}function i(e){return null!=e.bars&&e.bars.show&&null!=e.bars.order}function n(e){var t=y?e.getPlaceholder().innerHeight():e.getPlaceholder().innerWidth(),i=y?o(e.getData(),1):o(e.getData(),0),n=i[1]-i[0];b=n/t}function o(e,t){for(var i=new Array,n=0;n<e.length;n++)i[0]=e[n].data[0]?e[n].data[0][t]:null,i[1]=e[n].data[e[n].data.length-1]?e[n].data[e[n].data.length-1][t]:null;return i}function a(e){g=r(e.getData()),_=g.length}function r(e){for(var t=new Array,i=[],n=0;n<e.length;n++)null!=e[n].bars.order&&e[n].bars.show&&i.indexOf(e[n].bars.order)<0&&(i.push(e[n].bars.order),t.push(e[n]));return t.sort(s)}function s(e,t){var i=e.bars.order,n=t.bars.order;return i<n?-1:i>n?1:0}function l(e){m=void 0!==e.bars.lineWidth?e.bars.lineWidth:2,v=m*b}function c(e){e.bars.horizontal&&(y=!0)}function d(e){for(var t=0,i=0;i<g.length;++i)if(e==g[i]){t=i;break}return t+1}function u(){var e=0;return _%2!=0&&(e=g[Math.ceil(_/2)].bars.barWidth/2),e}function h(e){return e<=Math.ceil(_/2)}function f(e,t,i){for(var n=0,o=t;o<=i;o++)n+=e[o].bars.barWidth+2*v;return n}function p(e,t,i){for(var n=e.pointsize,o=e.points,a=0,r=y?1:0;r<o.length;r+=n)o[r]+=i,t.data[a][3]=o[r],a++;return o}var g,_,m,v,b=1,y=!1,x={};e.hooks.processDatapoints.push(t)}var i={series:{bars:{order:null}}};e.plot.plugins.push({init:t,options:i,name:"orderBars",version:"0.2"})}(jQuery)},function(e,t){!function(e){function t(e,t){return t*Math.floor(e/t)}function i(e,t,i,n){if("function"==typeof e.strftime)return e.strftime(t);var o=function(e,t){return e=""+e,t=""+(null==t?"0":t),1==e.length?t+e:e},a=[],r=!1,s=e.getHours(),l=s<12;null==i&&(i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==n&&(n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);var c;c=s>12?s-12:0==s?12:s;for(var d=0;d<t.length;++d){var u=t.charAt(d);if(r){switch(u){case"a":u=""+n[e.getDay()];break;case"b":u=""+i[e.getMonth()];break;case"d":u=o(e.getDate());break;case"e":u=o(e.getDate()," ");break;case"H":u=o(s);break;case"I":u=o(c);break;case"l":u=o(c," ");break;case"m":u=o(e.getMonth()+1);break;case"M":u=o(e.getMinutes());break;case"q":u=""+(Math.floor(e.getMonth()/3)+1);break;case"S":u=o(e.getSeconds());break;case"y":u=o(e.getFullYear()%100);break;case"Y":u=""+e.getFullYear();break;case"p":u=l?"am":"pm";break;case"P":u=l?"AM":"PM";break;case"w":u=""+e.getDay()}a.push(u),r=!1}else"%"==u?r=!0:a.push(u)}return a.join("")}function n(e){function t(e,t,i,n){e[t]=function(){return i[n].apply(i,arguments)}}var i={date:e};void 0!=e.strftime&&t(i,"strftime",e,"strftime"),t(i,"getTime",e,"getTime"),t(i,"setTime",e,"setTime");for(var n=["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds"],o=0;o<n.length;o++)t(i,"get"+n[o],e,"getUTC"+n[o]),t(i,"set"+n[o],e,"setUTC"+n[o]);return i}function o(e,t){if("browser"==t.timezone)return new Date(e);if(t.timezone&&"utc"!=t.timezone){if("undefined"!=typeof timezoneJS&&void 0!==timezoneJS.Date){var i=new timezoneJS.Date;return i.setTimezone(t.timezone),i.setTime(e),i}return n(new Date(e))}return n(new Date(e))}function a(n){n.hooks.processDatapoints.push(function(n,a,r){e.each(n.getAxes(),function(e,n){var a=n.options;"time"==a.mode&&(n.tickGenerator=function(e){var i=[],n=o(e.min,a),r=0,l=a.tickSize&&"quarter"===a.tickSize[1]||a.minTickSize&&"quarter"===a.minTickSize[1]?d:c;null!=a.minTickSize&&(r="number"==typeof a.tickSize?a.tickSize:a.minTickSize[0]*s[a.minTickSize[1]]);for(var u=0;u<l.length-1&&!(e.delta<(l[u][0]*s[l[u][1]]+l[u+1][0]*s[l[u+1][1]])/2&&l[u][0]*s[l[u][1]]>=r);++u);var h=l[u][0],f=l[u][1];if("year"==f){if(null!=a.minTickSize&&"year"==a.minTickSize[1])h=Math.floor(a.minTickSize[0]);else{var p=Math.pow(10,Math.floor(Math.log(e.delta/s.year)/Math.LN10)),g=e.delta/s.year/p;h=g<1.5?1:g<3?2:g<7.5?5:10,h*=p}h<1&&(h=1)}e.tickSize=a.tickSize||[h,f];var _=e.tickSize[0];f=e.tickSize[1];var m=_*s[f];"second"==f?n.setSeconds(t(n.getSeconds(),_)):"minute"==f?n.setMinutes(t(n.getMinutes(),_)):"hour"==f?n.setHours(t(n.getHours(),_)):"month"==f?n.setMonth(t(n.getMonth(),_)):"quarter"==f?n.setMonth(3*t(n.getMonth()/3,_)):"year"==f&&n.setFullYear(t(n.getFullYear(),_)),n.setMilliseconds(0),m>=s.minute?n.setSeconds(0):m>=s.hour?n.setMinutes(0):m>=s.day?n.setHours(0):m>=4*s.day?n.setDate(1):m>=2*s.month?n.setMonth(t(n.getMonth(),3)):m>=2*s.quarter?n.setMonth(t(n.getMonth(),6)):m>=s.year&&n.setMonth(0);var v,b=0,y=Number.NaN;do{if(v=y,y=n.getTime(),i.push(y),"month"==f||"quarter"==f)if(_<1){n.setDate(1);var x=n.getTime();n.setMonth(n.getMonth()+("quarter"==f?3:1));var w=n.getTime();n.setTime(y+b*s.hour+(w-x)*_),b=n.getHours(),n.setHours(0)}else n.setMonth(n.getMonth()+_*("quarter"==f?3:1));else"year"==f?n.setFullYear(n.getFullYear()+_):n.setTime(y+m)}while(y<e.max&&y!=v);return i},n.tickFormatter=function(e,t){var n=o(e,t.options);if(null!=a.timeformat)return i(n,a.timeformat,a.monthNames,a.dayNames);var r,l=t.options.tickSize&&"quarter"==t.options.tickSize[1]||t.options.minTickSize&&"quarter"==t.options.minTickSize[1],c=t.tickSize[0]*s[t.tickSize[1]],d=t.max-t.min,u=a.twelveHourClock?" %p":"",h=a.twelveHourClock?"%I":"%H";return r=c<s.minute?h+":%M:%S"+u:c<s.day?d<2*s.day?h+":%M"+u:"%b %d "+h+":%M"+u:c<s.month?"%b %d":l&&c<s.quarter||!l&&c<s.year?d<s.year?"%b":"%b %Y":l&&c<s.year?d<s.year?"Q%q":"Q%q %Y":"%Y",i(n,r,a.monthNames,a.dayNames)})})})}var r={},s={second:1e3,minute:6e4,hour:36e5,day:864e5,month:2592e6,quarter:7776e6,year:525949.2*60*1e3},l=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[.25,"month"],[.5,"month"],[1,"month"],[2,"month"]],c=l.concat([[3,"month"],[6,"month"],[1,"year"]]),d=l.concat([[1,"quarter"],[2,"quarter"],[1,"year"]]);e.plot.plugins.push({init:a,options:r,name:"time",version:"1.0"}),e.plot.formatDate=i}(jQuery)},function(e,t){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e){"use strict";e.extend({giveAjaxifyFields:function(t){var n,o,a={type:"",parentWrapper:"form",countryFieldName:"country",stateFieldName:"state",stateFieldWrapper:".give-field-wrap",chosenState:!0},r=e.extend({},a,t||{});switch(r.type){case"country_state":if(n=e('select[name="'+r.countryFieldName+'"]'),o=n.closest(r.parentWrapper),!n.length||"Country_state"===n.data("give-ajaxify-field"))return;n.data("give-ajaxify-field","country_state"),n.change(function(){var t=e(this),n=t.closest(r.parentWrapper).find('[name="'+r.stateFieldName+'"]'),a=n.closest(r.stateFieldWrapper),s=e("label",a);r.stateFieldWrapper||(s=e('label[for="'+r.stateFieldName+'"]',o),a=n.parent());var l={action:"give_get_states",country:t.val(),field_name:r.stateFieldName};e.post(ajaxurl,l,function(t){if(!t.show_field)return void(r.stateFieldWrapper?a.addClass("give-hidden"):n.addClass("give-hidden"));s.length&&s.text(t.states_label),r.chosenState&&n.chosen("destroy"),r.stateFieldWrapper?a.removeClass("give-hidden"):n.removeClass("give-hidden"),void 0!==i(t.states_found)&&!0===t.states_found?(n.replaceWith(t.data),n=e('[name="'+r.stateFieldName+'"]',a),r.chosenState&&n.chosen()):(n.replaceWith('<input type="text" name="'+r.stateFieldName+'" value="'+t.default_state+'" class="medium-text"/>'),n=e('[name="'+r.stateFieldName+'"]',a))})})}return this}})}(jQuery)},function(e,t){var i={collection:{},get:function(e,t,i){return jQuery?(t=void 0!==t?t:void 0,i=!0===i,(void 0===this.collection[e]||i)&&(this.collection[e]=void 0!==t?jQuery(e,t):jQuery(e)),this.collection[e]):-1}};window.Give_Selector_Cache=i},function(e,t){!function(e){e.fn.repeatable_fields=function(t){function i(t){e(a.wrapper,t).each(function(t,o){var r=this,s=e(r).children(a.container);e(s).children(a.template).hide().find(":input").each(function(){e(this).prop("disabled",!0)});var l=e(s).children(a.row).filter(function(){return!e(this).hasClass(a.template.replace(".",""))}).length;if(e(s).attr("data-rf-row-count",l),e(r).on("click",a.add,function(t){t.stopImmediatePropagation();var o=e(e(s).children(a.template).clone().removeClass(a.template.replace(".",""))[0].outerHTML);e(o).find(":input").each(function(){e(this).prop("disabled",!1)}),"function"==typeof a.before_add&&a.before_add(s);var r=e(o).show().appendTo(s);"function"==typeof a.after_add&&a.after_add(s,r,n),i(r)}),e(r).on("click",a.remove,function(t){if(t.stopImmediatePropagation(),a.confirm_before_remove_row&&a.confirm_before_remove_row_text&&!confirm(a.confirm_before_remove_row_text))return!1;var i=e(this).parents(a.row).first();"function"==typeof a.before_remove&&a.before_remove(s,i),i.remove(),"function"==typeof a.after_remove&&a.after_remove(s)}),!0===a.is_sortable&&void 0!==e.ui&&void 0!==e.ui.sortable){var c=null!==a.sortable_options?a.sortable_options:{};c.handle=a.move,e(r).find(a.container).sortable(c)}})}function n(t,i){var n=e(t).attr("data-rf-row-count");n++,e("*",i).each(function(){e.each(this.attributes,function(e,t){this.value=this.value.replace(a.row_count_placeholder,n-1)})}),e(t).attr("data-rf-row-count",n)}var o={wrapper:".wrapper",container:".container",row:".row",add:".add",remove:".remove",confirm_before_remove_row:!1,confirm_before_remove_row_text:"",move:".move",template:".template",is_sortable:!0,before_add:null,after_add:n,before_remove:null,after_remove:null,sortable_options:null,row_count_placeholder:"{{row-count-placeholder}}"},a=e.extend({},o,t);i(this)}}(jQuery)},function(e,t){/*!
12
  * Give Admin Forms JS
13
  *
14
  * @description: The Give Admin Forms scripts. Only enqueued on the give_forms CPT; used to validate fields, show/hide, and other functions
8
  * Full details and documentation:
9
  * http://openexchangerates.github.io/accounting.js/
10
  */
11
+ !function(i,n){function o(e){return!!(""===e||e&&e.charCodeAt&&e.substr)}function a(e){return f?f(e):"[object Array]"===p.call(e)}function r(e){return e&&"[object Object]"===p.call(e)}function s(e,t){var i;e=e||{},t=t||{};for(i in t)t.hasOwnProperty(i)&&null==e[i]&&(e[i]=t[i]);return e}function l(e,t,i){var n,o,a=[];if(!e)return a;if(h&&e.map===h)return e.map(t,i);for(n=0,o=e.length;n<o;n++)a[n]=t.call(i,e[n],n,e);return a}function c(e,t){return e=Math.round(Math.abs(e)),isNaN(e)?t:e}function d(e){var t=u.settings.currency.format;return"function"==typeof e&&(e=e()),o(e)&&e.match("%v")?{pos:e,neg:e.replace("-","").replace("%v","-%v"),zero:e}:e&&e.pos&&e.pos.match("%v")?e:o(t)?u.settings.currency.format={pos:t,neg:t.replace("%v","-%v"),zero:t}:t}var u={};u.version="0.4.1",u.settings={currency:{symbol:"$",format:"%s%v",decimal:".",thousand:",",precision:2,grouping:3},number:{precision:0,grouping:3,thousand:",",decimal:"."}};var h=Array.prototype.map,f=Array.isArray,p=Object.prototype.toString,g=u.unformat=u.parse=function(e,t){if(a(e))return l(e,function(e){return g(e,t)});if("number"==typeof(e=e||0))return e;t=t||u.settings.number.decimal;var i=new RegExp("[^0-9-"+t+"]",["g"]),n=parseFloat((""+e).replace(/\((.*)\)/,"-$1").replace(i,"").replace(t,"."));return isNaN(n)?0:n},_=u.toFixed=function(e,t){t=c(t,u.settings.number.precision);var i=Math.pow(10,t);return(Math.round(u.unformat(e)*i)/i).toFixed(t)},m=u.formatNumber=u.format=function(e,t,i,n){if(a(e))return l(e,function(e){return m(e,t,i,n)});e=g(e);var o=s(r(t)?t:{precision:t,thousand:i,decimal:n},u.settings.number),d=c(o.precision),h=e<0?"-":"",f=parseInt(_(Math.abs(e||0),d),10)+"",p=f.length>3?f.length%3:0;return h+(p?f.substr(0,p)+o.thousand:"")+f.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+o.thousand)+(d?o.decimal+_(Math.abs(e),d).split(".")[1]:"")},v=u.formatMoney=function(e,t,i,n,o,h){if(a(e))return l(e,function(e){return v(e,t,i,n,o,h)});e=g(e);var f=s(r(t)?t:{symbol:t,precision:i,thousand:n,decimal:o,format:h},u.settings.currency),p=d(f.format);return(e>0?p.pos:e<0?p.neg:p.zero).replace("%s",f.symbol).replace("%v",m(Math.abs(e),c(f.precision),f.thousand,f.decimal))};u.formatColumn=function(e,t,i,n,h,f){if(!e)return[];var p=s(r(t)?t:{symbol:t,precision:i,thousand:n,decimal:h,format:f},u.settings.currency),_=d(p.format),v=_.pos.indexOf("%s")<_.pos.indexOf("%v"),b=0;return l(l(e,function(e,t){if(a(e))return u.formatColumn(e,p);e=g(e);var i=e>0?_.pos:e<0?_.neg:_.zero,n=i.replace("%s",p.symbol).replace("%v",m(Math.abs(e),c(p.precision),p.thousand,p.decimal));return n.length>b&&(b=n.length),n}),function(e,t){return o(e)&&e.length<b?v?e.replace(p.symbol,p.symbol+new Array(b-e.length+1).join(" ")):new Array(b-e.length+1).join(" ")+e:e})},void 0!==e&&e.exports&&(t=e.exports=u),t.accounting=u}()},function(e,t,i){var n,o,a;!function(r){o=[i(0)],n=r,void 0!==(a="function"==typeof n?n.apply(t,o):n)&&(e.exports=a)}(function(e){var t,i,n,o,a,r,s=function(){},l=!!window.jQuery,c=e(window),d=function(e,i){t.ev.on("mfp"+e+".mfp",i)},u=function(t,i,n,o){var a=document.createElement("div");return a.className="mfp-"+t,n&&(a.innerHTML=n),o?i&&i.appendChild(a):(a=e(a),i&&a.appendTo(i)),a},h=function(i,n){t.ev.triggerHandler("mfp"+i,n),t.st.callbacks&&(i=i.charAt(0).toLowerCase()+i.slice(1),t.st.callbacks[i]&&t.st.callbacks[i].apply(t,e.isArray(n)?n:[n]))},f=function(i){return i===r&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),r=i),t.currTemplate.closeBtn},p=function(){e.magnificPopup.instance||(t=new s,t.init(),e.magnificPopup.instance=t)},g=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1};s.prototype={constructor:s,init:function(){var i=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.supportsTransition=g(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),n=e(document),t.popupsCache={}},open:function(i){var o;if(!1===i.isObj){t.items=i.items.toArray(),t.index=0;var r,s=i.items;for(o=0;o<s.length;o++)if(r=s[o],r.parsed&&(r=r.el[0]),r===i.el[0]){t.index=o;break}}else t.items=e.isArray(i.items)?i.items:[i.items],t.index=i.index||0;if(t.isOpen)return void t.updateItemHTML();t.types=[],a="",i.mainEl&&i.mainEl.length?t.ev=i.mainEl.eq(0):t.ev=n,i.key?(t.popupsCache[i.key]||(t.popupsCache[i.key]={}),t.currTemplate=t.popupsCache[i.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,i),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=u("bg").on("click.mfp",function(){t.close()}),t.wrap=u("wrap").attr("tabindex",-1).on("click.mfp",function(e){t._checkIfClose(e.target)&&t.close()}),t.container=u("container",t.wrap)),t.contentContainer=u("content"),t.st.preloader&&(t.preloader=u("preloader",t.container,t.st.tLoading));var l=e.magnificPopup.modules;for(o=0;o<l.length;o++){var p=l[o];p=p.charAt(0).toUpperCase()+p.slice(1),t["init"+p].call(t)}h("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(d("MarkupParse",function(e,t,i,n){i.close_replaceWith=f(n.type)}),a+=" mfp-close-btn-in"):t.wrap.append(f())),t.st.alignTop&&(a+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:c.scrollTop(),position:"absolute"}),(!1===t.st.fixedBgPos||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:n.height(),position:"absolute"}),t.st.enableEscapeKey&&n.on("keyup.mfp",function(e){27===e.keyCode&&t.close()}),c.on("resize.mfp",function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var g=t.wH=c.height(),_={};if(t.fixedContentPos&&t._hasScrollBar(g)){var m=t._getScrollbarSize();m&&(_.marginRight=m)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):_.overflow="hidden");var v=t.st.mainClass;return t.isIE7&&(v+=" mfp-ie7"),v&&t._addClassToMFP(v),t.updateItemHTML(),h("BuildControls"),e("html").css(_),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||e(document.body)),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP("mfp-ready"),t._setFocus()):t.bgOverlay.addClass("mfp-ready"),n.on("focusin.mfp",t._onFocusIn)},16),t.isOpen=!0,t.updateSize(g),h("Open"),i},close:function(){t.isOpen&&(h("BeforeClose"),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP("mfp-removing"),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){h("Close");var i="mfp-removing mfp-ready ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(i+=t.st.mainClass+" "),t._removeClassFromMFP(i),t.fixedContentPos){var o={marginRight:""};t.isIE7?e("body, html").css("overflow",""):o.overflow="",e("html").css(o)}n.off("keyup.mfp focusin.mfp"),t.ev.off(".mfp"),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&!0!==t.currTemplate[t.currItem.type]||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t.st.autoFocusLast&&t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,h("AfterClose")},updateSize:function(e){if(t.isIOS){var i=document.documentElement.clientWidth/window.innerWidth,n=window.innerHeight*i;t.wrap.css("height",n),t.wH=n}else t.wH=e||c.height();t.fixedContentPos||t.wrap.css("height",t.wH),h("Resize")},updateItemHTML:function(){var i=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),i.parsed||(i=t.parseEl(t.index));var n=i.type;if(h("BeforeChange",[t.currItem?t.currItem.type:"",n]),t.currItem=i,!t.currTemplate[n]){var a=!!t.st[n]&&t.st[n].markup;h("FirstMarkupParse",a),t.currTemplate[n]=!a||e(a)}o&&o!==i.type&&t.container.removeClass("mfp-"+o+"-holder");var r=t["get"+n.charAt(0).toUpperCase()+n.slice(1)](i,t.currTemplate[n]);t.appendContent(r,n),i.preloaded=!0,h("Change",i),o=i.type,t.container.prepend(t.contentContainer),h("AfterChange")},appendContent:function(e,i){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&!0===t.currTemplate[i]?t.content.find(".mfp-close").length||t.content.append(f()):t.content=e:t.content="",h("BeforeAppend"),t.container.addClass("mfp-"+i+"-holder"),t.contentContainer.append(t.content)},parseEl:function(i){var n,o=t.items[i];if(o.tagName?o={el:e(o)}:(n=o.type,o={data:o,src:o.src}),o.el){for(var a=t.types,r=0;r<a.length;r++)if(o.el.hasClass("mfp-"+a[r])){n=a[r];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return o.type=n||t.st.type||"inline",o.index=i,o.parsed=!0,t.items[i]=o,h("ElementParse",o),t.items[i]},addGroup:function(e,i){var n=function(n){n.mfpEl=this,t._openClick(n,e,i)};i||(i={});var o="click.magnificPopup";i.mainEl=e,i.items?(i.isObj=!0,e.off(o).on(o,n)):(i.isObj=!1,i.delegate?e.off(o).on(o,i.delegate,n):(i.items=e,e.off(o).on(o,n)))},_openClick:function(i,n,o){if((void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick)||!(2===i.which||i.ctrlKey||i.metaKey||i.altKey||i.shiftKey)){var a=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(c.width()<a)return!0;i.type&&(i.preventDefault(),t.isOpen&&i.stopPropagation()),o.el=e(i.mfpEl),o.delegate&&(o.items=n.find(o.delegate)),t.open(o)}},updateStatus:function(e,n){if(t.preloader){i!==e&&t.container.removeClass("mfp-s-"+i),n||"loading"!==e||(n=t.st.tLoading);var o={status:e,text:n};h("UpdateStatus",o),e=o.status,n=o.text,t.preloader.html(n),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),i=e}},_checkIfClose:function(i){if(!e(i).hasClass("mfp-prevent-close")){var n=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(n&&o)return!0;if(!t.content||e(i).hasClass("mfp-close")||t.preloader&&i===t.preloader[0])return!0;if(i===t.content[0]||e.contains(t.content[0],i)){if(n)return!0}else if(o&&e.contains(document,i))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?n.height():document.body.scrollHeight)>(e||c.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(i){if(i.target!==t.wrap[0]&&!e.contains(t.wrap[0],i.target))return t._setFocus(),!1},_parseMarkup:function(t,i,n){var o;n.data&&(i=e.extend(n.data,i)),h("MarkupParse",[t,i,n]),e.each(i,function(i,n){if(void 0===n||!1===n)return!0;if(o=i.split("_"),o.length>1){var a=t.find(".mfp-"+o[0]);if(a.length>0){var r=o[1];"replaceWith"===r?a[0]!==n[0]&&a.replaceWith(n):"img"===r?a.is("img")?a.attr("src",n):a.replaceWith(e("<img>").attr("src",n).attr("class",a.attr("class"))):a.attr(o[1],n)}}else t.find(".mfp-"+i).html(n)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:s.prototype,modules:[],open:function(t,i){return p(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=i||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,i){i.options&&(e.magnificPopup.defaults[t]=i.options),e.extend(this.proto,i.proto),this.modules.push(t)},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:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(i){p();var n=e(this);if("string"==typeof i)if("open"===i){var o,a=l?n.data("magnificPopup"):n[0].magnificPopup,r=parseInt(arguments[1],10)||0;a.items?o=a.items[r]:(o=n,a.delegate&&(o=o.find(a.delegate)),o=o.eq(r)),t._openClick({mfpEl:o},n,a)}else t.isOpen&&t[i].apply(t,Array.prototype.slice.call(arguments,1));else i=e.extend(!0,{},i),l?n.data("magnificPopup",i):n[0].magnificPopup=i,t.addGroup(n,i);return n};var _,m,v,b=function(){v&&(m.after(v.addClass(_)).detach(),v=null)};e.magnificPopup.registerModule("inline",{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push("inline"),d("Close.inline",function(){b()})},getInline:function(i,n){if(b(),i.src){var o=t.st.inline,a=e(i.src);if(a.length){var r=a[0].parentNode;r&&r.tagName&&(m||(_=o.hiddenClass,m=u(_),_="mfp-"+_),v=a.after(m).detach().removeClass(_)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),a=e("<div>");return i.inlineElement=a,a}return t.updateStatus("ready"),t._parseMarkup(n,{},i),n}}});var y,x=function(){y&&e(document.body).removeClass(y)},w=function(){x(),t.req&&t.req.abort()};e.magnificPopup.registerModule("ajax",{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push("ajax"),y=t.st.ajax.cursor,d("Close.ajax",w),d("BeforeChange.ajax",w)},getAjax:function(i){y&&e(document.body).addClass(y),t.updateStatus("loading");var n=e.extend({url:i.src,success:function(n,o,a){var r={data:n,xhr:a};h("ParseAjax",r),t.appendContent(e(r.data),"ajax"),i.finished=!0,x(),t._setFocus(),setTimeout(function(){t.wrap.addClass("mfp-ready")},16),t.updateStatus("ready"),h("AjaxContentAdded")},error:function(){x(),i.finished=i.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",i.src))}},t.st.ajax.settings);return t.req=e.ajax(n),""}}});var k,C=function(i){if(i.data&&void 0!==i.data.title)return i.data.title;var n=t.st.image.titleSrc;if(n){if(e.isFunction(n))return n.call(t,i);if(i.el)return i.el.attr(n)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var i=t.st.image,n=".image";t.types.push("image"),d("Open"+n,function(){"image"===t.currItem.type&&i.cursor&&e(document.body).addClass(i.cursor)}),d("Close"+n,function(){i.cursor&&e(document.body).removeClass(i.cursor),c.off("resize.mfp")}),d("Resize"+n,t.resizeImage),t.isLowIE&&d("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var i=0;t.isLowIE&&(i=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-i)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,k&&clearInterval(k),e.isCheckingImgSize=!1,h("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,n=e.img[0],o=function(a){k&&clearInterval(k),k=setInterval(function(){if(n.naturalWidth>0)return void t._onImageHasSize(e);i>200&&clearInterval(k),i++,3===i?o(10):40===i?o(50):100===i&&o(500)},a)};o(1)},getImage:function(i,n){var o=0,a=function(){i&&(i.img[0].complete?(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("ready")),i.hasSize=!0,i.loaded=!0,h("ImageLoadComplete")):(o++,o<200?setTimeout(a,100):r()))},r=function(){i&&(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("error",s.tError.replace("%url%",i.src))),i.hasSize=!0,i.loaded=!0,i.loadError=!0)},s=t.st.image,l=n.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",i.el&&i.el.find("img").length&&(c.alt=i.el.find("img").attr("alt")),i.img=e(c).on("load.mfploader",a).on("error.mfploader",r),c.src=i.src,l.is("img")&&(i.img=i.img.clone()),c=i.img[0],c.naturalWidth>0?i.hasSize=!0:c.width||(i.hasSize=!1)}return t._parseMarkup(n,{title:C(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(k&&clearInterval(k),i.loadError?(n.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",i.src))):(n.removeClass("mfp-loading"),t.updateStatus("ready")),n):(t.updateStatus("loading"),i.loading=!0,i.hasSize||(i.imgHidden=!0,n.addClass("mfp-loading"),t.findImageSize(i)),n)}}});var j,T=function(){return void 0===j&&(j=void 0!==document.createElement("p").style.MozTransform),j};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,i=t.st.zoom,n=".zoom";if(i.enabled&&t.supportsTransition){var o,a,r=i.duration,s=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),n="all "+i.duration/1e3+"s "+i.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},a="transition";return o["-webkit-"+a]=o["-moz-"+a]=o["-o-"+a]=o[a]=n,t.css(o),t},l=function(){t.content.css("visibility","visible")};d("BuildControls"+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void l();a=s(e),a.css(t._getOffset()),t.wrap.append(a),o=setTimeout(function(){a.css(t._getOffset(!0)),o=setTimeout(function(){l(),setTimeout(function(){a.remove(),e=a=null,h("ZoomAnimationEnded")},16)},r)},16)}}),d("BeforeClose"+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=r,!e){if(!(e=t._getItemToZoom()))return;a=s(e)}a.css(t._getOffset(!0)),t.wrap.append(a),t.content.css("visibility","hidden"),setTimeout(function(){a.css(t._getOffset())},16)}}),d("Close"+n,function(){t._allowZoom()&&(l(),a&&a.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(i){var n;n=i?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var o=n.offset(),a=parseInt(n.css("padding-top"),10),r=parseInt(n.css("padding-bottom"),10);o.top-=e(window).scrollTop()-a;var s={width:n.width(),height:(l?n.innerHeight():n[0].offsetHeight)-r-a};return T()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var S=function(e){if(t.currTemplate.iframe){var i=t.currTemplate.iframe.find("iframe");i.length&&(e||(i[0].src="//about:blank"),t.isIE8&&i.css("display",e?"block":"none"))}};e.magnificPopup.registerModule("iframe",{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',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(){t.types.push("iframe"),d("BeforeChange",function(e,t,i){t!==i&&("iframe"===t?S():"iframe"===i&&S(!0))}),d("Close.iframe",function(){S()})},getIframe:function(i,n){var o=i.src,a=t.st.iframe;e.each(a.patterns,function(){if(o.indexOf(this.index)>-1)return this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1});var r={};return a.srcAction&&(r[a.srcAction]=o),t._parseMarkup(n,r,i),t.updateStatus("ready"),n}}});var M=function(e){var i=t.items.length;return e>i-1?e-i:e<0?i+e:e},I=function(e,t,i){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,i)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',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 i=t.st.gallery,o=".mfp-gallery";if(t.direction=!0,!i||!i.enabled)return!1;a+=" mfp-gallery",d("Open"+o,function(){i.navigateByImgClick&&t.wrap.on("click"+o,".mfp-img",function(){if(t.items.length>1)return t.next(),!1}),n.on("keydown"+o,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),d("UpdateStatus"+o,function(e,i){i.text&&(i.text=I(i.text,t.currItem.index,t.items.length))}),d("MarkupParse"+o,function(e,n,o,a){var r=t.items.length;o.counter=r>1?I(i.tCounter,a.index,r):""}),d("BuildControls"+o,function(){if(t.items.length>1&&i.arrows&&!t.arrowLeft){var n=i.arrowMarkup,o=t.arrowLeft=e(n.replace(/%title%/gi,i.tPrev).replace(/%dir%/gi,"left")).addClass("mfp-prevent-close"),a=t.arrowRight=e(n.replace(/%title%/gi,i.tNext).replace(/%dir%/gi,"right")).addClass("mfp-prevent-close");o.click(function(){t.prev()}),a.click(function(){t.next()}),t.container.append(o.add(a))}}),d("Change"+o,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),d("Close"+o,function(){n.off(o),t.wrap.off("click"+o),t.arrowRight=t.arrowLeft=null})},next:function(){t.direction=!0,t.index=M(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=M(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,n=Math.min(i[0],t.items.length),o=Math.min(i[1],t.items.length);for(e=1;e<=(t.direction?o:n);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?n:o);e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=M(i),!t.items[i].preloaded){var n=t.items[i];n.parsed||(n=t.parseEl(i)),h("LazyLoad",n),"image"===n.type&&(n.img=e('<img class="mfp-img" />').on("load.mfploader",function(){n.hasSize=!0}).on("error.mfploader",function(){n.hasSize=!0,n.loadError=!0,h("LazyLoadError",n)}).attr("src",n.src)),n.preloaded=!0}}}});e.magnificPopup.registerModule("retina",{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,i=e.ratio;i=isNaN(i)?i():i,i>1&&(d("ImageHasSize.retina",function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})}),d("ElementParse.retina",function(t,n){n.src=e.replaceSrc(n,i)}))}}}}),p()})},function(e,t){jQuery.fn.giveHintCss=function(e,t){return this.each(function(){var i=jQuery(this);t=jQuery.extend({label:""},t);var n=i.next("span.give-hint-tooltip-js");if(!n.length){var o=t.label.length?t.label:i.data("hint-aria-label");if(!o.length)return;i.after('<span class="give-hint-tooltip-js hint--top hint--medium" aria-label="'+o+'"></span>'),n=i.next(),n.css({top:-i.outerHeight(),left:-i.outerWidth()/2})}"show"===e?n.addClass("hint--always"):"hide"===e&&n.removeClass("hint--always")})},jQuery(document).ready(function(e){function t(t){if(!t.is('[class*="hint"]')){var i=t.attr("class"),n=[],o=t.data("tooltip").split(" ").length;i&&(i=i.split(" "),n=e.grep(i,function(e){return-1!==e.indexOf("give-icon")}),n.length&&(n=n.join(" "),t.removeClass(n),t.append('<i class="'+n+'"></i>'))),t.addClass("hint--top"),15<o?t.addClass("hint--large"):7<o&&t.addClass("hint--medium"),t.attr("aria-label",t.data("tooltip"))}}var i=e("[data-tooltip]");i.length&&i.each(function(i,n){n=n instanceof jQuery?n:e(n),t(n)}),e("body").on("hover","[data-tooltip]",function(){t(e(this))})})},function(e,t,i){"use strict";var n=i(7),o=i(8),a={init:function(){var e=["form"],t=0;for(jQuery(document).trigger("give:preInit");t<e.length;)a[e[t]].init&&a[e[t]].init(),t++;jQuery(document).trigger("give:postInit")},fn:{formatCurrency:function(e,t,i){var n={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:parseInt(give_global_vars.number_decimals),currency:give_global_vars.currency};if(e=e.toString().trim(),i=void 0===i?{}:i,i.length&&(n={symbol:"",decimal:a.form.fn.getInfo("decimal_separator",i),thousand:a.form.fn.getInfo("thousands_separator",i),precision:a.form.fn.getInfo("number_decimals",i),currency:a.form.fn.getInfo("currency_code",i)}),t=jQuery.extend(n,t),t.precision=parseInt(t.precision),"INR"===t.currency){var o=accounting.unformat(e,".").toString(),r="",s=void 0,l=void 0,c=o.indexOf(".");for(-1!==c&&t.precision?(r=Number(o.substr(parseInt(c))).toFixed(t.precision).toString().substr(1),o=o.substr(0,parseInt(c)),r.length?t.precision+1>r.length&&(r=(r+"000000000").substr(0,t.precision+1)):r=".0000000000".substr(0,parseInt(c)+1)):r=".000000000".substr(0,t.precision+1),s=o.substr(-3),l=o.substr(0,parseInt(o.length)-3);l.length>0;)s=l.substr(-2)+t.thousand+s,l=l.substr(0,parseInt(l.length)-2);r.length&&(s+=r),e=s,void 0!==t.symbol&&t.symbol.length&&("after"===t.position?e+=t.symbol:e=t.symbol+e)}else"after"===t.position&&(t.format="%v%s"),e=accounting.formatMoney(e,t);return e},unFormatCurrency:function(e,t){if("string"==typeof e){var i=","===t.trim()?/[^0-9\,-]+/g:/[^0-9\.-]+/g;e=e.replace(i,""),0===e.indexOf(t)?e=e.substr(1):e.length-1===e.indexOf(t)&&(e=e.slice(0,-1))}return Math.abs(parseFloat(accounting.unformat(e,t)))},getParameterByName:function(e,t){t||(t=window.location.href),e=e.replace(/[\[\]]/g,"\\$&");var i=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),n=i.exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},getGlobalVar:function(e){return void 0===give_global_vars[e]?"":give_global_vars[e]},setCache:function(e,t,i){i.length?a.cache["form_"+a.form.fn.getInfo("form-id",i)][e]=t:a.cache[e]=t},getCache:function(e,t){var i=void 0,n=a.cache["form_"+a.form.fn.getInfo("form-id",t)];return i=t.length?void 0!==n?n[e]:"":a.cache[e],i=void 0===i?"":i},__getCookie:function(e){var t="; "+document.cookie,i=t.split("; "+e+"="),n="";return 2===i.length&&(n=i.pop().split(";").shift()),n}},cache:{}};a.notice=n.a,a.form=o.a,t.a=a},function(e,t,i){"use strict";t.a={fn:{renderNotice:function(e,t){var i=void 0;switch(t=void 0!==t?t:{},e){case"bad_minimum":i=jQuery('<div class="give_error give-invalid-minimum give-hidden">'+this.getNotice(e,t)+"</div>");break;case"bad_maximum":i=jQuery('<div class="give_error give-invalid-maximum give-hidden">'+this.getNotice(e,t)+"</div>")}if(!t.length)return"";i.insertBefore(t.find(".give-total-wrap")).show()},getNotice:function(e,t){if(!e.length)return null;var i,n,o;if(i=n=o="",t.length)switch(e){case"bad_minimum":n=Give.fn.getGlobalVar(e),o=Give.form.fn.getMinimumAmount(t);break;case"bad_maximum":n=Give.fn.getGlobalVar(e),o=Give.form.fn.getMaximumAmount(t)}return t.length&&""!==n&&(i=n+" "+Give.fn.formatCurrency(o,{symbol:Give.form.fn.getInfo("currency_symbol",t),position:Give.form.fn.getInfo("currency_position",t)},t)),i}}}},function(e,t,i){"use strict";t.a={init:function(){this.fn.field.formatCreditCard(jQuery("form.give-form")),this.fn.__initialize_cache(),window.onload=function(){Give.form.fn.__sendBackToForm()}},fn:{isFormExist:function(){return!!document.getElementsByName("give-form-hash").length},disable:function(e,t){if(!e.length)return!1;e.find(".give-submit").prop("disabled",t)},formatAmount:function(e,t,i){return t.length?Give.fn.formatCurrency(e,i,t):e},getInfo:function(e,t){var i="";if(t=void 0!==t?t:{},!e.length||!t.length)return i;switch(e){case"gateways":i=[],jQuery.each(t.find('input[name="payment-mode"]'),function(e,t){t=t instanceof jQuery?t:jQuery(t),i.push(t.val().trim())});break;case"form-type":t.hasClass("give-form-type-set")?i="set":t.hasClass("give-form-type-multi")&&(i="multi");break;case"form-id":i=t.find('input[name="give-form-id"]').val();break;default:i=t.get(0).hasAttribute("data-"+e)?t.attr("data-"+e):t.attr(e),void 0!==i&&i.trim()}return i},setInfo:function(e,t,i,n){if(!i.length)return!1;switch(e=void 0===e?"data":e){case"nonce":i.find('input[name="give-form-hash"]').val(t)}if(void 0!==n&&!n.length)return!1;switch(e){case"attr":i.attr(n,t);break;default:i.data(n,t)}return!0},getGateway:function(e){var t="";return e.length?(t=e.find('input[name="payment-mode"]:checked').val().trim(),void 0!==t?t:""):t},getVariablePrices:function(e){var t,i=[];return e.length&&e.hasClass("give-form-type-multi")&&(t=e.find(".give-donation-levels-wrap [data-price-id] "))?(jQuery.each(t,function(t,n){n=n instanceof jQuery?n:jQuery(n);var o=Give.form.fn.getInfo("decimal_separator",e);i.push({price_id:n.data("price-id"),amount:Give.fn.unFormatCurrency(n.val(),o)})}),i):i},getPriceID:function(e,t){var i=this.getVariablePrices(e),n=Give.fn.unFormatCurrency(e.find('input[name="give-amount"]').val(),this.getInfo("decimal_separator",e)),o=Give.fn.getCache("amount_"+n,e)?Give.fn.getCache("amount_"+n,e):-1;return t=void 0===t||t,i.length&&-1===o&&(t?(jQuery.each(i,function(e,t){if(t.amount===n)return o=t.price_id,!1}),-1===o&&this.getMinimumAmount(e)<=n&&this.getMaximumAmount(e)>=n&&this.getMinimumAmount(e)<=n&&(o="custom")):o=jQuery('input[name="give-price-id"]',e).val()),o},getMinimumAmount:function(e){return e.find('input[name="give-form-minimum"]').val()},getMaximumAmount:function(e){return e.find('input[name="give-form-maximum"]').val()},getAmount:function(e){if(!e.length)return null;var t=e.find('input[name="give-amount"]').val();return void 0!==t&&t||(t=0),Give.fn.unFormatCurrency(t,this.getInfo("decimal_separator",e))},getNonce:function(e){if(!e.length)return"";var t=e.find('input[name="give-form-hash"]').val();return void 0!==t&&t||(t=""),t},resetNonce:function(e){if(!e.length||!jQuery('input[name="give-form-hash"]',e).length)return!1;Give.form.fn.disable(e,!0),jQuery.post(give_global_vars.ajaxurl,{action:"give_donation_form_nonce",give_form_id:Give.form.fn.getInfo("form-id",e)},function(t){Give.form.fn.setInfo("nonce",t.data,e,""),Give.form.fn.disable(e,!1)})},resetAllNonce:function(e){if(!e.length)return!1;Give.form.fn.disable(e,!0),jQuery.post(give_global_vars.ajaxurl,{action:"give_donation_form_reset_all_nonce",give_form_id:Give.form.fn.getInfo("form-id",e)},function(t){if(t.success){var i=e.find('input[name="give-form-user-register-hash"]');Give.form.fn.setInfo("nonce",t.data.give_form_hash,e,""),i.length&&i.val(t.data.give_form_user_register_hash),Give.form.fn.disable(e,!1),jQuery(document).trigger("give_reset_all_nonce",[t.data])}}).done(function(){Give.form.fn.disable(e,!1)})},autoSelectDonationLevel:function(e,t){if(!e.length||"multi"!==this.getInfo("form-type",e))return!1;switch(t=void 0===t?this.getPriceID(e,!1):t,!0){case!!e.find(".give-radio-input").length:e.find(".give-radio-input").prop("checked",!1),e.find('.give-radio-input[data-price-id="'+t+'"]').prop("checked",!0).addClass("give-default-level");break;case!!e.find("button.give-donation-level-btn").length:e.find("button.give-donation-level-btn").blur(),e.find('button.give-donation-level-btn[data-price-id="'+t+'"]').focus().addClass("give-default-level");break;case!!e.find("select.give-select-level").length:e.find("select.give-select-level option").prop("selected",!1),e.find('select.give-select-level option[data-price-id="'+t+'"]').prop("selected",!0).addClass("give-default-level")}},autoSetMultiLevel:function(e){var t=e.parents("form"),i=e.val(),n=e.data("price-id");if(void 0===n&&(n=e.find("option:selected").data("price-id")),"custom"===n)return t.find(".give-amount-top").val("").focus(),!1;t.find(".give-amount-top").val(i),t.find("span.give-amount-top").text(i);var o=Give.form.fn.getInfo("decimal_separator",t);jQuery(".give-donation-amount .give-text-input",t).attr("data-amount",Give.fn.unFormatCurrency(t.find(".give-final-total-amount").attr("data-total"),o)),t.find(".give-donation-amount .give-text-input").trigger("blur",[t,i,n])},__sendBackToForm:function(){var e=Give.fn.getParameterByName("form-id"),t=Give.fn.getParameterByName("payment-mode");if(!e||!t)return!1;var i=jQuery("body").find("#give-form-"+e+"-wrap"),n=i.find("form.give-form"),o=i.hasClass("give-display-modal"),a=i.hasClass("give-display-button"),r=i.hasClass("give-display-reveal");n.find("#give-gateway-radio-list label").removeClass("give-gateway-option-selected"),n.find("input[name=payment-mode][value="+t+"]").prop("checked",!0).parent().addClass("give-gateway-option-selected");var s=Give.fn.getParameterByName("level-id"),l=n.find('*[data-price-id="'+s+'"]');if(l.length>0&&this.autoSetMultiLevel(l),jQuery(".give-form-wrap").hasClass("give-form-grid-wrap")&&1===jQuery("#give-modal-form-"+e).length)return void jQuery.magnificPopup.open({items:{type:"inline",src:"#give-modal-form-"+e},fixedContentPos:!0,fixedBgPos:!0,closeBtnInside:!0,midClick:!0,removalDelay:300,mainClass:"modal-fade-slide"});o||a?give_open_form_modal(i,n):r&&(n.find(".give-btn-reveal").hide(),n.find("#give-payment-mode-select, #give_purchase_form_wrap").slideDown())},isValidDonationAmount:function(e){if(e.find('input[name="give-form-minimum"]').length<=0)return!0;var t=this.getMinimumAmount(e),i=this.getMaximumAmount(e),n=this.getAmount(e),o=this.getPriceID(e,!0);return 0!==n&&(-1<n&&n>=t&&n<=i||-1!==o)},__initialize_cache:function(){jQuery.each(jQuery(".give-form"),function(e,t){t=t instanceof jQuery?t:jQuery(t),Give.cache["form_"+Give.form.fn.getInfo("form-id",t)]=[]})},field:{formatCreditCard:function(e){e.each(function(e,t){t=jQuery(t);var i=t.find(".card-number"),n=t.find(".card-cvc"),o=t.find(".card-expiry");i.length&&(i.payment("formatCardNumber"),n.payment("formatCardCVC"),o.payment("formatCardExpiry"))})}}}}},function(e,t){!function(e){"use strict";function t(e,t){return function(i){i.target&&i.target.matches(e)&&t.apply(this,arguments)}}Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),i=t.length;--i>=0&&t.item(i)!==this;);return i>-1}),e.addDynamicEventListener=function(e,i,n,o,a){e.addEventListener(i,t(n,o),a)}}(window)},function(e,t,i){"use strict";function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),i.d(t,"GiveModal",function(){return c}),i.d(t,"GiveErrorAlert",function(){return d}),i.d(t,"GiveWarningAlert",function(){return u}),i.d(t,"GiveNoticeAlert",function(){return h}),i.d(t,"GiveSuccessAlert",function(){return f}),i.d(t,"GiveConfirmModal",function(){return p}),i.d(t,"GiveFormModal",function(){return g});var r=i(4),s=(i.n(r),i(9)),l=(i.n(s),function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}()),c=function(){function e(t){if(a(this,e),e===this.constructor)throw new Error("Abstract classes can't be instantiated.");this.config=Object.assign({type:"",triggerSelector:"",externalPlugin:"magnificPopup",classes:{modalWrapper:""},modalContent:{}},t),this.config.mainClass=((this.config.mainClass?this.config.mainClass:"")+" modal-fade-slide").trim()}return l(e,[{key:"init",value:function(){this.setupTemplate(),this.popupConfig(),this.__setupClickEvent()}},{key:"getTemplate",value:function(){var e='<div class="give-hidden"></div>';return this.config.type.length&&(e='<div class="give-modal give-modal--zoom '+(this.config.classes.modalWrapper?(""+this.config.classes.modalWrapper).trim():"")+'">\n\n\t\t\t\t<div class="give-modal__body">\n\t\t\t\t\t'+(this.config.modalContent.title?'<h2 class="give-modal__title">'+this.config.modalContent.title+"</h2>":"")+"\n\t\t\t\t\t"+(this.config.modalContent.desc?'<p class="give-modal__description">'+this.config.modalContent.desc+"</p>":"")+'\n\t\t\t\t</div>\n\t\n\t\t\t\t<div class="give-modal__controls">\n\n\t\t\t\t\t'+("form"===this.config.type?'<div class="spinner"></div>':"")+"\n\t\t\t\t\t"+("form"===this.config.type?'<a class="give-modal--additional-link" href="'+this.config.modalContent.link+'">'+this.config.modalContent.link_text+"</a>":"")+'\n\n\t\t\t\t\t<button class="give-button give-button--secondary give-popup-close-button">\n\t\t\t\t\t\t'+(this.config.modalContent.cancelBtnTitle?this.config.modalContent.cancelBtnTitle:"confirm"===this.config.type?give_vars.cancel:give_vars.close)+"\n\t\t\t\t\t</button>\n\n\t\t\t\t\t"+("confirm"!==this.config.type&&"form"!==this.config.type?"":'<button class="give-button give-button--primary give-popup-'+this.config.type+'-button">\n\n\t\t\t\t\t\t'+(this.config.modalContent.confirmBtnTitle?this.config.modalContent.confirmBtnTitle:give_vars.confirm)+"\n\t\t\t\t\t</button>")+"\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>"),e}},{key:"setupTemplate",value:function(){this.config.template=this.getTemplate()}},{key:"__setupClickEvent",value:function(){this.config.triggerSelector.length&&jQuery(this.config.triggerSelector).magnificPopup(this.config)}},{key:"popupConfig",value:function(){"magnificPopup"===this.config.externalPlugin&&(this.config.items=this.config.items||{src:this.config.template,type:"inline"},this.config.removalDelay=300,this.config.fixedContentPos=!0,this.config.fixedBgPos=!0,this.config.alignTop=!0,this.config.showCloseBtn=!1,this.config.closeOnBgClick=!1,this.config.enableEscapeKey=!0,this.config.focus=".give-popup-close-button")}},{key:"render",value:function(){switch(this.config.externalPlugin){case"magnificPopup":this.config.triggerSelector||jQuery.magnificPopup.open(this.config)}return this}}],[{key:"__closePopup",value:function(e){e.preventDefault(),jQuery.magnificPopup.instance.close()}}]),e}(),d=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--error",i.init(),i}return o(t,e),t}(c),u=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--warning",i.init(),i}return o(t,e),t}(c),h=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--notice",i.init(),i}return o(t,e),t}(c),f=function(e){function t(e){a(this,t),e.type="alert";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.config.classes.modalWrapper="give-modal--success",i.init(),i}return o(t,e),t}(c),p=function(e){function t(e){a(this,t),e.type="confirm";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return void 0!==e.modalWrapper&&""!==e.modalWrapper&&(i.config.classes.modalWrapper=e.modalWrapper),i.init(),i}return o(t,e),l(t,null,[{key:"__confirmPopup",value:function(){"function"==typeof jQuery.magnificPopup.instance.st.successConfirm&&(jQuery.magnificPopup.instance.st.successConfirm({el:jQuery.magnificPopup.instance.st.el}),jQuery.magnificPopup.close())}}]),t}(c),g=function(e){function t(e){a(this,t),e.type="form";var i=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return void 0!==e.modalWrapper&&""!==e.modalWrapper&&(i.config.classes.modalWrapper=e.modalWrapper),i.init(),i}return o(t,e),l(t,null,[{key:"__submitPopup",value:function(){"function"==typeof jQuery.magnificPopup.instance.st.successConfirm&&jQuery.magnificPopup.instance.st.successConfirm({el:jQuery.magnificPopup.instance.st.el})}}]),t}(c);window.addDynamicEventListener(document,"click",".give-popup-close-button",c.__closePopup,{}),window.addDynamicEventListener(document,"click",".give-popup-confirm-button",p.__confirmPopup,{}),window.addDynamicEventListener(document,"click",".give-popup-form-button",g.__submitPopup,{})},,,,,,,,,,,,,,,function(e,t,i){i(26),e.exports=i(27)},function(e,t){},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i.d(t,"init",function(){return v}),i.d(t,"fn",function(){return b}),i.d(t,"cache",function(){return y}),i.d(t,"modal",function(){return x});var n=i(28),o=(i.n(n),i(1)),a=(i.n(o),i(29)),r=(i.n(a),i(30)),s=(i.n(r),i(31)),l=(i.n(s),i(32)),c=(i.n(l),i(33)),d=(i.n(c),i(34)),u=(i.n(d),i(5)),h=(i.n(u),i(6)),f=i(10),p=i(35),g=(i.n(p),i(36)),_=(i.n(g),i(37)),m=(i.n(_),i(38));i.n(m),i(39),i(40);h.a.modal=f;var v=h.a.init,b=h.a.fn,y=h.a.cache,x=h.a.modal},function(e,t){(function(){var e,t,i,n,o=function(e,t){return function(){return e.apply(t,arguments)}},a=function(e,t){function i(){this.constructor=e}for(var n in t)r.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},r={}.hasOwnProperty;n=function(){function e(){this.options_index=0,this.parsed=[]}return e.prototype.add_node=function(e){return"OPTGROUP"===e.nodeName.toUpperCase()?this.add_group(e):this.add_option(e)},e.prototype.add_group=function(e){var t,i,n,o,a,r;for(t=this.parsed.length,this.parsed.push({array_index:t,group:!0,label:e.label,title:e.title?e.title:void 0,children:0,disabled:e.disabled,classes:e.className}),a=e.childNodes,r=[],i=0,n=a.length;i<n;i++)o=a[i],r.push(this.add_option(o,t,e.disabled));return r},e.prototype.add_option=function(e,t,i){if("OPTION"===e.nodeName.toUpperCase())return""!==e.text?(null!=t&&(this.parsed[t].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:e.value,text:e.text,html:e.innerHTML,title:e.title?e.title:void 0,selected:e.selected,disabled:!0===i?i:e.disabled,group_array_index:t,group_label:null!=t?this.parsed[t].label:null,classes:e.className,style:e.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},e}(),n.select_to_array=function(e){var t,i,o,a,r;for(a=new n,r=e.childNodes,i=0,o=r.length;i<o;i++)t=r[i],a.add_node(t);return a.parsed},t=function(){function e(t,i){this.form_field=t,this.options=null!=i?i:{},this.label_click_handler=o(this.label_click_handler,this),e.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return e.prototype.set_default_values=function(){return this.click_test_action=function(e){return function(t){return e.test_active_click(t)}}(this),this.activate_action=function(e){return function(t){return e.activate_field(t)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},e.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||e.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||e.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||e.default_no_result_text},e.prototype.choice_label=function(e){return this.include_group_label_in_selected&&null!=e.group_label?"<b class='group-name'>"+this.escape_html(e.group_label)+"</b>"+e.html:e.html},e.prototype.mouse_enter=function(){return this.mouse_on_container=!0},e.prototype.mouse_leave=function(){return this.mouse_on_container=!1},e.prototype.input_focus=function(e){if(this.is_multiple){if(!this.active_field)return setTimeout(function(e){return function(){return e.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},e.prototype.input_blur=function(e){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(e){return function(){return e.blur_test()}}(this),100)},e.prototype.label_click_handler=function(e){return this.is_multiple?this.container_mousedown(e):this.activate_field()},e.prototype.results_option_build=function(e){var t,i,n,o,a,r,s;for(t="",s=0,r=this.results_data,o=0,a=r.length;o<a&&(i=r[o],n="",n=i.group?this.result_add_group(i):this.result_add_option(i),""!==n&&(s++,t+=n),(null!=e?e.first:void 0)&&(i.selected&&this.is_multiple?this.choice_build(i):i.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(i))),!(s>=this.max_shown_results));o++);return t},e.prototype.result_add_option=function(e){var t,i;return e.search_match&&this.include_option_in_results(e)?(t=[],e.disabled||e.selected&&this.is_multiple||t.push("active-result"),!e.disabled||e.selected&&this.is_multiple||t.push("disabled-result"),e.selected&&t.push("result-selected"),null!=e.group_array_index&&t.push("group-option"),""!==e.classes&&t.push(e.classes),i=document.createElement("li"),i.className=t.join(" "),e.style&&(i.style.cssText=e.style),i.setAttribute("data-option-array-index",e.array_index),i.innerHTML=e.highlighted_html||e.html,e.title&&(i.title=e.title),this.outerHTML(i)):""},e.prototype.result_add_group=function(e){var t,i;return(e.search_match||e.group_match)&&e.active_options>0?(t=[],t.push("group-result"),e.classes&&t.push(e.classes),i=document.createElement("li"),i.className=t.join(" "),i.innerHTML=e.highlighted_html||this.escape_html(e.label),e.title&&(i.title=e.title),this.outerHTML(i)):""},e.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},e.prototype.reset_single_select_options=function(){var e,t,i,n,o;for(i=this.results_data,o=[],e=0,t=i.length;e<t;e++)n=i[e],n.selected?o.push(n.selected=!1):o.push(void 0);return o},e.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},e.prototype.results_search=function(e){return this.results_showing?this.winnow_results():this.results_show()},e.prototype.winnow_results=function(e){var t,i,n,o,a,r,s,l,c,d,u,h,f,p,g;for(this.no_results_clear(),d=0,s=this.get_search_text(),t=s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(t),l=this.results_data,n=0,o=l.length;n<o;n++)a=l[n],a.search_match=!1,u=null,h=null,a.highlighted_html="",this.include_option_in_results(a)&&(a.group&&(a.group_match=!1,a.active_options=0),null!=a.group_array_index&&this.results_data[a.group_array_index]&&(u=this.results_data[a.group_array_index],0===u.active_options&&u.search_match&&(d+=1),u.active_options+=1),g=a.group?a.label:a.text,a.group&&!this.group_search||(h=this.search_string_match(g,c),a.search_match=null!=h,a.search_match&&!a.group&&(d+=1),a.search_match?(s.length&&(f=h.index,r=g.slice(0,f),i=g.slice(f,f+s.length),p=g.slice(f+s.length),a.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(i)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=a.group_array_index&&this.results_data[a.group_array_index].search_match&&(a.search_match=!0)));return this.result_clear_highlight(),d<1&&s.length?(this.update_results_content(""),this.no_results(s)):(this.update_results_content(this.results_option_build()),(null!=e?e.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},e.prototype.get_search_regex=function(e){var t,i;return i=this.search_contains?e:"(^|\\s|\\b)"+e+"[^\\s]*",this.enable_split_word_search||this.search_contains||(i="^"+i),t=this.case_sensitive_search?"":"i",new RegExp(i,t)},e.prototype.search_string_match=function(e,t){var i;return i=t.exec(e),!this.search_contains&&(null!=i?i[1]:void 0)&&(i.index+=1),i},e.prototype.choices_count=function(){var e,t,i,n;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,n=this.form_field.options,e=0,t=n.length;e<t;e++)i=n[e],i.selected&&(this.selected_option_count+=1);return this.selected_option_count},e.prototype.choices_click=function(e){if(e.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},e.prototype.keydown_checker=function(e){var t,i;switch(i=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),8!==i&&this.pending_backstroke&&this.clear_backstroke(),i){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(e),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&e.preventDefault();break;case 32:this.disable_search&&e.preventDefault();break;case 38:e.preventDefault(),this.keyup_arrow();break;case 40:e.preventDefault(),this.keydown_arrow()}},e.prototype.keyup_checker=function(e){var t,i;switch(i=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),i){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:e.preventDefault(),this.results_showing&&this.result_select(e);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},e.prototype.clipboard_event_checker=function(e){if(!this.is_disabled)return setTimeout(function(e){return function(){return e.results_search()}}(this),50)},e.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},e.prototype.include_option_in_results=function(e){return!(this.is_multiple&&!this.display_selected_options&&e.selected)&&(!(!this.display_disabled_options&&e.disabled)&&!e.empty)},e.prototype.search_results_touchstart=function(e){return this.touch_started=!0,this.search_results_mouseover(e)},e.prototype.search_results_touchmove=function(e){return this.touch_started=!1,this.search_results_mouseout(e)},e.prototype.search_results_touchend=function(e){if(this.touch_started)return this.search_results_mouseup(e)},e.prototype.outerHTML=function(e){var t;return e.outerHTML?e.outerHTML:(t=document.createElement("div"),t.appendChild(e),t.innerHTML)},e.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},e.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},e.prototype.get_no_results_html=function(e){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(e)+"</span>\n</li>"},e.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},e.default_multiple_text="Select Some Options",e.default_single_text="Select an Option",e.default_no_result_text="No results match",e}(),e=jQuery,e.fn.extend({chosen:function(n){return t.browser_is_supported()?this.each(function(t){var o,a;if(o=e(this),a=o.data("chosen"),"destroy"===n)return void(a instanceof i&&a.destroy());a instanceof i||o.data("chosen",new i(this,n))}):this}}),i=function(t){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,t),i.prototype.setup=function(){return this.form_field_jq=e(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},i.prototype.set_up_html=function(){var t,i;return t=["chosen-container"],t.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),i={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(i.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=e("<div />",i),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},i.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},i.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.container.on("touchend.chosen",function(e){return function(t){e.container_mouseup(t)}}(this)),this.container.on("mousedown.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.container.on("mouseup.chosen",function(e){return function(t){e.container_mouseup(t)}}(this)),this.container.on("mouseenter.chosen",function(e){return function(t){e.mouse_enter(t)}}(this)),this.container.on("mouseleave.chosen",function(e){return function(t){e.mouse_leave(t)}}(this)),this.search_results.on("mouseup.chosen",function(e){return function(t){e.search_results_mouseup(t)}}(this)),this.search_results.on("mouseover.chosen",function(e){return function(t){e.search_results_mouseover(t)}}(this)),this.search_results.on("mouseout.chosen",function(e){return function(t){e.search_results_mouseout(t)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(e){return function(t){e.search_results_mousewheel(t)}}(this)),this.search_results.on("touchstart.chosen",function(e){return function(t){e.search_results_touchstart(t)}}(this)),this.search_results.on("touchmove.chosen",function(e){return function(t){e.search_results_touchmove(t)}}(this)),this.search_results.on("touchend.chosen",function(e){return function(t){e.search_results_touchend(t)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(e){return function(t){e.results_update_field(t)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(e){return function(t){e.activate_field(t)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(e){return function(t){e.container_mousedown(t)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(e){return function(t){e.close_field(t)}}(this)),this.search_field.on("blur.chosen",function(e){return function(t){e.input_blur(t)}}(this)),this.search_field.on("keyup.chosen",function(e){return function(t){e.keyup_checker(t)}}(this)),this.search_field.on("keydown.chosen",function(e){return function(t){e.keydown_checker(t)}}(this)),this.search_field.on("focus.chosen",function(e){return function(t){e.input_focus(t)}}(this)),this.search_field.on("cut.chosen",function(e){return function(t){e.clipboard_event_checker(t)}}(this)),this.search_field.on("paste.chosen",function(e){return function(t){e.clipboard_event_checker(t)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(e){return function(t){e.choices_click(t)}}(this)):this.container.on("click.chosen",function(e){e.preventDefault()})},i.prototype.destroy=function(){return e(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},i.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},i.prototype.container_mousedown=function(t){var i;if(!this.is_disabled)return!t||"mousedown"!==(i=t.type)&&"touchstart"!==i||this.results_showing||t.preventDefault(),null!=t&&e(t.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!t||e(t.target)[0]!==this.selected_item[0]&&!e(t.target).parents("a.chosen-single").length||(t.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),e(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},i.prototype.container_mouseup=function(e){if("ABBR"===e.target.nodeName&&!this.is_disabled)return this.results_reset(e)},i.prototype.search_results_mousewheel=function(e){var t;if(e.originalEvent&&(t=e.originalEvent.deltaY||-e.originalEvent.wheelDelta||e.originalEvent.detail),null!=t)return e.preventDefault(),"DOMMouseScroll"===e.type&&(t*=40),this.search_results.scrollTop(t+this.search_results.scrollTop())},i.prototype.blur_test=function(e){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},i.prototype.close_field=function(){return e(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},i.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},i.prototype.test_active_click=function(t){var i;return i=e(t.target).closest(".chosen-container"),i.length&&this.container[0]===i[0]?this.active_field=!0:this.close_field()},i.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=n.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},i.prototype.result_do_highlight=function(e){var t,i,n,o,a;if(e.length){if(this.result_clear_highlight(),this.result_highlight=e,this.result_highlight.addClass("highlighted"),n=parseInt(this.search_results.css("maxHeight"),10),a=this.search_results.scrollTop(),o=n+a,i=this.result_highlight.position().top+this.search_results.scrollTop(),(t=i+this.result_highlight.outerHeight())>=o)return this.search_results.scrollTop(t-n>0?t-n:0);if(i<a)return this.search_results.scrollTop(i)}},i.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},i.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},i.prototype.update_results_content=function(e){return this.search_results.html(e)},i.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},i.prototype.set_tab_index=function(e){var t;if(this.form_field.tabIndex)return t=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=t},i.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=e("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},i.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},i.prototype.search_results_mouseup=function(t){var i;if(i=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first(),i.length)return this.result_highlight=i,this.result_select(t),this.search_field.focus()},i.prototype.search_results_mouseover=function(t){var i;if(i=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first())return this.result_do_highlight(i)},i.prototype.search_results_mouseout=function(t){if(e(t.target).hasClass("active-result")||e(t.target).parents(".active-result").first())return this.result_clear_highlight()},i.prototype.choice_build=function(t){var i,n;return i=e("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(t)+"</span>"),t.disabled?i.addClass("search-choice-disabled"):(n=e("<a />",{class:"search-choice-close","data-option-array-index":t.array_index}),n.on("click.chosen",function(e){return function(t){return e.choice_destroy_link_click(t)}}(this)),i.append(n)),this.search_container.before(i)},i.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(e(t.target))},i.prototype.choice_destroy=function(e){if(this.result_deselect(e[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),e.parents("li").first().remove(),this.search_field_scale()},i.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},i.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},i.prototype.result_select=function(e){var t,i;if(this.result_highlight)return t=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?t.removeClass("active-result"):this.reset_single_select_options(),t.addClass("result-selected"),i=this.results_data[t[0].getAttribute("data-option-array-index")],i.selected=!0,this.form_field.options[i.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(i):this.single_set_selected_text(this.choice_label(i)),this.is_multiple&&(!this.hide_results_on_select||e.metaKey||e.ctrlKey)?e.metaKey||e.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[i.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,e.preventDefault(),this.search_field_scale())},i.prototype.single_set_selected_text=function(e){return null==e&&(e=this.default_text),e===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(e)},i.prototype.result_deselect=function(e){var t;return t=this.results_data[e],!this.form_field.options[t.options_index].disabled&&(t.selected=!1,this.form_field.options[t.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[t.options_index].value}),this.search_field_scale(),!0)},i.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},i.prototype.get_search_field_value=function(){return this.search_field.val()},i.prototype.get_search_text=function(){return e.trim(this.get_search_field_value())},i.prototype.escape_html=function(t){return e("<div/>").text(t).html()},i.prototype.winnow_results_set_highlight=function(){var e,t;if(t=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(e=t.length?t.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(e)},i.prototype.no_results=function(e){var t;return t=this.get_no_results_html(e),this.search_results.append(t),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},i.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},i.prototype.keydown_arrow=function(){var e;return this.results_showing&&this.result_highlight?(e=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(e):void 0:this.results_show()},i.prototype.keyup_arrow=function(){var e;return this.results_showing||this.is_multiple?this.result_highlight?(e=this.result_highlight.prevAll("li.active-result"),e.length?this.result_do_highlight(e.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},i.prototype.keydown_backstroke=function(){var e;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(e=this.search_container.siblings("li.search-choice").last(),e.length&&!e.hasClass("search-choice-disabled")?(this.pending_backstroke=e,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},i.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},i.prototype.search_field_scale=function(){var t,i,n,o,a,r,s;if(this.is_multiple){for(a={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"],i=0,n=r.length;i<n;i++)o=r[i],a[o]=this.search_field.css(o);return t=e("<div />").css(a),t.text(this.get_search_field_value()),e("body").append(t),s=t.width()+25,t.remove(),this.container.is(":visible")&&(s=Math.min(this.container.outerWidth()-10,s)),this.search_field.width(s)}},i.prototype.trigger_form_field_change=function(e){return this.form_field_jq.trigger("input",e),this.form_field_jq.trigger("change",e)},i}(t)}).call(this)},function(e,t){!function(e){e.color={},e.color.make=function(t,i,n,o){var a={};return a.r=t||0,a.g=i||0,a.b=n||0,a.a=null!=o?o:1,a.add=function(e,t){for(var i=0;i<e.length;++i)a[e.charAt(i)]+=t;return a.normalize()},a.scale=function(e,t){for(var i=0;i<e.length;++i)a[e.charAt(i)]*=t;return a.normalize()},a.toString=function(){return a.a>=1?"rgb("+[a.r,a.g,a.b].join(",")+")":"rgba("+[a.r,a.g,a.b,a.a].join(",")+")"},a.normalize=function(){function e(e,t,i){return t<e?e:t>i?i:t}return a.r=e(0,parseInt(a.r),255),a.g=e(0,parseInt(a.g),255),a.b=e(0,parseInt(a.b),255),a.a=e(0,a.a,1),a},a.clone=function(){return e.color.make(a.r,a.b,a.g,a.a)},a.normalize()},e.color.extract=function(t,i){var n;do{if(""!=(n=t.css(i).toLowerCase())&&"transparent"!=n)break;t=t.parent()}while(!e.nodeName(t.get(0),"body"));return"rgba(0, 0, 0, 0)"==n&&(n="transparent"),e.color.parse(n)},e.color.parse=function(i){var n,o=e.color.make;if(n=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(i))return o(parseInt(n[1],10),parseInt(n[2],10),parseInt(n[3],10));if(n=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))return o(parseInt(n[1],10),parseInt(n[2],10),parseInt(n[3],10),parseFloat(n[4]));if(n=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(i))return o(2.55*parseFloat(n[1]),2.55*parseFloat(n[2]),2.55*parseFloat(n[3]));if(n=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))return o(2.55*parseFloat(n[1]),2.55*parseFloat(n[2]),2.55*parseFloat(n[3]),parseFloat(n[4]));if(n=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(i))return o(parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16));if(n=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(i))return o(parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16));var a=e.trim(i).toLowerCase();return"transparent"==a?o(255,255,255,0):(n=t[a]||[0,0,0],o(n[0],n[1],n[2]))};var t={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),function(e){function t(t,n,o,a){function r(e,t){t=[me].concat(t);for(var i=0;i<e.length;++i)e[i].apply(this,t)}function s(e){ie=l(e),p(),g()}function l(t){for(var i=[],n=0;n<t.length;++n){var o=e.extend(!0,{},ne.series);null!=t[n].data?(o.data=t[n].data,delete t[n].data,e.extend(!0,o,t[n]),t[n].data=o.data):o.data=t[n],i.push(o)}return i}function c(e,t){var i=e[t+"axis"];return"object"==typeof i&&(i=i.n),"number"!=typeof i&&(i=1),i}function d(){return e.grep(ce.concat(de),function(e){return e})}function u(e){var t,i,n={};for(t=0;t<ce.length;++t)(i=ce[t])&&i.used&&(n["x"+i.n]=i.c2p(e.left));for(t=0;t<de.length;++t)(i=de[t])&&i.used&&(n["y"+i.n]=i.c2p(e.top));return void 0!==n.x1&&(n.x=n.x1),void 0!==n.y1&&(n.y=n.y1),n}function h(e){var t,i,n,o={};for(t=0;t<ce.length;++t)if((i=ce[t])&&i.used&&(n="x"+i.n,null==e[n]&&1==i.n&&(n="x"),null!=e[n])){o.left=i.p2c(e[n]);break}for(t=0;t<de.length;++t)if((i=de[t])&&i.used&&(n="y"+i.n,null==e[n]&&1==i.n&&(n="y"),null!=e[n])){o.top=i.p2c(e[n]);break}return o}function f(t,i){return t[i-1]||(t[i-1]={n:i,direction:t==ce?"x":"y",options:e.extend(!0,{},t==ce?ne.xaxis:ne.yaxis)}),t[i-1]}function p(){var t,i=ie.length,n=-1;for(t=0;t<ie.length;++t){var o=ie[t].color;null!=o&&(i--,"number"==typeof o&&o>n&&(n=o))}i<=n&&(i=n+1);var a,r=[],s=ne.colors,l=s.length,d=0;for(t=0;t<i;t++)a=e.color.parse(s[t%l]||"#666"),t%l==0&&t&&(d=d>=0?d<.5?-d-.2:0:-d),r[t]=a.scale("rgb",1+d);var u,h=0;for(t=0;t<ie.length;++t){if(u=ie[t],null==u.color?(u.color=r[h].toString(),++h):"number"==typeof u.color&&(u.color=r[u.color].toString()),null==u.lines.show){var p,g=!0;for(p in u)if(u[p]&&u[p].show){g=!1;break}g&&(u.lines.show=!0)}null==u.lines.zero&&(u.lines.zero=!!u.lines.fill),u.xaxis=f(ce,c(u,"x")),u.yaxis=f(de,c(u,"y"))}}function g(){function t(e,t,i){t<e.datamin&&t!=-v&&(e.datamin=t),i>e.datamax&&i!=v&&(e.datamax=i)}var i,n,o,a,s,l,c,u,h,f,p,g,_=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,v=Number.MAX_VALUE;for(e.each(d(),function(e,t){t.datamin=_,t.datamax=m,t.used=!1}),i=0;i<ie.length;++i)s=ie[i],s.datapoints={points:[]},r(_e.processRawData,[s,s.data,s.datapoints]);for(i=0;i<ie.length;++i){if(s=ie[i],p=s.data,!(g=s.datapoints.format)){if(g=[],g.push({x:!0,number:!0,required:!0}),g.push({y:!0,number:!0,required:!0}),s.bars.show||s.lines.show&&s.lines.fill){var b=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);g.push({y:!0,number:!0,required:!1,defaultValue:0,autoscale:b}),s.bars.horizontal&&(delete g[g.length-1].y,g[g.length-1].x=!0)}s.datapoints.format=g}if(null==s.datapoints.pointsize){s.datapoints.pointsize=g.length,c=s.datapoints.pointsize,l=s.datapoints.points;var y=s.lines.show&&s.lines.steps;for(s.xaxis.used=s.yaxis.used=!0,n=o=0;n<p.length;++n,o+=c){f=p[n];var x=null==f;if(!x)for(a=0;a<c;++a)u=f[a],h=g[a],h&&(h.number&&null!=u&&(u=+u,isNaN(u)?u=null:u==1/0?u=v:u==-1/0&&(u=-v)),null==u&&(h.required&&(x=!0),null!=h.defaultValue&&(u=h.defaultValue))),l[o+a]=u;if(x)for(a=0;a<c;++a)u=l[o+a],null!=u&&(h=g[a],h.x&&t(s.xaxis,u,u),h.y&&t(s.yaxis,u,u)),l[o+a]=null;else if(y&&o>0&&null!=l[o-c]&&l[o-c]!=l[o]&&l[o-c+1]!=l[o+1]){for(a=0;a<c;++a)l[o+c+a]=l[o+a];l[o+1]=l[o-c+1],o+=c}}}}for(i=0;i<ie.length;++i)s=ie[i],r(_e.processDatapoints,[s,s.datapoints]);for(i=0;i<ie.length;++i){s=ie[i],l=s.datapoints.points,c=s.datapoints.pointsize,g=s.datapoints.format;var w=_,k=_,C=m,j=m;for(n=0;n<l.length;n+=c)if(null!=l[n])for(a=0;a<c;++a)u=l[n+a],(h=g[a])&&!1!==h.autoscale&&u!=v&&u!=-v&&(h.x&&(u<w&&(w=u),u>C&&(C=u)),h.y&&(u<k&&(k=u),u>j&&(j=u)));if(s.bars.show){var T;switch(s.bars.align){case"left":T=0;break;case"right":T=-s.bars.barWidth;break;case"center":T=-s.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+s.bars.align)}s.bars.horizontal?(k+=T,j+=T+s.bars.barWidth):(w+=T,C+=T+s.bars.barWidth)}t(s.xaxis,w,C),t(s.yaxis,k,j)}e.each(d(),function(e,t){t.datamin==_&&(t.datamin=null),t.datamax==m&&(t.datamax=null)})}function _(e){return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}function m(i){var n=document.createElement("canvas");if(n.className=i,e(n).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(t),!n.getContext){if(!window.G_vmlCanvasManager)throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");n=window.G_vmlCanvasManager.initElement(n)}var o=n.getContext("2d"),a=_(o);return n.width=he*a,n.height=fe*a,n.style.width=he+"px",n.style.height=fe+"px",o.save(),o.scale(a,a),n}function v(){if(he=t.width(),fe=t.height(),he<=0||fe<=0)throw new Error("Invalid dimensions for plot, width = "+he+", height = "+fe)}function b(e){var t=e.getContext("2d"),i=_(t);e.style.width!=he&&(e.width=he*i,e.style.width=he+"px"),e.style.height!=fe&&(e.height=fe*i,e.style.height=fe+"px"),t.restore(),t.save(),t.scale(i,i)}function y(){be&&clearTimeout(be),re.unbind("mousemove",H),re.unbind("mouseleave",R),re.unbind("click",U),r(_e.shutdown,[re])}function x(e){function t(e){return e}var i,n,o=e.options.transform||t,a=e.options.inverseTransform;"x"==e.direction?(i=e.scale=pe/Math.abs(o(e.max)-o(e.min)),n=Math.min(o(e.max),o(e.min))):(i=e.scale=ge/Math.abs(o(e.max)-o(e.min)),i=-i,n=Math.max(o(e.max),o(e.min))),e.p2c=o==t?function(e){return(e-n)*i}:function(e){return(o(e)-n)*i},e.c2p=a?function(e){return a(n+e/i)}:function(e){return n+e/i}}function w(e){var t=e.options,i=e.ticks||[],n=t.labelWidth||0,o=t.labelHeight||0,a=e.font;se.save(),se.font=a.style+" "+a.variant+" "+a.weight+" "+a.size+"px '"+a.family+"'";for(var r=0;r<i.length;++r){var s=i[r];if(s.lines=[],s.width=s.height=0,s.label){for(var l=(s.label+"").replace(/<br ?\/?>|\r\n|\r/g,"\n").split("\n"),c=0;c<l.length;++c){var d={text:l[c]},u=se.measureText(d.text);d.width=u.width,d.height=null!=u.height?u.height:a.size,d.height+=Math.round(.15*a.size),s.width=Math.max(d.width,s.width),s.height+=d.height,s.lines.push(d)}null==t.labelWidth&&(n=Math.max(n,s.width)),null==t.labelHeight&&(o=Math.max(o,s.height))}}se.restore(),e.labelWidth=Math.ceil(n),e.labelHeight=Math.ceil(o)}function k(t){var i,n=t.labelWidth,o=t.labelHeight,a=t.options.position,r=t.options.tickLength,s=ne.grid.axisMargin,l=ne.grid.labelMargin,c="x"==t.direction?ce:de,d=e.grep(c,function(e){return e&&e.options.position==a&&e.reserveSpace});if(e.inArray(t,d)==d.length-1&&(s=0),null==r){var u=e.grep(c,function(e){return e&&e.reserveSpace});i=0==e.inArray(t,u),r=i?"full":5}isNaN(+r)||(l+=+r),"x"==t.direction?(o+=l,"bottom"==a?(ue.bottom+=o+s,t.box={top:fe-ue.bottom,height:o}):(t.box={top:ue.top+s,height:o},ue.top+=o+s)):(n+=l,"left"==a?(t.box={left:ue.left+s,width:n},ue.left+=n+s):(ue.right+=n+s,t.box={left:he-ue.right,width:n})),t.position=a,t.tickLength=r,t.box.padding=l,t.innermost=i}function C(e){"x"==e.direction?(e.box.left=ue.left-e.labelWidth/2,e.box.width=he-ue.left-ue.right+e.labelWidth):(e.box.top=ue.top-e.labelHeight/2,e.box.height=fe-ue.bottom-ue.top+e.labelHeight)}function j(){var t,i=ne.grid.minBorderMargin,n={x:0,y:0};if(null==i)for(i=0,t=0;t<ie.length;++t)i=Math.max(i,2*(ie[t].points.radius+ie[t].points.lineWidth/2));n.x=n.y=Math.ceil(i),e.each(d(),function(e,t){var i=t.direction;t.reserveSpace&&(n[i]=Math.ceil(Math.max(n[i],("x"==i?t.labelWidth:t.labelHeight)/2)))}),ue.left=Math.max(n.x,ue.left),ue.right=Math.max(n.x,ue.right),ue.top=Math.max(n.y,ue.top),ue.bottom=Math.max(n.y,ue.bottom)}function T(){var i,n=d(),o=ne.grid.show;for(var a in ue){var s=ne.grid.margin||0;ue[a]="number"==typeof s?s:s[a]||0}r(_e.processOffset,[ue]);for(var a in ue)"object"==typeof ne.grid.borderWidth?ue[a]+=o?ne.grid.borderWidth[a]:0:ue[a]+=o?ne.grid.borderWidth:0;if(e.each(n,function(e,t){t.show=t.options.show,null==t.show&&(t.show=t.used),t.reserveSpace=t.show||t.options.reserveSpace,S(t)}),o){var l={style:t.css("font-style"),size:Math.round(.8*(+t.css("font-size").replace("px","")||13)),variant:t.css("font-variant"),weight:t.css("font-weight"),family:t.css("font-family")},c=e.grep(n,function(e){return e.reserveSpace});for(e.each(c,function(t,i){M(i),I(i),P(i,i.ticks),i.font=e.extend({},l,i.options.font),w(i)}),i=c.length-1;i>=0;--i)k(c[i]);j(),e.each(c,function(e,t){C(t)})}pe=he-ue.left-ue.right,ge=fe-ue.bottom-ue.top,e.each(n,function(e,t){x(t)}),B()}function S(e){var t=e.options,i=+(null!=t.min?t.min:e.datamin),n=+(null!=t.max?t.max:e.datamax),o=n-i;if(0==o){var a=0==n?1:.01;null==t.min&&(i-=a),null!=t.max&&null==t.min||(n+=a)}else{var r=t.autoscaleMargin;null!=r&&(null==t.min&&(i-=o*r)<0&&null!=e.datamin&&e.datamin>=0&&(i=0),null==t.max&&(n+=o*r)>0&&null!=e.datamax&&e.datamax<=0&&(n=0))}e.min=i,e.max=n}function M(t){var n,o=t.options;if(n="number"==typeof o.ticks&&o.ticks>0?o.ticks:.3*Math.sqrt("x"==t.direction?he:fe),t.delta=(t.max-t.min)/n,"time"==o.mode&&!t.tickGenerator)throw new Error("Time mode requires the flot.time plugin.");if(t.tickGenerator||(t.tickGenerator=function(e){var t=o.tickDecimals,n=-Math.floor(Math.log(e.delta)/Math.LN10);null!=t&&n>t&&(n=t);var a,r,s,l=Math.pow(10,-n),c=e.delta/l,d=[],u=0,h=Number.NaN;c<1.5?a=1:c<3?(a=2,c>2.25&&(null==t||n+1<=t)&&(a=2.5,++n)):a=c<7.5?5:10,a*=l,null!=o.minTickSize&&a<o.minTickSize&&(a=o.minTickSize),e.tickDecimals=Math.max(0,null!=t?t:n),e.tickSize=o.tickSize||a,r=i(e.min,e.tickSize);do{s=h,h=r+u*e.tickSize,d.push(h),++u}while(h<e.max&&h!=s);return d},t.tickFormatter=function(e,t){var i=t.tickDecimals?Math.pow(10,t.tickDecimals):1,n=""+Math.round(e*i)/i;if(null!=t.tickDecimals){var o=n.indexOf("."),a=-1==o?0:n.length-o-1;if(a<t.tickDecimals)return(a?n:n+".")+(""+i).substr(1,t.tickDecimals-a)}return n}),e.isFunction(o.tickFormatter)&&(t.tickFormatter=function(e,t){return""+o.tickFormatter(e,t)}),null!=o.alignTicksWithAxis){var a=("x"==t.direction?ce:de)[o.alignTicksWithAxis-1];if(a&&a.used&&a!=t){var r=t.tickGenerator(t);if(r.length>0&&(null==o.min&&(t.min=Math.min(t.min,r[0])),null==o.max&&r.length>1&&(t.max=Math.max(t.max,r[r.length-1]))),t.tickGenerator=function(e){var t,i,n=[];for(i=0;i<a.ticks.length;++i)t=(a.ticks[i].v-a.min)/(a.max-a.min),t=e.min+t*(e.max-e.min),n.push(t);return n},!t.mode&&null==o.tickDecimals){var s=Math.max(0,1-Math.floor(Math.log(t.delta)/Math.LN10)),l=t.tickGenerator(t);l.length>1&&/\..*0$/.test((l[1]-l[0]).toFixed(s))||(t.tickDecimals=s)}}}}function I(t){var i=t.options.ticks,n=[];null==i||"number"==typeof i&&i>0?n=t.tickGenerator(t):i&&(n=e.isFunction(i)?i(t):i);var o,a;for(t.ticks=[],o=0;o<n.length;++o){var r=null,s=n[o];"object"==typeof s?(a=+s[0],s.length>1&&(r=s[1])):a=+s,null==r&&(r=t.tickFormatter(a,t)),isNaN(a)||t.ticks.push({v:a,label:r})}}function P(e,t){e.options.autoscaleMargin&&t.length>0&&(null==e.options.min&&(e.min=Math.min(e.min,t[0].v)),null==e.options.max&&t.length>1&&(e.max=Math.max(e.max,t[t.length-1].v)))}function z(){se.clearRect(0,0,he,fe),r(_e.drawBackground,[se]);var e=ne.grid;e.show&&e.backgroundColor&&O(),e.show&&!e.aboveData&&(Q(),E());for(var t=0;t<ie.length;++t)r(_e.drawSeries,[se,ie[t]]),D(ie[t]);r(_e.draw,[se]),e.show&&e.aboveData&&(Q(),E())}function A(e,t){for(var i,n,o,a,r=d(),s=0;s<r.length;++s)if(i=r[s],i.direction==t&&(a=t+i.n+"axis",e[a]||1!=i.n||(a=t+"axis"),e[a])){n=e[a].from,o=e[a].to;break}if(e[a]||(i="x"==t?ce[0]:de[0],n=e[t+"1"],o=e[t+"2"]),null!=n&&null!=o&&n>o){var l=n;n=o,o=l}return{from:n,to:o,axis:i}}function O(){se.save(),se.translate(ue.left,ue.top),se.fillStyle=te(ne.grid.backgroundColor,ge,0,"rgba(255, 255, 255, 0)"),se.fillRect(0,0,pe,ge),se.restore()}function Q(){var t,i,n,o;se.save(),se.translate(ue.left,ue.top);var a=ne.grid.markings;if(a)for(e.isFunction(a)&&(i=me.getAxes(),i.xmin=i.xaxis.min,i.xmax=i.xaxis.max,i.ymin=i.yaxis.min,i.ymax=i.yaxis.max,a=a(i)),t=0;t<a.length;++t){var r=a[t],s=A(r,"x"),l=A(r,"y");null==s.from&&(s.from=s.axis.min),null==s.to&&(s.to=s.axis.max),null==l.from&&(l.from=l.axis.min),null==l.to&&(l.to=l.axis.max),s.to<s.axis.min||s.from>s.axis.max||l.to<l.axis.min||l.from>l.axis.max||(s.from=Math.max(s.from,s.axis.min),s.to=Math.min(s.to,s.axis.max),l.from=Math.max(l.from,l.axis.min),l.to=Math.min(l.to,l.axis.max),s.from==s.to&&l.from==l.to||(s.from=s.axis.p2c(s.from),s.to=s.axis.p2c(s.to),l.from=l.axis.p2c(l.from),l.to=l.axis.p2c(l.to),s.from==s.to||l.from==l.to?(se.beginPath(),se.strokeStyle=r.color||ne.grid.markingsColor,se.lineWidth=r.lineWidth||ne.grid.markingsLineWidth,se.moveTo(s.from,l.from),se.lineTo(s.to,l.to),se.stroke()):(se.fillStyle=r.color||ne.grid.markingsColor,se.fillRect(s.from,l.to,s.to-s.from,l.from-l.to))))}i=d(),n=ne.grid.borderWidth;for(var c=0;c<i.length;++c){var u,h,f,p,g=i[c],_=g.box,m=g.tickLength;if(g.show&&0!=g.ticks.length){for(se.strokeStyle=g.options.tickColor||e.color.parse(g.options.color).scale("a",.22).toString(),se.lineWidth=1,"x"==g.direction?(u=0,h="full"==m?"top"==g.position?0:ge:_.top-ue.top+("top"==g.position?_.height:0)):(h=0,u="full"==m?"left"==g.position?0:pe:_.left-ue.left+("left"==g.position?_.width:0)),g.innermost||(se.beginPath(),f=p=0,"x"==g.direction?f=pe:p=ge,1==se.lineWidth&&(u=Math.floor(u)+.5,h=Math.floor(h)+.5),se.moveTo(u,h),se.lineTo(u+f,h+p),se.stroke()),se.beginPath(),t=0;t<g.ticks.length;++t){var v=g.ticks[t].v;f=p=0,isNaN(v)||v<g.min||v>g.max||"full"==m&&("object"==typeof n&&n[g.position]>0||n>0)&&(v==g.min||v==g.max)||("x"==g.direction?(u=g.p2c(v),p="full"==m?-ge:m,"top"==g.position&&(p=-p)):(h=g.p2c(v),f="full"==m?-pe:m,"left"==g.position&&(f=-f)),1==se.lineWidth&&("x"==g.direction?u=Math.floor(u)+.5:h=Math.floor(h)+.5),se.moveTo(u,h),se.lineTo(u+f,h+p))}se.stroke()}}n&&(o=ne.grid.borderColor,"object"==typeof n||"object"==typeof o?("object"!=typeof n&&(n={top:n,right:n,bottom:n,left:n}),"object"!=typeof o&&(o={top:o,right:o,bottom:o,left:o}),n.top>0&&(se.strokeStyle=o.top,se.lineWidth=n.top,se.beginPath(),se.moveTo(0-n.left,0-n.top/2),se.lineTo(pe,0-n.top/2),se.stroke()),n.right>0&&(se.strokeStyle=o.right,se.lineWidth=n.right,se.beginPath(),se.moveTo(pe+n.right/2,0-n.top),se.lineTo(pe+n.right/2,ge),se.stroke()),n.bottom>0&&(se.strokeStyle=o.bottom,se.lineWidth=n.bottom,se.beginPath(),se.moveTo(pe+n.right,ge+n.bottom/2),se.lineTo(0,ge+n.bottom/2),se.stroke()),n.left>0&&(se.strokeStyle=o.left,se.lineWidth=n.left,se.beginPath(),se.moveTo(0-n.left/2,ge+n.bottom),se.lineTo(0-n.left/2,0),se.stroke())):(se.lineWidth=n,se.strokeStyle=ne.grid.borderColor,se.strokeRect(-n/2,-n/2,pe+n,ge+n))),se.restore()}function E(){se.save(),e.each(d(),function(e,t){if(t.show&&0!=t.ticks.length){var i=t.box,n=t.font;se.fillStyle=t.options.color,se.font=n.style+" "+n.variant+" "+n.weight+" "+n.size+"px "+n.family,se.textAlign="start",se.textBaseline="middle";for(var o=0;o<t.ticks.length;++o){var a=t.ticks[o];if(!(!a.label||a.v<t.min||a.v>t.max))for(var r,s,l,c=0,d=0;d<a.lines.length;++d)l=a.lines[d],"x"==t.direction?(r=ue.left+t.p2c(a.v)-l.width/2,s="bottom"==t.position?i.top+i.padding:i.top+i.height-i.padding-a.height):(s=ue.top+t.p2c(a.v)-a.height/2,r="left"==t.position?i.left+i.width-i.padding-l.width:i.left+i.padding),s+=l.height/2+c,c+=l.height,window.opera&&window.opera.version().split(".")[0]<12&&(r=Math.floor(r),s=Math.ceil(s-2)),se.fillText(l.text,r,s)}}}),se.restore()}function D(e){e.lines.show&&W(e),e.bars.show&&N(e),e.points.show&&q(e)}function W(e){function t(e,t,i,n,o){var a=e.points,r=e.pointsize,s=null,l=null;se.beginPath();for(var c=r;c<a.length;c+=r){var d=a[c-r],u=a[c-r+1],h=a[c],f=a[c+1];if(null!=d&&null!=h){if(u<=f&&u<o.min){if(f<o.min)continue;d=(o.min-u)/(f-u)*(h-d)+d,u=o.min}else if(f<=u&&f<o.min){if(u<o.min)continue;h=(o.min-u)/(f-u)*(h-d)+d,f=o.min}if(u>=f&&u>o.max){if(f>o.max)continue;d=(o.max-u)/(f-u)*(h-d)+d,u=o.max}else if(f>=u&&f>o.max){if(u>o.max)continue;h=(o.max-u)/(f-u)*(h-d)+d,f=o.max}if(d<=h&&d<n.min){if(h<n.min)continue;u=(n.min-d)/(h-d)*(f-u)+u,d=n.min}else if(h<=d&&h<n.min){if(d<n.min)continue;f=(n.min-d)/(h-d)*(f-u)+u,h=n.min}if(d>=h&&d>n.max){if(h>n.max)continue;u=(n.max-d)/(h-d)*(f-u)+u,d=n.max}else if(h>=d&&h>n.max){if(d>n.max)continue;f=(n.max-d)/(h-d)*(f-u)+u,h=n.max}d==s&&u==l||se.moveTo(n.p2c(d)+t,o.p2c(u)+i),s=h,l=f,se.lineTo(n.p2c(h)+t,o.p2c(f)+i)}}se.stroke()}se.save(),se.translate(ue.left,ue.top),se.lineJoin="round";var i=e.lines.lineWidth,n=e.shadowSize;if(i>0&&n>0){se.lineWidth=n,se.strokeStyle="rgba(0,0,0,0.1)";var o=Math.PI/18;t(e.datapoints,Math.sin(o)*(i/2+n/2),Math.cos(o)*(i/2+n/2),e.xaxis,e.yaxis),se.lineWidth=n/2,t(e.datapoints,Math.sin(o)*(i/2+n/4),Math.cos(o)*(i/2+n/4),e.xaxis,e.yaxis)}se.lineWidth=i,se.strokeStyle=e.color;var a=G(e.lines,e.color,0,ge);a&&(se.fillStyle=a,function(e,t,i){for(var n=e.points,o=e.pointsize,a=Math.min(Math.max(0,i.min),i.max),r=0,s=!1,l=1,c=0,d=0;!(o>0&&r>n.length+o);){r+=o;var u=n[r-o],h=n[r-o+l],f=n[r],p=n[r+l];if(s){if(o>0&&null!=u&&null==f){d=r,o=-o,l=2;continue}if(o<0&&r==c+o){se.fill(),s=!1,o=-o,l=1,r=c=d+o;continue}}if(null!=u&&null!=f){if(u<=f&&u<t.min){if(f<t.min)continue;h=(t.min-u)/(f-u)*(p-h)+h,u=t.min}else if(f<=u&&f<t.min){if(u<t.min)continue;p=(t.min-u)/(f-u)*(p-h)+h,f=t.min}if(u>=f&&u>t.max){if(f>t.max)continue;h=(t.max-u)/(f-u)*(p-h)+h,u=t.max}else if(f>=u&&f>t.max){if(u>t.max)continue;p=(t.max-u)/(f-u)*(p-h)+h,f=t.max}if(s||(se.beginPath(),se.moveTo(t.p2c(u),i.p2c(a)),s=!0),h>=i.max&&p>=i.max)se.lineTo(t.p2c(u),i.p2c(i.max)),se.lineTo(t.p2c(f),i.p2c(i.max));else if(h<=i.min&&p<=i.min)se.lineTo(t.p2c(u),i.p2c(i.min)),se.lineTo(t.p2c(f),i.p2c(i.min));else{var g=u,_=f;h<=p&&h<i.min&&p>=i.min?(u=(i.min-h)/(p-h)*(f-u)+u,h=i.min):p<=h&&p<i.min&&h>=i.min&&(f=(i.min-h)/(p-h)*(f-u)+u,p=i.min),h>=p&&h>i.max&&p<=i.max?(u=(i.max-h)/(p-h)*(f-u)+u,h=i.max):p>=h&&p>i.max&&h<=i.max&&(f=(i.max-h)/(p-h)*(f-u)+u,p=i.max),u!=g&&se.lineTo(t.p2c(g),i.p2c(h)),se.lineTo(t.p2c(u),i.p2c(h)),se.lineTo(t.p2c(f),i.p2c(p)),f!=_&&(se.lineTo(t.p2c(f),i.p2c(p)),se.lineTo(t.p2c(_),i.p2c(p)))}}}}(e.datapoints,e.xaxis,e.yaxis)),i>0&&t(e.datapoints,0,0,e.xaxis,e.yaxis),se.restore()}function q(e){function t(e,t,i,n,o,a,r,s){for(var l=e.points,c=e.pointsize,d=0;d<l.length;d+=c){var u=l[d],h=l[d+1];null==u||u<a.min||u>a.max||h<r.min||h>r.max||(se.beginPath(),u=a.p2c(u),h=r.p2c(h)+n,"circle"==s?se.arc(u,h,t,0,o?Math.PI:2*Math.PI,!1):s(se,u,h,t,o),se.closePath(),i&&(se.fillStyle=i,se.fill()),se.stroke())}}se.save(),se.translate(ue.left,ue.top);var i=e.points.lineWidth,n=e.shadowSize,o=e.points.radius,a=e.points.symbol;if(0==i&&(i=1e-4),i>0&&n>0){var r=n/2;se.lineWidth=r,se.strokeStyle="rgba(0,0,0,0.1)",t(e.datapoints,o,null,r+r/2,!0,e.xaxis,e.yaxis,a),se.strokeStyle="rgba(0,0,0,0.2)",t(e.datapoints,o,null,r/2,!0,e.xaxis,e.yaxis,a)}se.lineWidth=i,se.strokeStyle=e.color,t(e.datapoints,o,G(e.points,e.color),0,!1,e.xaxis,e.yaxis,a),se.restore()}function F(e,t,i,n,o,a,r,s,l,c,d,u){var h,f,p,g,_,m,v,b,y;d?(b=m=v=!0,_=!1,h=i,f=e,g=t+n,p=t+o,f<h&&(y=f,f=h,h=y,_=!0,m=!1)):(_=m=v=!0,b=!1,h=e+n,f=e+o,p=i,(g=t)<p&&(y=g,g=p,p=y,b=!0,v=!1)),f<s.min||h>s.max||g<l.min||p>l.max||(h<s.min&&(h=s.min,_=!1),f>s.max&&(f=s.max,m=!1),p<l.min&&(p=l.min,b=!1),g>l.max&&(g=l.max,v=!1),h=s.p2c(h),p=l.p2c(p),f=s.p2c(f),g=l.p2c(g),r&&(c.beginPath(),c.moveTo(h,p),c.lineTo(h,g),c.lineTo(f,g),c.lineTo(f,p),c.fillStyle=r(p,g),c.fill()),u>0&&(_||m||v||b)&&(c.beginPath(),c.moveTo(h,p+a),_?c.lineTo(h,g+a):c.moveTo(h,g+a),v?c.lineTo(f,g+a):c.moveTo(f,g+a),m?c.lineTo(f,p+a):c.moveTo(f,p+a),b?c.lineTo(h,p+a):c.moveTo(h,p+a),c.stroke()))}function N(e){se.save(),se.translate(ue.left,ue.top),se.lineWidth=e.bars.lineWidth,se.strokeStyle=e.color;var t;switch(e.bars.align){case"left":t=0;break;case"right":t=-e.bars.barWidth;break;case"center":t=-e.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+e.bars.align)}var i=e.bars.fill?function(t,i){return G(e.bars,e.color,t,i)}:null;!function(t,i,n,o,a,r,s){for(var l=t.points,c=t.pointsize,d=0;d<l.length;d+=c)null!=l[d]&&F(l[d],l[d+1],l[d+2],i,n,o,a,r,s,se,e.bars.horizontal,e.bars.lineWidth)}(e.datapoints,t,t+e.bars.barWidth,0,i,e.xaxis,e.yaxis),se.restore()}function G(t,i,n,o){var a=t.fill;if(!a)return null;if(t.fillColor)return te(t.fillColor,n,o,i);var r=e.color.parse(i);return r.a="number"==typeof a?a:.4,r.normalize(),r.toString()}function B(){if(t.find(".legend").remove(),ne.legend.show){for(var i,n,o=[],a=[],r=!1,s=ne.legend.labelFormatter,l=0;l<ie.length;++l)i=ie[l],i.label&&(n=s?s(i.label,i):i.label)&&a.push({label:n,color:i.color});if(ne.legend.sorted)if(e.isFunction(ne.legend.sorted))a.sort(ne.legend.sorted);else if("reverse"==ne.legend.sorted)a.reverse();else{var c="descending"!=ne.legend.sorted;a.sort(function(e,t){return e.label==t.label?0:e.label<t.label!=c?1:-1})}for(var l=0;l<a.length;++l){var d=a[l];l%ne.legend.noColumns==0&&(r&&o.push("</tr>"),o.push("<tr>"),r=!0),o.push('<td class="legendColorBox"><div style="border:1px solid '+ne.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+d.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+d.label+"</td>")}if(r&&o.push("</tr>"),0!=o.length){var u='<table style="font-size:smaller;color:'+ne.grid.color+'">'+o.join("")+"</table>";if(null!=ne.legend.container)e(ne.legend.container).html(u);else{var h="",f=ne.legend.position,p=ne.legend.margin;null==p[0]&&(p=[p,p]),"n"==f.charAt(0)?h+="top:"+(p[1]+ue.top)+"px;":"s"==f.charAt(0)&&(h+="bottom:"+(p[1]+ue.bottom)+"px;"),"e"==f.charAt(1)?h+="right:"+(p[0]+ue.right)+"px;":"w"==f.charAt(1)&&(h+="left:"+(p[0]+ue.left)+"px;");var g=e('<div class="legend">'+u.replace('style="','style="position:absolute;'+h+";")+"</div>").appendTo(t);if(0!=ne.legend.backgroundOpacity){var _=ne.legend.backgroundColor;null==_&&(_=ne.grid.backgroundColor,_=_&&"string"==typeof _?e.color.parse(_):e.color.extract(g,"background-color"),_.a=1,_=_.toString());var m=g.children();e('<div style="position:absolute;width:'+m.width()+"px;height:"+m.height()+"px;"+h+"background-color:"+_+';"> </div>').prependTo(g).css("opacity",ne.legend.backgroundOpacity)}}}}}function L(e,t,i){var n,o,a,r=ne.grid.mouseActiveRadius,s=r*r+1,l=null;for(n=ie.length-1;n>=0;--n)if(i(ie[n])){var c=ie[n],d=c.xaxis,u=c.yaxis,h=c.datapoints.points,f=d.c2p(e),p=u.c2p(t),g=r/d.scale,_=r/u.scale;if(a=c.datapoints.pointsize,d.options.inverseTransform&&(g=Number.MAX_VALUE),u.options.inverseTransform&&(_=Number.MAX_VALUE),c.lines.show||c.points.show)for(o=0;o<h.length;o+=a){var m=h[o],v=h[o+1];if(null!=m&&!(m-f>g||m-f<-g||v-p>_||v-p<-_)){var b=Math.abs(d.p2c(m)-e),y=Math.abs(u.p2c(v)-t),x=b*b+y*y;x<s&&(s=x,l=[n,o/a])}}if(c.bars.show&&!l){var w="left"==c.bars.align?0:-c.bars.barWidth/2,k=w+c.bars.barWidth;for(o=0;o<h.length;o+=a){var m=h[o],v=h[o+1],C=h[o+2];null!=m&&((ie[n].bars.horizontal?f<=Math.max(C,m)&&f>=Math.min(C,m)&&p>=v+w&&p<=v+k:f>=m+w&&f<=m+k&&p>=Math.min(C,v)&&p<=Math.max(C,v))&&(l=[n,o/a]))}}}return l?(n=l[0],o=l[1],a=ie[n].datapoints.pointsize,{datapoint:ie[n].datapoints.points.slice(o*a,(o+1)*a),dataIndex:o,series:ie[n],seriesIndex:n}):null}function H(e){ne.grid.hoverable&&Y("plothover",e,function(e){return 0!=e.hoverable})}function R(e){ne.grid.hoverable&&Y("plothover",e,function(e){return!1})}function U(e){Y("plotclick",e,function(e){return 0!=e.clickable})}function Y(e,i,n){var o=re.offset(),a=i.pageX-o.left-ue.left,r=i.pageY-o.top-ue.top,s=u({left:a,top:r});s.pageX=i.pageX,s.pageY=i.pageY;var l=L(a,r,n);if(l&&(l.pageX=parseInt(l.series.xaxis.p2c(l.datapoint[0])+o.left+ue.left,10),l.pageY=parseInt(l.series.yaxis.p2c(l.datapoint[1])+o.top+ue.top,10)),ne.grid.autoHighlight){for(var c=0;c<ve.length;++c){var d=ve[c];d.auto!=e||l&&d.series==l.series&&d.point[0]==l.datapoint[0]&&d.point[1]==l.datapoint[1]||$(d.series,d.point)}l&&X(l.series,l.datapoint,e)}t.trigger(e,[s,l])}function V(){var e=ne.interaction.redrawOverlayInterval;if(-1==e)return void K();be||(be=setTimeout(K,e))}function K(){be=null,le.save(),le.clearRect(0,0,he,fe),le.translate(ue.left,ue.top);var e,t;for(e=0;e<ve.length;++e)t=ve[e],t.series.bars.show?ee(t.series,t.point):J(t.series,t.point);le.restore(),r(_e.drawOverlay,[le])}function X(e,t,i){if("number"==typeof e&&(e=ie[e]),"number"==typeof t){var n=e.datapoints.pointsize;t=e.datapoints.points.slice(n*t,n*(t+1))}var o=Z(e,t);-1==o?(ve.push({series:e,point:t,auto:i}),V()):i||(ve[o].auto=!1)}function $(e,t){null==e&&null==t&&(ve=[],V()),"number"==typeof e&&(e=ie[e]),"number"==typeof t&&(t=e.data[t]);var i=Z(e,t);-1!=i&&(ve.splice(i,1),V())}function Z(e,t){for(var i=0;i<ve.length;++i){var n=ve[i];if(n.series==e&&n.point[0]==t[0]&&n.point[1]==t[1])return i}return-1}function J(t,i){var n=i[0],o=i[1],a=t.xaxis,r=t.yaxis,s="string"==typeof t.highlightColor?t.highlightColor:e.color.parse(t.color).scale("a",.5).toString();if(!(n<a.min||n>a.max||o<r.min||o>r.max)){var l=t.points.radius+t.points.lineWidth/2;le.lineWidth=l,le.strokeStyle=s;var c=1.5*l;n=a.p2c(n),o=r.p2c(o),le.beginPath(),"circle"==t.points.symbol?le.arc(n,o,c,0,2*Math.PI,!1):t.points.symbol(le,n,o,c,!1),le.closePath(),le.stroke()}}function ee(t,i){var n="string"==typeof t.highlightColor?t.highlightColor:e.color.parse(t.color).scale("a",.5).toString(),o=n,a="left"==t.bars.align?0:-t.bars.barWidth/2;le.lineWidth=t.bars.lineWidth,le.strokeStyle=n,F(i[0],i[1],i[2]||0,a,a+t.bars.barWidth,0,function(){return o},t.xaxis,t.yaxis,le,t.bars.horizontal,t.bars.lineWidth)}function te(t,i,n,o){if("string"==typeof t)return t;for(var a=se.createLinearGradient(0,n,0,i),r=0,s=t.colors.length;r<s;++r){var l=t.colors[r];if("string"!=typeof l){var c=e.color.parse(o);null!=l.brightness&&(c=c.scale("rgb",l.brightness)),null!=l.opacity&&(c.a*=l.opacity),l=c.toString()}a.addColorStop(r/(s-1),l)}return a}var ie=[],ne={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:!0,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:"bottom",mode:null,timezone:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:!1},yaxis:{autoscaleMargin:.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:!1,radius:3,lineWidth:2,fill:!0,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:!1,fillColor:null,steps:!1},bars:{show:!1,lineWidth:2,barWidth:1,fill:!0,fillColor:null,align:"left",horizontal:!1,zero:!0},shadowSize:3,highlightColor:null},grid:{show:!0,aboveData:!1,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:!1,hoverable:!1,autoHighlight:!0,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},oe=null,ae=null,re=null,se=null,le=null,ce=[],de=[],ue={left:0,right:0,top:0,bottom:0},he=0,fe=0,pe=0,ge=0,_e={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},me=this;me.setData=s,me.setupGrid=T,me.draw=z,me.getPlaceholder=function(){return t},me.getCanvas=function(){return oe},me.getPlotOffset=function(){return ue},me.width=function(){return pe},me.height=function(){return ge},me.offset=function(){var e=re.offset();return e.left+=ue.left,e.top+=ue.top,e},me.getData=function(){return ie},me.getAxes=function(){var t={};return e.each(ce.concat(de),function(e,i){i&&(t[i.direction+(1!=i.n?i.n:"")+"axis"]=i)}),t},me.getXAxes=function(){return ce},me.getYAxes=function(){return de},me.c2p=u,me.p2c=h,me.getOptions=function(){return ne},me.highlight=X,me.unhighlight=$,me.triggerRedrawOverlay=V,me.pointOffset=function(e){return{left:parseInt(ce[c(e,"x")-1].p2c(+e.x)+ue.left,10),top:parseInt(de[c(e,"y")-1].p2c(+e.y)+ue.top,10)}},me.shutdown=y,me.resize=function(){v(),b(oe),b(ae)},me.hooks=_e,function(){for(var t=0;t<a.length;++t){var i=a[t];i.init(me),i.options&&e.extend(!0,ne,i.options)}}(),function(t){var i;for(e.extend(!0,ne,t),null==ne.xaxis.color&&(ne.xaxis.color=ne.grid.color),null==ne.yaxis.color&&(ne.yaxis.color=ne.grid.color),null==ne.xaxis.tickColor&&(ne.xaxis.tickColor=ne.grid.tickColor),null==ne.yaxis.tickColor&&(ne.yaxis.tickColor=ne.grid.tickColor),null==ne.grid.borderColor&&(ne.grid.borderColor=ne.grid.color),null==ne.grid.tickColor&&(ne.grid.tickColor=e.color.parse(ne.grid.color).scale("a",.22).toString()),i=0;i<Math.max(1,ne.xaxes.length);++i)ne.xaxes[i]=e.extend(!0,{},ne.xaxis,ne.xaxes[i]);for(i=0;i<Math.max(1,ne.yaxes.length);++i)ne.yaxes[i]=e.extend(!0,{},ne.yaxis,ne.yaxes[i]);for(ne.xaxis.noTicks&&null==ne.xaxis.ticks&&(ne.xaxis.ticks=ne.xaxis.noTicks),ne.yaxis.noTicks&&null==ne.yaxis.ticks&&(ne.yaxis.ticks=ne.yaxis.noTicks),ne.x2axis&&(ne.xaxes[1]=e.extend(!0,{},ne.xaxis,ne.x2axis),ne.xaxes[1].position="top"),ne.y2axis&&(ne.yaxes[1]=e.extend(!0,{},ne.yaxis,ne.y2axis),ne.yaxes[1].position="right"),ne.grid.coloredAreas&&(ne.grid.markings=ne.grid.coloredAreas),ne.grid.coloredAreasColor&&(ne.grid.markingsColor=ne.grid.coloredAreasColor),ne.lines&&e.extend(!0,ne.series.lines,ne.lines),ne.points&&e.extend(!0,ne.series.points,ne.points),ne.bars&&e.extend(!0,ne.series.bars,ne.bars),null!=ne.shadowSize&&(ne.series.shadowSize=ne.shadowSize),null!=ne.highlightColor&&(ne.series.highlightColor=ne.highlightColor),i=0;i<ne.xaxes.length;++i)f(ce,i+1).options=ne.xaxes[i];for(i=0;i<ne.yaxes.length;++i)f(de,i+1).options=ne.yaxes[i];for(var n in _e)ne.hooks[n]&&ne.hooks[n].length&&(_e[n]=_e[n].concat(ne.hooks[n]));r(_e.processOptions,[ne])}(o),function(){var i,n=t.children("canvas.flot-base"),o=t.children("canvas.flot-overlay");0==n.length||0==o?(t.html(""),t.css({padding:0}),"static"==t.css("position")&&t.css("position","relative"),v(),oe=m("flot-base"),ae=m("flot-overlay"),i=!1):(oe=n.get(0),ae=o.get(0),i=!0),se=oe.getContext("2d"),le=ae.getContext("2d"),re=e(ae),i&&(t.data("plot").shutdown(),me.resize(),le.clearRect(0,0,he,fe),re.unbind(),t.children().not([oe,ae]).remove()),t.data("plot",me)}(),s(n),T(),z(),function(){ne.grid.hoverable&&(re.mousemove(H),re.bind("mouseleave",R)),ne.grid.clickable&&re.click(U),r(_e.bindEvents,[re])}();var ve=[],be=null}function i(e,t){return t*Math.floor(e/t)}e.plot=function(i,n,o){return new t(e(i),n,o,e.plot.plugins)},e.plot.version="0.8-alpha",e.plot.plugins=[],e.fn.plot=function(t,i){return this.each(function(){e.plot(this,t,i)})}}(jQuery)},function(e,t){!function(e){function t(e){function t(e,t,o){var r=null;if(i(t)&&(c(t),n(e),a(e),l(t),_>=2)){var s=d(t),m=0,b=u();void 0===x[t.bars.order]&&(h(s)?x[t.bars.order]=-1*f(g,s-1,Math.floor(_/2)-1)-b:x[t.bars.order]=f(g,Math.ceil(_/2),s-2)+b+2*v),m=x[t.bars.order],r=p(o,t,m),o.points=r}return r}function i(e){return null!=e.bars&&e.bars.show&&null!=e.bars.order}function n(e){var t=y?e.getPlaceholder().innerHeight():e.getPlaceholder().innerWidth(),i=y?o(e.getData(),1):o(e.getData(),0),n=i[1]-i[0];b=n/t}function o(e,t){for(var i=new Array,n=0;n<e.length;n++)i[0]=e[n].data[0]?e[n].data[0][t]:null,i[1]=e[n].data[e[n].data.length-1]?e[n].data[e[n].data.length-1][t]:null;return i}function a(e){g=r(e.getData()),_=g.length}function r(e){for(var t=new Array,i=[],n=0;n<e.length;n++)null!=e[n].bars.order&&e[n].bars.show&&i.indexOf(e[n].bars.order)<0&&(i.push(e[n].bars.order),t.push(e[n]));return t.sort(s)}function s(e,t){var i=e.bars.order,n=t.bars.order;return i<n?-1:i>n?1:0}function l(e){m=void 0!==e.bars.lineWidth?e.bars.lineWidth:2,v=m*b}function c(e){e.bars.horizontal&&(y=!0)}function d(e){for(var t=0,i=0;i<g.length;++i)if(e==g[i]){t=i;break}return t+1}function u(){var e=0;return _%2!=0&&(e=g[Math.ceil(_/2)].bars.barWidth/2),e}function h(e){return e<=Math.ceil(_/2)}function f(e,t,i){for(var n=0,o=t;o<=i;o++)n+=e[o].bars.barWidth+2*v;return n}function p(e,t,i){for(var n=e.pointsize,o=e.points,a=0,r=y?1:0;r<o.length;r+=n)o[r]+=i,t.data[a][3]=o[r],a++;return o}var g,_,m,v,b=1,y=!1,x={};e.hooks.processDatapoints.push(t)}var i={series:{bars:{order:null}}};e.plot.plugins.push({init:t,options:i,name:"orderBars",version:"0.2"})}(jQuery)},function(e,t){!function(e){function t(e,t){return t*Math.floor(e/t)}function i(e,t,i,n){if("function"==typeof e.strftime)return e.strftime(t);var o=function(e,t){return e=""+e,t=""+(null==t?"0":t),1==e.length?t+e:e},a=[],r=!1,s=e.getHours(),l=s<12;null==i&&(i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==n&&(n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);var c;c=s>12?s-12:0==s?12:s;for(var d=0;d<t.length;++d){var u=t.charAt(d);if(r){switch(u){case"a":u=""+n[e.getDay()];break;case"b":u=""+i[e.getMonth()];break;case"d":u=o(e.getDate());break;case"e":u=o(e.getDate()," ");break;case"H":u=o(s);break;case"I":u=o(c);break;case"l":u=o(c," ");break;case"m":u=o(e.getMonth()+1);break;case"M":u=o(e.getMinutes());break;case"q":u=""+(Math.floor(e.getMonth()/3)+1);break;case"S":u=o(e.getSeconds());break;case"y":u=o(e.getFullYear()%100);break;case"Y":u=""+e.getFullYear();break;case"p":u=l?"am":"pm";break;case"P":u=l?"AM":"PM";break;case"w":u=""+e.getDay()}a.push(u),r=!1}else"%"==u?r=!0:a.push(u)}return a.join("")}function n(e){function t(e,t,i,n){e[t]=function(){return i[n].apply(i,arguments)}}var i={date:e};void 0!=e.strftime&&t(i,"strftime",e,"strftime"),t(i,"getTime",e,"getTime"),t(i,"setTime",e,"setTime");for(var n=["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds"],o=0;o<n.length;o++)t(i,"get"+n[o],e,"getUTC"+n[o]),t(i,"set"+n[o],e,"setUTC"+n[o]);return i}function o(e,t){if("browser"==t.timezone)return new Date(e);if(t.timezone&&"utc"!=t.timezone){if("undefined"!=typeof timezoneJS&&void 0!==timezoneJS.Date){var i=new timezoneJS.Date;return i.setTimezone(t.timezone),i.setTime(e),i}return n(new Date(e))}return n(new Date(e))}function a(n){n.hooks.processDatapoints.push(function(n,a,r){e.each(n.getAxes(),function(e,n){var a=n.options;"time"==a.mode&&(n.tickGenerator=function(e){var i=[],n=o(e.min,a),r=0,l=a.tickSize&&"quarter"===a.tickSize[1]||a.minTickSize&&"quarter"===a.minTickSize[1]?d:c;null!=a.minTickSize&&(r="number"==typeof a.tickSize?a.tickSize:a.minTickSize[0]*s[a.minTickSize[1]]);for(var u=0;u<l.length-1&&!(e.delta<(l[u][0]*s[l[u][1]]+l[u+1][0]*s[l[u+1][1]])/2&&l[u][0]*s[l[u][1]]>=r);++u);var h=l[u][0],f=l[u][1];if("year"==f){if(null!=a.minTickSize&&"year"==a.minTickSize[1])h=Math.floor(a.minTickSize[0]);else{var p=Math.pow(10,Math.floor(Math.log(e.delta/s.year)/Math.LN10)),g=e.delta/s.year/p;h=g<1.5?1:g<3?2:g<7.5?5:10,h*=p}h<1&&(h=1)}e.tickSize=a.tickSize||[h,f];var _=e.tickSize[0];f=e.tickSize[1];var m=_*s[f];"second"==f?n.setSeconds(t(n.getSeconds(),_)):"minute"==f?n.setMinutes(t(n.getMinutes(),_)):"hour"==f?n.setHours(t(n.getHours(),_)):"month"==f?n.setMonth(t(n.getMonth(),_)):"quarter"==f?n.setMonth(3*t(n.getMonth()/3,_)):"year"==f&&n.setFullYear(t(n.getFullYear(),_)),n.setMilliseconds(0),m>=s.minute?n.setSeconds(0):m>=s.hour?n.setMinutes(0):m>=s.day?n.setHours(0):m>=4*s.day?n.setDate(1):m>=2*s.month?n.setMonth(t(n.getMonth(),3)):m>=2*s.quarter?n.setMonth(t(n.getMonth(),6)):m>=s.year&&n.setMonth(0);var v,b=0,y=Number.NaN;do{if(v=y,y=n.getTime(),i.push(y),"month"==f||"quarter"==f)if(_<1){n.setDate(1);var x=n.getTime();n.setMonth(n.getMonth()+("quarter"==f?3:1));var w=n.getTime();n.setTime(y+b*s.hour+(w-x)*_),b=n.getHours(),n.setHours(0)}else n.setMonth(n.getMonth()+_*("quarter"==f?3:1));else"year"==f?n.setFullYear(n.getFullYear()+_):n.setTime(y+m)}while(y<e.max&&y!=v);return i},n.tickFormatter=function(e,t){var n=o(e,t.options);if(null!=a.timeformat)return i(n,a.timeformat,a.monthNames,a.dayNames);var r,l=t.options.tickSize&&"quarter"==t.options.tickSize[1]||t.options.minTickSize&&"quarter"==t.options.minTickSize[1],c=t.tickSize[0]*s[t.tickSize[1]],d=t.max-t.min,u=a.twelveHourClock?" %p":"",h=a.twelveHourClock?"%I":"%H";return r=c<s.minute?h+":%M:%S"+u:c<s.day?d<2*s.day?h+":%M"+u:"%b %d "+h+":%M"+u:c<s.month?"%b %d":l&&c<s.quarter||!l&&c<s.year?d<s.year?"%b":"%b %Y":l&&c<s.year?d<s.year?"Q%q":"Q%q %Y":"%Y",i(n,r,a.monthNames,a.dayNames)})})})}var r={},s={second:1e3,minute:6e4,hour:36e5,day:864e5,month:2592e6,quarter:7776e6,year:525949.2*60*1e3},l=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[.25,"month"],[.5,"month"],[1,"month"],[2,"month"]],c=l.concat([[3,"month"],[6,"month"],[1,"year"]]),d=l.concat([[1,"quarter"],[2,"quarter"],[1,"year"]]);e.plot.plugins.push({init:a,options:r,name:"time",version:"1.0"}),e.plot.formatDate=i}(jQuery)},function(e,t){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e){"use strict";e.extend({giveAjaxifyFields:function(t){var n,o,a={type:"",parentWrapper:"form",countryFieldName:"country",stateFieldName:"state",stateFieldWrapper:".give-field-wrap",chosenState:!0},r=e.extend({},a,t||{});switch(r.type){case"country_state":if(n=e('select[name="'+r.countryFieldName+'"]'),o=n.closest(r.parentWrapper),!n.length||"Country_state"===n.data("give-ajaxify-field"))return;n.data("give-ajaxify-field","country_state"),n.change(function(){var t=e(this),n=t.closest(r.parentWrapper).find('[name="'+r.stateFieldName+'"]'),a=n.closest(r.stateFieldWrapper),s=e("label",a);r.stateFieldWrapper||(s=e('label[for="'+r.stateFieldName+'"]',o),a=n.parent());var l={action:"give_get_states",country:t.val(),field_name:r.stateFieldName};e.post(ajaxurl,l,function(t){if(!t.show_field)return void(r.stateFieldWrapper?a.addClass("give-hidden"):n.addClass("give-hidden"));s.length&&s.text(t.states_label),r.chosenState&&n.chosen("destroy"),r.stateFieldWrapper?a.removeClass("give-hidden"):n.removeClass("give-hidden"),void 0!==i(t.states_found)&&!0===t.states_found?(n.replaceWith(t.data),n=e('[name="'+r.stateFieldName+'"]',a),r.chosenState&&n.chosen()):(n.replaceWith('<input type="text" name="'+r.stateFieldName+'" value="'+t.default_state+'" class="medium-text"/>'),n=e('[name="'+r.stateFieldName+'"]',a))})})}return this}})}(jQuery)},function(e,t){var i={collection:{},get:function(e,t,i){return jQuery?(t=void 0!==t?t:void 0,i=!0===i,(void 0===this.collection[e]||i)&&(this.collection[e]=void 0!==t?jQuery(e,t):jQuery(e)),this.collection[e]):-1}};window.Give_Selector_Cache=i},function(e,t){!function(e){e.fn.repeatable_fields=function(t){function i(t){e(a.wrapper,t).each(function(t,o){var r=this,s=e(r).children(a.container);e(s).children(a.template).hide().find(":input").each(function(){e(this).prop("disabled",!0)});var l=e(s).children(a.row).filter(function(){return!e(this).hasClass(a.template.replace(".",""))}).length;if(e(s).attr("data-rf-row-count",l),e(r).on("click",a.add,function(t){t.stopImmediatePropagation();var o=e(e(s).children(a.template).clone().removeClass(a.template.replace(".",""))[0].outerHTML);e(o).find(":input").each(function(){e(this).prop("disabled",!1)}),"function"==typeof a.before_add&&a.before_add(s);var r=e(o).show().appendTo(s);"function"==typeof a.after_add&&a.after_add(s,r,n),i(r)}),e(r).on("click",a.remove,function(t){if(t.stopImmediatePropagation(),a.confirm_before_remove_row&&a.confirm_before_remove_row_text&&!confirm(a.confirm_before_remove_row_text))return!1;var i=e(this).parents(a.row).first();"function"==typeof a.before_remove&&a.before_remove(s,i),i.remove(),"function"==typeof a.after_remove&&a.after_remove(s)}),!0===a.is_sortable&&void 0!==e.ui&&void 0!==e.ui.sortable){var c=null!==a.sortable_options?a.sortable_options:{};c.handle=a.move,e(r).find(a.container).sortable(c)}})}function n(t,i){var n=e(t).attr("data-rf-row-count");n++,e("*",i).each(function(){e.each(this.attributes,function(e,t){this.value=this.value.replace(a.row_count_placeholder,n-1)})}),e(t).attr("data-rf-row-count",n)}var o={wrapper:".wrapper",container:".container",row:".row",add:".add",remove:".remove",confirm_before_remove_row:!1,confirm_before_remove_row_text:"",move:".move",template:".template",is_sortable:!0,before_add:null,after_add:n,before_remove:null,after_remove:null,sortable_options:null,row_count_placeholder:"{{row-count-placeholder}}"},a=e.extend({},o,t);i(this)}}(jQuery)},function(e,t){/*!
12
  * Give Admin Forms JS
13
  *
14
  * @description: The Give Admin Forms scripts. Only enqueued on the give_forms CPT; used to validate fields, show/hide, and other functions
assets/dist/js/admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///js/admin.js","webpack:///webpack/bootstrap 3dcc6c2fe2616e07130b","webpack:///external \"jQuery\"","webpack:///./node_modules/accounting/accounting.js-exposed","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/accounting/accounting.js","webpack:///./node_modules/magnific-popup/dist/jquery.magnific-popup.js","webpack:///./assets/src/js/plugins/give-hint.css.js","webpack:///./assets/src/js/plugins/give-api/api.js","webpack:///./assets/src/js/plugins/give-api/notice.js","webpack:///./assets/src/js/plugins/give-api/form.js","webpack:///./assets/src/js/plugins/dynamicListener.js","webpack:///./assets/src/js/plugins/modal.js","webpack:///./assets/src/js/admin/admin.js","webpack:///./node_modules/chosen-js/chosen.jquery.js","webpack:///./node_modules/flot/jquery.flot.js","webpack:///./node_modules/flot-orderbars/js/jquery.flot.orderBars.js","webpack:///./node_modules/flot/jquery.flot.time.js","webpack:///./assets/src/js/plugins/give-ajaxify-fields.js","webpack:///./assets/src/js/plugins/selector-cache.js","webpack:///./assets/src/js/plugins/repeatable-fields.js","webpack:///./assets/src/js/admin/admin-forms.js","webpack:///./assets/src/js/admin/admin-settings.js","webpack:///./assets/src/js/admin/admin-export.js","webpack:///./assets/src/js/admin/admin-widgets.js","webpack:///./assets/src/js/admin/admin-scripts.js","webpack:///./assets/src/js/admin/admin-importer.js"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE_0__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","g","Function","eval","e","window","undefined","isString","obj","charCodeAt","substr","isArray","nativeIsArray","toString","isObject","defaults","defs","key","map","iterator","context","j","results","nativeMap","length","checkPrecision","val","base","Math","round","abs","isNaN","checkCurrencyFormat","format","lib","settings","currency","match","pos","neg","replace","zero","version","symbol","decimal","thousand","precision","grouping","number","Array","unformat","parse","value","regex","RegExp","unformatted","parseFloat","toFixed","power","pow","formatNumber","opts","usePrecision","negative","parseInt","mod","split","formatMoney","formats","formatColumn","list","padAfterSymbol","indexOf","maxLength","useFormat","fVal","join","accounting","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","apply","$","mfp","_prevStatus","_document","_prevContentType","_wrapClasses","_currPopupType","MagnificPopup","_isJQ","_window","_mfpOn","f","ev","on","_getEl","className","appendTo","html","raw","el","document","createElement","innerHTML","appendChild","_mfpTrigger","data","triggerHandler","st","callbacks","charAt","toLowerCase","slice","_getCloseBtn","type","currTemplate","closeBtn","closeMarkup","tClose","_checkInstance","magnificPopup","instance","init","supportsTransitions","style","v","pop","constructor","appVersion","navigator","isLowIE","isIE8","all","addEventListener","isAndroid","test","isIOS","supportsTransition","probablyMobile","userAgent","popupsCache","open","isObj","items","toArray","index","item","parsed","isOpen","updateItemHTML","types","mainEl","eq","extend","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","close","wrap","attr","_checkIfClose","target","container","contentContainer","preloader","tLoading","toUpperCase","closeBtnInside","template","values","close_replaceWith","append","alignTop","css","overflow","overflowY","overflowX","top","scrollTop","position","fixedBgPos","height","keyCode","updateSize","addClass","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","classesToadd","mainClass","_addClassToMFP","add","prependTo","body","_lastFocusedEl","activeElement","setTimeout","content","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","REMOVING_CLASS","detach","empty","_removeClassFromMFP","off","removeAttr","currItem","autoFocusLast","focus","prevHeight","winHeight","zoomLevel","documentElement","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","newContent","appendContent","preloaded","prepend","find","tagName","src","hasClass","addGroup","options","eHandler","mfpEl","_openClick","eName","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","isFunction","width","preventDefault","stopPropagation","updateStatus","status","text","stopImmediatePropagation","closeOnContent","closeOnBg","contains","cName","scrollHeight","_parseMarkup","arr","each","EVENT_NS","replaceWith","is","scrollbarSize","scrollDiv","cssText","offsetWidth","removeChild","proto","registerModule","push","fn","jqEl","itemOpts","arguments","_hiddenClass","_inlinePlaceholder","_lastInlineElement","_putInlineElementsBack","after","hiddenClass","tNotFound","initInline","CLOSE_EVENT","getInline","inlineSt","inline","parent","parentNode","inlineElement","_ajaxCur","_removeAjaxCursor","_destroyAjaxRequest","req","abort","cursor","tError","initAjax","ajax","getAjax","url","success","textStatus","jqXHR","temp","xhr","finished","error","loadError","_imgInterval","_getTitle","title","image","titleSrc","verticalFit","initImage","imgSt","ns","resizeImage","img","decr","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","counter","mfpSetInterval","delay","setInterval","naturalWidth","getImage","guard","onLoadComplete","complete","loaded","onLoadError","alt","clone","img_replaceWith","loading","hasMozTransform","getHasMozTransform","MozTransform","enabled","easing","duration","opener","element","initZoom","zoomSt","zoom","openTimeout","animatedImg","getElToAnimate","newImg","transition","cssObj","zIndex","left","-webkit-backface-visibility","t","showMainContent","_allowZoom","clearTimeout","_getItemToZoom","_getOffset","remove","isLarge","offset","paddingTop","paddingBottom","offsetHeight","_fixIframeBugs","isShowing","srcAction","patterns","youtube","id","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","iframe","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","direction","next","prev","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","newIndex","preloadBefore","min","preloadAfter","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","jQuery","giveHintCss","action","$this","label","$tooltip","outerHeight","outerWidth","ready","reset_qtip","tooltip","classes","icon_classes","label_length","grep","qtip_tooltips","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__notice__","__WEBPACK_IMPORTED_MODULE_1__form__","Give","subHelperObjs","trigger","formatCurrency","price","args","$form","format_args","give_global_vars","decimal_separator","thousands_separator","number_decimals","trim","form","getInfo","actual_price","decimal_amount","result","amount","decimal_index","Number","unFormatCurrency","getParameterByName","location","href","exec","decodeURIComponent","getGlobalVar","str","setCache","cache","getCache","formObj","__getCookie","cookie","parts","shift","notice","renderNotice","notice_code","$container","$notice","getNotice","insertBefore","show","error_code","notice_msg","formatted_amount","getMinimumAmount","getMaximumAmount","field","formatCreditCard","__initialize_cache","onload","__sendBackToForm","disable","is_disable","prop","formatAmount","gateway","hasAttribute","setInfo","getGateway","getVariablePrices","formLevels","variable_prices","price_id","getPriceID","is_amount","current_amount","variable_price","getAmount","getNonce","nonce","resetNonce","post","ajaxurl","give_form_id","response","resetAllNonce","createUserNonceField","give_form_hash","give_form_user_register_hash","autoSelectDonationLevel","blur","autoSetMultiLevel","$level","parents","level_amount","level_price_id","form_id","payment_mode","$form_wrapper","display_modal","display_button","display_reveal","level_id","level_field","give_open_form_modal","hide","slideDown","isValidDonationAmount","min_amount","max_amount","$item","$forms","card_number","card_cvc","card_expiry","payment","globalSope","getConditionalCallback","selector","callback","matches","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","querySelectorAll","addDynamicEventListener","rootElement","eventType","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","TypeError","create","writable","setPrototypeOf","__proto__","_classCallCheck","Constructor","GiveModal","GiveErrorAlert","GiveWarningAlert","GiveNoticeAlert","GiveSuccessAlert","GiveConfirmModal","GiveFormModal","__WEBPACK_IMPORTED_MODULE_0_magnific_popup__","__WEBPACK_IMPORTED_MODULE_1__dynamicListener_js__","_createClass","defineProperties","props","descriptor","protoProps","staticProps","Error","config","assign","triggerSelector","externalPlugin","modalWrapper","modalContent","setupTemplate","popupConfig","__setupClickEvent","desc","link","link_text","cancelBtnTitle","give_vars","cancel","confirmBtnTitle","confirm","getTemplate","event","_GiveModal","_this","getPrototypeOf","_GiveModal2","_this2","_GiveModal3","_this3","_GiveModal4","_this4","_GiveModal5","_this5","successConfirm","_GiveModal6","_this6","__closePopup","__confirmPopup","__submitPopup","__WEBPACK_IMPORTED_MODULE_0_chosen_js__","__WEBPACK_IMPORTED_MODULE_1_accounting__","__WEBPACK_IMPORTED_MODULE_2_flot__","__WEBPACK_IMPORTED_MODULE_3_flot_orderbars_js_jquery_flot_orderBars__","__WEBPACK_IMPORTED_MODULE_4_flot_jquery_flot_time__","__WEBPACK_IMPORTED_MODULE_5__plugins_give_ajaxify_fields__","__WEBPACK_IMPORTED_MODULE_6__plugins_selector_cache__","__WEBPACK_IMPORTED_MODULE_7__plugins_repeatable_fields__","__WEBPACK_IMPORTED_MODULE_8__plugins_give_hint_css__","__WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__","__WEBPACK_IMPORTED_MODULE_10__plugins_modal_js__","__WEBPACK_IMPORTED_MODULE_11__admin_forms__","__WEBPACK_IMPORTED_MODULE_12__admin_settings__","__WEBPACK_IMPORTED_MODULE_13__admin_export__","__WEBPACK_IMPORTED_MODULE_14__admin_widgets__","AbstractChosen","Chosen","SelectParser","bind","me","child","ctor","hasProp","__super__","options_index","add_node","nodeName","add_group","add_option","group","group_position","len","option","ref","results1","array_index","children","disabled","childNodes","group_disabled","selected","group_array_index","group_label","select_to_array","select","parser","form_field","options1","label_click_handler","browser_is_supported","is_multiple","multiple","set_default_text","set_default_values","setup","set_up_html","register_observers","on_ready","click_test_action","evt","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","is_rtl","rtl","allow_single_deselect","disable_search_threshold","disable_search","enable_split_word_search","group_search","search_contains","single_backstroke_delete","max_selected_options","Infinity","inherit_select_classes","display_selected_options","display_disabled_options","include_group_label_in_selected","max_shown_results","POSITIVE_INFINITY","case_sensitive_search","hide_results_on_select","getAttribute","default_text","placeholder_text_multiple","placeholder_text","default_multiple_text","placeholder_text_single","default_single_text","escape_html","results_none_found","no_results_text","default_no_result_text","choice_label","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","results_option_build","data_content","shown_results","results_data","result_add_group","result_add_option","first","choice_build","single_set_selected_text","option_el","search_match","include_option_in_results","setAttribute","highlighted_html","outerHTML","group_el","group_match","active_options","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","winnow_results","reset_single_select_options","results_toggle","results_hide","results_show","results_search","escapedQuery","fix","prefix","query","results_group","startpos","suffix","no_results_clear","get_search_text","get_search_regex","search_string_match","update_results_content","no_results","skip_highlight","winnow_results_set_highlight","escaped_search_string","regex_flag","regex_string","search_string","choices_count","selected_option_count","choices_click","is_disabled","keydown_checker","stroke","search_field_scale","pending_backstroke","clear_backstroke","backstroke_length","get_search_field_value","result_select","keyup_arrow","keydown_arrow","keyup_checker","keydown_backstroke","clipboard_event_checker","container_width","search_results_touchstart","touch_started","search_results_mouseover","search_results_touchmove","search_results_mouseout","search_results_touchend","search_results_mouseup","tmp","get_single_html","get_multi_html","get_no_results_html","terms","appName","documentMode","chosen","input_field","destroy","form_field_jq","current_selectedIndex","selectedIndex","container_classes","container_props","class","dropdown","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","container_mouseup","search_results_mousewheel","close_field","form_field_label","tabIndex","removeData","search_field_disabled","toggleClass","results_reset","delta","originalEvent","deltaY","wheelDelta","detail","show_search_field_default","active_container","closest","parsing","readOnly","result_do_highlight","high_bottom","high_top","maxHeight","visible_bottom","visible_top","result_highlight","ti","choice","close_link","data-option-array-index","choice_destroy_link_click","before","choice_destroy","result_deselect","trigger_form_field_change","high","single_deselect_control_build","result_data","deselected","do_high","selected_results","no_results_html","next_sib","nextAll","prev_sibs","prevAll","next_available_destroy","siblings","last","div","style_block","styles","display","whiteSpace","extra","B","color","make","F","E","C","D","G","r","b","a","J","I","H","normalize","scale","K","extract","A","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","Plot","placeholder","data_","options_","plugins","executeHooks","hook","plot","concat","setData","series","parseData","fillInSeriesOptions","processData","res","axisNumber","coord","allAxes","xaxes","yaxes","canvasToAxisCoords","axis","used","c2p","x1","x","y1","y","axisToCanvasCoords","p2c","getOrCreateAxis","axes","xaxis","yaxis","neededColors","maxIndex","sc","colors","colorPool","colorPoolSize","variation","colori","lines","fill","updateAxis","max","datamin","fakeInfinity","datamax","k","points","ps","topSentry","bottomSentry","NEGATIVE_INFINITY","MAX_VALUE","_","datapoints","hooks","processRawData","required","bars","autoscale","defaultValue","horizontal","pointsize","insertSteps","steps","nullify","processDatapoints","xmin","ymin","xmax","ymax","align","barWidth","getPixelRatio","cctx","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","makeCanvas","cls","getContext","G_vmlCanvasManager","initElement","pixelRatio","canvasWidth","canvasHeight","save","getCanvasDimensions","resizeCanvas","restore","shutdown","redrawTimeout","eventHolder","unbind","onMouseMove","onMouseLeave","onClick","setTransformationHelpers","identity","transform","it","inverseTransform","plotWidth","plotHeight","measureTickLabels","ticks","axisw","labelWidth","axish","labelHeight","font","ctx","variant","weight","size","family","line","measureText","ceil","allocateAxisBoxFirstPhase","innermost","lw","lh","tickLength","axisMargin","grid","padding","labelMargin","samePosition","reserveSpace","inArray","sameDirection","plotOffset","bottom","box","right","allocateAxisBoxSecondPhase","adjustLayoutForThingsStickingOut","minMargin","minBorderMargin","margins","radius","lineWidth","dir","setupGrid","showGrid","margin","processOffset","borderWidth","setRange","fontDefaults","allocatedAxes","setupTickGeneration","setTicks","snapRangeToTicks","insertLegend","widen","autoscaleMargin","noTicks","sqrt","mode","tickGenerator","maxDec","tickDecimals","dec","floor","log","LN10","start","magn","norm","NaN","minTickSize","tickSize","floorInBase","tickFormatter","factor","formatted","alignTicksWithAxis","otherAxis","niceTicks","extraDec","ts","oticks","draw","clearRect","drawBackground","backgroundColor","aboveData","drawGrid","drawAxisLabels","drawSeries","extractRange","ranges","from","to","translate","fillStyle","getColorOrGradient","fillRect","bw","bc","markings","getAxes","xrange","yrange","beginPath","strokeStyle","markingsColor","markingsLineWidth","moveTo","lineTo","xoff","yoff","tickColor","borderColor","strokeRect","textAlign","textBaseline","tick","opera","fillText","drawSeriesLines","drawSeriesBars","drawSeriesPoints","plotLine","xoffset","yoffset","axisx","axisy","prevx","prevy","x2","y2","lineJoin","sw","shadowSize","angle","PI","sin","cos","getFillStyle","areaOpen","ypos","segmentStart","segmentEnd","x1old","x2old","plotPoints","shadow","arc","closePath","w","drawBar","barLeft","barRight","fillStyleCallback","drawLeft","drawRight","drawTop","drawBottom","filloptions","seriesColor","fillColor","legend","fragments","entries","rowStarted","lf","labelFormatter","sorted","sort","reverse","ascending","entry","noColumns","labelBoxBorderColor","table","backgroundOpacity","findNearbyItem","mouseX","mouseY","seriesFilter","maxDistance","mouseActiveRadius","smallestDistance","mx","my","maxx","maxy","dx","dy","dist","datapoint","dataIndex","seriesIndex","hoverable","triggerClickHoverEvent","eventname","canvasX","pageX","canvasY","pageY","autoHighlight","highlights","h","auto","point","unhighlight","highlight","triggerRedrawOverlay","interaction","redrawOverlayInterval","drawOverlay","octx","hi","drawBarHighlight","drawPointHighlight","indexOfHighlight","splice","highlightColor","pointRadius","spec","defaultColor","gradient","createLinearGradient","co","brightness","opacity","addColorStop","timezone","monthNames","timeformat","twelveHourClock","clickable","canvas","overlay","processOptions","bindEvents","getPlaceholder","getCanvas","getPlotOffset","getData","getXAxes","getYAxes","getOptions","pointOffset","resize","x2axis","y2axis","coloredAreas","coloredAreasColor","reused","existingCanvas","existingOverlay","not","mousemove","reOrderBars","serie","shiftedPoints","serieNeedToBeReordered","checkIfGraphIsHorizontal","calculPixel2XWidthConvert","retrieveBarSeries","calculBorderAndBarWidth","nbOfBarsToOrder","findPosition","decallage","centerBarShift","calculCenterBarShift","decallageByOrder","order","isBarAtLeftOfCenter","sumWidth","orderedBarSeries","borderWidthInXabsWidth","shiftPoints","gridDimSize","isHorizontal","minMaxValues","getAxeMinMaxValues","AxeSize","pixelInXWidthEquivalent","AxeIdx","findOthersBarsToReOrders","retSeries","orderValuesSeen","sortByOrder","serie1","serie2","end","totalWidth","formatDate","fmt","dayNames","strftime","leftPad","pad","escape","hours","getHours","isAM","hours12","getDay","getMonth","getDate","getMinutes","getSeconds","getFullYear","makeUtcWrapper","addProxyMethod","sourceObj","sourceMethod","targetObj","targetMethod","utc","date","dateGenerator","Date","timezoneJS","setTimezone","setTime","axisName","minSize","specQuarters","specMonths","timeUnitSize","unit","year","step","setSeconds","setMinutes","setHours","setMonth","setFullYear","setMilliseconds","minute","hour","day","setDate","month","quarter","carry","getTime","useQuarters","span","hourCode","second","baseSpec","_typeof","Symbol","giveAjaxifyFields","customSettings","$countryField","$parentWrapper","defaultSettings","parentWrapper","countryFieldName","stateFieldName","stateFieldWrapper","chosenState","change","$stateField","$stateFieldWrapper","$stateFieldLabel","country","field_name","show_field","states_label","states_found","default_state","Give_Selector_Cache","collection","refresh_cache","repeatable_fields","custom_settings","initialize","wrapper","row_count","row","filter","row_template","before_add","new_row","after_add","confirm_before_remove_row","confirm_before_remove_row_text","before_remove","after_remove","is_sortable","ui","sortable","sortable_options","handle","move","attributes","row_count_placeholder","default_settings","misc_cleanup","handle_default_radio","toggle_conditional_form_fields","goal_option","goal_format","goal_format_val","goal_option_val","defaultNameTitlePrefixChecked","titlePrefixChecked","handle_repeatable_row_ID","set_row_ids","count_repeatable_rows","row_counter","row_largest_number","row_number","row_id","$payment_gateways","currency_text","give_settings_currency","currency_sign","before_text","give_settings_position","after_text","$parent","$first_setting_field_group","$new_setting_field_group","setting_field_count","fieldID","$prev_field","$icon_container","$loader","set_notification_status","notification_id","animate","method","beforeSend","done","flush_success","message","ok","render","flush_error","give_export_update_donation_form","fields","serialize","form_ids","output_give_donations_fields","standard_fields","standard_field_list","hidden_fields","hidden_field_list","alert","error_message","continue_button_setting_js","$continue_button_title","ajaxSuccess","give_render_responsive_tabs","$setting_page_form","$main_tab_nav","setting_page_form_width","$sub_tab_nav_wrapper","$sub_tab_nav","$setting_tab_links","$show_tabs","$hide_tabs","tab_width","Promise","resolve","reject","$tab_link","then","is_refactor_tabs","search","$current_tab_nav","query_params","get_url_params","is_current_nav_item","unshift","is_show_tabs","hash","vars","hashes","__WEBPACK_IMPORTED_MODULE_0__plugins_modal__","give_setting_edit","give_unformat_currency","dp","currency_decimals","giveAjaxLoader","$loaderParent","give_dismiss_notice","give_remove_give_message","urlparts","urlBase","queryString","encodeURIComponent","pars","history","pushState","enable_admin_datepicker","datepicker","dateFormat","date_format","setup_chosen_give_selects","$give_chosen_containers","chosen_add_title_prefix","chosenText","lasteturn","one_option","one_or_more_option","$no_results_li","error_string","ajax_search_msg","no_results_msg","typingTimer","$search_field","lastKey","search_type","dataType","fail","console","search_placeholder","GiveListDonation","deleteSingleDonation","resendSingleDonationReceipt","confirm_delete_donation","delete_payment","confirm_resend","resend_receipt","Give_Edit_Donation","edit_address","add_note","remove_note","new_donor","variable_price_list","state_wrap","postData","payment_id","note","border_color","that","confirm_deletion","delete_payment_note","note_id","toggle","confirm_action","variable_prices_html_container","prices","$total_amount","Give_Settings","toggle_gateways","setting_change_country","toggle_options","main_setting_update_notice","verify_settings","saveButtonTriggered","changeAlert","detectSettingsChange","sequentialDonationIDPreview","radio","checked_cbs","checked","fieldValueEmail","fieldValueRecaptcha","field_value","$setting_message","slideUp","success_setting","failure_setting","notice_html","matched_success_failure_page","dismiss_notice_text","$notice_container","confirmationMessage","setting_not_save_message","returnValue","settingsPage","on_load_value","on_change_value","$previewField","startingNumber","numberPadding","$donationID","padStart","Give_Reports","date_options","donors_export","recount_stats","customer_export_option","price_options_select","all_prices","export_form","selected_type","submit_button","forms","notice_wrap","reset_stats_warn","delete_test_donor","delete_import_donor","current_forms","min-width","submit","selection","has_errors","batch_export_no_class","batch_export_no_reqs","Give_Export","dismiss_message","submitButton","parent_notices","process_step","reset_form","success_message","percentage","reset","responseText","Give_Updates","$self","main_container","update_link","run_upload_container","progress_main_container","heading","progress_container","update_progress_counter","start_db_update","get_db_updates_info","db_update_confirmation_msg_button","db_update_confirmation_msg","fadeOut","run_db_update","db_update_nonce","always","keys","total_percentage","updates","ajax_error","update","Give_Upgrades","restartUpgrade","stopUpgrade","restartUpdater","restart_upgrade","stop_upgrade","restart_update","handle_status_change","GiveDonor","unlockDonorFields","editDonor","add_email","removeUser","cancelEdit","delete_checked","addressesAction","bulkDeleteDonor","handleBulkActions","unlock_donor_fields_title","unlock_donor_fields_message","fadeIn","disconnect_user","donorID","give_action","customer_id","_wpnonce","redirect","donor_note","add_donor_note_nonce","records_input","button","email","primary","$obj","$addressWrapper","$allAddress","$noAddressMessageWrapper","$allAddressParent","$addressForm","$addressFormCancelBtn","$addressFormCountryField","$addNewAddressBtn","__set_address_form_val","__set_address_form_action","address_html","margin-left","$prevParent","$nextParent","is_address_added","success_msg","error_msg","addressAction","addressID","$addressActionField","$addressIDField","state","$body","selectAll","donorId","donorName","donorHtml","remove_from_bulk_delete","donorSelector","bulkDeleteList","currentAction","donors","selectBulkActionNotice","donors_bulk_action","no_action_selected","confirmActionNotice","no_donor_selected","API_Screen","revoke_api_key","regenerate_api_key","Edit_Form_Screen","default_tab_id","handle_metabox_tab_click","setup_colorpicker_fields","setup_media_fields","setup_repeatable_fields","handle_repeater_group_events","handle_multi_levels_repeater_group_events","activate_tab","update_query","tab_id","$li_parent","$sub_field","has_sub_field","$tab_links","$all_tab_links_li","$all_sub_fields","in_sub_fields","$active_subtab_li","new_query","set","replaceState","$colorpicker_fields","wpColorPicker","give_media_uploader","$give_upload_button","$media_modal_config","metabox_fields","media","button_title","library","file","wp","controller","Library","contentUserSetting","$library","attachment","toJSON","$input_field","fvalue","attachment_id_field_name","$image_container","$image_input_field","handle_metabox_repeater_field_row_count","handle_metabox_repeater_field_row_remove","$rows","$fields","stop","$currentElement","old_class_name_prefix","old_class_name","new_class_name","new_class_name_prefix","$repeater_fields","handle_repeater_group_add_number_suffix","$textarea","tinyMCE","execCommand","textarea_id","switchEditors","go","wysiwyg_editor_container","wysiwyg_editor","textarea","random","wysiwyg_editor_label","wp_editor","wp_editor_id","textarea_name","tinyMCEPreInit","qtInit","mceInit","body_class","tinymce","quicktags","QTags","_buttonsInit","wpActiveEditor","$header_title_container","donation_level_header_text_prefix","$repeatable_rows","$default_radio","max_level_id","current_level","header_text_prefix","GivePaymentHistory","currentActionLabel","$payments","isStatusTypeAction","donations_bulk_action","titles","single","confirm_bulk_action","debug","user_search","exclude","user_name","search_response","login","$poststuff","thousand_separator","thousand_separator_count","alphabet_count","price_string","thousand_separator_limit","tootltip_setting","price_format_guide","default_amount","is_enabled","$setting_fields","give_on_core_settings_import_start","progress","core_settings_import","import_failed","give_import_core_settings_json_is_valid","import_step","give_start_importing_donations","give_on_donation_import_ajax","give_import_donation_csv_not_valid","give_import_donation_valid_csv","total_ajax","current","per_page","give_donation_import","give_import_donation_onload","give_import_donation_required_fields_check","give_import_donation_on_drop_down_change","querySelector","required_fields","first_name","forEach","classList","select_fields","includes","getElementById"],"mappings":"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","file":"js/admin.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jQuery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jQuery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Give\"] = factory(require(\"jQuery\"));\n\telse\n\t\troot[\"Give\"] = factory(root[\"jQuery\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jQuery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jQuery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Give\"] = factory(require(\"jQuery\"));\n\telse\n\t\troot[\"Give\"] = factory(root[\"jQuery\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 25);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"accounting\"] = __webpack_require__(3);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * accounting.js v0.4.1\n * Copyright 2014 Open Exchange Rates\n *\n * Freely distributable under the MIT license.\n * Portions of accounting.js are inspired or borrowed from underscore.js\n *\n * Full details and documentation:\n * http://openexchangerates.github.io/accounting.js/\n */\n\n(function(root, undefined) {\n\n\t/* --- Setup --- */\n\n\t// Create the local library object, to be exported or referenced globally later\n\tvar lib = {};\n\n\t// Current version\n\tlib.version = '0.4.1';\n\n\n\t/* --- Exposed settings --- */\n\n\t// The library's settings configuration object. Contains default parameters for\n\t// currency and number formatting\n\tlib.settings = {\n\t\tcurrency: {\n\t\t\tsymbol : \"$\",\t\t// default currency symbol is '$'\n\t\t\tformat : \"%s%v\",\t// controls output: %s = symbol, %v = value (can be object, see docs)\n\t\t\tdecimal : \".\",\t\t// decimal point separator\n\t\t\tthousand : \",\",\t\t// thousands separator\n\t\t\tprecision : 2,\t\t// decimal places\n\t\t\tgrouping : 3\t\t// digit grouping (not implemented yet)\n\t\t},\n\t\tnumber: {\n\t\t\tprecision : 0,\t\t// default precision on numbers is 0\n\t\t\tgrouping : 3,\t\t// digit grouping (not implemented yet)\n\t\t\tthousand : \",\",\n\t\t\tdecimal : \".\"\n\t\t}\n\t};\n\n\n\t/* --- Internal Helper Methods --- */\n\n\t// Store reference to possibly-available ECMAScript 5 methods for later\n\tvar nativeMap = Array.prototype.map,\n\t\tnativeIsArray = Array.isArray,\n\t\ttoString = Object.prototype.toString;\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js\n\t */\n\tfunction isString(obj) {\n\t\treturn !!(obj === '' || (obj && obj.charCodeAt && obj.substr));\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js, delegates to ECMA5's native Array.isArray\n\t */\n\tfunction isArray(obj) {\n\t\treturn nativeIsArray ? nativeIsArray(obj) : toString.call(obj) === '[object Array]';\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a true object\n\t */\n\tfunction isObject(obj) {\n\t\treturn obj && toString.call(obj) === '[object Object]';\n\t}\n\n\t/**\n\t * Extends an object with a defaults object, similar to underscore's _.defaults\n\t *\n\t * Used for abstracting parameter handling from API methods\n\t */\n\tfunction defaults(object, defs) {\n\t\tvar key;\n\t\tobject = object || {};\n\t\tdefs = defs || {};\n\t\t// Iterate over object non-prototype properties:\n\t\tfor (key in defs) {\n\t\t\tif (defs.hasOwnProperty(key)) {\n\t\t\t\t// Replace values with defaults only if undefined (allow empty/zero values):\n\t\t\t\tif (object[key] == null) object[key] = defs[key];\n\t\t\t}\n\t\t}\n\t\treturn object;\n\t}\n\n\t/**\n\t * Implementation of `Array.map()` for iteration loops\n\t *\n\t * Returns a new Array as a result of calling `iterator` on each array value.\n\t * Defers to native Array.map if available\n\t */\n\tfunction map(obj, iterator, context) {\n\t\tvar results = [], i, j;\n\n\t\tif (!obj) return results;\n\n\t\t// Use native .map method if it exists:\n\t\tif (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);\n\n\t\t// Fallback for native .map:\n\t\tfor (i = 0, j = obj.length; i < j; i++ ) {\n\t\t\tresults[i] = iterator.call(context, obj[i], i, obj);\n\t\t}\n\t\treturn results;\n\t}\n\n\t/**\n\t * Check and normalise the value of precision (must be positive integer)\n\t */\n\tfunction checkPrecision(val, base) {\n\t\tval = Math.round(Math.abs(val));\n\t\treturn isNaN(val)? base : val;\n\t}\n\n\n\t/**\n\t * Parses a format string or object and returns format obj for use in rendering\n\t *\n\t * `format` is either a string with the default (positive) format, or object\n\t * containing `pos` (required), `neg` and `zero` values (or a function returning\n\t * either a string or object)\n\t *\n\t * Either string or format.pos must contain \"%v\" (value) to be valid\n\t */\n\tfunction checkCurrencyFormat(format) {\n\t\tvar defaults = lib.settings.currency.format;\n\n\t\t// Allow function as format parameter (should return string or object):\n\t\tif ( typeof format === \"function\" ) format = format();\n\n\t\t// Format can be a string, in which case `value` (\"%v\") must be present:\n\t\tif ( isString( format ) && format.match(\"%v\") ) {\n\n\t\t\t// Create and return positive, negative and zero formats:\n\t\t\treturn {\n\t\t\t\tpos : format,\n\t\t\t\tneg : format.replace(\"-\", \"\").replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : format\n\t\t\t};\n\n\t\t// If no format, or object is missing valid positive value, use defaults:\n\t\t} else if ( !format || !format.pos || !format.pos.match(\"%v\") ) {\n\n\t\t\t// If defaults is a string, casts it to an object for faster checking next time:\n\t\t\treturn ( !isString( defaults ) ) ? defaults : lib.settings.currency.format = {\n\t\t\t\tpos : defaults,\n\t\t\t\tneg : defaults.replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : defaults\n\t\t\t};\n\n\t\t}\n\t\t// Otherwise, assume format was fine:\n\t\treturn format;\n\t}\n\n\n\t/* --- API Methods --- */\n\n\t/**\n\t * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value\n\t * Alias: `accounting.parse(string)`\n\t *\n\t * Decimal must be included in the regular expression to match floats (defaults to\n\t * accounting.settings.number.decimal), so if the number uses a non-standard decimal \n\t * separator, provide it as the second argument.\n\t *\n\t * Also matches bracketed negatives (eg. \"$ (1.99)\" => -1.99)\n\t *\n\t * Doesn't throw any errors (`NaN`s become 0) but this may change in future\n\t */\n\tvar unformat = lib.unformat = lib.parse = function(value, decimal) {\n\t\t// Recursively unformat arrays:\n\t\tif (isArray(value)) {\n\t\t\treturn map(value, function(val) {\n\t\t\t\treturn unformat(val, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Fails silently (need decent errors):\n\t\tvalue = value || 0;\n\n\t\t// Return the value as-is if it's already a number:\n\t\tif (typeof value === \"number\") return value;\n\n\t\t// Default decimal point comes from settings, but could be set to eg. \",\" in opts:\n\t\tdecimal = decimal || lib.settings.number.decimal;\n\n\t\t // Build regex to strip out everything except digits, decimal point and minus sign:\n\t\tvar regex = new RegExp(\"[^0-9-\" + decimal + \"]\", [\"g\"]),\n\t\t\tunformatted = parseFloat(\n\t\t\t\t(\"\" + value)\n\t\t\t\t.replace(/\\((.*)\\)/, \"-$1\") // replace bracketed values with negatives\n\t\t\t\t.replace(regex, '') // strip out any cruft\n\t\t\t\t.replace(decimal, '.') // make sure decimal point is standard\n\t\t\t);\n\n\t\t// This will fail silently which may cause trouble, let's wait and see:\n\t\treturn !isNaN(unformatted) ? unformatted : 0;\n\t};\n\n\n\t/**\n\t * Implementation of toFixed() that treats floats more like decimals\n\t *\n\t * Fixes binary rounding issues (eg. (0.615).toFixed(2) === \"0.61\") that present\n\t * problems for accounting- and finance-related software.\n\t */\n\tvar toFixed = lib.toFixed = function(value, precision) {\n\t\tprecision = checkPrecision(precision, lib.settings.number.precision);\n\t\tvar power = Math.pow(10, precision);\n\n\t\t// Multiply up by precision, round accurately, then divide and use native toFixed():\n\t\treturn (Math.round(lib.unformat(value) * power) / power).toFixed(precision);\n\t};\n\n\n\t/**\n\t * Format a number, with comma-separated thousands and custom precision/decimal places\n\t * Alias: `accounting.format()`\n\t *\n\t * Localise by overriding the precision and thousand / decimal separators\n\t * 2nd parameter `precision` can be an object matching `settings.number`\n\t */\n\tvar formatNumber = lib.formatNumber = lib.format = function(number, precision, thousand, decimal) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val) {\n\t\t\t\treturn formatNumber(val, precision, thousand, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(precision) ? precision : {\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal\n\t\t\t\t}),\n\t\t\t\tlib.settings.number\n\t\t\t),\n\n\t\t\t// Clean up precision\n\t\t\tusePrecision = checkPrecision(opts.precision),\n\n\t\t\t// Do some calc:\n\t\t\tnegative = number < 0 ? \"-\" : \"\",\n\t\t\tbase = parseInt(toFixed(Math.abs(number || 0), usePrecision), 10) + \"\",\n\t\t\tmod = base.length > 3 ? base.length % 3 : 0;\n\n\t\t// Format the number:\n\t\treturn negative + (mod ? base.substr(0, mod) + opts.thousand : \"\") + base.substr(mod).replace(/(\\d{3})(?=\\d)/g, \"$1\" + opts.thousand) + (usePrecision ? opts.decimal + toFixed(Math.abs(number), usePrecision).split('.')[1] : \"\");\n\t};\n\n\n\t/**\n\t * Format a number into currency\n\t *\n\t * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format)\n\t * defaults: (0, \"$\", 2, \",\", \".\", \"%s%v\")\n\t *\n\t * Localise by overriding the symbol, precision, thousand / decimal separators and format\n\t * Second param can be an object matching `settings.currency` which is the easiest way.\n\t *\n\t * To do: tidy up the parameters\n\t */\n\tvar formatMoney = lib.formatMoney = function(number, symbol, precision, thousand, decimal, format) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val){\n\t\t\t\treturn formatMoney(val, symbol, precision, thousand, decimal, format);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero):\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Choose which format to use for this value:\n\t\t\tuseFormat = number > 0 ? formats.pos : number < 0 ? formats.neg : formats.zero;\n\n\t\t// Return with currency symbol added:\n\t\treturn useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(number), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\t};\n\n\n\t/**\n\t * Format a list of numbers into an accounting column, padding with whitespace\n\t * to line up currency symbols, thousand separators and decimals places\n\t *\n\t * List should be an array of numbers\n\t * Second parameter can be an object containing keys that match the params\n\t *\n\t * Returns array of accouting-formatted number strings of same length\n\t *\n\t * NB: `white-space:pre` CSS rule is required on the list container to prevent\n\t * browsers from collapsing the whitespace in the output strings.\n\t */\n\tlib.formatColumn = function(list, symbol, precision, thousand, decimal, format) {\n\t\tif (!list) return [];\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero), only need pos for now:\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Whether to pad at start of string or after currency symbol:\n\t\t\tpadAfterSymbol = formats.pos.indexOf(\"%s\") < formats.pos.indexOf(\"%v\") ? true : false,\n\n\t\t\t// Store value for the length of the longest string in the column:\n\t\t\tmaxLength = 0,\n\n\t\t\t// Format the list according to options, store the length of the longest string:\n\t\t\tformatted = map(list, function(val, i) {\n\t\t\t\tif (isArray(val)) {\n\t\t\t\t\t// Recursively format columns if list is a multi-dimensional array:\n\t\t\t\t\treturn lib.formatColumn(val, opts);\n\t\t\t\t} else {\n\t\t\t\t\t// Clean up the value\n\t\t\t\t\tval = unformat(val);\n\n\t\t\t\t\t// Choose which format to use for this value (pos, neg or zero):\n\t\t\t\t\tvar useFormat = val > 0 ? formats.pos : val < 0 ? formats.neg : formats.zero,\n\n\t\t\t\t\t\t// Format this value, push into formatted list and save the length:\n\t\t\t\t\t\tfVal = useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(val), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\n\t\t\t\t\tif (fVal.length > maxLength) maxLength = fVal.length;\n\t\t\t\t\treturn fVal;\n\t\t\t\t}\n\t\t\t});\n\n\t\t// Pad each number in the list and send back the column of numbers:\n\t\treturn map(formatted, function(val, i) {\n\t\t\t// Only if this is a string (not a nested array, which would have already been padded):\n\t\t\tif (isString(val) && val.length < maxLength) {\n\t\t\t\t// Depending on symbol position, pad after symbol or at index 0:\n\t\t\t\treturn padAfterSymbol ? val.replace(opts.symbol, opts.symbol+(new Array(maxLength - val.length + 1).join(\" \"))) : (new Array(maxLength - val.length + 1).join(\" \")) + val;\n\t\t\t}\n\t\t\treturn val;\n\t\t});\n\t};\n\n\n\t/* --- Module Definition --- */\n\n\t// Export accounting for CommonJS. If being loaded as an AMD module, define it as such.\n\t// Otherwise, just add `accounting` to the global object\n\tif (true) {\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\texports = module.exports = lib;\n\t\t}\n\t\texports.accounting = lib;\n\t} else if (typeof define === 'function' && define.amd) {\n\t\t// Return the library as an AMD module:\n\t\tdefine([], function() {\n\t\t\treturn lib;\n\t\t});\n\t} else {\n\t\t// Use accounting.noConflict to restore `accounting` back to its original value.\n\t\t// Returns a reference to the library's `accounting` object;\n\t\t// e.g. `var numbers = accounting.noConflict();`\n\t\tlib.noConflict = (function(oldAccounting) {\n\t\t\treturn function() {\n\t\t\t\t// Reset the value of the root's `accounting` variable:\n\t\t\t\troot.accounting = oldAccounting;\n\t\t\t\t// Delete the noConflict method:\n\t\t\t\tlib.noConflict = undefined;\n\t\t\t\t// Return reference to the library to re-assign it:\n\t\t\t\treturn lib;\n\t\t\t};\n\t\t})(root.accounting);\n\n\t\t// Declare `fx` on the root (global/window) object:\n\t\troot['accounting'] = lib;\n\t}\n\n\t// Root will be `window` in browser or `global` on the server:\n}(this));\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (true) { \n // AMD. Register as an anonymous module. \n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n\tBEFORE_CLOSE_EVENT = 'BeforeClose',\n\tAFTER_CLOSE_EVENT = 'AfterClose',\n\tBEFORE_APPEND_EVENT = 'BeforeAppend',\n\tMARKUP_PARSE_EVENT = 'MarkupParse',\n\tOPEN_EVENT = 'Open',\n\tCHANGE_EVENT = 'Change',\n\tNS = 'mfp',\n\tEVENT_NS = '.' + NS,\n\tREADY_CLASS = 'mfp-ready',\n\tREMOVING_CLASS = 'mfp-removing',\n\tPREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n\tMagnificPopup = function(){},\n\t_isJQ = !!(window.jQuery),\n\t_prevStatus,\n\t_window = $(window),\n\t_document,\n\t_prevContentType,\n\t_wrapClasses,\n\t_currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n\t\tmfp.ev.on(NS + name + EVENT_NS, f);\n\t},\n\t_getEl = function(className, appendTo, html, raw) {\n\t\tvar el = document.createElement('div');\n\t\tel.className = 'mfp-'+className;\n\t\tif(html) {\n\t\t\tel.innerHTML = html;\n\t\t}\n\t\tif(!raw) {\n\t\t\tel = $(el);\n\t\t\tif(appendTo) {\n\t\t\t\tel.appendTo(appendTo);\n\t\t\t}\n\t\t} else if(appendTo) {\n\t\t\tappendTo.appendChild(el);\n\t\t}\n\t\treturn el;\n\t},\n\t_mfpTrigger = function(e, data) {\n\t\tmfp.ev.triggerHandler(NS + e, data);\n\n\t\tif(mfp.st.callbacks) {\n\t\t\t// converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n\t\t\te = e.charAt(0).toLowerCase() + e.slice(1);\n\t\t\tif(mfp.st.callbacks[e]) {\n\t\t\t\tmfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n\t\t\t}\n\t\t}\n\t},\n\t_getCloseBtn = function(type) {\n\t\tif(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n\t\t\tmfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n\t\t\t_currPopupType = type;\n\t\t}\n\t\treturn mfp.currTemplate.closeBtn;\n\t},\n\t// Initialize Magnific Popup only when called at least once\n\t_checkInstance = function() {\n\t\tif(!$.magnificPopup.instance) {\n\t\t\t/*jshint -W020 */\n\t\t\tmfp = new MagnificPopup();\n\t\t\tmfp.init();\n\t\t\t$.magnificPopup.instance = mfp;\n\t\t}\n\t},\n\t// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n\tsupportsTransitions = function() {\n\t\tvar s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n\t\t\tv = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n\t\tif( s['transition'] !== undefined ) {\n\t\t\treturn true; \n\t\t}\n\t\t\t\n\t\twhile( v.length ) {\n\t\t\tif( v.pop() + 'Transition' in s ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn false;\n\t};\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n\tconstructor: MagnificPopup,\n\n\t/**\n\t * Initializes Magnific Popup plugin. \n\t * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n\t */\n\tinit: function() {\n\t\tvar appVersion = navigator.appVersion;\n\t\tmfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n\t\tmfp.isAndroid = (/android/gi).test(appVersion);\n\t\tmfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n\t\tmfp.supportsTransition = supportsTransitions();\n\n\t\t// We disable fixed positioned lightbox on devices that don't handle it nicely.\n\t\t// If you know a better way of detecting this - let me know.\n\t\tmfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n\t\t_document = $(document);\n\n\t\tmfp.popupsCache = {};\n\t},\n\n\t/**\n\t * Opens popup\n\t * @param data [description]\n\t */\n\topen: function(data) {\n\n\t\tvar i;\n\n\t\tif(data.isObj === false) { \n\t\t\t// convert jQuery collection to array to avoid conflicts later\n\t\t\tmfp.items = data.items.toArray();\n\n\t\t\tmfp.index = 0;\n\t\t\tvar items = data.items,\n\t\t\t\titem;\n\t\t\tfor(i = 0; i < items.length; i++) {\n\t\t\t\titem = items[i];\n\t\t\t\tif(item.parsed) {\n\t\t\t\t\titem = item.el[0];\n\t\t\t\t}\n\t\t\t\tif(item === data.el[0]) {\n\t\t\t\t\tmfp.index = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.items = $.isArray(data.items) ? data.items : [data.items];\n\t\t\tmfp.index = data.index || 0;\n\t\t}\n\n\t\t// if popup is already opened - we just update the content\n\t\tif(mfp.isOpen) {\n\t\t\tmfp.updateItemHTML();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tmfp.types = []; \n\t\t_wrapClasses = '';\n\t\tif(data.mainEl && data.mainEl.length) {\n\t\t\tmfp.ev = data.mainEl.eq(0);\n\t\t} else {\n\t\t\tmfp.ev = _document;\n\t\t}\n\n\t\tif(data.key) {\n\t\t\tif(!mfp.popupsCache[data.key]) {\n\t\t\t\tmfp.popupsCache[data.key] = {};\n\t\t\t}\n\t\t\tmfp.currTemplate = mfp.popupsCache[data.key];\n\t\t} else {\n\t\t\tmfp.currTemplate = {};\n\t\t}\n\n\n\n\t\tmfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n\t\tmfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n\t\tif(mfp.st.modal) {\n\t\t\tmfp.st.closeOnContentClick = false;\n\t\t\tmfp.st.closeOnBgClick = false;\n\t\t\tmfp.st.showCloseBtn = false;\n\t\t\tmfp.st.enableEscapeKey = false;\n\t\t}\n\t\t\n\n\t\t// Building markup\n\t\t// main containers are created only once\n\t\tif(!mfp.bgOverlay) {\n\n\t\t\t// Dark overlay\n\t\t\tmfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\n\t\t\t\tmfp.close();\n\t\t\t});\n\n\t\t\tmfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n\t\t\t\tif(mfp._checkIfClose(e.target)) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmfp.container = _getEl('container', mfp.wrap);\n\t\t}\n\n\t\tmfp.contentContainer = _getEl('content');\n\t\tif(mfp.st.preloader) {\n\t\t\tmfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n\t\t}\n\n\n\t\t// Initializing modules\n\t\tvar modules = $.magnificPopup.modules;\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar n = modules[i];\n\t\t\tn = n.charAt(0).toUpperCase() + n.slice(1);\n\t\t\tmfp['init'+n].call(mfp);\n\t\t}\n\t\t_mfpTrigger('BeforeOpen');\n\n\n\t\tif(mfp.st.showCloseBtn) {\n\t\t\t// Close button\n\t\t\tif(!mfp.st.closeBtnInside) {\n\t\t\t\tmfp.wrap.append( _getCloseBtn() );\n\t\t\t} else {\n\t\t\t\t_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n\t\t\t\t\tvalues.close_replaceWith = _getCloseBtn(item.type);\n\t\t\t\t});\n\t\t\t\t_wrapClasses += ' mfp-close-btn-in';\n\t\t\t}\n\t\t}\n\n\t\tif(mfp.st.alignTop) {\n\t\t\t_wrapClasses += ' mfp-align-top';\n\t\t}\n\n\t\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css({\n\t\t\t\toverflow: mfp.st.overflowY,\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\toverflowY: mfp.st.overflowY\n\t\t\t});\n\t\t} else {\n\t\t\tmfp.wrap.css({ \n\t\t\t\ttop: _window.scrollTop(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\t\tif( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n\t\t\tmfp.bgOverlay.css({\n\t\t\t\theight: _document.height(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\n\t\t\n\n\t\tif(mfp.st.enableEscapeKey) {\n\t\t\t// Close on ESC key\n\t\t\t_document.on('keyup' + EVENT_NS, function(e) {\n\t\t\t\tif(e.keyCode === 27) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_window.on('resize' + EVENT_NS, function() {\n\t\t\tmfp.updateSize();\n\t\t});\n\n\n\t\tif(!mfp.st.closeOnContentClick) {\n\t\t\t_wrapClasses += ' mfp-auto-cursor';\n\t\t}\n\t\t\n\t\tif(_wrapClasses)\n\t\t\tmfp.wrap.addClass(_wrapClasses);\n\n\n\t\t// this triggers recalculation of layout, so we get it once to not to trigger twice\n\t\tvar windowHeight = mfp.wH = _window.height();\n\n\t\t\n\t\tvar windowStyles = {};\n\n\t\tif( mfp.fixedContentPos ) {\n if(mfp._hasScrollBar(windowHeight)){\n var s = mfp._getScrollbarSize();\n if(s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tif(!mfp.isIE7) {\n\t\t\t\twindowStyles.overflow = 'hidden';\n\t\t\t} else {\n\t\t\t\t// ie7 double-scroll bug\n\t\t\t\t$('body, html').css('overflow', 'hidden');\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t\tvar classesToadd = mfp.st.mainClass;\n\t\tif(mfp.isIE7) {\n\t\t\tclassesToadd += ' mfp-ie7';\n\t\t}\n\t\tif(classesToadd) {\n\t\t\tmfp._addClassToMFP( classesToadd );\n\t\t}\n\n\t\t// add content\n\t\tmfp.updateItemHTML();\n\n\t\t_mfpTrigger('BuildControls');\n\n\t\t// remove scrollbar, add margin e.t.c\n\t\t$('html').css(windowStyles);\n\t\t\n\t\t// add everything to DOM\n\t\tmfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n\t\t// Save last focused element\n\t\tmfp._lastFocusedEl = document.activeElement;\n\t\t\n\t\t// Wait for next cycle to allow CSS transition\n\t\tsetTimeout(function() {\n\t\t\t\n\t\t\tif(mfp.content) {\n\t\t\t\tmfp._addClassToMFP(READY_CLASS);\n\t\t\t\tmfp._setFocus();\n\t\t\t} else {\n\t\t\t\t// if content is not defined (not loaded e.t.c) we add class only for BG\n\t\t\t\tmfp.bgOverlay.addClass(READY_CLASS);\n\t\t\t}\n\t\t\t\n\t\t\t// Trap the focus in popup\n\t\t\t_document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n\t\t}, 16);\n\n\t\tmfp.isOpen = true;\n\t\tmfp.updateSize(windowHeight);\n\t\t_mfpTrigger(OPEN_EVENT);\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Closes the popup\n\t */\n\tclose: function() {\n\t\tif(!mfp.isOpen) return;\n\t\t_mfpTrigger(BEFORE_CLOSE_EVENT);\n\n\t\tmfp.isOpen = false;\n\t\t// for CSS3 animation\n\t\tif(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\n\t\t\tmfp._addClassToMFP(REMOVING_CLASS);\n\t\t\tsetTimeout(function() {\n\t\t\t\tmfp._close();\n\t\t\t}, mfp.st.removalDelay);\n\t\t} else {\n\t\t\tmfp._close();\n\t\t}\n\t},\n\n\t/**\n\t * Helper for close() function\n\t */\n\t_close: function() {\n\t\t_mfpTrigger(CLOSE_EVENT);\n\n\t\tvar classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n\t\tmfp.bgOverlay.detach();\n\t\tmfp.wrap.detach();\n\t\tmfp.container.empty();\n\n\t\tif(mfp.st.mainClass) {\n\t\t\tclassesToRemove += mfp.st.mainClass + ' ';\n\t\t}\n\n\t\tmfp._removeClassFromMFP(classesToRemove);\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tvar windowStyles = {marginRight: ''};\n\t\t\tif(mfp.isIE7) {\n\t\t\t\t$('body, html').css('overflow', '');\n\t\t\t} else {\n\t\t\t\twindowStyles.overflow = '';\n\t\t\t}\n\t\t\t$('html').css(windowStyles);\n\t\t}\n\t\t\n\t\t_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n\t\tmfp.ev.off(EVENT_NS);\n\n\t\t// clean up DOM elements that aren't removed\n\t\tmfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n\t\tmfp.bgOverlay.attr('class', 'mfp-bg');\n\t\tmfp.container.attr('class', 'mfp-container');\n\n\t\t// remove close button from target element\n\t\tif(mfp.st.showCloseBtn &&\n\t\t(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n\t\t\tif(mfp.currTemplate.closeBtn)\n\t\t\t\tmfp.currTemplate.closeBtn.detach();\n\t\t}\n\n\n\t\tif(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n\t\t\t$(mfp._lastFocusedEl).focus(); // put tab focus back\n\t\t}\n\t\tmfp.currItem = null;\t\n\t\tmfp.content = null;\n\t\tmfp.currTemplate = null;\n\t\tmfp.prevHeight = 0;\n\n\t\t_mfpTrigger(AFTER_CLOSE_EVENT);\n\t},\n\t\n\tupdateSize: function(winHeight) {\n\n\t\tif(mfp.isIOS) {\n\t\t\t// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n\t\t\tvar zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n\t\t\tvar height = window.innerHeight * zoomLevel;\n\t\t\tmfp.wrap.css('height', height);\n\t\t\tmfp.wH = height;\n\t\t} else {\n\t\t\tmfp.wH = winHeight || _window.height();\n\t\t}\n\t\t// Fixes #84: popup incorrectly positioned with position:relative on body\n\t\tif(!mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css('height', mfp.wH);\n\t\t}\n\n\t\t_mfpTrigger('Resize');\n\n\t},\n\n\t/**\n\t * Set content of popup based on current index\n\t */\n\tupdateItemHTML: function() {\n\t\tvar item = mfp.items[mfp.index];\n\n\t\t// Detach and perform modifications\n\t\tmfp.contentContainer.detach();\n\n\t\tif(mfp.content)\n\t\t\tmfp.content.detach();\n\n\t\tif(!item.parsed) {\n\t\t\titem = mfp.parseEl( mfp.index );\n\t\t}\n\n\t\tvar type = item.type;\n\n\t\t_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n\t\t// BeforeChange event works like so:\n\t\t// _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n\t\tmfp.currItem = item;\n\n\t\tif(!mfp.currTemplate[type]) {\n\t\t\tvar markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n\t\t\t// allows to modify markup\n\t\t\t_mfpTrigger('FirstMarkupParse', markup);\n\n\t\t\tif(markup) {\n\t\t\t\tmfp.currTemplate[type] = $(markup);\n\t\t\t} else {\n\t\t\t\t// if there is no markup found we just define that template is parsed\n\t\t\t\tmfp.currTemplate[type] = true;\n\t\t\t}\n\t\t}\n\n\t\tif(_prevContentType && _prevContentType !== item.type) {\n\t\t\tmfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n\t\t}\n\n\t\tvar newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n\t\tmfp.appendContent(newContent, type);\n\n\t\titem.preloaded = true;\n\n\t\t_mfpTrigger(CHANGE_EVENT, item);\n\t\t_prevContentType = item.type;\n\n\t\t// Append container back after its content changed\n\t\tmfp.container.prepend(mfp.contentContainer);\n\n\t\t_mfpTrigger('AfterChange');\n\t},\n\n\n\t/**\n\t * Set HTML content of popup\n\t */\n\tappendContent: function(newContent, type) {\n\t\tmfp.content = newContent;\n\n\t\tif(newContent) {\n\t\t\tif(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n\t\t\t\tmfp.currTemplate[type] === true) {\n\t\t\t\t// if there is no markup, we just append close button element inside\n\t\t\t\tif(!mfp.content.find('.mfp-close').length) {\n\t\t\t\t\tmfp.content.append(_getCloseBtn());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmfp.content = newContent;\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.content = '';\n\t\t}\n\n\t\t_mfpTrigger(BEFORE_APPEND_EVENT);\n\t\tmfp.container.addClass('mfp-'+type+'-holder');\n\n\t\tmfp.contentContainer.append(mfp.content);\n\t},\n\n\n\t/**\n\t * Creates Magnific Popup data object based on given data\n\t * @param {int} index Index of item to parse\n\t */\n\tparseEl: function(index) {\n\t\tvar item = mfp.items[index],\n\t\t\ttype;\n\n\t\tif(item.tagName) {\n\t\t\titem = { el: $(item) };\n\t\t} else {\n\t\t\ttype = item.type;\n\t\t\titem = { data: item, src: item.src };\n\t\t}\n\n\t\tif(item.el) {\n\t\t\tvar types = mfp.types;\n\n\t\t\t// check for 'mfp-TYPE' class\n\t\t\tfor(var i = 0; i < types.length; i++) {\n\t\t\t\tif( item.el.hasClass('mfp-'+types[i]) ) {\n\t\t\t\t\ttype = types[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem.src = item.el.attr('data-mfp-src');\n\t\t\tif(!item.src) {\n\t\t\t\titem.src = item.el.attr('href');\n\t\t\t}\n\t\t}\n\n\t\titem.type = type || mfp.st.type || 'inline';\n\t\titem.index = index;\n\t\titem.parsed = true;\n\t\tmfp.items[index] = item;\n\t\t_mfpTrigger('ElementParse', item);\n\n\t\treturn mfp.items[index];\n\t},\n\n\n\t/**\n\t * Initializes single popup or a group of popups\n\t */\n\taddGroup: function(el, options) {\n\t\tvar eHandler = function(e) {\n\t\t\te.mfpEl = this;\n\t\t\tmfp._openClick(e, el, options);\n\t\t};\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tvar eName = 'click.magnificPopup';\n\t\toptions.mainEl = el;\n\n\t\tif(options.items) {\n\t\t\toptions.isObj = true;\n\t\t\tel.off(eName).on(eName, eHandler);\n\t\t} else {\n\t\t\toptions.isObj = false;\n\t\t\tif(options.delegate) {\n\t\t\t\tel.off(eName).on(eName, options.delegate , eHandler);\n\t\t\t} else {\n\t\t\t\toptions.items = el;\n\t\t\t\tel.off(eName).on(eName, eHandler);\n\t\t\t}\n\t\t}\n\t},\n\t_openClick: function(e, el, options) {\n\t\tvar midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n\t\tif(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n\t\tif(disableOn) {\n\t\t\tif($.isFunction(disableOn)) {\n\t\t\t\tif( !disableOn.call(mfp) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else { // else it's number\n\t\t\t\tif( _window.width() < disableOn ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(e.type) {\n\t\t\te.preventDefault();\n\n\t\t\t// This will prevent popup from closing if element is inside and popup is already opened\n\t\t\tif(mfp.isOpen) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\toptions.el = $(e.mfpEl);\n\t\tif(options.delegate) {\n\t\t\toptions.items = el.find(options.delegate);\n\t\t}\n\t\tmfp.open(options);\n\t},\n\n\n\t/**\n\t * Updates text on preloader\n\t */\n\tupdateStatus: function(status, text) {\n\n\t\tif(mfp.preloader) {\n\t\t\tif(_prevStatus !== status) {\n\t\t\t\tmfp.container.removeClass('mfp-s-'+_prevStatus);\n\t\t\t}\n\n\t\t\tif(!text && status === 'loading') {\n\t\t\t\ttext = mfp.st.tLoading;\n\t\t\t}\n\n\t\t\tvar data = {\n\t\t\t\tstatus: status,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t\t// allows to modify status\n\t\t\t_mfpTrigger('UpdateStatus', data);\n\n\t\t\tstatus = data.status;\n\t\t\ttext = data.text;\n\n\t\t\tmfp.preloader.html(text);\n\n\t\t\tmfp.preloader.find('a').on('click', function(e) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t});\n\n\t\t\tmfp.container.addClass('mfp-s-'+status);\n\t\t\t_prevStatus = status;\n\t\t}\n\t},\n\n\n\t/*\n\t\t\"Private\" helpers that aren't private at all\n\t */\n\t// Check to close popup or not\n\t// \"target\" is an element that was clicked\n\t_checkIfClose: function(target) {\n\n\t\tif($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar closeOnContent = mfp.st.closeOnContentClick;\n\t\tvar closeOnBg = mfp.st.closeOnBgClick;\n\n\t\tif(closeOnContent && closeOnBg) {\n\t\t\treturn true;\n\t\t} else {\n\n\t\t\t// We close the popup if click is on close button or on preloader. Or if there is no content.\n\t\t\tif(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if click is outside the content\n\t\t\tif( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\n\t\t\t\tif(closeOnBg) {\n\t\t\t\t\t// last check, if the clicked element is in DOM, (in case it's removed onclick)\n\t\t\t\t\tif( $.contains(document, target) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(closeOnContent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t}\n\t\treturn false;\n\t},\n\t_addClassToMFP: function(cName) {\n\t\tmfp.bgOverlay.addClass(cName);\n\t\tmfp.wrap.addClass(cName);\n\t},\n\t_removeClassFromMFP: function(cName) {\n\t\tthis.bgOverlay.removeClass(cName);\n\t\tmfp.wrap.removeClass(cName);\n\t},\n\t_hasScrollBar: function(winHeight) {\n\t\treturn ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n\t},\n\t_setFocus: function() {\n\t\t(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n\t},\n\t_onFocusIn: function(e) {\n\t\tif( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n\t\t\tmfp._setFocus();\n\t\t\treturn false;\n\t\t}\n\t},\n\t_parseMarkup: function(template, values, item) {\n\t\tvar arr;\n\t\tif(item.data) {\n\t\t\tvalues = $.extend(item.data, values);\n\t\t}\n\t\t_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n\t\t$.each(values, function(key, value) {\n\t\t\tif(value === undefined || value === false) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tarr = key.split('_');\n\t\t\tif(arr.length > 1) {\n\t\t\t\tvar el = template.find(EVENT_NS + '-'+arr[0]);\n\n\t\t\t\tif(el.length > 0) {\n\t\t\t\t\tvar attr = arr[1];\n\t\t\t\t\tif(attr === 'replaceWith') {\n\t\t\t\t\t\tif(el[0] !== value[0]) {\n\t\t\t\t\t\t\tel.replaceWith(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(attr === 'img') {\n\t\t\t\t\t\tif(el.is('img')) {\n\t\t\t\t\t\t\tel.attr('src', value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.attr(arr[1], value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\ttemplate.find(EVENT_NS + '-'+key).html(value);\n\t\t\t}\n\t\t});\n\t},\n\n\t_getScrollbarSize: function() {\n\t\t// thx David\n\t\tif(mfp.scrollbarSize === undefined) {\n\t\t\tvar scrollDiv = document.createElement(\"div\");\n\t\t\tscrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n\t\t\tdocument.body.appendChild(scrollDiv);\n\t\t\tmfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\t\t\tdocument.body.removeChild(scrollDiv);\n\t\t}\n\t\treturn mfp.scrollbarSize;\n\t}\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n\tinstance: null,\n\tproto: MagnificPopup.prototype,\n\tmodules: [],\n\n\topen: function(options, index) {\n\t\t_checkInstance();\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\n\t\toptions.isObj = true;\n\t\toptions.index = index || 0;\n\t\treturn this.instance.open(options);\n\t},\n\n\tclose: function() {\n\t\treturn $.magnificPopup.instance && $.magnificPopup.instance.close();\n\t},\n\n\tregisterModule: function(name, module) {\n\t\tif(module.options) {\n\t\t\t$.magnificPopup.defaults[name] = module.options;\n\t\t}\n\t\t$.extend(this.proto, module.proto);\n\t\tthis.modules.push(name);\n\t},\n\n\tdefaults: {\n\n\t\t// Info about options is in docs:\n\t\t// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n\t\tdisableOn: 0,\n\n\t\tkey: null,\n\n\t\tmidClick: false,\n\n\t\tmainClass: '',\n\n\t\tpreloader: true,\n\n\t\tfocus: '', // CSS selector of input to focus after popup is opened\n\n\t\tcloseOnContentClick: false,\n\n\t\tcloseOnBgClick: true,\n\n\t\tcloseBtnInside: true,\n\n\t\tshowCloseBtn: true,\n\n\t\tenableEscapeKey: true,\n\n\t\tmodal: false,\n\n\t\talignTop: false,\n\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\n\t\tfixedContentPos: 'auto',\n\n\t\tfixedBgPos: 'auto',\n\n\t\toverflowY: 'auto',\n\n\t\tcloseMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\">&#215;</button>',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('<div>');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: '<a href=\"%url%\">The content</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-figure\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<figure>'+\n\t\t\t\t\t\t'<div class=\"mfp-img\"></div>'+\n\t\t\t\t\t\t'<figcaption>'+\n\t\t\t\t\t\t\t'<div class=\"mfp-bottom-bar\">'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-title\"></div>'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-counter\"></div>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</figcaption>'+\n\t\t\t\t\t'</figure>'+\n\t\t\t\t'</div>',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: '<a href=\"%url%\">The image</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-iframe-scaler\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe>'+\n\t\t\t\t'</div>',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('<img class=\"mfp-img\" />').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\njQuery.fn.giveHintCss = function (action, settings) {\n\treturn this.each(function () {\n\t\tvar $this = jQuery(this);\n\t\tsettings = jQuery.extend({\n\t\t\tlabel: ''\n\t\t}, settings);\n\n\t\tvar $tooltip = $this.next('span.give-hint-tooltip-js');\n\t\tif (!$tooltip.length) {\n\t\t\tvar label = !settings.label.length ? $this.data('hint-aria-label') : settings.label;\n\n\t\t\t// bailout.\n\t\t\tif (!label.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$this.after('<span class=\"give-hint-tooltip-js hint--top hint--medium\" aria-label=\"' + label + '\"></span>');\n\t\t\t$tooltip = $this.next();\n\n\t\t\t$tooltip.css({\n\t\t\t\ttop: -$this.outerHeight(),\n\t\t\t\tleft: -($this.outerWidth() / 2)\n\t\t\t});\n\t\t}\n\n\t\tif (action === 'show') {\n\t\t\t$tooltip.addClass('hint--always');\n\t\t} else if (action === 'hide') {\n\t\t\t$tooltip.removeClass('hint--always');\n\t\t}\n\t});\n};\n\n// Qtip2 backward compatibility.\njQuery(document).ready(function ($) {\n\tvar qtip_tooltips = $('[data-tooltip]');\n\n\t// Add hintcss tooltip to existing qtip.\n\tif (qtip_tooltips.length) {\n\t\tqtip_tooltips.each(function (index, tooltip) {\n\t\t\ttooltip = tooltip instanceof jQuery ? tooltip : $(tooltip);\n\t\t\treset_qtip(tooltip);\n\t\t});\n\t}\n\n\t// Add hintcss tooltip to dynamically created qtip.\n\t$('body').on('hover', '[data-tooltip]', function () {\n\t\treset_qtip($(this));\n\t});\n\n\t/**\n * Reset qtip to hintcss\n * @param tooltip\n */\n\tfunction reset_qtip(tooltip) {\n\t\tif (!tooltip.is('[class*=\"hint\"]')) {\n\t\t\tvar classes = tooltip.attr('class'),\n\t\t\t icon_classes = [],\n\t\t\t label_length = tooltip.data('tooltip').split(' ').length;\n\n\t\t\tif (classes) {\n\t\t\t\tclasses = classes.split(' ');\n\t\t\t\ticon_classes = $.grep(classes, function (item) {\n\t\t\t\t\treturn -1 !== item.indexOf('give-icon');\n\t\t\t\t});\n\n\t\t\t\tif (icon_classes.length) {\n\t\t\t\t\t// Set icon classes string.\n\t\t\t\t\ticon_classes = icon_classes.join(' ');\n\n\t\t\t\t\t// Remove icon class.\n\t\t\t\t\ttooltip.removeClass(icon_classes);\n\n\t\t\t\t\t// Add icon.\n\t\t\t\t\ttooltip.append('<i class=\"' + icon_classes + '\"></i>');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add hint.css related classes.\n\t\t\ttooltip.addClass('hint--top');\n\n\t\t\tif (15 < label_length) {\n\t\t\t\ttooltip.addClass('hint--large');\n\t\t\t} else if (7 < label_length) {\n\t\t\t\ttooltip.addClass('hint--medium');\n\t\t\t}\n\n\t\t\ttooltip.attr('aria-label', tooltip.data('tooltip'));\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__notice__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__form__ = __webpack_require__(8);\n\n\n\n/**\n * This API is under development.\n *\n * Currently used only for internal purpose.\n */\nvar Give = {\n\tinit: function init() {\n\t\tvar subHelperObjs = ['form'],\n\t\t counter = 0;\n\t\tjQuery(document).trigger('give:preInit');\n\n\t\t// Initialize all init methods of sub helper objects.\n\t\twhile (counter < subHelperObjs.length) {\n\t\t\tif (!!Give[subHelperObjs[counter]].init) {\n\t\t\t\tGive[subHelperObjs[counter]].init();\n\t\t\t}\n\t\t\tcounter++;\n\t\t}\n\n\t\tjQuery(document).trigger('give:postInit');\n\t},\n\n\tfn: {\n\t\t/**\n * Format Currency\n *\n * Formats the currency with accounting.js\n *\n * @param {string} price\n * @param {object} args\n * @param {object} $form\n * @returns {*|string}\n */\n\t\tformatCurrency: function formatCurrency(price, args, $form) {\n\t\t\t// Global currency setting.\n\t\t\tvar format_args = {\n\t\t\t\tsymbol: '',\n\t\t\t\tdecimal: give_global_vars.decimal_separator,\n\t\t\t\tthousand: give_global_vars.thousands_separator,\n\t\t\t\tprecision: parseInt(give_global_vars.number_decimals),\n\t\t\t\tcurrency: give_global_vars.currency\n\t\t\t};\n\n\t\t\tprice = price.toString().trim();\n\t\t\t$form = 'undefined' === typeof $form ? {} : $form;\n\n\t\t\t// Form specific currency setting.\n\t\t\tif ($form.length) {\n\t\t\t\t//Set the custom amount input value format properly\n\t\t\t\tformat_args = {\n\t\t\t\t\tsymbol: '',\n\t\t\t\t\tdecimal: Give.form.fn.getInfo('decimal_separator', $form),\n\t\t\t\t\tthousand: Give.form.fn.getInfo('thousands_separator', $form),\n\t\t\t\t\tprecision: Give.form.fn.getInfo('number_decimals', $form),\n\t\t\t\t\tcurrency: Give.form.fn.getInfo('currency_code', $form)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\targs = jQuery.extend(format_args, args);\n\n\t\t\t// Make sure precision is integer type\n\t\t\targs.precision = parseInt(args.precision);\n\n\t\t\tif ('INR' === args.currency) {\n\t\t\t\tvar actual_price = accounting.unformat(price, '.').toString();\n\n\t\t\t\tvar decimal_amount = '',\n\t\t\t\t result = void 0,\n\t\t\t\t amount = void 0,\n\t\t\t\t decimal_index = actual_price.indexOf('.');\n\n\t\t\t\tif (-1 !== decimal_index && args.precision) {\n\t\t\t\t\tdecimal_amount = Number(actual_price.substr(parseInt(decimal_index))).toFixed(args.precision).toString().substr(1);\n\t\t\t\t\tactual_price = actual_price.substr(0, parseInt(decimal_index));\n\n\t\t\t\t\tif (!decimal_amount.length) {\n\t\t\t\t\t\tdecimal_amount = '.0000000000'.substr(0, parseInt(decimal_index) + 1);\n\t\t\t\t\t} else if (args.precision + 1 > decimal_amount.length) {\n\t\t\t\t\t\tdecimal_amount = (decimal_amount + '000000000').substr(0, args.precision + 1);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdecimal_amount = '.000000000'.substr(0, args.precision + 1);\n\t\t\t\t}\n\n\t\t\t\t// Extract last 3 from amount\n\t\t\t\tresult = actual_price.substr(-3);\n\t\t\t\tamount = actual_price.substr(0, parseInt(actual_price.length) - 3);\n\n\t\t\t\t// Apply digits 2 by 2\n\t\t\t\twhile (amount.length > 0) {\n\t\t\t\t\tresult = amount.substr(-2) + args.thousand + result;\n\t\t\t\t\tamount = amount.substr(0, parseInt(amount.length) - 2);\n\t\t\t\t}\n\n\t\t\t\tif (decimal_amount.length) {\n\t\t\t\t\tresult = result + decimal_amount;\n\t\t\t\t}\n\n\t\t\t\tprice = result;\n\n\t\t\t\tif (undefined !== args.symbol && args.symbol.length) {\n\t\t\t\t\tif ('after' === args.position) {\n\t\t\t\t\t\tprice = price + args.symbol;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprice = args.symbol + price;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Properly position symbol after if selected\n\t\t\t\tif ('after' === args.position) {\n\t\t\t\t\targs.format = '%v%s';\n\t\t\t\t}\n\n\t\t\t\tprice = accounting.formatMoney(price, args);\n\t\t\t}\n\n\t\t\treturn price;\n\t\t},\n\n\t\t/**\n * Unformat Currency\n *\n * @param price\n * @param {string} decimal_separator\n * @returns {number}\n */\n\t\tunFormatCurrency: function unFormatCurrency(price, decimal_separator) {\n\t\t\tif ('string' === typeof price) {\n\t\t\t\tvar regex = ',' === decimal_separator.trim() ? /[^0-9\\,-]+/g : /[^0-9\\.-]+/g;\n\n\t\t\t\tprice = price.replace(regex, '');\n\n\t\t\t\tif (0 === price.indexOf(decimal_separator)) {\n\t\t\t\t\tprice = price.substr(1);\n\t\t\t\t} else if (price.length - 1 === price.indexOf(decimal_separator)) {\n\t\t\t\t\tprice = price.slice(0, -1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Math.abs(parseFloat(accounting.unformat(price, decimal_separator)));\n\t\t},\n\n\t\t/**\n * Get Parameter by Name\n *\n * @see: http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\n * @param name\n * @param url\n * @since 1.4.2\n * @returns {*}\n */\n\t\tgetParameterByName: function getParameterByName(name, url) {\n\t\t\tif (!url) {\n\t\t\t\turl = window.location.href;\n\t\t\t}\n\n\t\t\tname = name.replace(/[\\[\\]]/g, '\\\\$&');\n\n\t\t\tvar regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\n\t\t\t results = regex.exec(url);\n\n\t\t\tif (!results) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!results[2]) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn decodeURIComponent(results[2].replace(/\\+/g, ' '));\n\t\t},\n\n\t\t/**\n * Get information from global var\n *\n * @since 1.8.17\n * @param {string} str\n *\n * @return {string}\n */\n\t\tgetGlobalVar: function getGlobalVar(str) {\n\t\t\tif ('undefined' === typeof give_global_vars[str]) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn give_global_vars[str];\n\t\t},\n\n\t\t/**\n * set cache\n *\n * @since 1.8.17\n *\n * @param {string} key\n * @param {string} value\n * @param {object} $form\n */\n\t\tsetCache: function setCache(key, value, $form) {\n\t\t\tif ($form.length) {\n\t\t\t\tGive.cache['form_' + Give.form.fn.getInfo('form-id', $form)][key] = value;\n\t\t\t} else {\n\t\t\t\tGive.cache[key] = value;\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Get cache\n *\n * @since 1.8.17\n * @param key\n * @param $form\n * @return {string|*}\n */\n\t\tgetCache: function getCache(key, $form) {\n\t\t\tvar cache = void 0,\n\t\t\t formObj = Give.cache['form_' + Give.form.fn.getInfo('form-id', $form)];\n\n\t\t\tif ($form.length) {\n\t\t\t\tcache = 'undefined' !== typeof formObj ? formObj[key] : '';\n\t\t\t} else {\n\t\t\t\tcache = Give.cache[key];\n\t\t\t}\n\n\t\t\tcache = 'undefined' === typeof cache ? '' : cache;\n\n\t\t\treturn cache;\n\t\t},\n\n\t\t/**\n * Get cookie\n * Note: only for internal use\n *\n * @since 2.2.20\n * @private\n *\n * @param {string} name Cookie name\n * @return {string}\n */\n\t\t__getCookie: function __getCookie(name) {\n\t\t\tvar value = '; ' + document.cookie,\n\t\t\t parts = value.split('; ' + name + '=');\n\n\t\t\tvar cookie = '';\n\n\t\t\tif (2 === parts.length) {\n\t\t\t\tcookie = parts.pop().split(';').shift();\n\t\t\t}\n\n\t\t\treturn cookie;\n\t\t}\n\t},\n\n\t/**\n * This object key will be use to cache predicted data or donor activity.\n *\n * @since 1.8.17\n */\n\tcache: {}\n};\n\nGive.notice = __WEBPACK_IMPORTED_MODULE_0__notice__[\"a\" /* default */];\nGive.form = __WEBPACK_IMPORTED_MODULE_1__form__[\"a\" /* default */];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Give);\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tfn: {\n\t\t/**\n * Render notice\n * @since 1.8.17\n *\n * @param {string} notice_code\n * @param {object} $container\n *\n * @return {string}\n */\n\t\trenderNotice: function renderNotice(notice_code, $container) {\n\t\t\tvar notice_html = '',\n\t\t\t $notice = void 0;\n\t\t\t$container = 'undefined' !== typeof $container ? $container : {};\n\n\t\t\tswitch (notice_code) {\n\t\t\t\tcase 'bad_minimum':\n\t\t\t\t\t$notice = jQuery('<div class=\"give_error give-invalid-minimum give-hidden\">' + this.getNotice(notice_code, $container) + '</div>');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'bad_maximum':\n\t\t\t\t\t$notice = jQuery('<div class=\"give_error give-invalid-maximum give-hidden\">' + this.getNotice(notice_code, $container) + '</div>');\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Return html if container did not find.\n\t\t\tif (!$container.length) {\n\t\t\t\treturn notice_html;\n\t\t\t}\n\n\t\t\t$notice.insertBefore($container.find('.give-total-wrap')).show();\n\t\t},\n\n\t\t/**\n * Get error notice\n *\n * @since 1.8.17\n * @param {string} error_code\n * @param {object} $form\n *\n * @return {*}\n */\n\t\tgetNotice: function getNotice(error_code, $form) {\n\t\t\t// Bailout.\n\t\t\tif (!error_code.length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar notice, notice_msg, formatted_amount;\n\t\t\tnotice = notice_msg = formatted_amount = '';\n\n\t\t\tif ($form.length) {\n\t\t\t\tswitch (error_code) {\n\t\t\t\t\tcase 'bad_minimum':\n\t\t\t\t\t\tnotice_msg = Give.fn.getGlobalVar(error_code);\n\t\t\t\t\t\tformatted_amount = Give.form.fn.getMinimumAmount($form);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bad_maximum':\n\t\t\t\t\t\tnotice_msg = Give.fn.getGlobalVar(error_code);\n\t\t\t\t\t\tformatted_amount = Give.form.fn.getMaximumAmount($form);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($form.length && '' !== notice_msg) {\n\t\t\t\tnotice = notice_msg + ' ' + Give.fn.formatCurrency(formatted_amount, {\n\t\t\t\t\tsymbol: Give.form.fn.getInfo('currency_symbol', $form),\n\t\t\t\t\tposition: Give.form.fn.getInfo('currency_position', $form)\n\t\t\t\t}, $form);\n\t\t\t}\n\n\t\t\treturn notice;\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tinit: function init() {\n\t\tthis.fn.field.formatCreditCard(jQuery('form.give-form'));\n\t\tthis.fn.__initialize_cache();\n\n\t\twindow.onload = function () {\n\t\t\tGive.form.fn.__sendBackToForm();\n\t\t};\n\t},\n\n\tfn: {\n\n\t\t/**\n * Disable donation form.\n *\n * @param {object} $form\n * @param {boolean} is_disable\n *\n * @return {*}\n */\n\t\tdisable: function disable($form, is_disable) {\n\t\t\tif (!$form.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$form.find('.give-submit').prop('disabled', is_disable);\n\t\t},\n\n\t\t/**\n * Get formatted amount\n *\n * @param {string/number} amount\n * @param {object} $form\n * @param {object} args\n */\n\t\tformatAmount: function formatAmount(amount, $form, args) {\n\t\t\t// Do not format amount if form did not exist.\n\t\t\tif (!$form.length) {\n\t\t\t\treturn amount;\n\t\t\t}\n\n\t\t\treturn Give.fn.formatCurrency(amount, args, $form);\n\t\t},\n\n\t\t/**\n * Get form information\n *\n * @since 1.8.17\n * @param {string} str\n * @param {object} $form\n *\n * @return {string}\n */\n\t\tgetInfo: function getInfo(str, $form) {\n\t\t\tvar data = '';\n\t\t\t$form = 'undefined' !== typeof $form ? $form : {};\n\n\t\t\t// Bailout.\n\t\t\tif (!str.length || !$form.length) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tswitch (str) {\n\t\t\t\tcase 'gateways':\n\t\t\t\t\tdata = [];\n\t\t\t\t\tjQuery.each($form.find('input[name=\"payment-mode\"]'), function (index, gateway) {\n\t\t\t\t\t\tgateway = !(gateway instanceof jQuery) ? jQuery(gateway) : gateway;\n\t\t\t\t\t\tdata.push(gateway.val().trim());\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'form-type':\n\t\t\t\t\tif ($form.hasClass('give-form-type-set')) {\n\t\t\t\t\t\tdata = 'set';\n\t\t\t\t\t} else if ($form.hasClass('give-form-type-multi')) {\n\t\t\t\t\t\tdata = 'multi';\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'form-id':\n\t\t\t\t\tdata = $form.find('input[name=\"give-form-id\"]').val();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif ($form.get(0).hasAttribute('data-' + str)) {\n\t\t\t\t\t\tdata = $form.attr('data-' + str);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata = $form.attr(str);\n\t\t\t\t\t}\n\n\t\t\t\t\t'undefined' !== typeof data ? data.trim() : data;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\n\t\t/**\n * Set form information\n *\n * @since 1.8.17\n * @param {string} str\n * @param {string} val\n * @param {object} $form\n * @param {string} type\n *\n * @return {string|boolean}\n */\n\t\tsetInfo: function setInfo(type, val, $form, str) {\n\t\t\t// Bailout.\n\t\t\tif (!$form.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\ttype = 'undefined' === typeof type ? 'data' : type;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'nonce':\n\t\t\t\t\t$form.find('input[name=\"give-form-hash\"]').val(val);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Bailout.\n\t\t\tif ('undefined' !== typeof str && !str.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'attr':\n\t\t\t\t\t$form.attr(str, val);\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\t$form.data(str, val);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\t/**\n * Get formatted amount\n *\n * @since 1.8.17\n * @param {object} $form\n */\n\t\tgetGateway: function getGateway($form) {\n\t\t\tvar gateway = '';\n\n\t\t\tif (!$form.length) {\n\t\t\t\treturn gateway;\n\t\t\t}\n\n\t\t\tgateway = $form.find('input[name=\"payment-mode\"]:checked').val().trim();\n\n\t\t\treturn 'undefined' !== typeof gateway ? gateway : '';\n\t\t},\n\n\t\t/**\n * Get Price ID and levels for multi donation form\n *\n * @param {Object} $form Form jQuery object\n *\n * @returns {Object}\n */\n\t\tgetVariablePrices: function getVariablePrices($form) {\n\t\t\tvar variable_prices = [],\n\t\t\t formLevels;\n\n\t\t\t// check if correct form type is multi or not.\n\t\t\tif (!$form.length || !$form.hasClass('give-form-type-multi') || !(formLevels = $form.find('.give-donation-levels-wrap [data-price-id] '))) {\n\t\t\t\treturn variable_prices;\n\t\t\t}\n\n\t\t\tjQuery.each(formLevels, function (index, item) {\n\t\t\t\t// Get Jquery instance for item.\n\t\t\t\titem = !(item instanceof jQuery) ? jQuery(item) : item;\n\n\t\t\t\tvar decimal_separator = Give.form.fn.getInfo('decimal_separator', $form);\n\n\t\t\t\t// Add price id and amount to collector.\n\t\t\t\tvariable_prices.push({\n\t\t\t\t\tprice_id: item.data('price-id'),\n\t\t\t\t\tamount: Give.fn.unFormatCurrency(item.val(), decimal_separator)\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn variable_prices;\n\t\t},\n\n\t\t/**\n * Get form price ID\n *\n * @since 1.8.17\n * @param {object} $form\n * @param {boolean} is_amount\n *\n * @return {string}\n */\n\t\tgetPriceID: function getPriceID($form, is_amount) {\n\n\t\t\tvar variable_prices = this.getVariablePrices($form),\n\t\t\t current_amount = Give.fn.unFormatCurrency($form.find('input[name=\"give-amount\"]').val(), this.getInfo('decimal_separator', $form)),\n\n\n\t\t\t/**\n * Flag Multi-levels for min. donation conditional.\n *\n * Note: Value of this variable will be:\n * a. -1 if no any level found.\n * b. [0-*] Any number from zero if donation level found.\n * c custom if donation level not found and donation amount is greater than the custom minimum amount.\n *\n * @type {number/string} Donation level ID.\n */\n\t\t\tprice_id = !!Give.fn.getCache('amount_' + current_amount, $form) ? Give.fn.getCache('amount_' + current_amount, $form) : -1;\n\n\t\t\t// Flag to decide on which param we want to find price_id\n\t\t\tis_amount = 'undefined' === typeof is_amount ? true : is_amount;\n\n\t\t\t// Find price id with amount in variable prices.\n\t\t\tif (variable_prices.length) {\n\n\t\t\t\t// Get recent selected price id for same amount.\n\t\t\t\tif (-1 === price_id) {\n\t\t\t\t\tif (is_amount) {\n\t\t\t\t\t\t// Find amount in donation levels.\n\t\t\t\t\t\tjQuery.each(variable_prices, function (index, variable_price) {\n\t\t\t\t\t\t\tif (variable_price.amount === current_amount) {\n\t\t\t\t\t\t\t\tprice_id = variable_price.price_id;\n\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Set level to custom.\n\t\t\t\t\t\tif (-1 === price_id && this.getMinimumAmount($form) <= current_amount && this.getMaximumAmount($form) >= current_amount && this.getMinimumAmount($form) <= current_amount) {\n\t\t\t\t\t\t\tprice_id = 'custom';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprice_id = jQuery('input[name=\"give-price-id\"]', $form).val();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn price_id;\n\t\t},\n\n\t\t/**\n * Get form minimum amount\n *\n * @since 1.8.17\n * @param {object} $form\n *\n * @return {string}\n */\n\t\tgetMinimumAmount: function getMinimumAmount($form) {\n\t\t\treturn $form.find('input[name=\"give-form-minimum\"]').val();\n\t\t},\n\n\t\t/**\n * Get form maximum amount\n *\n * @since 2.1\n * @param {object} $form\n *\n * @return {string}\n */\n\t\tgetMaximumAmount: function getMaximumAmount($form) {\n\t\t\treturn $form.find('input[name=\"give-form-maximum\"]').val();\n\t\t},\n\n\t\t/**\n * Get form amount\n *\n * @since 1.8.17\n * @param $form\n * @return {*}\n */\n\t\tgetAmount: function getAmount($form) {\n\t\t\t// Bailout\n\t\t\tif (!$form.length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar amount = $form.find('input[name=\"give-amount\"]').val();\n\n\t\t\tif ('undefined' === typeof amount || !amount) {\n\t\t\t\tamount = 0;\n\t\t\t}\n\n\t\t\treturn Give.fn.unFormatCurrency(amount, this.getInfo('decimal_separator', $form));\n\t\t},\n\n\t\t/**\n * Get form security nonce\n *\n * @since 1.8.17\n * @param {object} $form\n * @return {string}\n */\n\t\tgetNonce: function getNonce($form) {\n\t\t\t// Bailout\n\t\t\tif (!$form.length) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tvar nonce = $form.find('input[name=\"give-form-hash\"]').val();\n\n\t\t\tif ('undefined' === typeof nonce || !nonce) {\n\t\t\t\tnonce = '';\n\t\t\t}\n\n\t\t\treturn nonce;\n\t\t},\n\n\t\t/**\n * Reset form nonce.\n *\n * @since 2.0\n *\n * @param {object} $form Donation form object.\n * @returns {boolean}\n */\n\t\tresetNonce: function resetNonce($form) {\n\t\t\t// Return false, if form is missing.\n\t\t\tif (!$form.length || !jQuery('input[name=\"give-form-hash\"]', $form).length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tGive.form.fn.disable($form, true);\n\n\t\t\t//Post via AJAX to Give\n\t\t\tjQuery.post(give_global_vars.ajaxurl, {\n\t\t\t\taction: 'give_donation_form_nonce',\n\t\t\t\tgive_form_id: Give.form.fn.getInfo('form-id', $form)\n\t\t\t}, function (response) {\n\t\t\t\t// Update nonce field.\n\t\t\t\tGive.form.fn.setInfo('nonce', response.data, $form, '');\n\n\t\t\t\tGive.form.fn.disable($form, false);\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Reset form all nonce.\n *\n * @since 2.2.0\n *\n * @param {object} $form Donation form object.\n * @returns {boolean}\n */\n\t\tresetAllNonce: function resetAllNonce($form) {\n\t\t\t// Return false, if form is missing.\n\t\t\tif (!$form.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tGive.form.fn.disable($form, true);\n\n\t\t\t//Post via AJAX to Give\n\t\t\tjQuery.post(give_global_vars.ajaxurl, {\n\t\t\t\taction: 'give_donation_form_reset_all_nonce',\n\t\t\t\tgive_form_id: Give.form.fn.getInfo('form-id', $form)\n\t\t\t}, function (response) {\n\t\t\t\tvar createUserNonceField = $form.find('input[name=\"give-form-user-register-hash\"]');\n\n\t\t\t\t// Update nonce field.\n\t\t\t\tGive.form.fn.setInfo('nonce', response.data.give_form_hash, $form, '');\n\n\t\t\t\t// Update create user nonce field.\n\t\t\t\tif (createUserNonceField.length) {\n\t\t\t\t\tcreateUserNonceField.val(response.data.give_form_user_register_hash);\n\t\t\t\t}\n\n\t\t\t\tGive.form.fn.disable($form, false);\n\n\t\t\t\t/**\n * Fire custom event handler when update all nonce of donation form\n *\n * @since 2.2.0\n * @access access\n */\n\t\t\t\tjQuery(document).trigger('give_reset_all_nonce', [response.data]);\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Auto select donation level\n *\n * @since 1.8.17\n * @param {object} $form\n * @param {string} price_id\n *\n * @return {boolean}\n */\n\t\tautoSelectDonationLevel: function autoSelectDonationLevel($form, price_id) {\n\n\t\t\tif (!$form.length || 'multi' !== this.getInfo('form-type', $form)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tprice_id = 'undefined' === typeof price_id ? this.getPriceID($form, false) : price_id;\n\n\t\t\tswitch (true) {\n\n\t\t\t\t// Auto select radio button.\n\t\t\t\tcase !!$form.find('.give-radio-input').length:\n\t\t\t\t\t$form.find('.give-radio-input').prop('checked', false);\n\t\t\t\t\t$form.find('.give-radio-input[data-price-id=\"' + price_id + '\"]').prop('checked', true).addClass('give-default-level');\n\t\t\t\t\tbreak;\n\n\t\t\t\t// Set focus to price id button.\n\t\t\t\tcase !!$form.find('button.give-donation-level-btn').length:\n\t\t\t\t\t$form.find('button.give-donation-level-btn').blur();\n\t\t\t\t\t$form.find('button.give-donation-level-btn[data-price-id=\"' + price_id + '\"]').focus().addClass('give-default-level');\n\t\t\t\t\tbreak;\n\n\t\t\t\t// Auto select option.\n\t\t\t\tcase !!$form.find('select.give-select-level').length:\n\t\t\t\t\t$form.find('select.give-select-level option').prop('selected', false);\n\t\t\t\t\t$form.find('select.give-select-level option[data-price-id=\"' + price_id + '\"]').prop('selected', true).addClass('give-default-level');\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Update level values\n *\n * Helper function: Sets the multi-select amount values\n *\n * @since 1.8.17\n * @param {object} $level\n * @returns {boolean}\n */\n\t\tautoSetMultiLevel: function autoSetMultiLevel($level) {\n\n\t\t\tvar $form = $level.parents('form'),\n\t\t\t level_amount = $level.val(),\n\t\t\t level_price_id = $level.data('price-id');\n\n\t\t\t// Check if price ID blank because of dropdown type\n\t\t\tif ('undefined' === typeof level_price_id) {\n\t\t\t\tlevel_price_id = $level.find('option:selected').data('price-id');\n\t\t\t}\n\n\t\t\t// Is this a custom amount selection?\n\t\t\tif ('custom' === level_price_id) {\n\t\t\t\t// It is, so focus on the custom amount input.\n\t\t\t\t$form.find('.give-amount-top').val('').focus();\n\t\t\t\treturn false; // Bounce out\n\t\t\t}\n\n\t\t\t// Update custom amount field\n\t\t\t$form.find('.give-amount-top').val(level_amount);\n\t\t\t$form.find('span.give-amount-top').text(level_amount);\n\n\t\t\tvar decimal_separator = Give.form.fn.getInfo('decimal_separator', $form);\n\n\t\t\t// Cache previous amount and set data amount.\n\t\t\tjQuery('.give-donation-amount .give-text-input', $form).attr('data-amount', Give.fn.unFormatCurrency($form.find('.give-final-total-amount').attr('data-total'), decimal_separator));\n\n\t\t\t// Manually trigger blur event with two params:\n\t\t\t// (a) form jquery object\n\t\t\t// (b) price id\n\t\t\t// (c) donation amount\n\t\t\t$form.find('.give-donation-amount .give-text-input').trigger('blur', [$form, level_amount, level_price_id]);\n\t\t},\n\n\t\t/**\n * Donor sent back to the form\n *\n * @since 1.8.17\n * @access private\n */\n\t\t__sendBackToForm: function __sendBackToForm() {\n\n\t\t\tvar form_id = Give.fn.getParameterByName('form-id'),\n\t\t\t payment_mode = Give.fn.getParameterByName('payment-mode');\n\n\t\t\t// Sanity check - only proceed if query strings in place.\n\t\t\tif (!form_id || !payment_mode) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar $form_wrapper = jQuery('body').find('#give-form-' + form_id + '-wrap'),\n\t\t\t $form = $form_wrapper.find('form.give-form'),\n\t\t\t display_modal = $form_wrapper.hasClass('give-display-modal'),\n\t\t\t display_button = $form_wrapper.hasClass('give-display-button'),\n\t\t\t display_reveal = $form_wrapper.hasClass('give-display-reveal');\n\n\t\t\t// Update payment mode radio so it's correctly checked.\n\t\t\t$form.find('#give-gateway-radio-list label').removeClass('give-gateway-option-selected');\n\t\t\t$form.find('input[name=payment-mode][value=' + payment_mode + ']').prop('checked', true).parent().addClass('give-gateway-option-selected');\n\n\t\t\t// Select the proper level for Multi-level forms.\n\t\t\t// It can either be a dropdown, buttons, or radio list. Default is buttons field type.\n\t\t\tvar level_id = Give.fn.getParameterByName('level-id'),\n\t\t\t level_field = $form.find('*[data-price-id=\"' + level_id + '\"]');\n\n\t\t\tif (level_field.length > 0) {\n\t\t\t\tthis.autoSetMultiLevel(level_field);\n\t\t\t}\n\n\t\t\tvar give_form_wrap = jQuery('.give-form-wrap'),\n\t\t\t is_form_grid = give_form_wrap.hasClass('give-form-grid-wrap');\n\n\t\t\tif (is_form_grid && 1 === jQuery('#give-modal-form-' + form_id).length) {\n\t\t\t\tjQuery.magnificPopup.open({\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: 'inline',\n\t\t\t\t\t\tsrc: '#give-modal-form-' + form_id\n\t\t\t\t\t},\n\t\t\t\t\tfixedContentPos: true,\n\t\t\t\t\tfixedBgPos: true,\n\t\t\t\t\tcloseBtnInside: true,\n\t\t\t\t\tmidClick: true,\n\t\t\t\t\tremovalDelay: 300,\n\t\t\t\t\tmainClass: 'modal-fade-slide'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This form is modal display so show the modal.\n\t\t\tif (display_modal || display_button) {\n\t\t\t\tgive_open_form_modal($form_wrapper, $form);\n\t\t\t} else if (display_reveal) {\n\t\t\t\t// This is a reveal form, show it.\n\t\t\t\t$form.find('.give-btn-reveal').hide();\n\t\t\t\t$form.find('#give-payment-mode-select, #give_purchase_form_wrap').slideDown();\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Check if donation amount valid or not\n * @since 1.8.17\n *\n * @param {object} $form\n *\n * @return {boolean}\n */\n\t\tisValidDonationAmount: function isValidDonationAmount($form) {\n\n\t\t\t// Return true, if custom amount is not enabled.\n\t\t\tif ($form.find('input[name=\"give-form-minimum\"]').length <= 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar min_amount = this.getMinimumAmount($form),\n\t\t\t max_amount = this.getMaximumAmount($form),\n\t\t\t amount = this.getAmount($form),\n\t\t\t price_id = this.getPriceID($form, true);\n\n\t\t\t// Don't allow zero donation amounts.\n\t\t\t// https://github.com/WordImpress/Give/issues/3181\n\t\t\tif (0 === amount) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn -1 < amount && amount >= min_amount && amount <= max_amount || -1 !== price_id;\n\t\t},\n\n\t\t/**\n * Initialize cache.\n *\n * @since 1.8.17\n * @private\n */\n\t\t__initialize_cache: function __initialize_cache() {\n\t\t\tjQuery.each(jQuery('.give-form'), function (index, $item) {\n\t\t\t\t$item = $item instanceof jQuery ? $item : jQuery($item);\n\n\t\t\t\tGive.cache['form_' + Give.form.fn.getInfo('form-id', $item)] = [];\n\t\t\t});\n\t\t},\n\n\t\tfield: {\n\n\t\t\t/**\n * Format CC Fields\n *\n * Set variables and format cc fields.\n *\n * @since 1.2\n *\n * @param {object} $forms\n */\n\t\t\tformatCreditCard: function formatCreditCard($forms) {\n\t\t\t\t//Loop through forms on page and set CC validation\n\t\t\t\t$forms.each(function (index, form) {\n\t\t\t\t\tform = jQuery(form);\n\t\t\t\t\tvar card_number = form.find('.card-number'),\n\t\t\t\t\t card_cvc = form.find('.card-cvc'),\n\t\t\t\t\t card_expiry = form.find('.card-expiry');\n\n\t\t\t\t\t//Only validate if there is a card field\n\t\t\t\t\tif (card_number.length) {\n\t\t\t\t\t\tcard_number.payment('formatCardNumber');\n\t\t\t\t\t\tcard_cvc.payment('formatCardCVC');\n\t\t\t\t\t\tcard_expiry.payment('formatCardExpiry');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n(function (globalSope) {\n 'use strict';\n\n /**\n * Including this file adds the `addDynamicListener` to the ELement prototype.\n * \n * The dynamic listener gets an extra `selector` parameter that only calls the callback\n * if the target element matches the selector.\n * \n * The listener has to be added to the container/root element and the selector should match\n * the elements that should trigger the event.\n * \n * Browser support: IE9+\n */\n\n // Polyfil Element.matches\n // https://developer.mozilla.org/en/docs/Web/API/Element/matches#Polyfill\n\n if (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n /**\n * Returns a modified callback function that calls the\n * initial callback function only if the target element matches the given selector\n * \n * @param {string} selector \n * @param {function} callback \n */\n function getConditionalCallback(selector, callback) {\n return function (e) {\n if (!e.target) return;\n if (!e.target.matches(selector)) return;\n callback.apply(this, arguments);\n };\n }\n\n /**\n * \n * \n * @param {Element} rootElement The root element to add the linster too.\n * @param {string} eventType The event type to listen for.\n * @param {string} selector The selector that should match the dynamic elements.\n * @param {function} callback The function to call when an event occurs on the given selector.\n * @param {boolean|object} options Passed as the regular `options` parameter to the addEventListener function\n * Set to `true` to use capture.\n * Usually used as an object to add the listener as `passive`\n */\n globalSope.addDynamicEventListener = function (rootElement, eventType, selector, callback, options) {\n rootElement.addEventListener(eventType, getConditionalCallback(selector, callback), options);\n };\n})(window);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveModal\", function() { return GiveModal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveErrorAlert\", function() { return GiveErrorAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveWarningAlert\", function() { return GiveWarningAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveNoticeAlert\", function() { return GiveNoticeAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveSuccessAlert\", function() { return GiveSuccessAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveConfirmModal\", function() { return GiveConfirmModal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GiveFormModal\", function() { return GiveFormModal; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_magnific_popup__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_magnific_popup___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_magnific_popup__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dynamicListener_js__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dynamicListener_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__dynamicListener_js__);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * This API is under development, so do not use this in production.\n * We will open this API for use after some testing (coming releases).\n */\n/* globals give_vars, jQuery */\n\n\n\n/**\n * This abstract class is base for modal\n *\n * @since 2.1.0\n */\n\nvar GiveModal = function () {\n\tfunction GiveModal(obj) {\n\t\t_classCallCheck(this, GiveModal);\n\n\t\tif (GiveModal === this.constructor) {\n\t\t\tthrow new Error('Abstract classes can\\'t be instantiated.');\n\t\t}\n\n\t\tthis.config = Object.assign({\n\t\t\ttype: '',\n\t\t\ttriggerSelector: '',\n\t\t\texternalPlugin: 'magnificPopup',\n\t\t\tclasses: { modalWrapper: '' },\n\t\t\tmodalContent: {}\n\t\t}, obj);\n\n\t\t// Set main class.\n\t\tthis.config.mainClass = ((this.config.mainClass ? this.config.mainClass : '') + ' modal-fade-slide').trim();\n\t}\n\n\t/**\n * Bootstrap\n */\n\n\n\t_createClass(GiveModal, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis.setupTemplate();\n\t\t\tthis.popupConfig();\n\t\t\tthis.__setupClickEvent();\n\t\t}\n\n\t\t/**\n * Get template\n *\n * @since 2.1.0\n *\n * @return {string} Template HTML.\n */\n\n\t}, {\n\t\tkey: 'getTemplate',\n\t\tvalue: function getTemplate() {\n\t\t\tvar template = '<div class=\"give-hidden\"></div>';\n\n\t\t\tif (this.config.type.length) {\n\t\t\t\ttemplate = '<div class=\"give-modal give-modal--zoom ' + (this.config.classes.modalWrapper ? ('' + this.config.classes.modalWrapper).trim() : '') + '\">\\n\\n\\t\\t\\t\\t<div class=\"give-modal__body\">\\n\\t\\t\\t\\t\\t' + (this.config.modalContent.title ? '<h2 class=\"give-modal__title\">' + this.config.modalContent.title + '</h2>' : '') + '\\n\\t\\t\\t\\t\\t' + (this.config.modalContent.desc ? '<p class=\"give-modal__description\">' + this.config.modalContent.desc + '</p>' : '') + '\\n\\t\\t\\t\\t</div>\\n\\t\\n\\t\\t\\t\\t<div class=\"give-modal__controls\">\\n\\n\\t\\t\\t\\t\\t' + ('form' === this.config.type ? '<div class=\"spinner\"></div>' : '') + '\\n\\t\\t\\t\\t\\t' + ('form' === this.config.type ? '<a class=\"give-modal--additional-link\" href=\"' + this.config.modalContent.link + '\">' + this.config.modalContent.link_text + '</a>' : '') + '\\n\\n\\t\\t\\t\\t\\t<button class=\"give-button give-button--secondary give-popup-close-button\">\\n\\t\\t\\t\\t\\t\\t' + (this.config.modalContent.cancelBtnTitle ? this.config.modalContent.cancelBtnTitle : 'confirm' === this.config.type ? give_vars.cancel : give_vars.close) + '\\n\\t\\t\\t\\t\\t</button>\\n\\n\\t\\t\\t\\t\\t' + ('confirm' !== this.config.type && 'form' !== this.config.type ? '' : '<button class=\"give-button give-button--primary give-popup-' + this.config.type + '-button\">\\n\\n\\t\\t\\t\\t\\t\\t' + (this.config.modalContent.confirmBtnTitle ? this.config.modalContent.confirmBtnTitle : give_vars.confirm) + '\\n\\t\\t\\t\\t\\t</button>') + '\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\n\\t\\t\\t</div>';\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\n\t\t/**\n * Setup template\n *\n * @since 2.1.0\n */\n\n\t}, {\n\t\tkey: 'setupTemplate',\n\t\tvalue: function setupTemplate() {\n\t\t\tthis.config.template = this.getTemplate();\n\t\t}\n\n\t\t/**\n * Handle click event if triggerSelector is set.\n *\n * @since 2.1.0\n * @private\n */\n\n\t}, {\n\t\tkey: '__setupClickEvent',\n\t\tvalue: function __setupClickEvent() {\n\t\t\t// Bailout.\n\t\t\tif (!this.config.triggerSelector.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tjQuery(this.config.triggerSelector).magnificPopup(this.config);\n\t\t}\n\n\t\t/**\n * Setup popup params\n *\n * Note: only for internal purpose\n *\n * @since 2.1.0\n * @private\n */\n\n\t}, {\n\t\tkey: 'popupConfig',\n\t\tvalue: function popupConfig() {\n\t\t\tif ('magnificPopup' === this.config.externalPlugin) {\n\t\t\t\tthis.config.items = this.config.items || {\n\t\t\t\t\tsrc: this.config.template,\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t};\n\n\t\t\t\tthis.config.removalDelay = 300;\n\t\t\t\tthis.config.fixedContentPos = true;\n\t\t\t\tthis.config.fixedBgPos = true;\n\t\t\t\tthis.config.alignTop = true;\n\t\t\t\tthis.config.showCloseBtn = false;\n\t\t\t\tthis.config.closeOnBgClick = false;\n\t\t\t\tthis.config.enableEscapeKey = true;\n\t\t\t\tthis.config.focus = '.give-popup-close-button';\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Click close button event handler\n *\n * @since 2.1.0\n * @private\n *\n * @param {object} event Event object.\n */\n\n\t}, {\n\t\tkey: 'render',\n\n\n\t\t/**\n * Give's Notice Popup\n *\n * @since 2.1.0\n *\n * @return {object} GiveModal class object.\n */\n\t\tvalue: function render() {\n\t\t\tswitch (this.config.externalPlugin) {\n\t\t\t\tcase 'magnificPopup':\n\t\t\t\t\tif (!this.config.triggerSelector) {\n\t\t\t\t\t\tjQuery.magnificPopup.open(this.config);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t}], [{\n\t\tkey: '__closePopup',\n\t\tvalue: function __closePopup(event) {\n\t\t\tevent.preventDefault();\n\t\t\tjQuery.magnificPopup.instance.close();\n\t\t}\n\t}]);\n\n\treturn GiveModal;\n}();\n\n/**\n * This class will handle error alert modal\n *\n * @since 2.1.0\n */\n\n\nvar GiveErrorAlert = function (_GiveModal) {\n\t_inherits(GiveErrorAlert, _GiveModal);\n\n\tfunction GiveErrorAlert(obj) {\n\t\t_classCallCheck(this, GiveErrorAlert);\n\n\t\tobj.type = 'alert';\n\n\t\tvar _this = _possibleConstructorReturn(this, (GiveErrorAlert.__proto__ || Object.getPrototypeOf(GiveErrorAlert)).call(this, obj));\n\n\t\t_this.config.classes.modalWrapper = 'give-modal--error';\n\n\t\t_this.init();\n\t\treturn _this;\n\t}\n\n\treturn GiveErrorAlert;\n}(GiveModal);\n\n/**\n * This class will handle warning alert modal\n *\n * @since 2.1.0\n */\n\n\nvar GiveWarningAlert = function (_GiveModal2) {\n\t_inherits(GiveWarningAlert, _GiveModal2);\n\n\tfunction GiveWarningAlert(obj) {\n\t\t_classCallCheck(this, GiveWarningAlert);\n\n\t\tobj.type = 'alert';\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (GiveWarningAlert.__proto__ || Object.getPrototypeOf(GiveWarningAlert)).call(this, obj));\n\n\t\t_this2.config.classes.modalWrapper = 'give-modal--warning';\n\n\t\t_this2.init();\n\t\treturn _this2;\n\t}\n\n\treturn GiveWarningAlert;\n}(GiveModal);\n\n/**\n * This class will handle notice alert modal\n *\n * @since 2.1.0\n */\n\n\nvar GiveNoticeAlert = function (_GiveModal3) {\n\t_inherits(GiveNoticeAlert, _GiveModal3);\n\n\tfunction GiveNoticeAlert(obj) {\n\t\t_classCallCheck(this, GiveNoticeAlert);\n\n\t\tobj.type = 'alert';\n\n\t\tvar _this3 = _possibleConstructorReturn(this, (GiveNoticeAlert.__proto__ || Object.getPrototypeOf(GiveNoticeAlert)).call(this, obj));\n\n\t\t_this3.config.classes.modalWrapper = 'give-modal--notice';\n\n\t\t_this3.init();\n\t\treturn _this3;\n\t}\n\n\treturn GiveNoticeAlert;\n}(GiveModal);\n\n/**\n * This class will handle success alert modal\n *\n * @since 2.1.0\n */\n\n\nvar GiveSuccessAlert = function (_GiveModal4) {\n\t_inherits(GiveSuccessAlert, _GiveModal4);\n\n\tfunction GiveSuccessAlert(obj) {\n\t\t_classCallCheck(this, GiveSuccessAlert);\n\n\t\tobj.type = 'alert';\n\n\t\tvar _this4 = _possibleConstructorReturn(this, (GiveSuccessAlert.__proto__ || Object.getPrototypeOf(GiveSuccessAlert)).call(this, obj));\n\n\t\t_this4.config.classes.modalWrapper = 'give-modal--success';\n\n\t\t_this4.init();\n\t\treturn _this4;\n\t}\n\n\treturn GiveSuccessAlert;\n}(GiveModal);\n\n/**\n * This class will handle confirm modal\n *\n * @since 2.1.0\n */\n\n\nvar GiveConfirmModal = function (_GiveModal5) {\n\t_inherits(GiveConfirmModal, _GiveModal5);\n\n\tfunction GiveConfirmModal(obj) {\n\t\t_classCallCheck(this, GiveConfirmModal);\n\n\t\tobj.type = 'confirm';\n\n\t\tvar _this5 = _possibleConstructorReturn(this, (GiveConfirmModal.__proto__ || Object.getPrototypeOf(GiveConfirmModal)).call(this, obj));\n\n\t\tif ('undefined' !== typeof obj.modalWrapper && '' !== obj.modalWrapper) {\n\t\t\t_this5.config.classes.modalWrapper = obj.modalWrapper;\n\t\t}\n\n\t\t_this5.init();\n\t\treturn _this5;\n\t}\n\n\t/**\n * Confirm button click event handler\n *\n * Note: only for internal purpose\n *\n * @since 2.1.0\n * @private\n */\n\n\n\t_createClass(GiveConfirmModal, null, [{\n\t\tkey: '__confirmPopup',\n\t\tvalue: function __confirmPopup() {\n\t\t\tif ('function' === typeof jQuery.magnificPopup.instance.st.successConfirm) {\n\t\t\t\tjQuery.magnificPopup.instance.st.successConfirm({\n\t\t\t\t\tel: jQuery.magnificPopup.instance.st.el\n\t\t\t\t});\n\t\t\t\tjQuery.magnificPopup.close();\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn GiveConfirmModal;\n}(GiveModal);\n\n/**\n * This class will handle Form modal\n *\n * @since 2.2.0\n */\n\n\nvar GiveFormModal = function (_GiveModal6) {\n\t_inherits(GiveFormModal, _GiveModal6);\n\n\tfunction GiveFormModal(obj) {\n\t\t_classCallCheck(this, GiveFormModal);\n\n\t\tobj.type = 'form';\n\n\t\tvar _this6 = _possibleConstructorReturn(this, (GiveFormModal.__proto__ || Object.getPrototypeOf(GiveFormModal)).call(this, obj));\n\n\t\tif ('undefined' !== typeof obj.modalWrapper && '' !== obj.modalWrapper) {\n\t\t\t_this6.config.classes.modalWrapper = obj.modalWrapper;\n\t\t}\n\n\t\t_this6.init();\n\t\treturn _this6;\n\t}\n\n\t/**\n * Submit button click event handler\n *\n * Note: only for internal purpose\n *\n * @since 2.2.0\n * @private\n */\n\n\n\t_createClass(GiveFormModal, null, [{\n\t\tkey: '__submitPopup',\n\t\tvalue: function __submitPopup() {\n\t\t\tif ('function' === typeof jQuery.magnificPopup.instance.st.successConfirm) {\n\t\t\t\tjQuery.magnificPopup.instance.st.successConfirm({\n\t\t\t\t\tel: jQuery.magnificPopup.instance.st.el\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn GiveFormModal;\n}(GiveModal);\n\n/**\n * Add events\n */\n\n\nwindow.addDynamicEventListener(document, 'click', '.give-popup-close-button', GiveModal.__closePopup, {});\nwindow.addDynamicEventListener(document, 'click', '.give-popup-confirm-button', GiveConfirmModal.__confirmPopup, {});\nwindow.addDynamicEventListener(document, 'click', '.give-popup-form-button', GiveFormModal.__submitPopup, {});\n\n\n\n/***/ }),\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(26);\nmodule.exports = __webpack_require__(27);\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"init\", function() { return init; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fn\", function() { return fn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return cache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modal\", function() { return modal; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_chosen_js__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_chosen_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_chosen_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_accounting__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_accounting___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_accounting__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_flot__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_flot___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_flot__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_flot_orderbars_js_jquery_flot_orderBars__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_flot_orderbars_js_jquery_flot_orderBars___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_flot_orderbars_js_jquery_flot_orderBars__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_flot_jquery_flot_time__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_flot_jquery_flot_time___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_flot_jquery_flot_time__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__plugins_give_ajaxify_fields__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__plugins_give_ajaxify_fields___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__plugins_give_ajaxify_fields__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__plugins_selector_cache__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__plugins_selector_cache___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__plugins_selector_cache__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__plugins_repeatable_fields__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__plugins_repeatable_fields___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__plugins_repeatable_fields__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__plugins_give_hint_css__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__plugins_give_hint_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__plugins_give_hint_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__plugins_modal_js__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__admin_forms__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__admin_forms___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__admin_forms__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__admin_settings__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__admin_settings___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__admin_settings__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__admin_export__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__admin_export___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__admin_export__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__admin_widgets__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__admin_widgets___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__admin_widgets__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__admin_scripts__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__admin_importer__ = __webpack_require__(40);\n// Plugins\n\n\n\n\n\n\n// Give plugins.\n\n\n\n\n\n\n\n\n// Give core.\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__[\"a\" /* default */].modal = __WEBPACK_IMPORTED_MODULE_10__plugins_modal_js__;\nvar init = __WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__[\"a\" /* default */].init,\n fn = __WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__[\"a\" /* default */].fn,\n cache = __WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__[\"a\" /* default */].cache,\n modal = __WEBPACK_IMPORTED_MODULE_9__plugins_give_api_api__[\"a\" /* default */].modal;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n(function() {\n var $, AbstractChosen, Chosen, SelectParser,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n SelectParser = (function() {\n function SelectParser() {\n this.options_index = 0;\n this.parsed = [];\n }\n\n SelectParser.prototype.add_node = function(child) {\n if (child.nodeName.toUpperCase() === \"OPTGROUP\") {\n return this.add_group(child);\n } else {\n return this.add_option(child);\n }\n };\n\n SelectParser.prototype.add_group = function(group) {\n var group_position, i, len, option, ref, results1;\n group_position = this.parsed.length;\n this.parsed.push({\n array_index: group_position,\n group: true,\n label: group.label,\n title: group.title ? group.title : void 0,\n children: 0,\n disabled: group.disabled,\n classes: group.className\n });\n ref = group.childNodes;\n results1 = [];\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n results1.push(this.add_option(option, group_position, group.disabled));\n }\n return results1;\n };\n\n SelectParser.prototype.add_option = function(option, group_position, group_disabled) {\n if (option.nodeName.toUpperCase() === \"OPTION\") {\n if (option.text !== \"\") {\n if (group_position != null) {\n this.parsed[group_position].children += 1;\n }\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n value: option.value,\n text: option.text,\n html: option.innerHTML,\n title: option.title ? option.title : void 0,\n selected: option.selected,\n disabled: group_disabled === true ? group_disabled : option.disabled,\n group_array_index: group_position,\n group_label: group_position != null ? this.parsed[group_position].label : null,\n classes: option.className,\n style: option.style.cssText\n });\n } else {\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n empty: true\n });\n }\n return this.options_index += 1;\n }\n };\n\n return SelectParser;\n\n })();\n\n SelectParser.select_to_array = function(select) {\n var child, i, len, parser, ref;\n parser = new SelectParser();\n ref = select.childNodes;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n parser.add_node(child);\n }\n return parser.parsed;\n };\n\n AbstractChosen = (function() {\n function AbstractChosen(form_field, options1) {\n this.form_field = form_field;\n this.options = options1 != null ? options1 : {};\n this.label_click_handler = bind(this.label_click_handler, this);\n if (!AbstractChosen.browser_is_supported()) {\n return;\n }\n this.is_multiple = this.form_field.multiple;\n this.set_default_text();\n this.set_default_values();\n this.setup();\n this.set_up_html();\n this.register_observers();\n this.on_ready();\n }\n\n AbstractChosen.prototype.set_default_values = function() {\n this.click_test_action = (function(_this) {\n return function(evt) {\n return _this.test_active_click(evt);\n };\n })(this);\n this.activate_action = (function(_this) {\n return function(evt) {\n return _this.activate_field(evt);\n };\n })(this);\n this.active_field = false;\n this.mouse_on_container = false;\n this.results_showing = false;\n this.result_highlighted = null;\n this.is_rtl = this.options.rtl || /\\bchosen-rtl\\b/.test(this.form_field.className);\n this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === \"\" ? this.options.allow_single_deselect : false;\n this.disable_search_threshold = this.options.disable_search_threshold || 0;\n this.disable_search = this.options.disable_search || false;\n this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;\n this.group_search = this.options.group_search != null ? this.options.group_search : true;\n this.search_contains = this.options.search_contains || false;\n this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;\n this.max_selected_options = this.options.max_selected_options || Infinity;\n this.inherit_select_classes = this.options.inherit_select_classes || false;\n this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;\n this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;\n this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;\n this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;\n this.case_sensitive_search = this.options.case_sensitive_search || false;\n return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;\n };\n\n AbstractChosen.prototype.set_default_text = function() {\n if (this.form_field.getAttribute(\"data-placeholder\")) {\n this.default_text = this.form_field.getAttribute(\"data-placeholder\");\n } else if (this.is_multiple) {\n this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;\n } else {\n this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;\n }\n this.default_text = this.escape_html(this.default_text);\n return this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || AbstractChosen.default_no_result_text;\n };\n\n AbstractChosen.prototype.choice_label = function(item) {\n if (this.include_group_label_in_selected && (item.group_label != null)) {\n return \"<b class='group-name'>\" + (this.escape_html(item.group_label)) + \"</b>\" + item.html;\n } else {\n return item.html;\n }\n };\n\n AbstractChosen.prototype.mouse_enter = function() {\n return this.mouse_on_container = true;\n };\n\n AbstractChosen.prototype.mouse_leave = function() {\n return this.mouse_on_container = false;\n };\n\n AbstractChosen.prototype.input_focus = function(evt) {\n if (this.is_multiple) {\n if (!this.active_field) {\n return setTimeout(((function(_this) {\n return function() {\n return _this.container_mousedown();\n };\n })(this)), 50);\n }\n } else {\n if (!this.active_field) {\n return this.activate_field();\n }\n }\n };\n\n AbstractChosen.prototype.input_blur = function(evt) {\n if (!this.mouse_on_container) {\n this.active_field = false;\n return setTimeout(((function(_this) {\n return function() {\n return _this.blur_test();\n };\n })(this)), 100);\n }\n };\n\n AbstractChosen.prototype.label_click_handler = function(evt) {\n if (this.is_multiple) {\n return this.container_mousedown(evt);\n } else {\n return this.activate_field();\n }\n };\n\n AbstractChosen.prototype.results_option_build = function(options) {\n var content, data, data_content, i, len, ref, shown_results;\n content = '';\n shown_results = 0;\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n data = ref[i];\n data_content = '';\n if (data.group) {\n data_content = this.result_add_group(data);\n } else {\n data_content = this.result_add_option(data);\n }\n if (data_content !== '') {\n shown_results++;\n content += data_content;\n }\n if (options != null ? options.first : void 0) {\n if (data.selected && this.is_multiple) {\n this.choice_build(data);\n } else if (data.selected && !this.is_multiple) {\n this.single_set_selected_text(this.choice_label(data));\n }\n }\n if (shown_results >= this.max_shown_results) {\n break;\n }\n }\n return content;\n };\n\n AbstractChosen.prototype.result_add_option = function(option) {\n var classes, option_el;\n if (!option.search_match) {\n return '';\n }\n if (!this.include_option_in_results(option)) {\n return '';\n }\n classes = [];\n if (!option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"active-result\");\n }\n if (option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"disabled-result\");\n }\n if (option.selected) {\n classes.push(\"result-selected\");\n }\n if (option.group_array_index != null) {\n classes.push(\"group-option\");\n }\n if (option.classes !== \"\") {\n classes.push(option.classes);\n }\n option_el = document.createElement(\"li\");\n option_el.className = classes.join(\" \");\n if (option.style) {\n option_el.style.cssText = option.style;\n }\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\n option_el.innerHTML = option.highlighted_html || option.html;\n if (option.title) {\n option_el.title = option.title;\n }\n return this.outerHTML(option_el);\n };\n\n AbstractChosen.prototype.result_add_group = function(group) {\n var classes, group_el;\n if (!(group.search_match || group.group_match)) {\n return '';\n }\n if (!(group.active_options > 0)) {\n return '';\n }\n classes = [];\n classes.push(\"group-result\");\n if (group.classes) {\n classes.push(group.classes);\n }\n group_el = document.createElement(\"li\");\n group_el.className = classes.join(\" \");\n group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);\n if (group.title) {\n group_el.title = group.title;\n }\n return this.outerHTML(group_el);\n };\n\n AbstractChosen.prototype.results_update_field = function() {\n this.set_default_text();\n if (!this.is_multiple) {\n this.results_reset_cleanup();\n }\n this.result_clear_highlight();\n this.results_build();\n if (this.results_showing) {\n return this.winnow_results();\n }\n };\n\n AbstractChosen.prototype.reset_single_select_options = function() {\n var i, len, ref, result, results1;\n ref = this.results_data;\n results1 = [];\n for (i = 0, len = ref.length; i < len; i++) {\n result = ref[i];\n if (result.selected) {\n results1.push(result.selected = false);\n } else {\n results1.push(void 0);\n }\n }\n return results1;\n };\n\n AbstractChosen.prototype.results_toggle = function() {\n if (this.results_showing) {\n return this.results_hide();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.results_search = function(evt) {\n if (this.results_showing) {\n return this.winnow_results();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.winnow_results = function(options) {\n var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;\n this.no_results_clear();\n results = 0;\n query = this.get_search_text();\n escapedQuery = query.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n regex = this.get_search_regex(escapedQuery);\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n option.search_match = false;\n results_group = null;\n search_match = null;\n option.highlighted_html = '';\n if (this.include_option_in_results(option)) {\n if (option.group) {\n option.group_match = false;\n option.active_options = 0;\n }\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\n results_group = this.results_data[option.group_array_index];\n if (results_group.active_options === 0 && results_group.search_match) {\n results += 1;\n }\n results_group.active_options += 1;\n }\n text = option.group ? option.label : option.text;\n if (!(option.group && !this.group_search)) {\n search_match = this.search_string_match(text, regex);\n option.search_match = search_match != null;\n if (option.search_match && !option.group) {\n results += 1;\n }\n if (option.search_match) {\n if (query.length) {\n startpos = search_match.index;\n prefix = text.slice(0, startpos);\n fix = text.slice(startpos, startpos + query.length);\n suffix = text.slice(startpos + query.length);\n option.highlighted_html = (this.escape_html(prefix)) + \"<em>\" + (this.escape_html(fix)) + \"</em>\" + (this.escape_html(suffix));\n }\n if (results_group != null) {\n results_group.group_match = true;\n }\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\n option.search_match = true;\n }\n }\n }\n }\n this.result_clear_highlight();\n if (results < 1 && query.length) {\n this.update_results_content(\"\");\n return this.no_results(query);\n } else {\n this.update_results_content(this.results_option_build());\n if (!(options != null ? options.skip_highlight : void 0)) {\n return this.winnow_results_set_highlight();\n }\n }\n };\n\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\n var regex_flag, regex_string;\n regex_string = this.search_contains ? escaped_search_string : \"(^|\\\\s|\\\\b)\" + escaped_search_string + \"[^\\\\s]*\";\n if (!(this.enable_split_word_search || this.search_contains)) {\n regex_string = \"^\" + regex_string;\n }\n regex_flag = this.case_sensitive_search ? \"\" : \"i\";\n return new RegExp(regex_string, regex_flag);\n };\n\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\n var match;\n match = regex.exec(search_string);\n if (!this.search_contains && (match != null ? match[1] : void 0)) {\n match.index += 1;\n }\n return match;\n };\n\n AbstractChosen.prototype.choices_count = function() {\n var i, len, option, ref;\n if (this.selected_option_count != null) {\n return this.selected_option_count;\n }\n this.selected_option_count = 0;\n ref = this.form_field.options;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n if (option.selected) {\n this.selected_option_count += 1;\n }\n }\n return this.selected_option_count;\n };\n\n AbstractChosen.prototype.choices_click = function(evt) {\n evt.preventDefault();\n this.activate_field();\n if (!(this.results_showing || this.is_disabled)) {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.keydown_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n if (stroke !== 8 && this.pending_backstroke) {\n this.clear_backstroke();\n }\n switch (stroke) {\n case 8:\n this.backstroke_length = this.get_search_field_value().length;\n break;\n case 9:\n if (this.results_showing && !this.is_multiple) {\n this.result_select(evt);\n }\n this.mouse_on_container = false;\n break;\n case 13:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 27:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 32:\n if (this.disable_search) {\n evt.preventDefault();\n }\n break;\n case 38:\n evt.preventDefault();\n this.keyup_arrow();\n break;\n case 40:\n evt.preventDefault();\n this.keydown_arrow();\n break;\n }\n };\n\n AbstractChosen.prototype.keyup_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n switch (stroke) {\n case 8:\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\n this.keydown_backstroke();\n } else if (!this.pending_backstroke) {\n this.result_clear_highlight();\n this.results_search();\n }\n break;\n case 13:\n evt.preventDefault();\n if (this.results_showing) {\n this.result_select(evt);\n }\n break;\n case 27:\n if (this.results_showing) {\n this.results_hide();\n }\n break;\n case 9:\n case 16:\n case 17:\n case 18:\n case 38:\n case 40:\n case 91:\n break;\n default:\n this.results_search();\n break;\n }\n };\n\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\n if (this.is_disabled) {\n return;\n }\n return setTimeout(((function(_this) {\n return function() {\n return _this.results_search();\n };\n })(this)), 50);\n };\n\n AbstractChosen.prototype.container_width = function() {\n if (this.options.width != null) {\n return this.options.width;\n } else {\n return this.form_field.offsetWidth + \"px\";\n }\n };\n\n AbstractChosen.prototype.include_option_in_results = function(option) {\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\n return false;\n }\n if (!this.display_disabled_options && option.disabled) {\n return false;\n }\n if (option.empty) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\n this.touch_started = true;\n return this.search_results_mouseover(evt);\n };\n\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\n this.touch_started = false;\n return this.search_results_mouseout(evt);\n };\n\n AbstractChosen.prototype.search_results_touchend = function(evt) {\n if (this.touch_started) {\n return this.search_results_mouseup(evt);\n }\n };\n\n AbstractChosen.prototype.outerHTML = function(element) {\n var tmp;\n if (element.outerHTML) {\n return element.outerHTML;\n }\n tmp = document.createElement(\"div\");\n tmp.appendChild(element);\n return tmp.innerHTML;\n };\n\n AbstractChosen.prototype.get_single_html = function() {\n return \"<a class=\\\"chosen-single chosen-default\\\">\\n <span>\" + this.default_text + \"</span>\\n <div><b></b></div>\\n</a>\\n<div class=\\\"chosen-drop\\\">\\n <div class=\\\"chosen-search\\\">\\n <input class=\\\"chosen-search-input\\\" type=\\\"text\\\" autocomplete=\\\"off\\\" />\\n </div>\\n <ul class=\\\"chosen-results\\\"></ul>\\n</div>\";\n };\n\n AbstractChosen.prototype.get_multi_html = function() {\n return \"<ul class=\\\"chosen-choices\\\">\\n <li class=\\\"search-field\\\">\\n <input class=\\\"chosen-search-input\\\" type=\\\"text\\\" autocomplete=\\\"off\\\" value=\\\"\" + this.default_text + \"\\\" />\\n </li>\\n</ul>\\n<div class=\\\"chosen-drop\\\">\\n <ul class=\\\"chosen-results\\\"></ul>\\n</div>\";\n };\n\n AbstractChosen.prototype.get_no_results_html = function(terms) {\n return \"<li class=\\\"no-results\\\">\\n \" + this.results_none_found + \" <span>\" + (this.escape_html(terms)) + \"</span>\\n</li>\";\n };\n\n AbstractChosen.browser_is_supported = function() {\n if (\"Microsoft Internet Explorer\" === window.navigator.appName) {\n return document.documentMode >= 8;\n }\n if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.default_multiple_text = \"Select Some Options\";\n\n AbstractChosen.default_single_text = \"Select an Option\";\n\n AbstractChosen.default_no_result_text = \"No results match\";\n\n return AbstractChosen;\n\n })();\n\n $ = jQuery;\n\n $.fn.extend({\n chosen: function(options) {\n if (!AbstractChosen.browser_is_supported()) {\n return this;\n }\n return this.each(function(input_field) {\n var $this, chosen;\n $this = $(this);\n chosen = $this.data('chosen');\n if (options === 'destroy') {\n if (chosen instanceof Chosen) {\n chosen.destroy();\n }\n return;\n }\n if (!(chosen instanceof Chosen)) {\n $this.data('chosen', new Chosen(this, options));\n }\n });\n }\n });\n\n Chosen = (function(superClass) {\n extend(Chosen, superClass);\n\n function Chosen() {\n return Chosen.__super__.constructor.apply(this, arguments);\n }\n\n Chosen.prototype.setup = function() {\n this.form_field_jq = $(this.form_field);\n return this.current_selectedIndex = this.form_field.selectedIndex;\n };\n\n Chosen.prototype.set_up_html = function() {\n var container_classes, container_props;\n container_classes = [\"chosen-container\"];\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\n if (this.inherit_select_classes && this.form_field.className) {\n container_classes.push(this.form_field.className);\n }\n if (this.is_rtl) {\n container_classes.push(\"chosen-rtl\");\n }\n container_props = {\n 'class': container_classes.join(' '),\n 'title': this.form_field.title\n };\n if (this.form_field.id.length) {\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\n }\n this.container = $(\"<div />\", container_props);\n this.container.width(this.container_width());\n if (this.is_multiple) {\n this.container.html(this.get_multi_html());\n } else {\n this.container.html(this.get_single_html());\n }\n this.form_field_jq.hide().after(this.container);\n this.dropdown = this.container.find('div.chosen-drop').first();\n this.search_field = this.container.find('input').first();\n this.search_results = this.container.find('ul.chosen-results').first();\n this.search_field_scale();\n this.search_no_results = this.container.find('li.no-results').first();\n if (this.is_multiple) {\n this.search_choices = this.container.find('ul.chosen-choices').first();\n this.search_container = this.container.find('li.search-field').first();\n } else {\n this.search_container = this.container.find('div.chosen-search').first();\n this.selected_item = this.container.find('.chosen-single').first();\n }\n this.results_build();\n this.set_tab_index();\n return this.set_label_behavior();\n };\n\n Chosen.prototype.on_ready = function() {\n return this.form_field_jq.trigger(\"chosen:ready\", {\n chosen: this\n });\n };\n\n Chosen.prototype.register_observers = function() {\n this.container.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mousedown.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mouseenter.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_enter(evt);\n };\n })(this));\n this.container.on('mouseleave.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_leave(evt);\n };\n })(this));\n this.search_results.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseup(evt);\n };\n })(this));\n this.search_results.on('mouseover.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseover(evt);\n };\n })(this));\n this.search_results.on('mouseout.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseout(evt);\n };\n })(this));\n this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mousewheel(evt);\n };\n })(this));\n this.search_results.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchstart(evt);\n };\n })(this));\n this.search_results.on('touchmove.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchmove(evt);\n };\n })(this));\n this.search_results.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchend(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:updated.chosen\", (function(_this) {\n return function(evt) {\n _this.results_update_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:activate.chosen\", (function(_this) {\n return function(evt) {\n _this.activate_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:open.chosen\", (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:close.chosen\", (function(_this) {\n return function(evt) {\n _this.close_field(evt);\n };\n })(this));\n this.search_field.on('blur.chosen', (function(_this) {\n return function(evt) {\n _this.input_blur(evt);\n };\n })(this));\n this.search_field.on('keyup.chosen', (function(_this) {\n return function(evt) {\n _this.keyup_checker(evt);\n };\n })(this));\n this.search_field.on('keydown.chosen', (function(_this) {\n return function(evt) {\n _this.keydown_checker(evt);\n };\n })(this));\n this.search_field.on('focus.chosen', (function(_this) {\n return function(evt) {\n _this.input_focus(evt);\n };\n })(this));\n this.search_field.on('cut.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n this.search_field.on('paste.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n if (this.is_multiple) {\n return this.search_choices.on('click.chosen', (function(_this) {\n return function(evt) {\n _this.choices_click(evt);\n };\n })(this));\n } else {\n return this.container.on('click.chosen', function(evt) {\n evt.preventDefault();\n });\n }\n };\n\n Chosen.prototype.destroy = function() {\n $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);\n if (this.form_field_label.length > 0) {\n this.form_field_label.off('click.chosen');\n }\n if (this.search_field[0].tabIndex) {\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\n }\n this.container.remove();\n this.form_field_jq.removeData('chosen');\n return this.form_field_jq.show();\n };\n\n Chosen.prototype.search_field_disabled = function() {\n this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');\n this.container.toggleClass('chosen-disabled', this.is_disabled);\n this.search_field[0].disabled = this.is_disabled;\n if (!this.is_multiple) {\n this.selected_item.off('focus.chosen', this.activate_field);\n }\n if (this.is_disabled) {\n return this.close_field();\n } else if (!this.is_multiple) {\n return this.selected_item.on('focus.chosen', this.activate_field);\n }\n };\n\n Chosen.prototype.container_mousedown = function(evt) {\n var ref;\n if (this.is_disabled) {\n return;\n }\n if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {\n evt.preventDefault();\n }\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\n if (!this.active_field) {\n if (this.is_multiple) {\n this.search_field.val(\"\");\n }\n $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action);\n this.results_show();\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\n evt.preventDefault();\n this.results_toggle();\n }\n return this.activate_field();\n }\n };\n\n Chosen.prototype.container_mouseup = function(evt) {\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\n return this.results_reset(evt);\n }\n };\n\n Chosen.prototype.search_results_mousewheel = function(evt) {\n var delta;\n if (evt.originalEvent) {\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\n }\n if (delta != null) {\n evt.preventDefault();\n if (evt.type === 'DOMMouseScroll') {\n delta = delta * 40;\n }\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\n }\n };\n\n Chosen.prototype.blur_test = function(evt) {\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\n return this.close_field();\n }\n };\n\n Chosen.prototype.close_field = function() {\n $(this.container[0].ownerDocument).off(\"click.chosen\", this.click_test_action);\n this.active_field = false;\n this.results_hide();\n this.container.removeClass(\"chosen-container-active\");\n this.clear_backstroke();\n this.show_search_field_default();\n this.search_field_scale();\n return this.search_field.blur();\n };\n\n Chosen.prototype.activate_field = function() {\n if (this.is_disabled) {\n return;\n }\n this.container.addClass(\"chosen-container-active\");\n this.active_field = true;\n this.search_field.val(this.search_field.val());\n return this.search_field.focus();\n };\n\n Chosen.prototype.test_active_click = function(evt) {\n var active_container;\n active_container = $(evt.target).closest('.chosen-container');\n if (active_container.length && this.container[0] === active_container[0]) {\n return this.active_field = true;\n } else {\n return this.close_field();\n }\n };\n\n Chosen.prototype.results_build = function() {\n this.parsing = true;\n this.selected_option_count = null;\n this.results_data = SelectParser.select_to_array(this.form_field);\n if (this.is_multiple) {\n this.search_choices.find(\"li.search-choice\").remove();\n } else {\n this.single_set_selected_text();\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\n this.search_field[0].readOnly = true;\n this.container.addClass(\"chosen-container-single-nosearch\");\n } else {\n this.search_field[0].readOnly = false;\n this.container.removeClass(\"chosen-container-single-nosearch\");\n }\n }\n this.update_results_content(this.results_option_build({\n first: true\n }));\n this.search_field_disabled();\n this.show_search_field_default();\n this.search_field_scale();\n return this.parsing = false;\n };\n\n Chosen.prototype.result_do_highlight = function(el) {\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\n if (el.length) {\n this.result_clear_highlight();\n this.result_highlight = el;\n this.result_highlight.addClass(\"highlighted\");\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\n visible_top = this.search_results.scrollTop();\n visible_bottom = maxHeight + visible_top;\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\n high_bottom = high_top + this.result_highlight.outerHeight();\n if (high_bottom >= visible_bottom) {\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\n } else if (high_top < visible_top) {\n return this.search_results.scrollTop(high_top);\n }\n }\n };\n\n Chosen.prototype.result_clear_highlight = function() {\n if (this.result_highlight) {\n this.result_highlight.removeClass(\"highlighted\");\n }\n return this.result_highlight = null;\n };\n\n Chosen.prototype.results_show = function() {\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n this.container.addClass(\"chosen-with-drop\");\n this.results_showing = true;\n this.search_field.focus();\n this.search_field.val(this.get_search_field_value());\n this.winnow_results();\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\n chosen: this\n });\n };\n\n Chosen.prototype.update_results_content = function(content) {\n return this.search_results.html(content);\n };\n\n Chosen.prototype.results_hide = function() {\n if (this.results_showing) {\n this.result_clear_highlight();\n this.container.removeClass(\"chosen-with-drop\");\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\n chosen: this\n });\n }\n return this.results_showing = false;\n };\n\n Chosen.prototype.set_tab_index = function(el) {\n var ti;\n if (this.form_field.tabIndex) {\n ti = this.form_field.tabIndex;\n this.form_field.tabIndex = -1;\n return this.search_field[0].tabIndex = ti;\n }\n };\n\n Chosen.prototype.set_label_behavior = function() {\n this.form_field_label = this.form_field_jq.parents(\"label\");\n if (!this.form_field_label.length && this.form_field.id.length) {\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\n }\n if (this.form_field_label.length > 0) {\n return this.form_field_label.on('click.chosen', this.label_click_handler);\n }\n };\n\n Chosen.prototype.show_search_field_default = function() {\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\n this.search_field.val(this.default_text);\n return this.search_field.addClass(\"default\");\n } else {\n this.search_field.val(\"\");\n return this.search_field.removeClass(\"default\");\n }\n };\n\n Chosen.prototype.search_results_mouseup = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target.length) {\n this.result_highlight = target;\n this.result_select(evt);\n return this.search_field.focus();\n }\n };\n\n Chosen.prototype.search_results_mouseover = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target) {\n return this.result_do_highlight(target);\n }\n };\n\n Chosen.prototype.search_results_mouseout = function(evt) {\n if ($(evt.target).hasClass(\"active-result\") || $(evt.target).parents('.active-result').first()) {\n return this.result_clear_highlight();\n }\n };\n\n Chosen.prototype.choice_build = function(item) {\n var choice, close_link;\n choice = $('<li />', {\n \"class\": \"search-choice\"\n }).html(\"<span>\" + (this.choice_label(item)) + \"</span>\");\n if (item.disabled) {\n choice.addClass('search-choice-disabled');\n } else {\n close_link = $('<a />', {\n \"class\": 'search-choice-close',\n 'data-option-array-index': item.array_index\n });\n close_link.on('click.chosen', (function(_this) {\n return function(evt) {\n return _this.choice_destroy_link_click(evt);\n };\n })(this));\n choice.append(close_link);\n }\n return this.search_container.before(choice);\n };\n\n Chosen.prototype.choice_destroy_link_click = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (!this.is_disabled) {\n return this.choice_destroy($(evt.target));\n }\n };\n\n Chosen.prototype.choice_destroy = function(link) {\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\n if (this.active_field) {\n this.search_field.focus();\n } else {\n this.show_search_field_default();\n }\n if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {\n this.results_hide();\n }\n link.parents('li').first().remove();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.results_reset = function() {\n this.reset_single_select_options();\n this.form_field.options[0].selected = true;\n this.single_set_selected_text();\n this.show_search_field_default();\n this.results_reset_cleanup();\n this.trigger_form_field_change();\n if (this.active_field) {\n return this.results_hide();\n }\n };\n\n Chosen.prototype.results_reset_cleanup = function() {\n this.current_selectedIndex = this.form_field.selectedIndex;\n return this.selected_item.find(\"abbr\").remove();\n };\n\n Chosen.prototype.result_select = function(evt) {\n var high, item;\n if (this.result_highlight) {\n high = this.result_highlight;\n this.result_clear_highlight();\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n if (this.is_multiple) {\n high.removeClass(\"active-result\");\n } else {\n this.reset_single_select_options();\n }\n high.addClass(\"result-selected\");\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\n item.selected = true;\n this.form_field.options[item.options_index].selected = true;\n this.selected_option_count = null;\n if (this.is_multiple) {\n this.choice_build(item);\n } else {\n this.single_set_selected_text(this.choice_label(item));\n }\n if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {\n if (evt.metaKey || evt.ctrlKey) {\n this.winnow_results({\n skip_highlight: true\n });\n } else {\n this.search_field.val(\"\");\n this.winnow_results();\n }\n } else {\n this.results_hide();\n this.show_search_field_default();\n }\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\n this.trigger_form_field_change({\n selected: this.form_field.options[item.options_index].value\n });\n }\n this.current_selectedIndex = this.form_field.selectedIndex;\n evt.preventDefault();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.single_set_selected_text = function(text) {\n if (text == null) {\n text = this.default_text;\n }\n if (text === this.default_text) {\n this.selected_item.addClass(\"chosen-default\");\n } else {\n this.single_deselect_control_build();\n this.selected_item.removeClass(\"chosen-default\");\n }\n return this.selected_item.find(\"span\").html(text);\n };\n\n Chosen.prototype.result_deselect = function(pos) {\n var result_data;\n result_data = this.results_data[pos];\n if (!this.form_field.options[result_data.options_index].disabled) {\n result_data.selected = false;\n this.form_field.options[result_data.options_index].selected = false;\n this.selected_option_count = null;\n this.result_clear_highlight();\n if (this.results_showing) {\n this.winnow_results();\n }\n this.trigger_form_field_change({\n deselected: this.form_field.options[result_data.options_index].value\n });\n this.search_field_scale();\n return true;\n } else {\n return false;\n }\n };\n\n Chosen.prototype.single_deselect_control_build = function() {\n if (!this.allow_single_deselect) {\n return;\n }\n if (!this.selected_item.find(\"abbr\").length) {\n this.selected_item.find(\"span\").first().after(\"<abbr class=\\\"search-choice-close\\\"></abbr>\");\n }\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\n };\n\n Chosen.prototype.get_search_field_value = function() {\n return this.search_field.val();\n };\n\n Chosen.prototype.get_search_text = function() {\n return $.trim(this.get_search_field_value());\n };\n\n Chosen.prototype.escape_html = function(text) {\n return $('<div/>').text(text).html();\n };\n\n Chosen.prototype.winnow_results_set_highlight = function() {\n var do_high, selected_results;\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\n if (do_high != null) {\n return this.result_do_highlight(do_high);\n }\n };\n\n Chosen.prototype.no_results = function(terms) {\n var no_results_html;\n no_results_html = this.get_no_results_html(terms);\n this.search_results.append(no_results_html);\n return this.form_field_jq.trigger(\"chosen:no_results\", {\n chosen: this\n });\n };\n\n Chosen.prototype.no_results_clear = function() {\n return this.search_results.find(\".no-results\").remove();\n };\n\n Chosen.prototype.keydown_arrow = function() {\n var next_sib;\n if (this.results_showing && this.result_highlight) {\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\n if (next_sib) {\n return this.result_do_highlight(next_sib);\n }\n } else {\n return this.results_show();\n }\n };\n\n Chosen.prototype.keyup_arrow = function() {\n var prev_sibs;\n if (!this.results_showing && !this.is_multiple) {\n return this.results_show();\n } else if (this.result_highlight) {\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\n if (prev_sibs.length) {\n return this.result_do_highlight(prev_sibs.first());\n } else {\n if (this.choices_count() > 0) {\n this.results_hide();\n }\n return this.result_clear_highlight();\n }\n }\n };\n\n Chosen.prototype.keydown_backstroke = function() {\n var next_available_destroy;\n if (this.pending_backstroke) {\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\n return this.clear_backstroke();\n } else {\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\n this.pending_backstroke = next_available_destroy;\n if (this.single_backstroke_delete) {\n return this.keydown_backstroke();\n } else {\n return this.pending_backstroke.addClass(\"search-choice-focus\");\n }\n }\n }\n };\n\n Chosen.prototype.clear_backstroke = function() {\n if (this.pending_backstroke) {\n this.pending_backstroke.removeClass(\"search-choice-focus\");\n }\n return this.pending_backstroke = null;\n };\n\n Chosen.prototype.search_field_scale = function() {\n var div, i, len, style, style_block, styles, width;\n if (!this.is_multiple) {\n return;\n }\n style_block = {\n position: 'absolute',\n left: '-1000px',\n top: '-1000px',\n display: 'none',\n whiteSpace: 'pre'\n };\n styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];\n for (i = 0, len = styles.length; i < len; i++) {\n style = styles[i];\n style_block[style] = this.search_field.css(style);\n }\n div = $('<div />').css(style_block);\n div.text(this.get_search_field_value());\n $('body').append(div);\n width = div.width() + 25;\n div.remove();\n if (this.container.is(':visible')) {\n width = Math.min(this.container.outerWidth() - 10, width);\n }\n return this.search_field.width(width);\n };\n\n Chosen.prototype.trigger_form_field_change = function(extra) {\n this.form_field_jq.trigger(\"input\", extra);\n return this.form_field_jq.trigger(\"change\", extra);\n };\n\n return Chosen;\n\n })(AbstractChosen);\n\n}).call(this);\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n/* Javascript plotting library for jQuery, version 0.8 alpha.\n\nCopyright (c) 2007-2012 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n\n// first an inline dependency, jquery.colorhelpers.js, we inline it here\n// for convenience\n\n/* Plugin for jQuery for working with colors.\n *\n * Version 1.1.\n *\n * Inspiration from jQuery color animation plugin by John Resig.\n *\n * Released under the MIT license by Ole Laursen, October 2009.\n *\n * Examples:\n *\n * $.color.parse(\"#fff\").scale('rgb', 0.25).add('a', -0.5).toString()\n * var c = $.color.extract($(\"#mydiv\"), 'background-color');\n * console.log(c.r, c.g, c.b, c.a);\n * $.color.make(100, 50, 25, 0.4).toString() // returns \"rgba(100,50,25,0.4)\"\n *\n * Note that .scale() and .add() return the same modified object\n * instead of making a new one.\n *\n * V. 1.1: Fix error handling so e.g. parsing an empty string does\n * produce a color rather than just crashing.\n */\n(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]+=I}return G.normalize()};G.scale=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]*=I}return G.normalize()};G.toString=function(){if(G.a>=1){return\"rgb(\"+[G.r,G.g,G.b].join(\",\")+\")\"}else{return\"rgba(\"+[G.r,G.g,G.b,G.a].join(\",\")+\")\"}};G.normalize=function(){function H(J,K,I){return K<J?J:(K>I?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=\"\"&&E!=\"transparent\"){break}D=D.parent()}while(!B.nodeName(D.get(0),\"body\"));if(E==\"rgba(0, 0, 0, 0)\"){E=\"transparent\"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D==\"transparent\"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);\n\n// the actual Flot code\n(function($) {\n function Plot(placeholder, data_, options_, plugins) {\n // data is on the form:\n // [ series1, series2 ... ]\n // where series is either just the data as [ [x1, y1], [x2, y2], ... ]\n // or { data: [ [x1, y1], [x2, y2], ... ], label: \"some label\", ... }\n\n var series = [],\n options = {\n // the color theme used for graphs\n colors: [\"#edc240\", \"#afd8f8\", \"#cb4b4b\", \"#4da74d\", \"#9440ed\"],\n legend: {\n show: true,\n noColumns: 1, // number of colums in legend table\n labelFormatter: null, // fn: string -> string\n labelBoxBorderColor: \"#ccc\", // border color for the little label boxes\n container: null, // container (as jQuery object) to put legend in, null means default on top of graph\n position: \"ne\", // position of default legend container within plot\n margin: 5, // distance from grid edge to default legend container within plot\n backgroundColor: null, // null means auto-detect\n backgroundOpacity: 0.85, // set to 0 to avoid background\n sorted: null // default to no legend sorting\n },\n xaxis: {\n show: null, // null = auto-detect, true = always, false = never\n position: \"bottom\", // or \"top\"\n mode: null, // null or \"time\"\n timezone: null, // \"browser\" for local to the client or timezone for timezone-js\n font: null, // null (derived from CSS in placeholder) or object like { size: 11, style: \"italic\", weight: \"bold\", family: \"sans-serif\", variant: \"small-caps\" }\n color: null, // base color, labels, ticks\n tickColor: null, // possibly different color of ticks, e.g. \"rgba(0,0,0,0.15)\"\n transform: null, // null or f: number -> number to transform axis\n inverseTransform: null, // if transform is set, this should be the inverse function\n min: null, // min. value to show, null means set automatically\n max: null, // max. value to show, null means set automatically\n autoscaleMargin: null, // margin in % to add if auto-setting min/max\n ticks: null, // either [1, 3] or [[1, \"a\"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks\n tickFormatter: null, // fn: number -> string\n labelWidth: null, // size of tick labels in pixels\n labelHeight: null,\n reserveSpace: null, // whether to reserve space even if axis isn't shown\n tickLength: null, // size in pixels of ticks, or \"full\" for whole line\n alignTicksWithAxis: null, // axis number or null for no sync\n\n // mode specific options\n tickDecimals: null, // no. of decimals, null means auto\n tickSize: null, // number or [number, \"unit\"]\n minTickSize: null, // number or [number, \"unit\"]\n monthNames: null, // list of names of months\n timeformat: null, // format string to use\n twelveHourClock: false // 12 or 24 time in time mode\n },\n yaxis: {\n autoscaleMargin: 0.02,\n position: \"left\" // or \"right\"\n },\n xaxes: [],\n yaxes: [],\n series: {\n points: {\n show: false,\n radius: 3,\n lineWidth: 2, // in pixels\n fill: true,\n fillColor: \"#ffffff\",\n symbol: \"circle\" // or callback\n },\n lines: {\n // we don't put in show: false so we can see\n // whether lines were actively disabled\n lineWidth: 2, // in pixels\n fill: false,\n fillColor: null,\n steps: false\n // Omit 'zero', so we can later default its value to\n // match that of the 'fill' option.\n },\n bars: {\n show: false,\n lineWidth: 2, // in pixels\n barWidth: 1, // in units of the x axis\n fill: true,\n fillColor: null,\n align: \"left\", // \"left\", \"right\", or \"center\"\n horizontal: false,\n zero: true\n },\n shadowSize: 3,\n highlightColor: null\n },\n grid: {\n show: true,\n aboveData: false,\n color: \"#545454\", // primary color used for outline and labels\n backgroundColor: null, // null for transparent, else color\n borderColor: null, // set if different from the grid color\n tickColor: null, // color for the ticks, e.g. \"rgba(0,0,0,0.15)\"\n margin: 0, // distance from the canvas edge to the grid\n labelMargin: 5, // in pixels\n axisMargin: 8, // in pixels\n borderWidth: 2, // in pixels\n minBorderMargin: null, // in pixels, null means taken from points radius\n markings: null, // array of ranges or fn: axes -> array of ranges\n markingsColor: \"#f4f4f4\",\n markingsLineWidth: 2,\n // interactive stuff\n clickable: false,\n hoverable: false,\n autoHighlight: true, // highlight in case mouse is near\n mouseActiveRadius: 10 // how far the mouse can be away to activate an item\n },\n interaction: {\n redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow\n },\n hooks: {}\n },\n canvas = null, // the canvas for the plot itself\n overlay = null, // canvas for interactive stuff on top of plot\n eventHolder = null, // jQuery object that events should be bound to\n ctx = null, octx = null,\n xaxes = [], yaxes = [],\n plotOffset = { left: 0, right: 0, top: 0, bottom: 0},\n canvasWidth = 0, canvasHeight = 0,\n plotWidth = 0, plotHeight = 0,\n hooks = {\n processOptions: [],\n processRawData: [],\n processDatapoints: [],\n processOffset: [],\n drawBackground: [],\n drawSeries: [],\n draw: [],\n bindEvents: [],\n drawOverlay: [],\n shutdown: []\n },\n plot = this;\n\n // public functions\n plot.setData = setData;\n plot.setupGrid = setupGrid;\n plot.draw = draw;\n plot.getPlaceholder = function() { return placeholder; };\n plot.getCanvas = function() { return canvas; };\n plot.getPlotOffset = function() { return plotOffset; };\n plot.width = function () { return plotWidth; };\n plot.height = function () { return plotHeight; };\n plot.offset = function () {\n var o = eventHolder.offset();\n o.left += plotOffset.left;\n o.top += plotOffset.top;\n return o;\n };\n plot.getData = function () { return series; };\n plot.getAxes = function () {\n var res = {}, i;\n $.each(xaxes.concat(yaxes), function (_, axis) {\n if (axis)\n res[axis.direction + (axis.n != 1 ? axis.n : \"\") + \"axis\"] = axis;\n });\n return res;\n };\n plot.getXAxes = function () { return xaxes; };\n plot.getYAxes = function () { return yaxes; };\n plot.c2p = canvasToAxisCoords;\n plot.p2c = axisToCanvasCoords;\n plot.getOptions = function () { return options; };\n plot.highlight = highlight;\n plot.unhighlight = unhighlight;\n plot.triggerRedrawOverlay = triggerRedrawOverlay;\n plot.pointOffset = function(point) {\n return {\n left: parseInt(xaxes[axisNumber(point, \"x\") - 1].p2c(+point.x) + plotOffset.left, 10),\n top: parseInt(yaxes[axisNumber(point, \"y\") - 1].p2c(+point.y) + plotOffset.top, 10)\n };\n };\n plot.shutdown = shutdown;\n plot.resize = function () {\n getCanvasDimensions();\n resizeCanvas(canvas);\n resizeCanvas(overlay);\n };\n\n // public attributes\n plot.hooks = hooks;\n\n // initialize\n initPlugins(plot);\n parseOptions(options_);\n setupCanvases();\n setData(data_);\n setupGrid();\n draw();\n bindEvents();\n\n\n function executeHooks(hook, args) {\n args = [plot].concat(args);\n for (var i = 0; i < hook.length; ++i)\n hook[i].apply(this, args);\n }\n\n function initPlugins() {\n for (var i = 0; i < plugins.length; ++i) {\n var p = plugins[i];\n p.init(plot);\n if (p.options)\n $.extend(true, options, p.options);\n }\n }\n\n function parseOptions(opts) {\n var i;\n\n $.extend(true, options, opts);\n\n if (options.xaxis.color == null)\n options.xaxis.color = options.grid.color;\n if (options.yaxis.color == null)\n options.yaxis.color = options.grid.color;\n\n if (options.xaxis.tickColor == null) // backwards-compatibility\n options.xaxis.tickColor = options.grid.tickColor;\n if (options.yaxis.tickColor == null) // backwards-compatibility\n options.yaxis.tickColor = options.grid.tickColor;\n\n if (options.grid.borderColor == null)\n options.grid.borderColor = options.grid.color;\n if (options.grid.tickColor == null)\n options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();\n\n // fill in defaults in axes, copy at least always the\n // first as the rest of the code assumes it'll be there\n for (i = 0; i < Math.max(1, options.xaxes.length); ++i)\n options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]);\n for (i = 0; i < Math.max(1, options.yaxes.length); ++i)\n options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]);\n\n // backwards compatibility, to be removed in future\n if (options.xaxis.noTicks && options.xaxis.ticks == null)\n options.xaxis.ticks = options.xaxis.noTicks;\n if (options.yaxis.noTicks && options.yaxis.ticks == null)\n options.yaxis.ticks = options.yaxis.noTicks;\n if (options.x2axis) {\n options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);\n options.xaxes[1].position = \"top\";\n }\n if (options.y2axis) {\n options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);\n options.yaxes[1].position = \"right\";\n }\n if (options.grid.coloredAreas)\n options.grid.markings = options.grid.coloredAreas;\n if (options.grid.coloredAreasColor)\n options.grid.markingsColor = options.grid.coloredAreasColor;\n if (options.lines)\n $.extend(true, options.series.lines, options.lines);\n if (options.points)\n $.extend(true, options.series.points, options.points);\n if (options.bars)\n $.extend(true, options.series.bars, options.bars);\n if (options.shadowSize != null)\n options.series.shadowSize = options.shadowSize;\n if (options.highlightColor != null)\n options.series.highlightColor = options.highlightColor;\n\n // save options on axes for future reference\n for (i = 0; i < options.xaxes.length; ++i)\n getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];\n for (i = 0; i < options.yaxes.length; ++i)\n getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];\n\n // add hooks from options\n for (var n in hooks)\n if (options.hooks[n] && options.hooks[n].length)\n hooks[n] = hooks[n].concat(options.hooks[n]);\n\n executeHooks(hooks.processOptions, [options]);\n }\n\n function setData(d) {\n series = parseData(d);\n fillInSeriesOptions();\n processData();\n }\n\n function parseData(d) {\n var res = [];\n for (var i = 0; i < d.length; ++i) {\n var s = $.extend(true, {}, options.series);\n\n if (d[i].data != null) {\n s.data = d[i].data; // move the data instead of deep-copy\n delete d[i].data;\n\n $.extend(true, s, d[i]);\n\n d[i].data = s.data;\n }\n else\n s.data = d[i];\n res.push(s);\n }\n\n return res;\n }\n\n function axisNumber(obj, coord) {\n var a = obj[coord + \"axis\"];\n if (typeof a == \"object\") // if we got a real axis, extract number\n a = a.n;\n if (typeof a != \"number\")\n a = 1; // default to first axis\n return a;\n }\n\n function allAxes() {\n // return flat array without annoying null entries\n return $.grep(xaxes.concat(yaxes), function (a) { return a; });\n }\n\n function canvasToAxisCoords(pos) {\n // return an object with x/y corresponding to all used axes\n var res = {}, i, axis;\n for (i = 0; i < xaxes.length; ++i) {\n axis = xaxes[i];\n if (axis && axis.used)\n res[\"x\" + axis.n] = axis.c2p(pos.left);\n }\n\n for (i = 0; i < yaxes.length; ++i) {\n axis = yaxes[i];\n if (axis && axis.used)\n res[\"y\" + axis.n] = axis.c2p(pos.top);\n }\n\n if (res.x1 !== undefined)\n res.x = res.x1;\n if (res.y1 !== undefined)\n res.y = res.y1;\n\n return res;\n }\n\n function axisToCanvasCoords(pos) {\n // get canvas coords from the first pair of x/y found in pos\n var res = {}, i, axis, key;\n\n for (i = 0; i < xaxes.length; ++i) {\n axis = xaxes[i];\n if (axis && axis.used) {\n key = \"x\" + axis.n;\n if (pos[key] == null && axis.n == 1)\n key = \"x\";\n\n if (pos[key] != null) {\n res.left = axis.p2c(pos[key]);\n break;\n }\n }\n }\n\n for (i = 0; i < yaxes.length; ++i) {\n axis = yaxes[i];\n if (axis && axis.used) {\n key = \"y\" + axis.n;\n if (pos[key] == null && axis.n == 1)\n key = \"y\";\n\n if (pos[key] != null) {\n res.top = axis.p2c(pos[key]);\n break;\n }\n }\n }\n\n return res;\n }\n\n function getOrCreateAxis(axes, number) {\n if (!axes[number - 1])\n axes[number - 1] = {\n n: number, // save the number for future reference\n direction: axes == xaxes ? \"x\" : \"y\",\n options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)\n };\n\n return axes[number - 1];\n }\n\n function fillInSeriesOptions() {\n\n var neededColors = series.length, maxIndex = -1, i;\n\n // Subtract the number of series that already have fixed colors or\n // color indexes from the number that we still need to generate.\n\n for (i = 0; i < series.length; ++i) {\n var sc = series[i].color;\n if (sc != null) {\n neededColors--;\n if (typeof sc == \"number\" && sc > maxIndex) {\n maxIndex = sc;\n }\n }\n }\n\n // If any of the series have fixed color indexes, then we need to\n // generate at least as many colors as the highest index.\n\n if (neededColors <= maxIndex) {\n neededColors = maxIndex + 1;\n }\n\n // Generate all the colors, using first the option colors and then\n // variations on those colors once they're exhausted.\n\n var c, colors = [], colorPool = options.colors,\n colorPoolSize = colorPool.length, variation = 0;\n\n for (i = 0; i < neededColors; i++) {\n\n c = $.color.parse(colorPool[i % colorPoolSize] || \"#666\");\n\n // Each time we exhaust the colors in the pool we adjust\n // a scaling factor used to produce more variations on\n // those colors. The factor alternates negative/positive\n // to produce lighter/darker colors.\n\n // Reset the variation after every few cycles, or else\n // it will end up producing only white or black colors.\n\n if (i % colorPoolSize == 0 && i) {\n if (variation >= 0) {\n if (variation < 0.5) {\n variation = -variation - 0.2;\n } else variation = 0;\n } else variation = -variation;\n }\n\n colors[i] = c.scale('rgb', 1 + variation);\n }\n\n // Finalize the series options, filling in their colors\n\n var colori = 0, s;\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n // assign colors\n if (s.color == null) {\n s.color = colors[colori].toString();\n ++colori;\n }\n else if (typeof s.color == \"number\")\n s.color = colors[s.color].toString();\n\n // turn on lines automatically in case nothing is set\n if (s.lines.show == null) {\n var v, show = true;\n for (v in s)\n if (s[v] && s[v].show) {\n show = false;\n break;\n }\n if (show)\n s.lines.show = true;\n }\n\n // If nothing was provided for lines.zero, default it to match\n // lines.fill, since areas by default should extend to zero.\n\n if (s.lines.zero == null) {\n s.lines.zero = !!s.lines.fill;\n }\n\n // setup axes\n s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, \"x\"));\n s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, \"y\"));\n }\n }\n\n function processData() {\n var topSentry = Number.POSITIVE_INFINITY,\n bottomSentry = Number.NEGATIVE_INFINITY,\n fakeInfinity = Number.MAX_VALUE,\n i, j, k, m, length,\n s, points, ps, x, y, axis, val, f, p,\n data, format;\n\n function updateAxis(axis, min, max) {\n if (min < axis.datamin && min != -fakeInfinity)\n axis.datamin = min;\n if (max > axis.datamax && max != fakeInfinity)\n axis.datamax = max;\n }\n\n $.each(allAxes(), function (_, axis) {\n // init axis\n axis.datamin = topSentry;\n axis.datamax = bottomSentry;\n axis.used = false;\n });\n\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n s.datapoints = { points: [] };\n\n executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);\n }\n\n // first pass: clean and copy data\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n data = s.data;\n format = s.datapoints.format;\n\n if (!format) {\n format = [];\n // find out how to copy\n format.push({ x: true, number: true, required: true });\n format.push({ y: true, number: true, required: true });\n\n if (s.bars.show || (s.lines.show && s.lines.fill)) {\n var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));\n format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale });\n if (s.bars.horizontal) {\n delete format[format.length - 1].y;\n format[format.length - 1].x = true;\n }\n }\n\n s.datapoints.format = format;\n }\n\n if (s.datapoints.pointsize != null)\n continue; // already filled in\n\n s.datapoints.pointsize = format.length;\n\n ps = s.datapoints.pointsize;\n points = s.datapoints.points;\n\n var insertSteps = s.lines.show && s.lines.steps;\n s.xaxis.used = s.yaxis.used = true;\n\n for (j = k = 0; j < data.length; ++j, k += ps) {\n p = data[j];\n\n var nullify = p == null;\n if (!nullify) {\n for (m = 0; m < ps; ++m) {\n val = p[m];\n f = format[m];\n\n if (f) {\n if (f.number && val != null) {\n val = +val; // convert to number\n if (isNaN(val))\n val = null;\n else if (val == Infinity)\n val = fakeInfinity;\n else if (val == -Infinity)\n val = -fakeInfinity;\n }\n\n if (val == null) {\n if (f.required)\n nullify = true;\n\n if (f.defaultValue != null)\n val = f.defaultValue;\n }\n }\n\n points[k + m] = val;\n }\n }\n\n if (nullify) {\n for (m = 0; m < ps; ++m) {\n val = points[k + m];\n if (val != null) {\n f = format[m];\n // extract min/max info\n if (f.x)\n updateAxis(s.xaxis, val, val);\n if (f.y)\n updateAxis(s.yaxis, val, val);\n }\n points[k + m] = null;\n }\n }\n else {\n // a little bit of line specific stuff that\n // perhaps shouldn't be here, but lacking\n // better means...\n if (insertSteps && k > 0\n && points[k - ps] != null\n && points[k - ps] != points[k]\n && points[k - ps + 1] != points[k + 1]) {\n // copy the point to make room for a middle point\n for (m = 0; m < ps; ++m)\n points[k + ps + m] = points[k + m];\n\n // middle point has same y\n points[k + 1] = points[k - ps + 1];\n\n // we've added a point, better reflect that\n k += ps;\n }\n }\n }\n }\n\n // give the hooks a chance to run\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n executeHooks(hooks.processDatapoints, [ s, s.datapoints]);\n }\n\n // second pass: find datamax/datamin for auto-scaling\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n points = s.datapoints.points,\n ps = s.datapoints.pointsize;\n format = s.datapoints.format;\n\n var xmin = topSentry, ymin = topSentry,\n xmax = bottomSentry, ymax = bottomSentry;\n\n for (j = 0; j < points.length; j += ps) {\n if (points[j] == null)\n continue;\n\n for (m = 0; m < ps; ++m) {\n val = points[j + m];\n f = format[m];\n if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity)\n continue;\n\n if (f.x) {\n if (val < xmin)\n xmin = val;\n if (val > xmax)\n xmax = val;\n }\n if (f.y) {\n if (val < ymin)\n ymin = val;\n if (val > ymax)\n ymax = val;\n }\n }\n }\n\n if (s.bars.show) {\n // make sure we got room for the bar on the dancing floor\n var delta;\n\n switch (s.bars.align) {\n case \"left\":\n delta = 0;\n break;\n case \"right\":\n delta = -s.bars.barWidth;\n break;\n case \"center\":\n delta = -s.bars.barWidth / 2;\n break;\n default:\n throw new Error(\"Invalid bar alignment: \" + s.bars.align);\n }\n\n if (s.bars.horizontal) {\n ymin += delta;\n ymax += delta + s.bars.barWidth;\n }\n else {\n xmin += delta;\n xmax += delta + s.bars.barWidth;\n }\n }\n\n updateAxis(s.xaxis, xmin, xmax);\n updateAxis(s.yaxis, ymin, ymax);\n }\n\n $.each(allAxes(), function (_, axis) {\n if (axis.datamin == topSentry)\n axis.datamin = null;\n if (axis.datamax == bottomSentry)\n axis.datamax = null;\n });\n }\n\n //////////////////////////////////////////////////////////////////////////////////\n // Returns the display's ratio between physical and device-independent pixels.\n //\n // This is the ratio between the width that the browser advertises and the number\n // of pixels actually available in that space. The iPhone 4, for example, has a\n // device-independent width of 320px, but its screen is actually 640px wide. It\n // therefore has a pixel ratio of 2, while most normal devices have a ratio of 1.\n\n function getPixelRatio(cctx) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio =\n cctx.webkitBackingStorePixelRatio ||\n cctx.mozBackingStorePixelRatio ||\n cctx.msBackingStorePixelRatio ||\n cctx.oBackingStorePixelRatio ||\n cctx.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStoreRatio;\n }\n\n function makeCanvas(cls) {\n\n var c = document.createElement('canvas');\n c.className = cls;\n\n\t\t\t$(c).css({ direction: \"ltr\", position: \"absolute\", left: 0, top: 0 })\n\t\t\t\t.appendTo(placeholder);\n\n\t\t\t// If HTML5 Canvas isn't available, fall back to Excanvas\n\n\t\t\tif (!c.getContext) {\n\t\t\t\tif (window.G_vmlCanvasManager) {\n\t\t\t\t\tc = window.G_vmlCanvasManager.initElement(c);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.\");\n\t\t\t\t}\n\t\t\t}\n\n var cctx = c.getContext(\"2d\");\n\n // Increase the canvas density based on the display's pixel ratio; basically\n // giving the canvas more pixels without increasing the size of its element,\n // to take advantage of the fact that retina displays have that many more\n // pixels than they actually use for page & element widths.\n\n var pixelRatio = getPixelRatio(cctx);\n\n c.width = canvasWidth * pixelRatio;\n c.height = canvasHeight * pixelRatio;\n c.style.width = canvasWidth + \"px\";\n c.style.height = canvasHeight + \"px\";\n\n // Save the context so we can reset in case we get replotted\n\n cctx.save();\n\n // Scale the coordinate space to match the display density; so even though we\n // may have twice as many pixels, we still want lines and other drawing to\n // appear at the same size; the extra pixels will just make them crisper.\n\n cctx.scale(pixelRatio, pixelRatio);\n\n return c;\n }\n\n function getCanvasDimensions() {\n canvasWidth = placeholder.width();\n canvasHeight = placeholder.height();\n\n if (canvasWidth <= 0 || canvasHeight <= 0)\n throw new Error(\"Invalid dimensions for plot, width = \" + canvasWidth + \", height = \" + canvasHeight);\n }\n\n function resizeCanvas(c) {\n\n var cctx = c.getContext(\"2d\");\n\n // Handle pixel ratios > 1 for retina displays, as explained in makeCanvas\n\n var pixelRatio = getPixelRatio(cctx);\n\n // Resizing should reset the state (excanvas seems to be buggy though)\n\n if (c.style.width != canvasWidth) {\n c.width = canvasWidth * pixelRatio;\n c.style.width = canvasWidth + \"px\";\n }\n\n if (c.style.height != canvasHeight) {\n c.height = canvasHeight * pixelRatio;\n c.style.height = canvasHeight + \"px\";\n }\n\n // so try to get back to the initial state (even if it's\n // gone now, this should be safe according to the spec)\n cctx.restore();\n\n // and save again\n cctx.save();\n\n // Apply scaling for retina displays, as explained in makeCanvas\n\n cctx.scale(pixelRatio, pixelRatio);\n }\n\n function setupCanvases() {\n var reused,\n existingCanvas = placeholder.children(\"canvas.flot-base\"),\n existingOverlay = placeholder.children(\"canvas.flot-overlay\");\n\n if (existingCanvas.length == 0 || existingOverlay == 0) {\n // init everything\n\n placeholder.html(\"\"); // make sure placeholder is clear\n\n placeholder.css({ padding: 0 }); // padding messes up the positioning\n\n if (placeholder.css(\"position\") == 'static')\n placeholder.css(\"position\", \"relative\"); // for positioning labels and overlay\n\n getCanvasDimensions();\n\n canvas = makeCanvas(\"flot-base\");\n overlay = makeCanvas(\"flot-overlay\"); // overlay canvas for interactive features\n\n reused = false;\n }\n else {\n // reuse existing elements\n\n canvas = existingCanvas.get(0);\n overlay = existingOverlay.get(0);\n\n reused = true;\n }\n\n ctx = canvas.getContext(\"2d\");\n octx = overlay.getContext(\"2d\");\n\n // define which element we're listening for events on\n eventHolder = $(overlay);\n\n if (reused) {\n // run shutdown in the old plot object\n placeholder.data(\"plot\").shutdown();\n\n // reset reused canvases\n plot.resize();\n\n // make sure overlay pixels are cleared (canvas is cleared when we redraw)\n octx.clearRect(0, 0, canvasWidth, canvasHeight);\n\n // then whack any remaining obvious garbage left\n eventHolder.unbind();\n placeholder.children().not([canvas, overlay]).remove();\n }\n\n // save in case we get replotted\n placeholder.data(\"plot\", plot);\n }\n\n function bindEvents() {\n // bind events\n if (options.grid.hoverable) {\n eventHolder.mousemove(onMouseMove);\n\n // Use bind, rather than .mouseleave, because we officially\n // still support jQuery 1.2.6, which doesn't define a shortcut\n // for mouseenter or mouseleave. This was a bug/oversight that\n // was fixed somewhere around 1.3.x. We can return to using\n // .mouseleave when we drop support for 1.2.6.\n\n eventHolder.bind(\"mouseleave\", onMouseLeave);\n }\n\n if (options.grid.clickable)\n eventHolder.click(onClick);\n\n executeHooks(hooks.bindEvents, [eventHolder]);\n }\n\n function shutdown() {\n if (redrawTimeout)\n clearTimeout(redrawTimeout);\n\n eventHolder.unbind(\"mousemove\", onMouseMove);\n eventHolder.unbind(\"mouseleave\", onMouseLeave);\n eventHolder.unbind(\"click\", onClick);\n\n executeHooks(hooks.shutdown, [eventHolder]);\n }\n\n function setTransformationHelpers(axis) {\n // set helper functions on the axis, assumes plot area\n // has been computed already\n\n function identity(x) { return x; }\n\n var s, m, t = axis.options.transform || identity,\n it = axis.options.inverseTransform;\n\n // precompute how much the axis is scaling a point\n // in canvas space\n if (axis.direction == \"x\") {\n s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));\n m = Math.min(t(axis.max), t(axis.min));\n }\n else {\n s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));\n s = -s;\n m = Math.max(t(axis.max), t(axis.min));\n }\n\n // data point to canvas coordinate\n if (t == identity) // slight optimization\n axis.p2c = function (p) { return (p - m) * s; };\n else\n axis.p2c = function (p) { return (t(p) - m) * s; };\n // canvas coordinate to data point\n if (!it)\n axis.c2p = function (c) { return m + c / s; };\n else\n axis.c2p = function (c) { return it(m + c / s); };\n }\n\n function measureTickLabels(axis) {\n var opts = axis.options, ticks = axis.ticks || [],\n axisw = opts.labelWidth || 0, axish = opts.labelHeight || 0,\n f = axis.font;\n\n ctx.save();\n ctx.font = f.style + \" \" + f.variant + \" \" + f.weight + \" \" + f.size + \"px '\" + f.family + \"'\";\n\n for (var i = 0; i < ticks.length; ++i) {\n var t = ticks[i];\n\n t.lines = [];\n t.width = t.height = 0;\n\n if (!t.label)\n continue;\n\n // accept various kinds of newlines, including HTML ones\n // (you can actually split directly on regexps in Javascript,\n // but IE < 9 is unfortunately broken)\n var lines = (t.label + \"\").replace(/<br ?\\/?>|\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n var line = { text: lines[j] },\n m = ctx.measureText(line.text);\n\n line.width = m.width;\n // m.height might not be defined, not in the\n // standard yet\n line.height = m.height != null ? m.height : f.size;\n\n // add a bit of margin since font rendering is\n // not pixel perfect and cut off letters look\n // bad, this also doubles as spacing between\n // lines\n line.height += Math.round(f.size * 0.15);\n\n t.width = Math.max(line.width, t.width);\n t.height += line.height;\n\n t.lines.push(line);\n }\n\n if (opts.labelWidth == null)\n axisw = Math.max(axisw, t.width);\n if (opts.labelHeight == null)\n axish = Math.max(axish, t.height);\n }\n ctx.restore();\n\n axis.labelWidth = Math.ceil(axisw);\n axis.labelHeight = Math.ceil(axish);\n }\n\n function allocateAxisBoxFirstPhase(axis) {\n // find the bounding box of the axis by looking at label\n // widths/heights and ticks, make room by diminishing the\n // plotOffset; this first phase only looks at one\n // dimension per axis, the other dimension depends on the\n // other axes so will have to wait\n\n var lw = axis.labelWidth,\n lh = axis.labelHeight,\n pos = axis.options.position,\n tickLength = axis.options.tickLength,\n axisMargin = options.grid.axisMargin,\n padding = options.grid.labelMargin,\n all = axis.direction == \"x\" ? xaxes : yaxes,\n index, innermost;\n\n // determine axis margin\n var samePosition = $.grep(all, function (a) {\n return a && a.options.position == pos && a.reserveSpace;\n });\n if ($.inArray(axis, samePosition) == samePosition.length - 1)\n axisMargin = 0; // outermost\n\n // determine tick length - if we're innermost, we can use \"full\"\n if (tickLength == null) {\n var sameDirection = $.grep(all, function (a) {\n return a && a.reserveSpace;\n });\n\n innermost = $.inArray(axis, sameDirection) == 0;\n if (innermost)\n tickLength = \"full\";\n else\n tickLength = 5;\n }\n\n if (!isNaN(+tickLength))\n padding += +tickLength;\n\n // compute box\n if (axis.direction == \"x\") {\n lh += padding;\n\n if (pos == \"bottom\") {\n plotOffset.bottom += lh + axisMargin;\n axis.box = { top: canvasHeight - plotOffset.bottom, height: lh };\n }\n else {\n axis.box = { top: plotOffset.top + axisMargin, height: lh };\n plotOffset.top += lh + axisMargin;\n }\n }\n else {\n lw += padding;\n\n if (pos == \"left\") {\n axis.box = { left: plotOffset.left + axisMargin, width: lw };\n plotOffset.left += lw + axisMargin;\n }\n else {\n plotOffset.right += lw + axisMargin;\n axis.box = { left: canvasWidth - plotOffset.right, width: lw };\n }\n }\n\n // save for future reference\n axis.position = pos;\n axis.tickLength = tickLength;\n axis.box.padding = padding;\n axis.innermost = innermost;\n }\n\n function allocateAxisBoxSecondPhase(axis) {\n // now that all axis boxes have been placed in one\n // dimension, we can set the remaining dimension coordinates\n if (axis.direction == \"x\") {\n axis.box.left = plotOffset.left - axis.labelWidth / 2;\n axis.box.width = canvasWidth - plotOffset.left - plotOffset.right + axis.labelWidth;\n }\n else {\n axis.box.top = plotOffset.top - axis.labelHeight / 2;\n axis.box.height = canvasHeight - plotOffset.bottom - plotOffset.top + axis.labelHeight;\n }\n }\n\n function adjustLayoutForThingsStickingOut() {\n // possibly adjust plot offset to ensure everything stays\n // inside the canvas and isn't clipped off\n\n var minMargin = options.grid.minBorderMargin,\n margins = { x: 0, y: 0 }, i, axis;\n\n // check stuff from the plot (FIXME: this should just read\n // a value from the series, otherwise it's impossible to\n // customize)\n if (minMargin == null) {\n minMargin = 0;\n for (i = 0; i < series.length; ++i)\n minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2));\n }\n\n margins.x = margins.y = Math.ceil(minMargin);\n\n // check axis labels, note we don't check the actual\n // labels but instead use the overall width/height to not\n // jump as much around with replots\n $.each(allAxes(), function (_, axis) {\n var dir = axis.direction;\n if (axis.reserveSpace)\n margins[dir] = Math.ceil(Math.max(margins[dir], (dir == \"x\" ? axis.labelWidth : axis.labelHeight) / 2));\n });\n\n plotOffset.left = Math.max(margins.x, plotOffset.left);\n plotOffset.right = Math.max(margins.x, plotOffset.right);\n plotOffset.top = Math.max(margins.y, plotOffset.top);\n plotOffset.bottom = Math.max(margins.y, plotOffset.bottom);\n }\n\n function setupGrid() {\n var i, axes = allAxes(), showGrid = options.grid.show;\n\n // Initialize the plot's offset from the edge of the canvas\n\n for (var a in plotOffset) {\n var margin = options.grid.margin || 0;\n plotOffset[a] = typeof margin == \"number\" ? margin : margin[a] || 0;\n }\n\n executeHooks(hooks.processOffset, [plotOffset]);\n\n // If the grid is visible, add its border width to the offset\n\n for (var a in plotOffset) {\n if(typeof(options.grid.borderWidth) == \"object\") {\n plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0;\n }\n else {\n plotOffset[a] += showGrid ? options.grid.borderWidth : 0;\n }\n }\n\n // init axes\n $.each(axes, function (_, axis) {\n axis.show = axis.options.show;\n if (axis.show == null)\n axis.show = axis.used; // by default an axis is visible if it's got data\n\n axis.reserveSpace = axis.show || axis.options.reserveSpace;\n\n setRange(axis);\n });\n\n if (showGrid) {\n // determine from the placeholder the font size ~ height of font ~ 1 em\n var fontDefaults = {\n style: placeholder.css(\"font-style\"),\n size: Math.round(0.8 * (+placeholder.css(\"font-size\").replace(\"px\", \"\") || 13)),\n variant: placeholder.css(\"font-variant\"),\n weight: placeholder.css(\"font-weight\"),\n family: placeholder.css(\"font-family\")\n };\n\n var allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; });\n\n $.each(allocatedAxes, function (_, axis) {\n // make the ticks\n setupTickGeneration(axis);\n setTicks(axis);\n snapRangeToTicks(axis, axis.ticks);\n\n // find labelWidth/Height for axis\n axis.font = $.extend({}, fontDefaults, axis.options.font);\n measureTickLabels(axis);\n });\n\n // with all dimensions calculated, we can compute the\n // axis bounding boxes, start from the outside\n // (reverse order)\n for (i = allocatedAxes.length - 1; i >= 0; --i)\n allocateAxisBoxFirstPhase(allocatedAxes[i]);\n\n // make sure we've got enough space for things that\n // might stick out\n adjustLayoutForThingsStickingOut();\n\n $.each(allocatedAxes, function (_, axis) {\n allocateAxisBoxSecondPhase(axis);\n });\n }\n\n plotWidth = canvasWidth - plotOffset.left - plotOffset.right;\n plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top;\n\n // now we got the proper plot dimensions, we can compute the scaling\n $.each(axes, function (_, axis) {\n setTransformationHelpers(axis);\n });\n\n insertLegend();\n }\n\n function setRange(axis) {\n var opts = axis.options,\n min = +(opts.min != null ? opts.min : axis.datamin),\n max = +(opts.max != null ? opts.max : axis.datamax),\n delta = max - min;\n\n if (delta == 0.0) {\n // degenerate case\n var widen = max == 0 ? 1 : 0.01;\n\n if (opts.min == null)\n min -= widen;\n // always widen max if we couldn't widen min to ensure we\n // don't fall into min == max which doesn't work\n if (opts.max == null || opts.min != null)\n max += widen;\n }\n else {\n // consider autoscaling\n var margin = opts.autoscaleMargin;\n if (margin != null) {\n if (opts.min == null) {\n min -= delta * margin;\n // make sure we don't go below zero if all values\n // are positive\n if (min < 0 && axis.datamin != null && axis.datamin >= 0)\n min = 0;\n }\n if (opts.max == null) {\n max += delta * margin;\n if (max > 0 && axis.datamax != null && axis.datamax <= 0)\n max = 0;\n }\n }\n }\n axis.min = min;\n axis.max = max;\n }\n\n function setupTickGeneration(axis) {\n var opts = axis.options;\n\n // estimate number of ticks\n var noTicks;\n if (typeof opts.ticks == \"number\" && opts.ticks > 0)\n noTicks = opts.ticks;\n else\n // heuristic based on the model a*sqrt(x) fitted to\n // some data points that seemed reasonable\n noTicks = 0.3 * Math.sqrt(axis.direction == \"x\" ? canvasWidth : canvasHeight);\n\n axis.delta = (axis.max - axis.min) / noTicks;\n\n // Time mode was moved to a plug-in in 0.8, but since so many people use this\n // we'll add an especially friendly make sure they remembered to include it.\n\n if (opts.mode == \"time\" && !axis.tickGenerator) {\n throw new Error(\"Time mode requires the flot.time plugin.\");\n }\n\n // Flot supports base-10 axes; any other mode else is handled by a plug-in,\n // like flot.time.js.\n\n if (!axis.tickGenerator) {\n\n axis.tickGenerator = function (axis) {\n var maxDec = opts.tickDecimals,\n dec = -Math.floor(Math.log(axis.delta) / Math.LN10);\n\n if (maxDec != null && dec > maxDec)\n dec = maxDec;\n\n var magn = Math.pow(10, -dec),\n norm = axis.delta / magn, // norm is between 1.0 and 10.0\n size,\n\n ticks = [],\n start,\n i = 0,\n v = Number.NaN,\n prev;\n\n if (norm < 1.5)\n size = 1;\n else if (norm < 3) {\n size = 2;\n // special case for 2.5, requires an extra decimal\n if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {\n size = 2.5;\n ++dec;\n }\n }\n else if (norm < 7.5)\n size = 5;\n else size = 10;\n\n size *= magn;\n\n if (opts.minTickSize != null && size < opts.minTickSize)\n size = opts.minTickSize;\n\n axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);\n axis.tickSize = opts.tickSize || size;\n\n start = floorInBase(axis.min, axis.tickSize)\n\n do {\n prev = v;\n v = start + i * axis.tickSize;\n ticks.push(v);\n ++i;\n } while (v < axis.max && v != prev);\n return ticks;\n };\n\n\t\t\t\taxis.tickFormatter = function (value, axis) {\n\n\t\t\t\t\tvar factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1;\n\t\t\t\t\tvar formatted = \"\" + Math.round(value * factor) / factor;\n\n\t\t\t\t\t// If tickDecimals was specified, ensure that we have exactly that\n\t\t\t\t\t// much precision; otherwise default to the value's own precision.\n\n\t\t\t\t\tif (axis.tickDecimals != null) {\n\t\t\t\t\t\tvar decimal = formatted.indexOf(\".\");\n\t\t\t\t\t\tvar precision = decimal == -1 ? 0 : formatted.length - decimal - 1;\n\t\t\t\t\t\tif (precision < axis.tickDecimals) {\n\t\t\t\t\t\t\treturn (precision ? formatted : formatted + \".\") + (\"\" + factor).substr(1, axis.tickDecimals - precision);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n return formatted;\n };\n }\n\n if ($.isFunction(opts.tickFormatter))\n axis.tickFormatter = function (v, axis) { return \"\" + opts.tickFormatter(v, axis); };\n\n if (opts.alignTicksWithAxis != null) {\n var otherAxis = (axis.direction == \"x\" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];\n if (otherAxis && otherAxis.used && otherAxis != axis) {\n // consider snapping min/max to outermost nice ticks\n var niceTicks = axis.tickGenerator(axis);\n if (niceTicks.length > 0) {\n if (opts.min == null)\n axis.min = Math.min(axis.min, niceTicks[0]);\n if (opts.max == null && niceTicks.length > 1)\n axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);\n }\n\n axis.tickGenerator = function (axis) {\n // copy ticks, scaled to this axis\n var ticks = [], v, i;\n for (i = 0; i < otherAxis.ticks.length; ++i) {\n v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min);\n v = axis.min + v * (axis.max - axis.min);\n ticks.push(v);\n }\n return ticks;\n };\n\n // we might need an extra decimal since forced\n // ticks don't necessarily fit naturally\n if (!axis.mode && opts.tickDecimals == null) {\n var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1),\n ts = axis.tickGenerator(axis);\n\n // only proceed if the tick interval rounded\n // with an extra decimal doesn't give us a\n // zero at end\n if (!(ts.length > 1 && /\\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec))))\n axis.tickDecimals = extraDec;\n }\n }\n }\n }\n\n function setTicks(axis) {\n var oticks = axis.options.ticks, ticks = [];\n if (oticks == null || (typeof oticks == \"number\" && oticks > 0))\n ticks = axis.tickGenerator(axis);\n else if (oticks) {\n if ($.isFunction(oticks))\n // generate the ticks\n ticks = oticks(axis);\n else\n ticks = oticks;\n }\n\n // clean up/labelify the supplied ticks, copy them over\n var i, v;\n axis.ticks = [];\n for (i = 0; i < ticks.length; ++i) {\n var label = null;\n var t = ticks[i];\n if (typeof t == \"object\") {\n v = +t[0];\n if (t.length > 1)\n label = t[1];\n }\n else\n v = +t;\n if (label == null)\n label = axis.tickFormatter(v, axis);\n if (!isNaN(v))\n axis.ticks.push({ v: v, label: label });\n }\n }\n\n function snapRangeToTicks(axis, ticks) {\n if (axis.options.autoscaleMargin && ticks.length > 0) {\n // snap to ticks\n if (axis.options.min == null)\n axis.min = Math.min(axis.min, ticks[0].v);\n if (axis.options.max == null && ticks.length > 1)\n axis.max = Math.max(axis.max, ticks[ticks.length - 1].v);\n }\n }\n\n function draw() {\n ctx.clearRect(0, 0, canvasWidth, canvasHeight);\n\n executeHooks(hooks.drawBackground, [ctx]);\n\n var grid = options.grid;\n\n // draw background, if any\n if (grid.show && grid.backgroundColor)\n drawBackground();\n\n if (grid.show && !grid.aboveData) {\n drawGrid();\n drawAxisLabels();\n }\n\n for (var i = 0; i < series.length; ++i) {\n executeHooks(hooks.drawSeries, [ctx, series[i]]);\n drawSeries(series[i]);\n }\n\n executeHooks(hooks.draw, [ctx]);\n\n if (grid.show && grid.aboveData) {\n drawGrid();\n drawAxisLabels();\n }\n }\n\n function extractRange(ranges, coord) {\n var axis, from, to, key, axes = allAxes();\n\n for (var i = 0; i < axes.length; ++i) {\n axis = axes[i];\n if (axis.direction == coord) {\n key = coord + axis.n + \"axis\";\n if (!ranges[key] && axis.n == 1)\n key = coord + \"axis\"; // support x1axis as xaxis\n if (ranges[key]) {\n from = ranges[key].from;\n to = ranges[key].to;\n break;\n }\n }\n }\n\n // backwards-compat stuff - to be removed in future\n if (!ranges[key]) {\n axis = coord == \"x\" ? xaxes[0] : yaxes[0];\n from = ranges[coord + \"1\"];\n to = ranges[coord + \"2\"];\n }\n\n // auto-reverse as an added bonus\n if (from != null && to != null && from > to) {\n var tmp = from;\n from = to;\n to = tmp;\n }\n\n return { from: from, to: to, axis: axis };\n }\n\n function drawBackground() {\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n\n ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, \"rgba(255, 255, 255, 0)\");\n ctx.fillRect(0, 0, plotWidth, plotHeight);\n ctx.restore();\n }\n\n function drawGrid() {\n var i, axes, bw, bc;\n\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n\n // draw markings\n var markings = options.grid.markings;\n if (markings) {\n if ($.isFunction(markings)) {\n axes = plot.getAxes();\n // xmin etc. is backwards compatibility, to be\n // removed in the future\n axes.xmin = axes.xaxis.min;\n axes.xmax = axes.xaxis.max;\n axes.ymin = axes.yaxis.min;\n axes.ymax = axes.yaxis.max;\n\n markings = markings(axes);\n }\n\n for (i = 0; i < markings.length; ++i) {\n var m = markings[i],\n xrange = extractRange(m, \"x\"),\n yrange = extractRange(m, \"y\");\n\n // fill in missing\n if (xrange.from == null)\n xrange.from = xrange.axis.min;\n if (xrange.to == null)\n xrange.to = xrange.axis.max;\n if (yrange.from == null)\n yrange.from = yrange.axis.min;\n if (yrange.to == null)\n yrange.to = yrange.axis.max;\n\n // clip\n if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max ||\n yrange.to < yrange.axis.min || yrange.from > yrange.axis.max)\n continue;\n\n xrange.from = Math.max(xrange.from, xrange.axis.min);\n xrange.to = Math.min(xrange.to, xrange.axis.max);\n yrange.from = Math.max(yrange.from, yrange.axis.min);\n yrange.to = Math.min(yrange.to, yrange.axis.max);\n\n if (xrange.from == xrange.to && yrange.from == yrange.to)\n continue;\n\n // then draw\n xrange.from = xrange.axis.p2c(xrange.from);\n xrange.to = xrange.axis.p2c(xrange.to);\n yrange.from = yrange.axis.p2c(yrange.from);\n yrange.to = yrange.axis.p2c(yrange.to);\n\n if (xrange.from == xrange.to || yrange.from == yrange.to) {\n // draw line\n ctx.beginPath();\n ctx.strokeStyle = m.color || options.grid.markingsColor;\n ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth;\n ctx.moveTo(xrange.from, yrange.from);\n ctx.lineTo(xrange.to, yrange.to);\n ctx.stroke();\n }\n else {\n // fill area\n ctx.fillStyle = m.color || options.grid.markingsColor;\n ctx.fillRect(xrange.from, yrange.to,\n xrange.to - xrange.from,\n yrange.from - yrange.to);\n }\n }\n }\n\n // draw the ticks\n axes = allAxes();\n bw = options.grid.borderWidth;\n\n for (var j = 0; j < axes.length; ++j) {\n var axis = axes[j], box = axis.box,\n t = axis.tickLength, x, y, xoff, yoff;\n if (!axis.show || axis.ticks.length == 0)\n continue;\n\n ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString();\n ctx.lineWidth = 1;\n\n // find the edges\n if (axis.direction == \"x\") {\n x = 0;\n if (t == \"full\")\n y = (axis.position == \"top\" ? 0 : plotHeight);\n else\n y = box.top - plotOffset.top + (axis.position == \"top\" ? box.height : 0);\n }\n else {\n y = 0;\n if (t == \"full\")\n x = (axis.position == \"left\" ? 0 : plotWidth);\n else\n x = box.left - plotOffset.left + (axis.position == \"left\" ? box.width : 0);\n }\n\n // draw tick bar\n if (!axis.innermost) {\n ctx.beginPath();\n xoff = yoff = 0;\n if (axis.direction == \"x\")\n xoff = plotWidth;\n else\n yoff = plotHeight;\n\n if (ctx.lineWidth == 1) {\n x = Math.floor(x) + 0.5;\n y = Math.floor(y) + 0.5;\n }\n\n ctx.moveTo(x, y);\n ctx.lineTo(x + xoff, y + yoff);\n ctx.stroke();\n }\n\n // draw ticks\n ctx.beginPath();\n for (i = 0; i < axis.ticks.length; ++i) {\n var v = axis.ticks[i].v;\n\n xoff = yoff = 0;\n\n if (isNaN(v) || v < axis.min || v > axis.max\n // skip those lying on the axes if we got a border\n || (t == \"full\"\n && ((typeof bw == \"object\" && bw[axis.position] > 0) || bw > 0)\n && (v == axis.min || v == axis.max)))\n continue;\n\n if (axis.direction == \"x\") {\n x = axis.p2c(v);\n yoff = t == \"full\" ? -plotHeight : t;\n\n if (axis.position == \"top\")\n yoff = -yoff;\n }\n else {\n y = axis.p2c(v);\n xoff = t == \"full\" ? -plotWidth : t;\n\n if (axis.position == \"left\")\n xoff = -xoff;\n }\n\n if (ctx.lineWidth == 1) {\n if (axis.direction == \"x\")\n x = Math.floor(x) + 0.5;\n else\n y = Math.floor(y) + 0.5;\n }\n\n ctx.moveTo(x, y);\n ctx.lineTo(x + xoff, y + yoff);\n }\n\n ctx.stroke();\n }\n\n\n // draw border\n if (bw) {\n // If either borderWidth or borderColor is an object, then draw the border\n // line by line instead of as one rectangle\n bc = options.grid.borderColor;\n if(typeof bw == \"object\" || typeof bc == \"object\") {\n if (typeof bw !== \"object\") {\n bw = {top: bw, right: bw, bottom: bw, left: bw};\n }\n if (typeof bc !== \"object\") {\n bc = {top: bc, right: bc, bottom: bc, left: bc};\n }\n\n if (bw.top > 0) {\n ctx.strokeStyle = bc.top;\n ctx.lineWidth = bw.top;\n ctx.beginPath();\n ctx.moveTo(0 - bw.left, 0 - bw.top/2);\n ctx.lineTo(plotWidth, 0 - bw.top/2);\n ctx.stroke();\n }\n\n if (bw.right > 0) {\n ctx.strokeStyle = bc.right;\n ctx.lineWidth = bw.right;\n ctx.beginPath();\n ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top);\n ctx.lineTo(plotWidth + bw.right / 2, plotHeight);\n ctx.stroke();\n }\n\n if (bw.bottom > 0) {\n ctx.strokeStyle = bc.bottom;\n ctx.lineWidth = bw.bottom;\n ctx.beginPath();\n ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2);\n ctx.lineTo(0, plotHeight + bw.bottom / 2);\n ctx.stroke();\n }\n\n if (bw.left > 0) {\n ctx.strokeStyle = bc.left;\n ctx.lineWidth = bw.left;\n ctx.beginPath();\n ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom);\n ctx.lineTo(0- bw.left/2, 0);\n ctx.stroke();\n }\n }\n else {\n ctx.lineWidth = bw;\n ctx.strokeStyle = options.grid.borderColor;\n ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);\n }\n }\n\n ctx.restore();\n }\n\n function drawAxisLabels() {\n ctx.save();\n\n $.each(allAxes(), function (_, axis) {\n if (!axis.show || axis.ticks.length == 0)\n return;\n\n var box = axis.box, f = axis.font;\n // placeholder.append('<div style=\"position:absolute;opacity:0.10;background-color:red;left:' + box.left + 'px;top:' + box.top + 'px;width:' + box.width + 'px;height:' + box.height + 'px\"></div>') // debug\n\n ctx.fillStyle = axis.options.color;\n // Important: Don't use quotes around axis.font.family! Just around single\n // font names like 'Times New Roman' that have a space or special character in it.\n ctx.font = f.style + \" \" + f.variant + \" \" + f.weight + \" \" + f.size + \"px \" + f.family;\n ctx.textAlign = \"start\";\n // middle align the labels - top would be more\n // natural, but browsers can differ a pixel or two in\n // where they consider the top to be, so instead we\n // middle align to minimize variation between browsers\n // and compensate when calculating the coordinates\n ctx.textBaseline = \"middle\";\n\n for (var i = 0; i < axis.ticks.length; ++i) {\n var tick = axis.ticks[i];\n if (!tick.label || tick.v < axis.min || tick.v > axis.max)\n continue;\n\n var x, y, offset = 0, line;\n for (var k = 0; k < tick.lines.length; ++k) {\n line = tick.lines[k];\n\n if (axis.direction == \"x\") {\n x = plotOffset.left + axis.p2c(tick.v) - line.width/2;\n if (axis.position == \"bottom\")\n y = box.top + box.padding;\n else\n y = box.top + box.height - box.padding - tick.height;\n }\n else {\n y = plotOffset.top + axis.p2c(tick.v) - tick.height/2;\n if (axis.position == \"left\")\n x = box.left + box.width - box.padding - line.width;\n else\n x = box.left + box.padding;\n }\n\n // account for middle aligning and line number\n y += line.height/2 + offset;\n offset += line.height;\n\n if (!!(window.opera && window.opera.version().split('.')[0] < 12)) {\n // FIXME: LEGACY BROWSER FIX\n // AFFECTS: Opera < 12.00\n\n // round the coordinates since Opera\n // otherwise switches to more ugly\n // rendering (probably non-hinted) and\n // offset the y coordinates since it seems\n // to be off pretty consistently compared\n // to the other browsers\n x = Math.floor(x);\n y = Math.ceil(y - 2);\n }\n ctx.fillText(line.text, x, y);\n }\n }\n });\n\n ctx.restore();\n }\n\n function drawSeries(series) {\n if (series.lines.show)\n drawSeriesLines(series);\n if (series.bars.show)\n drawSeriesBars(series);\n if (series.points.show)\n drawSeriesPoints(series);\n }\n\n function drawSeriesLines(series) {\n function plotLine(datapoints, xoffset, yoffset, axisx, axisy) {\n var points = datapoints.points,\n ps = datapoints.pointsize,\n prevx = null, prevy = null;\n\n ctx.beginPath();\n for (var i = ps; i < points.length; i += ps) {\n var x1 = points[i - ps], y1 = points[i - ps + 1],\n x2 = points[i], y2 = points[i + 1];\n\n if (x1 == null || x2 == null)\n continue;\n\n // clip with ymin\n if (y1 <= y2 && y1 < axisy.min) {\n if (y2 < axisy.min)\n continue; // line segment is outside\n // compute new intersection point\n x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.min;\n }\n else if (y2 <= y1 && y2 < axisy.min) {\n if (y1 < axisy.min)\n continue;\n x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.min;\n }\n\n // clip with ymax\n if (y1 >= y2 && y1 > axisy.max) {\n if (y2 > axisy.max)\n continue;\n x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.max;\n }\n else if (y2 >= y1 && y2 > axisy.max) {\n if (y1 > axisy.max)\n continue;\n x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.max;\n }\n\n // clip with xmin\n if (x1 <= x2 && x1 < axisx.min) {\n if (x2 < axisx.min)\n continue;\n y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.min;\n }\n else if (x2 <= x1 && x2 < axisx.min) {\n if (x1 < axisx.min)\n continue;\n y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.min;\n }\n\n // clip with xmax\n if (x1 >= x2 && x1 > axisx.max) {\n if (x2 > axisx.max)\n continue;\n y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.max;\n }\n else if (x2 >= x1 && x2 > axisx.max) {\n if (x1 > axisx.max)\n continue;\n y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.max;\n }\n\n if (x1 != prevx || y1 != prevy)\n ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);\n\n prevx = x2;\n prevy = y2;\n ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);\n }\n ctx.stroke();\n }\n\n function plotLineArea(datapoints, axisx, axisy) {\n var points = datapoints.points,\n ps = datapoints.pointsize,\n bottom = Math.min(Math.max(0, axisy.min), axisy.max),\n i = 0, top, areaOpen = false,\n ypos = 1, segmentStart = 0, segmentEnd = 0;\n\n // we process each segment in two turns, first forward\n // direction to sketch out top, then once we hit the\n // end we go backwards to sketch the bottom\n while (true) {\n if (ps > 0 && i > points.length + ps)\n break;\n\n i += ps; // ps is negative if going backwards\n\n var x1 = points[i - ps],\n y1 = points[i - ps + ypos],\n x2 = points[i], y2 = points[i + ypos];\n\n if (areaOpen) {\n if (ps > 0 && x1 != null && x2 == null) {\n // at turning point\n segmentEnd = i;\n ps = -ps;\n ypos = 2;\n continue;\n }\n\n if (ps < 0 && i == segmentStart + ps) {\n // done with the reverse sweep\n ctx.fill();\n areaOpen = false;\n ps = -ps;\n ypos = 1;\n i = segmentStart = segmentEnd + ps;\n continue;\n }\n }\n\n if (x1 == null || x2 == null)\n continue;\n\n // clip x values\n\n // clip with xmin\n if (x1 <= x2 && x1 < axisx.min) {\n if (x2 < axisx.min)\n continue;\n y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.min;\n }\n else if (x2 <= x1 && x2 < axisx.min) {\n if (x1 < axisx.min)\n continue;\n y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.min;\n }\n\n // clip with xmax\n if (x1 >= x2 && x1 > axisx.max) {\n if (x2 > axisx.max)\n continue;\n y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.max;\n }\n else if (x2 >= x1 && x2 > axisx.max) {\n if (x1 > axisx.max)\n continue;\n y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.max;\n }\n\n if (!areaOpen) {\n // open area\n ctx.beginPath();\n ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));\n areaOpen = true;\n }\n\n // now first check the case where both is outside\n if (y1 >= axisy.max && y2 >= axisy.max) {\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));\n continue;\n }\n else if (y1 <= axisy.min && y2 <= axisy.min) {\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));\n continue;\n }\n\n // else it's a bit more complicated, there might\n // be a flat maxed out rectangle first, then a\n // triangular cutout or reverse; to find these\n // keep track of the current x values\n var x1old = x1, x2old = x2;\n\n // clip the y values, without shortcutting, we\n // go through all cases in turn\n\n // clip with ymin\n if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {\n x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.min;\n }\n else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {\n x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.min;\n }\n\n // clip with ymax\n if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {\n x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.max;\n }\n else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {\n x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.max;\n }\n\n // if the x value was changed we got a rectangle\n // to fill\n if (x1 != x1old) {\n ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));\n // it goes to (x1, y1), but we fill that below\n }\n\n // fill triangular section, this sometimes result\n // in redundant points if (x1, y1) hasn't changed\n // from previous line to, but we just ignore that\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\n\n // fill the other rectangle if it's there\n if (x2 != x2old) {\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\n ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));\n }\n }\n }\n\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n ctx.lineJoin = \"round\";\n\n var lw = series.lines.lineWidth,\n sw = series.shadowSize;\n // FIXME: consider another form of shadow when filling is turned on\n if (lw > 0 && sw > 0) {\n // draw shadow as a thick and thin line with transparency\n ctx.lineWidth = sw;\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n // position shadow at angle from the mid of line\n var angle = Math.PI/18;\n plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);\n ctx.lineWidth = sw/2;\n plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);\n }\n\n ctx.lineWidth = lw;\n ctx.strokeStyle = series.color;\n var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight);\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n plotLineArea(series.datapoints, series.xaxis, series.yaxis);\n }\n\n if (lw > 0)\n plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis);\n ctx.restore();\n }\n\n function drawSeriesPoints(series) {\n function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) {\n var points = datapoints.points, ps = datapoints.pointsize;\n\n for (var i = 0; i < points.length; i += ps) {\n var x = points[i], y = points[i + 1];\n if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)\n continue;\n\n ctx.beginPath();\n x = axisx.p2c(x);\n y = axisy.p2c(y) + offset;\n if (symbol == \"circle\")\n ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);\n else\n symbol(ctx, x, y, radius, shadow);\n ctx.closePath();\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n ctx.fill();\n }\n ctx.stroke();\n }\n }\n\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n\n var lw = series.points.lineWidth,\n sw = series.shadowSize,\n radius = series.points.radius,\n symbol = series.points.symbol;\n\n // If the user sets the line width to 0, we change it to a very \n // small value. A line width of 0 seems to force the default of 1.\n // Doing the conditional here allows the shadow setting to still be \n // optional even with a lineWidth of 0.\n\n if( lw == 0 )\n lw = 0.0001;\n\n if (lw > 0 && sw > 0) {\n // draw shadow in two steps\n var w = sw / 2;\n ctx.lineWidth = w;\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n plotPoints(series.datapoints, radius, null, w + w/2, true,\n series.xaxis, series.yaxis, symbol);\n\n ctx.strokeStyle = \"rgba(0,0,0,0.2)\";\n plotPoints(series.datapoints, radius, null, w/2, true,\n series.xaxis, series.yaxis, symbol);\n }\n\n ctx.lineWidth = lw;\n ctx.strokeStyle = series.color;\n plotPoints(series.datapoints, radius,\n getFillStyle(series.points, series.color), 0, false,\n series.xaxis, series.yaxis, symbol);\n ctx.restore();\n }\n\n function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {\n var left, right, bottom, top,\n drawLeft, drawRight, drawTop, drawBottom,\n tmp;\n\n // in horizontal mode, we start the bar from the left\n // instead of from the bottom so it appears to be\n // horizontal rather than vertical\n if (horizontal) {\n drawBottom = drawRight = drawTop = true;\n drawLeft = false;\n left = b;\n right = x;\n top = y + barLeft;\n bottom = y + barRight;\n\n // account for negative bars\n if (right < left) {\n tmp = right;\n right = left;\n left = tmp;\n drawLeft = true;\n drawRight = false;\n }\n }\n else {\n drawLeft = drawRight = drawTop = true;\n drawBottom = false;\n left = x + barLeft;\n right = x + barRight;\n bottom = b;\n top = y;\n\n // account for negative bars\n if (top < bottom) {\n tmp = top;\n top = bottom;\n bottom = tmp;\n drawBottom = true;\n drawTop = false;\n }\n }\n\n // clip\n if (right < axisx.min || left > axisx.max ||\n top < axisy.min || bottom > axisy.max)\n return;\n\n if (left < axisx.min) {\n left = axisx.min;\n drawLeft = false;\n }\n\n if (right > axisx.max) {\n right = axisx.max;\n drawRight = false;\n }\n\n if (bottom < axisy.min) {\n bottom = axisy.min;\n drawBottom = false;\n }\n\n if (top > axisy.max) {\n top = axisy.max;\n drawTop = false;\n }\n\n left = axisx.p2c(left);\n bottom = axisy.p2c(bottom);\n right = axisx.p2c(right);\n top = axisy.p2c(top);\n\n // fill the bar\n if (fillStyleCallback) {\n c.beginPath();\n c.moveTo(left, bottom);\n c.lineTo(left, top);\n c.lineTo(right, top);\n c.lineTo(right, bottom);\n c.fillStyle = fillStyleCallback(bottom, top);\n c.fill();\n }\n\n // draw outline\n if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {\n c.beginPath();\n\n // FIXME: inline moveTo is buggy with excanvas\n c.moveTo(left, bottom + offset);\n if (drawLeft)\n c.lineTo(left, top + offset);\n else\n c.moveTo(left, top + offset);\n if (drawTop)\n c.lineTo(right, top + offset);\n else\n c.moveTo(right, top + offset);\n if (drawRight)\n c.lineTo(right, bottom + offset);\n else\n c.moveTo(right, bottom + offset);\n if (drawBottom)\n c.lineTo(left, bottom + offset);\n else\n c.moveTo(left, bottom + offset);\n c.stroke();\n }\n }\n\n function drawSeriesBars(series) {\n function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) {\n var points = datapoints.points, ps = datapoints.pointsize;\n\n for (var i = 0; i < points.length; i += ps) {\n if (points[i] == null)\n continue;\n drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);\n }\n }\n\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n\n // FIXME: figure out a way to add shadows (for instance along the right edge)\n ctx.lineWidth = series.bars.lineWidth;\n ctx.strokeStyle = series.color;\n\n var barLeft;\n\n switch (series.bars.align) {\n case \"left\":\n barLeft = 0;\n break;\n case \"right\":\n barLeft = -series.bars.barWidth;\n break;\n case \"center\":\n barLeft = -series.bars.barWidth / 2;\n break;\n default:\n throw new Error(\"Invalid bar alignment: \" + series.bars.align);\n }\n\n var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;\n plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis);\n ctx.restore();\n }\n\n function getFillStyle(filloptions, seriesColor, bottom, top) {\n var fill = filloptions.fill;\n if (!fill)\n return null;\n\n if (filloptions.fillColor)\n return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);\n\n var c = $.color.parse(seriesColor);\n c.a = typeof fill == \"number\" ? fill : 0.4;\n c.normalize();\n return c.toString();\n }\n\n function insertLegend() {\n\n placeholder.find(\".legend\").remove();\n\n if (!options.legend.show)\n return;\n\n var fragments = [], entries = [], rowStarted = false,\n lf = options.legend.labelFormatter, s, label;\n\n // Build a list of legend entries, with each having a label and a color\n\n for (var i = 0; i < series.length; ++i) {\n s = series[i];\n if (s.label) {\n label = lf ? lf(s.label, s) : s.label;\n if (label) {\n entries.push({\n label: label,\n color: s.color\n });\n }\n }\n }\n\n // Sort the legend using either the default or a custom comparator\n\n if (options.legend.sorted) {\n if ($.isFunction(options.legend.sorted)) {\n entries.sort(options.legend.sorted);\n } else if (options.legend.sorted == \"reverse\") {\n \tentries.reverse();\n } else {\n var ascending = options.legend.sorted != \"descending\";\n entries.sort(function(a, b) {\n return a.label == b.label ? 0 : (\n (a.label < b.label) != ascending ? 1 : -1 // Logical XOR\n );\n });\n }\n }\n\n // Generate markup for the list of entries, in their final order\n\n for (var i = 0; i < entries.length; ++i) {\n\n var entry = entries[i];\n\n if (i % options.legend.noColumns == 0) {\n if (rowStarted)\n fragments.push('</tr>');\n fragments.push('<tr>');\n rowStarted = true;\n }\n\n fragments.push(\n '<td class=\"legendColorBox\"><div style=\"border:1px solid ' + options.legend.labelBoxBorderColor + ';padding:1px\"><div style=\"width:4px;height:0;border:5px solid ' + entry.color + ';overflow:hidden\"></div></div></td>' +\n '<td class=\"legendLabel\">' + entry.label + '</td>'\n );\n }\n\n if (rowStarted)\n fragments.push('</tr>');\n\n if (fragments.length == 0)\n return;\n\n var table = '<table style=\"font-size:smaller;color:' + options.grid.color + '\">' + fragments.join(\"\") + '</table>';\n if (options.legend.container != null)\n $(options.legend.container).html(table);\n else {\n var pos = \"\",\n p = options.legend.position,\n m = options.legend.margin;\n if (m[0] == null)\n m = [m, m];\n if (p.charAt(0) == \"n\")\n pos += 'top:' + (m[1] + plotOffset.top) + 'px;';\n else if (p.charAt(0) == \"s\")\n pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';\n if (p.charAt(1) == \"e\")\n pos += 'right:' + (m[0] + plotOffset.right) + 'px;';\n else if (p.charAt(1) == \"w\")\n pos += 'left:' + (m[0] + plotOffset.left) + 'px;';\n var legend = $('<div class=\"legend\">' + table.replace('style=\"', 'style=\"position:absolute;' + pos +';') + '</div>').appendTo(placeholder);\n if (options.legend.backgroundOpacity != 0.0) {\n // put in the transparent background\n // separately to avoid blended labels and\n // label boxes\n var c = options.legend.backgroundColor;\n if (c == null) {\n c = options.grid.backgroundColor;\n if (c && typeof c == \"string\")\n c = $.color.parse(c);\n else\n c = $.color.extract(legend, 'background-color');\n c.a = 1;\n c = c.toString();\n }\n var div = legend.children();\n $('<div style=\"position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos +'background-color:' + c + ';\"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);\n }\n }\n }\n\n\n // interactive features\n\n var highlights = [],\n redrawTimeout = null;\n\n // returns the data item the mouse is over, or null if none is found\n function findNearbyItem(mouseX, mouseY, seriesFilter) {\n var maxDistance = options.grid.mouseActiveRadius,\n smallestDistance = maxDistance * maxDistance + 1,\n item = null, foundPoint = false, i, j, ps;\n\n for (i = series.length - 1; i >= 0; --i) {\n if (!seriesFilter(series[i]))\n continue;\n\n var s = series[i],\n axisx = s.xaxis,\n axisy = s.yaxis,\n points = s.datapoints.points,\n mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster\n my = axisy.c2p(mouseY),\n maxx = maxDistance / axisx.scale,\n maxy = maxDistance / axisy.scale;\n\n ps = s.datapoints.pointsize;\n // with inverse transforms, we can't use the maxx/maxy\n // optimization, sadly\n if (axisx.options.inverseTransform)\n maxx = Number.MAX_VALUE;\n if (axisy.options.inverseTransform)\n maxy = Number.MAX_VALUE;\n\n if (s.lines.show || s.points.show) {\n for (j = 0; j < points.length; j += ps) {\n var x = points[j], y = points[j + 1];\n if (x == null)\n continue;\n\n // For points and lines, the cursor must be within a\n // certain distance to the data point\n if (x - mx > maxx || x - mx < -maxx ||\n y - my > maxy || y - my < -maxy)\n continue;\n\n // We have to calculate distances in pixels, not in\n // data units, because the scales of the axes may be different\n var dx = Math.abs(axisx.p2c(x) - mouseX),\n dy = Math.abs(axisy.p2c(y) - mouseY),\n dist = dx * dx + dy * dy; // we save the sqrt\n\n // use <= to ensure last point takes precedence\n // (last generally means on top of)\n if (dist < smallestDistance) {\n smallestDistance = dist;\n item = [i, j / ps];\n }\n }\n }\n\n if (s.bars.show && !item) { // no other point can be nearby\n var barLeft = s.bars.align == \"left\" ? 0 : -s.bars.barWidth/2,\n barRight = barLeft + s.bars.barWidth;\n\n for (j = 0; j < points.length; j += ps) {\n var x = points[j], y = points[j + 1], b = points[j + 2];\n if (x == null)\n continue;\n\n // for a bar graph, the cursor must be inside the bar\n if (series[i].bars.horizontal ?\n (mx <= Math.max(b, x) && mx >= Math.min(b, x) &&\n my >= y + barLeft && my <= y + barRight) :\n (mx >= x + barLeft && mx <= x + barRight &&\n my >= Math.min(b, y) && my <= Math.max(b, y)))\n item = [i, j / ps];\n }\n }\n }\n\n if (item) {\n i = item[0];\n j = item[1];\n ps = series[i].datapoints.pointsize;\n\n return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),\n dataIndex: j,\n series: series[i],\n seriesIndex: i };\n }\n\n return null;\n }\n\n function onMouseMove(e) {\n if (options.grid.hoverable)\n triggerClickHoverEvent(\"plothover\", e,\n function (s) { return s[\"hoverable\"] != false; });\n }\n\n function onMouseLeave(e) {\n if (options.grid.hoverable)\n triggerClickHoverEvent(\"plothover\", e,\n function (s) { return false; });\n }\n\n function onClick(e) {\n triggerClickHoverEvent(\"plotclick\", e,\n function (s) { return s[\"clickable\"] != false; });\n }\n\n // trigger click or hover event (they send the same parameters\n // so we share their code)\n function triggerClickHoverEvent(eventname, event, seriesFilter) {\n var offset = eventHolder.offset(),\n canvasX = event.pageX - offset.left - plotOffset.left,\n canvasY = event.pageY - offset.top - plotOffset.top,\n pos = canvasToAxisCoords({ left: canvasX, top: canvasY });\n\n pos.pageX = event.pageX;\n pos.pageY = event.pageY;\n\n var item = findNearbyItem(canvasX, canvasY, seriesFilter);\n\n if (item) {\n // fill in mouse pos for any listeners out there\n item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10);\n item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10);\n }\n\n if (options.grid.autoHighlight) {\n // clear auto-highlights\n for (var i = 0; i < highlights.length; ++i) {\n var h = highlights[i];\n if (h.auto == eventname &&\n !(item && h.series == item.series &&\n h.point[0] == item.datapoint[0] &&\n h.point[1] == item.datapoint[1]))\n unhighlight(h.series, h.point);\n }\n\n if (item)\n highlight(item.series, item.datapoint, eventname);\n }\n\n placeholder.trigger(eventname, [ pos, item ]);\n }\n\n function triggerRedrawOverlay() {\n var t = options.interaction.redrawOverlayInterval;\n if (t == -1) { // skip event queue\n drawOverlay();\n return;\n }\n\n if (!redrawTimeout)\n redrawTimeout = setTimeout(drawOverlay, t);\n }\n\n function drawOverlay() {\n redrawTimeout = null;\n\n // draw highlights\n octx.save();\n octx.clearRect(0, 0, canvasWidth, canvasHeight);\n octx.translate(plotOffset.left, plotOffset.top);\n\n var i, hi;\n for (i = 0; i < highlights.length; ++i) {\n hi = highlights[i];\n\n if (hi.series.bars.show)\n drawBarHighlight(hi.series, hi.point);\n else\n drawPointHighlight(hi.series, hi.point);\n }\n octx.restore();\n\n executeHooks(hooks.drawOverlay, [octx]);\n }\n\n function highlight(s, point, auto) {\n if (typeof s == \"number\")\n s = series[s];\n\n if (typeof point == \"number\") {\n var ps = s.datapoints.pointsize;\n point = s.datapoints.points.slice(ps * point, ps * (point + 1));\n }\n\n var i = indexOfHighlight(s, point);\n if (i == -1) {\n highlights.push({ series: s, point: point, auto: auto });\n\n triggerRedrawOverlay();\n }\n else if (!auto)\n highlights[i].auto = false;\n }\n\n function unhighlight(s, point) {\n if (s == null && point == null) {\n highlights = [];\n triggerRedrawOverlay();\n }\n\n if (typeof s == \"number\")\n s = series[s];\n\n if (typeof point == \"number\")\n point = s.data[point];\n\n var i = indexOfHighlight(s, point);\n if (i != -1) {\n highlights.splice(i, 1);\n\n triggerRedrawOverlay();\n }\n }\n\n function indexOfHighlight(s, p) {\n for (var i = 0; i < highlights.length; ++i) {\n var h = highlights[i];\n if (h.series == s && h.point[0] == p[0]\n && h.point[1] == p[1])\n return i;\n }\n return -1;\n }\n\n function drawPointHighlight(series, point) {\n var x = point[0], y = point[1],\n axisx = series.xaxis, axisy = series.yaxis,\n highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString();\n\n if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)\n return;\n\n var pointRadius = series.points.radius + series.points.lineWidth / 2;\n octx.lineWidth = pointRadius;\n octx.strokeStyle = highlightColor;\n var radius = 1.5 * pointRadius;\n x = axisx.p2c(x);\n y = axisy.p2c(y);\n\n octx.beginPath();\n if (series.points.symbol == \"circle\")\n octx.arc(x, y, radius, 0, 2 * Math.PI, false);\n else\n series.points.symbol(octx, x, y, radius, false);\n octx.closePath();\n octx.stroke();\n }\n\n function drawBarHighlight(series, point) {\n var highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(),\n fillStyle = highlightColor,\n barLeft = series.bars.align == \"left\" ? 0 : -series.bars.barWidth/2;\n\n octx.lineWidth = series.bars.lineWidth;\n octx.strokeStyle = highlightColor;\n\n drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,\n 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);\n }\n\n function getColorOrGradient(spec, bottom, top, defaultColor) {\n if (typeof spec == \"string\")\n return spec;\n else {\n // assume this is a gradient spec; IE currently only\n // supports a simple vertical gradient properly, so that's\n // what we support too\n var gradient = ctx.createLinearGradient(0, top, 0, bottom);\n\n for (var i = 0, l = spec.colors.length; i < l; ++i) {\n var c = spec.colors[i];\n if (typeof c != \"string\") {\n var co = $.color.parse(defaultColor);\n if (c.brightness != null)\n co = co.scale('rgb', c.brightness);\n if (c.opacity != null)\n co.a *= c.opacity;\n c = co.toString();\n }\n gradient.addColorStop(i / (l - 1), c);\n }\n\n return gradient;\n }\n }\n }\n\n // Add the plot function to the top level of the jQuery object\n\n $.plot = function(placeholder, data, options) {\n //var t0 = new Date();\n var plot = new Plot($(placeholder), data, options, $.plot.plugins);\n //(window.console ? console.log : alert)(\"time used (msecs): \" + ((new Date()).getTime() - t0.getTime()));\n return plot;\n };\n\n $.plot.version = \"0.8-alpha\";\n\n $.plot.plugins = [];\n\n // Also add the plot function as a chainable property\n\n $.fn.plot = function(data, options) {\n return this.each(function() {\n $.plot(this, data, options);\n });\n }\n\n // round to nearby lower multiple of base\n function floorInBase(n, base) {\n return base * Math.floor(n / base);\n }\n\n})(jQuery);\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\n/*\r\n * Flot plugin to order bars side by side.\r\n *\r\n * Released under the MIT license by Benjamin BUFFET, 20-Sep-2010.\r\n * Modifications made by Steven Hall <github.com/emmerich>, 01-May-2013.\r\n *\r\n * This plugin is an alpha version.\r\n *\r\n * To activate the plugin you must specify the parameter \"order\" for the specific serie :\r\n *\r\n * $.plot($(\"#placeholder\"), [{ data: [ ... ], bars :{ order = null or integer }])\r\n *\r\n * If 2 series have the same order param, they are ordered by the position in the array;\r\n *\r\n * The plugin adjust the point by adding a value depanding of the barwidth\r\n * Exemple for 3 series (barwidth : 0.1) :\r\n *\r\n * first bar décalage : -0.15\r\n * second bar décalage : -0.05\r\n * third bar décalage : 0.05\r\n *\r\n */\r\n\r\n// INFO: decalage/decallage is French for gap. It's used to denote the spacing applied to each\r\n// bar.\r\n(function($){\r\n function init(plot){\r\n var orderedBarSeries;\r\n var nbOfBarsToOrder;\r\n var borderWidth;\r\n var borderWidthInXabsWidth;\r\n var pixelInXWidthEquivalent = 1;\r\n var isHorizontal = false;\r\n\r\n // A mapping of order integers to decallage.\r\n var decallageByOrder = {};\r\n\r\n /*\r\n * This method add shift to x values\r\n */\r\n function reOrderBars(plot, serie, datapoints){\r\n var shiftedPoints = null;\r\n\r\n if(serieNeedToBeReordered(serie)){\r\n checkIfGraphIsHorizontal(serie);\r\n calculPixel2XWidthConvert(plot);\r\n retrieveBarSeries(plot);\r\n calculBorderAndBarWidth(serie);\r\n\r\n if(nbOfBarsToOrder >= 2){\r\n var position = findPosition(serie);\r\n var decallage = 0;\r\n\r\n var centerBarShift = calculCenterBarShift();\r\n\r\n // If we haven't already calculated the decallage for this order value, do it.\r\n if(typeof decallageByOrder[serie.bars.order] === 'undefined') {\r\n if (isBarAtLeftOfCenter(position)){\r\n decallageByOrder[serie.bars.order] = -1*(sumWidth(orderedBarSeries,position-1,Math.floor(nbOfBarsToOrder / 2)-1)) - centerBarShift;\r\n }else{\r\n decallageByOrder[serie.bars.order] = sumWidth(orderedBarSeries,Math.ceil(nbOfBarsToOrder / 2),position-2) + centerBarShift + borderWidthInXabsWidth*2;\r\n }\r\n }\r\n\r\n // Lookup the decallage based on the series' order value.\r\n decallage = decallageByOrder[serie.bars.order];\r\n\r\n shiftedPoints = shiftPoints(datapoints,serie,decallage);\r\n datapoints.points = shiftedPoints;\r\n }\r\n }\r\n return shiftedPoints;\r\n }\r\n\r\n function serieNeedToBeReordered(serie){\r\n return serie.bars != null\r\n && serie.bars.show\r\n && serie.bars.order != null;\r\n }\r\n\r\n function calculPixel2XWidthConvert(plot){\r\n var gridDimSize = isHorizontal ? plot.getPlaceholder().innerHeight() : plot.getPlaceholder().innerWidth();\r\n var minMaxValues = isHorizontal ? getAxeMinMaxValues(plot.getData(),1) : getAxeMinMaxValues(plot.getData(),0);\r\n var AxeSize = minMaxValues[1] - minMaxValues[0];\r\n pixelInXWidthEquivalent = AxeSize / gridDimSize;\r\n }\r\n\r\n function getAxeMinMaxValues(series,AxeIdx){\r\n var minMaxValues = new Array();\r\n for(var i = 0; i < series.length; i++){\r\n minMaxValues[0] = (series[i].data[0]) ? series[i].data[0][AxeIdx]: null;\r\n minMaxValues[1] = (series[i].data[series[i].data.length - 1]) ? series[i].data[series[i].data.length - 1][AxeIdx]: null;\r\n }\r\n return minMaxValues;\r\n }\r\n\r\n function retrieveBarSeries(plot){\r\n orderedBarSeries = findOthersBarsToReOrders(plot.getData());\r\n nbOfBarsToOrder = orderedBarSeries.length;\r\n }\r\n\r\n function findOthersBarsToReOrders(series){\r\n var retSeries = new Array();\r\n var orderValuesSeen = [];\r\n\r\n for(var i = 0; i < series.length; i++){\r\n if(series[i].bars.order != null && series[i].bars.show &&\r\n orderValuesSeen.indexOf(series[i].bars.order) < 0){\r\n\r\n orderValuesSeen.push(series[i].bars.order);\r\n retSeries.push(series[i]);\r\n }\r\n }\r\n return retSeries.sort(sortByOrder);\r\n }\r\n\r\n function sortByOrder(serie1,serie2){\r\n var x = serie1.bars.order;\r\n var y = serie2.bars.order;\r\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\r\n }\r\n\r\n function calculBorderAndBarWidth(serie){\r\n borderWidth = typeof serie.bars.lineWidth !== 'undefined' ? serie.bars.lineWidth : 2;\r\n borderWidthInXabsWidth = borderWidth * pixelInXWidthEquivalent;\r\n }\r\n\r\n function checkIfGraphIsHorizontal(serie){\r\n if(serie.bars.horizontal){\r\n isHorizontal = true;\r\n }\r\n }\r\n\r\n function findPosition(serie){\r\n var pos = 0\r\n for (var i = 0; i < orderedBarSeries.length; ++i) {\r\n if (serie == orderedBarSeries[i]){\r\n pos = i;\r\n break;\r\n }\r\n }\r\n\r\n return pos+1;\r\n }\r\n\r\n function calculCenterBarShift(){\r\n var width = 0;\r\n\r\n if(nbOfBarsToOrder%2 != 0)\r\n width = (orderedBarSeries[Math.ceil(nbOfBarsToOrder / 2)].bars.barWidth)/2;\r\n\r\n return width;\r\n }\r\n\r\n function isBarAtLeftOfCenter(position){\r\n return position <= Math.ceil(nbOfBarsToOrder / 2);\r\n }\r\n\r\n function sumWidth(series,start,end){\r\n var totalWidth = 0;\r\n\r\n for(var i = start; i <= end; i++){\r\n totalWidth += series[i].bars.barWidth+borderWidthInXabsWidth*2;\r\n }\r\n\r\n return totalWidth;\r\n }\r\n\r\n function shiftPoints(datapoints,serie,dx){\r\n var ps = datapoints.pointsize;\r\n var points = datapoints.points;\r\n var j = 0;\r\n for(var i = isHorizontal ? 1 : 0;i < points.length; i += ps){\r\n points[i] += dx;\r\n //Adding the new x value in the serie to be abble to display the right tooltip value,\r\n //using the index 3 to not overide the third index.\r\n serie.data[j][3] = points[i];\r\n j++;\r\n }\r\n\r\n return points;\r\n }\r\n\r\n plot.hooks.processDatapoints.push(reOrderBars);\r\n\r\n }\r\n\r\n var options = {\r\n series : {\r\n bars: {order: null} // or number/string\r\n }\r\n };\r\n\r\n $.plot.plugins.push({\r\n init: init,\r\n options: options,\r\n name: \"orderBars\",\r\n version: \"0.2\"\r\n });\r\n\r\n})(jQuery);\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\n/* Pretty handling of time axes.\n\nCopyright (c) 2007-2012 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nSet axis.mode to \"time\" to enable. See the section \"Time series data\" in\nAPI.txt for details.\n\n*/\n\n(function($) {\n\n\tvar options = {};\n\n\t// round to nearby lower multiple of base\n\n\tfunction floorInBase(n, base) {\n\t\treturn base * Math.floor(n / base);\n\t}\n\n\t// Returns a string with the date d formatted according to fmt.\n\t// A subset of the Open Group's strftime format is supported.\n\n\tfunction formatDate(d, fmt, monthNames, dayNames) {\n\n\t\tif (typeof d.strftime == \"function\") {\n\t\t\treturn d.strftime(fmt);\n\t\t}\n\n\t\tvar leftPad = function(n, pad) {\n\t\t\tn = \"\" + n;\n\t\t\tpad = \"\" + (pad == null ? \"0\" : pad);\n\t\t\treturn n.length == 1 ? pad + n : n;\n\t\t};\n\n\t\tvar r = [];\n\t\tvar escape = false;\n\t\tvar hours = d.getHours();\n\t\tvar isAM = hours < 12;\n\n\t\tif (monthNames == null) {\n\t\t\tmonthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\t\t}\n\n\t\tif (dayNames == null) {\n\t\t\tdayNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\t\t}\n\n\t\tvar hours12;\n\n\t\tif (hours > 12) {\n\t\t\thours12 = hours - 12;\n\t\t} else if (hours == 0) {\n\t\t\thours12 = 12;\n\t\t} else {\n\t\t\thours12 = hours;\n\t\t}\n\n\t\tfor (var i = 0; i < fmt.length; ++i) {\n\n\t\t\tvar c = fmt.charAt(i);\n\n\t\t\tif (escape) {\n\t\t\t\tswitch (c) {\n\t\t\t\t\tcase 'a': c = \"\" + dayNames[d.getDay()]; break;\n\t\t\t\t\tcase 'b': c = \"\" + monthNames[d.getMonth()]; break;\n\t\t\t\t\tcase 'd': c = leftPad(d.getDate()); break;\n\t\t\t\t\tcase 'e': c = leftPad(d.getDate(), \" \"); break;\n\t\t\t\t\tcase 'H': c = leftPad(hours); break;\n\t\t\t\t\tcase 'I': c = leftPad(hours12); break;\n\t\t\t\t\tcase 'l': c = leftPad(hours12, \" \"); break;\n\t\t\t\t\tcase 'm': c = leftPad(d.getMonth() + 1); break;\n\t\t\t\t\tcase 'M': c = leftPad(d.getMinutes()); break;\n\t\t\t\t\t// quarters not in Open Group's strftime specification\n\t\t\t\t\tcase 'q':\n\t\t\t\t\t\tc = \"\" + (Math.floor(d.getMonth() / 3) + 1); break;\n\t\t\t\t\tcase 'S': c = leftPad(d.getSeconds()); break;\n\t\t\t\t\tcase 'y': c = leftPad(d.getFullYear() % 100); break;\n\t\t\t\t\tcase 'Y': c = \"\" + d.getFullYear(); break;\n\t\t\t\t\tcase 'p': c = (isAM) ? (\"\" + \"am\") : (\"\" + \"pm\"); break;\n\t\t\t\t\tcase 'P': c = (isAM) ? (\"\" + \"AM\") : (\"\" + \"PM\"); break;\n\t\t\t\t\tcase 'w': c = \"\" + d.getDay(); break;\n\t\t\t\t}\n\t\t\t\tr.push(c);\n\t\t\t\tescape = false;\n\t\t\t} else {\n\t\t\t\tif (c == \"%\") {\n\t\t\t\t\tescape = true;\n\t\t\t\t} else {\n\t\t\t\t\tr.push(c);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn r.join(\"\");\n\t}\n\n\t// To have a consistent view of time-based data independent of which time\n\t// zone the client happens to be in we need a date-like object independent\n\t// of time zones. This is done through a wrapper that only calls the UTC\n\t// versions of the accessor methods.\n\n\tfunction makeUtcWrapper(d) {\n\n\t\tfunction addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {\n\t\t\tsourceObj[sourceMethod] = function() {\n\t\t\t\treturn targetObj[targetMethod].apply(targetObj, arguments);\n\t\t\t};\n\t\t};\n\n\t\tvar utc = {\n\t\t\tdate: d\n\t\t};\n\n\t\t// support strftime, if found\n\n\t\tif (d.strftime != undefined) {\n\t\t\taddProxyMethod(utc, \"strftime\", d, \"strftime\");\n\t\t}\n\n\t\taddProxyMethod(utc, \"getTime\", d, \"getTime\");\n\t\taddProxyMethod(utc, \"setTime\", d, \"setTime\");\n\n\t\tvar props = [\"Date\", \"Day\", \"FullYear\", \"Hours\", \"Milliseconds\", \"Minutes\", \"Month\", \"Seconds\"];\n\n\t\tfor (var p = 0; p < props.length; p++) {\n\t\t\taddProxyMethod(utc, \"get\" + props[p], d, \"getUTC\" + props[p]);\n\t\t\taddProxyMethod(utc, \"set\" + props[p], d, \"setUTC\" + props[p]);\n\t\t}\n\n\t\treturn utc;\n\t};\n\n\t// select time zone strategy. This returns a date-like object tied to the\n\t// desired timezone\n\n\tfunction dateGenerator(ts, opts) {\n\t\tif (opts.timezone == \"browser\") {\n\t\t\treturn new Date(ts);\n\t\t} else if (!opts.timezone || opts.timezone == \"utc\") {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t} else if (typeof timezoneJS != \"undefined\" && typeof timezoneJS.Date != \"undefined\") {\n\t\t\tvar d = new timezoneJS.Date();\n\t\t\t// timezone-js is fickle, so be sure to set the time zone before\n\t\t\t// setting the time.\n\t\t\td.setTimezone(opts.timezone);\n\t\t\td.setTime(ts);\n\t\t\treturn d;\n\t\t} else {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t}\n\t}\n\t\n\t// map of app. size of time units in milliseconds\n\n\tvar timeUnitSize = {\n\t\t\"second\": 1000,\n\t\t\"minute\": 60 * 1000,\n\t\t\"hour\": 60 * 60 * 1000,\n\t\t\"day\": 24 * 60 * 60 * 1000,\n\t\t\"month\": 30 * 24 * 60 * 60 * 1000,\n\t\t\"quarter\": 3 * 30 * 24 * 60 * 60 * 1000,\n\t\t\"year\": 365.2425 * 24 * 60 * 60 * 1000\n\t};\n\n\t// the allowed tick sizes, after 1 year we use\n\t// an integer algorithm\n\n\tvar baseSpec = [\n\t\t[1, \"second\"], [2, \"second\"], [5, \"second\"], [10, \"second\"],\n\t\t[30, \"second\"], \n\t\t[1, \"minute\"], [2, \"minute\"], [5, \"minute\"], [10, \"minute\"],\n\t\t[30, \"minute\"], \n\t\t[1, \"hour\"], [2, \"hour\"], [4, \"hour\"],\n\t\t[8, \"hour\"], [12, \"hour\"],\n\t\t[1, \"day\"], [2, \"day\"], [3, \"day\"],\n\t\t[0.25, \"month\"], [0.5, \"month\"], [1, \"month\"],\n\t\t[2, \"month\"]\n\t];\n\n\t// we don't know which variant(s) we'll need yet, but generating both is\n\t// cheap\n\n\tvar specMonths = baseSpec.concat([[3, \"month\"], [6, \"month\"],\n\t\t[1, \"year\"]]);\n\tvar specQuarters = baseSpec.concat([[1, \"quarter\"], [2, \"quarter\"],\n\t\t[1, \"year\"]]);\n\n\tfunction init(plot) {\n\t\tplot.hooks.processDatapoints.push(function (plot, series, datapoints) {\n\t\t\t$.each(plot.getAxes(), function(axisName, axis) {\n\n\t\t\t\tvar opts = axis.options;\n\n\t\t\t\tif (opts.mode == \"time\") {\n\t\t\t\t\taxis.tickGenerator = function(axis) {\n\n\t\t\t\t\t\tvar ticks = [];\n\t\t\t\t\t\tvar d = dateGenerator(axis.min, opts);\n\t\t\t\t\t\tvar minSize = 0;\n\n\t\t\t\t\t\t// make quarter use a possibility if quarters are\n\t\t\t\t\t\t// mentioned in either of these options\n\n\t\t\t\t\t\tvar spec = (opts.tickSize && opts.tickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ||\n\t\t\t\t\t\t\t(opts.minTickSize && opts.minTickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ? specQuarters : specMonths;\n\n\t\t\t\t\t\tif (opts.minTickSize != null) {\n\t\t\t\t\t\t\tif (typeof opts.tickSize == \"number\") {\n\t\t\t\t\t\t\t\tminSize = opts.tickSize;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tminSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (var i = 0; i < spec.length - 1; ++i) {\n\t\t\t\t\t\t\tif (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]]\n\t\t\t\t\t\t\t\t\t\t\t + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2\n\t\t\t\t\t\t\t\t&& spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar size = spec[i][0];\n\t\t\t\t\t\tvar unit = spec[i][1];\n\n\t\t\t\t\t\t// special-case the possibility of several years\n\n\t\t\t\t\t\tif (unit == \"year\") {\n\n\t\t\t\t\t\t\t// if given a minTickSize in years, just use it,\n\t\t\t\t\t\t\t// ensuring that it's an integer\n\n\t\t\t\t\t\t\tif (opts.minTickSize != null && opts.minTickSize[1] == \"year\") {\n\t\t\t\t\t\t\t\tsize = Math.floor(opts.minTickSize[0]);\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tvar magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));\n\t\t\t\t\t\t\t\tvar norm = (axis.delta / timeUnitSize.year) / magn;\n\n\t\t\t\t\t\t\t\tif (norm < 1.5) {\n\t\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t\t} else if (norm < 3) {\n\t\t\t\t\t\t\t\t\tsize = 2;\n\t\t\t\t\t\t\t\t} else if (norm < 7.5) {\n\t\t\t\t\t\t\t\t\tsize = 5;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsize = 10;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsize *= magn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// minimum size for years is 1\n\n\t\t\t\t\t\t\tif (size < 1) {\n\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taxis.tickSize = opts.tickSize || [size, unit];\n\t\t\t\t\t\tvar tickSize = axis.tickSize[0];\n\t\t\t\t\t\tunit = axis.tickSize[1];\n\n\t\t\t\t\t\tvar step = tickSize * timeUnitSize[unit];\n\n\t\t\t\t\t\tif (unit == \"second\") {\n\t\t\t\t\t\t\td.setSeconds(floorInBase(d.getSeconds(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"minute\") {\n\t\t\t\t\t\t\td.setMinutes(floorInBase(d.getMinutes(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"hour\") {\n\t\t\t\t\t\t\td.setHours(floorInBase(d.getHours(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"month\") {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"quarter\") {\n\t\t\t\t\t\t\td.setMonth(3 * floorInBase(d.getMonth() / 3,\n\t\t\t\t\t\t\t\ttickSize));\n\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\td.setFullYear(floorInBase(d.getFullYear(), tickSize));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset smaller components\n\n\t\t\t\t\t\td.setMilliseconds(0);\n\n\t\t\t\t\t\tif (step >= timeUnitSize.minute) {\n\t\t\t\t\t\t\td.setSeconds(0);\n\t\t\t\t\t\t} else if (step >= timeUnitSize.hour) {\n\t\t\t\t\t\t\td.setMinutes(0);\n\t\t\t\t\t\t} else if (step >= timeUnitSize.day) {\n\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t} else if (step >= timeUnitSize.day * 4) {\n\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t} else if (step >= timeUnitSize.month * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 3));\n\t\t\t\t\t\t} else if (step >= timeUnitSize.quarter * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 6));\n\t\t\t\t\t\t} else if (step >= timeUnitSize.year) {\n\t\t\t\t\t\t\td.setMonth(0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar carry = 0;\n\t\t\t\t\t\tvar v = Number.NaN;\n\t\t\t\t\t\tvar prev;\n\n\t\t\t\t\t\tdo {\n\n\t\t\t\t\t\t\tprev = v;\n\t\t\t\t\t\t\tv = d.getTime();\n\t\t\t\t\t\t\tticks.push(v);\n\n\t\t\t\t\t\t\tif (unit == \"month\" || unit == \"quarter\") {\n\t\t\t\t\t\t\t\tif (tickSize < 1) {\n\n\t\t\t\t\t\t\t\t\t// a bit complicated - we'll divide the\n\t\t\t\t\t\t\t\t\t// month/quarter up but we need to take\n\t\t\t\t\t\t\t\t\t// care of fractions so we don't end up in\n\t\t\t\t\t\t\t\t\t// the middle of a day\n\n\t\t\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t\t\t\tvar start = d.getTime();\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\t(unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t\tvar end = d.getTime();\n\t\t\t\t\t\t\t\t\td.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);\n\t\t\t\t\t\t\t\t\tcarry = d.getHours();\n\t\t\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\ttickSize * (unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\t\td.setFullYear(d.getFullYear() + tickSize);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\td.setTime(v + step);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (v < axis.max && v != prev);\n\n\t\t\t\t\t\treturn ticks;\n\t\t\t\t\t};\n\n\t\t\t\t\taxis.tickFormatter = function (v, axis) {\n\n\t\t\t\t\t\tvar d = dateGenerator(v, axis.options);\n\n\t\t\t\t\t\t// first check global format\n\n\t\t\t\t\t\tif (opts.timeformat != null) {\n\t\t\t\t\t\t\treturn formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// possibly use quarters if quarters are mentioned in\n\t\t\t\t\t\t// any of these places\n\n\t\t\t\t\t\tvar useQuarters = (axis.options.tickSize &&\n\t\t\t\t\t\t\t\taxis.options.tickSize[1] == \"quarter\") ||\n\t\t\t\t\t\t\t(axis.options.minTickSize &&\n\t\t\t\t\t\t\t\taxis.options.minTickSize[1] == \"quarter\");\n\n\t\t\t\t\t\tvar t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];\n\t\t\t\t\t\tvar span = axis.max - axis.min;\n\t\t\t\t\t\tvar suffix = (opts.twelveHourClock) ? \" %p\" : \"\";\n\t\t\t\t\t\tvar hourCode = (opts.twelveHourClock) ? \"%I\" : \"%H\";\n\t\t\t\t\t\tvar fmt;\n\n\t\t\t\t\t\tif (t < timeUnitSize.minute) {\n\t\t\t\t\t\t\tfmt = hourCode + \":%M:%S\" + suffix;\n\t\t\t\t\t\t} else if (t < timeUnitSize.day) {\n\t\t\t\t\t\t\tif (span < 2 * timeUnitSize.day) {\n\t\t\t\t\t\t\t\tfmt = hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %d \" + hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (t < timeUnitSize.month) {\n\t\t\t\t\t\t\tfmt = \"%b %d\";\n\t\t\t\t\t\t} else if ((useQuarters && t < timeUnitSize.quarter) ||\n\t\t\t\t\t\t\t(!useQuarters && t < timeUnitSize.year)) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"%b\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (useQuarters && t < timeUnitSize.year) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"Q%q\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"Q%q %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfmt = \"%Y\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar rt = formatDate(d, fmt, opts.monthNames, opts.dayNames);\n\n\t\t\t\t\t\treturn rt;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: 'time',\n\t\tversion: '1.0'\n\t});\n\n\t// Time-axis support used to be in Flot core, which exposed the\n\t// formatDate function on the plot object. Various plugins depend\n\t// on the function, so we need to re-expose it here.\n\n\t$.plot.formatDate = formatDate;\n\n})(jQuery);\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Note: This script is under development. We are using this inside core only and can be update in future.\n */\n(function ($) {\n\t'use strict';\n\n\t$.extend({\n\t\tgiveAjaxifyFields: function giveAjaxifyFields(customSettings) {\n\t\t\tvar $countryField,\n\t\t\t $parentWrapper,\n\t\t\t defaultSettings = {\n\n\t\t\t\t// Supported types: country_state.\n\t\t\t\ttype: '',\n\n\t\t\t\t// Define these setting only if type set to country_state.\n\t\t\t\tparentWrapper: 'form',\n\t\t\t\tcountryFieldName: 'country',\n\t\t\t\tstateFieldName: 'state',\n\t\t\t\tstateFieldWrapper: '.give-field-wrap',\n\t\t\t\tchosenState: true\n\t\t\t};\n\n\t\t\tvar settings = $.extend({}, defaultSettings, customSettings || {});\n\n\t\t\tswitch (settings.type) {\n\t\t\t\tcase 'country_state':\n\t\t\t\t\t$countryField = $('select[name=\"' + settings.countryFieldName + '\"]');\n\t\t\t\t\t$parentWrapper = $countryField.closest(settings.parentWrapper);\n\n\t\t\t\t\t// Bailout.\n\t\t\t\t\tif (!$countryField.length || 'Country_state' === $countryField.data('give-ajaxify-field')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set data attribute.\n\t\t\t\t\t$countryField.data('give-ajaxify-field', 'country_state');\n\n\t\t\t\t\t// Update base state field based on selected base country\n\t\t\t\t\t$countryField.change(function () {\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t $stateField = $this.closest(settings.parentWrapper).find('[name=\"' + settings.stateFieldName + '\"]'),\n\t\t\t\t\t\t $stateFieldWrapper = $stateField.closest(settings.stateFieldWrapper),\n\t\t\t\t\t\t $stateFieldLabel = $('label', $stateFieldWrapper);\n\n\t\t\t\t\t\t// If state does not has wrapper then find it's label\n\t\t\t\t\t\tif (!settings.stateFieldWrapper) {\n\t\t\t\t\t\t\t$stateFieldLabel = $('label[for=\"' + settings.stateFieldName + '\"]', $parentWrapper);\n\t\t\t\t\t\t\t$stateFieldWrapper = $stateField.parent();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\taction: 'give_get_states',\n\t\t\t\t\t\t\tcountry: $this.val(),\n\t\t\t\t\t\t\tfield_name: settings.stateFieldName\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$.post(ajaxurl, data, function (response) {\n\n\t\t\t\t\t\t\t// Bailout.\n\t\t\t\t\t\t\tif (!response.show_field) {\n\t\t\t\t\t\t\t\tif (settings.stateFieldWrapper) {\n\t\t\t\t\t\t\t\t\t$stateFieldWrapper.addClass('give-hidden');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$stateField.addClass('give-hidden');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($stateFieldLabel.length) {\n\t\t\t\t\t\t\t\t$stateFieldLabel.text(response.states_label);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (settings.chosenState) {\n\t\t\t\t\t\t\t\t$stateField.chosen('destroy');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Show field.\n\t\t\t\t\t\t\tif (settings.stateFieldWrapper) {\n\t\t\t\t\t\t\t\t$stateFieldWrapper.removeClass('give-hidden');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$stateField.removeClass('give-hidden');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (_typeof(response.states_found) !== undefined && true === response.states_found) {\n\t\t\t\t\t\t\t\t// Update html.\n\t\t\t\t\t\t\t\t$stateField.replaceWith(response.data);\n\n\t\t\t\t\t\t\t\t// Update selector.\n\t\t\t\t\t\t\t\t$stateField = $('[name=\"' + settings.stateFieldName + '\"]', $stateFieldWrapper);\n\n\t\t\t\t\t\t\t\t// Reset chosenState\n\t\t\t\t\t\t\t\tif (settings.chosenState) {\n\t\t\t\t\t\t\t\t\t$stateField.chosen();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$stateField.replaceWith('<input type=\"text\" name=\"' + settings.stateFieldName + '\" value=\"' + response.default_state + '\" class=\"medium-text\"/>');\n\n\t\t\t\t\t\t\t\t// Update selector.\n\t\t\t\t\t\t\t\t$stateField = $('[name=\"' + settings.stateFieldName + '\"]', $stateFieldWrapper);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t});\n})(jQuery);\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nvar Give_Selector_Cache = {\n\tcollection: {},\n\n\tget: function get(selector, parent, refresh_cache) {\n\t\t// Bailout.\n\t\tif (!jQuery) {\n\t\t\treturn -1;\n\t\t}\n\n\t\t// Set default parent.\n\t\tparent = undefined !== parent ? parent : undefined;\n\t\trefresh_cache = refresh_cache === true;\n\n\t\tif (undefined === this.collection[selector] || refresh_cache) {\n\t\t\tif (undefined !== parent) {\n\t\t\t\tthis.collection[selector] = jQuery(selector, parent);\n\t\t\t} else {\n\t\t\t\tthis.collection[selector] = jQuery(selector);\n\t\t\t}\n\t\t}\n\n\t\treturn this.collection[selector];\n\t}\n};\n\nwindow.Give_Selector_Cache = Give_Selector_Cache;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\n/*\n * jQuery Repeatable Fields v1.4.8\n * http://www.rhyzz.com/repeatable-fields.html\n *\n * Copyright (c) 2014-2015 Rhyzz\n * License MIT\n */\n\n(function ($) {\n\t$.fn.repeatable_fields = function (custom_settings) {\n\t\tvar default_settings = {\n\t\t\twrapper: '.wrapper',\n\t\t\tcontainer: '.container',\n\t\t\trow: '.row',\n\t\t\tadd: '.add',\n\t\t\tremove: '.remove',\n\t\t\tconfirm_before_remove_row: false,\n\t\t\tconfirm_before_remove_row_text: '',\n\t\t\tmove: '.move',\n\t\t\ttemplate: '.template',\n\t\t\tis_sortable: true,\n\t\t\tbefore_add: null,\n\t\t\tafter_add: after_add,\n\t\t\tbefore_remove: null,\n\t\t\tafter_remove: null,\n\t\t\tsortable_options: null,\n\t\t\trow_count_placeholder: '{{row-count-placeholder}}'\n\t\t};\n\n\t\tvar settings = $.extend({}, default_settings, custom_settings);\n\n\t\t// Initialize all repeatable field wrappers\n\t\tinitialize(this);\n\n\t\tfunction initialize(parent) {\n\t\t\t$(settings.wrapper, parent).each(function (index, element) {\n\t\t\t\tvar wrapper = this;\n\n\t\t\t\tvar container = $(wrapper).children(settings.container);\n\n\t\t\t\t// Disable all form elements inside the row template\n\t\t\t\t$(container).children(settings.template).hide().find(':input').each(function () {\n\t\t\t\t\t$(this).prop('disabled', true);\n\t\t\t\t});\n\n\t\t\t\tvar row_count = $(container).children(settings.row).filter(function () {\n\t\t\t\t\treturn !$(this).hasClass(settings.template.replace('.', ''));\n\t\t\t\t}).length;\n\n\t\t\t\t$(container).attr('data-rf-row-count', row_count);\n\n\t\t\t\t$(wrapper).on('click', settings.add, function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\n\t\t\t\t\tvar row_template = $($(container).children(settings.template).clone().removeClass(settings.template.replace('.', ''))[0].outerHTML);\n\n\t\t\t\t\t// Enable all form elements inside the row template\n\t\t\t\t\t$(row_template).find(':input').each(function () {\n\t\t\t\t\t\t$(this).prop('disabled', false);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (typeof settings.before_add === 'function') {\n\t\t\t\t\t\tsettings.before_add(container);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar new_row = $(row_template).show().appendTo(container);\n\n\t\t\t\t\tif (typeof settings.after_add === 'function') {\n\t\t\t\t\t\tsettings.after_add(container, new_row, after_add);\n\t\t\t\t\t}\n\n\t\t\t\t\t// The new row might have it's own repeatable field wrappers so initialize them too\n\t\t\t\t\tinitialize(new_row);\n\t\t\t\t});\n\n\t\t\t\t$(wrapper).on('click', settings.remove, function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\n\t\t\t\t\tif (settings.confirm_before_remove_row && settings.confirm_before_remove_row_text) {\n\t\t\t\t\t\tif (!confirm(settings.confirm_before_remove_row_text)) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar row = $(this).parents(settings.row).first();\n\n\t\t\t\t\tif (typeof settings.before_remove === 'function') {\n\t\t\t\t\t\tsettings.before_remove(container, row);\n\t\t\t\t\t}\n\n\t\t\t\t\trow.remove();\n\n\t\t\t\t\tif (typeof settings.after_remove === 'function') {\n\t\t\t\t\t\tsettings.after_remove(container);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (settings.is_sortable === true && typeof $.ui !== 'undefined' && typeof $.ui.sortable !== 'undefined') {\n\t\t\t\t\tvar sortable_options = settings.sortable_options !== null ? settings.sortable_options : {};\n\n\t\t\t\t\tsortable_options.handle = settings.move;\n\n\t\t\t\t\t$(wrapper).find(settings.container).sortable(sortable_options);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction after_add(container, new_row) {\n\t\t\tvar row_count = $(container).attr('data-rf-row-count');\n\n\t\t\trow_count++;\n\n\t\t\t$('*', new_row).each(function () {\n\t\t\t\t$.each(this.attributes, function (index, element) {\n\t\t\t\t\tthis.value = this.value.replace(settings.row_count_placeholder, row_count - 1);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t$(container).attr('data-rf-row-count', row_count);\n\t\t}\n\t};\n})(jQuery);\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\n/*!\n * Give Admin Forms JS\n *\n * @description: The Give Admin Forms scripts. Only enqueued on the give_forms CPT; used to validate fields, show/hide, and other functions\n * @package: Give\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n(function ($) {\n\t/**\n * Default Radio Button\n *\n * @description: Allow only one radio button to be checked at a time\n * @since: 1.0\n */\n\tvar handle_default_radio = function handle_default_radio() {\n\t\t$('body').on('change', '.give-give_default_radio_inline', function () {\n\t\t\t// Unset pre selected default level.\n\t\t\t$('.give-give_default_radio_inline').prop('checked', false);\n\n\t\t\t// Set level as default.\n\t\t\t$(this).prop('checked', true);\n\t\t});\n\n\t\t// Note: some cases is covered in admin-scripts.js.\n\t\t// For ref: handle_metabox_repeater_field_row_count, handle_metabox_repeater_field_row_remove\n\t};\n\n\t/**\n * Toggle Conditional Form Fields\n *\n * @since: 1.0\n */\n\tvar toggle_conditional_form_fields = function toggle_conditional_form_fields() {\n\n\t\t//Price Option\n\t\tvar price_option = $('._give_price_option_field input:radio');\n\n\t\tprice_option.on('change', function () {\n\n\t\t\tvar price_option_val = $('._give_price_option_field input:radio:checked').val();\n\t\t\tif (price_option_val === 'set') {\n\t\t\t\t//set price shows\n\t\t\t\t$('._give_set_price_field').show();\n\t\t\t\t$('#_give_donation_levels_field').hide(); // Hide multi-val stuffs.\n\t\t\t\t$('._give_display_style_field').hide(); // Hide display style setting.\n\t\t\t} else {\n\t\t\t\t//multi-value shows\n\t\t\t\t$('._give_set_price_field').hide();\n\t\t\t\t$('#_give_donation_levels_field').show(); // Show set stuffs.\n\t\t\t\t$('._give_display_style_field').show(); // Show display style setting.\n\t\t\t}\n\t\t}).change();\n\n\t\t//Content Option\n\t\tvar display_content = $('._give_display_content_field input:radio');\n\t\tdisplay_content.on('change', function () {\n\t\t\t// Get checked radio button value.\n\t\t\tvar display_content_val = $('._give_display_content_field input:radio:checked').val();\n\n\t\t\tif (display_content_val === 'enabled') {\n\t\t\t\t$('._give_content_placement_field').show();\n\t\t\t\t$('._give_form_content_field').show();\n\t\t\t} else {\n\t\t\t\t$('._give_content_placement_field').hide();\n\t\t\t\t$('._give_form_content_field').hide();\n\t\t\t}\n\t\t}).change();\n\n\t\t//Terms Option\n\t\tvar terms_option = $('._give_terms_option_field input:radio');\n\t\tterms_option.on('change', function () {\n\t\t\t// Get checked radio button value.\n\t\t\tvar terms_option_val = $('._give_terms_option_field input:radio:checked').val();\n\n\t\t\tif (terms_option_val === 'enabled') {\n\t\t\t\t$('._give_agree_label_field').show();\n\t\t\t\t$('._give_agree_text_field').show();\n\t\t\t} else {\n\t\t\t\t$('._give_agree_label_field').hide();\n\t\t\t\t$('._give_agree_text_field').hide();\n\t\t\t}\n\t\t}).change();\n\n\t\t//Payment Display\n\t\tvar payment_display_option = $('._give_payment_display_field input:radio');\n\t\tpayment_display_option.on('change', function () {\n\t\t\tvar payment_display_option_val = $('._give_payment_display_field input:radio:checked').val();\n\n\t\t\tif (payment_display_option_val === 'onpage') {\n\t\t\t\t$('._give_reveal_label_field').hide();\n\t\t\t} else {\n\t\t\t\t$('._give_reveal_label_field').show();\n\t\t\t}\n\t\t}).change();\n\n\t\t//Custom Amount\n\t\tvar custom_amount_option = $('._give_custom_amount_field input:radio');\n\t\tcustom_amount_option.on('change', function () {\n\t\t\tvar custom_amount_option_val = $('._give_custom_amount_field input:radio:checked').val();\n\t\t\tif (custom_amount_option_val === 'disabled') {\n\t\t\t\t$('._give_custom_amount_range_field ').hide();\n\t\t\t\t$('._give_custom_amount_text_field').hide();\n\t\t\t} else {\n\t\t\t\t$('._give_custom_amount_range_field ').show();\n\t\t\t\t$('._give_custom_amount_text_field').show();\n\t\t\t}\n\t\t}).change();\n\n\t\t//Goals\n\t\tvar goal_option = $('._give_goal_option_field');\n\t\tvar goal_format = $('._give_goal_format_field input:radio');\n\t\t//Close Form when Goal Achieved\n\t\tvar close_form_when_goal_achieved_option = $('._give_close_form_when_goal_achieved_field input:radio');\n\n\t\tclose_form_when_goal_achieved_option.on('change', function () {\n\t\t\tvar close_form_when_goal_achieved_option_val = $('._give_close_form_when_goal_achieved_field input:radio:checked').val();\n\t\t\tif (close_form_when_goal_achieved_option_val === 'disabled') {\n\t\t\t\t$('._give_form_goal_achieved_message_field').hide();\n\t\t\t} else {\n\t\t\t\t$('._give_form_goal_achieved_message_field').show();\n\t\t\t}\n\t\t}).change();\n\n\t\tgoal_option.on('change', function () {\n\t\t\tvar goal_option = $('._give_goal_option_field input:radio:checked').val();\n\t\t\tif (goal_option === 'disabled') {\n\n\t\t\t\t$('._give_set_goal_field').hide();\n\t\t\t\t$('._give_goal_format_field').hide();\n\t\t\t\t$('._give_goal_color_field').hide();\n\t\t\t\t$('._give_close_form_when_goal_achieved_field').hide();\n\t\t\t\t$('._give_form_goal_achieved_message_field').hide();\n\t\t\t\t$('._give_number_of_donation_goal_field').hide();\n\t\t\t\t$('._give_number_of_donor_goal_field').hide();\n\t\t\t} else {\n\t\t\t\t$('._give_set_goal_field').show();\n\t\t\t\t$('._give_goal_format_field').show();\n\t\t\t\t$('._give_goal_color_field').show();\n\t\t\t\t$('._give_close_form_when_goal_achieved_field').show();\n\n\t\t\t\tvar close_form_when_goal_achieved_option_val = $('._give_close_form_when_goal_achieved_field input:radio:checked').val();\n\n\t\t\t\tif (close_form_when_goal_achieved_option_val === 'enabled') {\n\t\t\t\t\t$('._give_form_goal_achieved_message_field').show();\n\t\t\t\t}\n\n\t\t\t\t// Trigger goal format option.\n\t\t\t\tgoal_format.change();\n\t\t\t}\n\t\t}).change();\n\n\t\tgoal_format.on('change', function () {\n\t\t\tvar goal_format_val = $('._give_goal_format_field input:radio:checked').val();\n\t\t\tvar goal_option_val = $('._give_goal_option_field input:radio:checked').val();\n\n\t\t\tif ('donation' === goal_format_val) {\n\t\t\t\t$('._give_set_goal_field, ._give_number_of_donor_goal_field,._give_number_of_donation_goal_field').hide();\n\t\t\t\tif ('disabled' !== goal_option_val) {\n\t\t\t\t\t$('._give_number_of_donation_goal_field').show();\n\t\t\t\t}\n\t\t\t} else if ('donors' === goal_format_val) {\n\t\t\t\t$('._give_set_goal_field, ._give_number_of_donation_goal_field, ._give_number_of_donor_goal_field').hide();\n\t\t\t\tif ('disabled' !== goal_option_val) {\n\t\t\t\t\t$('._give_number_of_donor_goal_field').show();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t'disabled' === goal_option_val ? $('._give_set_goal_field').hide() : $('._give_set_goal_field').show();\n\t\t\t\t$('._give_number_of_donation_goal_field, ._give_number_of_donor_goal_field').hide();\n\t\t\t}\n\t\t}).change();\n\n\t\t// Offline Donations.\n\t\tvar offline_customization_option = $('._give_customize_offline_donations_field input:radio');\n\t\toffline_customization_option.on('change', function () {\n\t\t\tvar offline_customization_option_val = $('._give_customize_offline_donations_field input:radio:checked').val();\n\t\t\tif ('enabled' === offline_customization_option_val) {\n\t\t\t\t$('._give_offline_checkout_notes_field').show();\n\t\t\t\t$('._give_offline_donation_enable_billing_fields_single_field').show();\n\t\t\t\t$('._give_offline_donation_subject_field').show();\n\t\t\t\t$('._give_offline_donation_email_field').show();\n\t\t\t} else {\n\t\t\t\t$('._give_offline_checkout_notes_field').hide();\n\t\t\t\t$('._give_offline_donation_enable_billing_fields_single_field').hide();\n\t\t\t\t$('._give_offline_donation_subject_field').hide();\n\t\t\t\t$('._give_offline_donation_email_field').hide();\n\t\t\t}\n\t\t}).change();\n\n\t\t//Email options.\n\t\tvar email_options = $('._give_email_options_field input:radio');\n\t\temail_options.on('change', function () {\n\t\t\t// Get checked radio button value.\n\t\t\tvar email_options_val = $('._give_email_options_field input:radio:checked').val();\n\n\t\t\tif (email_options_val === 'enabled') {\n\t\t\t\t$('#email_notification_options .give-field-wrap:not(._give_email_options_field)').show();\n\t\t\t} else {\n\t\t\t\t$('#email_notification_options .give-field-wrap:not(._give_email_options_field)').hide();\n\t\t\t}\n\t\t}).change();\n\n\t\t// Title Prefixes.\n\t\tvar defaultNameTitlePrefixChecked = $('input[name=\"_give_name_title_prefix\"]:checked').val();\n\t\tif ('required' === defaultNameTitlePrefixChecked || 'optional' === defaultNameTitlePrefixChecked) {\n\t\t\t$('.give-title-prefixes-wrap').show();\n\t\t}\n\n\t\t$('input[name=\"_give_name_title_prefix\"]').on('change', function () {\n\t\t\tvar titlePrefixChecked = $('input[name=\"_give_name_title_prefix\"]:checked').val();\n\n\t\t\tif ('required' === titlePrefixChecked || 'optional' === titlePrefixChecked) {\n\t\t\t\t$('.give-title-prefixes-wrap').show();\n\t\t\t} else {\n\t\t\t\t$('.give-title-prefixes-wrap').hide();\n\t\t\t}\n\t\t});\n\t};\n\n\t//Handle Repeatable Row ID\n\tvar handle_repeatable_row_ID = function handle_repeatable_row_ID() {\n\n\t\t//Ensure for new posts that the repeater is filled\n\t\tif ($('.give-level-id').text() === '') {\n\t\t\tvar row_group = $('.cmb-repeatable-grouping');\n\t\t\t//loop through all repeatable rows and set vals\n\t\t\trow_group.each(function (index, object) {\n\n\t\t\t\tvar row_id = $(object).data('iterator') + 1;\n\n\t\t\t\t$(object).find('.give-level-id').text(row_id);\n\t\t\t\t$(object).find('.give-level-id-input').val(row_id);\n\t\t\t});\n\t\t}\n\n\t\t$('body').on('cmb2_add_row', function (event, row) {\n\t\t\tset_row_ids(row);\n\t\t});\n\t\t$('body').on('cmb2_shift_rows_complete', function (event, self) {\n\n\t\t\tvar row_group = $('.cmb-repeatable-grouping');\n\t\t\t//loop through all repeatable rows and set vals\n\t\t\trow_group.each(function (index, object) {\n\n\t\t\t\tvar row_id = $(object).find('input.give-level-id-input').val();\n\n\t\t\t\t$(object).find('.give-level-id').text(row_id);\n\t\t\t});\n\t\t});\n\n\t\t/**\n * Set Row IDs\n *\n * @description: Sets values in the Multi-level donation repeatable field\n * @param row\n */\n\t\tfunction set_row_ids(row) {\n\n\t\t\tvar row_count = count_repeatable_rows();\n\n\t\t\t//Add row ID value to hidden field\n\t\t\t$(row).find('input.give-level-id-input').val(row_count);\n\t\t\t//Add row ID to displayed ID\n\t\t\t$(row).find('.give-level-id').text(row_count);\n\t\t}\n\n\t\t/**\n * Loops through Multi-level repeater rows\n *\n * @description: First counts the rows then it compares the row count with the largest iterator count.\n *\n * @returns {number}\n */\n\t\tfunction count_repeatable_rows() {\n\t\t\tvar row_counter = 0;\n\t\t\tvar row_largest_number = 0;\n\t\t\tvar row_number = 0;\n\n\t\t\t//Loop through repeatable rows to see what highest ID is currently\n\t\t\t$('#_give_donation_levels_repeat > .cmb-repeatable-grouping').each(function (index, value) {\n\n\t\t\t\trow_number = $(this).find('input.give-level-id-input').val();\n\n\t\t\t\tif (row_number > row_largest_number) {\n\t\t\t\t\trow_largest_number = row_number;\n\t\t\t\t}\n\n\t\t\t\trow_counter++;\n\t\t\t});\n\n\t\t\tif (typeof row_largest_number !== 'undefined' && row_largest_number >= row_counter) {\n\t\t\t\treturn parseInt(row_largest_number) + 1; //ensure no duplicate rows returned\n\t\t\t} else {\n\t\t\t\treturn row_counter;\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n * Misc Cleanup\n *\n * @description: Clean up and tweaks\n * @since: 1.0\n */\n\tfunction misc_cleanup() {\n\n\t\t//No Value = Placeholders: determine if value is 0.00 and remove if so in favor of placeholders\n\t\t$('.cmb2-text-money').each(function (index, object) {\n\t\t\tvar this_val = parseInt($(object).val());\n\t\t\tif (!this_val) {\n\t\t\t\t$(object).removeAttr('value');\n\t\t\t}\n\t\t});\n\t}\n\n\t//On DOM Ready\n\t$(function () {\n\n\t\thandle_default_radio();\n\t\ttoggle_conditional_form_fields();\n\t\thandle_repeatable_row_ID();\n\t\tmisc_cleanup();\n\t});\n})(jQuery);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\n/*!\n * Give Admin Forms JS\n *\n * @description: The Give Admin Settings scripts. Only enqueued on the give-settings page; used for tabs and other show/hide functionality\n * @package: Give\n * @since: 1.5\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n/* globals Give */\njQuery(document).ready(function ($) {\n\n\t/**\n * Sortable payment gateways.\n */\n\tvar $payment_gateways = jQuery('ul.give-payment-gatways-list');\n\tif ($payment_gateways.length) {\n\t\t$payment_gateways.sortable();\n\t}\n\n\t/**\n * Change currency position symbol on changing the currency\n */\n\tvar give_settings_currency = '#give-mainform #currency';\n\tvar give_settings_position = '#give-mainform #currency_position';\n\t$('body').on('change', give_settings_currency, function () {\n\t\tvar currency_text = $(give_settings_currency + ' option:selected').text(),\n\t\t currency_sign = currency_text.split('(').pop().split(')').shift();\n\n\t\tif ('' === currency_sign) {\n\t\t\tcurrency_sign = give_vars.currency_sign;\n\t\t}\n\n\t\tvar before_text = $(give_settings_position).data('before-template');\n\t\tbefore_text = before_text.replace('{currency_pos}', currency_sign);\n\t\t$(give_settings_position + ' option[value=\"before\"]').text(before_text);\n\n\t\tvar after_text = $(give_settings_position).data('after-template');\n\t\tafter_text = after_text.replace('{currency_pos}', currency_sign);\n\t\t$(give_settings_position + ' option[value=\"after\"]').text(after_text);\n\t});\n\n\t/**\n * Show/Hide Title Prefixes\n */\n\tif ('disabled' !== $('input[name=\"name_title_prefix\"]:checked').val()) {\n\t\t$('.give-title-prefixes-settings-wrap').show();\n\t}\n\n\t$('input[name=\"name_title_prefix\"]').on('change', function () {\n\t\tif ('disabled' !== $(this).val()) {\n\t\t\t$('.give-title-prefixes-settings-wrap').show();\n\t\t} else {\n\t\t\t$('.give-title-prefixes-settings-wrap').hide();\n\t\t}\n\t});\n\n\t/**\n * Repeater setting field event.\n */\n\t$('a.give-repeat-setting-field').on('click', function (e) {\n\t\te.preventDefault();\n\t\tvar $parent = $(this).parents('td'),\n\t\t $first_setting_field_group = $('p:first-child', $parent),\n\t\t $new_setting_field_group = $first_setting_field_group.clone(),\n\t\t setting_field_count = $('p', $parent).not('.give-field-description').length,\n\t\t fieldID = $(this).data('id') + '_' + ++setting_field_count,\n\t\t $prev_field = $(this).prev();\n\n\t\t// Create new field only if previous is non empty.\n\t\tif ($('input', $prev_field).val()) {\n\t\t\t// Add setting field html to dom.\n\t\t\t$(this).before($new_setting_field_group);\n\t\t\t$prev_field = $(this).prev();\n\n\t\t\t// Set id and value for setting field.\n\t\t\t$('input', $prev_field).attr('id', fieldID);\n\t\t\t$('input', $prev_field).val('');\n\t\t}\n\n\t\treturn false;\n\t});\n\n\t$('.give-settings-page').on('click', 'span.give-remove-setting-field', function (e) {\n\t\t$(this).parents('p').remove();\n\t});\n\n\t/**\n * Enabled & disable email notification event.\n */\n\t$('.give-email-notification-status', 'table.giveemailnotifications').on('click', function () {\n\t\tvar $this = $(this),\n\t\t $icon_container = $('i', $this),\n\t\t $loader = $(this).next(),\n\t\t set_notification_status = $(this).hasClass('give-email-notification-enabled') ? 'disabled' : 'enabled',\n\t\t notification_id = $(this).data('id');\n\n\t\t// Bailout if admin can not edit notification status setting.\n\t\tif (!parseInt($this.data('edit'))) {\n\t\t\t// Remove all notice.\n\t\t\t$('div.give-email-notification-status-notice').remove();\n\n\t\t\t// Add notice.\n\t\t\t$('hr.wp-header-end').after('<div class=\"updated error give-email-notification-status-notice\"><p>' + $(this).closest('.give-email-notification-status').data('notice') + '</p></div>');\n\n\t\t\t// Scroll to notice.\n\t\t\t$('html, body').animate({ scrollTop: $('div.give-email-notification-status-notice').position().top }, 'slow');\n\n\t\t\treturn false;\n\t\t}\n\n\t\t$.ajax({\n\t\t\turl: ajaxurl,\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'give_set_notification_status',\n\t\t\t\tstatus: set_notification_status,\n\t\t\t\tnotification_id: notification_id\n\t\t\t},\n\t\t\tbeforeSend: function beforeSend() {\n\t\t\t\t$this.hide();\n\t\t\t\t$loader.addClass('is-active');\n\t\t\t},\n\t\t\tsuccess: function success(res) {\n\t\t\t\tif (res.success) {\n\t\t\t\t\t$this.removeClass('give-email-notification-' + $this.data('status'));\n\t\t\t\t\t$this.addClass('give-email-notification-' + set_notification_status);\n\t\t\t\t\t$this.data('status', set_notification_status);\n\n\t\t\t\t\tif ('enabled' === set_notification_status) {\n\t\t\t\t\t\t$icon_container.removeClass('dashicons-no-alt');\n\t\t\t\t\t\t$icon_container.addClass('dashicons-yes');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$icon_container.removeClass('dashicons-yes');\n\t\t\t\t\t\t$icon_container.addClass('dashicons-no-alt');\n\t\t\t\t\t}\n\n\t\t\t\t\t$loader.removeClass('is-active');\n\t\t\t\t\t$this.show();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\t/**\n * Ajax call to clear Give's cache.\n */\n\t$('#give-clear-cache').on('click', function () {\n\t\t$.ajax({\n\t\t\turl: ajaxurl,\n\t\t\ttype: 'GET',\n\t\t\tdata: {\n\t\t\t\taction: 'give_cache_flush'\n\t\t\t}\n\t\t}).done(function (response) {\n\t\t\tif (response.success) {\n\t\t\t\tnew Give.modal.GiveSuccessAlert({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.flush_success,\n\t\t\t\t\t\tdesc: response.data.message,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t} else {\n\t\t\t\tnew Give.modal.GiveErrorAlert({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.flush_error,\n\t\t\t\t\t\tdesc: response.data.message,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t}\n\t\t});\n\t});\n});\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\n/*!\n * Give Admin Export JS\n *\n * @description: The Give Admin Settings scripts. Only enqueued on the give-settings and give-tools page; used for exporting CSV\n * @package: Give\n * @since: 2.1\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\njQuery(document).ready(function ($) {\n\n\t/**\n * Update Export Donation Form\n *\n * @since 2.1\n */\n\tfunction give_export_update_donation_form() {\n\n\t\tvar $form = $('form#give-export_donations-form'),\n\t\t $container = $($form).find('tr.give-export-donation-form .give-select-chosen'),\n\t\t select = $container.prev(),\n\t\t $search_field = $container.find('input[type=\"text\"]'),\n\t\t variations = $container.hasClass('variations'),\n\t\t response = '';\n\n\t\t$('.give-export-donations-hide').addClass('give-hidden');\n\t\t$('li.give-export-donation-checkbox-remove').remove();\n\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: ajaxurl,\n\t\t\tdata: {\n\t\t\t\taction: 'give_form_search',\n\t\t\t\ts: '',\n\t\t\t\tfields: $($form).serialize()\n\t\t\t},\n\t\t\tbeforeSend: function beforeSend() {\n\t\t\t\tselect.closest('ul.chosen-results').empty();\n\t\t\t},\n\t\t\tsuccess: function success(data) {\n\n\t\t\t\t// Remove all options but those that are selected.\n\t\t\t\t$('option', select).remove();\n\t\t\t\tvar form_ids = [];\n\n\t\t\t\tif (data.length) {\n\n\t\t\t\t\t$form.find('.give-export-donation-button').prop('disabled', false);\n\t\t\t\t\t$.each(data, function (key, item) {\n\t\t\t\t\t\tselect.prepend('<option value=\"' + item.id + '\">' + item.name + '</option>');\n\t\t\t\t\t\tform_ids.push(item.id);\n\t\t\t\t\t});\n\n\t\t\t\t\tselect.prepend('<option value=\"0\" selected>' + select.data('placeholder') + '</option>');\n\t\t\t\t} else {\n\t\t\t\t\t// Trigger no result message event.\n\t\t\t\t\tselect.prepend('<option value=\"0\">' + select.data('no-form') + '</option>');\n\n\t\t\t\t\t$form.find('.give-export-donation-button').prop('disabled', true);\n\t\t\t\t}\n\n\t\t\t\t$form.find('.form_ids').val(form_ids.join());\n\n\t\t\t\t// Trigger update event.\n\t\t\t\t$container.prev('select.give-select-chosen').trigger('chosen:updated');\n\n\t\t\t\toutput_give_donations_fields(response);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n * Update export Donation Form when cat or tag are change\n *\n * @since 2.1\n */\n\t$('.give-export_donations #give-export_donations-form .give_forms_categories , .give-export_donations #give-export_donations-form .give_forms_tags').change(function () {\n\t\tgive_export_update_donation_form();\n\t});\n\n\t/**\n * Ajax call to get donation fields.\n */\n\t$('.give-export_donations #give-export_donations-form #give_payment_form_select').change(function () {\n\n\t\t$('.give-export-donations-hide').addClass('give-hidden');\n\n\t\t$('li.give-export-donation-checkbox-remove').remove();\n\n\t\tjQuery(document).trigger('give_export_donations_form_change');\n\n\t\tvar give_form_id;\n\n\t\t// Check for form ID.\n\t\tif (!(give_form_id = $(this).val())) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Ajax.\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: ajaxurl,\n\t\t\tdata: {\n\t\t\t\tform_id: give_form_id,\n\t\t\t\taction: 'give_export_donations_get_custom_fields'\n\t\t\t},\n\t\t\tsuccess: function success(response) {\n\t\t\t\tif (response) {\n\t\t\t\t\toutput_give_donations_fields(response);\n\t\t\t\t} else {\n\t\t\t\t\talert(give_vars.error_message);\n\t\t\t\t}\n\n\t\t\t\tjQuery(document).trigger('give_export_donations_form_response', response);\n\t\t\t}\n\t\t});\n\t});\n\n\t/**\n * Outputs the custom field checkboxes.\n *\n * @param response\n */\n\tfunction output_give_donations_fields(response) {\n\n\t\t/**\n * Standard Fields\n */\n\t\tvar standard_fields = 'undefined' !== typeof response.standard_fields && null !== response.standard_fields ? response.standard_fields : '';\n\t\tvar standard_field_list = $('.give-export-donations-standard-fields ul');\n\t\tif (standard_fields.length > 0) {\n\t\t\tstandard_field_list.closest('tr').removeClass('give-hidden');\n\t\t\t// Loop through STANDARD fields & output\n\t\t\t$(standard_fields).each(function (index, value) {\n\t\t\t\tstandard_field_list.append('<li class=\"give-export-donation-checkbox-remove\"><label for=\"give-give-donations-standard-field-' + value + '\"><input type=\"checkbox\" name=\"give_give_donations_export_option[' + value + ']\" id=\"give-give-donations-standard-field-' + value + '\">' + value + '</label> </li>');\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Hidden Fields\n */\n\t\tvar hidden_fields = 'undefined' !== typeof response.hidden_fields && null !== response.hidden_fields ? response.hidden_fields : '';\n\t\tvar hidden_field_list = $('.give-export-donations-hidden-fields ul');\n\n\t\tif (hidden_fields) {\n\t\t\thidden_field_list.closest('tr').removeClass('give-hidden');\n\n\t\t\t// Loop through HIDDEN fields & output.\n\t\t\t$(hidden_fields).each(function (index, value) {\n\t\t\t\thidden_field_list.append('<li class=\"give-export-donation-checkbox-remove\"><label for=\"give-give-donations-hidden-field-' + value + '\"><input type=\"checkbox\" name=\"give_give_donations_export_option[' + value + ']\" id=\"give-give-donations-hidden-field-' + value + '\">' + value + '</label> </li>');\n\t\t\t});\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n/*!\n * Give Admin Widgets JS\n *\n * @description: The Give Admin Widget scripts. Only enqueued on the admin widgets screen; used to validate fields, show/hide, and other functions\n * @package: Give\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n(function ($) {\n\n\t/**\n * Show/Hide continue button tile setting on basis of display setting for Give Form widget.\n */\n\tvar continue_button_setting_js = function continue_button_setting_js() {\n\t\t$('.widget-liquid-right').on('change', '.give_forms_display_style_setting_row input', function () {\n\t\t\tvar $parent = $(this).parents('p'),\n\t\t\t $continue_button_title = $parent.next();\n\n\t\t\tif ('onpage' === $('input:checked', $parent).val()) {\n\t\t\t\t$continue_button_title.hide();\n\t\t\t} else {\n\t\t\t\t$continue_button_title.show();\n\t\t\t}\n\t\t});\n\t};\n\n\t//On DOM Ready\n\t$(function () {\n\t\tcontinue_button_setting_js();\n\t\t$('.give_forms_display_style_setting_row input', '.widget-liquid-right').trigger('change');\n\t});\n\n\t//Function to Refresh jQuery toggles for Yelp Widget Pro upon saving specific widget\n\t$(document).ajaxSuccess(function (e, xhr, settings) {\n\t\tcontinue_button_setting_js();\n\t\t$('.give_forms_display_style_setting_row input', '.widget-liquid-right').trigger('change');\n\t});\n})(jQuery);\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__plugins_modal__ = __webpack_require__(10);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Give Admin JS\n *\n * @package: Give\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n/* globals give_vars */\n\n\n// Provided access to global level.\nvar give_setting_edit = false;\n\n(function ($) {\n\t/**\n * Show/Hide ajax loader.\n *\n * @since 2.0\n *\n * @param $parent\n * @param args\n */\n\tvar giveAjaxLoader = function giveAjaxLoader($parent, args) {\n\t\targs = jQuery.extend({\n\t\t\twrapper: true,\n\t\t\tshow: false\n\t\t}, args);\n\n\t\tvar $loaderParent = args.wrapper ? $('.give-spinner-wrapper', $parent) : {},\n\t\t $loader = $('.give-spinner', $parent);\n\n\t\t// Show loader.\n\t\tif (args.show) {\n\t\t\tif ($loaderParent.length) {\n\t\t\t\t$loaderParent.addClass('is-active');\n\t\t\t}\n\n\t\t\t$loader.addClass('is-active');\n\t\t\treturn;\n\t\t}\n\n\t\t// Hide loader.\n\t\tif ($loaderParent.length) {\n\t\t\t$loaderParent.removeClass('is-active');\n\t\t}\n\n\t\t$loader.removeClass('is-active');\n\t};\n\n\t/**\n * Onclick remove give-message parameter from url\n *\n * @since 1.8.14\n */\n\tvar give_dismiss_notice = function give_dismiss_notice() {\n\t\t$('body').on('click', 'button.notice-dismiss', function () {\n\t\t\tif ('give-invalid-license' !== jQuery(this).closest('div.give-notice').data('notice-id')) {\n\t\t\t\tgive_remove_give_message(jQuery(this).closest('div.give-notice').attr('id'));\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n * Remove give-message parameter from URL.\n *\n * @since 1.8.14\n * @since 2.1.4 Added new param key which remove the multiple message array from URL.\n *\n * @param key string to remove from url in multiple notices.\n */\n\tvar give_remove_give_message = function give_remove_give_message(key) {\n\t\tvar parameter = 'give-message',\n\t\t url = document.location.href,\n\t\t urlparts = url.split('?'),\n\t\t key = undefined === key ? '' : key.replace('give-', '');\n\n\t\tif (urlparts.length >= 2) {\n\t\t\tvar urlBase = urlparts.shift();\n\t\t\tvar queryString = urlparts.join('?');\n\t\t\tvar prefix = encodeURIComponent(parameter) + '=';\n\n\t\t\tvar pars = queryString.split(/[&;]/g);\n\t\t\tfor (var i = pars.length; i-- > 0;) {\n\n\t\t\t\tif (pars[i].lastIndexOf(prefix, 0) !== -1 || '' !== key && pars[i].lastIndexOf('give-messages', 0) !== -1 && pars[i].match(key + '$')) {\n\t\t\t\t\tpars.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\turl = urlBase + '?' + pars.join('&');\n\t\t\twindow.history.pushState('', document.title, url); // added this line to push the new url directly to url bar .\n\t\t}\n\t\treturn url;\n\t};\n\n\t/**\n * Setup Admin Datepicker\n * @since: 1.0\n */\n\tvar enable_admin_datepicker = function enable_admin_datepicker() {\n\t\tvar datepicker = $('.give_datepicker');\n\n\t\t// Date picker.\n\t\tif (datepicker.length > 0) {\n\t\t\tdatepicker.datepicker({\n\t\t\t\tdateFormat: give_vars.date_format\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Setup Pretty Chosen Select Fields\n */\n\tvar setup_chosen_give_selects = function setup_chosen_give_selects() {\n\n\t\t// Setup Chosen Selects.\n\t\tvar $give_chosen_containers = $('.give-select-chosen');\n\n\t\tif ($give_chosen_containers.hasClass('give-chosen-settings')) {\n\n\t\t\t// Do something to chosen used in metabox or admin settings.\n\t\t\t$give_chosen_containers.chosen({\n\t\t\t\tno_results_text: give_vars.chosen_add_title_prefix + ' ',\n\t\t\t\twidth: '30%'\n\t\t\t}).on('chosen:no_results', function (evt, data) {\n\n\t\t\t\t$(data.chosen.container).on('keydown', function (event) {\n\n\t\t\t\t\tvar chosenText = data.chosen.get_search_text();\n\n\t\t\t\t\tif (13 === event.keyCode && !jQuery(data.chosen.form_field).find('option[value=\"' + chosenText + '\"]').length) {\n\t\t\t\t\t\t$(data.chosen.form_field).append('<option value=\"' + chosenText + '\" selected>' + chosenText + '</option>').trigger('chosen:updated');\n\t\t\t\t\t\tdata.chosen.result_highlight = data.chosen.search_results.find('li.active-result').lasteturn;\n\t\t\t\t\t\tdata.chosen.result_select(evt);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Add loader with each input field.\n\t\t\t$give_chosen_containers.on('chosen:ready', function () {\n\t\t\t\t$(this).next('.chosen-container').find('input.chosen-search-input').after('<span class=\"spinner\"></span>');\n\t\t\t});\n\n\t\t\t// Initiate chosen.\n\t\t\t$give_chosen_containers.chosen({\n\t\t\t\tinherit_select_classes: true,\n\t\t\t\tplaceholder_text_single: give_vars.one_option,\n\t\t\t\tplaceholder_text_multiple: give_vars.one_or_more_option\n\t\t\t});\n\n\t\t\t// No results returned from search trigger.\n\t\t\t$give_chosen_containers.on('chosen:no_results', function () {\n\t\t\t\tvar $container = $(this).next('.chosen-container'),\n\t\t\t\t $no_results_li = $container.find('li.no-results'),\n\t\t\t\t error_string = '';\n\n\t\t\t\tif ($container.hasClass('give-select-chosen-ajax') && $no_results_li.length) {\n\t\t\t\t\terror_string = give_vars.chosen.ajax_search_msg.replace('{search_term}', '\"' + $('input', $container).val() + '\"');\n\t\t\t\t} else {\n\t\t\t\t\terror_string = give_vars.chosen.no_results_msg.replace('{search_term}', '\"' + $('input', $container).val() + '\"');\n\t\t\t\t}\n\n\t\t\t\t$no_results_li.html(error_string);\n\n\t\t\t\t// Variables for setting up the typing timer.\n\t\t\t\tvar typingTimer; // Timer identifier.\n\t\t\t\tvar doneTypingInterval = 342; // Time in ms, Slow - 521ms, Moderate - 342ms, Fast - 300ms.\n\n\t\t\t\t// Replace options with search results.\n\t\t\t\t$(document.body).on('keyup', '.give-select.chosen-container .chosen-search input, .give-select.chosen-container .search-field input', function (e) {\n\n\t\t\t\t\tvar val = $(this).val(),\n\t\t\t\t\t $container = $(this).closest('.give-select-chosen'),\n\t\t\t\t\t select = $container.prev(),\n\t\t\t\t\t $search_field = $container.find('input[type=\"text\"]'),\n\t\t\t\t\t variations = $container.hasClass('variations'),\n\t\t\t\t\t lastKey = e.which,\n\t\t\t\t\t search_type = 'give_form_search',\n\t\t\t\t\t $this = this;\n\n\t\t\t\t\t// Detect if we have a defined search type, otherwise default to donation forms.\n\t\t\t\t\tif ($container.prev().data('search-type')) {\n\n\t\t\t\t\t\t// Don't trigger AJAX if this select has all options loaded.\n\t\t\t\t\t\tif ('no_ajax' === select.data('search-type')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsearch_type = 'give_' + select.data('search-type') + '_search';\n\t\t\t\t\t}\n\n\t\t\t\t\t// Don't fire if short or is a modifier key (shift, ctrl, apple command key, or arrow keys).\n\t\t\t\t\tif (val.length <= 3 || !search_type.length || 9 === lastKey || // Tab.\n\t\t\t\t\t13 === lastKey || // Enter.\n\t\t\t\t\t16 === lastKey || // Shift.\n\t\t\t\t\t17 === lastKey || // Ctrl.\n\t\t\t\t\t18 === lastKey || // Alt.\n\t\t\t\t\t19 === lastKey || // Pause, Break.\n\t\t\t\t\t20 === lastKey || // CapsLock.\n\t\t\t\t\t27 === lastKey || // Esc.\n\t\t\t\t\t33 === lastKey || // Page Up.\n\t\t\t\t\t34 === lastKey || // Page Down.\n\t\t\t\t\t35 === lastKey || // End.\n\t\t\t\t\t36 === lastKey || // Home.\n\t\t\t\t\t37 === lastKey || // Left arrow.\n\t\t\t\t\t38 === lastKey || // Up arrow.\n\t\t\t\t\t39 === lastKey || // Right arrow.\n\t\t\t\t\t40 === lastKey || // Down arrow.\n\t\t\t\t\t44 === lastKey || // PrntScrn.\n\t\t\t\t\t45 === lastKey || // Insert.\n\t\t\t\t\t144 === lastKey || // NumLock.\n\t\t\t\t\t145 === lastKey || // ScrollLock.\n\t\t\t\t\t91 === lastKey || // WIN Key (Start).\n\t\t\t\t\t93 === lastKey || // WIN Menu.\n\t\t\t\t\t224 === lastKey || // Command key.\n\t\t\t\t\t112 <= lastKey && 123 >= lastKey // F1 to F12 lastKey.\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tclearTimeout(typingTimer);\n\t\t\t\t\t$container.addClass('give-select-chosen-ajax');\n\n\t\t\t\t\ttypingTimer = setTimeout(function () {\n\t\t\t\t\t\t$.ajax({\n\t\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\taction: search_type,\n\t\t\t\t\t\t\t\ts: val,\n\t\t\t\t\t\t\t\tfields: $($this).closest('form').serialize()\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdataType: 'json',\n\t\t\t\t\t\t\tbeforeSend: function beforeSend() {\n\t\t\t\t\t\t\t\tselect.closest('ul.chosen-results').empty();\n\t\t\t\t\t\t\t\t$search_field.prop('disabled', true);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsuccess: function success(data) {\n\n\t\t\t\t\t\t\t\t$container.removeClass('give-select-chosen-ajax');\n\n\t\t\t\t\t\t\t\t// Remove all options but those that are selected.\n\t\t\t\t\t\t\t\t$('option:not(:selected)', select).remove();\n\n\t\t\t\t\t\t\t\tif (data.length) {\n\t\t\t\t\t\t\t\t\t$.each(data, function (key, item) {\n\n\t\t\t\t\t\t\t\t\t\t// Add any option that doesn't already exist.\n\t\t\t\t\t\t\t\t\t\tif (!$('option[value=\"' + item.id + '\"]', select).length) {\n\t\t\t\t\t\t\t\t\t\t\tselect.prepend('<option value=\"' + item.id + '\">' + item.name + '</option>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t// Trigger update event.\n\t\t\t\t\t\t\t\t\t$container.prev('select.give-select-chosen').trigger('chosen:updated');\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t// Trigger no result message event.\n\t\t\t\t\t\t\t\t\t$container.prev('select.give-select-chosen').trigger('chosen:no_results');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Ensure the original query is retained within the search input.\n\t\t\t\t\t\t\t\t$search_field.prop('disabled', false);\n\t\t\t\t\t\t\t\t$search_field.val(val).focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).fail(function (response) {\n\t\t\t\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\t\t\t\tconsole.log(response);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).done(function (response) {\n\t\t\t\t\t\t\t$search_field.prop('disabled', false);\n\t\t\t\t\t\t});\n\t\t\t\t\t}, doneTypingInterval);\n\t\t\t\t});\n\n\t\t\t\t$('.give-select-chosen .chosen-search input').each(function () {\n\t\t\t\t\tvar type = $(this).parent().parent().parent().prev('select.give-select-chosen').data('search-type');\n\t\t\t\t\tvar placeholder = '';\n\n\t\t\t\t\tif ('form' === type) {\n\t\t\t\t\t\tplaceholder = give_vars.search_placeholder;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttype = 'search_placeholder_' + type;\n\t\t\t\t\t\tif (give_vars[type]) {\n\t\t\t\t\t\t\tplaceholder = give_vars[type];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$(this).attr('placeholder', placeholder);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// Fix: Chosen JS - Zero Width Issue.\n\t\t// @see https://github.com/harvesthq/chosen/issues/472#issuecomment-344414059\n\t\t$('.chosen-container').each(function () {\n\t\t\tif (0 === $(this).width()) {\n\t\t\t\t$(this).css('width', '100%');\n\t\t\t}\n\t\t});\n\n\t\t// This fixes the Chosen box being 0px wide when the thickbox is opened.\n\t\t$('#post').on('click', '.give-thickbox', function () {\n\t\t\t$('.give-select-chosen', '#choose-give-form').css('width', '100%');\n\t\t});\n\t};\n\n\t/**\n * Unformat Currency\n *\n * @use string give_vars.currency_decimals Number of decimals\n *\n * @param {string} price Price\n * @param {number|bool} dp Number of decimals\n *\n * @returns {string}\n */\n\tfunction give_unformat_currency(price, dp) {\n\t\tprice = accounting.unformat(price, give_vars.decimal_separator).toString();\n\t\tdp = 'undefined' === dp ? false : dp;\n\n\t\t// Set default value for number of decimals.\n\t\tif (false !== dp) {\n\t\t\tprice = parseFloat(price).toFixed(dp);\n\t\t} else {\n\n\t\t\t// If price do not have decimal value then set default number of decimals.\n\t\t\tprice = parseFloat(price).toFixed(give_vars.currency_decimals);\n\t\t}\n\n\t\treturn price;\n\t}\n\n\t/**\n * List donation screen JS\n */\n\n\tvar GiveListDonation = {\n\n\t\tinit: function init() {\n\t\t\tthis.deleteSingleDonation();\n\t\t\tthis.resendSingleDonationReceipt();\n\t\t},\n\n\t\tdeleteSingleDonation: function deleteSingleDonation() {\n\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\ttriggerSelector: '.delete-single-donation',\n\t\t\t\tmodalWrapper: 'give-modal--warning',\n\t\t\t\tmodalContent: {\n\t\t\t\t\ttitle: give_vars.confirm_delete_donation,\n\t\t\t\t\tdesc: give_vars.delete_payment\n\t\t\t\t},\n\t\t\t\tsuccessConfirm: function successConfirm(args) {\n\t\t\t\t\twindow.location.assign(args.el.attr('href'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tresendSingleDonationReceipt: function resendSingleDonationReceipt() {\n\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\ttriggerSelector: '.resend-single-donation-receipt',\n\t\t\t\tmodalContent: {\n\t\t\t\t\ttitle: give_vars.confirm_resend,\n\t\t\t\t\tdesc: give_vars.resend_receipt\n\t\t\t\t},\n\t\t\t\tsuccessConfirm: function successConfirm(args) {\n\t\t\t\t\twindow.location.assign(args.el.attr('href'));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Edit donation screen JS\n */\n\tvar Give_Edit_Donation = {\n\n\t\tinit: function init() {\n\t\t\tthis.edit_address();\n\t\t\tthis.add_note();\n\t\t\tthis.remove_note();\n\t\t\tthis.new_donor();\n\t\t\tthis.resend_receipt();\n\t\t\tthis.variable_price_list();\n\t\t},\n\n\t\tedit_address: function edit_address() {\n\n\t\t\t// Update base state field based on selected base country.\n\t\t\t$('select[name=\"give-payment-address[0][country]\"]').change(function () {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\tdata = {\n\t\t\t\t\taction: 'give_get_states',\n\t\t\t\t\tcountry: $this.val(),\n\t\t\t\t\tfield_name: 'give-payment-address[0][state]'\n\t\t\t\t};\n\t\t\t\t$.post(ajaxurl, data, function (response) {\n\n\t\t\t\t\t// Show the states dropdown menu.\n\t\t\t\t\t$this.closest('.column-container').find('#give-order-address-state-wrap').removeClass('give-hidden');\n\n\t\t\t\t\t// Add support to zip fields.\n\t\t\t\t\t$this.closest('.column-container').find('.give-column').removeClass('column-full');\n\t\t\t\t\t$this.closest('.column-container').find('.give-column').addClass('column');\n\n\t\t\t\t\tvar state_wrap = $('#give-order-address-state-wrap');\n\t\t\t\t\tstate_wrap.find('*').not('.order-data-address-line').remove();\n\t\t\t\t\tif (_typeof(response.states_found) !== undefined && true === response.states_found) {\n\t\t\t\t\t\tstate_wrap.append(response.data);\n\t\t\t\t\t\tstate_wrap.find('select').chosen();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate_wrap.append('<input type=\"text\" name=\"give-payment-address[0][state]\" value=\"' + response.default_state + '\" class=\"give-edit-toggles medium-text\"/>');\n\n\t\t\t\t\t\tif (_typeof(response.show_field) !== undefined && false === response.show_field) {\n\t\t\t\t\t\t\t// Hide the states dropdown menu.\n\t\t\t\t\t\t\t$this.closest('.column-container').find('#give-order-address-state-wrap').addClass('give-hidden');\n\n\t\t\t\t\t\t\t// Add support to zip fields.\n\t\t\t\t\t\t\t$this.closest('.column-container').find('.give-column').addClass('column-full');\n\t\t\t\t\t\t\t$this.closest('.column-container').find('.give-column').removeClass('column');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\n\t\tadd_note: function add_note() {\n\n\t\t\t$('#give-add-payment-note').on('click', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar postData = {\n\t\t\t\t\taction: 'give_insert_payment_note',\n\t\t\t\t\tpayment_id: $(this).data('payment-id'),\n\t\t\t\t\tnote: $('#give-payment-note').val()\n\t\t\t\t};\n\n\t\t\t\tif (postData.note) {\n\n\t\t\t\t\t$.ajax({\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: postData,\n\t\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t\t\t$('#give-payment-notes-inner').append(response);\n\t\t\t\t\t\t\t$('.give-no-payment-notes').hide();\n\t\t\t\t\t\t\t$('#give-payment-note').val('');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fail(function (data) {\n\t\t\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar border_color = $('#give-payment-note').css('border-color');\n\t\t\t\t\t$('#give-payment-note').css('border-color', 'red');\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t$('#give-payment-note').css('border-color', border_color);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tremove_note: function remove_note() {\n\n\t\t\t$('body').on('click', '.give-delete-payment-note', function (e) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar that = this;\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.confirm_deletion,\n\t\t\t\t\t\tdesc: give_vars.delete_payment_note\n\t\t\t\t\t},\n\t\t\t\t\tsuccessConfirm: function successConfirm(args) {\n\t\t\t\t\t\tvar postData = {\n\t\t\t\t\t\t\taction: 'give_delete_payment_note',\n\t\t\t\t\t\t\tpayment_id: $(that).data('payment-id'),\n\t\t\t\t\t\t\tnote_id: $(that).data('note-id')\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$.ajax({\n\t\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\t\tdata: postData,\n\t\t\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t\t\t\t$('#give-payment-note-' + postData.note_id).remove();\n\t\t\t\t\t\t\t\tif (!$('.give-payment-note').length) {\n\t\t\t\t\t\t\t\t\t$('.give-no-payment-notes').show();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).fail(function (data) {\n\t\t\t\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t});\n\t\t},\n\n\t\tnew_donor: function new_donor() {\n\n\t\t\t$('#give-donor-details').on('click', '.give-payment-new-donor, .give-payment-new-donor-cancel', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$('.donor-info').toggle();\n\t\t\t\t$('.new-donor').toggle();\n\n\t\t\t\tif ($('.new-donor').is(':visible')) {\n\t\t\t\t\t$('#give-new-donor').val(1);\n\t\t\t\t} else {\n\t\t\t\t\t$('#give-new-donor').val(0);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tresend_receipt: function resend_receipt() {\n\t\t\t$('body').on('click', '#give-resend-receipt', function (e) {\n\t\t\t\tvar that = this;\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.confirm_action,\n\t\t\t\t\t\tdesc: give_vars.resend_receipt\n\t\t\t\t\t},\n\t\t\t\t\tsuccessConfirm: function successConfirm() {\n\t\t\t\t\t\twindow.location.assign($(that).attr('href'));\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t});\n\t\t},\n\n\t\tvariable_price_list: function variable_price_list() {\n\t\t\t// Update variable price list when form changes.\n\t\t\t$('#give_payment_form_select').chosen().change(function () {\n\t\t\t\tvar give_form_id,\n\t\t\t\t variable_prices_html_container = $('.give-donation-level');\n\n\t\t\t\t// Check for form ID.\n\t\t\t\tif (!(give_form_id = $(this).val())) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Bailout.\n\t\t\t\tif (!variable_prices_html_container.length) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Ajax.\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'POST',\n\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tform_id: give_form_id,\n\t\t\t\t\t\tpayment_id: $('input[name=\"give_payment_id\"]').val(),\n\t\t\t\t\t\taction: 'give_check_for_form_price_variations_html'\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t\tresponse = response.trim();\n\t\t\t\t\t\tif (response) {\n\n\t\t\t\t\t\t\t// Update Variable price html.\n\t\t\t\t\t\t\tvariable_prices_html_container.html(response);\n\n\t\t\t\t\t\t\t// Add chosen feature to select tag.\n\t\t\t\t\t\t\t$('select[name=\"give-variable-price\"]').chosen().change();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Update Variable price html.\n\t\t\t\t\t\t\tvariable_prices_html_container.html('');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Add total donation amount if level changes.\n\t\t\t$('#give-donation-overview').on('change', 'select[name=\"give-variable-price\"]', function () {\n\t\t\t\tvar prices = jQuery(this).data('prices'),\n\t\t\t\t $total_amount = $('#give-payment-total');\n\n\t\t\t\tif ('' !== prices && $(this).val() in prices) {\n\n\t\t\t\t\t$total_amount.val(prices[$(this).val()]).css('background-color', 'yellow');\n\n\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t$total_amount.css('background-color', 'white');\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t};\n\n\t/**\n * Settings screen JS\n */\n\tvar Give_Settings = {\n\n\t\tinit: function init() {\n\t\t\tthis.toggle_gateways();\n\t\t\tthis.setting_change_country();\n\t\t\tthis.toggle_options();\n\t\t\tthis.main_setting_update_notice();\n\t\t\tthis.verify_settings();\n\t\t\tthis.saveButtonTriggered();\n\t\t\tthis.changeAlert();\n\t\t\tthis.detectSettingsChange();\n\t\t\tthis.sequentialDonationIDPreview();\n\t\t},\n\n\t\t/**\n * Disables the default gateway radio button if the\n * gateway is disabled.\n */\n\t\ttoggle_gateways: function toggle_gateways() {\n\t\t\tvar checkbox = $('.gateways-checkbox');\n\n\t\t\tcheckbox.on('click', function () {\n\n\t\t\t\t// Get the radio button object related to this checkbox.\n\t\t\t\tvar radio = $(this).prev('.gateways-radio');\n\n\t\t\t\t// Get the checked value of the current checbox.\n\t\t\t\tvar checked = this.checked;\n\n\t\t\t\t// Get all the checkbox that are checked.\n\t\t\t\tvar checked_cbs = $('.gateways-checkbox:checked');\n\n\t\t\t\t// Get the count of all the checked checkbox.\n\t\t\t\tvar count_cbs = checked_cbs.length;\n\n\t\t\t\t/**\n * If there is only one checked checkbox, then\n * make that gateway the default gateway.\n */\n\t\t\t\tif (1 === count_cbs) {\n\t\t\t\t\tchecked_cbs.prev('.gateways-radio').attr('checked', 'checked');\n\n\t\t\t\t\tif (this.checked) {\n\t\t\t\t\t\tradio.removeAttr('disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tradio.attr('disabled', 'disabled');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (this.checked) {\n\t\t\t\t\t\tradio.removeAttr('disabled');\n\t\t\t\t\t\tradio.removeAttr('checked');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tradio.attr('disabled', 'disabled');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Fire when user change the country from the dropdown\n *\n * @since 1.8.14\n */\n\t\tsetting_change_country: function setting_change_country() {\n\t\t\t$('select[name=\"base_country\"]').change(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar data = {\n\t\t\t\t\taction: 'give_get_states',\n\t\t\t\t\tcountry: $this.val(),\n\t\t\t\t\tfield_name: 'base_state'\n\t\t\t\t};\n\n\t\t\t\t$.post(ajaxurl, data, function (response) {\n\t\t\t\t\t// Show the states dropdown menu.\n\t\t\t\t\t$this.closest('tr').next().show();\n\t\t\t\t\t$('#base_state_chosen').remove();\n\t\t\t\t\tif (_typeof(response.states_found) != undefined && true == response.states_found) {\n\t\t\t\t\t\t$(':input[name=\"base_state\"]').replaceWith(response.data).addClass('give-select-chosen');\n\t\t\t\t\t\t$(':input[name=\"base_state\"]').chosen();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (_typeof(response.show_field) != undefined && false == response.show_field) {\n\t\t\t\t\t\t\t// Hide the states dropdown menu.\n\t\t\t\t\t\t\t$this.closest('tr').next().hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(':input[name=\"base_state\"]').replaceWith('<input type=\"text\" name=\"' + data.field_name + '\" value=\"' + response.default_state + '\" class=\"give-edit-toggles medium-text\"/>');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\n\t\ttoggle_options: function toggle_options() {\n\n\t\t\t/**\n * Email access\n */\n\t\t\tvar emailAccess = $('input[name=\"email_access\"]', '.give-setting-tab-body-general');\n\t\t\temailAccess.on('change', function () {\n\t\t\t\tvar fieldValueEmail = $('input[name=\"email_access\"]:checked', '.give-setting-tab-body-general').val();\n\t\t\t\tvar fieldValueRecaptcha = $('input[name=\"enable_recaptcha\"]:checked', '.give-setting-tab-body-general').val();\n\t\t\t\tif ('enabled' === fieldValueEmail) {\n\t\t\t\t\t$('input[name=\"enable_recaptcha\"]').parents('tr').show();\n\n\t\t\t\t\tif ('enabled' === fieldValueRecaptcha) {\n\t\t\t\t\t\t$('#recaptcha_key').parents('tr').show();\n\t\t\t\t\t\t$('#recaptcha_secret').parents('tr').show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('#recaptcha_key').parents('tr').hide();\n\t\t\t\t\t\t$('#recaptcha_secret').parents('tr').hide();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$('#recaptcha_key').parents('tr').hide();\n\t\t\t\t\t$('#recaptcha_secret').parents('tr').hide();\n\t\t\t\t\t$('input[name=\"enable_recaptcha\"]').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\n\t\t\t/**\n * Email reCAPTCHA\n */\n\t\t\tvar recaptcha = $('input[name=\"enable_recaptcha\"]', '.give-setting-tab-body-general');\n\t\t\trecaptcha.on('change', function () {\n\t\t\t\tvar fieldValueEmail = $('input[name=\"email_access\"]:checked', '.give-setting-tab-body-general').val();\n\t\t\t\tvar fieldValueRecaptcha = $('input[name=\"enable_recaptcha\"]:checked', '.give-setting-tab-body-general').val();\n\n\t\t\t\tif ('enabled' === fieldValueEmail && 'enabled' === fieldValueRecaptcha) {\n\t\t\t\t\t$('#recaptcha_key').parents('tr').show();\n\t\t\t\t\t$('#recaptcha_secret').parents('tr').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('#recaptcha_key').parents('tr').hide();\n\t\t\t\t\t$('#recaptcha_secret').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\n\t\t\t/**\n * Form featured image\n */\n\t\t\tvar form_featured_image = $('input[name=\"form_featured_img\"]', '.give-setting-tab-body-display');\n\t\t\tform_featured_image.on('change', function () {\n\t\t\t\tvar field_value = $('input[name=\"form_featured_img\"]:checked', '.give-setting-tab-body-display').val();\n\t\t\t\tif ('enabled' === field_value) {\n\t\t\t\t\t$('#featured_image_size').parents('tr').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('#featured_image_size').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\n\t\t\t/**\n * Terms and Conditions\n */\n\t\t\tvar terms_and_conditions = $('input[name=\"terms\"]', '.give-setting-tab-body-display');\n\t\t\tterms_and_conditions.on('change', function () {\n\t\t\t\tvar field_value = $('input[name=\"terms\"]:checked', '.give-setting-tab-body-display').val();\n\t\t\t\tif ('enabled' === field_value) {\n\t\t\t\t\t$('#agree_to_terms_label').parents('tr').show();\n\t\t\t\t\t$('#wp-agreement_text-wrap').parents('tr').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('#agree_to_terms_label').parents('tr').hide();\n\t\t\t\t\t$('#wp-agreement_text-wrap').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\n\t\t\t/**\n * Disable admin notification\n */\n\t\t\tvar admin_notification = $('input[name=\"admin_notices\"]', '.give-setting-tab-body-emails');\n\t\t\tadmin_notification.on('change', function () {\n\t\t\t\tvar field_value = $('input[name=\"admin_notices\"]:checked', '.give-setting-tab-body-emails').val();\n\t\t\t\tif ('enabled' === field_value) {\n\t\t\t\t\t$('#donation_notification_subject').parents('tr').show();\n\t\t\t\t\t$('#wp-donation_notification-wrap').parents('tr').show();\n\t\t\t\t\t$('#admin_notice_emails').parents('tr').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('#donation_notification_subject').parents('tr').hide();\n\t\t\t\t\t$('#wp-donation_notification-wrap').parents('tr').hide();\n\t\t\t\t\t$('#admin_notice_emails').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\n\t\t\t/**\n * Toggle sequential ordering settings\n */\n\t\t\tvar sequential_ordering = $('input[name=\"sequential-ordering_status\"]', '.give-setting-tab-body-general');\n\t\t\tsequential_ordering.on('change', function () {\n\t\t\t\tvar field_value = $('input[name=\"sequential-ordering_status\"]:checked', '.give-setting-tab-body-general').val(),\n\t\t\t\t $parent = $(this).closest('table');\n\t\t\t\tif ('enabled' === field_value) {\n\t\t\t\t\t$('input', $parent).not('input[name=\"sequential-ordering_status\"]').parents('tr').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('input', $parent).not('input[name=\"sequential-ordering_status\"]').parents('tr').hide();\n\t\t\t\t}\n\t\t\t}).change();\n\t\t},\n\n\t\tmain_setting_update_notice: function main_setting_update_notice() {\n\t\t\tvar $setting_message = $('#setting-error-give-setting-updated');\n\t\t\tif ($setting_message.length) {\n\n\t\t\t\t// auto hide setting message in 5 seconds.\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t$setting_message.slideUp();\n\t\t\t\t}, 5000);\n\t\t\t}\n\t\t},\n\n\t\tverify_settings: function verify_settings() {\n\t\t\tvar success_setting = $('#success_page');\n\t\t\tvar failure_setting = $('#failure_page');\n\n\t\t\t/**\n * Verify success and failure page.\n */\n\t\t\tsuccess_setting.add(failure_setting).change(function () {\n\t\t\t\tif (success_setting.val() === failure_setting.val()) {\n\t\t\t\t\tvar notice_html = '<div id=\"setting-error-give-matched-success-failure-page\" class=\"updated settings-error notice is-dismissible\"> <p><strong>' + give_vars.matched_success_failure_page + '</strong></p> <button type=\"button\" class=\"notice-dismiss\"><span class=\"screen-reader-text\">' + give_vars.dismiss_notice_text + '</span></button> </div>',\n\t\t\t\t\t $notice_container = $('#setting-error-give-matched-success-failure-page');\n\n\t\t\t\t\t// Unset setting field.\n\t\t\t\t\t$(this).val('');\n\n\t\t\t\t\t// Bailout.\n\t\t\t\t\tif ($notice_container.length) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add html.\n\t\t\t\t\t$('h1', '#give-mainform').after(notice_html);\n\t\t\t\t\t$notice_container = $('#setting-error-give-matched-success-failure-page');\n\n\t\t\t\t\t// Add event to dismiss button.\n\t\t\t\t\t$('.notice-dismiss', $notice_container).click(function () {\n\t\t\t\t\t\t$notice_container.remove();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).change();\n\t\t},\n\n\t\tsaveButtonTriggered: function saveButtonTriggered() {\n\t\t\t$('.give-settings-setting-page').on('click', '.give-save-button', function () {\n\t\t\t\t$(window).unbind('beforeunload');\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Show alert when admin try to reload the page with saving the changes.\n *\n * @since 1.8.14\n */\n\t\tchangeAlert: function changeAlert() {\n\n\t\t\t$(window).bind('beforeunload', function (e) {\n\n\t\t\t\tvar confirmationMessage = give_vars.setting_not_save_message;\n\n\t\t\t\tif (give_setting_edit) {\n\t\t\t\t\t(e || window.event).returnValue = confirmationMessage; //Gecko + IE.\n\t\t\t\t\treturn confirmationMessage; //Webkit, Safari, Chrome.\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Display alert in setting page of give if user try to reload the page with saving the changes.\n *\n * @since 1.8.14\n */\n\t\tdetectSettingsChange: function detectSettingsChange() {\n\n\t\t\tvar settingsPage = $('.give-settings-setting-page');\n\n\t\t\t// Check if it give setting page or not.\n\t\t\tif (settingsPage.length > 0) {\n\n\t\t\t\t// Get the default value.\n\t\t\t\tvar on_load_value = $('#give-mainform').serialize();\n\n\t\t\t\t/**\n * Keyup event add to support to text box and textarea.\n * blur event add to support to dropdown.\n * Change event add to support to rest all element.\n */\n\t\t\t\tsettingsPage.on('change keyup blur', 'form', function () {\n\t\t\t\t\t// Get the form value after change.\n\t\t\t\t\tvar on_change_value = $('#give-mainform').serialize();\n\n\t\t\t\t\t// If both the value are same then no change has being made else change has being made.\n\t\t\t\t\tgive_setting_edit = on_load_value !== on_change_value ? true : false;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Render donation id for sequential ordering.\n *\n * @since 2.1.0\n */\n\t\tsequentialDonationIDPreview: function sequentialDonationIDPreview() {\n\t\t\tvar $previewField = jQuery('#sequential-ordering_preview');\n\n\t\t\t// Bailout.\n\t\t\tif (!$previewField.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tjQuery('#sequential-ordering_number_prefix, #sequential-ordering_number, #sequential-ordering_number_padding, #sequential-ordering_number_suffix').on('keyup change', function () {\n\t\t\t\tvar prefix = jQuery('#sequential-ordering_number_prefix').val(),\n\t\t\t\t startingNumber = jQuery('#sequential-ordering_number').val().trim() || '1',\n\t\t\t\t numberPadding = jQuery('#sequential-ordering_number_padding').val().trim(),\n\t\t\t\t suffix = jQuery('#sequential-ordering_number_suffix').val(),\n\t\t\t\t $donationID = '' + prefix + startingNumber.padStart(numberPadding, '0') + suffix;\n\n\t\t\t\t$previewField.val($donationID);\n\t\t\t});\n\n\t\t\tjQuery('#sequential-ordering_number_prefix').trigger('keyup');\n\n\t\t\tjQuery('#sequential-ordering_number_prefix, #sequential-ordering_number_suffix').on('blur', function () {\n\t\t\t\t$(this).val($(this).val().replace(new RegExp(' ', 'g'), '-'));\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Reports / Exports / Tools screen JS\n */\n\tvar Give_Reports = {\n\n\t\tinit: function init() {\n\t\t\tthis.date_options();\n\t\t\tthis.donors_export();\n\t\t\tthis.recount_stats();\n\t\t},\n\n\t\tdate_options: function date_options() {\n\n\t\t\t// Show hide extended date options.\n\t\t\t$('#give-graphs-date-options').change(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tif ('other' === $this.val()) {\n\t\t\t\t\t$('#give-date-range-options').show();\n\t\t\t\t} else {\n\t\t\t\t\t$('#give-date-range-options').hide();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tdonors_export: function donors_export() {\n\n\t\t\t// Show / hide Donation Form option when exporting donors.\n\t\t\t$('#give_donor_export_form').change(function () {\n\n\t\t\t\tvar $this = $(this),\n\t\t\t\t form_id = $('option:selected', $this).val(),\n\t\t\t\t customer_export_option = $('#give_customer_export_option');\n\n\t\t\t\tif ('0' === $this.val()) {\n\t\t\t\t\tcustomer_export_option.show();\n\t\t\t\t} else {\n\t\t\t\t\tcustomer_export_option.hide();\n\t\t\t\t}\n\n\t\t\t\tvar price_options_select = $('.give_price_options_select');\n\n\t\t\t\t// On Form Select, Check if Variable Prices Exist.\n\t\t\t\tif (parseInt(form_id) != 0) {\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\taction: 'give_check_for_form_price_variations',\n\t\t\t\t\t\tform_id: form_id,\n\t\t\t\t\t\tall_prices: true\n\t\t\t\t\t};\n\n\t\t\t\t\t$.post(ajaxurl, data, function (response) {\n\t\t\t\t\t\tprice_options_select.remove();\n\t\t\t\t\t\t$('#give_donor_export_form_chosen').after(response);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tprice_options_select.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\trecount_stats: function recount_stats() {\n\n\t\t\t$('body').on('change', '#recount-stats-type', function () {\n\n\t\t\t\tvar export_form = $('#give-tools-recount-form');\n\t\t\t\tvar selected_type = $('option:selected', this).data('type');\n\t\t\t\tvar submit_button = $('#recount-stats-submit');\n\t\t\t\tvar forms = $('.tools-form-dropdown');\n\n\t\t\t\t// Reset the form\n\t\t\t\texport_form.find('.notice-wrap').remove();\n\t\t\t\tsubmit_button.removeClass('button-disabled').attr('disabled', false);\n\t\t\t\tforms.hide();\n\t\t\t\t$('.give-recount-stats-descriptions span').hide();\n\n\t\t\t\tif ('reset-stats' === selected_type) {\n\t\t\t\t\texport_form.append('<div class=\"notice-wrap\"></div>');\n\t\t\t\t\tvar notice_wrap = export_form.find('.notice-wrap');\n\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-warning\"><p><input type=\"checkbox\" id=\"confirm-reset\" name=\"confirm_reset_store\" value=\"1\" /> <label for=\"confirm-reset\">' + give_vars.reset_stats_warn + '</label></p></div>');\n\t\t\t\t\tsubmit_button.addClass('button-disabled').attr('disabled', 'disabled');\n\n\t\t\t\t\t// Add check when admin try to delete all the test donors.\n\t\t\t\t} else if ('delete-test-donors' === selected_type) {\n\t\t\t\t\texport_form.append('<div class=\"notice-wrap\"></div>');\n\t\t\t\t\tvar notice_wrap = export_form.find('.notice-wrap');\n\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-warning\"><p><input type=\"checkbox\" id=\"confirm-reset\" name=\"confirm_reset_store\" value=\"1\" /> <label for=\"confirm-reset\">' + give_vars.delete_test_donor + '</label></p></div>');\n\t\t\t\t\tsubmit_button.addClass('button-disabled').attr('disabled', 'disabled');\n\t\t\t\t\t// Add check when admin try to delete all the imported donations.\n\t\t\t\t} else if ('delete-import-donors' === selected_type) {\n\n\t\t\t\t\texport_form.append('<div class=\"notice-wrap\"></div>');\n\t\t\t\t\tvar notice_wrap = export_form.find('.notice-wrap');\n\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-warning\"><p><input type=\"checkbox\" id=\"confirm-reset\" name=\"confirm_reset_store\" value=\"1\" /> <label for=\"confirm-reset\">' + give_vars.delete_import_donor + '</label></p></div>');\n\t\t\t\t\tsubmit_button.addClass('button-disabled').attr('disabled', 'disabled');\n\t\t\t\t} else {\n\t\t\t\t\tforms.hide();\n\t\t\t\t\tforms.val(0);\n\t\t\t\t}\n\n\t\t\t\tvar current_forms = $('.tools-form-dropdown-' + selected_type);\n\t\t\t\tcurrent_forms.show();\n\t\t\t\tcurrent_forms.find('.give-select-chosen').css({\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'min-width': '250px'\n\t\t\t\t});\n\t\t\t\t$('#' + selected_type).show();\n\t\t\t});\n\n\t\t\t$('body').on('change', '#confirm-reset', function () {\n\t\t\t\tvar checked = $(this).is(':checked');\n\t\t\t\tif (checked) {\n\t\t\t\t\t$('#recount-stats-submit').removeClass('button-disabled').removeAttr('disabled');\n\t\t\t\t} else {\n\t\t\t\t\t$('#recount-stats-submit').addClass('button-disabled').attr('disabled', 'disabled');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('#give-tools-recount-form').submit(function (e) {\n\t\t\t\tvar selection = $('#recount-stats-type').val();\n\t\t\t\tvar export_form = $(this);\n\t\t\t\tvar selected_type = $('option:selected', this).data('type');\n\n\t\t\t\tif ('reset-stats' === selected_type) {\n\t\t\t\t\tvar is_confirmed = $('#confirm-reset').is(':checked');\n\t\t\t\t\tif (is_confirmed) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thas_errors = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\texport_form.find('.notice-wrap').remove();\n\n\t\t\t\texport_form.append('<div class=\"notice-wrap\"></div>');\n\t\t\t\tvar notice_wrap = export_form.find('.notice-wrap');\n\t\t\t\tvar has_errors = false;\n\n\t\t\t\tif (null === selection || 0 === selection) {\n\t\t\t\t\t// Needs to pick a method give_vars.batch_export_no_class.\n\t\t\t\t\tnotice_wrap.html('<div class=\"updated error\"><p>' + give_vars.batch_export_no_class + '</p></div>');\n\t\t\t\t\thas_errors = true;\n\t\t\t\t}\n\n\t\t\t\tif ('recount-form' === selected_type) {\n\n\t\t\t\t\tvar selected_form = $('select[name=\"form_id\"]').val();\n\t\t\t\t\tif (selected_form == 0) {\n\t\t\t\t\t\t// Needs to pick give_vars.batch_export_no_reqs.\n\t\t\t\t\t\tnotice_wrap.html('<div class=\"updated error\"><p>' + give_vars.batch_export_no_reqs + '</p></div>');\n\t\t\t\t\t\thas_errors = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (has_errors) {\n\t\t\t\t\texport_form.find('.button-disabled').removeClass('button-disabled');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t};\n\n\t/**\n * Export screen JS\n */\n\tvar Give_Export = {\n\n\t\tinit: function init() {\n\t\t\tthis.submit();\n\t\t\tthis.dismiss_message();\n\t\t},\n\n\t\tsubmit: function submit() {\n\n\t\t\tvar self = this;\n\n\t\t\t$(document.body).on('submit', '.give-export-form', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar submitButton = $(this).find('input[type=\"submit\"]');\n\n\t\t\t\tif (!submitButton.hasClass('button-disabled')) {\n\n\t\t\t\t\tvar data = $(this).serialize();\n\n\t\t\t\t\tsubmitButton.addClass('button-disabled');\n\t\t\t\t\t$('form.give-export-form select').attr('disabled', true).trigger('chosen:updated');\n\n\t\t\t\t\tvar parent_notices = $(this);\n\n\t\t\t\t\t// show notices inside add-notices class\n\t\t\t\t\tif ($(this).find('.add-notices').length > 0) {\n\t\t\t\t\t\tparent_notices = $(this).find('.add-notices');\n\t\t\t\t\t}\n\n\t\t\t\t\tparent_notices.find('.notice-wrap').remove();\n\t\t\t\t\tparent_notices.append('<div class=\"notice-wrap give-clearfix\"><span class=\"spinner is-active\"></span><div class=\"give-progress\"><div></div></div></div>');\n\n\t\t\t\t\t// start the process\n\t\t\t\t\tself.process_step(1, data, self, this);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tprocess_step: function process_step(step, data, self, form) {\n\t\t\t/**\n * Do not allow user to reload the page\n *\n * @since 1.8.14\n */\n\t\t\tgive_setting_edit = true;\n\n\t\t\tvar reset_form = false;\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: ajaxurl,\n\t\t\t\tdata: {\n\t\t\t\t\tform: data,\n\t\t\t\t\taction: 'give_do_ajax_export',\n\t\t\t\t\tstep: step\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function success(response) {\n\n\t\t\t\t\tif ('done' == response.step || response.error || response.success) {\n\n\t\t\t\t\t\t/**\n * Now allow user to reload the page\n *\n * @since 1.8.14\n */\n\t\t\t\t\t\tgive_setting_edit = false;\n\n\t\t\t\t\t\treset_form = true;\n\n\t\t\t\t\t\t// We need to get the actual in progress form, not all forms on the page\n\t\t\t\t\t\tvar notice_wrap = $(form).parent().find('.notice-wrap');\n\t\t\t\t\t\tvar export_form = notice_wrap.find('.give-progress');\n\n\t\t\t\t\t\t$(form).find('.button-disabled').removeClass('button-disabled');\n\t\t\t\t\t\t$(form).find('select').attr('disabled', false).trigger('chosen:updated');\n\n\t\t\t\t\t\tif (response.error) {\n\t\t\t\t\t\t\tvar error_message = response.message;\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"updated error\"><p>' + error_message + '</p></div>');\n\t\t\t\t\t\t} else if (response.success) {\n\t\t\t\t\t\t\tvar success_message = response.message;\n\t\t\t\t\t\t\tnotice_wrap.html('<div id=\"give-batch-success\" class=\"updated notice is-dismissible\"><p>' + success_message + '<span class=\"notice-dismiss\"></span></p></div>');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnotice_wrap.remove();\n\t\t\t\t\t\t\twindow.location = response.url;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('.give-progress div').animate({\n\t\t\t\t\t\t\twidth: response.percentage + '%'\n\t\t\t\t\t\t}, 50, function () {\n\t\t\t\t\t\t\t// Animation complete.\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.process_step(parseInt(response.step), data, self, form);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (true === reset_form && $('#give-tools-recount-form').length > 0) {\n\t\t\t\t\t\t// Reset the form for preventing multiple ajax request.\n\t\t\t\t\t\t$('#give-tools-recount-form')[0].reset();\n\t\t\t\t\t\t$('#give-tools-recount-form .tools-form-dropdown').hide();\n\t\t\t\t\t\t$('#give-tools-recount-form .tools-form-dropdown-recount-form-select').val('0').trigger('chosen:updated');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).fail(function (response) {\n\t\t\t\t/**\n * Now allow user to reload the page\n *\n * @since 1.8.14\n */\n\t\t\t\tgive_setting_edit = false;\n\n\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\tconsole.log(response);\n\t\t\t\t}\n\t\t\t\t$('.notice-wrap').append(response.responseText);\n\t\t\t});\n\t\t},\n\n\t\tdismiss_message: function dismiss_message() {\n\t\t\t$('body').on('click', '#give-batch-success .notice-dismiss', function () {\n\t\t\t\t$('#give-batch-success').parent().slideUp('fast');\n\t\t\t});\n\t\t}\n\n\t};\n\n\t/**\n * Updates screen JS\n */\n\tvar Give_Updates = {\n\t\tel: {},\n\n\t\tinit: function init() {\n\t\t\tthis.submit();\n\t\t\tthis.dismiss_message();\n\t\t},\n\n\t\tsubmit: function submit() {\n\t\t\tvar $self = this,\n\t\t\t step = 1,\n\t\t\t resume_update_step = 0;\n\n\t\t\t$self.el.main_container = Give_Selector_Cache.get('#give-db-updates');\n\t\t\t$self.el.update_link = Give_Selector_Cache.get('.give-update-now', $self.el.main_container);\n\t\t\t$self.el.run_upload_container = Give_Selector_Cache.get('.give-run-database-update', $self.el.progress_main_container);\n\t\t\t$self.el.progress_main_container = Give_Selector_Cache.get('.progress-container', $self.el.main_container);\n\t\t\t$self.el.heading = Give_Selector_Cache.get('.update-message', $self.el.progress_main_container);\n\t\t\t$self.el.progress_container = Give_Selector_Cache.get('.progress-content', $self.el.progress_main_container);\n\t\t\t$self.el.update_progress_counter = Give_Selector_Cache.get($('.give-update-progress-count'));\n\n\t\t\tif ($self.el.main_container.data('resume-update')) {\n\t\t\t\t$self.el.update_link.addClass('active').hide().removeClass('give-hidden');\n\n\t\t\t\tif (!$('#give-restart-upgrades').length) {\n\t\t\t\t\t// Start update by ajax if background update does not work.\n\t\t\t\t\tif (!give_vars.ajax.length) {\n\t\t\t\t\t\twindow.setTimeout(Give_Updates.start_db_update, 1000);\n\t\t\t\t\t}\n\n\t\t\t\t\twindow.setTimeout(Give_Updates.get_db_updates_info, 1000, $self);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Bailout.\n\t\t\tif ($self.el.update_link.hasClass('active')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$self.el.update_link.on('click', '', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$self.el.run_upload_container.find('.notice').remove();\n\t\t\t\t$self.el.run_upload_container.append('<div class=\"notice notice-error non-dismissible give-run-update-containt\"><p> <a href=\"#\" class=\"give-run-update-button button\">' + give_vars.db_update_confirmation_msg_button + '</a> ' + give_vars.db_update_confirmation_msg + '</p></div>');\n\t\t\t});\n\n\t\t\t$('#give-db-updates').on('click', 'a.give-run-update-button', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ($(this).hasClass('active')) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t$(this).addClass('active').fadeOut();\n\t\t\t\t$self.el.update_link.addClass('active').fadeOut();\n\t\t\t\t$('#give-db-updates .give-run-update-containt').slideUp();\n\n\t\t\t\t$self.el.progress_container.find('.notice-wrap').remove();\n\t\t\t\t$self.el.progress_container.append('<div class=\"notice-wrap give-clearfix\"><span class=\"spinner is-active\"></span><div class=\"give-progress\"><div></div></div></div>');\n\t\t\t\t$self.el.progress_main_container.removeClass('give-hidden');\n\n\t\t\t\tGive_Updates.start_db_update();\n\n\t\t\t\twindow.setTimeout(Give_Updates.get_db_updates_info, 500, $self);\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\n\t\tstart_db_update: function start_db_update() {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: ajaxurl,\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'give_run_db_updates',\n\t\t\t\t\trun_db_update: 1,\n\t\t\t\t\tnonce: give_vars.db_update_nonce\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function success(response) {}\n\t\t\t}).always(function () {\n\t\t\t\t// Start update by ajax if background update does not work.\n\t\t\t\tif (!give_vars.ajax.length) {\n\t\t\t\t\twindow.setTimeout(Give_Updates.start_db_update, 1000);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tget_db_updates_info: function get_db_updates_info($self) {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: ajaxurl,\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'give_db_updates_info'\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t// We need to get the actual in progress form, not all forms on the page.\n\t\t\t\t\tvar notice_wrap = Give_Selector_Cache.get('.notice-wrap', $self.el.progress_container, true);\n\n\t\t\t\t\tif (-1 !== $.inArray('success', Object.keys(response))) {\n\t\t\t\t\t\tif (response.success) {\n\t\t\t\t\t\t\tif ($self.el.update_progress_counter.length) {\n\t\t\t\t\t\t\t\t$self.el.update_progress_counter.text('100%');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$self.el.update_link.closest('p').remove();\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-success is-dismissible\"><p>' + response.data.message + '</p><button type=\"button\" class=\"notice-dismiss\"></button></div>');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (response.data.message) {\n\t\t\t\t\t\t\t\t$self.el.update_link.closest('p').remove();\n\t\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-error is-dismissible\"><p>' + response.data.message + '</p><button type=\"button\" class=\"notice-dismiss\"></button></div>');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t$self.el.update_link.removeClass('active').show();\n\t\t\t\t\t\t\t\t\t$self.el.progress_main_container.addClass('give-hidden');\n\t\t\t\t\t\t\t\t}, 1000);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (response && -1 !== $.inArray('percentage', Object.keys(response.data))) {\n\t\t\t\t\t\t\tif ($self.el.update_progress_counter.length) {\n\t\t\t\t\t\t\t\t$self.el.update_progress_counter.text(response.data.total_percentage + '%');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Update progress.\n\t\t\t\t\t\t\t$('.give-progress div', '#give-db-updates').animate({\n\t\t\t\t\t\t\t\twidth: response.data.percentage + '%'\n\t\t\t\t\t\t\t}, 50, function () {\n\t\t\t\t\t\t\t\t// Animation complete.\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\twindow.setTimeout(Give_Updates.get_db_updates_info, 1000, $self);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-error\"><p>' + give_vars.updates.ajax_error + '</p></div>');\n\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$self.el.update_link.removeClass('active').show();\n\t\t\t\t\t\t\t\t$self.el.progress_main_container.addClass('give-hidden');\n\t\t\t\t\t\t\t}, 1000);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tprocess_step: function process_step(step, update, $self) {\n\n\t\t\tgive_setting_edit = true;\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: ajaxurl,\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'give_do_ajax_updates',\n\t\t\t\t\tstep: parseInt(step),\n\t\t\t\t\tupdate: parseInt(update)\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\tgive_setting_edit = false;\n\n\t\t\t\t\t// We need to get the actual in progress form, not all forms on the page.\n\t\t\t\t\tvar notice_wrap = Give_Selector_Cache.get('.notice-wrap', $self.el.progress_container, true);\n\n\t\t\t\t\tif (-1 !== $.inArray('success', Object.keys(response))) {\n\t\t\t\t\t\tif (response.success) {\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$self.el.update_link.closest('p').remove();\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-success is-dismissible\"><p>' + response.data.message + '</p><button type=\"button\" class=\"notice-dismiss\"></button></div>');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-error\"><p>' + response.data.message + '</p></div>');\n\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$self.el.update_link.removeClass('active').show();\n\t\t\t\t\t\t\t\t$self.el.progress_main_container.addClass('give-hidden');\n\t\t\t\t\t\t\t}, 5000);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (response && -1 !== $.inArray('percentage', Object.keys(response.data))) {\n\t\t\t\t\t\t\t// Update progress.\n\t\t\t\t\t\t\t$('.give-progress div', '#give-db-updates').animate({\n\t\t\t\t\t\t\t\twidth: response.data.percentage + '%'\n\t\t\t\t\t\t\t}, 50, function () {\n\t\t\t\t\t\t\t\t// Animation complete.\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Update steps info.\n\t\t\t\t\t\t\tif (-1 !== $.inArray('heading', Object.keys(response.data))) {\n\t\t\t\t\t\t\t\t$self.el.heading.html('<strong>' + response.data.heading.replace('{update_count}', $self.el.heading.data('update-count')) + '</strong>');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$self.process_step(parseInt(response.data.step), response.data.update, $self);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnotice_wrap.html('<div class=\"notice notice-error\"><p>' + give_vars.updates.ajax_error + '</p></div>');\n\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$self.el.update_link.removeClass('active').show();\n\t\t\t\t\t\t\t\t$self.el.progress_main_container.addClass('give-hidden');\n\t\t\t\t\t\t\t}, 5000);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).fail(function (response) {\n\n\t\t\t\tgive_setting_edit = false;\n\n\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\tconsole.log(response);\n\t\t\t\t}\n\n\t\t\t\tGive_Selector_Cache.get('.notice-wrap', self.el.progress_container).append(response.responseText);\n\t\t\t}).always(function () {});\n\t\t},\n\n\t\tdismiss_message: function dismiss_message() {\n\t\t\t$('body').on('click', '#poststuff .notice-dismiss', function () {\n\t\t\t\t$(this).parent().slideUp('fast');\n\t\t\t});\n\t\t}\n\n\t};\n\n\t/**\n * Give Upgrader\n */\n\tvar Give_Upgrades = {\n\t\tinit: function init() {\n\t\t\tthis.restartUpgrade();\n\t\t\tthis.stopUpgrade();\n\t\t\tthis.restartUpdater();\n\t\t},\n\n\t\t/**\n * Function to restart the upgrade process.\n */\n\t\trestartUpgrade: function restartUpgrade() {\n\t\t\tjQuery('#give-restart-upgrades').click('click', function (e) {\n\n\t\t\t\tvar that = this;\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tjQuery('.give-doing-update-text-p').show();\n\t\t\t\tjQuery('.give-update-paused-text-p').hide();\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.confirm_action,\n\t\t\t\t\t\tdesc: give_vars.restart_upgrade\n\t\t\t\t\t},\n\t\t\t\t\tsuccessConfirm: function successConfirm() {\n\t\t\t\t\t\twindow.location.assign(jQuery(that).data('redirect-url'));\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Function to pause the upgrade process.\n */\n\t\tstopUpgrade: function stopUpgrade() {\n\t\t\tjQuery('#give-pause-upgrades').click('click', function (e) {\n\t\t\t\tvar that = this;\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tjQuery('.give-doing-update-text-p').hide();\n\t\t\t\tjQuery('.give-update-paused-text-p').show();\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.confirm_action,\n\t\t\t\t\t\tdesc: give_vars.stop_upgrade\n\t\t\t\t\t},\n\t\t\t\t\tsuccessConfirm: function successConfirm() {\n\t\t\t\t\t\twindow.location.assign(jQuery(that).data('redirect-url'));\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Function to restart the update process.\n */\n\t\trestartUpdater: function restartUpdater() {\n\t\t\tjQuery('.give-restart-updater-btn,.give-run-update-now').click('click', function (e) {\n\n\t\t\t\tvar that = this;\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.confirm_action,\n\t\t\t\t\t\tdesc: give_vars.restart_update\n\t\t\t\t\t},\n\t\t\t\t\tsuccessConfirm: function successConfirm() {\n\t\t\t\t\t\twindow.location.assign(jQuery(that).attr('href'));\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Admin Status Select Field Change\n *\n * @description: Handle status switching\n * @since: 1.0\n */\n\tvar handle_status_change = function handle_status_change() {\n\n\t\t$('select[name=\"give-payment-status\"]').on('change', function () {\n\n\t\t\tvar status = $(this).val();\n\n\t\t\t$('.give-donation-status').removeClass(function (index, css) {\n\t\t\t\treturn (css.match(/\\bstatus-\\S+/g) || []).join(' ');\n\t\t\t}).addClass('status-' + status);\n\t\t});\n\t};\n\n\t/**\n * Donor management screen JS\n */\n\tvar GiveDonor = {\n\n\t\tinit: function init() {\n\t\t\tthis.unlockDonorFields();\n\t\t\tthis.editDonor();\n\t\t\tthis.add_email();\n\t\t\tthis.removeUser();\n\t\t\tthis.cancelEdit();\n\t\t\tthis.add_note();\n\t\t\tthis.delete_checked();\n\t\t\tthis.addressesAction();\n\t\t\tthis.bulkDeleteDonor();\n\t\t\t$('body').on('click', '#give-donors-filter .bulkactions input[type=\"submit\"]', this.handleBulkActions);\n\t\t},\n\n\t\tunlockDonorFields: function unlockDonorFields(e) {\n\t\t\t$('body').on('click', '.give-lock-block', function (e) {\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveErrorAlert\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.unlock_donor_fields_title,\n\t\t\t\t\t\tdesc: give_vars.unlock_donor_fields_message,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t},\n\n\t\teditDonor: function editDonor() {\n\t\t\t$('body').on('click', '#edit-donor', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$('#give-donor-card-wrapper .editable').hide();\n\t\t\t\t$('#give-donor-card-wrapper .edit-item').fadeIn().css('display', 'block');\n\t\t\t});\n\t\t},\n\n\t\tremoveUser: function removeUser() {\n\t\t\t$('body').on('click', '#disconnect-donor', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (!confirm(give_vars.disconnect_user)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar donorID = $('input[name=\"customerinfo[id]\"]').val();\n\n\t\t\t\tvar postData = {\n\t\t\t\t\tgive_action: 'disconnect-userid',\n\t\t\t\t\tcustomer_id: donorID,\n\t\t\t\t\t_wpnonce: $('#edit-donor-info #_wpnonce').val()\n\t\t\t\t};\n\n\t\t\t\t$.post(ajaxurl, postData, function (response) {\n\t\t\t\t\twindow.location.href = response.redirect;\n\t\t\t\t}, 'json');\n\t\t\t});\n\t\t},\n\n\t\tcancelEdit: function cancelEdit() {\n\t\t\t$('body').on('click', '#give-edit-donor-cancel', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$('#give-donor-card-wrapper .edit-item').hide();\n\t\t\t\t$('#give-donor-card-wrapper .editable').show();\n\t\t\t\t$('.give_user_search_results').html('');\n\t\t\t});\n\t\t},\n\n\t\tadd_note: function add_note() {\n\t\t\t$('body').on('click', '#add-donor-note', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar postData = {\n\t\t\t\t\tgive_action: 'add-donor-note',\n\t\t\t\t\tcustomer_id: $('#donor-id').val(),\n\t\t\t\t\tdonor_note: $('#donor-note').val(),\n\t\t\t\t\tadd_donor_note_nonce: $('#add_donor_note_nonce').val()\n\t\t\t\t};\n\n\t\t\t\tif (postData.donor_note) {\n\n\t\t\t\t\t$.ajax({\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: postData,\n\t\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t\t\t$('#give-donor-notes').prepend(response);\n\t\t\t\t\t\t\t$('.give-no-donor-notes').hide();\n\t\t\t\t\t\t\t$('#donor-note').val('');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fail(function (data) {\n\t\t\t\t\t\tif (window.console && window.console.log) {\n\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar border_color = $('#donor-note').css('border-color');\n\t\t\t\t\t$('#donor-note').css('border-color', 'red');\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t$('#donor-note').css('border-color', border_color);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tdelete_checked: function delete_checked() {\n\t\t\t$('#give-donor-delete-confirm').change(function () {\n\t\t\t\tvar records_input = $('#give-donor-delete-records');\n\t\t\t\tvar submit_button = $('#give-delete-donor');\n\n\t\t\t\tif ($(this).prop('checked')) {\n\t\t\t\t\trecords_input.attr('disabled', false);\n\t\t\t\t\tsubmit_button.attr('disabled', false);\n\t\t\t\t} else {\n\t\t\t\t\trecords_input.attr('disabled', true);\n\t\t\t\t\trecords_input.prop('checked', false);\n\t\t\t\t\tsubmit_button.attr('disabled', true);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tadd_email: function add_email() {\n\t\t\tif (!$('#add-donor-email').length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(document.body).on('click', '#add-donor-email', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar button = $(this);\n\t\t\t\tvar wrapper = button.parent();\n\n\t\t\t\twrapper.parent().find('.notice-wrap').remove();\n\t\t\t\twrapper.find('.spinner').css('visibility', 'visible');\n\t\t\t\tbutton.attr('disabled', true);\n\n\t\t\t\tvar customer_id = wrapper.find('input[name=\"donor-id\"]').val();\n\t\t\t\tvar email = wrapper.find('input[name=\"additional-email\"]').val();\n\t\t\t\tvar primary = wrapper.find('input[name=\"make-additional-primary\"]').is(':checked');\n\t\t\t\tvar nonce = wrapper.find('input[name=\"add_email_nonce\"]').val();\n\n\t\t\t\tvar postData = {\n\t\t\t\t\tgive_action: 'add_donor_email',\n\t\t\t\t\tcustomer_id: customer_id,\n\t\t\t\t\temail: email,\n\t\t\t\t\tprimary: primary,\n\t\t\t\t\t_wpnonce: nonce\n\t\t\t\t};\n\n\t\t\t\t$.post(ajaxurl, postData, function (response) {\n\n\t\t\t\t\tif (true === response.success) {\n\t\t\t\t\t\twindow.location.href = response.redirect;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbutton.attr('disabled', false);\n\t\t\t\t\t\twrapper.after('<div class=\"notice-wrap\"><div class=\"notice notice-error inline\"><p>' + response.message + '</p></div></div>');\n\t\t\t\t\t\twrapper.find('.spinner').css('visibility', 'hidden');\n\t\t\t\t\t}\n\t\t\t\t}, 'json');\n\t\t\t});\n\t\t},\n\n\t\taddressesAction: function addressesAction() {\n\t\t\tvar $obj = this,\n\t\t\t $addressWrapper = $('#donor-address-wrapper'),\n\t\t\t $allAddress = $('.all-address', $addressWrapper),\n\t\t\t $noAddressMessageWrapper = $('.give-no-address-message', $addressWrapper),\n\t\t\t $allAddressParent = $($allAddress).parent(),\n\t\t\t $addressForm = $('.address-form', $addressWrapper),\n\t\t\t $addressFormCancelBtn = $('.js-cancel', $addressForm),\n\t\t\t $addressFormCountryField = $('select[name=\"country\"]', $addressForm),\n\t\t\t $addNewAddressBtn = $('.add-new-address', $addressWrapper),\n\t\t\t donorID = parseInt($('input[name=\"donor-id\"]').val());\n\n\t\t\t$addressFormCountryField.on('change', function () {\n\t\t\t\t$(this).trigger('chosen:updated');\n\t\t\t});\n\n\t\t\t// Edit current address button event.\n\t\t\t$allAddress.on('click', '.js-edit', function (e) {\n\t\t\t\tvar $parent = $(this).closest('.address');\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Remove notice.\n\t\t\t\t$('.notice', $allAddressParent).remove();\n\n\t\t\t\t$obj.__set_address_form_val($parent);\n\t\t\t\t$obj.__set_address_form_action('update', $parent.data('address-id'));\n\n\t\t\t\t$addNewAddressBtn.hide();\n\t\t\t\t$allAddress.addClass('give-hidden');\n\t\t\t\t$addressForm.removeClass('add-new-address-form-hidden');\n\t\t\t\t$addressForm.data('process', 'update');\n\t\t\t});\n\n\t\t\t// Remove address button event.\n\t\t\t$allAddress.on('click', '.js-remove', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $parent = $(this).closest('.address');\n\n\t\t\t\t// Remove notice.\n\t\t\t\t$('.notice', $allAddressParent).remove();\n\n\t\t\t\t$addressForm.data('changed', true);\n\t\t\t\t$obj.__set_address_form_val($parent);\n\t\t\t\t$obj.__set_address_form_action('remove', $parent.data('address-id'));\n\n\t\t\t\t$addressForm.trigger('submit');\n\t\t\t});\n\n\t\t\t// Add new address button event.\n\t\t\t$addNewAddressBtn.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Remove notice.\n\t\t\t\t$('.notice', $allAddressParent).remove();\n\n\t\t\t\t$(this).hide();\n\t\t\t\t$allAddress.addClass('give-hidden');\n\t\t\t\t$addressForm.removeClass('add-new-address-form-hidden');\n\t\t\t\t$obj.__set_address_form_action('add');\n\n\t\t\t\t$obj.__set_address_form_action();\n\t\t\t});\n\n\t\t\t// Cancel add new address form button event.\n\t\t\t$addressFormCancelBtn.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Reset form.\n\t\t\t\t$addressForm.find('input[type=\"text\"]').val('');\n\n\t\t\t\t$addNewAddressBtn.show();\n\t\t\t\t$allAddress.removeClass('give-hidden');\n\t\t\t\t$addressForm.addClass('add-new-address-form-hidden');\n\t\t\t});\n\n\t\t\t// Save address.\n\t\t\t$addressForm.on('change', function () {\n\t\t\t\t$(this).data('changed', true);\n\t\t\t}).on('submit', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\t// Remove notice.\n\t\t\t\t$('.notice', $allAddressParent).remove();\n\n\t\t\t\t// Do not send ajax if form does not change.\n\t\t\t\tif (!$(this).data('changed')) {\n\t\t\t\t\t$addNewAddressBtn.show();\n\t\t\t\t\t$allAddress.removeClass('give-hidden');\n\t\t\t\t\t$addressForm.addClass('add-new-address-form-hidden');\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'POST',\n\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'donor_manage_addresses',\n\t\t\t\t\t\tdonorID: donorID,\n\t\t\t\t\t\tform: $('form', $addressForm).serialize()\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function beforeSend() {\n\t\t\t\t\t\tgiveAjaxLoader($addressWrapper, { show: true });\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function success(response) {\n\t\t\t\t\t\tgiveAjaxLoader($addressWrapper);\n\n\t\t\t\t\t\tif (response.success) {\n\t\t\t\t\t\t\tvar parent;\n\n\t\t\t\t\t\t\tswitch (response.data.action) {\n\t\t\t\t\t\t\t\tcase 'add':\n\t\t\t\t\t\t\t\t\t$('.give-grid-row', $allAddress).append(response.data.address_html);\n\n\t\t\t\t\t\t\t\t\tif (!$noAddressMessageWrapper.hasClass('give-hidden') && $('div.give-grid-col-4', $allAddress).length) {\n\t\t\t\t\t\t\t\t\t\t$noAddressMessageWrapper.addClass('give-hidden');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase 'remove':\n\t\t\t\t\t\t\t\t\tparent = $allAddress.find('div[data-address-id*=\"' + response.data.id + '\"]').parent();\n\n\t\t\t\t\t\t\t\t\tif (parent.length) {\n\t\t\t\t\t\t\t\t\t\tparent.animate({ 'margin-left': '-999' }, 1000, function () {\n\t\t\t\t\t\t\t\t\t\t\tparent.remove();\n\n\t\t\t\t\t\t\t\t\t\t\tif ($noAddressMessageWrapper.hasClass('give-hidden') && !$('div.give-grid-col-4', $allAddress).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t$noAddressMessageWrapper.removeClass('give-hidden');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase 'update':\n\t\t\t\t\t\t\t\t\tparent = $allAddress.find('div[data-address-id*=\"' + response.data.id + '\"]').parent();\n\t\t\t\t\t\t\t\t\tvar $prevParent = parent.prev(),\n\t\t\t\t\t\t\t\t\t $nextParent = {},\n\t\t\t\t\t\t\t\t\t is_address_added = false;\n\n\t\t\t\t\t\t\t\t\tif (parseInt($('.give-grid-row>div', $allAddress).length) < 2) {\n\t\t\t\t\t\t\t\t\t\t$('.give-grid-row', $allAddress).append(response.data.address_html);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif ($prevParent.length) {\n\t\t\t\t\t\t\t\t\t\t\t$prevParent.after(response.data.address_html);\n\t\t\t\t\t\t\t\t\t\t\tis_address_added = true;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (!is_address_added) {\n\t\t\t\t\t\t\t\t\t\t\t$nextParent = parent.next();\n\n\t\t\t\t\t\t\t\t\t\t\tif ($nextParent.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t$nextParent.before(response.data.address_html);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tparent.remove();\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t$allAddressParent.prepend(response.data.success_msg);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$allAddressParent.prepend(response.data.error_msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tdataType: 'json'\n\t\t\t\t}).always(function () {\n\t\t\t\t\t$this.data('changed', false);\n\n\t\t\t\t\t// Reset form.\n\t\t\t\t\t$addressForm.find('input[type=\"text\"]').val('');\n\n\t\t\t\t\t$addNewAddressBtn.show();\n\t\t\t\t\t$allAddress.removeClass('give-hidden');\n\t\t\t\t\t$addressForm.addClass('add-new-address-form-hidden');\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\n\t\t__set_address_form_action: function __set_address_form_action(addressAction, addressID) {\n\t\t\tvar $addressWrapper = $('#donor-address-wrapper'),\n\t\t\t $addressForm = $('.address-form', $addressWrapper),\n\t\t\t $addressActionField = $('input[name=\"address-action\"]', $addressForm),\n\t\t\t $addressIDField = $('input[name=\"address-id\"]', $addressForm);\n\n\t\t\taddressAction = addressAction || 'add';\n\t\t\taddressID = addressID || 'billing';\n\n\t\t\t$addressActionField.val(addressAction);\n\t\t\t$addressIDField.val(addressID);\n\t\t},\n\n\t\t__set_address_form_val: function __set_address_form_val($form) {\n\t\t\tvar $addressWrapper = $('#donor-address-wrapper'),\n\t\t\t $addressForm = $('.address-form', $addressWrapper),\n\t\t\t state = $('[data-address-type=\"state\"]', $form).text().substr(2).trim(); // State will be like \", HR\".\n\n\t\t\tif ($('select[name=\"country\"]', $addressForm).val().trim() !== $('[data-address-type=\"country\"]', $form).text().trim()) {\n\t\t\t\t$('select[name=\"country\"]', $addressForm).val($('[data-address-type=\"country\"]', $form).text().trim()).trigger('chosen:updated').change();\n\n\t\t\t\t// Update state after some time because state load by ajax for each country.\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t$('[name=\"state\"]', $addressForm).val(state).trigger('chosen:updated');\n\t\t\t\t}, 500);\n\t\t\t} else {\n\t\t\t\t$('[name=\"state\"]', $addressForm).val(state).trigger('chosen:updated');\n\t\t\t}\n\n\t\t\t$('input[name=\"line1\"]', $addressForm).val($('[data-address-type=\"line1\"]', $form).text().trim());\n\t\t\t$('input[name=\"line2\"]', $addressForm).val($('[data-address-type=\"line2\"]', $form).text().trim());\n\t\t\t$('input[name=\"city\"]', $addressForm).val($('[data-address-type=\"city\"]', $form).text().trim());\n\t\t\t$('input[name=\"zip\"]', $addressForm).val($('[data-address-type=\"zip\"]', $form).text().trim());\n\t\t},\n\n\t\tbulkDeleteDonor: function bulkDeleteDonor() {\n\t\t\tvar $body = $('body');\n\n\t\t\t// Cancel button click event for donor.\n\t\t\t$body.on('click', '#give-bulk-delete-cancel', function (e) {\n\t\t\t\t$(this).closest('tr').hide();\n\t\t\t\t$('.give-skip-donor').trigger('click');\n\t\t\t\te.preventDefault();\n\t\t\t});\n\n\t\t\t// Select All checkbox.\n\t\t\t$body.on('click', '#cb-select-all-1, #cb-select-all-2', function () {\n\n\t\t\t\tvar selectAll = $(this);\n\n\t\t\t\t// Loop through donor selector checkbox.\n\t\t\t\t$.each($('.donor-selector'), function () {\n\n\t\t\t\t\tvar donorId = $(this).val(),\n\t\t\t\t\t donorName = $(this).data('name'),\n\t\t\t\t\t donorHtml = '<div id=\"give-donor-' + donorId + '\" data-id=\"' + donorId + '\">' + '<a class=\"give-skip-donor\" title=\"' + give_vars.remove_from_bulk_delete + '\">X</a>' + donorName + '</div>';\n\n\t\t\t\t\tif (selectAll.is(':checked') && !$(this).is(':checked')) {\n\t\t\t\t\t\t$('#give-bulk-donors').append(donorHtml);\n\t\t\t\t\t} else if (!selectAll.is(':checked')) {\n\t\t\t\t\t\t$('#give-bulk-donors').find('#give-donor-' + donorId).remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// On checking checkbox, add to bulk delete donor.\n\t\t\t$body.on('click', '.donor-selector', function () {\n\t\t\t\tvar donorId = $(this).val(),\n\t\t\t\t donorName = $(this).data('name'),\n\t\t\t\t donorHtml = '<div id=\"give-donor-' + donorId + '\" data-id=\"' + donorId + '\">' + '<a class=\"give-skip-donor\" title=\"' + give_vars.remove_from_bulk_delete + '\">X</a>' + donorName + '</div>';\n\n\t\t\t\tif ($(this).is(':checked')) {\n\t\t\t\t\t$('#give-bulk-donors').prepend(donorHtml);\n\t\t\t\t} else {\n\t\t\t\t\t$('#give-bulk-donors').find('#give-donor-' + donorId).remove();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// CheckBox click event to confirm deletion of donor.\n\t\t\t$body.on('click', '#give-bulk-delete .give-donor-delete-confirm', function () {\n\t\t\t\tif ($(this).is(':checked')) {\n\t\t\t\t\t$('#give-bulk-delete-button').removeAttr('disabled');\n\t\t\t\t} else {\n\t\t\t\t\t$('#give-bulk-delete-button').attr('disabled', true);\n\t\t\t\t\t$('#give-bulk-delete .give-donor-delete-records').removeAttr('checked');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// CheckBox click event to delete records with donor.\n\t\t\t$body.on('click', '#give-bulk-delete .give-donor-delete-records', function () {\n\t\t\t\tif ($(this).is(':checked')) {\n\t\t\t\t\t$('#give-bulk-delete .give-donor-delete-confirm').attr('checked', 'checked');\n\t\t\t\t\t$('#give-bulk-delete-button').removeAttr('disabled');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Skip Donor from Bulk Delete List.\n\t\t\t$body.on('click', '.give-skip-donor', function () {\n\t\t\t\tvar donorId = $(this).closest('div').data('id');\n\t\t\t\t$('#give-donor-' + donorId).remove();\n\t\t\t\t$('#donor-' + donorId).find('input[type=\"checkbox\"]').removeAttr('checked');\n\t\t\t});\n\n\t\t\t// Clicking Event to Delete Single Donor.\n\t\t\t$body.on('click', '.give-single-donor-delete', function (e) {\n\t\t\t\tvar donorId = $(this).data('id'),\n\t\t\t\t donorSelector = $('tr#donor-' + donorId).find('.donor-selector'),\n\t\t\t\t selectAll = $('[id^=\"cb-select-all-\"]'),\n\t\t\t\t bulkDeleteList = $('#give-bulk-donors'),\n\t\t\t\t donorName = donorSelector.data('name'),\n\t\t\t\t donorHtml = '<div id=\"give-donor-' + donorId + '\" data-id=\"' + donorId + '\">' + '<a class=\"give-skip-donor\" title=\"' + give_vars.remove_from_bulk_delete + '\">X</a>' + donorName + '</div>';\n\n\t\t\t\t// Reset Donors List.\n\t\t\t\tbulkDeleteList.html('');\n\n\t\t\t\t// Check whether the select all donor checkbox is already set, then unset it.\n\t\t\t\tif (selectAll.is(':checked')) {\n\t\t\t\t\tselectAll.removeAttr('checked');\n\t\t\t\t}\n\n\t\t\t\t// Select the donor checkbox for which delete is clicked and others should be de-selected.\n\t\t\t\t$('.donor-selector').removeAttr('checked');\n\t\t\t\tdonorSelector.attr('checked', 'checked');\n\n\t\t\t\t// Add Donor to the Bulk Delete List, if donor doesn't exists in the list.\n\t\t\t\tif ($('#give-donor-' + donorId).length === 0) {\n\t\t\t\t\tbulkDeleteList.prepend(donorHtml);\n\t\t\t\t\t$('#give-bulk-delete').slideDown();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t},\n\n\t\thandleBulkActions: function handleBulkActions(e) {\n\t\t\tvar currentAction = $(this).closest('.tablenav').find('select').val(),\n\t\t\t donors = [],\n\t\t\t selectBulkActionNotice = give_vars.donors_bulk_action.no_action_selected,\n\t\t\t confirmActionNotice = give_vars.donors_bulk_action.no_donor_selected;\n\n\t\t\t$.each($('.donor-selector:checked'), function () {\n\t\t\t\tdonors.push($(this).val());\n\t\t\t});\n\n\t\t\t// If there is no bulk action selected then show an alert message.\n\t\t\tif ('-1' === currentAction) {\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveWarningAlert\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: selectBulkActionNotice.title,\n\t\t\t\t\t\tdesc: selectBulkActionNotice.desc,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If there is no donor selected then show an alert.\n\t\t\tif (!parseInt(donors)) {\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveWarningAlert\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: confirmActionNotice.title,\n\t\t\t\t\t\tdesc: confirmActionNotice.desc,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ('delete' === currentAction) {\n\t\t\t\t$('#give-bulk-delete').slideDown();\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t}\n\t};\n\n\t/**\n * API screen JS\n */\n\tvar API_Screen = {\n\n\t\tinit: function init() {\n\t\t\tthis.revoke_api_key();\n\t\t\tthis.regenerate_api_key();\n\t\t},\n\n\t\trevoke_api_key: function revoke_api_key() {\n\t\t\t$('body').on('click', '.give-revoke-api-key', function (e) {\n\t\t\t\treturn confirm(give_vars.revoke_api_key);\n\t\t\t});\n\t\t},\n\t\tregenerate_api_key: function regenerate_api_key() {\n\t\t\t$('body').on('click', '.give-regenerate-api-key', function (e) {\n\t\t\t\treturn confirm(give_vars.regenerate_api_key);\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Edit Donation form screen Js\n */\n\tvar Edit_Form_Screen = {\n\t\tinit: function init() {\n\t\t\tvar default_tab_id = $.query.get('give_tab').length ? $.query.get('give_tab') : 'form_field_options';\n\n\t\t\tthis.handle_metabox_tab_click();\n\t\t\tthis.setup_colorpicker_fields();\n\t\t\tthis.setup_media_fields();\n\t\t\tthis.setup_repeatable_fields();\n\t\t\tthis.handle_repeater_group_events();\n\n\t\t\t// Multi level repeater field js.\n\t\t\tthis.handle_multi_levels_repeater_group_events();\n\n\t\t\t// Set active tab on page load.\n\t\t\tthis.activate_tab($('a[href=\"#' + default_tab_id + '\"]'));\n\t\t},\n\n\t\t/**\n * Attach click event handler to tabs.\n */\n\t\thandle_metabox_tab_click: function handle_metabox_tab_click() {\n\t\t\tvar self = this;\n\t\t\tvar $tab_links = $('.give-metabox-tabs a');\n\n\t\t\t$tab_links.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $this = $(this);\n\t\t\t\tself.activate_tab($this);\n\t\t\t\tself.update_query($this);\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Set the active tab.\n */\n\t\tactivate_tab: function activate_tab($tab_link) {\n\t\t\tvar tab_id = $tab_link.data('tab-id'),\n\t\t\t $li_parent = $tab_link.parent(),\n\t\t\t $sub_field = $('ul.give-metabox-sub-tabs', $li_parent),\n\t\t\t has_sub_field = $sub_field.length,\n\t\t\t $tab_links = $('.give-metabox-tabs a'),\n\t\t\t $all_tab_links_li = $tab_links.parents('li'),\n\t\t\t $all_sub_fields = $('ul.give-metabox-sub-tabs'),\n\t\t\t in_sub_fields = $tab_link.parents('ul.give-metabox-sub-tabs').length;\n\n\t\t\t// Update active tab hidden field to maintain tab after save.\n\t\t\t$('#give_form_active_tab').val(tab_id);\n\n\t\t\tif (has_sub_field) {\n\t\t\t\t$li_parent.toggleClass('active');\n\t\t\t\t$sub_field.removeClass('give-hidden');\n\n\t\t\t\tvar $active_subtab_li = $('li.active', 'ul.give-metabox-sub-tabs');\n\n\t\t\t\t// Show hide sub fields if any and exit.\n\t\t\t\t$all_sub_fields.not($sub_field).addClass('give-hidden');\n\t\t\t\t$all_tab_links_li.not($li_parent).removeClass('active');\n\n\t\t\t\t$active_subtab_li.addClass('active');\n\t\t\t} else if (!in_sub_fields) {\n\t\t\t\t// Hide all tab and sub tabs.\n\t\t\t\t$all_tab_links_li.each(function (index, item) {\n\t\t\t\t\titem = $(item);\n\t\t\t\t\titem.removeClass('active');\n\n\t\t\t\t\tif (item.hasClass('has-sub-fields')) {\n\t\t\t\t\t\t$('ul.give-metabox-sub-tabs', item).addClass('give-hidden');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (in_sub_fields) {\n\t\t\t\t// Hide all sub tabs.\n\t\t\t\t$('ul.give-metabox-sub-tabs').addClass('give-hidden');\n\t\t\t\t$all_tab_links_li.removeClass('active');\n\n\t\t\t\t// Hide all tab inside sub tabs.\n\t\t\t\t$tab_link.parents('ul.give-metabox-sub-tabs').removeClass('give-hidden').children('li').removeClass('active');\n\n\t\t\t\t// Add active class to parent li.\n\t\t\t\t$tab_link.parents('li.has-sub-fields').addClass('active');\n\t\t\t}\n\n\t\t\t// Add active class to current tab link.\n\t\t\t$tab_link.parent().addClass('active');\n\n\t\t\t// Hide all tab contents.\n\t\t\t$('.give_options_panel').removeClass('active');\n\n\t\t\t// Show tab content.\n\t\t\t$($tab_link.attr('href')).addClass('active');\n\t\t},\n\n\t\t/**\n * Update query string with active tab ID.\n */\n\t\tupdate_query: function update_query($tab_link) {\n\t\t\tvar tab_id = $tab_link.data('tab-id');\n\t\t\tvar new_query = $.query.set('give_tab', tab_id).remove('message').toString();\n\n\t\t\tif (history.replaceState) {\n\t\t\t\thistory.replaceState(null, null, new_query);\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Initialize colorpicker.\n */\n\t\tsetup_colorpicker_fields: function setup_colorpicker_fields() {\n\t\t\t$(document).ready(function () {\n\t\t\t\tvar $colorpicker_fields = $('.give-colorpicker');\n\n\t\t\t\tif ($colorpicker_fields.length) {\n\t\t\t\t\t$colorpicker_fields.each(function (index, item) {\n\t\t\t\t\t\tvar $item = $(item);\n\n\t\t\t\t\t\t// Bailout: do not automatically initialize color picker for repeater field group template.\n\t\t\t\t\t\tif ($item.parents('.give-template').length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$item.wpColorPicker();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tsetup_media_fields: function setup_media_fields() {\n\t\t\tvar give_media_uploader,\n\t\t\t $give_upload_button,\n\t\t\t $body = $('body');\n\n\t\t\t/**\n * Set media modal.\n */\n\t\t\t$body.on('click', '.give-upload-button', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $media_modal_config = {};\n\n\t\t\t\t// Cache input field.\n\t\t\t\t$give_upload_button = $(this);\n\n\t\t\t\t// Set modal config.\n\t\t\t\tswitch ($(this).data('field-type')) {\n\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t$media_modal_config = {\n\t\t\t\t\t\t\ttitle: give_vars.metabox_fields.media.button_title,\n\t\t\t\t\t\t\tbutton: { text: give_vars.metabox_fields.media.button_title },\n\t\t\t\t\t\t\tmultiple: false, // Set to true to allow multiple files to be selected.\n\t\t\t\t\t\t\tlibrary: { type: 'image' }\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$media_modal_config = {\n\t\t\t\t\t\t\ttitle: give_vars.metabox_fields.file.button_title,\n\t\t\t\t\t\t\tbutton: { text: give_vars.metabox_fields.file.button_title },\n\t\t\t\t\t\t\tmultiple: false\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tvar editing = jQuery(this).closest('.give-field-wrap').find('.give-input-field').attr('editing');\n\t\t\t\tif ('undefined' !== typeof editing) {\n\t\t\t\t\twp.media.controller.Library.prototype.defaults.contentUserSetting = false;\n\t\t\t\t}\n\n\t\t\t\tvar $library = jQuery(this).closest('.give-field-wrap').find('.give-input-field').attr('library');\n\t\t\t\tif ('undefined' !== typeof $library && '' !== $library) {\n\t\t\t\t\t$media_modal_config.library = { type: $library };\n\t\t\t\t}\n\n\t\t\t\t// Extend the wp.media object.\n\t\t\t\tgive_media_uploader = wp.media($media_modal_config);\n\n\t\t\t\t// When a file is selected, grab the URL and set it as the text field's value.\n\t\t\t\tgive_media_uploader.on('select', function () {\n\t\t\t\t\tvar attachment = give_media_uploader.state().get('selection').first().toJSON(),\n\t\t\t\t\t $input_field = $give_upload_button.prev(),\n\t\t\t\t\t fvalue = 'id' === $give_upload_button.data('fvalue') ? attachment.id : attachment.url;\n\n\t\t\t\t\t$body.trigger('give_media_inserted', [attachment, $input_field]);\n\n\t\t\t\t\t// Set input field value.\n\t\t\t\t\t$input_field.val(fvalue);\n\n\t\t\t\t\t// Update attachment id field value if fvalue is not set to id.\n\t\t\t\t\tif ('id' !== $give_upload_button.data('fvalue')) {\n\t\t\t\t\t\tvar attachment_id_field_name = 'input[name=\"' + $input_field.attr('name') + '_id\"]',\n\t\t\t\t\t\t id_field = $input_field.closest('tr').next('tr').find(attachment_id_field_name);\n\n\t\t\t\t\t\tif (id_field.length) {\n\t\t\t\t\t\t\t$input_field.closest('tr').next('tr').find(attachment_id_field_name).val(attachment.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Open the uploader dialog.\n\t\t\t\tgive_media_uploader.open();\n\t\t\t});\n\n\t\t\t/**\n * Show image preview.\n */\n\t\t\t$body.on('give_media_inserted', function (e, attachment) {\n\t\t\t\tvar $parent = $give_upload_button.parents('.give-field-wrap'),\n\t\t\t\t $image_container = $('.give-image-thumb', $parent);\n\n\t\t\t\t// Bailout.\n\t\t\t\tif (!$image_container.length) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Bailout and hide preview.\n\t\t\t\tif ('image' !== attachment.type) {\n\t\t\t\t\t$image_container.addClass('give-hidden');\n\t\t\t\t\t$('img', $image_container).attr('src', '');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Set the attachment URL to our custom image input field.\n\t\t\t\t$image_container.find('img').attr('src', attachment.url);\n\n\t\t\t\t// Hide the add image link.\n\t\t\t\t$image_container.removeClass('give-hidden');\n\t\t\t});\n\n\t\t\t/**\n * Delete Image Link.\n */\n\t\t\t$('span.give-delete-image-thumb', '.give-image-thumb').on('click', function (event) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tvar $parent = $(this).parents('.give-field-wrap'),\n\t\t\t\t $image_container = $(this).parent(),\n\t\t\t\t $image_input_field = $('input[type=\"text\"]', $parent);\n\n\t\t\t\t// Clear out the preview image.\n\t\t\t\t$image_container.addClass('give-hidden');\n\n\t\t\t\t// Remove image link from input field.\n\t\t\t\t$image_input_field.val('');\n\n\t\t\t\t// Hide the add image link.\n\t\t\t\t$('img', $image_container).attr('src', '');\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Setup repeater field.\n */\n\t\tsetup_repeatable_fields: function setup_repeatable_fields() {\n\t\t\tjQuery(function () {\n\t\t\t\tjQuery('.give-repeatable-field-section').each(function () {\n\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\t// Note: Do not change option params, it can break repeatable fields functionality.\n\t\t\t\t\tvar options = {\n\t\t\t\t\t\twrapper: '.give-repeatable-fields-section-wrapper',\n\t\t\t\t\t\tcontainer: '.container',\n\t\t\t\t\t\trow: '.give-row',\n\t\t\t\t\t\tadd: '.give-add-repeater-field-section-row',\n\t\t\t\t\t\tremove: '.give-remove',\n\t\t\t\t\t\tmove: '.give-move',\n\t\t\t\t\t\ttemplate: '.give-template',\n\t\t\t\t\t\tconfirm_before_remove_row: true,\n\t\t\t\t\t\tconfirm_before_remove_row_text: give_vars.confirm_before_remove_row_text,\n\t\t\t\t\t\tis_sortable: true,\n\t\t\t\t\t\tbefore_add: null,\n\t\t\t\t\t\tafter_add: handle_metabox_repeater_field_row_count,\n\t\t\t\t\t\t//after_add: after_add, Note: after_add is internal function in repeatable-fields.js. Uncomment this can cause of js error.\n\t\t\t\t\t\tbefore_remove: null,\n\t\t\t\t\t\tafter_remove: handle_metabox_repeater_field_row_remove,\n\t\t\t\t\t\tsortable_options: {\n\t\t\t\t\t\t\tplaceholder: 'give-ui-placeholder-state-highlight',\n\t\t\t\t\t\t\tstart: function start(event, ui) {\n\t\t\t\t\t\t\t\t// Do not allow any row at position 0.\n\t\t\t\t\t\t\t\tif (ui.item.next().hasClass('give-template')) {\n\t\t\t\t\t\t\t\t\tui.item.next().after(ui.item);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar $rows = $('.give-row', $this).not('.give-template');\n\n\t\t\t\t\t\t\t\tif ($rows.length) {\n\t\t\t\t\t\t\t\t\t$rows.each(function (index, item) {\n\t\t\t\t\t\t\t\t\t\t// Set name for fields.\n\t\t\t\t\t\t\t\t\t\tvar $fields = $('input[type=\"radio\"].give-field', $(item));\n\n\t\t\t\t\t\t\t\t\t\t// Preserve radio button values.\n\t\t\t\t\t\t\t\t\t\tif ($fields.length) {\n\t\t\t\t\t\t\t\t\t\t\t$fields.each(function () {\n\t\t\t\t\t\t\t\t\t\t\t\t$(this).attr('data-give-checked', $(this).is(':checked'));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$('body').trigger('repeater_field_sorting_start', [ui.item]);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: function stop(event, ui) {\n\t\t\t\t\t\t\t\t// Do not allow any row at position 0.\n\t\t\t\t\t\t\t\tif (ui.item.next().hasClass('give-template')) {\n\t\t\t\t\t\t\t\t\tui.item.next().after(ui.item);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$('body').trigger('repeater_field_sorting_stop', [ui.item]);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tupdate: function update(event, ui) {\n\t\t\t\t\t\t\t\t// Do not allow any row at position 0.\n\t\t\t\t\t\t\t\tif (ui.item.next().hasClass('give-template')) {\n\t\t\t\t\t\t\t\t\tui.item.next().after(ui.item);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar $rows = $('.give-row', $this).not('.give-template'),\n\t\t\t\t\t\t\t\t $container = $(this).closest('.give-repeatable-fields-section-wrapper');\n\n\t\t\t\t\t\t\t\tif ($rows.length) {\n\t\t\t\t\t\t\t\t\tvar row_count = 1;\n\t\t\t\t\t\t\t\t\t$rows.each(function (index, item) {\n\t\t\t\t\t\t\t\t\t\t// Set name for fields.\n\t\t\t\t\t\t\t\t\t\tvar $fields = $('.give-field, label', $(item));\n\n\t\t\t\t\t\t\t\t\t\tif ($fields.length) {\n\t\t\t\t\t\t\t\t\t\t\t$fields.each(function () {\n\t\t\t\t\t\t\t\t\t\t\t\tvar $parent = $(this).parents('.give-field-wrap'),\n\t\t\t\t\t\t\t\t\t\t\t\t $currentElement = $(this);\n\n\t\t\t\t\t\t\t\t\t\t\t\t$.each(this.attributes, function (index, element) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar old_class_name_prefix = this.value.replace(/\\[/g, '_').replace(/]/g, ''),\n\t\t\t\t\t\t\t\t\t\t\t\t\t old_class_name = old_class_name_prefix + '_field',\n\t\t\t\t\t\t\t\t\t\t\t\t\t new_class_name = '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t new_class_name_prefix = '';\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Bailout.\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!this.value) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Reorder index.\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.value = this.value.replace(/\\[\\d+\\]/g, '[' + (row_count - 1) + ']');\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew_class_name_prefix = this.value.replace(/\\[/g, '_').replace(/]/g, '');\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Update class name.\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ($parent.hasClass(old_class_name)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew_class_name = new_class_name_prefix + '_field';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$parent.removeClass(old_class_name).addClass(new_class_name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Update field id.\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (old_class_name_prefix == $currentElement.attr('id')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$currentElement.attr('id', new_class_name_prefix);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\trow_count++;\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t// Reset radio button values.\n\t\t\t\t\t\t\t\t\t\t$('input[data-give-checked]', $container).each(function (index, radio) {\n\t\t\t\t\t\t\t\t\t\t\tradio = $(radio);\n\t\t\t\t\t\t\t\t\t\t\tradio.prop('checked', 'true' === radio.attr('data-give-checked'));\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, 100);\n\n\t\t\t\t\t\t\t\t\t// Fire event.\n\t\t\t\t\t\t\t\t\t$this.trigger('repeater_field_row_reordered', [ui.item]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//row_count_placeholder: '{{row-count-placeholder}}' Note: do not modify this param otherwise it will break repeatable field functionality.\n\t\t\t\t\t\t} };\n\n\t\t\t\t\tjQuery(this).repeatable_fields(options);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Handle repeater field events.\n */\n\t\thandle_repeater_group_events: function handle_repeater_group_events() {\n\t\t\tvar $repeater_fields = $('.give-repeatable-field-section'),\n\t\t\t $body = $('body');\n\n\t\t\t// Auto toggle repeater group\n\t\t\t$body.on('click', '.give-row-head button', function () {\n\t\t\t\tvar $parent = $(this).closest('tr');\n\t\t\t\t$parent.toggleClass('closed');\n\t\t\t\t$('.give-row-body', $parent).toggle();\n\t\t\t});\n\n\t\t\t// Reset header title when new row added.\n\t\t\t$repeater_fields.on('repeater_field_new_row_added repeater_field_row_deleted repeater_field_row_reordered', function () {\n\t\t\t\thandle_repeater_group_add_number_suffix($(this));\n\t\t\t});\n\n\t\t\t// Disable editor when sorting start.\n\t\t\t$body.on('repeater_field_sorting_start', function (e, row) {\n\t\t\t\tvar $textarea = $('.wp-editor-area', row);\n\n\t\t\t\tif ($textarea.length) {\n\t\t\t\t\t$textarea.each(function (index, item) {\n\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\ttinyMCE.execCommand('mceRemoveEditor', true, $(item).attr('id'));\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Enable editor when sorting stop.\n\t\t\t$body.on('repeater_field_sorting_stop', function (e, row) {\n\t\t\t\tvar $textarea = $('.wp-editor-area', row);\n\n\t\t\t\tif ($textarea.length) {\n\t\t\t\t\t$textarea.each(function (index, item) {\n\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\tvar textarea_id = $(item).attr('id');\n\t\t\t\t\t\t\ttinyMCE.execCommand('mceAddEditor', true, textarea_id);\n\n\t\t\t\t\t\t\t// Switch editor to tmce mode to fix some glitch which appear when you reorder rows.\n\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\t// Hack to show tmce mode.\n\t\t\t\t\t\t\t\tswitchEditors.go(textarea_id, 'html');\n\t\t\t\t\t\t\t\t$('#' + textarea_id + '-tmce').trigger('click');\n\t\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Process jobs on document load for repeater fields.\n\t\t\t$repeater_fields.each(function (index, item) {\n\t\t\t\t// Reset title on document load for already exist groups.\n\t\t\t\tvar $item = $(item);\n\t\t\t\thandle_repeater_group_add_number_suffix($item);\n\n\t\t\t\t// Close all tabs when page load.\n\t\t\t\tif (parseInt($item.data('close-tabs'))) {\n\t\t\t\t\t$('.give-row-head button', $item).trigger('click');\n\t\t\t\t\t$('.give-template', $item).removeClass('closed');\n\t\t\t\t\t$('.give-template .give-row-body', $item).show();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Setup colorpicker field when row added.\n\t\t\t$repeater_fields.on('repeater_field_new_row_added', function (e, container, new_row) {\n\t\t\t\t$('.give-colorpicker', $(this)).each(function (index, item) {\n\t\t\t\t\tvar $item = $(item);\n\n\t\t\t\t\t// Bailout: skip already init colorpocker fields.\n\t\t\t\t\tif ($item.parents('.wp-picker-container').length || $item.parents('.give-template').length) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$item.wpColorPicker();\n\t\t\t\t});\n\n\t\t\t\t// Load WordPress editor by ajax.\n\t\t\t\tvar wysiwyg_editor_container = $('div[data-wp-editor]', new_row);\n\n\t\t\t\tif (wysiwyg_editor_container.length) {\n\t\t\t\t\twysiwyg_editor_container.each(function (index, item) {\n\t\t\t\t\t\tvar $item = $(item),\n\t\t\t\t\t\t wysiwyg_editor = $('.wp-editor-wrap', $item),\n\t\t\t\t\t\t textarea = $('textarea', $item),\n\t\t\t\t\t\t textarea_id = 'give_wysiwyg_unique_' + Math.random().toString().replace('.', '_'),\n\t\t\t\t\t\t wysiwyg_editor_label = wysiwyg_editor.prev();\n\n\t\t\t\t\t\ttextarea.attr('id', textarea_id);\n\n\t\t\t\t\t\t$.post(ajaxurl, {\n\t\t\t\t\t\t\taction: 'give_load_wp_editor',\n\t\t\t\t\t\t\twp_editor: $item.data('wp-editor'),\n\t\t\t\t\t\t\twp_editor_id: textarea_id,\n\t\t\t\t\t\t\ttextarea_name: $('textarea', $item).attr('name')\n\t\t\t\t\t\t}, function (res) {\n\t\t\t\t\t\t\twysiwyg_editor.remove();\n\t\t\t\t\t\t\twysiwyg_editor_label.after(res);\n\n\t\t\t\t\t\t\t// Setup qt data for editor.\n\t\t\t\t\t\t\ttinyMCEPreInit.qtInit[textarea.attr('id')] = $.extend(true, tinyMCEPreInit.qtInit['_give_agree_text'], { id: textarea_id });\n\n\t\t\t\t\t\t\t// Setup mce data for editor.\n\t\t\t\t\t\t\ttinyMCEPreInit.mceInit[textarea_id] = $.extend(true, tinyMCEPreInit.mceInit['_give_agree_text'], {\n\t\t\t\t\t\t\t\tbody_class: textarea_id + ' post-type-give_forms post-status-publish locale-' + tinyMCEPreInit.mceInit['_give_agree_text']['wp_lang_attr'].toLowerCase(),\n\t\t\t\t\t\t\t\tselector: '#' + textarea_id\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Setup editor.\n\t\t\t\t\t\t\ttinymce.init(tinyMCEPreInit.mceInit[textarea_id]);\n\t\t\t\t\t\t\tquicktags(tinyMCEPreInit.qtInit[textarea_id]);\n\t\t\t\t\t\t\tQTags._buttonsInit();\n\n\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\t// Hack to show tmce mode.\n\t\t\t\t\t\t\t\tswitchEditors.go(textarea_id, 'html');\n\t\t\t\t\t\t\t\t$('#' + textarea_id + '-tmce').trigger('click');\n\t\t\t\t\t\t\t}, 100);\n\n\t\t\t\t\t\t\tif (!window.wpActiveEditor) {\n\t\t\t\t\t\t\t\twindow.wpActiveEditor = textarea_id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n * Handle events for multi level repeater group.\n */\n\t\thandle_multi_levels_repeater_group_events: function handle_multi_levels_repeater_group_events() {\n\t\t\tvar $repeater_fields = $('#_give_donation_levels_field');\n\n\t\t\t// Add level title as suffix to header title when admin add level title.\n\t\t\t$('body').on('keyup', '.give-multilevel-text-field', function () {\n\t\t\t\tvar $parent = $(this).closest('tr'),\n\t\t\t\t $header_title_container = $('.give-row-head h2 span', $parent),\n\t\t\t\t donation_level_header_text_prefix = $header_title_container.data('header-title');\n\n\t\t\t\t// Donation level header already set.\n\t\t\t\tif ($(this).val() && $(this).val() === $header_title_container.html()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif ($(this).val()) {\n\t\t\t\t\t// Change donaiton level header text.\n\t\t\t\t\t$header_title_container.html(donation_level_header_text_prefix + ': ' + $(this).val());\n\t\t\t\t} else {\n\t\t\t\t\t// Reset donation level header heading text.\n\t\t\t\t\t$header_title_container.html(donation_level_header_text_prefix);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Add level title as suffix to header title on document load.\n\t\t\t$('.give-multilevel-text-field').each(function (index, item) {\n\n\t\t\t\t// Skip first element.\n\t\t\t\tif (!index) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check if item is jquery object or not.\n\t\t\t\tvar $item = $(item);\n\n\t\t\t\tvar $parent = $item.closest('tr'),\n\t\t\t\t $header_title_container = $('.give-row-head h2 span', $parent),\n\t\t\t\t donation_level_header_text_prefix = $header_title_container.data('header-title');\n\n\t\t\t\t// Donation level header already set.\n\t\t\t\tif ($item.val() && $item.val() === $header_title_container.html()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif ($item.val()) {\n\t\t\t\t\t// Change donaiton level header text.\n\t\t\t\t\t$header_title_container.html(donation_level_header_text_prefix + ': ' + $item.val());\n\t\t\t\t} else {\n\t\t\t\t\t// Reset donation level header heading text.\n\t\t\t\t\t$header_title_container.html(donation_level_header_text_prefix);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Handle row deleted event for levels repeater field.\n\t\t\t$repeater_fields.on('repeater_field_row_deleted', function () {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\tvar $parent = $this,\n\t\t\t\t\t $repeatable_rows = $('.give-row', $parent).not('.give-template'),\n\t\t\t\t\t $default_radio = $('.give-give_default_radio_inline', $repeatable_rows),\n\t\t\t\t\t number_of_level = $repeatable_rows.length;\n\n\t\t\t\t\tif (number_of_level === 1) {\n\t\t\t\t\t\t$default_radio.prop('checked', true);\n\t\t\t\t\t}\n\t\t\t\t}, 200);\n\t\t\t});\n\n\t\t\t// Handle row added event for levels repeater field.\n\t\t\t$repeater_fields.on('repeater_field_new_row_added', function (e, container, new_row) {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t max_level_id = 0;\n\n\t\t\t\t// Auto set default level if no level set as default.\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t// Set first row as default if selected default row deleted.\n\t\t\t\t\t// When a row is removed containing the default selection then revert default to first repeatable row.\n\t\t\t\t\tif ($('.give-give_default_radio_inline', $this).is(':checked') === false) {\n\t\t\t\t\t\t$('.give-row', $this).not('.give-template').first().find('.give-give_default_radio_inline').prop('checked', true);\n\t\t\t\t\t}\n\t\t\t\t}, 200);\n\n\t\t\t\t// Get max level id.\n\t\t\t\t$('input[type=\"hidden\"].give-levels_id', $this).each(function (index, item) {\n\t\t\t\t\tvar $item = $(item),\n\t\t\t\t\t current_level = parseInt($item.val());\n\t\t\t\t\tif (max_level_id < current_level) {\n\t\t\t\t\t\tmax_level_id = current_level;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Auto set level id for new setting level setting group.\n\t\t\t\t$('input[type=\"hidden\"].give-levels_id', new_row).val(++max_level_id);\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n * Handle row count and field count for repeatable field.\n */\n\tvar handle_metabox_repeater_field_row_count = function handle_metabox_repeater_field_row_count(container, new_row) {\n\t\tvar row_count = $(container).attr('data-rf-row-count'),\n\t\t $container = $(container),\n\t\t $parent = $container.parents('.give-repeatable-field-section');\n\n\t\trow_count++;\n\n\t\t// Set name for fields.\n\t\t$('*', new_row).each(function () {\n\t\t\t$.each(this.attributes, function (index, element) {\n\t\t\t\tthis.value = this.value.replace('{{row-count-placeholder}}', row_count - 1);\n\t\t\t});\n\t\t});\n\n\t\t// Set row counter.\n\t\t$(container).attr('data-rf-row-count', row_count);\n\n\t\t// Fire event: Row added.\n\t\t$parent.trigger('repeater_field_new_row_added', [container, new_row]);\n\t};\n\n\t/**\n * Handle row remove for repeatable field.\n */\n\tvar handle_metabox_repeater_field_row_remove = function handle_metabox_repeater_field_row_remove(container) {\n\t\tvar $container = $(container),\n\t\t $parent = $container.parents('.give-repeatable-field-section'),\n\t\t row_count = $(container).attr('data-rf-row-count');\n\n\t\t// Reduce row count.\n\t\t$container.attr('data-rf-row-count', --row_count);\n\n\t\t// Fire event: Row deleted.\n\t\t$parent.trigger('repeater_field_row_deleted');\n\t};\n\n\t/**\n * Add number suffix to repeater group.\n */\n\tvar handle_repeater_group_add_number_suffix = function handle_repeater_group_add_number_suffix($parent) {\n\n\t\t// Bailout: check if auto group numbering is on or not.\n\t\tif (!parseInt($parent.data('group-numbering'))) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $header_title_container = $('.give-row-head h2 span', $parent),\n\t\t header_text_prefix = $header_title_container.data('header-title');\n\n\t\t$header_title_container.each(function (index, item) {\n\t\t\tvar $item = $(item);\n\n\t\t\t// Bailout: do not rename header title in fields template.\n\t\t\tif ($item.parents('.give-template').length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$item.html(header_text_prefix + ': ' + index);\n\t\t});\n\t};\n\n\t/**\n * Payment history listing page js\n */\n\tvar GivePaymentHistory = {\n\t\tinit: function init() {\n\t\t\t$('body').on('click', '#give-payments-filter input[type=\"submit\"]', this.handleBulkActions);\n\t\t},\n\n\t\thandleBulkActions: function handleBulkActions(e) {\n\t\t\tvar currentAction = $(this).closest('.tablenav').find('select').val(),\n\t\t\t currentActionLabel = $(this).closest('.tablenav').find('option[value=\"' + currentAction + '\"]').text(),\n\t\t\t $payments = $('input[name=\"payment[]\"]:checked').length,\n\t\t\t isStatusTypeAction = -1 !== currentAction.indexOf('set-status-'),\n\t\t\t confirmActionNotice = '',\n\t\t\t status = '';\n\n\t\t\t// Set common action, if action type is status.\n\t\t\tcurrentAction = isStatusTypeAction ? 'set-to-status' : currentAction;\n\n\t\t\tif ('-1' === currentAction) {\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveWarningAlert\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.donors_bulk_action.no_action_selected.title,\n\t\t\t\t\t\tdesc: give_vars.donors_bulk_action.no_action_selected.desc,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (Object.keys(give_vars.donations_bulk_action).length) {\n\t\t\t\tfor (status in give_vars.donations_bulk_action) {\n\t\t\t\t\tif (status === currentAction) {\n\n\t\t\t\t\t\t// Get status text if current action types is status.\n\t\t\t\t\t\tconfirmActionNotice = isStatusTypeAction ? give_vars.donations_bulk_action[currentAction].zero.replace('{status}', currentActionLabel.replace('Set To ', '')) : give_vars.donations_bulk_action[currentAction].zero;\n\n\t\t\t\t\t\t// Check if admin selected any donations or not.\n\t\t\t\t\t\tif (!parseInt($payments)) {\n\t\t\t\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveWarningAlert\"]({\n\t\t\t\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\t\t\t\ttitle: give_vars.donations_bulk_action.titles.zero,\n\t\t\t\t\t\t\t\t\tdesc: confirmActionNotice,\n\t\t\t\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).render();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Get message on basis of payment count.\n\t\t\t\t\t\tconfirmActionNotice = 1 < $payments ? give_vars.donations_bulk_action[currentAction].multiple : give_vars.donations_bulk_action[currentAction].single;\n\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveConfirmModal\"]({\n\t\t\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\t\t\ttitle: give_vars.confirm_bulk_action,\n\t\t\t\t\t\t\t\tdesc: confirmActionNotice.replace('{payment_count}', $payments).replace('{status}', currentActionLabel.replace('Set To ', ''))\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsuccessConfirm: function successConfirm(args) {\n\t\t\t\t\t\t\t\t$('#give-payments-filter').submit();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).render();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t// On DOM Ready.\n\t$(function () {\n\n\t\tgive_dismiss_notice();\n\t\tenable_admin_datepicker();\n\t\thandle_status_change();\n\t\tsetup_chosen_give_selects();\n\t\t$.giveAjaxifyFields({ type: 'country_state', debug: true });\n\t\tGiveListDonation.init();\n\t\tGive_Edit_Donation.init();\n\t\tGive_Settings.init();\n\t\tGive_Reports.init();\n\t\tGiveDonor.init();\n\t\tAPI_Screen.init();\n\t\tGive_Export.init();\n\t\tGive_Updates.init();\n\t\tGive_Upgrades.init();\n\t\tEdit_Form_Screen.init();\n\t\tGivePaymentHistory.init();\n\n\t\t// Footer.\n\t\t$('a.give-rating-link').click(function () {\n\t\t\tjQuery(this).parent().text(jQuery(this).data('rated'));\n\t\t});\n\n\t\t// Ajax user search.\n\t\t$('.give-ajax-user-search').on('keyup', function () {\n\t\t\tvar user_search = $(this).val();\n\t\t\tvar exclude = '';\n\n\t\t\tif ($(this).data('exclude')) {\n\t\t\t\texclude = $(this).data('exclude');\n\t\t\t}\n\n\t\t\t$('.give-ajax').show();\n\t\t\tdata = {\n\t\t\t\taction: 'give_search_users',\n\t\t\t\tuser_name: user_search,\n\t\t\t\texclude: exclude\n\t\t\t};\n\n\t\t\tdocument.body.style.cursor = 'wait';\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\tdata: data,\n\t\t\t\tdataType: 'json',\n\t\t\t\turl: ajaxurl,\n\t\t\t\tsuccess: function success(search_response) {\n\t\t\t\t\t$('.give-ajax').hide();\n\t\t\t\t\t$('.give_user_search_results').removeClass('hidden');\n\t\t\t\t\t$('.give_user_search_results span').html('');\n\t\t\t\t\t$(search_response.results).appendTo('.give_user_search_results span');\n\t\t\t\t\tdocument.body.style.cursor = 'default';\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t$('body').on('click.giveSelectUser', '.give_user_search_results span a', function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar login = $(this).data('login');\n\t\t\t$('.give-ajax-user-search').val(login);\n\t\t\t$('.give_user_search_results').addClass('hidden');\n\t\t\t$('.give_user_search_results span').html('');\n\t\t});\n\n\t\t$('body').on('click.giveCancelUserSearch', '.give_user_search_results a.give-ajax-user-cancel', function (e) {\n\t\t\te.preventDefault();\n\t\t\t$('.give-ajax-user-search').val('');\n\t\t\t$('.give_user_search_results').addClass('hidden');\n\t\t\t$('.give_user_search_results span').html('');\n\t\t});\n\n\t\tvar $poststuff = $('#poststuff'),\n\t\t thousand_separator = give_vars.thousands_separator,\n\t\t decimal_separator = give_vars.decimal_separator,\n\t\t thousand_separator_count = '',\n\t\t alphabet_count = '',\n\t\t price_string = '',\n\n\n\t\t// Thousand separation limit in price depends upon decimal separator symbol.\n\t\t// If thousand separator is equal to decimal separator then price does not have more then 1 thousand separator otherwise limit is zero.\n\t\tthousand_separator_limit = decimal_separator === thousand_separator ? 1 : 0;\n\n\t\t// Check & show message on keyup event.\n\t\t$poststuff.on('keyup', 'input.give-money-field, input.give-price-field', function () {\n\t\t\tvar tootltip_setting = {\n\t\t\t\tlabel: give_vars.price_format_guide.trim()\n\t\t\t};\n\n\t\t\t// Count thousand separator in price string.\n\t\t\tthousand_separator_count = ($(this).val().match(new RegExp(thousand_separator, 'g')) || []).length;\n\t\t\talphabet_count = ($(this).val().match(new RegExp('[a-z]', 'g')) || []).length;\n\n\t\t\t// Show qtip conditionally if thousand separator detected on price string.\n\t\t\tif (-1 !== $(this).val().indexOf(thousand_separator) && thousand_separator_limit < thousand_separator_count) {\n\t\t\t\t$(this).giveHintCss('show', tootltip_setting);\n\t\t\t} else if (alphabet_count) {\n\t\t\t\t$(this).giveHintCss('show', tootltip_setting);\n\t\t\t} else {\n\t\t\t\t$(this).giveHintCss('hide', tootltip_setting);\n\t\t\t}\n\n\t\t\t// Reset thousand separator count.\n\t\t\tthousand_separator_count = alphabet_count = '';\n\t\t});\n\n\t\t// Format price sting of input field on focusout.\n\t\t$poststuff.on('focusout', 'input.give-money-field, input.give-price-field', function () {\n\t\t\tprice_string = give_unformat_currency($(this).val(), false);\n\n\t\t\t$(this).giveHintCss('hide', { label: give_vars.price_format_guide.trim() });\n\n\t\t\t// Back out.\n\t\t\tif (give_unformat_currency('0', false) === give_unformat_currency($(this).val(), false)) {\n\t\t\t\tvar default_amount = $(this).attr('placeholder');\n\t\t\t\tdefault_amount = !default_amount ? '0' : default_amount;\n\n\t\t\t\t$(this).val(default_amount);\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Replace dot decimal separator with user defined decimal separator.\n\t\t\tprice_string = price_string.replace('.', decimal_separator);\n\n\t\t\t// Check if current number is negative or not.\n\t\t\tif (-1 !== price_string.indexOf('-')) {\n\t\t\t\tprice_string = price_string.replace('-', '');\n\t\t\t}\n\n\t\t\t// Update format price string in input field.\n\t\t\t$(this).val(price_string);\n\t\t});\n\n\t\t// Set default value to 1 even if user inputs empty or negative number of donations.\n\t\t$poststuff.on('focusout', '#_give_number_of_donation_goal', function () {\n\t\t\tif (1 > $(this).val()) {\n\t\t\t\t$(this).val(1);\n\t\t\t}\n\t\t});\n\n\t\t/**\n * Responsive setting tab features.\n */\n\n\t\t// Show/Hide sub tab nav.\n\t\t$('.give-settings-page').on('click', '#give-show-sub-nav', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar $sub_tab_nav = $(this).next();\n\n\t\t\tif (!$sub_tab_nav.is(':hover')) {\n\t\t\t\t$sub_tab_nav.toggleClass('give-hidden');\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}).on('blur', '#give-show-sub-nav', function () {\n\t\t\tvar $sub_tab_nav = $(this).next();\n\n\t\t\tif (!$sub_tab_nav.is(':hover')) {\n\t\t\t\t$sub_tab_nav.addClass('give-hidden');\n\t\t\t}\n\t\t});\n\n\t\t/**\n * Automatically show/hide email setting fields.\n */\n\t\t$('.give_email_api_notification_status_setting input').change(function () {\n\t\t\t// Bailout.\n\t\t\tvar value = $(this).val(),\n\t\t\t is_enabled = 'enabled' === value,\n\t\t\t $setting_fields = {};\n\n\t\t\t// Get setting fields.\n\t\t\tif ($(this).closest('.give_options_panel').length) {\n\t\t\t\t$setting_fields = $(this).closest('.give_options_panel').children('.give-field-wrap:not(.give_email_api_notification_status_setting), .give-repeatable-field-section');\n\t\t\t} else if ($(this).closest('table').length) {\n\t\t\t\t$setting_fields = $(this).closest('table').find('tr:not(.give_email_api_notification_status_setting)');\n\t\t\t}\n\n\t\t\tif (-1 === jQuery.inArray(value, ['enabled', 'disabled', 'global'])) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Bailout.\n\t\t\tif (!$setting_fields.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Show hide setting fields.\n\t\t\tis_enabled ? $setting_fields.show() : $setting_fields.hide();\n\t\t});\n\n\t\t$('.give_email_api_notification_status_setting input:checked').change();\n\n\t\t// Render setting tab.\n\t\tgive_render_responsive_tabs();\n\t});\n})(jQuery);\n\n/**\n * Responsive js.\n */\njQuery(window).resize(function () {\n\tgive_render_responsive_tabs();\n});\n\n/**\n * Render responsive tabs\n */\nfunction give_render_responsive_tabs() {\n\tvar $setting_page_form = jQuery('.give-settings-page'),\n\t $main_tab_nav = jQuery('h2.give-nav-tab-wrapper'),\n\t setting_page_form_width = $setting_page_form.width(),\n\t $sub_tab_nav_wrapper = jQuery('.give-sub-nav-tab-wrapper'),\n\t $sub_tab_nav = jQuery('nav', $sub_tab_nav_wrapper),\n\t $setting_tab_links = jQuery('div.give-nav-tab-wrapper > a:not(give-not-tab)'),\n\t $show_tabs = [],\n\t $hide_tabs = [],\n\t tab_width = 0;\n\n\tif (600 < jQuery(window).outerWidth()) {\n\t\ttab_width = 200;\n\t}\n\n\t// Bailout.\n\tif (!$setting_page_form.length) {\n\t\treturn false;\n\t}\n\n\t// Update tab wrapper css.\n\t$main_tab_nav.css({\n\t\theight: 'auto',\n\t\toverflow: 'visible'\n\t});\n\n\t// Show all tab if anyone hidden to calculate correct tab width.\n\t$setting_tab_links.removeClass('give-hidden');\n\n\tvar refactor_tabs = new Promise(function (resolve, reject) {\n\n\t\t// Collect tabs to show or hide.\n\t\tjQuery.each($setting_tab_links, function (index, $tab_link) {\n\t\t\t$tab_link = jQuery($tab_link);\n\t\t\ttab_width = tab_width + parseInt($tab_link.outerWidth());\n\n\t\t\tif (tab_width < setting_page_form_width) {\n\t\t\t\t$show_tabs.push($tab_link);\n\t\t\t} else {\n\t\t\t\t$hide_tabs.push($tab_link);\n\t\t\t}\n\t\t});\n\n\t\tresolve(true);\n\t});\n\n\trefactor_tabs.then(function (is_refactor_tabs) {\n\n\t\t// Remove current tab from sub menu and add this to main menu if exist and get last tab from main menu and add this to sub menu.\n\t\tif ($hide_tabs.length && -1 !== window.location.search.indexOf('&tab=')) {\n\t\t\tvar $current_tab_nav = {},\n\t\t\t query_params = get_url_params();\n\n\t\t\t$hide_tabs = $hide_tabs.filter(function ($tab_link) {\n\t\t\t\tvar is_current_nav_item = -1 !== parseInt($tab_link.attr('href').indexOf('&tab=' + query_params['tab']));\n\n\t\t\t\tif (is_current_nav_item) {\n\t\t\t\t\t$current_tab_nav = $tab_link;\n\t\t\t\t}\n\n\t\t\t\treturn !is_current_nav_item;\n\t\t\t});\n\n\t\t\tif ($current_tab_nav.length) {\n\t\t\t\t$hide_tabs.unshift($show_tabs.pop());\n\t\t\t\t$show_tabs.push($current_tab_nav);\n\t\t\t}\n\t\t}\n\n\t\tvar show_tabs = new Promise(function (resolve, reject) {\n\n\t\t\t// Show main menu tabs.\n\t\t\tif ($show_tabs.length) {\n\t\t\t\tjQuery.each($show_tabs, function (index, $tab_link) {\n\t\t\t\t\t$tab_link = jQuery($tab_link);\n\n\t\t\t\t\tif ($tab_link.hasClass('give-hidden')) {\n\t\t\t\t\t\t$tab_link.removeClass('give-hidden');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tresolve(true);\n\t\t});\n\n\t\tshow_tabs.then(function (is_show_tabs) {\n\n\t\t\t// Hide sub menu tabs.\n\t\t\tif ($hide_tabs.length) {\n\t\t\t\t$sub_tab_nav.html('');\n\n\t\t\t\tjQuery.each($hide_tabs, function (index, $tab_link) {\n\t\t\t\t\t$tab_link = jQuery($tab_link);\n\t\t\t\t\tif (!$tab_link.hasClass('nav-tab-active')) {\n\t\t\t\t\t\t$tab_link.addClass('give-hidden');\n\t\t\t\t\t}\n\t\t\t\t\t$tab_link.clone().removeClass().appendTo($sub_tab_nav);\n\t\t\t\t});\n\n\t\t\t\tif (!jQuery('.give-sub-nav-tab-wrapper', $main_tab_nav).length) {\n\t\t\t\t\t$main_tab_nav.append($sub_tab_nav_wrapper);\n\t\t\t\t}\n\n\t\t\t\t$sub_tab_nav_wrapper.show();\n\t\t\t} else {\n\t\t\t\t$sub_tab_nav_wrapper.hide();\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Get url query params.\n *\n * @returns {Array}\n */\nfunction get_url_params() {\n\tvar vars = [],\n\t hash;\n\tvar hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\n\tfor (var i = 0; i < hashes.length; i++) {\n\t\thash = hashes[i].split('=');\n\t\tvars[hash[0]] = hash[1];\n\t}\n\treturn vars;\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__plugins_modal__ = __webpack_require__(10);\n/**\n * Give Admin JS\n *\n * @package: Give\n * @subpackage: Assets/JS\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n/**\n * Do not allow user to reload the page\n *\n * @since 1.8.14\n */\n\n\n\nvar give_setting_edit = true;\n\n(function ($) {\n\n\t// On DOM Ready.\n\t$(function () {\n\t\tgive_import_donation_onload();\n\t});\n})(jQuery);\n\n/**\n * Run when user click on submit button.\n *\n * @since 1.8.17\n */\nfunction give_on_core_settings_import_start() {\n\tvar import_step = 'body.give_forms_page_give-tools .give-tools-import-tab #give-import-core-settings-form table.step-2';\n\tif (jQuery(import_step).length > 0) {\n\n\t\tvar $form = jQuery('form.tools-setting-page-import');\n\t\tvar progress = $form.find('.give-progress');\n\n\t\tgive_setting_edit = true;\n\n\t\tjQuery.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: ajaxurl,\n\t\t\tdata: {\n\t\t\t\taction: give_vars.core_settings_import,\n\t\t\t\tfields: $form.serialize()\n\t\t\t},\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function success(response) {\n\t\t\t\tgive_setting_edit = false;\n\t\t\t\tif (true === response.success) {\n\t\t\t\t\tjQuery(progress).find('div').width(response.percentage + '%');\n\t\t\t\t} else {\n\t\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveErrorAlert\"]({\n\t\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\t\ttitle: give_vars.import_failed,\n\t\t\t\t\t\t\tdesc: give_vars.error_message,\n\t\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t\t}\n\t\t\t\t\t}).render();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twindow.location = response.url;\n\t\t\t},\n\t\t\terror: function error() {\n\t\t\t\tgive_setting_edit = false;\n\n\t\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveErrorAlert\"]({\n\t\t\t\t\tmodalContent: {\n\t\t\t\t\t\ttitle: give_vars.import_failed,\n\t\t\t\t\t\tdesc: give_vars.error_message,\n\t\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t\t}\n\t\t\t\t}).render();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * Check if admin is on step 1 and file is invalid\n *\n * @since 2.1\n */\nfunction give_import_core_settings_json_is_valid() {\n\tvar import_step = 'body.give_forms_page_give-tools .give-tools-import-tab #give-import-core-settings-form table.step-1 .is_json_valid';\n\tif (jQuery(import_step).length > 0) {\n\t\twindow.location = jQuery(import_step).val();\n\t}\n}\n\n/**\n * Check if admin is on step 3 where we start imporing Donation from CSV via AJAX\n *\n * @since 2.1\n */\nfunction give_start_importing_donations() {\n\tvar import_step = 'body.give_forms_page_give-tools .give-tools-import-tab #give-import-donations-form table.step-3';\n\tif (jQuery(import_step).length > 0) {\n\t\tgive_on_donation_import_ajax();\n\t}\n}\n\n/**\n * Check if admin is on step 2 and CSV is invalid\n *\n * @since 2.1\n */\nfunction give_import_donation_csv_not_valid() {\n\tvar import_step = 'body.give_forms_page_give-tools .give-tools-import-tab #give-import-donations-form table.step-2 .csv_not_valid';\n\tif (jQuery(import_step).length > 0) {\n\t\twindow.location = jQuery(import_step).val();\n\t}\n}\n\n/**\n * Check if admin is on step 1 and csv is valid\n *\n * @since 2.1\n */\nfunction give_import_donation_valid_csv() {\n\tvar import_step = 'body.give_forms_page_give-tools .give-tools-import-tab #give-import-donations-form table.step-1 .is_csv_valid';\n\tif (jQuery(import_step).length > 0) {\n\t\twindow.location = jQuery(import_step).val();\n\t}\n}\n\n/**\n * Upload CSV ajax\n *\n * @since 1.8.13\n */\nfunction give_on_donation_import_ajax() {\n\tvar $form = jQuery('form.tools-setting-page-import');\n\n\t/**\n * Do not allow user to reload the page\n *\n * @since 1.8.14\n */\n\tgive_setting_edit = true;\n\n\tvar progress = $form.find('.give-progress');\n\n\tvar total_ajax = jQuery(progress).data('total_ajax'),\n\t current = jQuery(progress).data('current'),\n\t start = jQuery(progress).data('start'),\n\t end = jQuery(progress).data('end'),\n\t next = jQuery(progress).data('next'),\n\t total = jQuery(progress).data('total'),\n\t per_page = jQuery(progress).data('per_page');\n\n\tjQuery.ajax({\n\t\ttype: 'POST',\n\t\turl: ajaxurl,\n\t\tdata: {\n\t\t\taction: give_vars.give_donation_import,\n\t\t\ttotal_ajax: total_ajax,\n\t\t\tcurrent: current,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tnext: next,\n\t\t\ttotal: total,\n\t\t\tper_page: per_page,\n\t\t\tfields: $form.serialize()\n\t\t},\n\t\tdataType: 'json',\n\t\tsuccess: function success(response) {\n\t\t\tjQuery(progress).data('current', response.current);\n\t\t\tjQuery(progress).find('div').width(response.percentage + '%');\n\n\t\t\tif (response.next == true) {\n\t\t\t\tjQuery(progress).data('start', response.start);\n\t\t\t\tjQuery(progress).data('end', response.end);\n\n\t\t\t\tif (response.last == true) {\n\t\t\t\t\tjQuery(progress).data('next', false);\n\t\t\t\t}\n\t\t\t\tgive_on_donation_import_ajax();\n\t\t\t} else {\n\t\t\t\t/**\n * Now user is allow to reload the page.\n *\n * @since 1.8.14\n */\n\t\t\t\tgive_setting_edit = false;\n\t\t\t\twindow.location = response.url;\n\t\t\t}\n\t\t},\n\t\terror: function error() {\n\t\t\t/**\n * Now user is allow to reload the page.\n *\n * @since 1.8.14\n */\n\t\t\tgive_setting_edit = false;\n\n\t\t\tnew __WEBPACK_IMPORTED_MODULE_0__plugins_modal__[\"GiveErrorAlert\"]({\n\t\t\t\tmodalContent: {\n\t\t\t\t\ttitle: give_vars.import_failed,\n\t\t\t\t\tdesc: give_vars.error_message,\n\t\t\t\t\tcancelBtnTitle: give_vars.ok\n\t\t\t\t}\n\t\t\t}).render();\n\t\t}\n\t});\n}\n\n/**\n * Give Import donation run on load once page is load completed.\n */\nfunction give_import_donation_onload() {\n\twindow.onload = function () {\n\t\tgive_import_donation_required_fields_check();\n\t\tgive_import_donation_on_drop_down_change();\n\t\tgive_start_importing_donations();\n\t\tgive_import_donation_valid_csv();\n\t\tgive_import_donation_csv_not_valid();\n\t\tgive_on_core_settings_import_start();\n\t\tgive_import_core_settings_json_is_valid();\n\t};\n}\n\n/**\n * Give import donation on change of drop down and update the required fields.\n */\nfunction give_import_donation_on_drop_down_change() {\n\tvar fields = document.querySelector('.give-tools-setting-page-import table.step-2 tbody select');\n\tif (fields !== 'undefined' && fields !== null) {\n\t\tjQuery('.give-tools-setting-page-import table.step-2 tbody').on('change', 'select', function () {\n\t\t\tgive_import_donation_required_fields_check();\n\t\t});\n\t}\n}\n\n/**\n * Give Import Donations check required fields\n */\nfunction give_import_donation_required_fields_check() {\n\tvar required_fields = document.querySelector('.give-tools-setting-page-import table.step-2 .give-import-donation-required-fields');\n\tif (required_fields !== 'undefined' && required_fields !== null) {\n\t\tvar submit = true,\n\t\t email = false,\n\t\t first_name = false,\n\t\t amount = false,\n\t\t form = false;\n\n\t\tdocument.querySelectorAll('.give-import-donation-required-fields li').forEach(function (value) {\n\t\t\tvalue.querySelector('.dashicons').classList.remove('dashicons-yes');\n\t\t\tvalue.querySelector('.dashicons').classList.add('dashicons-no-alt');\n\t\t});\n\n\t\tvar select_fields = Array.from(document.querySelectorAll('table.step-2 tbody select')).map(function (field) {\n\t\t\treturn field.value;\n\t\t});\n\n\t\tif (select_fields.includes('email')) {\n\t\t\temail = true;\n\t\t\tdocument.querySelector('.give-import-donation-required-email .dashicons').classList.remove('dashicons-no-alt');\n\t\t\tdocument.querySelector('.give-import-donation-required-email .dashicons').classList.add('dashicons-yes');\n\t\t}\n\n\t\tif (select_fields.includes('first_name')) {\n\t\t\tfirst_name = true;\n\t\t\tdocument.querySelector('.give-import-donation-required-first .dashicons').classList.remove('dashicons-no-alt');\n\t\t\tdocument.querySelector('.give-import-donation-required-first .dashicons').classList.add('dashicons-yes');\n\t\t}\n\n\t\tif (select_fields.includes('amount')) {\n\t\t\tamount = true;\n\t\t\tdocument.querySelector('.give-import-donation-required-amount .dashicons').classList.remove('dashicons-no-alt');\n\t\t\tdocument.querySelector('.give-import-donation-required-amount .dashicons').classList.add('dashicons-yes');\n\t\t}\n\n\t\tif (select_fields.includes('form_id') || select_fields.includes('form_title')) {\n\t\t\tform = true;\n\t\t\tdocument.querySelector('.give-import-donation-required-form .dashicons').classList.remove('dashicons-no-alt');\n\t\t\tdocument.querySelector('.give-import-donation-required-form .dashicons').classList.add('dashicons-yes');\n\t\t}\n\n\t\tif (email && first_name && amount && form) {\n\t\t\tsubmit = false;\n\t\t}\n\n\t\tdocument.getElementById('recount-stats-submit').disabled = submit;\n\t}\n}\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// js/admin.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3dcc6c2fe2616e07130b","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0 1","module.exports = global[\"accounting\"] = require(\"-!./accounting.js\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/accounting/accounting.js-exposed\n// module id = 1\n// module chunks = 0 1","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 2\n// module chunks = 0 1","/*!\n * accounting.js v0.4.1\n * Copyright 2014 Open Exchange Rates\n *\n * Freely distributable under the MIT license.\n * Portions of accounting.js are inspired or borrowed from underscore.js\n *\n * Full details and documentation:\n * http://openexchangerates.github.io/accounting.js/\n */\n\n(function(root, undefined) {\n\n\t/* --- Setup --- */\n\n\t// Create the local library object, to be exported or referenced globally later\n\tvar lib = {};\n\n\t// Current version\n\tlib.version = '0.4.1';\n\n\n\t/* --- Exposed settings --- */\n\n\t// The library's settings configuration object. Contains default parameters for\n\t// currency and number formatting\n\tlib.settings = {\n\t\tcurrency: {\n\t\t\tsymbol : \"$\",\t\t// default currency symbol is '$'\n\t\t\tformat : \"%s%v\",\t// controls output: %s = symbol, %v = value (can be object, see docs)\n\t\t\tdecimal : \".\",\t\t// decimal point separator\n\t\t\tthousand : \",\",\t\t// thousands separator\n\t\t\tprecision : 2,\t\t// decimal places\n\t\t\tgrouping : 3\t\t// digit grouping (not implemented yet)\n\t\t},\n\t\tnumber: {\n\t\t\tprecision : 0,\t\t// default precision on numbers is 0\n\t\t\tgrouping : 3,\t\t// digit grouping (not implemented yet)\n\t\t\tthousand : \",\",\n\t\t\tdecimal : \".\"\n\t\t}\n\t};\n\n\n\t/* --- Internal Helper Methods --- */\n\n\t// Store reference to possibly-available ECMAScript 5 methods for later\n\tvar nativeMap = Array.prototype.map,\n\t\tnativeIsArray = Array.isArray,\n\t\ttoString = Object.prototype.toString;\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js\n\t */\n\tfunction isString(obj) {\n\t\treturn !!(obj === '' || (obj && obj.charCodeAt && obj.substr));\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js, delegates to ECMA5's native Array.isArray\n\t */\n\tfunction isArray(obj) {\n\t\treturn nativeIsArray ? nativeIsArray(obj) : toString.call(obj) === '[object Array]';\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a true object\n\t */\n\tfunction isObject(obj) {\n\t\treturn obj && toString.call(obj) === '[object Object]';\n\t}\n\n\t/**\n\t * Extends an object with a defaults object, similar to underscore's _.defaults\n\t *\n\t * Used for abstracting parameter handling from API methods\n\t */\n\tfunction defaults(object, defs) {\n\t\tvar key;\n\t\tobject = object || {};\n\t\tdefs = defs || {};\n\t\t// Iterate over object non-prototype properties:\n\t\tfor (key in defs) {\n\t\t\tif (defs.hasOwnProperty(key)) {\n\t\t\t\t// Replace values with defaults only if undefined (allow empty/zero values):\n\t\t\t\tif (object[key] == null) object[key] = defs[key];\n\t\t\t}\n\t\t}\n\t\treturn object;\n\t}\n\n\t/**\n\t * Implementation of `Array.map()` for iteration loops\n\t *\n\t * Returns a new Array as a result of calling `iterator` on each array value.\n\t * Defers to native Array.map if available\n\t */\n\tfunction map(obj, iterator, context) {\n\t\tvar results = [], i, j;\n\n\t\tif (!obj) return results;\n\n\t\t// Use native .map method if it exists:\n\t\tif (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);\n\n\t\t// Fallback for native .map:\n\t\tfor (i = 0, j = obj.length; i < j; i++ ) {\n\t\t\tresults[i] = iterator.call(context, obj[i], i, obj);\n\t\t}\n\t\treturn results;\n\t}\n\n\t/**\n\t * Check and normalise the value of precision (must be positive integer)\n\t */\n\tfunction checkPrecision(val, base) {\n\t\tval = Math.round(Math.abs(val));\n\t\treturn isNaN(val)? base : val;\n\t}\n\n\n\t/**\n\t * Parses a format string or object and returns format obj for use in rendering\n\t *\n\t * `format` is either a string with the default (positive) format, or object\n\t * containing `pos` (required), `neg` and `zero` values (or a function returning\n\t * either a string or object)\n\t *\n\t * Either string or format.pos must contain \"%v\" (value) to be valid\n\t */\n\tfunction checkCurrencyFormat(format) {\n\t\tvar defaults = lib.settings.currency.format;\n\n\t\t// Allow function as format parameter (should return string or object):\n\t\tif ( typeof format === \"function\" ) format = format();\n\n\t\t// Format can be a string, in which case `value` (\"%v\") must be present:\n\t\tif ( isString( format ) && format.match(\"%v\") ) {\n\n\t\t\t// Create and return positive, negative and zero formats:\n\t\t\treturn {\n\t\t\t\tpos : format,\n\t\t\t\tneg : format.replace(\"-\", \"\").replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : format\n\t\t\t};\n\n\t\t// If no format, or object is missing valid positive value, use defaults:\n\t\t} else if ( !format || !format.pos || !format.pos.match(\"%v\") ) {\n\n\t\t\t// If defaults is a string, casts it to an object for faster checking next time:\n\t\t\treturn ( !isString( defaults ) ) ? defaults : lib.settings.currency.format = {\n\t\t\t\tpos : defaults,\n\t\t\t\tneg : defaults.replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : defaults\n\t\t\t};\n\n\t\t}\n\t\t// Otherwise, assume format was fine:\n\t\treturn format;\n\t}\n\n\n\t/* --- API Methods --- */\n\n\t/**\n\t * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value\n\t * Alias: `accounting.parse(string)`\n\t *\n\t * Decimal must be included in the regular expression to match floats (defaults to\n\t * accounting.settings.number.decimal), so if the number uses a non-standard decimal \n\t * separator, provide it as the second argument.\n\t *\n\t * Also matches bracketed negatives (eg. \"$ (1.99)\" => -1.99)\n\t *\n\t * Doesn't throw any errors (`NaN`s become 0) but this may change in future\n\t */\n\tvar unformat = lib.unformat = lib.parse = function(value, decimal) {\n\t\t// Recursively unformat arrays:\n\t\tif (isArray(value)) {\n\t\t\treturn map(value, function(val) {\n\t\t\t\treturn unformat(val, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Fails silently (need decent errors):\n\t\tvalue = value || 0;\n\n\t\t// Return the value as-is if it's already a number:\n\t\tif (typeof value === \"number\") return value;\n\n\t\t// Default decimal point comes from settings, but could be set to eg. \",\" in opts:\n\t\tdecimal = decimal || lib.settings.number.decimal;\n\n\t\t // Build regex to strip out everything except digits, decimal point and minus sign:\n\t\tvar regex = new RegExp(\"[^0-9-\" + decimal + \"]\", [\"g\"]),\n\t\t\tunformatted = parseFloat(\n\t\t\t\t(\"\" + value)\n\t\t\t\t.replace(/\\((.*)\\)/, \"-$1\") // replace bracketed values with negatives\n\t\t\t\t.replace(regex, '') // strip out any cruft\n\t\t\t\t.replace(decimal, '.') // make sure decimal point is standard\n\t\t\t);\n\n\t\t// This will fail silently which may cause trouble, let's wait and see:\n\t\treturn !isNaN(unformatted) ? unformatted : 0;\n\t};\n\n\n\t/**\n\t * Implementation of toFixed() that treats floats more like decimals\n\t *\n\t * Fixes binary rounding issues (eg. (0.615).toFixed(2) === \"0.61\") that present\n\t * problems for accounting- and finance-related software.\n\t */\n\tvar toFixed = lib.toFixed = function(value, precision) {\n\t\tprecision = checkPrecision(precision, lib.settings.number.precision);\n\t\tvar power = Math.pow(10, precision);\n\n\t\t// Multiply up by precision, round accurately, then divide and use native toFixed():\n\t\treturn (Math.round(lib.unformat(value) * power) / power).toFixed(precision);\n\t};\n\n\n\t/**\n\t * Format a number, with comma-separated thousands and custom precision/decimal places\n\t * Alias: `accounting.format()`\n\t *\n\t * Localise by overriding the precision and thousand / decimal separators\n\t * 2nd parameter `precision` can be an object matching `settings.number`\n\t */\n\tvar formatNumber = lib.formatNumber = lib.format = function(number, precision, thousand, decimal) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val) {\n\t\t\t\treturn formatNumber(val, precision, thousand, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(precision) ? precision : {\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal\n\t\t\t\t}),\n\t\t\t\tlib.settings.number\n\t\t\t),\n\n\t\t\t// Clean up precision\n\t\t\tusePrecision = checkPrecision(opts.precision),\n\n\t\t\t// Do some calc:\n\t\t\tnegative = number < 0 ? \"-\" : \"\",\n\t\t\tbase = parseInt(toFixed(Math.abs(number || 0), usePrecision), 10) + \"\",\n\t\t\tmod = base.length > 3 ? base.length % 3 : 0;\n\n\t\t// Format the number:\n\t\treturn negative + (mod ? base.substr(0, mod) + opts.thousand : \"\") + base.substr(mod).replace(/(\\d{3})(?=\\d)/g, \"$1\" + opts.thousand) + (usePrecision ? opts.decimal + toFixed(Math.abs(number), usePrecision).split('.')[1] : \"\");\n\t};\n\n\n\t/**\n\t * Format a number into currency\n\t *\n\t * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format)\n\t * defaults: (0, \"$\", 2, \",\", \".\", \"%s%v\")\n\t *\n\t * Localise by overriding the symbol, precision, thousand / decimal separators and format\n\t * Second param can be an object matching `settings.currency` which is the easiest way.\n\t *\n\t * To do: tidy up the parameters\n\t */\n\tvar formatMoney = lib.formatMoney = function(number, symbol, precision, thousand, decimal, format) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val){\n\t\t\t\treturn formatMoney(val, symbol, precision, thousand, decimal, format);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero):\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Choose which format to use for this value:\n\t\t\tuseFormat = number > 0 ? formats.pos : number < 0 ? formats.neg : formats.zero;\n\n\t\t// Return with currency symbol added:\n\t\treturn useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(number), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\t};\n\n\n\t/**\n\t * Format a list of numbers into an accounting column, padding with whitespace\n\t * to line up currency symbols, thousand separators and decimals places\n\t *\n\t * List should be an array of numbers\n\t * Second parameter can be an object containing keys that match the params\n\t *\n\t * Returns array of accouting-formatted number strings of same length\n\t *\n\t * NB: `white-space:pre` CSS rule is required on the list container to prevent\n\t * browsers from collapsing the whitespace in the output strings.\n\t */\n\tlib.formatColumn = function(list, symbol, precision, thousand, decimal, format) {\n\t\tif (!list) return [];\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero), only need pos for now:\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Whether to pad at start of string or after currency symbol:\n\t\t\tpadAfterSymbol = formats.pos.indexOf(\"%s\") < formats.pos.indexOf(\"%v\") ? true : false,\n\n\t\t\t// Store value for the length of the longest string in the column:\n\t\t\tmaxLength = 0,\n\n\t\t\t// Format the list according to options, store the length of the longest string:\n\t\t\tformatted = map(list, function(val, i) {\n\t\t\t\tif (isArray(val)) {\n\t\t\t\t\t// Recursively format columns if list is a multi-dimensional array:\n\t\t\t\t\treturn lib.formatColumn(val, opts);\n\t\t\t\t} else {\n\t\t\t\t\t// Clean up the value\n\t\t\t\t\tval = unformat(val);\n\n\t\t\t\t\t// Choose which format to use for this value (pos, neg or zero):\n\t\t\t\t\tvar useFormat = val > 0 ? formats.pos : val < 0 ? formats.neg : formats.zero,\n\n\t\t\t\t\t\t// Format this value, push into formatted list and save the length:\n\t\t\t\t\t\tfVal = useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(val), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\n\t\t\t\t\tif (fVal.length > maxLength) maxLength = fVal.length;\n\t\t\t\t\treturn fVal;\n\t\t\t\t}\n\t\t\t});\n\n\t\t// Pad each number in the list and send back the column of numbers:\n\t\treturn map(formatted, function(val, i) {\n\t\t\t// Only if this is a string (not a nested array, which would have already been padded):\n\t\t\tif (isString(val) && val.length < maxLength) {\n\t\t\t\t// Depending on symbol position, pad after symbol or at index 0:\n\t\t\t\treturn padAfterSymbol ? val.replace(opts.symbol, opts.symbol+(new Array(maxLength - val.length + 1).join(\" \"))) : (new Array(maxLength - val.length + 1).join(\" \")) + val;\n\t\t\t}\n\t\t\treturn val;\n\t\t});\n\t};\n\n\n\t/* --- Module Definition --- */\n\n\t// Export accounting for CommonJS. If being loaded as an AMD module, define it as such.\n\t// Otherwise, just add `accounting` to the global object\n\tif (typeof exports !== 'undefined') {\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\texports = module.exports = lib;\n\t\t}\n\t\texports.accounting = lib;\n\t} else if (typeof define === 'function' && define.amd) {\n\t\t// Return the library as an AMD module:\n\t\tdefine([], function() {\n\t\t\treturn lib;\n\t\t});\n\t} else {\n\t\t// Use accounting.noConflict to restore `accounting` back to its original value.\n\t\t// Returns a reference to the library's `accounting` object;\n\t\t// e.g. `var numbers = accounting.noConflict();`\n\t\tlib.noConflict = (function(oldAccounting) {\n\t\t\treturn function() {\n\t\t\t\t// Reset the value of the root's `accounting` variable:\n\t\t\t\troot.accounting = oldAccounting;\n\t\t\t\t// Delete the noConflict method:\n\t\t\t\tlib.noConflict = undefined;\n\t\t\t\t// Return reference to the library to re-assign it:\n\t\t\t\treturn lib;\n\t\t\t};\n\t\t})(root.accounting);\n\n\t\t// Declare `fx` on the root (global/window) object:\n\t\troot['accounting'] = lib;\n\t}\n\n\t// Root will be `window` in browser or `global` on the server:\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/accounting/accounting.js\n// module id = 3\n// module chunks = 0 1","/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (typeof define === 'function' && define.amd) { \n // AMD. Register as an anonymous module. \n define(['jquery'], factory); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n\tBEFORE_CLOSE_EVENT = 'BeforeClose',\n\tAFTER_CLOSE_EVENT = 'AfterClose',\n\tBEFORE_APPEND_EVENT = 'BeforeAppend',\n\tMARKUP_PARSE_EVENT = 'MarkupParse',\n\tOPEN_EVENT = 'Open',\n\tCHANGE_EVENT = 'Change',\n\tNS = 'mfp',\n\tEVENT_NS = '.' + NS,\n\tREADY_CLASS = 'mfp-ready',\n\tREMOVING_CLASS = 'mfp-removing',\n\tPREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n\tMagnificPopup = function(){},\n\t_isJQ = !!(window.jQuery),\n\t_prevStatus,\n\t_window = $(window),\n\t_document,\n\t_prevContentType,\n\t_wrapClasses,\n\t_currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n\t\tmfp.ev.on(NS + name + EVENT_NS, f);\n\t},\n\t_getEl = function(className, appendTo, html, raw) {\n\t\tvar el = document.createElement('div');\n\t\tel.className = 'mfp-'+className;\n\t\tif(html) {\n\t\t\tel.innerHTML = html;\n\t\t}\n\t\tif(!raw) {\n\t\t\tel = $(el);\n\t\t\tif(appendTo) {\n\t\t\t\tel.appendTo(appendTo);\n\t\t\t}\n\t\t} else if(appendTo) {\n\t\t\tappendTo.appendChild(el);\n\t\t}\n\t\treturn el;\n\t},\n\t_mfpTrigger = function(e, data) {\n\t\tmfp.ev.triggerHandler(NS + e, data);\n\n\t\tif(mfp.st.callbacks) {\n\t\t\t// converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n\t\t\te = e.charAt(0).toLowerCase() + e.slice(1);\n\t\t\tif(mfp.st.callbacks[e]) {\n\t\t\t\tmfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n\t\t\t}\n\t\t}\n\t},\n\t_getCloseBtn = function(type) {\n\t\tif(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n\t\t\tmfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n\t\t\t_currPopupType = type;\n\t\t}\n\t\treturn mfp.currTemplate.closeBtn;\n\t},\n\t// Initialize Magnific Popup only when called at least once\n\t_checkInstance = function() {\n\t\tif(!$.magnificPopup.instance) {\n\t\t\t/*jshint -W020 */\n\t\t\tmfp = new MagnificPopup();\n\t\t\tmfp.init();\n\t\t\t$.magnificPopup.instance = mfp;\n\t\t}\n\t},\n\t// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n\tsupportsTransitions = function() {\n\t\tvar s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n\t\t\tv = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n\t\tif( s['transition'] !== undefined ) {\n\t\t\treturn true; \n\t\t}\n\t\t\t\n\t\twhile( v.length ) {\n\t\t\tif( v.pop() + 'Transition' in s ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn false;\n\t};\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n\tconstructor: MagnificPopup,\n\n\t/**\n\t * Initializes Magnific Popup plugin. \n\t * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n\t */\n\tinit: function() {\n\t\tvar appVersion = navigator.appVersion;\n\t\tmfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n\t\tmfp.isAndroid = (/android/gi).test(appVersion);\n\t\tmfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n\t\tmfp.supportsTransition = supportsTransitions();\n\n\t\t// We disable fixed positioned lightbox on devices that don't handle it nicely.\n\t\t// If you know a better way of detecting this - let me know.\n\t\tmfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n\t\t_document = $(document);\n\n\t\tmfp.popupsCache = {};\n\t},\n\n\t/**\n\t * Opens popup\n\t * @param data [description]\n\t */\n\topen: function(data) {\n\n\t\tvar i;\n\n\t\tif(data.isObj === false) { \n\t\t\t// convert jQuery collection to array to avoid conflicts later\n\t\t\tmfp.items = data.items.toArray();\n\n\t\t\tmfp.index = 0;\n\t\t\tvar items = data.items,\n\t\t\t\titem;\n\t\t\tfor(i = 0; i < items.length; i++) {\n\t\t\t\titem = items[i];\n\t\t\t\tif(item.parsed) {\n\t\t\t\t\titem = item.el[0];\n\t\t\t\t}\n\t\t\t\tif(item === data.el[0]) {\n\t\t\t\t\tmfp.index = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.items = $.isArray(data.items) ? data.items : [data.items];\n\t\t\tmfp.index = data.index || 0;\n\t\t}\n\n\t\t// if popup is already opened - we just update the content\n\t\tif(mfp.isOpen) {\n\t\t\tmfp.updateItemHTML();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tmfp.types = []; \n\t\t_wrapClasses = '';\n\t\tif(data.mainEl && data.mainEl.length) {\n\t\t\tmfp.ev = data.mainEl.eq(0);\n\t\t} else {\n\t\t\tmfp.ev = _document;\n\t\t}\n\n\t\tif(data.key) {\n\t\t\tif(!mfp.popupsCache[data.key]) {\n\t\t\t\tmfp.popupsCache[data.key] = {};\n\t\t\t}\n\t\t\tmfp.currTemplate = mfp.popupsCache[data.key];\n\t\t} else {\n\t\t\tmfp.currTemplate = {};\n\t\t}\n\n\n\n\t\tmfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n\t\tmfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n\t\tif(mfp.st.modal) {\n\t\t\tmfp.st.closeOnContentClick = false;\n\t\t\tmfp.st.closeOnBgClick = false;\n\t\t\tmfp.st.showCloseBtn = false;\n\t\t\tmfp.st.enableEscapeKey = false;\n\t\t}\n\t\t\n\n\t\t// Building markup\n\t\t// main containers are created only once\n\t\tif(!mfp.bgOverlay) {\n\n\t\t\t// Dark overlay\n\t\t\tmfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\n\t\t\t\tmfp.close();\n\t\t\t});\n\n\t\t\tmfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n\t\t\t\tif(mfp._checkIfClose(e.target)) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmfp.container = _getEl('container', mfp.wrap);\n\t\t}\n\n\t\tmfp.contentContainer = _getEl('content');\n\t\tif(mfp.st.preloader) {\n\t\t\tmfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n\t\t}\n\n\n\t\t// Initializing modules\n\t\tvar modules = $.magnificPopup.modules;\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar n = modules[i];\n\t\t\tn = n.charAt(0).toUpperCase() + n.slice(1);\n\t\t\tmfp['init'+n].call(mfp);\n\t\t}\n\t\t_mfpTrigger('BeforeOpen');\n\n\n\t\tif(mfp.st.showCloseBtn) {\n\t\t\t// Close button\n\t\t\tif(!mfp.st.closeBtnInside) {\n\t\t\t\tmfp.wrap.append( _getCloseBtn() );\n\t\t\t} else {\n\t\t\t\t_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n\t\t\t\t\tvalues.close_replaceWith = _getCloseBtn(item.type);\n\t\t\t\t});\n\t\t\t\t_wrapClasses += ' mfp-close-btn-in';\n\t\t\t}\n\t\t}\n\n\t\tif(mfp.st.alignTop) {\n\t\t\t_wrapClasses += ' mfp-align-top';\n\t\t}\n\n\t\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css({\n\t\t\t\toverflow: mfp.st.overflowY,\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\toverflowY: mfp.st.overflowY\n\t\t\t});\n\t\t} else {\n\t\t\tmfp.wrap.css({ \n\t\t\t\ttop: _window.scrollTop(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\t\tif( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n\t\t\tmfp.bgOverlay.css({\n\t\t\t\theight: _document.height(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\n\t\t\n\n\t\tif(mfp.st.enableEscapeKey) {\n\t\t\t// Close on ESC key\n\t\t\t_document.on('keyup' + EVENT_NS, function(e) {\n\t\t\t\tif(e.keyCode === 27) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_window.on('resize' + EVENT_NS, function() {\n\t\t\tmfp.updateSize();\n\t\t});\n\n\n\t\tif(!mfp.st.closeOnContentClick) {\n\t\t\t_wrapClasses += ' mfp-auto-cursor';\n\t\t}\n\t\t\n\t\tif(_wrapClasses)\n\t\t\tmfp.wrap.addClass(_wrapClasses);\n\n\n\t\t// this triggers recalculation of layout, so we get it once to not to trigger twice\n\t\tvar windowHeight = mfp.wH = _window.height();\n\n\t\t\n\t\tvar windowStyles = {};\n\n\t\tif( mfp.fixedContentPos ) {\n if(mfp._hasScrollBar(windowHeight)){\n var s = mfp._getScrollbarSize();\n if(s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tif(!mfp.isIE7) {\n\t\t\t\twindowStyles.overflow = 'hidden';\n\t\t\t} else {\n\t\t\t\t// ie7 double-scroll bug\n\t\t\t\t$('body, html').css('overflow', 'hidden');\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t\tvar classesToadd = mfp.st.mainClass;\n\t\tif(mfp.isIE7) {\n\t\t\tclassesToadd += ' mfp-ie7';\n\t\t}\n\t\tif(classesToadd) {\n\t\t\tmfp._addClassToMFP( classesToadd );\n\t\t}\n\n\t\t// add content\n\t\tmfp.updateItemHTML();\n\n\t\t_mfpTrigger('BuildControls');\n\n\t\t// remove scrollbar, add margin e.t.c\n\t\t$('html').css(windowStyles);\n\t\t\n\t\t// add everything to DOM\n\t\tmfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n\t\t// Save last focused element\n\t\tmfp._lastFocusedEl = document.activeElement;\n\t\t\n\t\t// Wait for next cycle to allow CSS transition\n\t\tsetTimeout(function() {\n\t\t\t\n\t\t\tif(mfp.content) {\n\t\t\t\tmfp._addClassToMFP(READY_CLASS);\n\t\t\t\tmfp._setFocus();\n\t\t\t} else {\n\t\t\t\t// if content is not defined (not loaded e.t.c) we add class only for BG\n\t\t\t\tmfp.bgOverlay.addClass(READY_CLASS);\n\t\t\t}\n\t\t\t\n\t\t\t// Trap the focus in popup\n\t\t\t_document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n\t\t}, 16);\n\n\t\tmfp.isOpen = true;\n\t\tmfp.updateSize(windowHeight);\n\t\t_mfpTrigger(OPEN_EVENT);\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Closes the popup\n\t */\n\tclose: function() {\n\t\tif(!mfp.isOpen) return;\n\t\t_mfpTrigger(BEFORE_CLOSE_EVENT);\n\n\t\tmfp.isOpen = false;\n\t\t// for CSS3 animation\n\t\tif(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\n\t\t\tmfp._addClassToMFP(REMOVING_CLASS);\n\t\t\tsetTimeout(function() {\n\t\t\t\tmfp._close();\n\t\t\t}, mfp.st.removalDelay);\n\t\t} else {\n\t\t\tmfp._close();\n\t\t}\n\t},\n\n\t/**\n\t * Helper for close() function\n\t */\n\t_close: function() {\n\t\t_mfpTrigger(CLOSE_EVENT);\n\n\t\tvar classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n\t\tmfp.bgOverlay.detach();\n\t\tmfp.wrap.detach();\n\t\tmfp.container.empty();\n\n\t\tif(mfp.st.mainClass) {\n\t\t\tclassesToRemove += mfp.st.mainClass + ' ';\n\t\t}\n\n\t\tmfp._removeClassFromMFP(classesToRemove);\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tvar windowStyles = {marginRight: ''};\n\t\t\tif(mfp.isIE7) {\n\t\t\t\t$('body, html').css('overflow', '');\n\t\t\t} else {\n\t\t\t\twindowStyles.overflow = '';\n\t\t\t}\n\t\t\t$('html').css(windowStyles);\n\t\t}\n\t\t\n\t\t_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n\t\tmfp.ev.off(EVENT_NS);\n\n\t\t// clean up DOM elements that aren't removed\n\t\tmfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n\t\tmfp.bgOverlay.attr('class', 'mfp-bg');\n\t\tmfp.container.attr('class', 'mfp-container');\n\n\t\t// remove close button from target element\n\t\tif(mfp.st.showCloseBtn &&\n\t\t(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n\t\t\tif(mfp.currTemplate.closeBtn)\n\t\t\t\tmfp.currTemplate.closeBtn.detach();\n\t\t}\n\n\n\t\tif(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n\t\t\t$(mfp._lastFocusedEl).focus(); // put tab focus back\n\t\t}\n\t\tmfp.currItem = null;\t\n\t\tmfp.content = null;\n\t\tmfp.currTemplate = null;\n\t\tmfp.prevHeight = 0;\n\n\t\t_mfpTrigger(AFTER_CLOSE_EVENT);\n\t},\n\t\n\tupdateSize: function(winHeight) {\n\n\t\tif(mfp.isIOS) {\n\t\t\t// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n\t\t\tvar zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n\t\t\tvar height = window.innerHeight * zoomLevel;\n\t\t\tmfp.wrap.css('height', height);\n\t\t\tmfp.wH = height;\n\t\t} else {\n\t\t\tmfp.wH = winHeight || _window.height();\n\t\t}\n\t\t// Fixes #84: popup incorrectly positioned with position:relative on body\n\t\tif(!mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css('height', mfp.wH);\n\t\t}\n\n\t\t_mfpTrigger('Resize');\n\n\t},\n\n\t/**\n\t * Set content of popup based on current index\n\t */\n\tupdateItemHTML: function() {\n\t\tvar item = mfp.items[mfp.index];\n\n\t\t// Detach and perform modifications\n\t\tmfp.contentContainer.detach();\n\n\t\tif(mfp.content)\n\t\t\tmfp.content.detach();\n\n\t\tif(!item.parsed) {\n\t\t\titem = mfp.parseEl( mfp.index );\n\t\t}\n\n\t\tvar type = item.type;\n\n\t\t_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n\t\t// BeforeChange event works like so:\n\t\t// _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n\t\tmfp.currItem = item;\n\n\t\tif(!mfp.currTemplate[type]) {\n\t\t\tvar markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n\t\t\t// allows to modify markup\n\t\t\t_mfpTrigger('FirstMarkupParse', markup);\n\n\t\t\tif(markup) {\n\t\t\t\tmfp.currTemplate[type] = $(markup);\n\t\t\t} else {\n\t\t\t\t// if there is no markup found we just define that template is parsed\n\t\t\t\tmfp.currTemplate[type] = true;\n\t\t\t}\n\t\t}\n\n\t\tif(_prevContentType && _prevContentType !== item.type) {\n\t\t\tmfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n\t\t}\n\n\t\tvar newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n\t\tmfp.appendContent(newContent, type);\n\n\t\titem.preloaded = true;\n\n\t\t_mfpTrigger(CHANGE_EVENT, item);\n\t\t_prevContentType = item.type;\n\n\t\t// Append container back after its content changed\n\t\tmfp.container.prepend(mfp.contentContainer);\n\n\t\t_mfpTrigger('AfterChange');\n\t},\n\n\n\t/**\n\t * Set HTML content of popup\n\t */\n\tappendContent: function(newContent, type) {\n\t\tmfp.content = newContent;\n\n\t\tif(newContent) {\n\t\t\tif(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n\t\t\t\tmfp.currTemplate[type] === true) {\n\t\t\t\t// if there is no markup, we just append close button element inside\n\t\t\t\tif(!mfp.content.find('.mfp-close').length) {\n\t\t\t\t\tmfp.content.append(_getCloseBtn());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmfp.content = newContent;\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.content = '';\n\t\t}\n\n\t\t_mfpTrigger(BEFORE_APPEND_EVENT);\n\t\tmfp.container.addClass('mfp-'+type+'-holder');\n\n\t\tmfp.contentContainer.append(mfp.content);\n\t},\n\n\n\t/**\n\t * Creates Magnific Popup data object based on given data\n\t * @param {int} index Index of item to parse\n\t */\n\tparseEl: function(index) {\n\t\tvar item = mfp.items[index],\n\t\t\ttype;\n\n\t\tif(item.tagName) {\n\t\t\titem = { el: $(item) };\n\t\t} else {\n\t\t\ttype = item.type;\n\t\t\titem = { data: item, src: item.src };\n\t\t}\n\n\t\tif(item.el) {\n\t\t\tvar types = mfp.types;\n\n\t\t\t// check for 'mfp-TYPE' class\n\t\t\tfor(var i = 0; i < types.length; i++) {\n\t\t\t\tif( item.el.hasClass('mfp-'+types[i]) ) {\n\t\t\t\t\ttype = types[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem.src = item.el.attr('data-mfp-src');\n\t\t\tif(!item.src) {\n\t\t\t\titem.src = item.el.attr('href');\n\t\t\t}\n\t\t}\n\n\t\titem.type = type || mfp.st.type || 'inline';\n\t\titem.index = index;\n\t\titem.parsed = true;\n\t\tmfp.items[index] = item;\n\t\t_mfpTrigger('ElementParse', item);\n\n\t\treturn mfp.items[index];\n\t},\n\n\n\t/**\n\t * Initializes single popup or a group of popups\n\t */\n\taddGroup: function(el, options) {\n\t\tvar eHandler = function(e) {\n\t\t\te.mfpEl = this;\n\t\t\tmfp._openClick(e, el, options);\n\t\t};\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tvar eName = 'click.magnificPopup';\n\t\toptions.mainEl = el;\n\n\t\tif(options.items) {\n\t\t\toptions.isObj = true;\n\t\t\tel.off(eName).on(eName, eHandler);\n\t\t} else {\n\t\t\toptions.isObj = false;\n\t\t\tif(options.delegate) {\n\t\t\t\tel.off(eName).on(eName, options.delegate , eHandler);\n\t\t\t} else {\n\t\t\t\toptions.items = el;\n\t\t\t\tel.off(eName).on(eName, eHandler);\n\t\t\t}\n\t\t}\n\t},\n\t_openClick: function(e, el, options) {\n\t\tvar midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n\t\tif(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n\t\tif(disableOn) {\n\t\t\tif($.isFunction(disableOn)) {\n\t\t\t\tif( !disableOn.call(mfp) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else { // else it's number\n\t\t\t\tif( _window.width() < disableOn ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(e.type) {\n\t\t\te.preventDefault();\n\n\t\t\t// This will prevent popup from closing if element is inside and popup is already opened\n\t\t\tif(mfp.isOpen) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\toptions.el = $(e.mfpEl);\n\t\tif(options.delegate) {\n\t\t\toptions.items = el.find(options.delegate);\n\t\t}\n\t\tmfp.open(options);\n\t},\n\n\n\t/**\n\t * Updates text on preloader\n\t */\n\tupdateStatus: function(status, text) {\n\n\t\tif(mfp.preloader) {\n\t\t\tif(_prevStatus !== status) {\n\t\t\t\tmfp.container.removeClass('mfp-s-'+_prevStatus);\n\t\t\t}\n\n\t\t\tif(!text && status === 'loading') {\n\t\t\t\ttext = mfp.st.tLoading;\n\t\t\t}\n\n\t\t\tvar data = {\n\t\t\t\tstatus: status,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t\t// allows to modify status\n\t\t\t_mfpTrigger('UpdateStatus', data);\n\n\t\t\tstatus = data.status;\n\t\t\ttext = data.text;\n\n\t\t\tmfp.preloader.html(text);\n\n\t\t\tmfp.preloader.find('a').on('click', function(e) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t});\n\n\t\t\tmfp.container.addClass('mfp-s-'+status);\n\t\t\t_prevStatus = status;\n\t\t}\n\t},\n\n\n\t/*\n\t\t\"Private\" helpers that aren't private at all\n\t */\n\t// Check to close popup or not\n\t// \"target\" is an element that was clicked\n\t_checkIfClose: function(target) {\n\n\t\tif($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar closeOnContent = mfp.st.closeOnContentClick;\n\t\tvar closeOnBg = mfp.st.closeOnBgClick;\n\n\t\tif(closeOnContent && closeOnBg) {\n\t\t\treturn true;\n\t\t} else {\n\n\t\t\t// We close the popup if click is on close button or on preloader. Or if there is no content.\n\t\t\tif(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if click is outside the content\n\t\t\tif( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\n\t\t\t\tif(closeOnBg) {\n\t\t\t\t\t// last check, if the clicked element is in DOM, (in case it's removed onclick)\n\t\t\t\t\tif( $.contains(document, target) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(closeOnContent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t}\n\t\treturn false;\n\t},\n\t_addClassToMFP: function(cName) {\n\t\tmfp.bgOverlay.addClass(cName);\n\t\tmfp.wrap.addClass(cName);\n\t},\n\t_removeClassFromMFP: function(cName) {\n\t\tthis.bgOverlay.removeClass(cName);\n\t\tmfp.wrap.removeClass(cName);\n\t},\n\t_hasScrollBar: function(winHeight) {\n\t\treturn ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n\t},\n\t_setFocus: function() {\n\t\t(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n\t},\n\t_onFocusIn: function(e) {\n\t\tif( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n\t\t\tmfp._setFocus();\n\t\t\treturn false;\n\t\t}\n\t},\n\t_parseMarkup: function(template, values, item) {\n\t\tvar arr;\n\t\tif(item.data) {\n\t\t\tvalues = $.extend(item.data, values);\n\t\t}\n\t\t_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n\t\t$.each(values, function(key, value) {\n\t\t\tif(value === undefined || value === false) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tarr = key.split('_');\n\t\t\tif(arr.length > 1) {\n\t\t\t\tvar el = template.find(EVENT_NS + '-'+arr[0]);\n\n\t\t\t\tif(el.length > 0) {\n\t\t\t\t\tvar attr = arr[1];\n\t\t\t\t\tif(attr === 'replaceWith') {\n\t\t\t\t\t\tif(el[0] !== value[0]) {\n\t\t\t\t\t\t\tel.replaceWith(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(attr === 'img') {\n\t\t\t\t\t\tif(el.is('img')) {\n\t\t\t\t\t\t\tel.attr('src', value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.attr(arr[1], value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\ttemplate.find(EVENT_NS + '-'+key).html(value);\n\t\t\t}\n\t\t});\n\t},\n\n\t_getScrollbarSize: function() {\n\t\t// thx David\n\t\tif(mfp.scrollbarSize === undefined) {\n\t\t\tvar scrollDiv = document.createElement(\"div\");\n\t\t\tscrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n\t\t\tdocument.body.appendChild(scrollDiv);\n\t\t\tmfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\t\t\tdocument.body.removeChild(scrollDiv);\n\t\t}\n\t\treturn mfp.scrollbarSize;\n\t}\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n\tinstance: null,\n\tproto: MagnificPopup.prototype,\n\tmodules: [],\n\n\topen: function(options, index) {\n\t\t_checkInstance();\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\n\t\toptions.isObj = true;\n\t\toptions.index = index || 0;\n\t\treturn this.instance.open(options);\n\t},\n\n\tclose: function() {\n\t\treturn $.magnificPopup.instance && $.magnificPopup.instance.close();\n\t},\n\n\tregisterModule: function(name, module) {\n\t\tif(module.options) {\n\t\t\t$.magnificPopup.defaults[name] = module.options;\n\t\t}\n\t\t$.extend(this.proto, module.proto);\n\t\tthis.modules.push(name);\n\t},\n\n\tdefaults: {\n\n\t\t// Info about options is in docs:\n\t\t// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n\t\tdisableOn: 0,\n\n\t\tkey: null,\n\n\t\tmidClick: false,\n\n\t\tmainClass: '',\n\n\t\tpreloader: true,\n\n\t\tfocus: '', // CSS selector of input to focus after popup is opened\n\n\t\tcloseOnContentClick: false,\n\n\t\tcloseOnBgClick: true,\n\n\t\tcloseBtnInside: true,\n\n\t\tshowCloseBtn: true,\n\n\t\tenableEscapeKey: true,\n\n\t\tmodal: false,\n\n\t\talignTop: false,\n\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\n\t\tfixedContentPos: 'auto',\n\n\t\tfixedBgPos: 'auto',\n\n\t\toverflowY: 'auto',\n\n\t\tcloseMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\">&#215;</button>',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('<div>');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: '<a href=\"%url%\">The content</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-figure\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<figure>'+\n\t\t\t\t\t\t'<div class=\"mfp-img\"></div>'+\n\t\t\t\t\t\t'<figcaption>'+\n\t\t\t\t\t\t\t'<div class=\"mfp-bottom-bar\">'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-title\"></div>'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-counter\"></div>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</figcaption>'+\n\t\t\t\t\t'</figure>'+\n\t\t\t\t'</div>',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: '<a href=\"%url%\">The image</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-iframe-scaler\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe>'+\n\t\t\t\t'</div>',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('<img class=\"mfp-img\" />').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/magnific-popup/dist/jquery.magnific-popup.js\n// module id = 4\n// module chunks = 0 1","jQuery.fn.giveHintCss = function(action, settings ) {\n\treturn this.each(function(){\n\t\tvar $this = jQuery(this);\n\t\tsettings = jQuery.extend({\n\t\t\tlabel: ''\n\t\t}, settings );\n\n\t\tvar $tooltip = $this.next('span.give-hint-tooltip-js');\n\t\tif( ! $tooltip.length ){\n\t\t\tvar label = ! settings.label.length ? $this.data('hint-aria-label') : settings.label;\n\n\t\t\t// bailout.\n\t\t\tif( ! label.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$this.after( '<span class=\"give-hint-tooltip-js hint--top hint--medium\" aria-label=\"' + label + '\"></span>' );\n\t\t\t$tooltip = $this.next();\n\n\t\t\t$tooltip.css({\n\t\t\t\ttop:-( $this.outerHeight() ),\n\t\t\t\tleft: - ($this.outerWidth()/2 )\n\t\t\t});\n\t\t}\n\n\n\t\tif ( action === 'show' ) {\n\t\t\t$tooltip.addClass( 'hint--always' );\n\t\t}else if ( action === 'hide' ) {\n\t\t\t$tooltip.removeClass( 'hint--always' );\n\t\t}\n\t});\n};\n\n// Qtip2 backward compatibility.\njQuery(document).ready(function ($) {\n\tvar qtip_tooltips = $('[data-tooltip]');\n\n\t// Add hintcss tooltip to existing qtip.\n\tif (qtip_tooltips.length) {\n\t\tqtip_tooltips.each(function (index, tooltip) {\n\t\t\ttooltip = ( tooltip instanceof jQuery ) ? tooltip : $(tooltip);\n\t\t\treset_qtip(tooltip);\n\t\t});\n\t}\n\n\t// Add hintcss tooltip to dynamically created qtip.\n\t$('body').on('hover', '[data-tooltip]', function () {\n\t\treset_qtip($(this));\n\t});\n\n\t/**\n\t * Reset qtip to hintcss\n\t * @param tooltip\n\t */\n\tfunction reset_qtip(tooltip) {\n\t\tif (!tooltip.is('[class*=\"hint\"]')) {\n\t\t\tvar classes = tooltip.attr('class'),\n\t\t\t\ticon_classes = [],\n\t\t\t\tlabel_length = tooltip.data('tooltip').split( ' ' ).length;\n\n\t\t\tif (classes) {\n\t\t\t\tclasses = classes.split(' ');\n\t\t\t\ticon_classes = $.grep(classes, function (item) {\n\t\t\t\t\treturn ( -1 !== item.indexOf('give-icon') );\n\t\t\t\t});\n\n\t\t\t\tif (icon_classes.length) {\n\t\t\t\t\t// Set icon classes string.\n\t\t\t\t\ticon_classes = icon_classes.join(' ');\n\n\t\t\t\t\t// Remove icon class.\n\t\t\t\t\ttooltip.removeClass(icon_classes);\n\n\t\t\t\t\t// Add icon.\n\t\t\t\t\ttooltip.append('<i class=\"' + icon_classes + '\"></i>');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add hint.css related classes.\n\t\t\ttooltip.addClass('hint--top');\n\n\t\t\tif( 15 < label_length ) {\n\t\t\t\ttooltip.addClass('hint--large');\n\t\t\t}else if( 7 < label_length ) {\n\t\t\t\ttooltip.addClass('hint--medium');\n\t\t\t}\n\n\t\t\ttooltip.attr('aria-label', tooltip.data('tooltip') );\n\t\t}\n\t}\n});\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/give-hint.css.js","import GiveNotice from './notice';\nimport GiveForm from './form';\n\n/**\n * This API is under development.\n *\n * Currently used only for internal purpose.\n */\nlet Give = {\n\tinit: function() {\n\t\tlet subHelperObjs = [ 'form' ],\n\t\t\tcounter = 0;\n\t\tjQuery( document ).trigger( 'give:preInit' );\n\n\t\t// Initialize all init methods of sub helper objects.\n\t\twhile ( counter < subHelperObjs.length ) {\n\t\t\tif ( ! ! Give[ subHelperObjs[ counter ] ].init ) {\n\t\t\t\tGive[ subHelperObjs[ counter ] ].init();\n\t\t\t}\n\t\t\tcounter ++;\n\t\t}\n\n\t\tjQuery( document ).trigger( 'give:postInit' );\n\t},\n\n\tfn: {\n\t\t/**\n\t\t * Format Currency\n\t\t *\n\t\t * Formats the currency with accounting.js\n\t\t *\n\t\t * @param {string} price\n\t\t * @param {object} args\n\t\t * @param {object} $form\n\t\t * @returns {*|string}\n\t\t */\n\t\tformatCurrency: function( price, args, $form ) {\n\t\t\t// Global currency setting.\n\t\t\tlet format_args = {\n\t\t\t\tsymbol: '',\n\t\t\t\tdecimal: give_global_vars.decimal_separator,\n\t\t\t\tthousand: give_global_vars.thousands_separator,\n\t\t\t\tprecision: parseInt( give_global_vars.number_decimals ),\n\t\t\t\tcurrency: give_global_vars.currency\n\t\t\t};\n\n\t\t\tprice = price.toString().trim();\n\t\t\t$form = 'undefined' === typeof $form ? {} : $form;\n\n\t\t\t// Form specific currency setting.\n\t\t\tif ( $form.length ) {\n\t\t\t\t//Set the custom amount input value format properly\n\t\t\t\tformat_args = {\n\t\t\t\t\tsymbol: '',\n\t\t\t\t\tdecimal: Give.form.fn.getInfo( 'decimal_separator', $form ),\n\t\t\t\t\tthousand: Give.form.fn.getInfo( 'thousands_separator', $form ),\n\t\t\t\t\tprecision: Give.form.fn.getInfo( 'number_decimals', $form ),\n\t\t\t\t\tcurrency: Give.form.fn.getInfo( 'currency_code', $form ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\targs = jQuery.extend( format_args, args );\n\n\t\t\t// Make sure precision is integer type\n\t\t\targs.precision = parseInt( args.precision );\n\n\t\t\tif ( 'INR' === args.currency ) {\n\t\t\t\tlet actual_price = accounting.unformat( price, '.' ).toString();\n\n\t\t\t\tlet decimal_amount = '',\n\t\t\t\t\tresult,\n\t\t\t\t\tamount,\n\t\t\t\t\tdecimal_index = actual_price.indexOf( '.' );\n\n\t\t\t\tif ( (- 1 !== decimal_index) && args.precision ) {\n\t\t\t\t\tdecimal_amount = Number( actual_price.substr( parseInt( decimal_index ) ) )\n\t\t\t\t\t\t.toFixed( args.precision )\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.substr( 1 );\n\t\t\t\t\tactual_price = actual_price.substr( 0, parseInt( decimal_index ) );\n\n\t\t\t\t\tif ( ! decimal_amount.length ) {\n\t\t\t\t\t\tdecimal_amount = '.0000000000'.substr( 0, (parseInt( decimal_index ) + 1) );\n\t\t\t\t\t} else if ( (args.precision + 1) > decimal_amount.length ) {\n\t\t\t\t\t\tdecimal_amount = (decimal_amount + '000000000').substr( 0, args.precision + 1 );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdecimal_amount = '.000000000'.substr( 0, args.precision + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Extract last 3 from amount\n\t\t\t\tresult = actual_price.substr( - 3 );\n\t\t\t\tamount = actual_price.substr( 0, parseInt( actual_price.length ) - 3 );\n\n\t\t\t\t// Apply digits 2 by 2\n\t\t\t\twhile ( amount.length > 0 ) {\n\t\t\t\t\tresult = amount.substr( - 2 ) + args.thousand + result;\n\t\t\t\t\tamount = amount.substr( 0, parseInt( amount.length ) - 2 );\n\t\t\t\t}\n\n\t\t\t\tif ( decimal_amount.length ) {\n\t\t\t\t\tresult = result + decimal_amount;\n\t\t\t\t}\n\n\t\t\t\tprice = result;\n\n\t\t\t\tif ( undefined !== args.symbol && args.symbol.length ) {\n\t\t\t\t\tif ( 'after' === args.position ) {\n\t\t\t\t\t\tprice = price + args.symbol;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprice = args.symbol + price;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Properly position symbol after if selected\n\t\t\t\tif ( 'after' === args.position ) {\n\t\t\t\t\targs.format = '%v%s';\n\t\t\t\t}\n\n\t\t\t\tprice = accounting.formatMoney( price, args );\n\t\t\t}\n\n\t\t\treturn price;\n\n\t\t},\n\n\t\t/**\n\t\t * Unformat Currency\n\t\t *\n\t\t * @param price\n\t\t * @param {string} decimal_separator\n\t\t * @returns {number}\n\t\t */\n\t\tunFormatCurrency: function( price, decimal_separator ) {\n\t\t\tif ( 'string' === typeof price ) {\n\t\t\t\tlet regex = ',' === decimal_separator.trim() ? /[^0-9\\,-]+/g : /[^0-9\\.-]+/g;\n\n\t\t\t\tprice = price.replace( regex, '' );\n\n\t\t\t\tif ( 0 === price.indexOf( decimal_separator ) ) {\n\t\t\t\t\tprice = price.substr( 1 );\n\t\t\t\t} else if ( (price.length - 1) === price.indexOf( decimal_separator ) ) {\n\t\t\t\t\tprice = price.slice( 0, - 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Math.abs( parseFloat( accounting.unformat( price, decimal_separator ) ) );\n\t\t},\n\n\t\t/**\n\t\t * Get Parameter by Name\n\t\t *\n\t\t * @see: http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\n\t\t * @param name\n\t\t * @param url\n\t\t * @since 1.4.2\n\t\t * @returns {*}\n\t\t */\n\t\tgetParameterByName: function( name, url ) {\n\t\t\tif ( ! url ) {\n\t\t\t\turl = window.location.href;\n\t\t\t}\n\n\t\t\tname = name.replace( /[\\[\\]]/g, '\\\\$&' );\n\n\t\t\tlet regex = new RegExp( '[?&]' + name + '(=([^&#]*)|&|#|$)' ),\n\t\t\t\tresults = regex.exec( url );\n\n\t\t\tif ( ! results ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( ! results[ 2 ] ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn decodeURIComponent( results[ 2 ].replace( /\\+/g, ' ' ) );\n\t\t},\n\n\t\t/**\n\t\t * Get information from global var\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {string} str\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgetGlobalVar: function( str ) {\n\t\t\tif ( 'undefined' === typeof give_global_vars[ str ] ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn give_global_vars[ str ];\n\t\t},\n\n\t\t/**\n\t\t * set cache\n\t\t *\n\t\t * @since 1.8.17\n\t\t *\n\t\t * @param {string} key\n\t\t * @param {string} value\n\t\t * @param {object} $form\n\t\t */\n\t\tsetCache: function( key, value, $form ) {\n\t\t\tif ( $form.length ) {\n\t\t\t\tGive.cache[ 'form_' + Give.form.fn.getInfo( 'form-id', $form ) ][ key ] = value;\n\t\t\t} else {\n\t\t\t\tGive.cache[ key ] = value;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get cache\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param key\n\t\t * @param $form\n\t\t * @return {string|*}\n\t\t */\n\t\tgetCache: function( key, $form ) {\n\t\t\tlet cache,\n\t\t\t\tformObj = Give.cache[ 'form_' + Give.form.fn.getInfo( 'form-id', $form ) ];\n\n\t\t\tif ( $form.length ) {\n\t\t\t\tcache = 'undefined' !== typeof formObj ? formObj[ key ] : '';\n\t\t\t} else {\n\t\t\t\tcache = Give.cache[ key ];\n\t\t\t}\n\n\t\t\tcache = 'undefined' === typeof cache ? '' : cache;\n\n\t\t\treturn cache;\n\t\t},\n\n\t\t/**\n\t\t * Get cookie\n\t\t * Note: only for internal use\n\t\t *\n\t\t * @since 2.2.20\n\t\t * @private\n\t\t *\n\t\t * @param {string} name Cookie name\n\t\t * @return {string}\n\t\t */\n\t\t__getCookie: function( name ) {\n\t\t\tconst value = '; ' + document.cookie,\n\t\t\t\tparts = value.split( '; ' + name + '=' );\n\n\t\t\tlet cookie = '';\n\n\t\t\tif ( 2 === parts.length ) {\n\t\t\t\tcookie = parts.pop().split(';').shift();\n\t\t\t}\n\n\t\t\treturn cookie;\n\t\t},\n\t},\n\n\t/**\n\t * This object key will be use to cache predicted data or donor activity.\n\t *\n\t * @since 1.8.17\n\t */\n\tcache: {}\n};\n\nGive.notice = GiveNotice;\nGive.form = GiveForm;\n\nexport default Give;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/give-api/api.js","export default {\n\tfn: {\n\t\t/**\n\t\t * Render notice\n\t\t * @since 1.8.17\n\t\t *\n\t\t * @param {string} notice_code\n\t\t * @param {object} $container\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\trenderNotice: function( notice_code, $container ) {\n\t\t\tlet notice_html = '',\n\t\t\t\t$notice;\n\t\t\t$container = 'undefined' !== typeof $container ? $container : {};\n\n\t\t\tswitch ( notice_code ) {\n\t\t\t\tcase 'bad_minimum':\n\t\t\t\t\t$notice = jQuery(\n\t\t\t\t\t\t'<div class=\"give_error give-invalid-minimum give-hidden\">' +\n\t\t\t\t\t\tthis.getNotice( notice_code, $container ) +\n\t\t\t\t\t\t'</div>'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'bad_maximum':\n\t\t\t\t\t$notice = jQuery(\n\t\t\t\t\t\t'<div class=\"give_error give-invalid-maximum give-hidden\">' +\n\t\t\t\t\t\tthis.getNotice( notice_code, $container ) +\n\t\t\t\t\t\t'</div>'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Return html if container did not find.\n\t\t\tif ( ! $container.length ) {\n\t\t\t\treturn notice_html;\n\t\t\t}\n\n\t\t\t$notice.insertBefore( $container.find( '.give-total-wrap' ) ).show();\n\t\t},\n\n\t\t/**\n\t\t * Get error notice\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {string} error_code\n\t\t * @param {object} $form\n\t\t *\n\t\t * @return {*}\n\t\t */\n\t\tgetNotice: function( error_code, $form ) {\n\t\t\t// Bailout.\n\t\t\tif ( ! error_code.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar notice, notice_msg, formatted_amount;\n\t\t\tnotice = notice_msg = formatted_amount = '';\n\n\t\t\tif ( $form.length ) {\n\t\t\t\tswitch ( error_code ) {\n\t\t\t\t\tcase 'bad_minimum':\n\t\t\t\t\t\tnotice_msg = Give.fn.getGlobalVar( error_code );\n\t\t\t\t\t\tformatted_amount = Give.form.fn.getMinimumAmount( $form );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bad_maximum':\n\t\t\t\t\t\tnotice_msg = Give.fn.getGlobalVar( error_code );\n\t\t\t\t\t\tformatted_amount = Give.form.fn.getMaximumAmount( $form );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( $form.length && '' !== notice_msg ) {\n\t\t\t\tnotice = notice_msg + ' ' + Give.fn.formatCurrency(\n\t\t\t\t\tformatted_amount,\n\t\t\t\t\t{\n\t\t\t\t\t\tsymbol: Give.form.fn.getInfo( 'currency_symbol', $form ),\n\t\t\t\t\t\tposition: Give.form.fn.getInfo( 'currency_position', $form )\n\t\t\t\t\t},\n\t\t\t\t\t$form\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn notice;\n\t\t}\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/give-api/notice.js","export default {\n\tinit: function() {\n\t\tthis.fn.field.formatCreditCard( jQuery( 'form.give-form' ) );\n\t\tthis.fn.__initialize_cache();\n\n\t\twindow.onload = function() {\n\t\t\tGive.form.fn.__sendBackToForm();\n\t\t};\n\t},\n\n\tfn: {\n\n\t\t/**\n\t\t * Disable donation form.\n\t\t *\n\t\t * @param {object} $form\n\t\t * @param {boolean} is_disable\n\t\t *\n\t\t * @return {*}\n\t\t */\n\t\tdisable: function( $form, is_disable ) {\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$form.find( '.give-submit' ).prop( 'disabled', is_disable );\n\t\t},\n\n\t\t/**\n\t\t * Get formatted amount\n\t\t *\n\t\t * @param {string/number} amount\n\t\t * @param {object} $form\n\t\t * @param {object} args\n\t\t */\n\t\tformatAmount: function( amount, $form, args ) {\n\t\t\t// Do not format amount if form did not exist.\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn amount;\n\t\t\t}\n\n\t\t\treturn Give.fn.formatCurrency( amount, args, $form );\n\t\t},\n\n\t\t/**\n\t\t * Get form information\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {string} str\n\t\t * @param {object} $form\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgetInfo: function( str, $form ) {\n\t\t\tvar data = '';\n\t\t\t$form = 'undefined' !== typeof $form ? $form : {};\n\n\t\t\t// Bailout.\n\t\t\tif ( ! str.length || ! $form.length ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tswitch ( str ) {\n\t\t\t\tcase 'gateways':\n\t\t\t\t\tdata = [];\n\t\t\t\t\tjQuery.each( $form.find( 'input[name=\"payment-mode\"]' ), function( index, gateway ) {\n\t\t\t\t\t\tgateway = ! (gateway instanceof jQuery) ? jQuery( gateway ) : gateway;\n\t\t\t\t\t\tdata.push( gateway.val().trim() );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'form-type':\n\t\t\t\t\tif ( $form.hasClass( 'give-form-type-set' ) ) {\n\t\t\t\t\t\tdata = 'set';\n\t\t\t\t\t} else if ( $form.hasClass( 'give-form-type-multi' ) ) {\n\t\t\t\t\t\tdata = 'multi';\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'form-id':\n\t\t\t\t\tdata = $form.find( 'input[name=\"give-form-id\"]' ).val();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif ( $form.get( 0 ).hasAttribute( 'data-' + str ) ) {\n\t\t\t\t\t\tdata = $form.attr( 'data-' + str );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata = $form.attr( str );\n\t\t\t\t\t}\n\n\t\t\t\t\t'undefined' !== typeof data ? data.trim() : data;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\n\t\t/**\n\t\t * Set form information\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {string} str\n\t\t * @param {string} val\n\t\t * @param {object} $form\n\t\t * @param {string} type\n\t\t *\n\t\t * @return {string|boolean}\n\t\t */\n\t\tsetInfo: function( type, val, $form, str ) {\n\t\t\t// Bailout.\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\ttype = 'undefined' === typeof type ? 'data' : type;\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'nonce':\n\t\t\t\t\t$form.find( 'input[name=\"give-form-hash\"]' ).val( val );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Bailout.\n\t\t\tif ( 'undefined' !== typeof str && ! str.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'attr':\n\t\t\t\t\t$form.attr( str, val );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\t$form.data( str, val );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\t/**\n\t\t * Get formatted amount\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $form\n\t\t */\n\t\tgetGateway: function( $form ) {\n\t\t\tvar gateway = '';\n\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn gateway;\n\t\t\t}\n\n\t\t\tgateway = $form.find( 'input[name=\"payment-mode\"]:checked' ).val().trim();\n\n\t\t\treturn 'undefined' !== typeof gateway ? gateway : '';\n\t\t},\n\n\t\t/**\n\t\t * Get Price ID and levels for multi donation form\n\t\t *\n\t\t * @param {Object} $form Form jQuery object\n\t\t *\n\t\t * @returns {Object}\n\t\t */\n\t\tgetVariablePrices: function( $form ) {\n\t\t\tvar variable_prices = [], formLevels;\n\n\t\t\t// check if correct form type is multi or not.\n\t\t\tif (\n\t\t\t\t! $form.length ||\n\t\t\t\t! $form.hasClass( 'give-form-type-multi' ) ||\n\t\t\t\t! (formLevels = $form.find( '.give-donation-levels-wrap [data-price-id] ' ))\n\t\t\t) {\n\t\t\t\treturn variable_prices;\n\t\t\t}\n\n\t\t\tjQuery.each( formLevels, function( index, item ) {\n\t\t\t\t// Get Jquery instance for item.\n\t\t\t\titem = ! (item instanceof jQuery) ? jQuery( item ) : item;\n\n\t\t\t\tvar decimal_separator = Give.form.fn.getInfo( 'decimal_separator', $form );\n\n\t\t\t\t// Add price id and amount to collector.\n\t\t\t\tvariable_prices.push( {\n\t\t\t\t\tprice_id: item.data( 'price-id' ),\n\t\t\t\t\tamount: Give.fn.unFormatCurrency( item.val(), decimal_separator )\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn variable_prices;\n\t\t},\n\n\t\t/**\n\t\t * Get form price ID\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $form\n\t\t * @param {boolean} is_amount\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgetPriceID: function( $form, is_amount ) {\n\n\t\t\tvar variable_prices = this.getVariablePrices( $form ),\n\t\t\t\tcurrent_amount = Give.fn.unFormatCurrency(\n\t\t\t\t\t$form.find( 'input[name=\"give-amount\"]' ).val(),\n\t\t\t\t\tthis.getInfo( 'decimal_separator', $form )\n\t\t\t\t),\n\n\t\t\t\t/**\n\t\t\t\t * Flag Multi-levels for min. donation conditional.\n\t\t\t\t *\n\t\t\t\t * Note: Value of this variable will be:\n\t\t\t\t * a. -1 if no any level found.\n\t\t\t\t * b. [0-*] Any number from zero if donation level found.\n\t\t\t\t * c custom if donation level not found and donation amount is greater than the custom minimum amount.\n\t\t\t\t *\n\t\t\t\t * @type {number/string} Donation level ID.\n\t\t\t\t */\n\t\t\t\tprice_id = ! ! Give.fn.getCache( 'amount_' + current_amount, $form ) ? Give.fn.getCache( 'amount_' + current_amount, $form ) : - 1;\n\n\t\t\t// Flag to decide on which param we want to find price_id\n\t\t\tis_amount = 'undefined' === typeof is_amount ? true : is_amount;\n\n\t\t\t// Find price id with amount in variable prices.\n\t\t\tif ( variable_prices.length ) {\n\n\t\t\t\t// Get recent selected price id for same amount.\n\t\t\t\tif ( - 1 === price_id ) {\n\t\t\t\t\tif ( is_amount ) {\n\t\t\t\t\t\t// Find amount in donation levels.\n\t\t\t\t\t\tjQuery.each( variable_prices, function( index, variable_price ) {\n\t\t\t\t\t\t\tif ( variable_price.amount === current_amount ) {\n\t\t\t\t\t\t\t\tprice_id = variable_price.price_id;\n\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// Set level to custom.\n\t\t\t\t\t\tif ( - 1 === price_id && (this.getMinimumAmount( $form ) <= current_amount && (this.getMaximumAmount( $form ) >= current_amount) && this.getMinimumAmount( $form ) <= current_amount) ) {\n\t\t\t\t\t\t\tprice_id = 'custom';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprice_id = jQuery( 'input[name=\"give-price-id\"]', $form ).val();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn price_id;\n\t\t},\n\n\t\t/**\n\t\t * Get form minimum amount\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $form\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgetMinimumAmount: function( $form ) {\n\t\t\treturn $form.find( 'input[name=\"give-form-minimum\"]' ).val();\n\t\t},\n\n\t\t/**\n\t\t * Get form maximum amount\n\t\t *\n\t\t * @since 2.1\n\t\t * @param {object} $form\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgetMaximumAmount: function( $form ) {\n\t\t\treturn $form.find( 'input[name=\"give-form-maximum\"]' ).val();\n\t\t},\n\n\t\t/**\n\t\t * Get form amount\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param $form\n\t\t * @return {*}\n\t\t */\n\t\tgetAmount: function( $form ) {\n\t\t\t// Bailout\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar amount = $form.find( 'input[name=\"give-amount\"]' ).val();\n\n\t\t\tif ( 'undefined' === typeof amount || ! amount ) {\n\t\t\t\tamount = 0;\n\t\t\t}\n\n\t\t\treturn Give.fn.unFormatCurrency( amount, this.getInfo( 'decimal_separator', $form ) );\n\t\t},\n\n\t\t/**\n\t\t * Get form security nonce\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $form\n\t\t * @return {string}\n\t\t */\n\t\tgetNonce: function( $form ) {\n\t\t\t// Bailout\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tlet nonce = $form.find( 'input[name=\"give-form-hash\"]' ).val();\n\n\t\t\tif ( 'undefined' === typeof nonce || ! nonce ) {\n\t\t\t\tnonce = '';\n\t\t\t}\n\n\t\t\treturn nonce;\n\t\t},\n\n\t\t/**\n\t\t * Reset form nonce.\n\t\t *\n\t\t * @since 2.0\n\t\t *\n\t\t * @param {object} $form Donation form object.\n\t\t * @returns {boolean}\n\t\t */\n\t\tresetNonce: function( $form ) {\n\t\t\t// Return false, if form is missing.\n\t\t\tif ( ! $form.length || ! jQuery( 'input[name=\"give-form-hash\"]', $form ).length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tGive.form.fn.disable( $form, true );\n\n\t\t\t//Post via AJAX to Give\n\t\t\tjQuery.post( give_global_vars.ajaxurl, {\n\t\t\t\t\taction: 'give_donation_form_nonce',\n\t\t\t\t\tgive_form_id: Give.form.fn.getInfo( 'form-id', $form )\n\t\t\t\t},\n\t\t\t\tfunction( response ) {\n\t\t\t\t\t// Update nonce field.\n\t\t\t\t\tGive.form.fn.setInfo( 'nonce', response.data, $form, '' );\n\n\t\t\t\t\tGive.form.fn.disable( $form, false );\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Reset form all nonce.\n\t\t *\n\t\t * @since 2.2.0\n\t\t *\n\t\t * @param {object} $form Donation form object.\n\t\t * @returns {boolean}\n\t\t */\n\t\tresetAllNonce: function( $form ) {\n\t\t\t// Return false, if form is missing.\n\t\t\tif ( ! $form.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tGive.form.fn.disable( $form, true );\n\n\t\t\t//Post via AJAX to Give\n\t\t\tjQuery.post( give_global_vars.ajaxurl, {\n\t\t\t\t\taction: 'give_donation_form_reset_all_nonce',\n\t\t\t\t\tgive_form_id: Give.form.fn.getInfo( 'form-id', $form )\n\t\t\t\t},\n\t\t\t\tfunction( response ) {\n\t\t\t\t\tconst createUserNonceField = $form.find( 'input[name=\"give-form-user-register-hash\"]' );\n\n\t\t\t\t\t// Update nonce field.\n\t\t\t\t\tGive.form.fn.setInfo( 'nonce', response.data.give_form_hash, $form, '' );\n\n\t\t\t\t\t// Update create user nonce field.\n\t\t\t\t\tif( createUserNonceField.length ){\n\t\t\t\t\t\tcreateUserNonceField.val( response.data.give_form_user_register_hash );\n\t\t\t\t\t}\n\n\t\t\t\t\tGive.form.fn.disable( $form, false );\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Fire custom event handler when update all nonce of donation form\n\t\t\t\t\t *\n\t\t\t\t\t * @since 2.2.0\n\t\t\t\t\t * @access access\n\t\t\t\t\t */\n\t\t\t\t\tjQuery(document).trigger( 'give_reset_all_nonce', [response.data] );\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Auto select donation level\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $form\n\t\t * @param {string} price_id\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tautoSelectDonationLevel: function( $form, price_id ) {\n\n\t\t\tif ( ! $form.length || 'multi' !== this.getInfo( 'form-type', $form ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tprice_id = ('undefined' === typeof price_id) ? this.getPriceID( $form, false ) : price_id;\n\n\t\t\tswitch ( true ) {\n\n\t\t\t\t// Auto select radio button.\n\t\t\t\tcase (! ! $form.find( '.give-radio-input' ).length) :\n\t\t\t\t\t$form.find( '.give-radio-input' )\n\t\t\t\t\t\t.prop( 'checked', false );\n\t\t\t\t\t$form.find( '.give-radio-input[data-price-id=\"' + price_id + '\"]' )\n\t\t\t\t\t\t.prop( 'checked', true )\n\t\t\t\t\t\t.addClass( 'give-default-level' );\n\t\t\t\t\tbreak;\n\n\t\t\t\t// Set focus to price id button.\n\t\t\t\tcase (! ! $form.find( 'button.give-donation-level-btn' ).length) :\n\t\t\t\t\t$form.find( 'button.give-donation-level-btn' )\n\t\t\t\t\t\t.blur();\n\t\t\t\t\t$form.find( 'button.give-donation-level-btn[data-price-id=\"' + price_id + '\"]' )\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.addClass( 'give-default-level' );\n\t\t\t\t\tbreak;\n\n\t\t\t\t// Auto select option.\n\t\t\t\tcase (! ! $form.find( 'select.give-select-level' ).length) :\n\t\t\t\t\t$form.find( 'select.give-select-level option' )\n\t\t\t\t\t\t.prop( 'selected', false );\n\t\t\t\t\t$form.find( 'select.give-select-level option[data-price-id=\"' + price_id + '\"]' )\n\t\t\t\t\t\t.prop( 'selected', true )\n\t\t\t\t\t\t.addClass( 'give-default-level' );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update level values\n\t\t *\n\t\t * Helper function: Sets the multi-select amount values\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @param {object} $level\n\t\t * @returns {boolean}\n\t\t */\n\t\tautoSetMultiLevel: function( $level ) {\n\n\t\t\tvar $form = $level.parents( 'form' ),\n\t\t\t\tlevel_amount = $level.val(),\n\t\t\t\tlevel_price_id = $level.data( 'price-id' );\n\n\t\t\t// Check if price ID blank because of dropdown type\n\t\t\tif ( 'undefined' === typeof level_price_id ) {\n\t\t\t\tlevel_price_id = $level.find( 'option:selected' ).data( 'price-id' );\n\t\t\t}\n\n\t\t\t// Is this a custom amount selection?\n\t\t\tif ( 'custom' === level_price_id ) {\n\t\t\t\t// It is, so focus on the custom amount input.\n\t\t\t\t$form.find( '.give-amount-top' ).val( '' ).focus();\n\t\t\t\treturn false; // Bounce out\n\t\t\t}\n\n\t\t\t// Update custom amount field\n\t\t\t$form.find( '.give-amount-top' ).val( level_amount );\n\t\t\t$form.find( 'span.give-amount-top' ).text( level_amount );\n\n\t\t\tvar decimal_separator = Give.form.fn.getInfo( 'decimal_separator', $form );\n\n\t\t\t// Cache previous amount and set data amount.\n\t\t\tjQuery( '.give-donation-amount .give-text-input', $form )\n\t\t\t\t.attr(\n\t\t\t\t\t'data-amount',\n\t\t\t\t\tGive.fn.unFormatCurrency(\n\t\t\t\t\t\t$form.find( '.give-final-total-amount' ).attr( 'data-total' ),\n\t\t\t\t\t\tdecimal_separator\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t// Manually trigger blur event with two params:\n\t\t\t// (a) form jquery object\n\t\t\t// (b) price id\n\t\t\t// (c) donation amount\n\t\t\t$form.find( '.give-donation-amount .give-text-input' )\n\t\t\t\t.trigger( 'blur', [ $form, level_amount, level_price_id ] );\n\t\t},\n\n\t\t/**\n\t\t * Donor sent back to the form\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @access private\n\t\t */\n\t\t__sendBackToForm: function() {\n\n\t\t\tlet form_id = Give.fn.getParameterByName( 'form-id' ),\n\t\t\t\tpayment_mode = Give.fn.getParameterByName( 'payment-mode' );\n\n\t\t\t// Sanity check - only proceed if query strings in place.\n\t\t\tif ( ! form_id || ! payment_mode ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet $form_wrapper = jQuery( 'body' ).find( '#give-form-' + form_id + '-wrap' ),\n\t\t\t\t$form = $form_wrapper.find( 'form.give-form' ),\n\t\t\t\tdisplay_modal = $form_wrapper.hasClass( 'give-display-modal' ),\n\t\t\t\tdisplay_button = $form_wrapper.hasClass( 'give-display-button' ),\n\t\t\t\tdisplay_reveal = $form_wrapper.hasClass( 'give-display-reveal' );\n\n\t\t\t// Update payment mode radio so it's correctly checked.\n\t\t\t$form.find( '#give-gateway-radio-list label' )\n\t\t\t\t.removeClass( 'give-gateway-option-selected' );\n\t\t\t$form.find( 'input[name=payment-mode][value=' + payment_mode + ']' )\n\t\t\t\t.prop( 'checked', true )\n\t\t\t\t.parent()\n\t\t\t\t.addClass( 'give-gateway-option-selected' );\n\n\t\t\t// Select the proper level for Multi-level forms.\n\t\t\t// It can either be a dropdown, buttons, or radio list. Default is buttons field type.\n\t\t\tlet level_id = Give.fn.getParameterByName( 'level-id' ),\n\t\t\t\tlevel_field = $form.find( '*[data-price-id=\"' + level_id + '\"]' );\n\n\t\t\tif ( level_field.length > 0 ) {\n\t\t\t\tthis.autoSetMultiLevel( level_field );\n\t\t\t}\n\n\t\t\tlet give_form_wrap = jQuery( '.give-form-wrap' ),\n\t\t\t\tis_form_grid = give_form_wrap.hasClass( 'give-form-grid-wrap' );\n\n\t\t\tif ( is_form_grid && 1 === jQuery( '#give-modal-form-' + form_id ).length ) {\n\t\t\t\tjQuery.magnificPopup.open( {\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: 'inline',\n\t\t\t\t\t\tsrc: '#give-modal-form-' + form_id,\n\t\t\t\t\t},\n\t\t\t\t\tfixedContentPos: true,\n\t\t\t\t\tfixedBgPos: true,\n\t\t\t\t\tcloseBtnInside: true,\n\t\t\t\t\tmidClick: true,\n\t\t\t\t\tremovalDelay: 300,\n\t\t\t\t\tmainClass: 'modal-fade-slide',\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This form is modal display so show the modal.\n\t\t\tif ( display_modal || display_button ) {\n\t\t\t\tgive_open_form_modal( $form_wrapper, $form );\n\t\t\t} else if ( display_reveal ) {\n\t\t\t\t// This is a reveal form, show it.\n\t\t\t\t$form.find( '.give-btn-reveal' ).hide();\n\t\t\t\t$form.find( '#give-payment-mode-select, #give_purchase_form_wrap' ).slideDown();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Check if donation amount valid or not\n\t\t * @since 1.8.17\n\t\t *\n\t\t * @param {object} $form\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisValidDonationAmount: function( $form ) {\n\n\t\t\t// Return true, if custom amount is not enabled.\n\t\t\tif ( $form.find( 'input[name=\"give-form-minimum\"]' ).length <= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tlet min_amount = this.getMinimumAmount( $form ),\n\t\t\t\tmax_amount = this.getMaximumAmount( $form ),\n\t\t\t\tamount = this.getAmount( $form ),\n\t\t\t\tprice_id = this.getPriceID( $form, true );\n\n\t\t\t// Don't allow zero donation amounts.\n\t\t\t// https://github.com/WordImpress/Give/issues/3181\n\t\t\tif( 0 === amount ) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t((- 1 < amount) && amount >= min_amount && amount <= max_amount)\n\t\t\t\t|| (- 1 !== price_id)\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Initialize cache.\n\t\t *\n\t\t * @since 1.8.17\n\t\t * @private\n\t\t */\n\t\t__initialize_cache: function() {\n\t\t\tjQuery.each( jQuery( '.give-form' ), function( index, $item ) {\n\t\t\t\t$item = $item instanceof jQuery ? $item : jQuery( $item );\n\n\t\t\t\tGive.cache[ 'form_' + Give.form.fn.getInfo( 'form-id', $item ) ] = [];\n\t\t\t} );\n\t\t},\n\n\t\tfield: {\n\n\t\t\t/**\n\t\t\t * Format CC Fields\n\t\t\t *\n\t\t\t * Set variables and format cc fields.\n\t\t\t *\n\t\t\t * @since 1.2\n\t\t\t *\n\t\t\t * @param {object} $forms\n\t\t\t */\n\t\t\tformatCreditCard: function( $forms ) {\n\t\t\t\t//Loop through forms on page and set CC validation\n\t\t\t\t$forms.each( function( index, form ) {\n\t\t\t\t\tform = jQuery( form );\n\t\t\t\t\tvar card_number = form.find( '.card-number' ),\n\t\t\t\t\t\tcard_cvc = form.find( '.card-cvc' ),\n\t\t\t\t\t\tcard_expiry = form.find( '.card-expiry' );\n\n\t\t\t\t\t//Only validate if there is a card field\n\t\t\t\t\tif ( card_number.length ) {\n\t\t\t\t\t\tcard_number.payment( 'formatCardNumber' );\n\t\t\t\t\t\tcard_cvc.payment( 'formatCardCVC' );\n\t\t\t\t\t\tcard_expiry.payment( 'formatCardExpiry' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/give-api/form.js","(function(globalSope) {\n 'use strict';\n\n /**\n * Including this file adds the `addDynamicListener` to the ELement prototype.\n * \n * The dynamic listener gets an extra `selector` parameter that only calls the callback\n * if the target element matches the selector.\n * \n * The listener has to be added to the container/root element and the selector should match\n * the elements that should trigger the event.\n * \n * Browser support: IE9+\n */\n\n // Polyfil Element.matches\n // https://developer.mozilla.org/en/docs/Web/API/Element/matches#Polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches = \n Element.prototype.matchesSelector || \n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector || \n Element.prototype.oMatchesSelector || \n Element.prototype.webkitMatchesSelector ||\n function(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1; \n };\n }\n\n /**\n * Returns a modified callback function that calls the\n * initial callback function only if the target element matches the given selector\n * \n * @param {string} selector \n * @param {function} callback \n */\n function getConditionalCallback(selector, callback) {\n return function(e) {\n if(!e.target) return;\n if(!e.target.matches(selector)) return;\n callback.apply(this, arguments);\n };\n }\n\n /**\n * \n * \n * @param {Element} rootElement The root element to add the linster too.\n * @param {string} eventType The event type to listen for.\n * @param {string} selector The selector that should match the dynamic elements.\n * @param {function} callback The function to call when an event occurs on the given selector.\n * @param {boolean|object} options Passed as the regular `options` parameter to the addEventListener function\n * Set to `true` to use capture.\n * Usually used as an object to add the listener as `passive`\n */\n globalSope.addDynamicEventListener = function (rootElement, eventType, selector, callback, options) {\n rootElement.addEventListener(eventType, getConditionalCallback(selector, callback), options);\n };\n})(window);\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/dynamicListener.js","/**\n * This API is under development, so do not use this in production.\n * We will open this API for use after some testing (coming releases).\n */\n/* globals give_vars, jQuery */\nimport 'magnific-popup';\nimport './dynamicListener.js';\n\n/**\n * This abstract class is base for modal\n *\n * @since 2.1.0\n */\nclass GiveModal {\n\tconstructor( obj ) {\n\t\tif ( GiveModal === this.constructor ) {\n\t\t\tthrow new Error( 'Abstract classes can\\'t be instantiated.' );\n\t\t}\n\n\t\tthis.config = Object.assign(\n\t\t\t{\n\t\t\t\ttype: '',\n\t\t\t\ttriggerSelector: '',\n\t\t\t\texternalPlugin: 'magnificPopup',\n\t\t\t\tclasses: { modalWrapper: '' },\n\t\t\t\tmodalContent: {},\n\t\t\t},\n\t\t\tobj\n\t\t);\n\n\t\t// Set main class.\n\t\tthis.config.mainClass = `${ this.config.mainClass ? this.config.mainClass : '' } modal-fade-slide`.trim();\n\t}\n\n\t/**\n\t * Bootstrap\n\t */\n\tinit() {\n\t\tthis.setupTemplate();\n\t\tthis.popupConfig();\n\t\tthis.__setupClickEvent();\n\t}\n\n\t/**\n\t * Get template\n\t *\n\t * @since 2.1.0\n\t *\n\t * @return {string} Template HTML.\n\t */\n\tgetTemplate() {\n\t\tlet template = '<div class=\"give-hidden\"></div>';\n\n\t\tif ( this.config.type.length ) {\n\t\t\ttemplate = `<div class=\"give-modal give-modal--zoom ${ this.config.classes.modalWrapper ? `${ this.config.classes.modalWrapper }`.trim() : '' }\">\n\n\t\t\t\t<div class=\"give-modal__body\">\n\t\t\t\t\t${ this.config.modalContent.title ? `<h2 class=\"give-modal__title\">${ this.config.modalContent.title }</h2>` : '' }\n\t\t\t\t\t${ this.config.modalContent.desc ? `<p class=\"give-modal__description\">${ this.config.modalContent.desc }</p>` : '' }\n\t\t\t\t</div>\n\t\n\t\t\t\t<div class=\"give-modal__controls\">\n\n\t\t\t\t\t${ ( 'form' === this.config.type ) ? '<div class=\"spinner\"></div>' : '' }\n\t\t\t\t\t${ ( 'form' === this.config.type ) ? `<a class=\"give-modal--additional-link\" href=\"${ this.config.modalContent.link }\">${ this.config.modalContent.link_text }</a>` : '' }\n\n\t\t\t\t\t<button class=\"give-button give-button--secondary give-popup-close-button\">\n\t\t\t\t\t\t${ this.config.modalContent.cancelBtnTitle ? this.config.modalContent.cancelBtnTitle : ( 'confirm' === this.config.type ? give_vars.cancel : give_vars.close ) }\n\t\t\t\t\t</button>\n\n\t\t\t\t\t${ ( 'confirm' !== this.config.type && 'form' !== this.config.type ) ? '' : `<button class=\"give-button give-button--primary give-popup-${ this.config.type }-button\">\n\n\t\t\t\t\t\t${ this.config.modalContent.confirmBtnTitle ? this.config.modalContent.confirmBtnTitle : give_vars.confirm }\n\t\t\t\t\t</button>` }\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Setup template\n\t *\n\t * @since 2.1.0\n\t */\n\tsetupTemplate() {\n\t\tthis.config.template = this.getTemplate();\n\t}\n\n\t/**\n\t * Handle click event if triggerSelector is set.\n\t *\n\t * @since 2.1.0\n\t * @private\n\t */\n\t__setupClickEvent() {\n\t\t// Bailout.\n\t\tif ( ! this.config.triggerSelector.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tjQuery( this.config.triggerSelector ).magnificPopup( this.config );\n\t}\n\n\t/**\n\t * Setup popup params\n\t *\n\t * Note: only for internal purpose\n\t *\n\t * @since 2.1.0\n\t * @private\n\t */\n\tpopupConfig() {\n\t\tif ( 'magnificPopup' === this.config.externalPlugin ) {\n\t\t\tthis.config.items = this.config.items || {\n\t\t\t\tsrc: this.config.template,\n\t\t\t\ttype: 'inline',\n\t\t\t};\n\n\t\t\tthis.config.removalDelay = 300;\n\t\t\tthis.config.fixedContentPos = true;\n\t\t\tthis.config.fixedBgPos = true;\n\t\t\tthis.config.alignTop = true;\n\t\t\tthis.config.showCloseBtn = false;\n\t\t\tthis.config.closeOnBgClick = false;\n\t\t\tthis.config.enableEscapeKey = true;\n\t\t\tthis.config.focus = '.give-popup-close-button';\n\t\t}\n\t}\n\n\t/**\n\t * Click close button event handler\n\t *\n\t * @since 2.1.0\n\t * @private\n\t *\n\t * @param {object} event Event object.\n\t */\n\tstatic __closePopup( event ) {\n\t\tevent.preventDefault();\n\t\tjQuery.magnificPopup.instance.close();\n\t}\n\n\t/**\n\t * Give's Notice Popup\n\t *\n\t * @since 2.1.0\n\t *\n\t * @return {object} GiveModal class object.\n\t */\n\trender() {\n\t\tswitch ( this.config.externalPlugin ) {\n\t\t\tcase 'magnificPopup':\n\t\t\t\tif ( ! this.config.triggerSelector ) {\n\t\t\t\t\tjQuery.magnificPopup.open( this.config );\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn this;\n\t}\n}\n\n/**\n * This class will handle error alert modal\n *\n * @since 2.1.0\n */\nclass GiveErrorAlert extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'alert';\n\t\tsuper( obj );\n\t\tthis.config.classes.modalWrapper = 'give-modal--error';\n\n\t\tthis.init();\n\t}\n}\n\n/**\n * This class will handle warning alert modal\n *\n * @since 2.1.0\n */\nclass GiveWarningAlert extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'alert';\n\t\tsuper( obj );\n\t\tthis.config.classes.modalWrapper = 'give-modal--warning';\n\n\t\tthis.init();\n\t}\n}\n\n/**\n * This class will handle notice alert modal\n *\n * @since 2.1.0\n */\nclass GiveNoticeAlert extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'alert';\n\t\tsuper( obj );\n\t\tthis.config.classes.modalWrapper = 'give-modal--notice';\n\n\t\tthis.init();\n\t}\n}\n\n/**\n * This class will handle success alert modal\n *\n * @since 2.1.0\n */\nclass GiveSuccessAlert extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'alert';\n\t\tsuper( obj );\n\t\tthis.config.classes.modalWrapper = 'give-modal--success';\n\n\t\tthis.init();\n\t}\n}\n\n/**\n * This class will handle confirm modal\n *\n * @since 2.1.0\n */\nclass GiveConfirmModal extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'confirm';\n\t\tsuper( obj );\n\n\t\tif ( 'undefined' !== typeof( obj.modalWrapper ) && '' !== obj.modalWrapper ) {\n\t\t\tthis.config.classes.modalWrapper = obj.modalWrapper;\n\t\t}\n\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Confirm button click event handler\n\t *\n\t * Note: only for internal purpose\n\t *\n\t * @since 2.1.0\n\t * @private\n\t */\n\tstatic __confirmPopup() {\n\t\tif ( 'function' === typeof jQuery.magnificPopup.instance.st.successConfirm ) {\n\t\t\tjQuery.magnificPopup.instance.st.successConfirm( {\n\t\t\t\tel: jQuery.magnificPopup.instance.st.el,\n\t\t\t} );\n\t\t\tjQuery.magnificPopup.close();\n\t\t}\n\t}\n}\n\n/**\n * This class will handle Form modal\n *\n * @since 2.2.0\n */\nclass GiveFormModal extends GiveModal {\n\tconstructor( obj ) {\n\t\tobj.type = 'form';\n\t\tsuper( obj );\n\n\t\tif ( 'undefined' !== typeof( obj.modalWrapper ) && '' !== obj.modalWrapper ) {\n\t\t\tthis.config.classes.modalWrapper = obj.modalWrapper;\n\t\t}\n\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Submit button click event handler\n\t *\n\t * Note: only for internal purpose\n\t *\n\t * @since 2.2.0\n\t * @private\n\t */\n\tstatic __submitPopup() {\n\t\tif ( 'function' === typeof jQuery.magnificPopup.instance.st.successConfirm ) {\n\t\t\tjQuery.magnificPopup.instance.st.successConfirm( {\n\t\t\t\tel: jQuery.magnificPopup.instance.st.el,\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Add events\n */\nwindow.addDynamicEventListener( document, 'click', '.give-popup-close-button', GiveModal.__closePopup, {} );\nwindow.addDynamicEventListener( document, 'click', '.give-popup-confirm-button', GiveConfirmModal.__confirmPopup, {} );\nwindow.addDynamicEventListener( document, 'click', '.give-popup-form-button', GiveFormModal.__submitPopup, {} );\n\nexport { GiveModal, GiveErrorAlert, GiveWarningAlert, GiveNoticeAlert, GiveSuccessAlert, GiveConfirmModal, GiveFormModal };\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/plugins/modal.js","// Plugins\nimport 'chosen-js';\nimport 'accounting';\nimport 'flot';\nimport 'flot-orderbars/js/jquery.flot.orderBars';\nimport 'flot/jquery.flot.time';\n\n// Give plugins.\nimport '../plugins/give-ajaxify-fields';\nimport '../plugins/selector-cache';\nimport '../plugins/repeatable-fields';\nimport '../plugins/give-hint.css';\nimport GiveAPI from '../plugins/give-api/api';\n\nimport * as Modals from '../plugins/modal.js';\n\n// Give core.\nimport './admin-forms';\nimport './admin-settings';\nimport './admin-export';\nimport './admin-widgets';\nimport './admin-scripts';\nimport './admin-importer';\n\nGiveAPI.modal = Modals;\nexport const { init, fn, cache, modal } = GiveAPI;\n\n\n\n// WEBPACK FOOTER //\n// ./assets/src/js/admin/admin.js","(function() {\n var $, AbstractChosen, Chosen, SelectParser,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n SelectParser = (function() {\n function SelectParser() {\n this.options_index = 0;\n this.parsed = [];\n }\n\n SelectParser.prototype.add_node = function(child) {\n if (child.nodeName.toUpperCase() === \"OPTGROUP\") {\n return this.add_group(child);\n } else {\n return this.add_option(child);\n }\n };\n\n SelectParser.prototype.add_group = function(group) {\n var group_position, i, len, option, ref, results1;\n group_position = this.parsed.length;\n this.parsed.push({\n array_index: group_position,\n group: true,\n label: group.label,\n title: group.title ? group.title : void 0,\n children: 0,\n disabled: group.disabled,\n classes: group.className\n });\n ref = group.childNodes;\n results1 = [];\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n results1.push(this.add_option(option, group_position, group.disabled));\n }\n return results1;\n };\n\n SelectParser.prototype.add_option = function(option, group_position, group_disabled) {\n if (option.nodeName.toUpperCase() === \"OPTION\") {\n if (option.text !== \"\") {\n if (group_position != null) {\n this.parsed[group_position].children += 1;\n }\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n value: option.value,\n text: option.text,\n html: option.innerHTML,\n title: option.title ? option.title : void 0,\n selected: option.selected,\n disabled: group_disabled === true ? group_disabled : option.disabled,\n group_array_index: group_position,\n group_label: group_position != null ? this.parsed[group_position].label : null,\n classes: option.className,\n style: option.style.cssText\n });\n } else {\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n empty: true\n });\n }\n return this.options_index += 1;\n }\n };\n\n return SelectParser;\n\n })();\n\n SelectParser.select_to_array = function(select) {\n var child, i, len, parser, ref;\n parser = new SelectParser();\n ref = select.childNodes;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n parser.add_node(child);\n }\n return parser.parsed;\n };\n\n AbstractChosen = (function() {\n function AbstractChosen(form_field, options1) {\n this.form_field = form_field;\n this.options = options1 != null ? options1 : {};\n this.label_click_handler = bind(this.label_click_handler, this);\n if (!AbstractChosen.browser_is_supported()) {\n return;\n }\n this.is_multiple = this.form_field.multiple;\n this.set_default_text();\n this.set_default_values();\n this.setup();\n this.set_up_html();\n this.register_observers();\n this.on_ready();\n }\n\n AbstractChosen.prototype.set_default_values = function() {\n this.click_test_action = (function(_this) {\n return function(evt) {\n return _this.test_active_click(evt);\n };\n })(this);\n this.activate_action = (function(_this) {\n return function(evt) {\n return _this.activate_field(evt);\n };\n })(this);\n this.active_field = false;\n this.mouse_on_container = false;\n this.results_showing = false;\n this.result_highlighted = null;\n this.is_rtl = this.options.rtl || /\\bchosen-rtl\\b/.test(this.form_field.className);\n this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === \"\" ? this.options.allow_single_deselect : false;\n this.disable_search_threshold = this.options.disable_search_threshold || 0;\n this.disable_search = this.options.disable_search || false;\n this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;\n this.group_search = this.options.group_search != null ? this.options.group_search : true;\n this.search_contains = this.options.search_contains || false;\n this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;\n this.max_selected_options = this.options.max_selected_options || Infinity;\n this.inherit_select_classes = this.options.inherit_select_classes || false;\n this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;\n this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;\n this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;\n this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;\n this.case_sensitive_search = this.options.case_sensitive_search || false;\n return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;\n };\n\n AbstractChosen.prototype.set_default_text = function() {\n if (this.form_field.getAttribute(\"data-placeholder\")) {\n this.default_text = this.form_field.getAttribute(\"data-placeholder\");\n } else if (this.is_multiple) {\n this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;\n } else {\n this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;\n }\n this.default_text = this.escape_html(this.default_text);\n return this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || AbstractChosen.default_no_result_text;\n };\n\n AbstractChosen.prototype.choice_label = function(item) {\n if (this.include_group_label_in_selected && (item.group_label != null)) {\n return \"<b class='group-name'>\" + (this.escape_html(item.group_label)) + \"</b>\" + item.html;\n } else {\n return item.html;\n }\n };\n\n AbstractChosen.prototype.mouse_enter = function() {\n return this.mouse_on_container = true;\n };\n\n AbstractChosen.prototype.mouse_leave = function() {\n return this.mouse_on_container = false;\n };\n\n AbstractChosen.prototype.input_focus = function(evt) {\n if (this.is_multiple) {\n if (!this.active_field) {\n return setTimeout(((function(_this) {\n return function() {\n return _this.container_mousedown();\n };\n })(this)), 50);\n }\n } else {\n if (!this.active_field) {\n return this.activate_field();\n }\n }\n };\n\n AbstractChosen.prototype.input_blur = function(evt) {\n if (!this.mouse_on_container) {\n this.active_field = false;\n return setTimeout(((function(_this) {\n return function() {\n return _this.blur_test();\n };\n })(this)), 100);\n }\n };\n\n AbstractChosen.prototype.label_click_handler = function(evt) {\n if (this.is_multiple) {\n return this.container_mousedown(evt);\n } else {\n return this.activate_field();\n }\n };\n\n AbstractChosen.prototype.results_option_build = function(options) {\n var content, data, data_content, i, len, ref, shown_results;\n content = '';\n shown_results = 0;\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n data = ref[i];\n data_content = '';\n if (data.group) {\n data_content = this.result_add_group(data);\n } else {\n data_content = this.result_add_option(data);\n }\n if (data_content !== '') {\n shown_results++;\n content += data_content;\n }\n if (options != null ? options.first : void 0) {\n if (data.selected && this.is_multiple) {\n this.choice_build(data);\n } else if (data.selected && !this.is_multiple) {\n this.single_set_selected_text(this.choice_label(data));\n }\n }\n if (shown_results >= this.max_shown_results) {\n break;\n }\n }\n return content;\n };\n\n AbstractChosen.prototype.result_add_option = function(option) {\n var classes, option_el;\n if (!option.search_match) {\n return '';\n }\n if (!this.include_option_in_results(option)) {\n return '';\n }\n classes = [];\n if (!option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"active-result\");\n }\n if (option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"disabled-result\");\n }\n if (option.selected) {\n classes.push(\"result-selected\");\n }\n if (option.group_array_index != null) {\n classes.push(\"group-option\");\n }\n if (option.classes !== \"\") {\n classes.push(option.classes);\n }\n option_el = document.createElement(\"li\");\n option_el.className = classes.join(\" \");\n if (option.style) {\n option_el.style.cssText = option.style;\n }\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\n option_el.innerHTML = option.highlighted_html || option.html;\n if (option.title) {\n option_el.title = option.title;\n }\n return this.outerHTML(option_el);\n };\n\n AbstractChosen.prototype.result_add_group = function(group) {\n var classes, group_el;\n if (!(group.search_match || group.group_match)) {\n return '';\n }\n if (!(group.active_options > 0)) {\n return '';\n }\n classes = [];\n classes.push(\"group-result\");\n if (group.classes) {\n classes.push(group.classes);\n }\n group_el = document.createElement(\"li\");\n group_el.className = classes.join(\" \");\n group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);\n if (group.title) {\n group_el.title = group.title;\n }\n return this.outerHTML(group_el);\n };\n\n AbstractChosen.prototype.results_update_field = function() {\n this.set_default_text();\n if (!this.is_multiple) {\n this.results_reset_cleanup();\n }\n this.result_clear_highlight();\n this.results_build();\n if (this.results_showing) {\n return this.winnow_results();\n }\n };\n\n AbstractChosen.prototype.reset_single_select_options = function() {\n var i, len, ref, result, results1;\n ref = this.results_data;\n results1 = [];\n for (i = 0, len = ref.length; i < len; i++) {\n result = ref[i];\n if (result.selected) {\n results1.push(result.selected = false);\n } else {\n results1.push(void 0);\n }\n }\n return results1;\n };\n\n AbstractChosen.prototype.results_toggle = function() {\n if (this.results_showing) {\n return this.results_hide();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.results_search = function(evt) {\n if (this.results_showing) {\n return this.winnow_results();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.winnow_results = function(options) {\n var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;\n this.no_results_clear();\n results = 0;\n query = this.get_search_text();\n escapedQuery = query.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n regex = this.get_search_regex(escapedQuery);\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n option.search_match = false;\n results_group = null;\n search_match = null;\n option.highlighted_html = '';\n if (this.include_option_in_results(option)) {\n if (option.group) {\n option.group_match = false;\n option.active_options = 0;\n }\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\n results_group = this.results_data[option.group_array_index];\n if (results_group.active_options === 0 && results_group.search_match) {\n results += 1;\n }\n results_group.active_options += 1;\n }\n text = option.group ? option.label : option.text;\n if (!(option.group && !this.group_search)) {\n search_match = this.search_string_match(text, regex);\n option.search_match = search_match != null;\n if (option.search_match && !option.group) {\n results += 1;\n }\n if (option.search_match) {\n if (query.length) {\n startpos = search_match.index;\n prefix = text.slice(0, startpos);\n fix = text.slice(startpos, startpos + query.length);\n suffix = text.slice(startpos + query.length);\n option.highlighted_html = (this.escape_html(prefix)) + \"<em>\" + (this.escape_html(fix)) + \"</em>\" + (this.escape_html(suffix));\n }\n if (results_group != null) {\n results_group.group_match = true;\n }\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\n option.search_match = true;\n }\n }\n }\n }\n this.result_clear_highlight();\n if (results < 1 && query.length) {\n this.update_results_content(\"\");\n return this.no_results(query);\n } else {\n this.update_results_content(this.results_option_build());\n if (!(options != null ? options.skip_highlight : void 0)) {\n return this.winnow_results_set_highlight();\n }\n }\n };\n\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\n var regex_flag, regex_string;\n regex_string = this.search_contains ? escaped_search_string : \"(^|\\\\s|\\\\b)\" + escaped_search_string + \"[^\\\\s]*\";\n if (!(this.enable_split_word_search || this.search_contains)) {\n regex_string = \"^\" + regex_string;\n }\n regex_flag = this.case_sensitive_search ? \"\" : \"i\";\n return new RegExp(regex_string, regex_flag);\n };\n\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\n var match;\n match = regex.exec(search_string);\n if (!this.search_contains && (match != null ? match[1] : void 0)) {\n match.index += 1;\n }\n return match;\n };\n\n AbstractChosen.prototype.choices_count = function() {\n var i, len, option, ref;\n if (this.selected_option_count != null) {\n return this.selected_option_count;\n }\n this.selected_option_count = 0;\n ref = this.form_field.options;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n if (option.selected) {\n this.selected_option_count += 1;\n }\n }\n return this.selected_option_count;\n };\n\n AbstractChosen.prototype.choices_click = function(evt) {\n evt.preventDefault();\n this.activate_field();\n if (!(this.results_showing || this.is_disabled)) {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.keydown_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n if (stroke !== 8 && this.pending_backstroke) {\n this.clear_backstroke();\n }\n switch (stroke) {\n case 8:\n this.backstroke_length = this.get_search_field_value().length;\n break;\n case 9:\n if (this.results_showing && !this.is_multiple) {\n this.result_select(evt);\n }\n this.mouse_on_container = false;\n break;\n case 13:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 27:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 32:\n if (this.disable_search) {\n evt.preventDefault();\n }\n break;\n case 38:\n evt.preventDefault();\n this.keyup_arrow();\n break;\n case 40:\n evt.preventDefault();\n this.keydown_arrow();\n break;\n }\n };\n\n AbstractChosen.prototype.keyup_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n switch (stroke) {\n case 8:\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\n this.keydown_backstroke();\n } else if (!this.pending_backstroke) {\n this.result_clear_highlight();\n this.results_search();\n }\n break;\n case 13:\n evt.preventDefault();\n if (this.results_showing) {\n this.result_select(evt);\n }\n break;\n case 27:\n if (this.results_showing) {\n this.results_hide();\n }\n break;\n case 9:\n case 16:\n case 17:\n case 18:\n case 38:\n case 40:\n case 91:\n break;\n default:\n this.results_search();\n break;\n }\n };\n\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\n if (this.is_disabled) {\n return;\n }\n return setTimeout(((function(_this) {\n return function() {\n return _this.results_search();\n };\n })(this)), 50);\n };\n\n AbstractChosen.prototype.container_width = function() {\n if (this.options.width != null) {\n return this.options.width;\n } else {\n return this.form_field.offsetWidth + \"px\";\n }\n };\n\n AbstractChosen.prototype.include_option_in_results = function(option) {\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\n return false;\n }\n if (!this.display_disabled_options && option.disabled) {\n return false;\n }\n if (option.empty) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\n this.touch_started = true;\n return this.search_results_mouseover(evt);\n };\n\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\n this.touch_started = false;\n return this.search_results_mouseout(evt);\n };\n\n AbstractChosen.prototype.search_results_touchend = function(evt) {\n if (this.touch_started) {\n return this.search_results_mouseup(evt);\n }\n };\n\n AbstractChosen.prototype.outerHTML = function(element) {\n var tmp;\n if (element.outerHTML) {\n return element.outerHTML;\n }\n tmp = document.createElement(\"div\");\n tmp.appendChild(element);\n return tmp.innerHTML;\n };\n\n AbstractChosen.prototype.get_single_html = function() {\n return \"<a class=\\\"chosen-single chosen-default\\\">\\n <span>\" + this.default_text + \"</span>\\n <div><b></b></div>\\n</a>\\n<div class=\\\"chosen-drop\\\">\\n <div class=\\\"chosen-search\\\">\\n <input class=\\\"chosen-search-input\\\" type=\\\"text\\\" autocomplete=\\\"off\\\" />\\n </div>\\n <ul class=\\\"chosen-results\\\"></ul>\\n</div>\";\n };\n\n AbstractChosen.prototype.get_multi_html = function() {\n return \"<ul class=\\\"chosen-choices\\\">\\n <li class=\\\"search-field\\\">\\n <input class=\\\"chosen-search-input\\\" type=\\\"text\\\" autocomplete=\\\"off\\\" value=\\\"\" + this.default_text + \"\\\" />\\n </li>\\n</ul>\\n<div class=\\\"chosen-drop\\\">\\n <ul class=\\\"chosen-results\\\"></ul>\\n</div>\";\n };\n\n AbstractChosen.prototype.get_no_results_html = function(terms) {\n return \"<li class=\\\"no-results\\\">\\n \" + this.results_none_found + \" <span>\" + (this.escape_html(terms)) + \"</span>\\n</li>\";\n };\n\n AbstractChosen.browser_is_supported = function() {\n if (\"Microsoft Internet Explorer\" === window.navigator.appName) {\n return document.documentMode >= 8;\n }\n if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.default_multiple_text = \"Select Some Options\";\n\n AbstractChosen.default_single_text = \"Select an Option\";\n\n AbstractChosen.default_no_result_text = \"No results match\";\n\n return AbstractChosen;\n\n })();\n\n $ = jQuery;\n\n $.fn.extend({\n chosen: function(options) {\n if (!AbstractChosen.browser_is_supported()) {\n return this;\n }\n return this.each(function(input_field) {\n var $this, chosen;\n $this = $(this);\n chosen = $this.data('chosen');\n if (options === 'destroy') {\n if (chosen instanceof Chosen) {\n chosen.destroy();\n }\n return;\n }\n if (!(chosen instanceof Chosen)) {\n $this.data('chosen', new Chosen(this, options));\n }\n });\n }\n });\n\n Chosen = (function(superClass) {\n extend(Chosen, superClass);\n\n function Chosen() {\n return Chosen.__super__.constructor.apply(this, arguments);\n }\n\n Chosen.prototype.setup = function() {\n this.form_field_jq = $(this.form_field);\n return this.current_selectedIndex = this.form_field.selectedIndex;\n };\n\n Chosen.prototype.set_up_html = function() {\n var container_classes, container_props;\n container_classes = [\"chosen-container\"];\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\n if (this.inherit_select_classes && this.form_field.className) {\n container_classes.push(this.form_field.className);\n }\n if (this.is_rtl) {\n container_classes.push(\"chosen-rtl\");\n }\n container_props = {\n 'class': container_classes.join(' '),\n 'title': this.form_field.title\n };\n if (this.form_field.id.length) {\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\n }\n this.container = $(\"<div />\", container_props);\n this.container.width(this.container_width());\n if (this.is_multiple) {\n this.container.html(this.get_multi_html());\n } else {\n this.container.html(this.get_single_html());\n }\n this.form_field_jq.hide().after(this.container);\n this.dropdown = this.container.find('div.chosen-drop').first();\n this.search_field = this.container.find('input').first();\n this.search_results = this.container.find('ul.chosen-results').first();\n this.search_field_scale();\n this.search_no_results = this.container.find('li.no-results').first();\n if (this.is_multiple) {\n this.search_choices = this.container.find('ul.chosen-choices').first();\n this.search_container = this.container.find('li.search-field').first();\n } else {\n this.search_container = this.container.find('div.chosen-search').first();\n this.selected_item = this.container.find('.chosen-single').first();\n }\n this.results_build();\n this.set_tab_index();\n return this.set_label_behavior();\n };\n\n Chosen.prototype.on_ready = function() {\n return this.form_field_jq.trigger(\"chosen:ready\", {\n chosen: this\n });\n };\n\n Chosen.prototype.register_observers = function() {\n this.container.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mousedown.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mouseenter.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_enter(evt);\n };\n })(this));\n this.container.on('mouseleave.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_leave(evt);\n };\n })(this));\n this.search_results.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseup(evt);\n };\n })(this));\n this.search_results.on('mouseover.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseover(evt);\n };\n })(this));\n this.search_results.on('mouseout.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseout(evt);\n };\n })(this));\n this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mousewheel(evt);\n };\n })(this));\n this.search_results.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchstart(evt);\n };\n })(this));\n this.search_results.on('touchmove.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchmove(evt);\n };\n })(this));\n this.search_results.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchend(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:updated.chosen\", (function(_this) {\n return function(evt) {\n _this.results_update_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:activate.chosen\", (function(_this) {\n return function(evt) {\n _this.activate_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:open.chosen\", (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:close.chosen\", (function(_this) {\n return function(evt) {\n _this.close_field(evt);\n };\n })(this));\n this.search_field.on('blur.chosen', (function(_this) {\n return function(evt) {\n _this.input_blur(evt);\n };\n })(this));\n this.search_field.on('keyup.chosen', (function(_this) {\n return function(evt) {\n _this.keyup_checker(evt);\n };\n })(this));\n this.search_field.on('keydown.chosen', (function(_this) {\n return function(evt) {\n _this.keydown_checker(evt);\n };\n })(this));\n this.search_field.on('focus.chosen', (function(_this) {\n return function(evt) {\n _this.input_focus(evt);\n };\n })(this));\n this.search_field.on('cut.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n this.search_field.on('paste.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n if (this.is_multiple) {\n return this.search_choices.on('click.chosen', (function(_this) {\n return function(evt) {\n _this.choices_click(evt);\n };\n })(this));\n } else {\n return this.container.on('click.chosen', function(evt) {\n evt.preventDefault();\n });\n }\n };\n\n Chosen.prototype.destroy = function() {\n $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);\n if (this.form_field_label.length > 0) {\n this.form_field_label.off('click.chosen');\n }\n if (this.search_field[0].tabIndex) {\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\n }\n this.container.remove();\n this.form_field_jq.removeData('chosen');\n return this.form_field_jq.show();\n };\n\n Chosen.prototype.search_field_disabled = function() {\n this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');\n this.container.toggleClass('chosen-disabled', this.is_disabled);\n this.search_field[0].disabled = this.is_disabled;\n if (!this.is_multiple) {\n this.selected_item.off('focus.chosen', this.activate_field);\n }\n if (this.is_disabled) {\n return this.close_field();\n } else if (!this.is_multiple) {\n return this.selected_item.on('focus.chosen', this.activate_field);\n }\n };\n\n Chosen.prototype.container_mousedown = function(evt) {\n var ref;\n if (this.is_disabled) {\n return;\n }\n if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {\n evt.preventDefault();\n }\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\n if (!this.active_field) {\n if (this.is_multiple) {\n this.search_field.val(\"\");\n }\n $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action);\n this.results_show();\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\n evt.preventDefault();\n this.results_toggle();\n }\n return this.activate_field();\n }\n };\n\n Chosen.prototype.container_mouseup = function(evt) {\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\n return this.results_reset(evt);\n }\n };\n\n Chosen.prototype.search_results_mousewheel = function(evt) {\n var delta;\n if (evt.originalEvent) {\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\n }\n if (delta != null) {\n evt.preventDefault();\n if (evt.type === 'DOMMouseScroll') {\n delta = delta * 40;\n }\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\n }\n };\n\n Chosen.prototype.blur_test = function(evt) {\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\n return this.close_field();\n }\n };\n\n Chosen.prototype.close_field = function() {\n $(this.container[0].ownerDocument).off(\"click.chosen\", this.click_test_action);\n this.active_field = false;\n this.results_hide();\n this.container.removeClass(\"chosen-container-active\");\n this.clear_backstroke();\n this.show_search_field_default();\n this.search_field_scale();\n return this.search_field.blur();\n };\n\n Chosen.prototype.activate_field = function() {\n if (this.is_disabled) {\n return;\n }\n this.container.addClass(\"chosen-container-active\");\n this.active_field = true;\n this.search_field.val(this.search_field.val());\n return this.search_field.focus();\n };\n\n Chosen.prototype.test_active_click = function(evt) {\n var active_container;\n active_container = $(evt.target).closest('.chosen-container');\n if (active_container.length && this.container[0] === active_container[0]) {\n return this.active_field = true;\n } else {\n return this.close_field();\n }\n };\n\n Chosen.prototype.results_build = function() {\n this.parsing = true;\n this.selected_option_count = null;\n this.results_data = SelectParser.select_to_array(this.form_field);\n if (this.is_multiple) {\n this.search_choices.find(\"li.search-choice\").remove();\n } else {\n this.single_set_selected_text();\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\n this.search_field[0].readOnly = true;\n this.container.addClass(\"chosen-container-single-nosearch\");\n } else {\n this.search_field[0].readOnly = false;\n this.container.removeClass(\"chosen-container-single-nosearch\");\n }\n }\n this.update_results_content(this.results_option_build({\n first: true\n }));\n this.search_field_disabled();\n this.show_search_field_default();\n this.search_field_scale();\n return this.parsing = false;\n };\n\n Chosen.prototype.result_do_highlight = function(el) {\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\n if (el.length) {\n this.result_clear_highlight();\n this.result_highlight = el;\n this.result_highlight.addClass(\"highlighted\");\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\n visible_top = this.search_results.scrollTop();\n visible_bottom = maxHeight + visible_top;\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\n high_bottom = high_top + this.result_highlight.outerHeight();\n if (high_bottom >= visible_bottom) {\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\n } else if (high_top < visible_top) {\n return this.search_results.scrollTop(high_top);\n }\n }\n };\n\n Chosen.prototype.result_clear_highlight = function() {\n if (this.result_highlight) {\n this.result_highlight.removeClass(\"highlighted\");\n }\n return this.result_highlight = null;\n };\n\n Chosen.prototype.results_show = function() {\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n this.container.addClass(\"chosen-with-drop\");\n this.results_showing = true;\n this.search_field.focus();\n this.search_field.val(this.get_search_field_value());\n this.winnow_results();\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\n chosen: this\n });\n };\n\n Chosen.prototype.update_results_content = function(content) {\n return this.search_results.html(content);\n };\n\n Chosen.prototype.results_hide = function() {\n if (this.results_showing) {\n this.result_clear_highlight();\n this.container.removeClass(\"chosen-with-drop\");\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\n chosen: this\n });\n }\n return this.results_showing = false;\n };\n\n Chosen.prototype.set_tab_index = function(el) {\n var ti;\n if (this.form_field.tabIndex) {\n ti = this.form_field.tabIndex;\n this.form_field.tabIndex = -1;\n return this.search_field[0].tabIndex = ti;\n }\n };\n\n Chosen.prototype.set_label_behavior = function() {\n this.form_field_label = this.form_field_jq.parents(\"label\");\n if (!this.form_field_label.length && this.form_field.id.length) {\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\n }\n if (this.form_field_label.length > 0) {\n return this.form_field_label.on('click.chosen', this.label_click_handler);\n }\n };\n\n Chosen.prototype.show_search_field_default = function() {\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\n this.search_field.val(this.default_text);\n return this.search_field.addClass(\"default\");\n } else {\n this.search_field.val(\"\");\n return this.search_field.removeClass(\"default\");\n }\n };\n\n Chosen.prototype.search_results_mouseup = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target.length) {\n this.result_highlight = target;\n this.result_select(evt);\n return this.search_field.focus();\n }\n };\n\n Chosen.prototype.search_results_mouseover = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target) {\n return this.result_do_highlight(target);\n }\n };\n\n Chosen.prototype.search_results_mouseout = function(evt) {\n if ($(evt.target).hasClass(\"active-result\") || $(evt.target).parents('.active-result').first()) {\n return this.result_clear_highlight();\n }\n };\n\n Chosen.prototype.choice_build = function(item) {\n var choice, close_link;\n choice = $('<li />', {\n \"class\": \"search-choice\"\n }).html(\"<span>\" + (this.choice_label(item)) + \"</span>\");\n if (item.disabled) {\n choice.addClass('search-choice-disabled');\n } else {\n close_link = $('<a />', {\n \"class\": 'search-choice-close',\n 'data-option-array-index': item.array_index\n });\n close_link.on('click.chosen', (function(_this) {\n return function(evt) {\n return _this.choice_destroy_link_click(evt);\n };\n })(this));\n choice.append(close_link);\n }\n return this.search_container.before(choice);\n };\n\n Chosen.prototype.choice_destroy_link_click = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (!this.is_disabled) {\n return this.choice_destroy($(evt.target));\n }\n };\n\n Chosen.prototype.choice_destroy = function(link) {\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\n if (this.active_field) {\n this.search_field.focus();\n } else {\n this.show_search_field_default();\n }\n if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {\n this.results_hide();\n }\n link.parents('li').first().remove();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.results_reset = function() {\n this.reset_single_select_options();\n this.form_field.options[0].selected = true;\n this.single_set_selected_text();\n this.show_search_field_default();\n this.results_reset_cleanup();\n this.trigger_form_field_change();\n if (this.active_field) {\n return this.results_hide();\n }\n };\n\n Chosen.prototype.results_reset_cleanup = function() {\n this.current_selectedIndex = this.form_field.selectedIndex;\n return this.selected_item.find(\"abbr\").remove();\n };\n\n Chosen.prototype.result_select = function(evt) {\n var high, item;\n if (this.result_highlight) {\n high = this.result_highlight;\n this.result_clear_highlight();\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n if (this.is_multiple) {\n high.removeClass(\"active-result\");\n } else {\n this.reset_single_select_options();\n }\n high.addClass(\"result-selected\");\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\n item.selected = true;\n this.form_field.options[item.options_index].selected = true;\n this.selected_option_count = null;\n if (this.is_multiple) {\n this.choice_build(item);\n } else {\n this.single_set_selected_text(this.choice_label(item));\n }\n if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {\n if (evt.metaKey || evt.ctrlKey) {\n this.winnow_results({\n skip_highlight: true\n });\n } else {\n this.search_field.val(\"\");\n this.winnow_results();\n }\n } else {\n this.results_hide();\n this.show_search_field_default();\n }\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\n this.trigger_form_field_change({\n selected: this.form_field.options[item.options_index].value\n });\n }\n this.current_selectedIndex = this.form_field.selectedIndex;\n evt.preventDefault();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.single_set_selected_text = function(text) {\n if (text == null) {\n text = this.default_text;\n }\n if (text === this.default_text) {\n this.selected_item.addClass(\"chosen-default\");\n } else {\n this.single_deselect_control_build();\n this.selected_item.removeClass(\"chosen-default\");\n }\n return this.selected_item.find(\"span\").html(text);\n };\n\n Chosen.prototype.result_deselect = function(pos) {\n var result_data;\n result_data = this.results_data[pos];\n if (!this.form_field.options[result_data.options_index].disabled) {\n result_data.selected = false;\n this.form_field.options[result_data.options_index].selected = false;\n this.selected_option_count = null;\n this.result_clear_highlight();\n if (this.results_showing) {\n this.winnow_results();\n }\n this.trigger_form_field_change({\n deselected: this.form_field.options[result_data.options_index].value\n });\n this.search_field_scale();\n return true;\n } else {\n return false;\n }\n };\n\n Chosen.prototype.single_deselect_control_build = function() {\n if (!this.allow_single_deselect) {\n return;\n }\n if (!this.selected_item.find(\"abbr\").length) {\n this.selected_item.find(\"span\").first().after(\"<abbr class=\\\"search-choice-close\\\"></abbr>\");\n }\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\n };\n\n Chosen.prototype.get_search_field_value = function() {\n return this.search_field.val();\n };\n\n Chosen.prototype.get_search_text = function() {\n return $.trim(this.get_search_field_value());\n };\n\n Chosen.prototype.escape_html = function(text) {\n return $('<div/>').text(text).html();\n };\n\n Chosen.prototype.winnow_results_set_highlight = function() {\n var do_high, selected_results;\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\n if (do_high != null) {\n return this.result_do_highlight(do_high);\n }\n };\n\n Chosen.prototype.no_results = function(terms) {\n var no_results_html;\n no_results_html = this.get_no_results_html(terms);\n this.search_results.append(no_results_html);\n return this.form_field_jq.trigger(\"chosen:no_results\", {\n chosen: this\n });\n };\n\n Chosen.prototype.no_results_clear = function() {\n return this.search_results.find(\".no-results\").remove();\n };\n\n Chosen.prototype.keydown_arrow = function() {\n var next_sib;\n if (this.results_showing && this.result_highlight) {\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\n if (next_sib) {\n return this.result_do_highlight(next_sib);\n }\n } else {\n return this.results_show();\n }\n };\n\n Chosen.prototype.keyup_arrow = function() {\n var prev_sibs;\n if (!this.results_showing && !this.is_multiple) {\n return this.results_show();\n } else if (this.result_highlight) {\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\n if (prev_sibs.length) {\n return this.result_do_highlight(prev_sibs.first());\n } else {\n if (this.choices_count() > 0) {\n this.results_hide();\n }\n return this.result_clear_highlight();\n }\n }\n };\n\n Chosen.prototype.keydown_backstroke = function() {\n var next_available_destroy;\n if (this.pending_backstroke) {\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\n return this.clear_backstroke();\n } else {\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\n this.pending_backstroke = next_available_destroy;\n if (this.single_backstroke_delete) {\n return this.keydown_backstroke();\n } else {\n return this.pending_backstroke.addClass(\"search-choice-focus\");\n }\n }\n }\n };\n\n Chosen.prototype.clear_backstroke = function() {\n if (this.pending_backstroke) {\n this.pending_backstroke.removeClass(\"search-choice-focus\");\n }\n return this.pending_backstroke = null;\n };\n\n Chosen.prototype.search_field_scale = function() {\n var div, i, len, style, style_block, styles, width;\n if (!this.is_multiple) {\n return;\n }\n style_block = {\n position: 'absolute',\n left: '-1000px',\n top: '-1000px',\n display: 'none',\n whiteSpace: 'pre'\n };\n styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];\n for (i = 0, len = styles.length; i < len; i++) {\n style = styles[i];\n style_block[style] = this.search_field.css(style);\n }\n div = $('<div />').css(style_block);\n div.text(this.get_search_field_value());\n $('body').append(div);\n width = div.width() + 25;\n div.remove();\n if (this.container.is(':visible')) {\n width = Math.min(this.container.outerWidth() - 10, width);\n }\n return this.search_field.width(width);\n };\n\n Chosen.prototype.trigger_form_field_change = function(extra) {\n this.form_field_jq.trigger(\"input\", extra);\n return this.form_field_jq.trigger(\"change\", extra);\n };\n\n return Chosen;\n\n })(AbstractChosen);\n\n}).call(this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/chosen-js/chosen.jquery.js\n// module id = 28\n// module chunks = 0","/* Javascript plotting library for jQuery, version 0.8 alpha.\n\nCopyright (c) 2007-2012 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n\n// first an inline dependency, jquery.colorhelpers.js, we inline it here\n// for convenience\n\n/* Plugin for jQuery for working with colors.\n *\n * Version 1.1.\n *\n * Inspiration from jQuery color animation plugin by John Resig.\n *\n * Released under the MIT license by Ole Laursen, October 2009.\n *\n * Examples:\n *\n * $.color.parse(\"#fff\").scale('rgb', 0.25).add('a', -0.5).toString()\n * var c = $.color.extract($(\"#mydiv\"), 'background-color');\n * console.log(c.r, c.g, c.b, c.a);\n * $.color.make(100, 50, 25, 0.4).toString() // returns \"rgba(100,50,25,0.4)\"\n *\n * Note that .scale() and .add() return the same modified object\n * instead of making a new one.\n *\n * V. 1.1: Fix error handling so e.g. parsing an empty string does\n * produce a color rather than just crashing.\n */\n(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]+=I}return G.normalize()};G.scale=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]*=I}return G.normalize()};G.toString=function(){if(G.a>=1){return\"rgb(\"+[G.r,G.g,G.b].join(\",\")+\")\"}else{return\"rgba(\"+[G.r,G.g,G.b,G.a].join(\",\")+\")\"}};G.normalize=function(){function H(J,K,I){return K<J?J:(K>I?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=\"\"&&E!=\"transparent\"){break}D=D.parent()}while(!B.nodeName(D.get(0),\"body\"));if(E==\"rgba(0, 0, 0, 0)\"){E=\"transparent\"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D==\"transparent\"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);\n\n// the actual Flot code\n(function($) {\n function Plot(placeholder, data_, options_, plugins) {\n // data is on the form:\n // [ series1, series2 ... ]\n // where series is either just the data as [ [x1, y1], [x2, y2], ... ]\n // or { data: [ [x1, y1], [x2, y2], ... ], label: \"some label\", ... }\n\n var series = [],\n options = {\n // the color theme used for graphs\n colors: [\"#edc240\", \"#afd8f8\", \"#cb4b4b\", \"#4da74d\", \"#9440ed\"],\n legend: {\n show: true,\n noColumns: 1, // number of colums in legend table\n labelFormatter: null, // fn: string -> string\n labelBoxBorderColor: \"#ccc\", // border color for the little label boxes\n container: null, // container (as jQuery object) to put legend in, null means default on top of graph\n position: \"ne\", // position of default legend container within plot\n margin: 5, // distance from grid edge to default legend container within plot\n backgroundColor: null, // null means auto-detect\n backgroundOpacity: 0.85, // set to 0 to avoid background\n sorted: null // default to no legend sorting\n },\n xaxis: {\n show: null, // null = auto-detect, true = always, false = never\n position: \"bottom\", // or \"top\"\n mode: null, // null or \"time\"\n timezone: null, // \"browser\" for local to the client or timezone for timezone-js\n font: null, // null (derived from CSS in placeholder) or object like { size: 11, style: \"italic\", weight: \"bold\", family: \"sans-serif\", variant: \"small-caps\" }\n color: null, // base color, labels, ticks\n tickColor: null, // possibly different color of ticks, e.g. \"rgba(0,0,0,0.15)\"\n transform: null, // null or f: number -> number to transform axis\n inverseTransform: null, // if transform is set, this should be the inverse function\n min: null, // min. value to show, null means set automatically\n max: null, // max. value to show, null means set automatically\n autoscaleMargin: null, // margin in % to add if auto-setting min/max\n ticks: null, // either [1, 3] or [[1, \"a\"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks\n tickFormatter: null, // fn: number -> string\n labelWidth: null, // size of tick labels in pixels\n labelHeight: null,\n reserveSpace: null, // whether to reserve space even if axis isn't shown\n tickLength: null, // size in pixels of ticks, or \"full\" for whole line\n alignTicksWithAxis: null, // axis number or null for no sync\n\n // mode specific options\n tickDecimals: null, // no. of decimals, null means auto\n tickSize: null, // number or [number, \"unit\"]\n minTickSize: null, // number or [number, \"unit\"]\n monthNames: null, // list of names of months\n timeformat: null, // format string to use\n twelveHourClock: false // 12 or 24 time in time mode\n },\n yaxis: {\n autoscaleMargin: 0.02,\n position: \"left\" // or \"right\"\n },\n xaxes: [],\n yaxes: [],\n series: {\n points: {\n show: false,\n radius: 3,\n lineWidth: 2, // in pixels\n fill: true,\n fillColor: \"#ffffff\",\n symbol: \"circle\" // or callback\n },\n lines: {\n // we don't put in show: false so we can see\n // whether lines were actively disabled\n lineWidth: 2, // in pixels\n fill: false,\n fillColor: null,\n steps: false\n // Omit 'zero', so we can later default its value to\n // match that of the 'fill' option.\n },\n bars: {\n show: false,\n lineWidth: 2, // in pixels\n barWidth: 1, // in units of the x axis\n fill: true,\n fillColor: null,\n align: \"left\", // \"left\", \"right\", or \"center\"\n horizontal: false,\n zero: true\n },\n shadowSize: 3,\n highlightColor: null\n },\n grid: {\n show: true,\n aboveData: false,\n color: \"#545454\", // primary color used for outline and labels\n backgroundColor: null, // null for transparent, else color\n borderColor: null, // set if different from the grid color\n tickColor: null, // color for the ticks, e.g. \"rgba(0,0,0,0.15)\"\n margin: 0, // distance from the canvas edge to the grid\n labelMargin: 5, // in pixels\n axisMargin: 8, // in pixels\n borderWidth: 2, // in pixels\n minBorderMargin: null, // in pixels, null means taken from points radius\n markings: null, // array of ranges or fn: axes -> array of ranges\n markingsColor: \"#f4f4f4\",\n markingsLineWidth: 2,\n // interactive stuff\n clickable: false,\n hoverable: false,\n autoHighlight: true, // highlight in case mouse is near\n mouseActiveRadius: 10 // how far the mouse can be away to activate an item\n },\n interaction: {\n redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow\n },\n hooks: {}\n },\n canvas = null, // the canvas for the plot itself\n overlay = null, // canvas for interactive stuff on top of plot\n eventHolder = null, // jQuery object that events should be bound to\n ctx = null, octx = null,\n xaxes = [], yaxes = [],\n plotOffset = { left: 0, right: 0, top: 0, bottom: 0},\n canvasWidth = 0, canvasHeight = 0,\n plotWidth = 0, plotHeight = 0,\n hooks = {\n processOptions: [],\n processRawData: [],\n processDatapoints: [],\n processOffset: [],\n drawBackground: [],\n drawSeries: [],\n draw: [],\n bindEvents: [],\n drawOverlay: [],\n shutdown: []\n },\n plot = this;\n\n // public functions\n plot.setData = setData;\n plot.setupGrid = setupGrid;\n plot.draw = draw;\n plot.getPlaceholder = function() { return placeholder; };\n plot.getCanvas = function() { return canvas; };\n plot.getPlotOffset = function() { return plotOffset; };\n plot.width = function () { return plotWidth; };\n plot.height = function () { return plotHeight; };\n plot.offset = function () {\n var o = eventHolder.offset();\n o.left += plotOffset.left;\n o.top += plotOffset.top;\n return o;\n };\n plot.getData = function () { return series; };\n plot.getAxes = function () {\n var res = {}, i;\n $.each(xaxes.concat(yaxes), function (_, axis) {\n if (axis)\n res[axis.direction + (axis.n != 1 ? axis.n : \"\") + \"axis\"] = axis;\n });\n return res;\n };\n plot.getXAxes = function () { return xaxes; };\n plot.getYAxes = function () { return yaxes; };\n plot.c2p = canvasToAxisCoords;\n plot.p2c = axisToCanvasCoords;\n plot.getOptions = function () { return options; };\n plot.highlight = highlight;\n plot.unhighlight = unhighlight;\n plot.triggerRedrawOverlay = triggerRedrawOverlay;\n plot.pointOffset = function(point) {\n return {\n left: parseInt(xaxes[axisNumber(point, \"x\") - 1].p2c(+point.x) + plotOffset.left, 10),\n top: parseInt(yaxes[axisNumber(point, \"y\") - 1].p2c(+point.y) + plotOffset.top, 10)\n };\n };\n plot.shutdown = shutdown;\n plot.resize = function () {\n getCanvasDimensions();\n resizeCanvas(canvas);\n resizeCanvas(overlay);\n };\n\n // public attributes\n plot.hooks = hooks;\n\n // initialize\n initPlugins(plot);\n parseOptions(options_);\n setupCanvases();\n setData(data_);\n setupGrid();\n draw();\n bindEvents();\n\n\n function executeHooks(hook, args) {\n args = [plot].concat(args);\n for (var i = 0; i < hook.length; ++i)\n hook[i].apply(this, args);\n }\n\n function initPlugins() {\n for (var i = 0; i < plugins.length; ++i) {\n var p = plugins[i];\n p.init(plot);\n if (p.options)\n $.extend(true, options, p.options);\n }\n }\n\n function parseOptions(opts) {\n var i;\n\n $.extend(true, options, opts);\n\n if (options.xaxis.color == null)\n options.xaxis.color = options.grid.color;\n if (options.yaxis.color == null)\n options.yaxis.color = options.grid.color;\n\n if (options.xaxis.tickColor == null) // backwards-compatibility\n options.xaxis.tickColor = options.grid.tickColor;\n if (options.yaxis.tickColor == null) // backwards-compatibility\n options.yaxis.tickColor = options.grid.tickColor;\n\n if (options.grid.borderColor == null)\n options.grid.borderColor = options.grid.color;\n if (options.grid.tickColor == null)\n options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();\n\n // fill in defaults in axes, copy at least always the\n // first as the rest of the code assumes it'll be there\n for (i = 0; i < Math.max(1, options.xaxes.length); ++i)\n options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]);\n for (i = 0; i < Math.max(1, options.yaxes.length); ++i)\n options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]);\n\n // backwards compatibility, to be removed in future\n if (options.xaxis.noTicks && options.xaxis.ticks == null)\n options.xaxis.ticks = options.xaxis.noTicks;\n if (options.yaxis.noTicks && options.yaxis.ticks == null)\n options.yaxis.ticks = options.yaxis.noTicks;\n if (options.x2axis) {\n options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);\n options.xaxes[1].position = \"top\";\n }\n if (options.y2axis) {\n options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);\n options.yaxes[1].position = \"right\";\n }\n if (options.grid.coloredAreas)\n options.grid.markings = options.grid.coloredAreas;\n if (options.grid.coloredAreasColor)\n options.grid.markingsColor = options.grid.coloredAreasColor;\n if (options.lines)\n $.extend(true, options.series.lines, options.lines);\n if (options.points)\n $.extend(true, options.series.points, options.points);\n if (options.bars)\n $.extend(true, options.series.bars, options.bars);\n if (options.shadowSize != null)\n options.series.shadowSize = options.shadowSize;\n if (options.highlightColor != null)\n options.series.highlightColor = options.highlightColor;\n\n // save options on axes for future reference\n for (i = 0; i < options.xaxes.length; ++i)\n getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];\n for (i = 0; i < options.yaxes.length; ++i)\n getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];\n\n // add hooks from options\n for (var n in hooks)\n if (options.hooks[n] && options.hooks[n].length)\n hooks[n] = hooks[n].concat(options.hooks[n]);\n\n executeHooks(hooks.processOptions, [options]);\n }\n\n function setData(d) {\n series = parseData(d);\n fillInSeriesOptions();\n processData();\n }\n\n function parseData(d) {\n var res = [];\n for (var i = 0; i < d.length; ++i) {\n var s = $.extend(true, {}, options.series);\n\n if (d[i].data != null) {\n s.data = d[i].data; // move the data instead of deep-copy\n delete d[i].data;\n\n $.extend(true, s, d[i]);\n\n d[i].data = s.data;\n }\n else\n s.data = d[i];\n res.push(s);\n }\n\n return res;\n }\n\n function axisNumber(obj, coord) {\n var a = obj[coord + \"axis\"];\n if (typeof a == \"object\") // if we got a real axis, extract number\n a = a.n;\n if (typeof a != \"number\")\n a = 1; // default to first axis\n return a;\n }\n\n function allAxes() {\n // return flat array without annoying null entries\n return $.grep(xaxes.concat(yaxes), function (a) { return a; });\n }\n\n function canvasToAxisCoords(pos) {\n // return an object with x/y corresponding to all used axes\n var res = {}, i, axis;\n for (i = 0; i < xaxes.length; ++i) {\n axis = xaxes[i];\n if (axis && axis.used)\n res[\"x\" + axis.n] = axis.c2p(pos.left);\n }\n\n for (i = 0; i < yaxes.length; ++i) {\n axis = yaxes[i];\n if (axis && axis.used)\n res[\"y\" + axis.n] = axis.c2p(pos.top);\n }\n\n if (res.x1 !== undefined)\n res.x = res.x1;\n if (res.y1 !== undefined)\n res.y = res.y1;\n\n return res;\n }\n\n function axisToCanvasCoords(pos) {\n // get canvas coords from the first pair of x/y found in pos\n var res = {}, i, axis, key;\n\n for (i = 0; i < xaxes.length; ++i) {\n axis = xaxes[i];\n if (axis && axis.used) {\n key = \"x\" + axis.n;\n if (pos[key] == null && axis.n == 1)\n key = \"x\";\n\n if (pos[key] != null) {\n res.left = axis.p2c(pos[key]);\n break;\n }\n }\n }\n\n for (i = 0; i < yaxes.length; ++i) {\n axis = yaxes[i];\n if (axis && axis.used) {\n key = \"y\" + axis.n;\n if (pos[key] == null && axis.n == 1)\n key = \"y\";\n\n if (pos[key] != null) {\n res.top = axis.p2c(pos[key]);\n break;\n }\n }\n }\n\n return res;\n }\n\n function getOrCreateAxis(axes, number) {\n if (!axes[number - 1])\n axes[number - 1] = {\n n: number, // save the number for future reference\n direction: axes == xaxes ? \"x\" : \"y\",\n options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)\n };\n\n return axes[number - 1];\n }\n\n function fillInSeriesOptions() {\n\n var neededColors = series.length, maxIndex = -1, i;\n\n // Subtract the number of series that already have fixed colors or\n // color indexes from the number that we still need to generate.\n\n for (i = 0; i < series.length; ++i) {\n var sc = series[i].color;\n if (sc != null) {\n neededColors--;\n if (typeof sc == \"number\" && sc > maxIndex) {\n maxIndex = sc;\n }\n }\n }\n\n // If any of the series have fixed color indexes, then we need to\n // generate at least as many colors as the highest index.\n\n if (neededColors <= maxIndex) {\n neededColors = maxIndex + 1;\n }\n\n // Generate all the colors, using first the option colors and then\n // variations on those colors once they're exhausted.\n\n var c, colors = [], colorPool = options.colors,\n colorPoolSize = colorPool.length, variation = 0;\n\n for (i = 0; i < neededColors; i++) {\n\n c = $.color.parse(colorPool[i % colorPoolSize] || \"#666\");\n\n // Each time we exhaust the colors in the pool we adjust\n // a scaling factor used to produce more variations on\n // those colors. The factor alternates negative/positive\n // to produce lighter/darker colors.\n\n // Reset the variation after every few cycles, or else\n // it will end up producing only white or black colors.\n\n if (i % colorPoolSize == 0 && i) {\n if (variation >= 0) {\n if (variation < 0.5) {\n variation = -variation - 0.2;\n } else variation = 0;\n } else variation = -variation;\n }\n\n colors[i] = c.scale('rgb', 1 + variation);\n }\n\n // Finalize the series options, filling in their colors\n\n var colori = 0, s;\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n // assign colors\n if (s.color == null) {\n s.color = colors[colori].toString();\n ++colori;\n }\n else if (typeof s.color == \"number\")\n s.color = colors[s.color].toString();\n\n // turn on lines automatically in case nothing is set\n if (s.lines.show == null) {\n var v, show = true;\n for (v in s)\n if (s[v] && s[v].show) {\n show = false;\n break;\n }\n if (show)\n s.lines.show = true;\n }\n\n // If nothing was provided for lines.zero, default it to match\n // lines.fill, since areas by default should extend to zero.\n\n if (s.lines.zero == null) {\n s.lines.zero = !!s.lines.fill;\n }\n\n // setup axes\n s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, \"x\"));\n s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, \"y\"));\n }\n }\n\n function processData() {\n var topSentry = Number.POSITIVE_INFINITY,\n bottomSentry = Number.NEGATIVE_INFINITY,\n fakeInfinity = Number.MAX_VALUE,\n i, j, k, m, length,\n s, points, ps, x, y, axis, val, f, p,\n data, format;\n\n function updateAxis(axis, min, max) {\n if (min < axis.datamin && min != -fakeInfinity)\n axis.datamin = min;\n if (max > axis.datamax && max != fakeInfinity)\n axis.datamax = max;\n }\n\n $.each(allAxes(), function (_, axis) {\n // init axis\n axis.datamin = topSentry;\n axis.datamax = bottomSentry;\n axis.used = false;\n });\n\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n s.datapoints = { points: [] };\n\n executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);\n }\n\n // first pass: clean and copy data\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n data = s.data;\n format = s.datapoints.format;\n\n if (!format) {\n format = [];\n // find out how to copy\n format.push({ x: true, number: true, required: true });\n format.push({ y: true, number: true, required: true });\n\n if (s.bars.show || (s.lines.show && s.lines.fill)) {\n var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));\n format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale });\n if (s.bars.horizontal) {\n delete format[format.length - 1].y;\n format[format.length - 1].x = true;\n }\n }\n\n s.datapoints.format = format;\n }\n\n if (s.datapoints.pointsize != null)\n continue; // already filled in\n\n s.datapoints.pointsize = format.length;\n\n ps = s.datapoints.pointsize;\n points = s.datapoints.points;\n\n var insertSteps = s.lines.show && s.lines.steps;\n s.xaxis.used = s.yaxis.used = true;\n\n for (j = k = 0; j < data.length; ++j, k += ps) {\n p = data[j];\n\n var nullify = p == null;\n if (!nullify) {\n for (m = 0; m < ps; ++m) {\n val = p[m];\n f = format[m];\n\n if (f) {\n if (f.number && val != null) {\n val = +val; // convert to number\n if (isNaN(val))\n val = null;\n else if (val == Infinity)\n val = fakeInfinity;\n else if (val == -Infinity)\n val = -fakeInfinity;\n }\n\n if (val == null) {\n if (f.required)\n nullify = true;\n\n if (f.defaultValue != null)\n val = f.defaultValue;\n }\n }\n\n points[k + m] = val;\n }\n }\n\n if (nullify) {\n for (m = 0; m < ps; ++m) {\n val = points[k + m];\n if (val != null) {\n f = format[m];\n // extract min/max info\n if (f.x)\n updateAxis(s.xaxis, val, val);\n if (f.y)\n updateAxis(s.yaxis, val, val);\n }\n points[k + m] = null;\n }\n }\n else {\n // a little bit of line specific stuff that\n // perhaps shouldn't be here, but lacking\n // better means...\n if (insertSteps && k > 0\n && points[k - ps] != null\n && points[k - ps] != points[k]\n && points[k - ps + 1] != points[k + 1]) {\n // copy the point to make room for a middle point\n for (m = 0; m < ps; ++m)\n points[k + ps + m] = points[k + m];\n\n // middle point has same y\n points[k + 1] = points[k - ps + 1];\n\n // we've added a point, better reflect that\n k += ps;\n }\n }\n }\n }\n\n // give the hooks a chance to run\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n\n executeHooks(hooks.processDatapoints, [ s, s.datapoints]);\n }\n\n // second pass: find datamax/datamin for auto-scaling\n for (i = 0; i < series.length; ++i) {\n s = series[i];\n points = s.datapoints.points,\n ps = s.datapoints.pointsize;\n format = s.datapoints.format;\n\n var xmin = topSentry, ymin = topSentry,\n xmax = bottomSentry, ymax = bottomSentry;\n\n for (j = 0; j < points.length; j += ps) {\n if (points[j] == null)\n continue;\n\n for (m = 0; m < ps; ++m) {\n val = points[j + m];\n f = format[m];\n if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity)\n continue;\n\n if (f.x) {\n if (val < xmin)\n xmin = val;\n if (val > xmax)\n xmax = val;\n }\n if (f.y) {\n if (val < ymin)\n ymin = val;\n if (val > ymax)\n ymax = val;\n }\n }\n }\n\n if (s.bars.show) {\n // make sure we got room for the bar on the dancing floor\n var delta;\n\n switch (s.bars.align) {\n case \"left\":\n delta = 0;\n break;\n case \"right\":\n delta = -s.bars.barWidth;\n break;\n case \"center\":\n delta = -s.bars.barWidth / 2;\n break;\n default:\n throw new Error(\"Invalid bar alignment: \" + s.bars.align);\n }\n\n if (s.bars.horizontal) {\n ymin += delta;\n ymax += delta + s.bars.barWidth;\n }\n else {\n xmin += delta;\n xmax += delta + s.bars.barWidth;\n }\n }\n\n updateAxis(s.xaxis, xmin, xmax);\n updateAxis(s.yaxis, ymin, ymax);\n }\n\n $.each(allAxes(), function (_, axis) {\n if (axis.datamin == topSentry)\n axis.datamin = null;\n if (axis.datamax == bottomSentry)\n axis.datamax = null;\n });\n }\n\n //////////////////////////////////////////////////////////////////////////////////\n // Returns the display's ratio between physical and device-independent pixels.\n //\n // This is the ratio between the width that the browser advertises and the number\n // of pixels actually available in that space. The iPhone 4, for example, has a\n // device-independent width of 320px, but its screen is actually 640px wide. It\n // therefore has a pixel ratio of 2, while most normal devices have a ratio of 1.\n\n function getPixelRatio(cctx) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio =\n cctx.webkitBackingStorePixelRatio ||\n cctx.mozBackingStorePixelRatio ||\n cctx.msBackingStorePixelRatio ||\n cctx.oBackingStorePixelRatio ||\n cctx.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStoreRatio;\n }\n\n function makeCanvas(cls) {\n\n var c = document.createElement('canvas');\n c.className = cls;\n\n\t\t\t$(c).css({ direction: \"ltr\", position: \"absolute\", left: 0, top: 0 })\n\t\t\t\t.appendTo(placeholder);\n\n\t\t\t// If HTML5 Canvas isn't available, fall back to Excanvas\n\n\t\t\tif (!c.getContext) {\n\t\t\t\tif (window.G_vmlCanvasManager) {\n\t\t\t\t\tc = window.G_vmlCanvasManager.initElement(c);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.\");\n\t\t\t\t}\n\t\t\t}\n\n var cctx = c.getContext(\"2d\");\n\n // Increase the canvas density based on the display's pixel ratio; basically\n // giving the canvas more pixels without increasing the size of its element,\n // to take advantage of the fact that retina displays have that many more\n // pixels than they actually use for page & element widths.\n\n var pixelRatio = getPixelRatio(cctx);\n\n c.width = canvasWidth * pixelRatio;\n c.height = canvasHeight * pixelRatio;\n c.style.width = canvasWidth + \"px\";\n c.style.height = canvasHeight + \"px\";\n\n // Save the context so we can reset in case we get replotted\n\n cctx.save();\n\n // Scale the coordinate space to match the display density; so even though we\n // may have twice as many pixels, we still want lines and other drawing to\n // appear at the same size; the extra pixels will just make them crisper.\n\n cctx.scale(pixelRatio, pixelRatio);\n\n return c;\n }\n\n function getCanvasDimensions() {\n canvasWidth = placeholder.width();\n canvasHeight = placeholder.height();\n\n if (canvasWidth <= 0 || canvasHeight <= 0)\n throw new Error(\"Invalid dimensions for plot, width = \" + canvasWidth + \", height = \" + canvasHeight);\n }\n\n function resizeCanvas(c) {\n\n var cctx = c.getContext(\"2d\");\n\n // Handle pixel ratios > 1 for retina displays, as explained in makeCanvas\n\n var pixelRatio = getPixelRatio(cctx);\n\n // Resizing should reset the state (excanvas seems to be buggy though)\n\n if (c.style.width != canvasWidth) {\n c.width = canvasWidth * pixelRatio;\n c.style.width = canvasWidth + \"px\";\n }\n\n if (c.style.height != canvasHeight) {\n c.height = canvasHeight * pixelRatio;\n c.style.height = canvasHeight + \"px\";\n }\n\n // so try to get back to the initial state (even if it's\n // gone now, this should be safe according to the spec)\n cctx.restore();\n\n // and save again\n cctx.save();\n\n // Apply scaling for retina displays, as explained in makeCanvas\n\n cctx.scale(pixelRatio, pixelRatio);\n }\n\n function setupCanvases() {\n var reused,\n existingCanvas = placeholder.children(\"canvas.flot-base\"),\n existingOverlay = placeholder.children(\"canvas.flot-overlay\");\n\n if (existingCanvas.length == 0 || existingOverlay == 0) {\n // init everything\n\n placeholder.html(\"\"); // make sure placeholder is clear\n\n placeholder.css({ padding: 0 }); // padding messes up the positioning\n\n if (placeholder.css(\"position\") == 'static')\n placeholder.css(\"position\", \"relative\"); // for positioning labels and overlay\n\n getCanvasDimensions();\n\n canvas = makeCanvas(\"flot-base\");\n overlay = makeCanvas(\"flot-overlay\"); // overlay canvas for interactive features\n\n reused = false;\n }\n else {\n // reuse existing elements\n\n canvas = existingCanvas.get(0);\n overlay = existingOverlay.get(0);\n\n reused = true;\n }\n\n ctx = canvas.getContext(\"2d\");\n octx = overlay.getContext(\"2d\");\n\n // define which element we're listening for events on\n eventHolder = $(overlay);\n\n if (reused) {\n // run shutdown in the old plot object\n placeholder.data(\"plot\").shutdown();\n\n // reset reused canvases\n plot.resize();\n\n // make sure overlay pixels are cleared (canvas is cleared when we redraw)\n octx.clearRect(0, 0, canvasWidth, canvasHeight);\n\n // then whack any remaining obvious garbage left\n eventHolder.unbind();\n placeholder.children().not([canvas, overlay]).remove();\n }\n\n // save in case we get replotted\n placeholder.data(\"plot\", plot);\n }\n\n function bindEvents() {\n // bind events\n if (options.grid.hoverable) {\n eventHolder.mousemove(onMouseMove);\n\n // Use bind, rather than .mouseleave, because we officially\n // still support jQuery 1.2.6, which doesn't define a shortcut\n // for mouseenter or mouseleave. This was a bug/oversight that\n // was fixed somewhere around 1.3.x. We can return to using\n // .mouseleave when we drop support for 1.2.6.\n\n eventHolder.bind(\"mouseleave\", onMouseLeave);\n }\n\n if (options.grid.clickable)\n eventHolder.click(onClick);\n\n executeHooks(hooks.bindEvents, [eventHolder]);\n }\n\n function shutdown() {\n if (redrawTimeout)\n clearTimeout(redrawTimeout);\n\n eventHolder.unbind(\"mousemove\", onMouseMove);\n eventHolder.unbind(\"mouseleave\", onMouseLeave);\n eventHolder.unbind(\"click\", onClick);\n\n executeHooks(hooks.shutdown, [eventHolder]);\n }\n\n function setTransformationHelpers(axis) {\n // set helper functions on the axis, assumes plot area\n // has been computed already\n\n function identity(x) { return x; }\n\n var s, m, t = axis.options.transform || identity,\n it = axis.options.inverseTransform;\n\n // precompute how much the axis is scaling a point\n // in canvas space\n if (axis.direction == \"x\") {\n s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));\n m = Math.min(t(axis.max), t(axis.min));\n }\n else {\n s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));\n s = -s;\n m = Math.max(t(axis.max), t(axis.min));\n }\n\n // data point to canvas coordinate\n if (t == identity) // slight optimization\n axis.p2c = function (p) { return (p - m) * s; };\n else\n axis.p2c = function (p) { return (t(p) - m) * s; };\n // canvas coordinate to data point\n if (!it)\n axis.c2p = function (c) { return m + c / s; };\n else\n axis.c2p = function (c) { return it(m + c / s); };\n }\n\n function measureTickLabels(axis) {\n var opts = axis.options, ticks = axis.ticks || [],\n axisw = opts.labelWidth || 0, axis