/** * SyntaxHighlighter * http://alexgorbatchev.com/SyntaxHighlighter * * SyntaxHighlighter is donationware. If you are using it, please donate. * http://alexgorbatchev.com/SyntaxHighlighter/donate.html * * @version * 3.0.83 (July 02 2010) * * @copyright * Copyright (C) 2004-2010 Alex Gorbatchev. * * @license * Dual licensed under the MIT and GPL licenses. */ var XRegExp; if (XRegExp) throw Error("can't load XRegExp twice in the same frame"); (function() { function r(f, e) { if (!XRegExp.isRegExp(f)) throw TypeError("type RegExp expected"); var a = f._xregexp; f = XRegExp(f.source, t(f) + (e || "")); if (a) f._xregexp = { source: a.source, captureNames: a.captureNames ? a.captureNames.slice(0) : null }; return f } function t(f) { return (f.global ? "g" : "") + (f.ignoreCase ? "i" : "") + (f.multiline ? "m" : "") + (f.extended ? "x" : "") + (f.sticky ? "y" : "") } function B(f, e, a, b) { var c = u.length, d, h, g; v = true; try { for (; c--;) { g = u[c]; if (a & g.scope && (!g.trigger || g.trigger.call(b))) { g.pattern.lastIndex = e; if ((h = g.pattern.exec(f)) && h.index === e) { d = { output: g.handler.call(b, h, a), match: h }; break } } } } catch (i) { throw i } finally { v = false } return d } function p(f, e, a) { if (Array.prototype.indexOf) return f.indexOf(e, a); for (a = a || 0; a < f.length; a++) if (f[a] === e) return a; return -1 } XRegExp = function(f, e) { var a = [], b = XRegExp.OUTSIDE_CLASS, c = 0, d, h; if (XRegExp.isRegExp(f)) { if (e !== undefined) throw TypeError("can't supply flags when constructing one RegExp from another"); return r(f) } if (v) throw Error("can't call the XRegExp constructor within token definition functions"); e = e || ""; for (d = { hasNamedCapture: false, captureNames: [], hasFlag: function(g) { return e.indexOf(g) > -1 }, setFlag: function(g) { e += g } }; c < f.length;) if (h = B(f, c, b, d)) { a.push(h.output); c += h.match[0].length || 1 } else if (h = n.exec.call(z[b], f.slice(c))) { a.push(h[0]); c += h[0].length } else { h = f.charAt(c); if (h === "[") b = XRegExp.INSIDE_CLASS; else if (h === "]") b = XRegExp.OUTSIDE_CLASS; a.push(h); c++ } a = RegExp(a.join(""), n.replace.call(e, w, "")); a._xregexp = { source: f, captureNames: d.hasNamedCapture ? d.captureNames : null }; return a }; XRegExp.version = "1.5.0"; XRegExp.INSIDE_CLASS = 1; XRegExp.OUTSIDE_CLASS = 2; var C = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, w = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, A = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, v = false, u = [], n = { exec: RegExp.prototype.exec, test: RegExp.prototype.test, match: String.prototype.match, replace: String.prototype.replace, split: String.prototype.split }, x = n.exec.call(/()??/, "")[1] === undefined, D = function() { var f = /^/g; n.test.call(f, ""); return !f.lastIndex }(), y = function() { var f = /x/g; n.replace.call("x", f, ""); return !f.lastIndex }(), E = RegExp.prototype.sticky !== undefined, z = {}; z[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; z[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; XRegExp.addToken = function(f, e, a, b) { u.push({ pattern: r(f, "g" + (E ? "y" : "")), handler: e, scope: a || XRegExp.OUTSIDE_CLASS, trigger: b || null }) }; XRegExp.cache = function(f, e) { var a = f + "/" + (e || ""); return XRegExp.cache[a] || (XRegExp.cache[a] = XRegExp(f, e)) }; XRegExp.copyAsGlobal = function(f) { return r(f, "g") }; XRegExp.escape = function(f) { return f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") }; XRegExp.execAt = function(f, e, a, b) { e = r(e, "g" + (b && E ? "y" : "")); e.lastIndex = a = a || 0; f = e.exec(f); return b ? f && f.index === a ? f : null : f }; XRegExp.freezeTokens = function() { XRegExp.addToken = function() { throw Error("can't run addToken after freezeTokens") } }; XRegExp.isRegExp = function(f) { return Object.prototype.toString.call(f) === "[object RegExp]" }; XRegExp.iterate = function(f, e, a, b) { for (var c = r(e, "g"), d = -1, h; h = c.exec(f);) { a.call(b, h, ++d, f, c); c.lastIndex === h.index && c.lastIndex++ } if (e.global) e.lastIndex = 0 }; XRegExp.matchChain = function(f, e) { return function a(b, c) { var d = e[c].regex ? e[c] : { regex: e[c] }, h = r(d.regex, "g"), g = [], i; for (i = 0; i < b.length; i++) XRegExp.iterate(b[i], h, function(k) { g.push(d.backref ? k[d.backref] || "" : k[0]) }); return c === e.length - 1 || !g.length ? g : a(g, c + 1) }([f], 0) }; RegExp.prototype.apply = function(f, e) { return this.exec(e[0]) }; RegExp.prototype.call = function(f, e) { return this.exec(e) }; RegExp.prototype.exec = function(f) { var e = n.exec.apply(this, arguments), a; if (e) { if (!x && e.length > 1 && p(e, "") > -1) { a = RegExp(this.source, n.replace.call(t(this), "g", "")); n.replace.call(f.slice(e.index), a, function() { for (var c = 1; c < arguments.length - 2; c++) if (arguments[c] === undefined) e[c] = undefined }) } if (this._xregexp && this._xregexp.captureNames) for (var b = 1; b < e.length; b++) if (a = this._xregexp.captureNames[b - 1]) e[a] = e[b]; !D && this.global && !e[0].length && this.lastIndex > e.index && this.lastIndex-- } return e }; if (!D) RegExp.prototype.test = function(f) { (f = n.exec.call(this, f)) && this.global && !f[0].length && this.lastIndex > f.index && this.lastIndex--; return !!f }; String.prototype.match = function(f) { XRegExp.isRegExp(f) || (f = RegExp(f)); if (f.global) { var e = n.match.apply(this, arguments); f.lastIndex = 0; return e } return f.exec(this) }; String.prototype.replace = function(f, e) { var a = XRegExp.isRegExp(f), b, c; if (a && typeof e.valueOf() === "string" && e.indexOf("${") === -1 && y) return n.replace.apply(this, arguments); if (a) { if (f._xregexp) b = f._xregexp.captureNames } else f += ""; if (typeof e === "function") c = n.replace.call(this, f, function() { if (b) { arguments[0] = new String(arguments[0]); for (var d = 0; d < b.length; d++) if (b[d]) arguments[0][b[d]] = arguments[d + 1] } if (a && f.global) f.lastIndex = arguments[arguments.length - 2] + arguments[0].length; return e.apply(null, arguments) }); else { c = this + ""; c = n.replace.call(c, f, function() { var d = arguments; return n.replace.call(e, C, function(h, g, i) { if (g) switch (g) { case "$": return "$"; case "&": return d[0]; case "`": return d[d.length - 1].slice(0, d[d.length - 2]); case "'": return d[d.length - 1].slice(d[d.length - 2] + d[0].length); default: i = ""; g = +g; if (!g) return h; for (; g > d.length - 3;) { i = String.prototype.slice.call(g, -1) + i; g = Math.floor(g / 10) } return (g ? d[g] || "" : "$") + i } else { g = +i; if (g <= d.length - 3) return d[g]; g = b ? p(b, i) : -1; return g > -1 ? d[g + 1] : h } }) }) } if (a && f.global) f.lastIndex = 0; return c }; String.prototype.split = function(f, e) { if (!XRegExp.isRegExp(f)) return n.split.apply(this, arguments); var a = this + "", b = [], c = 0, d, h; if (e === undefined || +e < 0) e = Infinity; else { e = Math.floor(+e); if (!e) return [] } for (f = XRegExp.copyAsGlobal(f); d = f.exec(a);) { if (f.lastIndex > c) { b.push(a.slice(c, d.index)); d.length > 1 && d.index < a.length && Array.prototype.push.apply(b, d.slice(1)); h = d[0].length; c = f.lastIndex; if (b.length >= e) break } f.lastIndex === d.index && f.lastIndex++ } if (c === a.length) { if (!n.test.call(f, "") || h) b.push("") } else b.push(a.slice(c)); return b.length > e ? b.slice(0, e) : b }; XRegExp.addToken(/\(\?#[^)]*\)/, function(f) { return n.test.call(A, f.input.slice(f.index + f[0].length)) ? "" : "(?:)" }); XRegExp.addToken(/\((?!\?)/, function() { this.captureNames.push(null); return "(" }); XRegExp.addToken(/\(\?<([$\w]+)>/, function(f) { this.captureNames.push(f[1]); this.hasNamedCapture = true; return "(" }); XRegExp.addToken(/\\k<([\w$]+)>/, function(f) { var e = p(this.captureNames, f[1]); return e > -1 ? "\\" + (e + 1) + (isNaN(f.input.charAt(f.index + f[0].length)) ? "" : "(?:)") : f[0] }); XRegExp.addToken(/\[\^?]/, function(f) { return f[0] === "[]" ? "\\b\\B" : "[\\s\\S]" }); XRegExp.addToken(/^\(\?([imsx]+)\)/, function(f) { this.setFlag(f[1]); return "" }); XRegExp.addToken(/(?:\s+|#.*)+/, function(f) { return n.test.call(A, f.input.slice(f.index + f[0].length)) ? "" : "(?:)" }, XRegExp.OUTSIDE_CLASS, function() { return this.hasFlag("x") }); XRegExp.addToken(/\./, function() { return "[\\s\\S]" }, XRegExp.OUTSIDE_CLASS, function() { return this.hasFlag("s") }) })(); typeof exports != "undefined" && (exports.XRegExp = XRegExp); var SyntaxHighlighter = function() { function r(a, b) { a.className.indexOf(b) != -1 || (a.className += " " + b) } function t(a) { return a.indexOf("highlighter_") == 0 ? a : "highlighter_" + a } function B(a) { return e.vars.highlighters[t(a)] } function p(a, b, c) { if (a == null) return null; var d = c != true ? a.childNodes : [a.parentNode], h = { "#": "id", ".": "className" }[b.substr(0, 1)] || "nodeName", g, i; g = h != "nodeName" ? b.substr(1) : b.toUpperCase(); if ((a[h] || "").indexOf(g) != -1) return a; for (a = 0; d && a < d.length && i == null; a++) i = p(d[a], b, c); return i } function C(a, b) { var c = {}, d; for (d in a) c[d] = a[d]; for (d in b) c[d] = b[d]; return c } function w(a, b, c, d) { function h(g) { g = g || window.event; if (!g.target) { g.target = g.srcElement; g.preventDefault = function() { this.returnValue = false } } c.call(d || window, g) } a.attachEvent ? a.attachEvent("on" + b, h) : a.addEventListener(b, h, false) } function A(a, b) { var c = e.vars.discoveredBrushes, d = null; if (c == null) { c = {}; for (var h in e.brushes) { var g = e.brushes[h]; d = g.aliases; if (d != null) { g.brushName = h.toLowerCase(); for (g = 0; g < d.length; g++) c[d[g]] = h } } e.vars.discoveredBrushes = c } d = e.brushes[c[a]]; d == null && b != false && window.alert(e.config.strings.alert + (e.config.strings.noBrush + a)); return d } function v(a, b) { for (var c = a.split("\n"), d = 0; d < c.length; d++) c[d] = b(c[d], d); return c.join("\n") } function u(a, b) { if (a == null || a.length == 0 || a == "\n") return a; a = a.replace(/' + c + "" }); return a } function n(a, b) { a.split("\n"); for (var c = "", d = 0; d < 50; d++) c += " "; return a = v(a, function(h) { if (h.indexOf("\t") == -1) return h; for (var g = 0; (g = h.indexOf("\t")) != -1;) h = h.substr(0, g) + c.substr(0, b - g % b) + h.substr(g + 1, h.length); return h }) } function x(a) { return a.replace(/^\s+|\s+$/g, "") } function D(a, b) { if (a.index < b.index) return -1; else if (a.index > b.index) return 1; else if (a.length < b.length) return -1; else if (a.length > b.length) return 1; return 0 } function y(a, b) { function c(k) { return k[0] } for (var d = null, h = [], g = b.func ? b.func : c; (d = b.regex.exec(a)) != null;) { var i = g(d, b); if (typeof i == "string") i = [new e.Match(i, d.index, b.css)]; h = h.concat(i) } return h } function E(a) { var b = /(.*)((>|<).*)/; return a.replace(e.regexLib.url, function(c) { var d = "", h = null; if (h = b.exec(c)) { c = h[1]; d = h[2] } return '' + c + "" + d }) } function z() { for (var a = document.getElementsByTagName("script"), b = [], c = 0; c < a.length; c++) a[c].type == "syntaxhighlighter" && b.push(a[c]); return b } function f(a) { a = a.target; var b = p(a, ".syntaxhighlighter", true); a = p(a, ".container", true); var c = document.createElement("textarea"); if (!(!a || !b || p(a, "textarea"))) { B(b.id); r(b, "source"); for (var d = a.childNodes, h = [], g = 0; g < d.length; g++) h.push(d[g].innerText || d[g].textContent); h = h.join("\r"); c.appendChild(document.createTextNode(h)); a.appendChild(c); c.focus(); c.select(); w(c, "blur", function() { c.parentNode.removeChild(c); b.className = b.className.replace("source", "") }) } } if (typeof require != "undefined" && typeof XRegExp == "undefined") XRegExp = require("XRegExp").XRegExp; var e = { defaults: { "class-name": "", "first-line": 1, "pad-line-numbers": false, highlight: null, title: null, "smart-tabs": true, "tab-size": 4, gutter: true, toolbar: false, "quick-code": true, collapse: false, "auto-links": true, light: false, "html-script": false }, config: { space: " ", useScriptTags: true, bloggerMode: false, stripBrs: false, tagName: "pre", strings: { expandSource: "expand source", help: "?", alert: "SyntaxHighlighter\n\n", noBrush: "Can't find brush for: ", brushNotHtmlScript: "Brush wasn't configured for html-script option: ", aboutDialog: 'About SyntaxHighlighter
SyntaxHighlighter
version 3.0.83 (July 02 2010)
http://alexgorbatchev.com/SyntaxHighlighter
JavaScript code syntax highlighter.
Copyright 2004-2010 Alex Gorbatchev.
If you like this script, please donate to
keep development active!
' } }, vars: { discoveredBrushes: null, highlighters: {} }, brushes: {}, regexLib: { multiLineCComments: /\/\*[\s\S]*?\*\//gm, singleLineCComments: /\/\/.*$/gm, singleLinePerlComments: /#.*$/gm, doubleQuotedString: /"([^\\"\n]|\\.)*"/g, singleQuotedString: /'([^\\'\n]|\\.)*'/g, multiLineDoubleQuotedString: new XRegExp('"([^\\\\"]|\\\\.)*"', "gs"), multiLineSingleQuotedString: new XRegExp("'([^\\\\']|\\\\.)*'", "gs"), xmlComments: /(<|<)!--[\s\S]*?--(>|>)/gm, url: /\w+:\/\/[\w-.\/?%&=:@;]*/g, phpScriptTags: { left: /(<|<)\?=?/g, right: /\?(>|>)/g }, aspScriptTags: { left: /(<|<)%=?/g, right: /%(>|>)/g }, scriptScriptTags: { left: /(<|<)\s*script.*?(>|>)/gi, right: /(<|<)\/\s*script\s*(>|>)/gi } }, toolbar: { getHtml: function(a) { function b(i, k) { return e.toolbar.getButtonHtml(i, k, e.config.strings[k]) } for (var c = '
', d = e.toolbar.items, h = d.list, g = 0; g < h.length; g++) c += (d[h[g]].getHtml || b)(a, h[g]); c += "
"; return c }, getButtonHtml: function(a, b, c) { return '' + c + "" }, handler: function(a) { var b = a.target, c = b.className || ""; b = B(p(b, ".syntaxhighlighter", true).id); var d = function(h) { return (h = RegExp(h + "_(\\w+)").exec(c)) ? h[1] : null }("command"); b && d && e.toolbar.items[d].execute(b); a.preventDefault() }, items: { list: ["expandSource", "help"], expandSource: { getHtml: function(a) { if (a.getParam("collapse") != true) return ""; var b = a.getParam("title"); return e.toolbar.getButtonHtml(a, "expandSource", b ? b : e.config.strings.expandSource) }, execute: function(a) { a = document.getElementById(t(a.id)); a.className = a.className.replace("collapsed", "") } }, help: { execute: function() { var a = "scrollbars=0"; a += ", left=" + (screen.width - 500) / 2 + ", top=" + (screen.height - 250) / 2 + ", width=500, height=250"; a = a.replace(/^,/, ""); a = window.open("", "_blank", a); a.focus(); var b = a.document; b.write(e.config.strings.aboutDialog); b.close(); a.focus() } } } }, findElements: function(a, b) { var c; if (b) c = [b]; else { c = document.getElementsByTagName(e.config.tagName); for (var d = [], h = 0; h < c.length; h++) d.push(c[h]); c = d } c = c; d = []; if (e.config.useScriptTags) c = c.concat(z()); if (c.length === 0) return d; for (h = 0; h < c.length; h++) { for (var g = c[h], i = a, k = c[h].className, j = void 0, l = {}, m = new XRegExp("^\\[(?(.*?))\\]$"), s = new XRegExp("(?[\\w-]+)\\s*:\\s*(?[\\w-%#]+|\\[.*?\\]|\".*?\"|'.*?')\\s*;?", "g"); (j = s.exec(k)) != null;) { var o = j.value.replace(/^['"]|['"]$/g, ""); if (o != null && m.test(o)) { o = m.exec(o); o = o.values.length > 0 ? o.values.split(/\s*,\s*/) : [] } l[j.name] = o } g = { target: g, params: C(i, l) }; g.params.brush != null && d.push(g) } return d }, highlight: function(a, b) { var c = this.findElements(a, b), d = null, h = e.config; if (c.length !== 0) for (var g = 0; g < c.length; g++) { b = c[g]; var i = b.target, k = b.params, j = k.brush, l; if (j != null) { if (k["html-script"] == "true" || e.defaults["html-script"] == true) { d = new e.HtmlScript(j); j = "htmlscript" } else if (d = A(j)) d = new d; else continue; l = i.innerHTML; if (h.useScriptTags) { l = l; var m = x(l), s = false; if (m.indexOf("") == o - 3) { m = m.substring(0, o - 3); s = true } l = s ? m : l } if ((i.title || "") != "") k.title = i.title; k.brush = j; d.init(k); b = d.getDiv(l); if ((i.id || "") != "") b.id = i.id; i.parentNode.replaceChild(b, i) } } }, all: function(a) { w(window, "load", function() { e.highlight(a) }) } }; e.all = e.all; e.highlight = e.highlight; e.Match = function(a, b, c) { this.value = a; this.index = b; this.length = a.length; this.css = c; this.brushName = null }; e.Match.prototype.toString = function() { return this.value }; e.HtmlScript = function(a) { function b(j, l) { for (var m = 0; m < j.length; m++) j[m].index += l } var c = A(a), d, h = new e.brushes.Xml, g = this, i = "getDiv getHtml init".split(" "); if (c != null) { d = new c; for (var k = 0; k < i.length; k++)(function() { var j = i[k]; g[j] = function() { return h[j].apply(h, arguments) } })(); d.htmlScript == null ? window.alert(e.config.strings.alert + (e.config.strings.brushNotHtmlScript + a)) : h.regexList.push({ regex: d.htmlScript.code, func: function(j) { for (var l = j.code, m = [], s = d.regexList, o = j.index + j.left.length, F = d.htmlScript, q, G = 0; G < s.length; G++) { q = y(l, s[G]); b(q, o); m = m.concat(q) } if (F.left != null && j.left != null) { q = y(j.left, F.left); b(q, j.index); m = m.concat(q) } if (F.right != null && j.right != null) { q = y(j.right, F.right); b(q, j.index + j[0].lastIndexOf(j.right)); m = m.concat(q) } for (j = 0; j < m.length; j++) m[j].brushName = c.brushName; return m } }) } }; e.Highlighter = function() {}; e.Highlighter.prototype = { getParam: function(a, b) { var c = this.params[a]; c = c == null ? b : c; var d = { "true": true, "false": false }[c]; return d == null ? c : d }, create: function(a) { return document.createElement(a) }, findMatches: function(a, b) { var c = []; if (a != null) for (var d = 0; d < a.length; d++) if (typeof a[d] == "object") c = c.concat(y(b, a[d])); return this.removeNestedMatches(c.sort(D)) }, removeNestedMatches: function(a) { for (var b = 0; b < a.length; b++) if (a[b] !== null) for (var c = a[b], d = c.index + c.length, h = b + 1; h < a.length && a[b] !== null; h++) { var g = a[h]; if (g !== null) if (g.index > d) break; else if (g.index == c.index && g.length > c.length) a[b] = null; else if (g.index >= c.index && g.index < d) a[h] = null } return a }, figureOutLineNumbers: function(a) { var b = [], c = parseInt(this.getParam("first-line")); v(a, function(d, h) { b.push(h + c) }); return b }, isLineHighlighted: function(a) { var b = this.getParam("highlight", []); if (typeof b != "object" && b.push == null) b = [b]; a: { a = a.toString(); var c = void 0; for (c = c = Math.max(c || 0, 0); c < b.length; c++) if (b[c] == a) { b = c; break a } b = -1 } return b != -1 }, getLineHtml: function(a, b, c) { a = ["line", "number" + b, "index" + a, "alt" + (b % 2 == 0 ? 1 : 2).toString()]; this.isLineHighlighted(b) && a.push("highlighted"); b == 0 && a.push("break"); return '
' + c + "
" }, getLineNumbersHtml: function(a, b) { var c = "", d = a.split("\n").length, h = parseInt(this.getParam("first-line")), g = this.getParam("pad-line-numbers"); if (g == true) g = (h + d - 1).toString().length; else if (isNaN(g) == true) g = 0; for (var i = 0; i < d; i++) { var k = b ? b[i] : h + i, j; if (k == 0) j = e.config.space; else { j = g; for (var l = k.toString(); l.length < j;) l = "0" + l; j = l } a = j; c += this.getLineHtml(i, k, a) } return c }, getCodeLinesHtml: function(a, b) { a = x(a); var c = a.split("\n"); this.getParam("pad-line-numbers"); var d = parseInt(this.getParam("first-line")); a = ""; for (var h = this.getParam("brush"), g = 0; g < c.length; g++) { var i = c[g], k = /^( |\s)+/.exec(i), j = null, l = b ? b[g] : d + g; if (k != null) { j = k[0].toString(); i = i.substr(j.length); j = j.replace(" ", e.config.space) } i = x(i); if (i.length == 0) i = e.config.space; a += this.getLineHtml(g, l, (j != null ? '' + j + "" : "") + i) } return a }, getTitleHtml: function(a) { return a ? "" + a + "" : "" }, getMatchesHtml: function(a, b) { function c(l) { return (l = l ? l.brushName || g : g) ? l + " " : "" } for (var d = 0, h = "", g = this.getParam("brush", ""), i = 0; i < b.length; i++) { var k = b[i], j; if (!(k === null || k.length === 0)) { j = c(k); h += u(a.substr(d, k.index - d), j + "plain") + u(k.value, j + k.css); d = k.index + k.length + (k.offset || 0) } } h += u(a.substr(d), c() + "plain"); return h }, getHtml: function(a) { var b = "", c = ["syntaxhighlighter"], d; if (this.getParam("light") == true) this.params.toolbar = this.params.gutter = false; className = "syntaxhighlighter"; this.getParam("collapse") == true && c.push("collapsed"); if ((gutter = this.getParam("gutter")) == false) c.push("nogutter"); c.push(this.getParam("class-name")); c.push(this.getParam("brush")); a = a.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g, "").replace(/\r/g, " "); b = this.getParam("tab-size"); if (this.getParam("smart-tabs") == true) a = n(a, b); else { for (var h = "", g = 0; g < b; g++) h += " "; a = a.replace(/\t/g, h) } a = a; a: { b = a = a; h = /|<br\s*\/?>/gi; if (e.config.bloggerMode == true) b = b.replace(h, "\n"); if (e.config.stripBrs == true) b = b.replace(h, ""); b = b.split("\n"); h = /^\s*/; g = 1E3; for (var i = 0; i < b.length && g > 0; i++) { var k = b[i]; if (x(k).length != 0) { k = h.exec(k); if (k == null) { a = a; break a } g = Math.min(k[0].length, g) } } if (g > 0) for (i = 0; i < b.length; i++) b[i] = b[i].substr(g); a = b.join("\n") } if (gutter) d = this.figureOutLineNumbers(a); b = this.findMatches(this.regexList, a); b = this.getMatchesHtml(a, b); b = this.getCodeLinesHtml(b, d); if (this.getParam("auto-links")) b = E(b); typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.match(/MSIE/) && c.push("ie"); return b = '
' + (this.getParam("toolbar") ? e.toolbar.getHtml(this) : "") + '' + this.getTitleHtml(this.getParam("title")) + "" + (gutter ? '" : "") + '
' + this.getLineNumbersHtml(a) + "
' + b + "
" }, getDiv: function(a) { if (a === null) a = ""; this.code = a; var b = this.create("div"); b.innerHTML = this.getHtml(a); this.getParam("toolbar") && w(p(b, ".toolbar"), "click", e.toolbar.handler); this.getParam("quick-code") && w(p(b, ".code"), "dblclick", f); return b }, init: function(a) { this.id = "" + Math.round(Math.random() * 1E6).toString(); e.vars.highlighters[t(this.id)] = this; this.params = C(e.defaults, a || {}); if (this.getParam("light") == true) this.params.toolbar = this.params.gutter = false }, getKeywords: function(a) { a = a.replace(/^\s+|\s+$/g, "").replace(/\s+/g, "|"); return "\\b(?:" + a + ")\\b" }, forHtmlScript: function(a) { this.htmlScript = { left: { regex: a.left, css: "script" }, right: { regex: a.right, css: "script" }, code: new XRegExp("(?" + a.left.source + ")(?.*?)(?" + a.right.source + ")", "sgi") } } }; return e }(); typeof exports != "undefined" && (exports.SyntaxHighlighter = SyntaxHighlighter);