var dp={sh:{Toolbar:{},Utils:{},RegexLib:{},Brushes:{},Strings:{AboutDialog:'<html><head><title>About...</title></head><body class="dp-about"><table cellspacing="0"><tr><td class="copy"><p class="title">dp.SyntaxHighlighter</div><div class="para">Version: {V}</p><p><a href="http://www.dreamprojections.com/syntaxhighlighter/?ref=about" target="_blank">http://www.dreamprojections.com/syntaxhighlighter</a></p>&copy;2004-2007 Alex Gorbatchev.</td></tr><tr><td class="footer"><input type="button" class="close" value="OK" onClick="window.close()"/></td></tr></table></body></html>'},ClipboardSwf:null,Version:"1.5.1"}};dp.SyntaxHighlighter=dp.sh;dp.sh.Toolbar.Commands={ExpandSource:{label:"+ expand source",check:function(a){return a.collapse},func:function(b,a){b.parentNode.removeChild(b);a.div.className=a.div.className.replace("collapsed","")}},ViewSource:{label:"view plain",func:function(b,a){var d=dp.sh.Utils.FixForBlogger(a.originalCode).replace(/</g,"&lt;");var c=window.open("","_blank","width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=0");c.document.write('<textarea style="width:99%;height:99%">'+d+"</textarea>");c.document.close()}},CopyToClipboard:{label:"copy to clipboard",check:function(){return window.clipboardData!=null||dp.sh.ClipboardSwf!=null},func:function(b,a){var d=dp.sh.Utils.FixForBlogger(a.originalCode).replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");if(window.clipboardData){window.clipboardData.setData("text",d)}else{if(dp.sh.ClipboardSwf!=null){var c=a.flashCopier;if(c==null){c=document.createElement("div");a.flashCopier=c;a.div.appendChild(c)}c.innerHTML='<embed src="'+dp.sh.ClipboardSwf+'" FlashVars="clipboard='+encodeURIComponent(d)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>'}}alert("The code is in your clipboard now")}},PrintSource:{label:"print",func:function(b,a){var c=document.createElement("IFRAME");var d=null;c.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(c);d=c.contentWindow.document;dp.sh.Utils.CopyStyles(d,window.document);d.write('<div class="'+a.div.className.replace("collapsed","")+' printing">'+a.div.innerHTML+"</div>");d.close();c.contentWindow.focus();c.contentWindow.print();alert("Printing...");document.body.removeChild(c)}},About:{label:"?",func:function(a){var b=window.open("","_blank","dialog,width=300,height=150,scrollbars=0");var c=b.document;dp.sh.Utils.CopyStyles(c,window.document);c.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));c.close();b.focus()}}};dp.sh.Toolbar.Create=function(b){var d=document.createElement("DIV");d.className="tools";for(var a in dp.sh.Toolbar.Commands){var c=dp.sh.Toolbar.Commands[a];if(c.check!=null&&!c.check(b)){continue}d.innerHTML+='<a href="#" onclick="dp.sh.Toolbar.Command(\''+a+"',this);return false;\">"+c.label+"</a>"}return d};dp.sh.Toolbar.Command=function(a,b){var c=b;while(c!=null&&c.className.indexOf("dp-highlighter")==-1){c=c.parentNode}if(c!=null){dp.sh.Toolbar.Commands[a].func(b,c.highlighter)}};dp.sh.Utils.CopyStyles=function(a,d){var b=d.getElementsByTagName("link");for(var c=0;c<b.length;c++){if(b[c].rel.toLowerCase()=="stylesheet"){a.write('<link type="text/css" rel="stylesheet" href="'+b[c].href+'"></link>')}}};dp.sh.Utils.FixForBlogger=function(a){return(dp.sh.isBloggerMode==true)?a.replace(/<br\s*\/?>|&lt;br\s*\/?&gt;/gi,"\n"):a};dp.sh.RegexLib={MultiLineCComments:new RegExp("/\\*[\\s\\S]*?\\*/","gm"),SingleLineCComments:new RegExp("//.*$","gm"),SingleLinePerlComments:new RegExp("#.*$","gm"),DoubleQuotedString:new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"',"g"),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'","g")};dp.sh.Match=function(c,a,b){this.value=c;this.index=a;this.length=c.length;this.css=b};dp.sh.Highlighter=function(){this.noGutter=false;this.addControls=true;this.collapse=false;this.tabsToSpaces=true;this.wrapColumn=80;this.showColumns=true};dp.sh.Highlighter.SortCallback=function(b,a){if(b.index<a.index){return -1}else{if(b.index>a.index){return 1}else{if(b.length<a.length){return -1}else{if(b.length>a.length){return 1}}}}return 0};dp.sh.Highlighter.prototype.CreateElement=function(b){var a=document.createElement(b);a.highlighter=this;return a};dp.sh.Highlighter.prototype.GetMatches=function(d,c){var b=0;var a=null;while((a=d.exec(this.code))!=null){this.matches[this.matches.length]=new dp.sh.Match(a[0],a.index,c)}};dp.sh.Highlighter.prototype.AddBit=function(e,c){if(e==null||e.length==0){return}var d=this.CreateElement("SPAN");e=e.replace(/ /g,"&nbsp;");e=e.replace(/</g,"&lt;");e=e.replace(/\n/gm,"&nbsp;<br>");if(c!=null){if((/br/gi).test(e)){var a=e.split("&nbsp;<br>");for(var b=0;b<a.length;b++){d=this.CreateElement("SPAN");d.className=c;d.innerHTML=a[b];this.div.appendChild(d);if(b+1<a.length){this.div.appendChild(this.CreateElement("BR"))}}}else{d.className=c;d.innerHTML=e;this.div.appendChild(d)}}else{d.innerHTML=e;this.div.appendChild(d)}};dp.sh.Highlighter.prototype.IsInside=function(a){if(a==null||a.length==0){return false}for(var b=0;b<this.matches.length;b++){var d=this.matches[b];if(d==null){continue}if((a.index>d.index)&&(a.index<d.index+d.length)){return true}}return false};dp.sh.Highlighter.prototype.ProcessRegexList=function(){for(var a=0;a<this.regexList.length;a++){this.GetMatches(this.regexList[a].regex,this.regexList[a].css)}};dp.sh.Highlighter.prototype.ProcessSmartTabs=function(f){var b=f.split("\n");var a="";var g=4;var d="\t";function h(j,p,n){var o=j.substr(0,p);var m=j.substr(p+1,j.length);var k="";for(var l=0;l<n;l++){k+=" "}return o+k+m}function e(i,k){if(i.indexOf(d)==-1){return i}var l=0;while((l=i.indexOf(d))!=-1){var j=k-l%k;i=h(i,l,j)}return i}for(var c=0;c<b.length;c++){a+=e(b[c],g)+"\n"}return a};dp.sh.Highlighter.prototype.SwitchToList=function(){var e=this.div.innerHTML.replace(/<(br)\/?>/gi,"\n");var b=e.split("\n");if(this.addControls==true){this.bar.appendChild(dp.sh.Toolbar.Create(this))}if(this.showColumns){var h=this.CreateElement("div");var d=this.CreateElement("div");var f=10;var c=1;while(c<=150){if(c%f==0){h.innerHTML+=c;c+=(c+"").length}else{h.innerHTML+="&middot;";c++}}d.className="columns";d.appendChild(h);this.bar.appendChild(d)}for(var c=0,g=this.firstLine;c<b.length-1;c++,g++){var a=this.CreateElement("LI");var h=this.CreateElement("DIV");a.className=(c%2==0)?"alt":"";h.className=(c%2==0)?"alt":"";h.innerHTML=b[c]+" ";a.appendChild(h);this.ol.appendChild(a)}this.div.innerHTML=""};dp.sh.Highlighter.prototype.Highlight=function(d){function f(i){return i.replace(/^\s*(.*?)[\s\n]*$/g,"$1")}function g(i){return i.replace(/\n*$/,"").replace(/^\n*/,"")}function b(p){var j=dp.sh.Utils.FixForBlogger(p).split("\n");var o=new Array();var m=new RegExp("^\\s*","g");var l=1000;for(var k=0;k<j.length&&l>0;k++){if(f(j[k]).length==0){continue}var n=m.exec(j[k]);if(n!=null&&n.length>0){l=Math.min(n[0].length,l)}}if(l>0){for(var k=0;k<j.length;k++){j[k]=j[k].substr(l)}}return j.join("\n")}function e(i,k,j){return i.substr(k,j-k)}var h=0;if(d==null){d=""}this.originalCode=d;this.code=g(b(d));this.div=this.CreateElement("DIV");this.bar=this.CreateElement("DIV");this.ol=this.CreateElement("OL");this.matches=new Array();this.div.className="dp-highlighter";this.div.highlighter=this;this.bar.className="bar";this.ol.start=this.firstLine;if(this.CssClass!=null){this.ol.className=this.CssClass}if(this.collapse){this.div.className+=" collapsed"}if(this.noGutter){this.div.className+=" nogutter"}if(this.tabsToSpaces==true){this.code=this.ProcessSmartTabs(this.code)}this.ProcessRegexList();if(this.matches.length==0){this.AddBit(this.code,null);this.SwitchToList();this.div.appendChild(this.bar);this.div.appendChild(this.ol);return}this.matches=this.matches.sort(dp.sh.Highlighter.SortCallback);for(var c=0;c<this.matches.length;c++){if(this.IsInside(this.matches[c])){this.matches[c]=null}}for(var c=0;c<this.matches.length;c++){var a=this.matches[c];if(a==null||a.length==0){continue}this.AddBit(e(this.code,h,a.index),null);this.AddBit(a.value,a.css);h=a.index+a.length}this.AddBit(this.code.substr(h),null);this.SwitchToList();this.div.appendChild(this.bar);this.div.appendChild(this.ol)};dp.sh.Highlighter.prototype.GetKeywords=function(a){return"\\b"+a.replace(/ /g,"\\b|\\b")+"\\b"};dp.sh.Highlighter.prototype.GetKeywords_without=function(b,a){return"\\b"+b.replace(/ /g,"\\b(?!"+a+")|\\b")+"\\b"};dp.sh.BloggerMode=function(){dp.sh.isBloggerMode=true};dp.sh.HighlightAll=function(E,B,y,u,g,a){function l(){var j=arguments;for(var F=0;F<j.length;F++){if(j[F]==null){continue}if(typeof(j[F])=="string"&&j[F]!=""){return j[F]+""}if(typeof(j[F])=="object"&&j[F].value!=""){return j[F].value+""}}return null}function w(G,F){for(var j=2;j<F.length;j++){if(F[j]==G){return true}}return false}function n(F,J,j){var H=new RegExp("^"+F+"\\[(\\w+)\\]$","gi");var I=null;for(var G=0;G<J.length;G++){if((I=H.exec(J[G]))!=null){return I[1]}}return j}function A(j){if(j==null||j==""){return null}var G=j.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s+/);for(var F=0;F<G.length;++F){if(G[F].indexOf("syntax-highlight:")==0){return G[F]}}return null}function o(H,G){var j=document.getElementsByTagName(G);for(var F=0;F<j.length;F++){if(A(j[F].className)!=null){H.push(j[F])}}}var h=[];var D=null;var z={};var k="innerHTML";o(h,"pre");o(h,"textarea");if(h.length==0){return}for(var c in dp.sh.Brushes){var s=dp.sh.Brushes[c].Aliases;if(s==null){continue}for(var r=0;r<s.length;r++){z[s[r]]=c}}for(var r=0;r<h.length;r++){var b=h[r];var d=A(l(b.attributes["class"],b.className,b.attributes.language,b.language));var p="";if(d==null){continue}d=d.split(":");p=d[1].toLowerCase();if(z[p]==null){continue}D=new dp.sh.Brushes[z[p]]();b.style.display="none";D.noGutter=(B==null)?w("nogutter",d):!B;D.addControls=(y==null)?!w("nocontrols",d):y;D.collapse=(u==null)?w("collapse",d):u;D.showColumns=(a==null)?w("showcolumns",d):a;var v=document.getElementsByTagName("head")[0];if(D.Style&&v){var x=document.createElement("style");x.setAttribute("type","text/css");if(x.styleSheet){x.styleSheet.cssText=D.Style}else{var m=document.createTextNode(D.Style);x.appendChild(m)}v.appendChild(x)}D.firstLine=(g==null)?parseInt(n("firstline",d,1)):g;D.Highlight(b[k]);D.source=b;b.parentNode.insertBefore(D.div,b);var C=D.div.getElementsByTagName("li");var t=D.div.scrollWidth-58;for(var q=0;q<C.length;q++){var f=C[q].firstChild;f.style.width=t+"px"}var e=D.div.getElementsByTagName("div");e[1].style.width=t+"px"}};dp.sh.Brushes.JScript=function(){var a="abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var void volatile while with";this.regexList=[{regex:dp.sh.RegexLib.SingleLineCComments,css:"comment"},{regex:dp.sh.RegexLib.MultiLineCComments,css:"comment"},{regex:dp.sh.RegexLib.DoubleQuotedString,css:"string"},{regex:dp.sh.RegexLib.SingleQuotedString,css:"string"},{regex:new RegExp("^\\s*#.*","gm"),css:"preprocessor"},{regex:new RegExp(this.GetKeywords(a),"gm"),css:"keyword"}];this.CssClass="dp-c"};dp.sh.Brushes.JScript.prototype=new dp.sh.Highlighter();dp.sh.Brushes.JScript.Aliases=["js","jscript","javascript"];
