-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.ultima.dialog.min.js
2 lines (2 loc) · 28.3 KB
/
jquery.ultima.dialog.min.js
1
2
// MIT, Copyright (c) 2014-2022 Alexander Kwaschny, kwaschny.net
!function(){"use strict";if(!window.UltimaDialog){if(void 0===jQuery)throw new Error("jQuery missing for UltimaDialog");if(!jQuery.isPlainObject)throw new Error("jQuery 1.4+ required for UltimaDialog");window.UltimaDialog=function(t){if(!(this instanceof UltimaDialog))return new UltimaDialog(t);this._={};var m=this,h=jQuery(window),p=jQuery("body");if(0===h.length||0===p.length)throw new Error("HTML document malformed");this.curtain=null,this.window=null,this.options={},this.options.current={},this.options.default={animations:{curtain:{show:{effect:"fadeIn",duration:400},hide:{effect:void 0,duration:void 0},deferProgression:!1},window:{show:{effect:"fadeIn",duration:400},hide:{effect:void 0,duration:void 0},deferProgression:!1,reposition:{duration:100},resize:{duration:200,rate:200}}},behavior:{ajax:{cache:!1},closeOnCurtain:!0,closeOnEscape:!0,closeOnWindow:!0,disableScrolling:"auto",preventOverflow:!0,trackSubmit:!0,translateMedia:!0,zIndexInc:!0},css:{loading:{className:"",content:void 0,x:"50%",y:"50%"},curtain:{applyFilter:void 0,className:"",isVisible:!0,zIndex:9003},window:{className:"",close:{className:""},hardMarginX:0,hardMarginY:0,x:"50%",y:"50%",zIndex:9004}},callbacks:{onOpening:void 0,onCurtainOpened:void 0,onWindowOpened:void 0,onContentReady:void 0,onContentVisible:void 0,onAsyncSuccess:void 0,onAsyncError:void 0,onSubmit:void 0,onClosing:void 0,onCurtainClosed:void 0,onWindowClosed:void 0}},this._.properties={classNames:{curtain:"UltimaDialog-curtain",window:{frame:"UltimaDialog-window",content:"UltimaDialog-window-content",close:"UltimaDialog-window-close"}},simulateBorderBox:void 0===window.atob,simulateTransparentBackground:void 0===window.atob,supportsFilter:void 0!==window.atob,supportsMedia:void 0!==window.atob},this.show=function(t){return(!jQuery.isFunction(this.options.current.callbacks.onOpening)||!1!==this.options.current.callbacks.onOpening(m))&&(this.curtain=m._.methods.createCurtain(),this.window=m._.methods.createWindow(t),this.curtain._.properties.window=this.window,this.window._.properties.curtain=this.curtain,!0===this.options.current.behavior.disableScrolling&&UltimaDialog._.methods.disableScrolling(p),p.append(this.curtain.dom.element).append(this.window.dom.element),this.window.relocate(),!0===this.options.current.animations.curtain.deferProgression?this.curtain.show(function(){jQuery.isFunction(m.options.current.callbacks.onCurtainOpened)&&m.options.current.callbacks.onCurtainOpened(m),m.window.show(m.window._.properties.isAjax),m.window.dom.loading&&m.window.dom.loading.css(m.window._.methods.calcInnerPosition(m.window.dom.loading))}):(this.curtain.show(function(){jQuery.isFunction(m.options.current.callbacks.onCurtainOpened)&&m.options.current.callbacks.onCurtainOpened(m)}),this.window.show(m.window._.properties.isAjax),this.window.dom.loading&&this.window.dom.loading.css(this.window._.methods.calcInnerPosition(this.window.dom.loading))),!0)},this.image=function(t,i){return this.show({media:"image",resource:t,attributes:i}),!0},this.video=function(t,i){return this.show({media:"video",resource:t,attributes:i}),!0},this.audio=function(t,i){return this.show({media:"audio",resource:t,attributes:i}),!0},jQuery.each(["get","post","put","delete"],function(t,o){m[o]=function(t,i,e){return this.show({method:o.toUpperCase(),url:t,data:i,settings:e}),!0}}),this.iframe=function(t,i){return this.show({media:"iframe",resource:t,attributes:i}),!0},this.close=function(t,i){return jQuery.isFunction(t)||(i=t,t=void 0),UltimaDialog._.methods.enableScrolling(p),null!==this.window&&(this.window.close(t,i),!0)},this._.methods={createCurtain:function(){var t={dom:{element:jQuery("<div></div>").hide()},close:function(t,i){var e=this;return"number"==typeof t&&(i=t,t=void 0),this._.methods.filterOff(),m.options.current.animations.curtain.hide.effect,this.dom.element.stop(!0,!0).fadeOut(void 0===i?m.options.current.animations.curtain.hide.duration:i,function(){e.dom.element.remove(),jQuery.isFunction(t)&&t(m),jQuery.isFunction(m.options.current.callbacks.onCurtainClosed)&&m.options.current.callbacks.onCurtainClosed(m)}),!0},show:function(t){var i=this;return m.options.current.animations.curtain.show.effect,this.dom.element.fadeIn(m.options.current.animations.curtain.show.duration,function(){i.isOpened=!0,jQuery.isFunction(t)&&t(m)}),!0},_:{properties:{isOpened:!1,window:void 0},methods:{filterOn:function(){if(!1===m._.properties.supportsFilter)return!1;var o=m.options.current.css.curtain.applyFilter;if("string"!=typeof o)return!1;var t=p.children(":not(script, style)");return jQuery.each(t,function(t,i){var e=jQuery(i);e.hasClass(m._.properties.classNames.curtain)||e.hasClass(m._.properties.classNames.window)||e.css({"-webkit-filter":o,filter:o})}),!0},filterOff:function(){if(!1===m._.properties.supportsFilter)return!1;if("string"!=typeof m.options.current.css.curtain.applyFilter)return!1;var t=p.children(":not(script, style)");return jQuery.each(t,function(t,i){var e=jQuery(i);e.hasClass(m._.properties.classNames.curtain)||e.hasClass(m._.properties.classNames.window)||e.css({"-webkit-filter":"",filter:""})}),!0}}}};t.dom.element.addClass(m._.properties.classNames.curtain),t.dom.element.addClass(m.options.current.css.curtain.className);var i={};return m.options.current.css.curtain.className||(i.backgroundColor="#000000",i.opacity=.67),jQuery.extend(!0,i,m.options.current.css.curtain),jQuery.extend(!0,i,{bottom:0,height:"100%",left:0,position:"fixed",right:0,top:0,width:"100%",zIndex:m.options.current.css.curtain.zIndex+(m.options.current.behavior.zIndexInc?UltimaDialog.collection.length:0)}),!1===m.options.current.css.curtain.isVisible&&(i.background=m._.properties.simulateTransparentBackground?"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)":"transparent"),t.dom.element.css(i),t._.methods.filterOn(),t.dom.element.click(function(){!0===m.options.current.behavior.closeOnCurtain&&t.isOpened&&(!1!==m.options.current.behavior.disableScrolling&&UltimaDialog._.methods.enableScrolling(p),t._.properties.window.close())}),t},createWindow:function(t,i){var d={dom:{element:jQuery("<div></div>").hide(),content:jQuery("<div></div>").css("opacity",0),loading:void 0,closeButton:void 0},_:{properties:{curtain:void 0,isAjax:!1,url:void 0},methods:{attachSubmitTracking:function(){return!i&&(d.dom.content.find("form").submit(function(t){return t.preventDefault(),UltimaDialog._.methods.submit(this)}),!0)},calcPosition:function(t,i){var e={};return void 0===t&&(t=d.dom.element.outerWidth()),void 0===i&&(i=d.dom.element.outerHeight()),/^[0-9]{1,3}%$/.test(m.options.current.css.window.x)?e.left=m.options.current.css.window.x.replace("%","")*h.width()/100-t/2:e.left=m.options.current.css.window.x,e.left<0&&(e.left=0),/^[0-9]{1,3}%$/.test(m.options.current.css.window.y)?e.top=m.options.current.css.window.y.replace("%","")*h.height()/100-i/2:e.top=m.options.current.css.window.y,e.top<0&&(e.top=0),e},calcInnerPosition:function(t){var i,e,o,n={};return/^[0-9]{1,3}%$/.test(m.options.current.css.loading.x)?n.marginLeft=m.options.current.css.loading.x.replace("%","")*d.dom.content.width()/100-t.width()/2:n.marginLeft=m.options.current.css.loading.x,n.marginLeft<0&&(n.marginLeft=0),/^[0-9]{1,3}%$/.test(m.options.current.css.loading.y)?(i=0,i+=(e=d._.methods.getPadding(d.dom.element)).bottom+e.top,i+=(o=d._.methods.getPadding(d.dom.content)).bottom+o.top,n.marginTop=m.options.current.css.loading.y.replace("%","")*(d.dom.element.innerHeight()-i)/100-t.height()/2):n.marginTop=m.options.current.css.loading.y,n.marginTop<0&&(n.marginTop=0),n},calcSize:function(t){var i=m._.methods.createWindow(t,!0).dom.element;i.css({display:"none",left:0,top:0}),p.append(i);var e,o={width:i.outerWidth(),height:i.outerHeight()};m._.properties.simulateBorderBox&&(e=d._.methods.getPadding(i),o.width-=e.left+e.right,o.height-=e.bottom+e.top),i.remove();var n=h.width();n-=m.options.current.css.window.hardMarginX;var r=h.height();return r-=m.options.current.css.window.hardMarginY,o.width>n&&(o.width=n),o.height>r&&(o.height=r),o},getPadding:function(t){var i={bottom:parseInt(t.css("padding-bottom"),10),left:parseInt(t.css("padding-left"),10),right:parseInt(t.css("padding-right"),10),top:parseInt(t.css("padding-top"),10)};return i={bottom:isNaN(i.bottom)?0:i.bottom,left:isNaN(i.left)?0:i.left,right:isNaN(i.right)?0:i.right,top:isNaN(i.top)?0:i.top}},rememberSize:function(t){var i,e={width:t.outerWidth(),height:t.outerHeight()};return m._.properties.simulateBorderBox&&(i=d._.methods.getPadding(t),e.width-=i.left+i.right,e.height-=i.bottom+i.top),t.css({"min-height":e.height,"min-width":e.width}),!0},setLoading:function(){var t,i;(m.options.current.css.loading.content||m.options.current.css.loading.className)&&((t=jQuery("<div></div>")).addClass(m.options.current.css.loading.className),i={},jQuery.extend(i,m.options.current.css.loading),delete i.content,t.css(i),"string"==typeof m.options.current.css.loading.content?t.html(m.options.current.css.loading.content):m.options.current.css.loading.content instanceof jQuery&&t.append(jQuery(m.options.current.css.loading.content).clone(!0).show()),d.dom.loading=t,d.dom.content.append(t),d.dom.content.fadeTo(m.options.current.animations.window.resize.duration,1))}}},close:function(t,i){var e=this;if(jQuery.isFunction(m.options.current.callbacks.onClosing)&&!1===m.options.current.callbacks.onClosing(m))return!1;for(var o=0;o<UltimaDialog.collection.length;o++)this===UltimaDialog.collection[o].window&&UltimaDialog.collection.splice(o,1);return m.options.current.animations.window.hide.effect,!0!==m.options.current.animations.window.deferProgression&&this._.properties.curtain.close(void 0===i?void 0:0),this.dom.element.stop(!0,!0).fadeOut(void 0===i?m.options.current.animations.window.hide.duration:0,function(){e.dom.element.remove(),jQuery.isFunction(t)&&t(m),jQuery.isFunction(m.options.current.callbacks.onWindowClosed)&&m.options.current.callbacks.onWindowClosed(m),!0===m.options.current.animations.window.deferProgression&&e._.properties.curtain.close(void 0===i?void 0:0)}),!0},reposition:function(t,i,e){void 0===t?t=0:jQuery.isFunction(t)?t=(jQuery.isFunction(i)?(e=i,i=t):e=t,0):jQuery.isFunction(e)||(e=i,i=void 0);var o=this._.methods.calcPosition();if(0<t){if(jQuery.isFunction(i)&&!1===i(this))return!1;this.dom.element.animate(o,t,e)}else{if(jQuery.isFunction(i)&&!1===i(this))return!1;this.dom.element.css(o),jQuery.isFunction(e)&&e(this)}return!0},resetContent:function(t,i){return d.dom.content.fadeTo(m.options.current.animations.window.resize.duration,0,function(){void 0!==i?d.dom.content.children(i).remove():d.dom.content.html(""),jQuery.isFunction(t)&&t(m)}),!0},resize:function(t){if(!0!==m.options.current.behavior.preventOverflow)return!1;var i=void 0!==m.options.current.css.window.width||void 0!==m.options.current.css.window.height,e=m.options.current.css.window.width;/^[0-9]{1,3}%$/.test(e)&&(e=e.replace("%","")*h.width()/100),isNaN(parseFloat(e))&&(e=this.dom.element.outerWidth());var o=m.options.current.css.window.height;/^[0-9]{1,3}%$/.test(o)&&(o=o.replace("%","")*h.height()/100),isNaN(parseFloat(o))&&(o=this.dom.element.outerHeight());var n=this._.methods.getPadding(this.dom.element),r=n.left+n.right,s=n.bottom+n.top,a=m.options.current.css.window.hardMarginX,c=m.options.current.css.window.hardMarginY,d=!1,l=h.width()-r-a;l<=e?(d=!0,e=l,this.dom.element.css("min-width",""),this.dom.content.css({overflow:"auto","max-width":e})):(this.dom.element.css("min-width",""),this.dom.content.css("max-width",""),i?this.dom.content.css("width",e-r-a):this.dom.content.css("width",""));var u=h.height()-s-c;return u<=o?(d=!0,o=u,this.dom.element.css("min-height",""),this.dom.content.css({overflow:"auto","max-height":o})):(this.dom.element.css("min-height",""),this.dom.content.css("max-height",""),i?this.dom.content.css("height",o-s-c):this.dom.content.css("height","")),this.dom.content.css("overflow",i||d?"auto":""),"auto"===m.options.current.behavior.disableScrolling&&(t||i||d?(UltimaDialog._.methods.disableScrolling(p),this.dom.content.css({"max-width":h.width()-r-a,"max-height":h.height()-s-c})):UltimaDialog._.methods.enableScrolling(p)),!0},relocate:function(t){var i=0;return!0===t&&(i=m.options.current.animations.window.reposition.duration),this.resize(),this.reposition(i),!0},setContent:function(o,t){if(!o)return d.resetContent(),!1;if(d._.properties.isAjax=!1,d._.properties.url=location.href,/^(GET|POST|PUT|DELETE)$/i.test(o.method)){d._.properties.isAjax=!0,d._.methods.setLoading();var i=jQuery.extend(!0,o.settings,{type:o.method,url:o.url,data:o.data,cache:m.options.current.behavior.ajax.cache,success:function(t){if(jQuery.isFunction(m.options.current.callbacks.onAsyncSuccess)&&!1===m.options.current.callbacks.onAsyncSuccess(m,t))return!1;d._.methods.rememberSize(d.dom.element);var i=d._.methods.calcSize(t),e=d._.methods.calcPosition(i.width,i.height);d.resetContent(function(){d.dom.loading=void 0,d.dom.element.animate({"min-height":i.height,left:e.left,top:e.top,"min-width":i.width},m.options.current.animations.window.resize.duration,function(){jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,t)||(d.dom.content.html(t),d.dom.content.find("[data-ultimadialog-id]").each(function(){var t=jQuery(this),i=t.attr("data-ultimadialog-id"),e=i+Math.floor(1e4*Math.random());t.attr("id",e).removeAttr("data-ultimadialog-id"),d.dom.content.find('[data-ultimadialog-for="'+i+'"]').attr("for",e).removeAttr("data-ultimadialog-for")}),!0===m.options.current.behavior.trackSubmit&&d._.methods.attachSubmitTracking(),d.relocate(),d.dom.content.find("img").on("load",function(){d.relocate()}),d.dom.content.fadeTo(m.options.current.animations.window.show.duration,1,function(){jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}))})})},error:function(t){var i=t.status+": "+t.statusText;jQuery.isFunction(m.options.current.callbacks.onAsyncError)&&m.options.current.callbacks.onAsyncError(m,t),d._.methods.rememberSize(d.dom.element);var e=d._.methods.calcSize(i),o=d._.methods.calcPosition(e.width,e.height);d.resetContent(function(){d.dom.loading=void 0,d.dom.element.animate({"min-height":e.height,left:o.left,top:o.top,"min-width":e.width},m.options.current.animations.window.resize.duration,function(){jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,i)||(d.dom.content.html(i),d.relocate(),d.dom.content.fadeTo(m.options.current.animations.window.show.duration,1,function(){jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}))})})}});d._.properties.url=i.url,"GET"===o.method?d.query=i.data:d.query="",jQuery.ajax(i)}else if("iframe"===o.media){var n=jQuery("<iframe>").css({height:0,opacity:0,width:0});o.attributes||(o.attributes={}),"number"!=typeof o.attributes.width&&(o.attributes.width=640),"number"!=typeof o.attributes.height&&(o.attributes.height=360),n.attr(o.attributes),n.attr("src",o.resource),d.dom.content.html(n),n.on("load",function(){if(n.unbind("load"),jQuery.isFunction(m.options.current.callbacks.onAsyncSuccess)&&!1===m.options.current.callbacks.onAsyncSuccess(m,o.resource))return!1;d._.methods.rememberSize(d.dom.element);var t=d._.methods.getPadding(d.dom.element),i={width:(isNaN(parseInt(n.attr("width"),10))?0:parseInt(n.attr("width"),10))+(m._.properties.simulateBorderBox?0:t.left+t.right),height:(isNaN(parseInt(n.attr("height"),10))?0:parseInt(n.attr("height"),10))+(m._.properties.simulateBorderBox?0:t.bottom+t.top)},e=d._.methods.calcPosition(i.width,i.height);d.resetContent(function(){d.dom.loading=void 0,d.dom.element.animate({"min-height":i.height,left:e.left,top:e.top,"min-width":i.width},m.options.current.animations.window.resize.duration,function(){n.css({height:"",opacity:1,width:""}),jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,n)||(d.relocate(),d.dom.content.fadeTo(m.options.current.animations.window.show.duration,1,function(){jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}))})},":not(iframe)")}),d._.methods.setLoading()}else if("image"===o.media){var e=jQuery("<img>");e.on("load",function(){if(jQuery.isFunction(m.options.current.callbacks.onAsyncSuccess)&&!1===m.options.current.callbacks.onAsyncSuccess(m,o.resource))return!1;d._.methods.rememberSize(d.dom.element);var t=d._.methods.calcSize(e),i=d._.methods.calcPosition(t.width,t.height);d.resetContent(function(){d.dom.loading=void 0,d.dom.element.animate({"min-height":t.height,left:i.left,top:i.top,"min-width":t.width},m.options.current.animations.window.resize.duration,function(){jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,e)||(d.dom.content.html(e),d.relocate(),d.dom.content.fadeTo(m.options.current.animations.window.show.duration,1,function(){jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}))})})}),o.attributes||(o.attributes={}),o.attributes.width?(e.css("width",o.attributes.width),delete o.attributes.width):e.css("width","auto"),o.attributes.height?(e.css("height",o.attributes.height),delete o.attributes.height):e.css("height","auto"),e.attr(o.attributes),e.attr("src",o.resource),d._.methods.setLoading()}else if("video"===o.media||"audio"===o.media){var r=jQuery("<"+o.media+">").attr("controls","controls").css({height:0,opacity:0,width:0});jQuery.isArray(o.resource)||(o.resource=[o.resource]),jQuery.each(o.resource,function(t,i){var e=jQuery("<source>").attr("src",i);r.append(e)}),r.append(jQuery("<a>").attr("href",o.resource[0]).text(o.resource[0]));var s={video:{width:640,height:360},audio:{width:320,height:30}};(h[0].ActiveXObject||"ActiveXObject"in h[0])&&(s.audio.width=580,s.audio.height=80),o.attributes||(o.attributes={}),"number"!=typeof o.attributes.width&&(o.attributes.width=s[o.media].width),"number"!=typeof o.attributes.height&&(o.attributes.height=s[o.media].height),r.attr(o.attributes),r.attr("src",o.resource),d.dom.content.html(r);var a=function(){if(jQuery.isFunction(m.options.current.callbacks.onAsyncSuccess)&&!1===m.options.current.callbacks.onAsyncSuccess(m,o.resource))return!1;d._.methods.rememberSize(d.dom.element);var t=d._.methods.getPadding(d.dom.element),i={width:(isNaN(parseInt(r.attr("width"),10))?0:parseInt(r.attr("width"),10))+(t.left+t.right),height:(isNaN(parseInt(r.attr("height"),10))?0:parseInt(r.attr("height"),10))+(t.bottom+t.top)},e=d._.methods.calcPosition(i.width,i.height);d.resetContent(function(){d.dom.loading=void 0,d.dom.element.animate({"min-height":i.height,left:e.left,top:e.top,"min-width":i.width},m.options.current.animations.window.resize.duration,function(){r.css({height:"",opacity:1,width:o.attributes.width}),jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,r)||(d.relocate(),d.dom.content.fadeTo(m.options.current.animations.window.show.duration,1,function(){jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}))})},":not("+o.media+")")};m._.properties.supportsMedia?r[0].onloadstart=a:(jQuery.isFunction(m.options.current.callbacks.onAsyncError)&&m.options.current.callbacks.onAsyncError(m,"Browser does not support the required media tag: "+o.media),setTimeout(a,200)),d._.methods.setLoading()}else if("string"==typeof o){if(!0===m.options.current.behavior.translateMedia&&-1===o.indexOf("<")){var c=new RegExp("^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._~:/?#\\[\\]@!$&'()*+,;=-]+\\.([A-Za-z0-9]+)").exec(o);if(null!==c&&2===c.length)switch(c[1].toLowerCase()){case"gif":case"jpg":case"jpeg":case"png":return d.setContent({media:"image",resource:o});case"mp3":case"ogg":return d.setContent({media:"audio",resource:o});case"mp4":case"webm":return d.setContent({media:"video",resource:o})}}if(!1!==t&&jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,o))return!1;d.dom.content.html(o),!0===m.options.current.behavior.trackSubmit&&d._.methods.attachSubmitTracking()}else{if((o=jQuery(o).clone(!0)).removeAttr("id").find("[id]").removeAttr("id"),o.find("[data-ultimadialog-id]").each(function(){var t=jQuery(this),i=t.attr("data-ultimadialog-id"),e=i+Math.floor(1e4*Math.random());t.attr("id",e).removeAttr("data-ultimadialog-id"),o.find('[data-ultimadialog-for="'+i+'"]').attr("for",e).removeAttr("data-ultimadialog-for")}),!1!==t&&jQuery.isFunction(m.options.current.callbacks.onContentReady)&&!1===m.options.current.callbacks.onContentReady(m,o))return!1;d.dom.content.html(o.show()),!0===m.options.current.behavior.trackSubmit&&d._.methods.attachSubmitTracking()}return!0},show:function(t){var i=this;return m.options.current.animations.window.show.effect,!0!==m.options.current.animations.curtain.deferProgression&&this.dom.content.css("opacity",1),this.dom.element.fadeIn(m.options.current.animations.window.show.duration,function(){jQuery.isFunction(m.options.current.callbacks.onWindowOpened)&&m.options.current.callbacks.onWindowOpened(m),!0===m.options.current.animations.curtain.deferProgression?i.dom.content.fadeTo(m.options.current.animations.window.resize.duration,1,function(){!0!==t&&jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}):!0!==t&&jQuery.isFunction(m.options.current.callbacks.onContentVisible)&&m.options.current.callbacks.onContentVisible(m)}),!0}};d.dom.element.addClass(m._.properties.classNames.window.frame),d.dom.element.addClass(m.options.current.css.window.className);var e={};return m.options.current.css.window.className||(e.backgroundColor="#FFFFFF",e.color="#000000"),jQuery.extend(!0,e,m.options.current.css.window),jQuery.extend(!0,e,{boxSizing:"border-box",position:"fixed",zIndex:m.options.current.css.window.zIndex+UltimaDialog.collection.length}),d.dom.element.css(e),d.dom.content.addClass(m._.properties.classNames.window.content),d.dom.element.append(d.dom.content),void 0!==i&&"string"==typeof t&&(t=(t=t.replace(/<script/gi,'<scriptdisabled style="display: none !important;"')).replace(/<\/script/gi,"</scriptdisabled")),d.setContent(t,void 0===i),!0===m.options.current.behavior.closeOnWindow&&(d.dom.closeButton=jQuery("<div></div>"),d.dom.closeButton.addClass(m._.properties.classNames.window.close),d.dom.closeButton.addClass(m.options.current.css.window.close.className),d.dom.closeButton.css(m.options.current.css.window.close),d.dom.closeButton.html(m.options.current.css.window.close.content),d.dom.element.prepend(d.dom.closeButton),d.dom.closeButton.click(function(){m.close()})),!0!==i&&(jQuery(document).unbind("keydown",UltimaDialog._.methods.closeOnEscape),!0===m.options.current.behavior.closeOnEscape&&jQuery(document).bind("keydown",UltimaDialog._.methods.closeOnEscape),h.resize(function(){UltimaDialog._.methods.resizePolling(m.options.current.animations.window.resize.rate)})),!0!==i&&UltimaDialog.collection.push(m),d},mergeOptions:function(t,i){m._.methods.translateOptions(i);var e={};return jQuery.extend(!0,e,t),jQuery.extend(!0,e,i),void 0===e.animations.curtain.hide.effect&&(e.animations.curtain.hide.effect=e.animations.curtain.show.effect),void 0===e.animations.curtain.hide.duration&&(e.animations.curtain.hide.duration=e.animations.curtain.show.duration),void 0===e.animations.window.hide.effect&&(e.animations.window.hide.effect=e.animations.window.show.effect),void 0===e.animations.window.hide.duration&&(e.animations.window.hide.duration=e.animations.window.show.duration),e},translateOptions:function(t){var i,e,o,n,r;for(var s in t)if(t.hasOwnProperty(s)&&0===s.indexOf("->")){for(e=(i=(i=s.replace("->","")).split(".")).length,r=n={},o=0;o<e-1;o++)r[i[o]]={},r=r[i[o]];r[i[e-1]]=t[s],delete t[s],jQuery.extend(!0,t,n)}return t}},this.options.current=this._.methods.mergeOptions(this.options.default,UltimaDialog.options),this.options.current=this._.methods.mergeOptions(this.options.current,t)},UltimaDialog.collection=[],UltimaDialog.options={},UltimaDialog._={properties:{},methods:{}},UltimaDialog._.properties.resizePollingTimer=null,UltimaDialog._.methods.closeByIndex=function(t,i,e){"boolean"==typeof i&&(e=i,i=void 0);var o=UltimaDialog.collection[t];return!!o&&("number"!=typeof i&&(i=-1),o.close(function(){UltimaDialog._.methods.closeByIndex(t+i,e)},e),!0)},UltimaDialog._.methods.closeOnEscape=function(t){27===t.which&&UltimaDialog.close(!1)},UltimaDialog._.methods.disableScrolling=function(t){return t.css({overflow:"hidden","-webkit-backface-visibility":"hidden"}),!0},UltimaDialog._.methods.enableScrolling=function(t){return t.css({overflow:"","-webkit-backface-visibility":""}),!0},UltimaDialog._.methods.isOptions=function(t){if(!jQuery.isPlainObject(t))return!1;if(t.animations&&jQuery.isPlainObject(t.animations)||t.behavior&&jQuery.isPlainObject(t.behavior)||t.css&&jQuery.isPlainObject(t.css)||t.callbacks&&jQuery.isPlainObject(t.callbacks))return!0;for(var i in t)if(t.hasOwnProperty(i)&&/^->[a-z]+(\.[a-z]+)?/.test(i))return!0;return!1},UltimaDialog._.methods.resizePolling=function(t){clearTimeout(UltimaDialog._.properties.resizePollingTimer),UltimaDialog._.properties.resizePollingTimer=setTimeout(UltimaDialog.relocate,t)},UltimaDialog._.methods.submit=function(t,i){var e=jQuery(t);if(!e.is("form"))return!1;var o=UltimaDialog.collection.length;if(0===o)return!1;var n,r=UltimaDialog.collection[o-1],s=e.attr("action"),a="";"string"==typeof s&&(a=0<=(n=s.lastIndexOf("?"))?s.substring(0,n):s),0===a.length&&(s=r.window._.properties.url,r.window.query&&(jQuery.isPlainObject(r.window.query)?s+="?"+jQuery.param(r.window.query):0<r.window.query.length&&(s+="?"+r.window.query)));var c=e.attr("method");/^(GET|POST|PUT|DELETE)$/i.test(c)||(c="GET");var d=e.serialize();return jQuery.isFunction(r.options.current.callbacks.onSubmit)&&!1===r.options.current.callbacks.onSubmit(r,d)||r.window.resetContent(function(){r.window.setContent({method:c.toUpperCase(),url:s,data:d,settings:i},!1),r.window.dom.loading&&r.window.dom.loading.css(r.window._.methods.calcInnerPosition(r.window.dom.loading))}),!1},UltimaDialog.close=function(t,i){if("boolean"==typeof t&&(i=t,t=void 0),void 0===t&&0<UltimaDialog.collection.length&&(t=UltimaDialog.collection.length-1),"number"!=typeof t||isNaN(t))return!1;var e=UltimaDialog.get(isNaN(parseInt(t))?UltimaDialog.collection.length:parseInt(t));return null!==e&&(e.close(!1===i?0:void 0),!0)},UltimaDialog.closeAll=function(t,i){var e=UltimaDialog.collection.length;if(0<e){if(!0===i)return UltimaDialog._.methods.closeByIndex(e-1,-1,t),!0;for(var o=e-1;0<=o;--o)UltimaDialog.collection[o].close(!1===t?0:void 0);return!0}return!1},UltimaDialog.get=function(t){var i=UltimaDialog.collection.length;return 0===i?null:(void 0===t&&(t=i-1),"string"==typeof t&&(t=parseInt(t,10)),"number"!=typeof t||isNaN(t)||i<=t?null:UltimaDialog.collection[t])},UltimaDialog.isOpened=function(t){return null!==UltimaDialog.get(t)},UltimaDialog.relocate=function(t){var i=UltimaDialog.get(t);return null!==i&&(i.window.relocate(!0),!0)},UltimaDialog.setOptions=function(t,i,e){"number"!=typeof t&&("boolean"==typeof i&&(e=i),i=t,t=void 0);var o=UltimaDialog.get(t);return null!==o&&(o.options.current=!0===e?o._.methods.mergeOptions({},i):o._.methods.mergeOptions(o.options.current,i),!0)},jQuery.UltimaDialog={options:{}},jQuery.UltimaDialog.show=function(t,i){var e={};jQuery.extend(!0,e,jQuery.UltimaDialog.options),jQuery.extend(!0,e,i);var o=new UltimaDialog(e);return o.show(t),o},jQuery.each(["image","video","audio","iframe"],function(t,r){jQuery.UltimaDialog[r]=function(t,i,e){if(void 0===t)return null;2===arguments.length&&UltimaDialog._.methods.isOptions(i)&&(e=i,i=void 0);var o={};jQuery.extend(!0,o,jQuery.UltimaDialog.options),jQuery.extend(!0,o,e);var n=new UltimaDialog(o);return n[r](t,i),n}}),jQuery.each(["get","post","put","delete"],function(t,a){jQuery.UltimaDialog[a]=function(t,i,e,o){if(void 0===t)return null;var n=arguments.length;3===n?jQuery.isFunction(e)||(o=e,e=void 0):2===n&&(jQuery.isFunction(i)?(e=i,i=void 0):UltimaDialog._.methods.isOptions(i)&&(o=i,i=void 0));var r={};jQuery.extend(!0,r,jQuery.UltimaDialog.options),jQuery.extend(!0,r,o),void 0!==e&&(jQuery.isPlainObject(r.callbacks)||(r.callbacks={}),r.callbacks.onAsyncSuccess=e,r.callbacks.onAsyncError=e);var s=new UltimaDialog(r);return s[a](t,i),s}}),jQuery.fn.UltimaDialog=function(t){var i={};return jQuery.extend(!0,i,jQuery.UltimaDialog.options),jQuery.extend(!0,i,t),this.each(function(){new UltimaDialog(i).show(this)}),this},UltimaDialog.version="0.95.7"}}();