function UniversalModal(o,a){"use strict";function l(o){"function"==typeof toggleLoadingWidget&&toggleLoadingWidget(o)}function n(o,a){var l=e.$modal.find(o);l.html(a||""),l.toggleClass("hide",!a)}function t(o){d("body").on("click",o,function(o){o.preventDefault();var a=d(this);e.open(function(o){var a={};for(var l in i){var n=i[l],t=o.attr("data-"+l)||("function"==typeof n?n(o):n);"string"==typeof t&&("true"===t?t=!0:"false"===t&&(t=!1)),null!=t&&(a[l]=t)}return a.url=o.attr("data-url")||o.attr("href"),a}(a))})}var e=this,d=jQuery;e.open=function(o){o.url?(r=d(''),o.body=r):r=null,n(".modal-body",o.body);var a,t,i,f,u=r?(a=o,i=d.Deferred(),l(!0),a.body=e.$modal.find(".modal-body iframe").attr("src",(t=a.url,/[?&]modal=/i.test(t)||(t+=(-1===t.indexOf("?")?"?":"&")+"modal=1"),t)).one("load",function(){l(!1),"function"==typeof a.complete&&e.addCompletionHandler(a.complete),i.resolve()}),i.promise()):d.when();f=o.size,e.$modal.removeClass(function(){var o="";return d.each(m,function(a,l){o+=" modal-"+l}),o}),f&&(-1!==d.inArray(f,m)?e.$modal.addClass("modal-"+f):console.error("Invalid size specified for modal: "+f+". Valid sizes: "+m.join(", "))),function(o,a){var l=e.$modal.find(".modal-header h3").empty();if(a){var n=d("").addClass("icon-"+a);l.append(n)}l.html()&&o&&(o=" "+o),l.append(o)}(o.title,o.icon),n(".modal-footer",o.footer),u.done(function(){e.$modal.modal(o)})},e.done=function(){if(e.$modal.is(":visible")){var o=r||e.$modal;d.proxy(o,"trigger","pageDone").apply(o,arguments),r=null}},e.containsFrame=function(o){return o=void 0===o?frameElement:o,!!e.$modal.find(d(o)).length},e.addCompletionHandler=function(){var o,a;switch(arguments.length){case 1:a=arguments[0];break;case 2:o=arguments[0],a=arguments[1];break;default:console.error("Invalid number of arguments for addCompletionHandler")}o?o.click(function(){e.addCompletionHandler(a)}):(e.$modal.one("pageDone.external",function(o,l){a(l)}),e.$modal.one("hidden",function(){e.$modal.off("pageDone.external")}))};var i={backdrop:null,keyboard:null,size:null,icon:null,complete:null,title:function(o){return o.attr("title")||o.text()}},r=null,m=["mini","small","large","full"];e.$modal=d("#"+o),e.$modal.length||(e.$modal=d('').attr("id",o)),e.$modal.hide(),e.$modal.on("pageDone",function(){e.$modal.modal("hide")}),d(function(){d("body").append(e.$modal),a&&t(a)})}function isFrameInGlobalModal(){try{return parent.modal.containsFrame(frameElement)}catch(o){return!1}}function closeGlobalModalFromChild(){parent&&parent.modal&&$.proxy(parent.modal,"done").apply(modal,arguments)}function openGlobalModal(o,a){a.url=o,modal.open(a)}function addGlobalModalCompletionHandler(){$.proxy(modal,"addCompletionHandler").apply(modal,arguments)}var modal=new UniversalModal("global_modal","a.global-modal, button.global-modal"),$globalModal=modal.$modal;