!function(){function e(e){for(var n=[/for\s*?\((.*?)\)/,/\"(.*?)(\"|$)/,/\'(.*?)(\'|$)/,/\/\*(.*?)(\*\/|$)/,/\/\/.*/],r=[],t=0;t"==a.charAt(d.pos-1)&&(m=d.pos),c.push({from:r,to:m,mode:s}),r=m,s=l}if(d.pos>=t)break;d.start=d.pos}return t>r&&c.push({from:r,to:t,mode:s}),c}CodeMirror.extendMode("css",{commentStart:"/*",commentEnd:"*/",wordWrapChars:[";","\\{","\\}"],autoFormatLineBreaks:function(e){return e.replace(new RegExp("(;|\\{|\\})([^\r\n])","g"),"$1\n$2")}}),CodeMirror.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",wordWrapChars:[";","\\{","\\}"],autoFormatLineBreaks:function(n){var r=0,t=this.jsonMode?function(e){return e.replace(/([,{])/g,"$1\n").replace(/}/g,"\n}")}:function(e){return e.replace(/(;|\{|\})([^\r\n;])/g,"$1\n$2")},o=e(n),a="";if(null!=o){for(var i=0;ir&&(a+=t(n.substring(r,o[i].start)),r=o[i].start),o[i].start<=r&&o[i].end>=r&&(a+=n.substring(r,o[i].end),r=o[i].end);r",wordWrapChars:[">"],autoFormatLineBreaks:function(e){for(var n=e.split("\n"),r=new RegExp("(^\\s*?<|^[^<]*?)(.+)(>\\s*?$|[^>]*?$)"),t=new RegExp("<","g"),o=new RegExp("(>)([^\r\n])","g"),a=0;a3&&(n[a]=i[1]+i[2].replace(t,"\n$&").replace(o,"$1\n$2")+i[3])}return n.join("\n")}}),CodeMirror.defineExtension("commentRange",function(e,r,t){var o=n(this,r),a=this;this.operation(function(){if(e)a.replaceRange(o.commentEnd,t),a.replaceRange(o.commentStart,r),r.line==t.line&&r.ch==t.ch&&a.setCursor(r.line,r.ch+o.commentStart.length);else{var n=a.getRange(r,t),i=n.indexOf(o.commentStart),s=n.lastIndexOf(o.commentEnd);i>-1&&s>-1&&s>i&&(n=n.substr(0,i)+n.substring(i+o.commentStart.length,s)+n.substr(s+o.commentEnd.length)),a.replaceRange(n,r,t)}})}),CodeMirror.defineExtension("autoIndentRange",function(e,n){var r=this;this.operation(function(){for(var t=e.line;t<=n.line;t++)r.indentLine(t,"smart")})}),CodeMirror.defineExtension("autoFormatRange",function(e,n){var t=this;t.operation(function(){for(var o=e.line,a=n.line;a>=o;++o){for(var i={line:o,ch:o==e.line?e.ch:0},s={line:o,ch:o==a?n.ch:null},c=r(t,o,i.ch,s.ch),d="",l=t.getRange(i,s),m=0;m1?l.slice(c[m].from,c[m].to):l;d&&(d+="\n"),d+=c[m].mode.autoFormatLineBreaks?c[m].mode.autoFormatLineBreaks(u):l}if(d!=l){for(var f=0,g=d.indexOf("\n");-1!=g;g=d.indexOf("\n",g+1),++f);t.replaceRange(d,i,s),o+=f,a+=f}}for(var o=e.line+1;a>=o;++o)t.indentLine(o,"smart");t.setSelection(e,t.getCursor(!1))})})}();