function dependentSnippet(n,t,i){this.Code=t;this.Name=n;this.Type=i}function dependentSnippetIdRef(n,t){this.id=n;this.Type=t}function snippetCompiler(n,t,i,r,u,f,e,o,s,h,c,l,a){this.myCodeMirror;this.ctnr;this.pntrElem;this.typeName;this.saveOnSuccess;this.initialize=function(){var u,f;this.dependentSnippets=[];this.dependentSnippetIdRefs=[];this.contentChanged;u=this;this.ctnr=$("#"+n);f=this.ctnr.find(".ceTextArea").get(0);this.myCodeMirror=CodeMirror.fromTextArea(f,{lineNumbers:!0,gutters:["gutter"],matchBrackets:!0,mode:"text/x-csharp"});this.myCodeMirror.getDoc().setValue(r);this.myCodeMirror.on("change",function(n,t){u.onContentChange(u,n,t)});t&&this.ctnr.find(".outputTab").addClass("hidden");this.pntrElem=document.createElement("img");this.pntrElem.src=e;this.pntrElem.width=8;o&&this.ctnr.find(".chkReleaseMode").prop("checked",!0);s&&this.ctnr.find(".chkUseRoslyn").prop("checked",!0);t&&this.ctnr.find(".btnCompile").html("Compile");h?t?this.ctnr.find(".btnSave").click(function(){u.compile(!0)}):this.ctnr.find(".btnSave").click(function(){u.save()}):this.ctnr.find(".btnSave").addClass("hidden");this.ctnr.find(".btnCompile").click(function(){u.compile()});this.ctnr.find(".errorSummary").click(function(){u.showTab("errorsTab")});t&&this.ctnr.find('[href="#outputTab"]').closest("li").hide();t&&this.ctnr.find(".compilerOptionsText").addClass("hidden");this.typeName=i;this.saveOnSuccess=!1;this.ctnr.find("a.buildStatusTab").attr("href","#"+n+"buildStatusTab");this.ctnr.find("a.errorsTab").attr("href","#"+n+"errorsTab");this.ctnr.find("a.warningsTab").attr("href","#"+n+"warningsTab");this.ctnr.find("a.outputTab").attr("href","#"+n+"outputTab");this.ctnr.find("div.buildStatusTab").attr("id",n+"buildStatusTab");this.ctnr.find("div.errorsTab").attr("id",n+"errorsTab");this.ctnr.find("div.warningsTab").attr("id",n+"warningsTab");this.ctnr.find("div.outputTab").attr("id",n+"outputTab")};this.onContentChange=function(n){n.contentChanged!=null&&n.contentChanged(n.getSnippet())};this.compileSync=function(n){return this.compile(n,null,null,!0)};this.getSnippet=function(){return this.myCodeMirror.getValue()};this.compile=function(n,i,r,u){var e=!1,o=!1,s,f;if(this.ctnr.find(".chkReleaseMode").is(":checked")==!0&&(e=!0),this.ctnr.find(".chkUseRoslyn").is(":checked")==!0&&(o=!0),s=this,f={snippet:this.myCodeMirror.getValue(),releaseMode:e,useRoslyn:o,typeName:this.typeName,saveOnSuccess:n,snippetType:c,ownerId:l,id:a,compileOnly:t,dependentSnippets:this.dependentSnippets,dependentSnippetIdRefs:this.dependentSnippetIdRefs},this.busyStart(),u==!0)return this.callSync(f);this.callAsync(f,i,r)};this.callAsync=function(n,t,i){var r=this;$.ajax({type:"POST",url:u,contentType:"application/json",data:JSON.stringify(n),error:function(n){r.unexpected(n);i!=null&&i(n)},success:function(n){r.compileSuccess(n);t!=null&&t(n)}})};this.callSync=function(n){me=this;var t;return $.ajax({type:"POST",url:u,contentType:"application/json",data:JSON.stringify(n),error:function(n){me.unexpected(n);t=n},success:function(n){me.compileSuccess(n);t=n},async:!1}),t};this.lastSavedId=0;this.save=function(){var n=this,t=this.myCodeMirror.getValue(),i=t.split("\n").length;$.ajax({type:"POST",url:f,dataType:"json",data:{snippet:t,lastSavedId:this.lastSavedId},error:function(t){n.unexpected(t)},success:function(t){n.saveSuccess(t,i);n.lastSavedId=t}})};this.saveSuccess=function(n,t){var i=170+t*14,r,u;i>500&&(i=500);this.lastSavedId=n;r="http://volatileread.com/utilitylibrary/snippetcompiler?id="+n;u="#SNIPCOMP#"+n+"#H"+i+"#R"+(o?1:0)+(s?"#V6":"");this.ctnr.find(".permLink").html(r+"
Embed Key: "+u);this.ctnr.find(".permLinkSec").removeClass("hidden")};this.unexpected=function(){this.busyEnd();this.ctnr.find(".buildStatus").html("OOPS.. An unexpected error has occured. Please try again")};this.busyStart=function(){this.clear();this.ctnr.find(".tab-content").addClass("busyPanel");this.ctnr.find(".btnCompile").attr("disabled","disabled")};this.busyEnd=function(){this.ctnr.find(".tab-content").removeClass("busyPanel");this.ctnr.find(".btnCompile").removeAttr("disabled")};this.clear=function(){this.ctnr.find(".buildErrList").html("");this.ctnr.find(".warnList").html("");this.ctnr.find(".output").html("");this.ctnr.find(".buildSummary").html("");this.ctnr.find(".errorSummary").html("")};this.compileSuccess=function(n){var i,e;this.busyEnd();var r="",u="",f="",o=this.ctnr.find(".buildErrList"),s=this.ctnr.find(".warnList"),h=this.ctnr.find(".output");for(i=0;i"+n.SandboxerErrors[i].Message+"";if(n.Errors.length>0){for(i=0;i"+n.Errors[i].Message+"";this.ctnr.find(".errorSummary").html(n.Errors.length+(n.Errors.length==1?" Error":" Errors"));this.ctnr.find(".buildSummary").html("Build Failed. Please correct the errors and try again");this.showTab("errorsTab")}else this.ctnr.find(".buildSummary").html("Compilation Succeded!"),this.ctnr.find(".errorSummary").html("0 Errors"),n.SandboxerErrors.length==0?t?this.showTab("buildStatusTab"):this.showTab("outputTab"):this.showTab("errorsTab");for(i=0;i"+n.Warnings[i].Message+"";for(i=0;i"+n.Output[i].Message+"";o.html(r);s.html(u);h.html(f);e=this;this.ctnr.find(".errItem, .warnItem").click(function(){e.setGutter($(this).attr("l"),$(this).attr("c"))})};this.createMarker=function(){return this.pntrElem};this.showTab=function(t){var i=n+t;this.ctnr.find("[href=#"+i+"]").tab("show")};this.setGutter=function(n){this.myCodeMirror.focus();this.myCodeMirror.setCursor(n-1,0);this.myCodeMirror.setGutterMarker(n-1,"gutter",this.createMarker())}}(function(n){if(typeof exports=="object"&&typeof module=="object")module.exports=n();else{if(typeof define=="function"&&define.amd)return define([],n);this.CodeMirror=n()}})(function(){"use strict";function t(n,i){var r,e,u,f;if(!(this instanceof t))return new t(n,i);this.options=i=i?gr(i):{};gr(fv,i,!1);go(i);r=i.value;typeof r=="string"&&(r=new tt(r,i.mode));this.doc=r;e=this.display=new dp(n,r);e.wrapper.CodeMirror=this;kc(this);bc(this);i.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");i.autofocus&&!vo&&it(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new kh};s&&h<11&&setTimeout(kt(lt,this,!0),20);ob(this);ed();gi(this);this.curOp.forceUpdate=!0;ly(this,r);i.autofocus&&!vo||vi()==e.input?setTimeout(kt(th,this),20):ye(this);for(u in ir)ir.hasOwnProperty(u)&&ir[u](this,i[u],fh);for(gc(this),f=0;f