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"}};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(d,c){var b=c.originalCode.replace(/</g,"&lt;");var a=window.open("","_blank","width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=0");a.document.write('<textarea style="width:99%;height:99%">'+b+"</textarea>");a.document.close()}},CopyToClipboard:{label:"copy to clipboard",check:function(){return window.clipboardData!=null||dp.sh.ClipboardSwf!=null},func:function(b,a){var d=a.originalCode;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(c,b){var a=document.createElement("IFRAME");var d=null;a.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(a);d=a.contentWindow.document;dp.sh.Utils.CopyStyles(d,window.document);d.write('<div class="'+b.div.className.replace("collapsed","")+' printing">'+b.div.innerHTML+"</div>");d.close();a.contentWindow.focus();a.contentWindow.print();alert("Printing...");document.body.removeChild(a)}},About:{label:"?",func:function(c){var a=window.open("","_blank","dialog,width=300,height=150,scrollbars=0");var b=a.document;dp.sh.Utils.CopyStyles(b,window.document);b.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));b.close();a.focus()}}};dp.sh.Toolbar.Create=function(c){var d=document.createElement("DIV");d.className="tools";for(var a in dp.sh.Toolbar.Commands){var b=dp.sh.Toolbar.Commands[a];if(b.check!=null&&!b.check(c)){continue}d.innerHTML+='<a href="#" onclick="dp.sh.Toolbar.Command(\''+a+"',this);return false;\">"+b.label+"</a>"}return d};dp.sh.Toolbar.Command=function(b,a){var c=a;while(c!=null&&c.className.indexOf("dp-highlighter")==-1){c=c.parentNode}if(c!=null){dp.sh.Toolbar.Commands[b].func(a,c.highlighter)}};dp.sh.Utils.CopyStyles=function(d,c){var a=c.getElementsByTagName("link");for(var b=0;b<a.length;b++){if(a[b].rel.toLowerCase()=="stylesheet"){d.write('<link type="text/css" rel="stylesheet" href="'+a[b].href+'"></link>')}}};dp.sh.RegexLib={MultiLineCComments:new RegExp("/\\*[\\s\\S]*?\\*/","gm"),SingleLineCComments:new RegExp("//.*$","gm"),SingleLinePerlComments:new RegExp("#.*$","gm"),DoubleQuotedString:new RegExp('"(?:\\.|(\\\\\\")|[^\\""])*"',"g"),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''])*'","g")};dp.sh.Match=function(b,a,c){this.value=b;this.index=a;this.length=b.length;this.css=c};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,b){var c=0;var a=null;while((a=d.exec(this.code))!=null){this.matches[this.matches.length]=new dp.sh.Match(a[0],a.index,b)}};dp.sh.Highlighter.prototype.AddBit=function(e,b){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(b!=null){if((/br/gi).test(e)){var c=e.split("&nbsp;<br>");for(var a=0;a<c.length;a++){d=this.CreateElement("SPAN");d.className=b;d.innerHTML=c[a];this.div.appendChild(d);if(a+1<c.length){this.div.appendChild(this.CreateElement("BR"))}}}else{d.className=b;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(b){var a=b.split("\n");var h="";var g=4;var d="\t";function f(m,p,k){var o=m.substr(0,p);var n=m.substr(p+1,m.length);var l="";for(var j=0;j<k;j++){l+=" "}return o+l+n}function e(k,j){if(k.indexOf(d)==-1){return k}var l=0;while((l=k.indexOf(d))!=-1){var i=j-l%j;k=f(k,l,i)}return k}for(var c=0;c<a.length;c++){h+=e(a[c],g)+"\n"}return h};dp.sh.Highlighter.prototype.SwitchToList=function(){var f=this.div.innerHTML.replace(/<(br)\/?>/gi,"\n");var e=f.split("\n");if(this.addControls==true){this.bar.appendChild(dp.sh.Toolbar.Create(this))}if(this.showColumns){var a=this.CreateElement("div");var c=this.CreateElement("div");var b=10;var g=1;while(g<=150){if(g%b==0){a.innerHTML+=g;g+=(g+"").length}else{a.innerHTML+="&middot;";g++}}c.className="columns";c.appendChild(a);this.bar.appendChild(c)}for(var g=0,j=this.firstLine;g<e.length-1;g++,j++){var h=this.CreateElement("LI");var d=this.CreateElement("SPAN");h.className=(g%2==0)?"alt":"";d.innerHTML=e[g]+"&nbsp;";h.appendChild(d);this.ol.appendChild(h)}this.div.innerHTML=""};dp.sh.Highlighter.prototype.Highlight=function(f){function d(i){return i.replace(/^\s*(.*?)[\s\n]*$/g,"$1")}function e(i){return i.replace(/\n*$/,"").replace(/^\n*/,"")}function a(p){var o=p.split("\n");var n=new Array();var m=new RegExp("^\\s*","g");var l=1000;for(var k=0;k<o.length&&l>0;k++){if(d(o[k]).length==0){continue}var j=m.exec(o[k]);if(j!=null&&j.length>0){l=Math.min(j[0].length,l)}}if(l>0){for(var k=0;k<o.length;k++){o[k]=o[k].substr(l)}}return o.join("\n")}function c(i,k,j){return i.substr(k,j-k)}var h=0;if(f==null){f=""}this.originalCode=f;this.code=e(a(f));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.ol);return}this.matches=this.matches.sort(dp.sh.Highlighter.SortCallback);for(var b=0;b<this.matches.length;b++){if(this.IsInside(this.matches[b])){this.matches[b]=null}}for(var b=0;b<this.matches.length;b++){var g=this.matches[b];if(g==null||g.length==0){continue}this.AddBit(c(this.code,h,g.index),null);this.AddBit(g.value,g.css);h=g.index+g.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.HighlightAll=function(k,u,t,s,q,p){function l(){var v=arguments;for(var w=0;w<v.length;w++){if(v[w]==null){continue}if(typeof(v[w])=="string"&&v[w]!=""){return v[w]+""}if(typeof(v[w])=="object"&&v[w].value!=""){return v[w].value+""}}return null}function r(w,v){for(var x=0;x<v.length;x++){if(v[x]==w){return true}}return false}function m(A,y,x){var w=new RegExp("^"+A+"\\[(\\w+)\\]$","gi");var v=null;for(var z=0;z<y.length;z++){if((v=w.exec(y[z]))!=null){return v[1]}}return x}function n(v,z,y){var x=document.getElementsByTagName(y);for(var w=0;w<x.length;w++){if(x[w].getAttribute("name")==z){v.push(x[w])}}}var h=[];var f=null;var d={};var b="innerHTML";n(h,k,"pre");n(h,k,"textarea");if(h.length==0){return}for(var a in dp.sh.Brushes){var j=dp.sh.Brushes[a].Aliases;if(j==null){continue}for(var o=0;o<j.length;o++){d[j[o]]=a}}for(var o=0;o<h.length;o++){var g=h[o];var e=l(g.attributes["class"],g.className,g.attributes.language,g.language);var c="";if(e==null){continue}e=e.split(":");c=e[0].toLowerCase();if(d[c]==null){continue}f=new dp.sh.Brushes[d[c]]();g.style.display="none";f.noGutter=(u==null)?r("nogutter",e):!u;f.addControls=(t==null)?!r("nocontrols",e):t;f.collapse=(s==null)?r("collapse",e):s;f.showColumns=(p==null)?r("showcolumns",e):p;if(f.Style){document.write("<style>"+f.Style+"</style>")}f.firstLine=(q==null)?parseInt(m("firstline",e,1)):q;f.Highlight(g[b]);f.source=g;g.parentNode.insertBefore(f.div,g)}};
