var setupLoginModal,setDefaultItem;window.Handlebars.registerHelper("select",function(n,t){var i=$("<span>").html(t.fn(this));return i.find("select")[0].selectedIndex=-1,i.find("option").prop("selected",!1),i.find("option").removeAttr("selected"),i.html(i.html().replace(/selected=\"\"/gi,"")),i.find("[value="+n+"]").attr({selected:"selected"}),i.html()}),window.Handlebars.registerHelper("ifCond",function(n,t,i){return n===t?i.fn(this):i.inverse(this)}),window.Handlebars.registerHelper("ifExpr",function(expression,n){var res=!1;with(this)res=eval(expression);return res?n.fn(this):n.inverse(this)}),Handlebars.registerHelper("each",function(n,t){for(var r="",i=0,u=n.length;i<u;i++)r+=t.fn(n[i]);return r}),function(n){n.fn.splitter=function(t){return t=t||{},this.each(function(){function b(t){i.outline&&(c=c||u.clone(!1).insertAfter(f)),n("html").addClass("unselectable"),s.css("-webkit-user-select","none"),u.addClass(i.activeClass),f._posSplit=f[0][i.pxSplit]-t[i.eventPos],n(".pane-overlay").addClass("in-split"),n(document).bind("mousemove",y).bind("mouseup",p)}function y(n){var t=f._posSplit+n[i.eventPos];i.outline?(t=Math.max(0,Math.min(t,r._DA-u._DA)),u.css(i.origin,t)):l(t)}function p(t){var e,r,o;u.removeClass(i.activeClass),e=f._posSplit+t[i.eventPos],i.outline&&(c.remove(),c=null,l(e)),setTimeout(function(){n("html").removeClass("unselectable")},700),s.css("-webkit-user-select","text"),n(".pane-overlay").removeClass("in-split"),r=fiddle.getEditors();for(o in r)r[o].refresh();n(document).unbind("mousemove",y).unbind("mouseup",p)}function l(t){t=Math.max(r._DA-((v?e._init:e._max)||e._max),Math.min(t,r._DA-u._DA-e._min)),t=Math.max(t,f._min),t=Math.min(t,f._max),u._DA=u[0][i.pxSplit],u.css(i.origin,t).css(i.fixed,r._DF),f.css(i.origin,0).css(i.split,t).css(i.fixed,r._DF),e.css(i.origin,t+u._DA).css(i.split,r._DA-u._DA-t).css(i.fixed,r._DF),n.browser&&n.browser.msie||s.trigger("splitter-resize")}function o(n){for(var r=0,i=1;i<arguments.length;i++)r+=Math.max(parseInt(n.css(arguments[i]))||0,0);return r}var c,v=!0,k=(t.splitHorizontal?"h":t.splitVertical?"v":t.type)||"v",i=n.extend({activeClass:"active",pxPerKey:8,tabIndex:0,accessKey:""},{v:{keyLeft:39,keyRight:37,cursor:"e-resize",splitbarClass:"vsplitbar",outlineClass:"voutline",type:"v",eventPos:"pageX",origin:"left",split:"width",pxSplit:"offsetWidth",side1:"Left",side2:"Right",fixed:"height",pxFixed:"offsetHeight",side3:"Top",side4:"Bottom"},h:{keyTop:40,keyBottom:38,cursor:"n-resize",splitbarClass:"hsplitbar",outlineClass:"houtline",type:"h",eventPos:"pageY",origin:"top",split:"height",pxSplit:"offsetHeight",side1:"Top",side2:"Bottom",fixed:"width",pxFixed:"offsetWidth",side3:"Left",side4:"Right"}}[k],t),r=n(this),w,u,h,a;n(r).css("position")!="absolute"&&n(r).css("position","relative");var s=n(">*",r[0]).css({position:"absolute","z-index":"1","-moz-outline-style":"none"}),f=n(s[0]),e=n(s[1]);f.append('<div class="pane-overlay"><\/div>'),e.append('<div class="pane-overlay"><\/div>'),w=n('<a href="javascript:void(0)"><\/a>').attr({accessKey:i.accessKey,tabIndex:i.tabIndex,title:i.splitbarClass}).bind(n.browser&&n.browser.opera?"click":"focus",function(){this.focus(),u.addClass(i.activeClass)}).bind("keydown",function(n){var t=n.which||n.keyCode,r=t==i["key"+i.side1]?1:t==i["key"+i.side2]?-1:0;r&&l(f[0][i.pxSplit]+r*i.pxPerKey,!1)}).bind("blur",function(){u.removeClass(i.activeClass)}),u=n(s[2]||"<div><\/div>").insertAfter(f).css("z-index","100").append(w).attr({"class":i.splitbarClass,unselectable:"on"}).css({position:"absolute","user-select":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none"}).bind("mousedown",b),/^(auto|default|)$/.test(u.css("cursor"))&&u.css("cursor",i.cursor),u._DA=u[0][i.pxSplit],r._PBF=n.boxModel?o(r,"border"+i.side3+"Width","border"+i.side4+"Width"):0,r._PBA=n.boxModel?o(r,"border"+i.side1+"Width","border"+i.side2+"Width"):0,f._pane=i.side1,e._pane=i.side2,n.each([f,e],function(){this._min=i["min"+this._pane]||o(this,"min-"+i.split),this._max=i["max"+this._pane]||o(this,"max-"+i.split)||9999,this._init=i["size"+this._pane]===!0?parseInt(n.curCSS(this[0],i.split)):i["size"+this._pane]}),h=f._init,isNaN(e._init)||(h=r[0][i.pxSplit]-r._PBA-e._init-u._DA),i.cookie&&(n.cookie||alert("jQuery.splitter(): jQuery cookie plugin required"),a=parseInt(n.cookie(i.cookie)),isNaN(a)||(h=a),n(window).bind("unload",function(){var t=String(u.css(i.origin));n.cookie(i.cookie,t,{expires:i.cookieExpires||365,path:i.cookiePath||document.location.pathname})})),isNaN(h)&&(h=Math.round((r[0][i.pxSplit]-r._PBA-u._DA)/2)),i.anchorToWindow?(r._hadjust=o(r,"borderTopWidth","borderBottomWidth","marginBottom"),r._hmin=Math.max(o(r,"minHeight"),20),n(window).bind("resize",function(){var i=r.offset().top,u=n(window).height();r.css("height",Math.max(u-i-r._hadjust,r._hmin)-6+"px"),n.browser&&n.browser.msie||r.trigger("splitter-resize")}).trigger("resize")):!i.resizeToWidth||n.browser&&n.browser.msie||n(window).bind("resize",function(){r.trigger("splitter-resize")}),r.bind("splitter-resize",function(n,t){if(n.target!=this){v=!1;return}(r._DF=r[0][i.pxFixed]-r._PBF,r._DA=r[0][i.pxSplit]-r._PBA,r._DF<=0||r._DA<=0)||l(isNaN(t)?i.sizeRight||i.sizeBottom?r._DA-e[0][i.pxSplit]-u._DA:f[0][i.pxSplit]:t)}).trigger("splitter-resize",[h])})}}(jQuery);var widgetType="interactive",prevProjectTypeValue="",notificationTimeout1=null,notificationTimeout2=null,displayNotification=function(n,t,i,r){var f,u;r=r||4e3,f=i!=null?i:$(".status-line"),f.find(".alert").remove(),u=$("<div/>").addClass("alert alert-"+t),u.append(n),f.append(u),notificationTimeout1=setTimeout(function(){u.fadeOut(1e3)},r),notificationTimeout2=setTimeout(function(){u.remove()},r+1e3)},loadReadonlyFiddle=function(n){return(CodeRunner.fetchCode(),!collaboration.fromTogetherJS&&tryConfirmUpdateOptions())?($.ajax({url:$(n).data("href"),dataType:"json",contentType:"application/json; charset=utf-8",success:function(t){var i,r;fiddle.setFiddleId(t.OriginalFiddleId,!0),fiddle.setLanguage(LanguagesDict[t.Language]),i=ProjectTypesDict[t.ProjectType],fiddle.setProjectType(i),r={},i=="Mvc"||i=="Nancy"?r=t.MvcCodeBlock:r[i]=t.CodeBlock,fiddle.clearPackages(),fiddle.setCodeBlocks(r,!0),$("#fiddle-name").val(t.Name),fiddle.setOwnerId(t.UserId),fiddle.setOwnerName(t.UserDisplayName),fiddle.render(),fiddle.isInUserFiddles(t.IsInUserFiddles),fiddle.refreshActionButtons(),fiddle.initMeta(t.IsInUserFavorites,!1),$(".counter.favorite span").text(t.FavoriteCount),$(".counter.fork span").text(t.ForkCount),$(".counter.view span").text(t.ViewCount),$(n).closest(".dropdown-menu").parent().removeClass("open")}}),!1):!1},loginCallback=null;loginRequest=function(){var n=$("#login-modal button[type=submit]");n.button("loading")},loginResponse=function(n){var t=$("#login-modal button[type=submit]");t.button("reset"),n.IsSuccess?($("#login-modal").modal("hide"),env.auth=!0,loginCallback()):(n.ErrorCode==0?displayNotification("This account is inactive. Make sure you activate it through link sent to your email during Sign Up.","danger",$("#login-message")):n.ErrorCode==1?displayNotification("Incorrect email or password.","danger",$("#login-message")):displayNotification("Your account is deleted. If you think it's an accident, please contact us.","danger",$("#login-message")),$("#login-modal").validate().resetForm()),loginCallback=null},setupLoginModal=function(n){loginCallback=n,$("#login-modal input").off("keydown").keydown(function(n){if(n.which==13){if(!$("#CodeForm").valid())return;submitLocalLogin()}}),setPopupStatus=function(t){t&&$.ajax({url:"/Account/RemoteLogin",type:"POST",data:JSON.stringify({loginTypeId:loginType}),dataType:"json",contentType:"application/json; charset=utf-8",success:function(t){if($("#login-message").empty(),t.IsSuccess)$("#login-modal").modal("hide"),env.auth=!0,n();else{var i=t.ErrorCode==0?"This account is inactive.  Make sure you activate it through link sent to your email during Sign Up.":t.ErrorCode==1?"This account doesn't exist.  Please sign up first.":"Your account is deleted. If you think it's an accident, please contact us.";displayNotification(i,"danger",$("#login-message"))}}})},$(".remote-login").off("click").click(function(){return loginWindow=window.open($(this).attr("href"),"_blank","menubar=no,location=no,resizable=no,scrollbars=no,status=no,width=800,height=500"),loginType=$(this).data("type"),!1}),$("#login-modal").css("display","block");var t=($(document).height()-$("#login-modal .modal-dialog").height())/2-20;$("#login-modal").css("display",null);$("#login-modal").on("show.bs.modal",function(){$("#login-modal .modal-dialog").css("margin-top",t)});$("#login-modal").modal("show")},setDefaultItem=function(n){var i,t,r;n.length>1||(i=n.parent(),t=$(".btn-tidyup > a"),t.replaceWith(n),r=t.attr("class"),t.attr("class","show"),n.attr("class",r),i.append(t))},$(document).ready(function(){jQuery.ajaxSettings.traditional=!0,typeof Terminal!="undefined"&&Terminal.Hide(),navigator.userAgent.match(/msie/i)&&$("#togetherjs").hide();$("body").on("focus","#ProjectType",function(){prevProjectTypeValue=$(this).val()});$("body").on("change","#ProjectType",function(){var n,t;$(this).blur(),n=$(this).val(),CodeRunner.fetchCode(),collaboration.fromTogetherJS||tryConfirmUpdateOptions()?(collaboration.fromTogetherJS||(t=fiddle.getCompiler(),(n=="Script"||n=="Mvc")&&(t=CompilersDict[Compilers.Net45]),fiddle.setFiddleId(null,!0),fiddle.clearPackages(),updateCodeOnOptionsChange(fiddle.getLanguage(),n,t,function(i){fiddle.setFiddleId(i.id);var r={};n=="Mvc"||n=="Nancy"?(r={Model:i.mvcModel,View:i.mvcView,Controller:i.mvcController},$("#widget-builder").hide()):(r[n]=i.code,$("#widget-builder").show()),t!=fiddle.getCompiler()&&fiddle.setCompiler(t),fiddle.setProjectType(n),collaboration.optionsChanged({projectType:n,codeBlocks:r}),fiddle.clearPackages(),fiddle.setCodeBlocks(r,!0),$("#fiddle-name").val(""),fiddle.setOwnerId($.cookie("uid")),fiddle.render(),fiddle.initMeta(i.isInFavorites,!0)})),fiddle.saveInSession(!1)):$(this).val(prevProjectTypeValue)});$("body").on("change","#LayoutType",function(){fiddle.setLayout($(this).val()),fiddle.render(),fiddle.run()});$("body").on("focus","#Language",function(){prevLanguageValue=$(this).val()});$("body").on("change","#Language",function(){if($(this).blur(),CodeRunner.fetchCode(),collaboration.fromTogetherJS||tryConfirmUpdateOptions()){if(!collaboration.fromTogetherJS){var t=$(this).val(),n=fiddle.getProjectType(),i=fiddle.getCompiler();t=="FSharp"&&(n="Script",i=CompilersDict[Compilers.Net45]),fiddle.setFiddleId(null,!0),fiddle.clearPackages(),updateCodeOnOptionsChange(t,n,i,function(r){var f,u;fiddle.setFiddleId(r.id),fiddle.setLanguage(t),f=!1,n!=fiddle.getProjectType()&&(fiddle.setProjectType(n),f=!0),i!=fiddle.getCompiler()&&fiddle.setCompiler(i),u={},n=="Mvc"||n=="Nancy"?u={Model:r.mvcModel,View:r.mvcView,Controller:r.mvcController}:u[n]=r.code,fiddle.setLanguage(t),collaboration.optionsChanged({language:t,codeBlocks:u,projectType:n,compiler:i}),fiddle.clearPackages(),fiddle.setCodeBlocks(u,!0),$("#fiddle-name").val(""),fiddle.setOwnerId($.cookie("uid")),f?fiddle.render():fiddle.refresh(),fiddle.initMeta(r.isInFavorites,!0)})}fiddle.saveInSession(!1)}else $(this).val(prevLanguageValue)});$("body").on("focus","#Compiler",function(){prevCompilerValue=$(this).val()});$("body").on("change","#Compiler",function(){if($(this).blur(),CodeRunner.fetchCode(),collaboration.fromTogetherJS||tryConfirmUpdateOptions()){if(!collaboration.fromTogetherJS){var n=fiddle.getLanguage(),t=fiddle.getProjectType(),i=$(this).val();n!="VbNet"||isNetCore(i)||(n="CSharp"),fiddle.setFiddleId(null,!0),fiddle.clearPackages(),updateCodeOnOptionsChange(n,t,i,function(r){fiddle.setFiddleId(r.id),fiddle.setCompiler(i),fiddle.setLanguage(n);var u={};t=="Mvc"||t=="Nancy"?u={Model:r.mvcModel,View:r.mvcView,Controller:r.mvcController}:u[t]=r.code,collaboration.optionsChanged({codeBlocks:u,compiler:i}),fiddle.clearPackages(),fiddle.setCodeBlocks(u,!0),$("#fiddle-name").val(""),fiddle.setOwnerId($.cookie("uid")),fiddle.refresh(),fiddle.initMeta(r.isInFavorites,!0)})}fiddle.saveInSession(!1)}else $(this).val(prevCompilerValue)});$("a.facebook-share").click(function(){var n=$("#ShareLink").val(),t="https://facebook.com/sharer.php?u="+encodeURIComponent(n);return window.open(t,"_blank","width=626,height=436"),!1}),$("a.twitter-share").click(function(){var n=$("#ShareLink").val(),t="http://twitter.com/home?status="+encodeURIComponent(n);return window.open(t,"_blank","width=626,height=436"),!1}),$("#email-share").click(function(){return $("#share-dialog").toggleClass("show-email-form"),$("#email-form").toggleClass("show"),$(this).toggleClass("on"),!1}),$("#email-send-btn").click(function(){var t=$("#CodeForm").validate(),i=t.element("#email"),n;return i?(n=-(new Date).getTimezoneOffset()/60,setEmailStatus("Sending...",null),$.ajax({url:"/Home/SendEmail",type:"POST",data:{timeZone:n,url:$("#ShareLink").val(),email:$("#email").val()},success:function(n){setEmailStatus(n.Message,!n.IsSuccess)},error:function(){setEmailStatus("Error! Email was not send.",!0)}}),!1):(setEmailStatus("Please enter a valid email.",!0),!1)}),$("#widget-preview").click(function(){return window.open("/Widget/Preview?url=/Widget/"+$("#OriginalFiddleId").val()),!1}),$("#about-btn").click(function(){return loadReadonlyFiddle(this)}),$("#changelog-btn").click(function(){return loadReadonlyFiddle(this)}),$("#contact-btn").click(function(){return loadReadonlyFiddle(this)})}),$("#login-button").click(function(){setupLoginModal(function(){window.location.reload()})});$("body").on("click","#new-button",function(){(collaboration.fromTogetherJS||tryConfirmUpdateOptions("Current fiddle changes will be discarded.  Are you sure?"))&&(collaboration.fromTogetherJS||(fiddle.setFiddleId(null,!0),fiddle.clearPackages(),updateCodeOnOptionsChange(fiddle.getLanguage(),fiddle.getProjectType(),fiddle.getCompiler(),function(n){fiddle.setFiddleId(n.id);var t={};fiddle.getProjectType()=="Mvc"||fiddle.getProjectType()=="Nancy"?t={Model:n.mvcModel,View:n.mvcView,Controller:n.mvcController}:t[fiddle.getProjectType()]=n.code,$("#fiddle-name").val(""),$("#access-type").val(AccessTypes.Public),$($(".access-type-container button span")[0]).text(AccessTypeNames[AccessTypes.Public]),collaboration.optionsChanged({language:fiddle.getLanguage(),codeBlocks:t,projectType:fiddle.getProjectType(),compiler:fiddle.getCompiler()}),fiddle.setCodeBlocks(t,!0),fiddle.setOwnerId($.cookie("uid")),fiddle.refresh(),fiddle.isInUserFiddles(!1),fiddle.initMeta(!1,!0)})))});$("body").on("click","#save-button",function(){var n=function(t,i){var u=$("#save-button"),r,f;if(notificationTimeout1!=null&&clearTimeout(notificationTimeout1),notificationTimeout2!=null&&clearTimeout(notificationTimeout2),r=CodeRunner.getFormData(!0),$.extend(r,{AccessType:$("#access-type").val(),Name:$("#fiddle-name").val()}),env.auth&&r.Name==""){displayNotification("Please enter fiddle name","danger"),i!=null&&i();return}f=JSON.stringify(r),u.button("loading"),$.ajax({url:"/Account/SaveFiddle",type:"POST",data:f,dataType:"json",contentType:"application/json; charset=utf-8",success:function(r){r.IsSuccess?(displayNotification("Successfully saved","success"),t!=null&&t(r),fiddle.setFiddleId(r.FiddleId,!0),$("#OriginalFiddleId").val(r.FiddleId),fiddle.setCodeBlocks(fiddle.getCodeBlocks(),!0),fiddle.isInUserFiddles(!0),fiddle.refreshActionButtons(),fiddle.initMeta(!1,!1)):r.ErrorCode==401?(displayNotification("This action requires you to log in","warning"),setupLoginModal(function(){n(function(n){window.location.href=window.location.origin+"/"+n.FiddleId},function(){$("#top-navbar").load(window.location.href+" #top-navbar",function(){fiddle.refreshActionButtons(),fiddle.initMeta(!1,!0)})})})):(displayNotification(r.Message,"danger"),i!=null&&i())}}).always(function(){u.button("reset")})};n()});$("body").on("click","#fork-button",function(){var n=function(t){var i=$("#fork-button"),r,u;i.button("loading"),r=CodeRunner.getFormData(!0),u=JSON.stringify(r),$.ajax({url:"/Account/ForkFiddle",type:"POST",data:u,dataType:"json",contentType:"application/json; charset=utf-8",success:function(i){i.IsSuccess?(t!=null&&t(i),displayNotification(i.Message,"success"),fiddle.setFiddleId(i.FiddleId,!0),$("#fiddle-name").val("[Fork] "+$("#fiddle-name").val()),$("#OriginalFiddleId").val(i.FiddleId),$(".counters").find("span").each(function(){$(this).text("0")}),fiddle.isInUserFiddles(!0),fiddle.refreshActionButtons(),fiddle.initMeta(!1,!1)):i.ErrorCode==401?(displayNotification("This action requires you to log in","warning"),setupLoginModal(function(){n(function(n){window.location.href=window.location.origin+"/"+n.FiddleId})})):displayNotification(i.Message,"danger")}}).always(function(){i.button("reset")})};n()});$("body").on("click","#convert-button",function(n){var t,i;if($(".CodeMirror-lint-marker-error").length>0)return displayNotification("Convert operation failed. Please fix errors in code.","danger"),n.preventDefault(),!1;t=CodeRunner.getFormData(!0,!1),t.ToLanguage=fiddle.getLanguage()==LanguagesDict[Languages.CSharp]?LanguagesDict[Languages.VbNet]:LanguagesDict[Languages.CSharp],i=this,$.ajax({url:"Home/ConvertTo",dataType:"json",type:"POST",async:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(t),success:function(t){return t.IsSuccess?(i.href=t.fiddleUrl,!0):(n.preventDefault(),!1)}})});$("body").on("click","#tidyup-button",function(){var n=CodeRunner.getFormData(!0,!1),t=$("#fork-button").is(":hidden");$.ajax({url:"Home/TidyUp",dataType:"json",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify(n),success:function(n){if(n.IsSuccess){var i=n.FormData,r={};fiddle.getProjectType()=="Mvc"||fiddle.getProjectType()=="Nancy"?r=i.MvcCodeBlock:r[fiddle.getProjectType()]=i.CodeBlock,fiddle.setCodeBlocks(r,!1),fiddle.refresh(),fiddle.isInUserFiddles(i.IsInUserFiddles),fiddle.refreshActionButtons(),fiddle.initMeta(i.IsInUserFavorites,t)}}})});$("body").on("click","#viewil-button",function(n){n.preventDefault();var t=CodeRunner.getFormData(!0);CodeRunner.run({formData:t,showOverlay:!1},function(n){if(n.HasCompilationErrors)displayNotification("View IL operation failed. Please fix errors in code.","danger");else{var i=JSON.stringify(t);$.ajax({url:"/Home/GetIlCode",type:"POST",dataType:"json",contentType:"application/json; charset=utf-8",data:i,success:function(n){$("#viewil-dialog").resizable().draggable().show(),CodeMirror(function(n){$("#viewil-dialog .modal-body").empty().append(n),$("#viewil-dialog").css("width","1000px").css("height","600px"),$("#viewil-dialog").css({left:($(document).width()-$("#viewil-dialog").width())/2}),$("#viewil-dialog .modal-body").css("width","100%").css("height","100%")},{value:n,mode:"text/x-cil",readOnly:!0,theme:"default"})}})}})});$("body").on("click","#tidyup-menu a",function(){setDefaultItem($(this))});$("#viewil-dialog-hide").click(function(n){n.preventDefault(),$("#viewil-dialog").hide()})