var dp={sh:{Toolbar:{},Utils:{},RegexLib:{},Brushes:{},Strings:{},Version:"1.4.1"}};dp.sh.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-2005 Alex Gorbatchev. All right reserved.</td></tr><tr><td class="footer"><input type="button" class="close" value="OK" onClick="window.close()"/></td></tr></table></body></html>'};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=1");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},func:function(B,A){window.clipboardData.setData("text",A.originalCode);alert("The code is in your clipboard now")}},PrintSource:{label:"print",func:function(D,C){var B=document.createElement("IFRAME");var A=null;B.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(B);A=B.contentWindow.document;dp.sh.Utils.CopyStyles(A,window.document);A.write('<div class="'+C.div.className.replace("collapsed","")+' printing">'+C.div.innerHTML+"</div>");A.close();B.contentWindow.focus();B.contentWindow.print();alert("Printing...");document.body.removeChild(B)}},About:{label:"?",func:function(A){var C=window.open("","_blank","dialog,width=300,height=150,scrollbars=0");var B=C.document;dp.sh.Utils.CopyStyles(B,window.document);B.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));B.close();C.focus()}}};dp.sh.Toolbar.Create=function(C){var D=document.createElement("DIV");D.className="tools";for(var B in dp.sh.Toolbar.Commands){var A=dp.sh.Toolbar.Commands[B];if(A.check!=null&&!A.check(C)){continue}D.innerHTML+='<a href="#" onclick="dp.sh.Toolbar.Command(\''+B+"',this);return false;\">"+A.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(B,A){var D=A.getElementsByTagName("link");for(var C=0;C<D.length;C++){if(D[C].rel.toLowerCase()=="stylesheet"){B.write('<link type="text/css" rel="stylesheet" href="'+D[C].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(A){var B=document.createElement(A);B.highlighter=this;return B};dp.sh.Highlighter.prototype.GetMatches=function(D,A){var C=0;var B=null;while((B=D.exec(this.code))!=null){this.matches[this.matches.length]=new dp.sh.Match(B[0],B.index,A)}};dp.sh.Highlighter.prototype.AddBit=function(F,C){if(F==null||F.length==0){return }var A=this.CreateElement("SPAN");F=F.replace(/&/g,"&amp;");F=F.replace(/ /g,"&nbsp;");F=F.replace(/</g,"&lt;");F=F.replace(/\n/gm,"&nbsp;<br>");if(C!=null){var E=new RegExp("<br>","gi");if(E.test(F)){var D=F.split("&nbsp;<br>");F="";for(var B=0;B<D.length;B++){A=this.CreateElement("SPAN");A.className=C;A.innerHTML=D[B];this.div.appendChild(A);if(B+1<D.length){this.div.appendChild(this.CreateElement("BR"))}}}else{A.className=C;A.innerHTML=F;this.div.appendChild(A)}}else{A.innerHTML=F;this.div.appendChild(A)}};dp.sh.Highlighter.prototype.IsInside=function(B){if(B==null||B.length==0){return false}for(var A=0;A<this.matches.length;A++){var C=this.matches[A];if(C==null){continue}if((B.index>C.index)&&(B.index<C.index+C.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(C){var B=C.split("\n");var A="";var H=4;var E="\t";function G(M,O,K){var J=M.substr(0,O);var N=M.substr(O+1,M.length);var L="";for(var I=0;I<K;I++){L+=" "}return J+L+N}function F(K,J){if(K.indexOf(E)==-1){return K}var L=0;while((L=K.indexOf(E))!=-1){var I=J-L%J;K=G(K,L,I)}return K}for(var D=0;D<B.length;D++){A+=F(B[D],H)+"\n"}return A};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,I=this.firstLine;G<E.length-1;G++,I++){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(H){function E(I){return I.replace(/^\s*(.*?)[\s\n]*$/g,"$1")}function F(I){return I.replace(/\n*$/,"").replace(/^\n*/,"")}function B(O){var M=O.split("\n");var N=new Array();var L=new RegExp("^\\s*","g");var K=1000;for(var J=0;J<M.length&&K>0;J++){if(E(M[J]).length==0){continue}var I=L.exec(M[J]);if(I!=null&&I.length>0){K=Math.min(I[0].length,K)}}if(K>0){for(var J=0;J<M.length;J++){M[J]=M[J].substr(K)}}return M.join("\n")}function D(J,I,K){return J.substr(I,K-I)}var G=0;this.originalCode=H;this.code=F(B(H));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 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(D(this.code,G,A.index),null);this.AddBit(A.value,A.css);G=A.index+A.length}this.AddBit(this.code.substr(G),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(J,I,S,R,Q,O){function K(){var T=arguments;for(var U=0;U<T.length;U++){if(T[U]==null){continue}if(typeof (T[U])=="string"&&T[U]!=""){return T[U]+""}if(typeof (T[U])=="object"&&T[U].value!=""){return T[U].value+""}}return null}function P(U,T){for(var V=0;V<T.length;V++){if(T[V]==U){return true}}return false
}function L(T,Y,W){var V=new RegExp("^"+T+"\\[(\\w+)\\]$","gi");var U=null;for(var X=0;X<Y.length;X++){if((U=V.exec(Y[X]))!=null){return U[1]}}return W}var M=document.getElementsByName(J);var H=null;var G=new Object();var F="value";if(M==null){return }for(var E in dp.sh.Brushes){var D=dp.sh.Brushes[E].Aliases;if(D==null){continue}for(var N=0;N<D.length;N++){G[D[N]]=E}}for(var N=0;N<M.length;N++){var C=M[N];var B=K(C.attributes["class"],C.className,C.attributes.language,C.language);var A="";if(B==null){continue}B=B.split(":");A=B[0].toLowerCase();if(G[A]==null){continue}H=new dp.sh.Brushes[G[A]]();C.style.display="none";H.noGutter=(I==null)?P("nogutter",B):!I;H.addControls=(S==null)?!P("nocontrols",B):S;H.collapse=(R==null)?P("collapse",B):R;H.showColumns=(O==null)?P("showcolumns",B):O;H.firstLine=(Q==null)?parseInt(L("firstline",B,1)):Q;H.Highlight(C[F]);C.parentNode.insertBefore(H.div,C)}};