"use strict";jse.libs.theme.modal=jse.libs.theme.modal||{},function(e){$("body");var t=[],n=null,a={yes:{name:jse.core.lang.translate("yes","buttons"),type:"success",class:"btn-success"},no:{name:jse.core.lang.translate("no","buttons"),type:"fail",class:"btn-default"},abort:{name:jse.core.lang.translate("abort","buttons"),type:"fail",class:"btn-default"},ok:{name:jse.core.lang.translate("ok","buttons"),type:"success",class:"btn-success"},close:{name:jse.core.lang.translate("close","buttons"),type:"fail",class:"btn-default"}},r=function(e,t){var n=e.filter("form").add(e.find("form")),a={},r=[];return n.length&&n.each((function(){var e=$(this);if(t){var n=$.Deferred();r.push(n),e.trigger("validator.validate",{deferred:n})}a[e.attr("name")||e.attr("id")||"form_"+(new Date).getTime()*Math.random()]=jse.libs.form.getData(e)})),$.when.apply(void 0,r).then((function(){return a}),(function(){return a})).promise()},o=function(e){jse.libs.theme.modal[e]?n=jse.libs.theme.modal[e]:jse.core.debug.error("[MODAL] Can't set modal: \""+e+"\". Extension doesn't exist")},l=function(e,a,o,l,s){var i=$.Deferred(),c=i.promise(),f="iframe"===s,m={title:a,dialogClass:o,modal:!0,buttons:l||[],closeOnEscape:!0,theme:s||null,storeTheme:!1,closeX:!0,closeOnOuter:!0},u=$.Deferred();e=e||{};var d=function(e,n){var a=[],r=$.Deferred();if(e.noTheme)r.resolve("");else if(n)r.resolve('');else if(e.storeTheme&&t[e.theme])r.resolve(t[e.theme]);else{try{a=$(e.theme)}catch(e){}a.length?r.resolve(a.html()):jse.libs.xhr.ajax({url:e.theme,dataType:"html"}).done((function(n){e.sectionSelector&&(n=$(n).find(e.sectionSelector).html()),e.storeTheme&&(t[e.theme]=n),r.resolve(n)})).fail((function(){r.reject()}))}return r}(e=$.extend({},m,e),f).done((function(t){u.done((function(e){i.resolve(e)})).fail((function(e){i.reject(e)})),e.theme=$(Mustache.render(t,e)),jse.libs.theme.helpers.setupWidgetAttr(e.theme),e.theme=$("
").append(e.theme.clone()).html(),function(e,t){if(e.buttons){var a=n.getRejectHandler,o=n.getResolveHandler;$.each(e.buttons,(function(n,l){e.buttons[n].event=function(){var e=$(this);if("function"==typeof l.callback&&!l.callback.apply(e,[]))return!1;switch(l.type){case"fail":a(e,t,r);break;case"success":o(e,t,r);break;case"link":location.href=l.value}}}))}}(e,u);var a=$.extend({},e);e=function(e){var t=n.getMapper(),a={};return $.each(e,(function(e,n){if(!1===t[e])return!0;if(void 0===t[e])a[e]=n;else if("function"==typeof t[e]){var r=t[e](e,n);a[r[0]]=r[1]}else a[t[e]]=n})),a}(e),n.openLayer(e,u,r,a),c.close=function(e){u.close(e)}})).fail((function(){i.reject({error:"Theme not found"})}));return c.close||(c.close=function(){d.reject("Closed after opening")}),c};e.error=function(e){return l(e,jse.core.lang.translate("errors","labels"),"error_dialog",[],"#modal_alert")},e.warn=function(e){return l(e,jse.core.lang.translate("warning","labels"),"warn_dialog",[],"#modal_alert")},e.info=function(e){return l(e,jse.core.lang.translate("info","labels"),"info_dialog",[],"#modal_alert")},e.success=function(e){return l(e,jse.core.lang.translate("success","labels"),"success_dialog",[],"#modal_alert")},e.alert=function(e){return l(e,jse.core.lang.translate("hint","labels"),"",[a.close],"#modal_alert")},e.prompt=function(e){return l(e,jse.core.lang.translate("prompt","labels"),"prompt_dialog",[a.ok,a.abort],"#modal_prompt")},e.confirm=function(e){return l(e,jse.core.lang.translate("confirm","labels"),"confirm_dialog",[a.yes,a.no],"#modal_alert")},e.iframe=function(e){if(!e.convertModal)return l(e,jse.core.lang.translate("info","labels"),"iframe_layer",[],"iframe");jse.libs.theme.modal[e.convertModal](e,jse.core.lang.translate("info","labels"),e.convertModal+"_dialog",[],"#modal_alert")},e.custom=l,e.setLayer=o,e.finalizeLayer=function(e,t){var n=e.find("form");n.length&&n.on("submit",(function(e){e.preventDefault()})),window.gambio&&window.gambio.widgets&&window.gambio.widgets.init&&window.gambio.widgets.init(e)};var s=Date.now;n=jse.core.registry.get("mainModalLayer");var i=setInterval((function(){if(void 0!==jse.libs.theme.modal[n]&&(o(n),clearInterval(i)),Date.now-s>1e4)throw new Error("Modal extension was not loaded: "+n)}),300)}(jse.libs.theme.modal),jse.libs.template=jse.libs.template||{},jse.libs.template.modal=jse.libs.theme.modal;