(function(n){function i(t,i){var f=n(t),u=n.extend({},n.fn.modalDialog.defaults,i),r={$dialog:null,$background:null,initialise:function(){if(!r.$dialog){var t=r.createBackground().hide(),i=r.createForeground().hide();f.append(t);f.append(i);r.$background=t;r.$dialog=i;r.showDialog()}r.loadContent();n(window).resize(r.resize);n(window).scroll(r.resize)},closeDialog:function(i){i&&i.preventDefault();u.onClose(r.$background,r.$dialog);n(window).unbind("scroll",r.resize);n(window).unbind("resize",r.resize);n(document).unbind("keyup",r.keyPressHandler);var f=function(){r.$background.hide().remove();r.$dialog.empty().hide().remove();r.$dialog=null;r.$background=null;t.modalDialogOptions=null;t.modalDialogActions=null};u.delayCloseBy?setTimeout(f,u.delayCloseBy):f()},showDialog:function(){r.$background.show();r.$dialog.show();n(document).on("keyup",r.keyPressHandler);r.$dialog.find(u.cancelSelector).click(r.closeDialog);u.onShow(r.$background,r.$dialog)},createBackground:function(){return n("<div><\/div>").addClass(u.backgroundClass).css({position:"fixed",top:0,left:0,width:"100%",height:"100%",zIndex:u.zIndex})},createForeground:function(){var n=u.dialogFrame.clone().addClass(u.foregroundClass).css({position:"absolute",zIndex:u.zIndex+1});return r.calculateSizeAndPosition(n),n},loadContent:function(){var n=r.$dialog.find(u.dialogContentContainerSelector),t=n.find("*").length>0,i=function(){t&&u.detachOnReplace?n.contents().detach():n.empty();r.calculateSizeAndPosition(r.$dialog,t,function(){u.loadContent(n)})};if(t){u.onunloadContent(n);u.contentSwitchDelay>0?setTimeout(i,u.contentSwitchDelay):i()}else i()},resize:function(){r.calculateSizeAndPosition(r.$dialog)},calculateSizeAndPosition:function(t,i,f){var h=n(window).height(),v=n(window).width(),e=u.height,o=u.width,y=u.minPadRight+u.minPadLeft,c=u.minPadTop+u.minPadBottom,l,s,p,a;o=v<o+y?v-y:o;l=u.calculateLeft(o);s=u.calculateTop(e);s=h<e+c?n(window).scrollTop()+u.minPadTop:s;e=h<e+c?h-c:e;p=t.find(u.dialogContentContainerSelector);p.css("height",e-u.contentHeightAdjust);a=function(){t.css({width:o,height:e,top:s,left:l});f&&f()};i?r.animateResize(t,o,e,l,s,a):a()},animateResize:function(n,t,i,r,f,e){var s=u.animationDuration/1e3+"s",o="top ease "+s+", left ease "+s+", height ease "+s+", width ease "+s;n.css({"-moz-transition":o,"-webkit-transition":o,"-ms-transition":o,"-o-transition":o,transition:o});var h=n.position().left,c=n.position().top,l=r-h,a=f-c;n.css({width:t,height:i,top:f,left:r});setTimeout(function(){n.css({transition:"","-webkit-transition":"","-moz-transition":"","-ms-transition":"","-o-transition":"",transform:"","-webkit-transform":"","-moz-transform":"","-ms-transform":"","-o-transform":""});e()},u.animationDuration+100)},keyPressHandler:function(n){switch(n.keyCode){case 27:r.closeDialog(n)}}};return t.modalDialogOptions=u,t.modalDialogActions&&(r.$dialog=t.modalDialogActions.$dialog,r.$background=t.modalDialogActions.$background),t.modalDialogActions=r,r.initialise(),t}var t=!1;n(document).ready(function(){t=!0});n.fn.modalDialog=function(r){return this.each(function(){var u=this;t?i(u,r):n(document).ready(function(){i(u,r)})})};n.fn.closeDialog=function(t){return this.each(function(){var i=this;return i.modalDialogActions&&(i.modalDialogOptions=n.extend(i.modalDialogOptions,t),i.modalDialogActions.closeDialog()),i})};n.fn.adjustDialogSize=function(n,t){return this.each(function(){var i=this;return i.modalDialogActions&&(i.modalDialogOptions.height=t,i.modalDialogOptions.width=n,i.modalDialogActions.calculateSizeAndPosition(i.modalDialogActions.$dialog)),i})};n.fn.modalDialog.defaults={dialogFrame:n("<div class='dialogFrame'><a href='#' class='dialogClose'>Close<\/a><div class='dialogContent'><\/div><\/div>"),dialogContentContainerSelector:".dialogContent",cancelSelector:".dialogClose",backgroundClass:"dialogBg",foregroundClass:"dialogFg",zIndex:99999,height:400,width:500,topAdjust:0,leftAdjust:0,minPadTop:15,minPadBottom:15,minPadLeft:15,minPadRight:15,contentHeightAdjust:50,delayCloseBy:200,contentSwitchDelay:200,animationDuration:200,detachOnReplace:!0,calculateLeft:function(t){return(n(window).width()-t)/2+this.leftAdjust},calculateTop:function(t){return n(window).scrollTop()+(n(window).height()-t)/2+this.topAdjust},onShow:function(n,t){n.removeClass("off").addClass("on");t.removeClass("off").addClass("on")},onunloadContent:function(){},loadContent:function(){},onClose:function(n,t){n.removeClass("on").addClass("off");t.removeClass("on").addClass("off")}}})(jQuery);casenet.modalDialog=function(){var c=function(n){n.find("a.dialog").unbind("click",e).on("click",e)},e=function(n){var t=$(this);n.preventDefault();var u=t.attr("href"),r=t.data("initCallback"),f=r?h(r):null;i(u,t,f)},n=[],t={},i=function(i,r,u,e,h,c){var l=p(i),a;if(l>=0)f(l);else return a=i.indexOf("?")>=0?"&":"?",e=e||r.data("dialogWidth")||500,h=h||r.data("dialogHeight")||400,t.height=h,t.width=e,$("body").modalDialog({width:e,height:h,onunloadContent:function(t){n[n.length-1].content=t.contents();t.removeClass("in")},loadContent:function(r){var f,e;r.loading();f=function(f){r.loadComplete();var e={url:i,content:f,height:t.height,width:t.width,onLoadCallback:u};o(r,e);n.push(e)};c?f(c):i.substring(0,1)==="#"?(e=$(i).clone(!1),f(e)):$.get(i+a+"content=1").done(f)},onClose:function(){s()}})},o=function(i,r,u){t.height=r.height;t.width=r.width;i.addClass("loadable").hide().removeClass("loaded");i.find("form").off("submit").end().find("a.cancel").off("click");i.empty().append(r.content);u||l(i,r);var f=u?n.length-1:n.length;f>0&&a(i,r);setTimeout(function(){i.show().addClass("loaded")},1)},l=function(n,t){casenet.initialiseControls(n);n.find("form").submit(v);n.find("a.cancel, a.close").click(function(n){return r(n)});t.onLoadCallback&&t.onLoadCallback(n)},a=function(n){var u=n.find("article:first"),i=u.find("footer:first"),t;i&&i.length!==0||(i=$("<footer><\/footer>"),u.append(i));t=i.find(".buttonRack");t&&t.length!==0||(t=$("<div class='buttonRack'><\/div>"),i.append(t));t.find("a.back").length===0&&$("<a href='#' class='back button'>Back<\/a>").click(function(n){r(n)}).prependTo(t)},r=function(t,i){t&&t.preventDefault();n.length>1?f(n.length-2,i):(u(),i&&i())},u=function(){$("body").closeDialog();s()},s=function(){t={};n.length=0;n=[]},v=function(n){var i=$(this);return(!i.valid||i.valid())&&$.post(i.attr("action"),i.serializeArray()).done(function(n){var u,f,r,o;if(n=n||{},n.success)u=n.data,f=i.data("callback"),u&&f?h(f)(u):location=n.redirect||location.href;else if(n.errors){var e=y(i),s=$.map(n.errors.Errors,function(n){return"<li>"+n+"<\/li>"}).join(""),c=e.find("ul").empty().append(s);for($(".dialogContent").find(".input-validation-error").removeClass("input-validation-error"),r=0;r<n.errors.ErrorFields.length;r++)$("[name='"+n.errors.ErrorFields[r]+"']").addClass("input-validation-error");o=e.height();$("body").adjustDialogSize(t.width,t.height+o);$(".dialogContent").scrollTop(0)}}),n.preventDefault(),!1},h=function(n){for(var i=n.split("."),r=window,t=0,u=i.length;t<u;t++){if(t===u-1)return r[i[t]];r=r[i[t]]}},y=function(n){var t=n.data("validationSummary");return t||(t=$('<div class="validation-summary-errors"><ul><\/ul><\/div>').prependTo(n),n.data("validationSummary",t)),t},f=function(t,i){for(var f,s,h,r=n.length-1,e=-1;r>e;r--){if(r===t){f=n[t];$("body").modalDialog({height:f.height,width:f.width,loadContent:function(n){o(n,f,!0);i&&i()}});return}s=n.pop();h=$("<div><\/div>").append(s.content);h.empty()}u();i&&i()},p=function(t){if(n.length>0)for(var i=0,r=n.length-1;i<r;i++)if(n[i].url.toLowerCase()===t.toLowerCase())return i;return-1};return{register:function(n){c(n)},open:function(n,t,r,u,f){return n=n||t.attr("href"),n.lastIndexOf("http://")<0&&n.lastIndexOf("https://")<0&&n.indexOf(casenet.getSiteRoot())!==0&&(n=casenet.getSiteRoot()+n),i(n,t,r,u,f)},openWithContent:function(n,t,r,u,f){return i(n,null,t,r,u,f)},closeAll:function(){u()},closeCurrent:function(n){r(null,n)},getStackIndex:function(){return n.length-1},popStackToIndex:function(n,t){f(n,t)}}}()