function DiscoExpressionEditor(n,t,i){this.host=n,this.hostDocument=null,this.hostContainer=null,this.validateUrl=t,this.expression=i?i:"",this.expressionHtml="",this.expressionException=null,this.hostInited=null,this.expressionValidated=null,this.expressionExceptionChanged=null}DiscoExpressionEditor.prototype={hostInit:function(){var n=this,i=function(){n.hostDocument=n.host.contents(),n.hostContainer=n.hostDocument.find("body"),n.host.focus(function(){n.setException(null),n.renderExpression()}),n.hostContainer.bind("paste",function(){setTimeout(function(){n.setExpression(n.hostContainer.text())},50)}),n.expression&&n.setExpression(n.expression),n.hostInited&&n.hostInited()},t=function(){n.host.unbind("load",t),n.host.load(i),n.host[0].contentWindow.document.designMode="on"};n.host.load(t)},parseExpression:function(n,t){for(var u=n.split("\n"),f,r,i=0;i',f.length>=t.PositionColumn?(r+=f.substr(0,t.PositionColumn-1),r+=''+f.substr(t.PositionColumn-1,1)+"<\/span>",r+=f.substr(t.PositionColumn)):(r+=f,r+=' <\/span>'),r+="<\/p>",u[i]=r):u[i]='

'+u[i].trim()+"<\/p>";return u.join("")},setExpression:function(n){this.expression=n,this.setException(null),this.renderExpression()},getExpression:function(){var n=null;return $("p",this.hostContainer).each(function(){n==null?n=$(this).text():n+="\n"+$(this).text()}),this.expression=n,n},setException:function(n){this.expressionException!==n&&(this.expressionException=n,this.expressionExceptionChanged&&this.expressionExceptionChanged(n))},renderExpression:function(){this.expressionHtml=this.parseExpression(this.expression,this.expressionException),this.hostContainer.html(this.expressionHtml)},validateExpression:function(){var n=this,t=n.getExpression();$.getJSON(n.validateUrl,{Expression:t},function(t){n.setException(t),n.renderExpression(),n.expressionValidated&&n.expressionValidated(t.ExpressionValid,t)})}},String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}; //@ sourceMappingURL=Disco-ExpressionEditor.min.js.map