var dp={sh:{Utils:{},Brushes:{},Strings:{}},Version:"1.2.0"};dp.sh.Strings={AboutDialog:'<html><head><title>About...</title></head><body class="dp-about"><table cellspacing="0"><tr><td class="copy"><div class="para title">dp.SyntaxHighlighter</div><div class="para">Version: {V}</div><div class="para"><a href="http://www.dreamprojections.com/sh/?ref=about" target="_blank">http://www.dreamprojections.com/SyntaxHighlighter</a></div>&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>',ExpandCode:"+ expand code",ViewPlain:"view plain",Print:"print",CopyToClipboard:"copy to clipboard",About:"?",CopiedToClipboard:"The code is in your clipboard now."};dp.SyntaxHighlighter=dp.sh;dp.sh.Utils.Expand=function(A){var C=A;var B=A;while(B!=null&&B.tagName!="SPAN"){B=B.parentNode;}while(C!=null&&C.tagName!="TABLE"){C=C.parentNode;}B.parentNode.removeChild(B);C.tBodies[0].className="show";C.parentNode.style.height="100%";};dp.sh.Utils.ViewSource=function(A){var C=A.parentNode.originalCode;var B=window.open("","_blank","width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1");C=C.replace(/</g,"&lt;");B.document.write("<pre>"+C+"</pre>");B.document.close();};dp.sh.Utils.ToClipboard=function(A){var B=A.parentNode.originalCode;if(window.clipboardData){window.clipboardData.setData("text",B);alert(dp.sh.Strings.CopiedToClipboard);}};dp.sh.Utils.PrintSource=function(A){var F=A.parentNode;var D=F.processedCode;var B=document.createElement("IFRAME");var E=null;var C=B.style.cssText="position:absolute; width:0px; height:0px; left:-5px; top:-5px;";F.appendChild(B);E=B.contentWindow.document;D=D.replace(/</g,"&lt;");E.open();E.write("<pre>"+D+"</pre>");E.close();B.contentWindow.focus();B.contentWindow.print();F.removeChild(B);};dp.sh.Utils.About=function(){var D=window.open("","_blank","dialog,width=320,height=150,scrollbars=0");var E=D.document;var C=document.getElementsByTagName("style");var A=document.getElementsByTagName("link");E.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));for(var B=0;B<C.length;B++){E.write("<style>"+C[B].innerHTML+"</style>");}for(var B=0;B<A.length;B++){if(A[B].rel.toLowerCase()=="stylesheet"){E.write('<link type="text/css" rel="stylesheet" href="'+A[B].href+'"></link>');}}E.close();D.focus();};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.addGutter=true;this.addControls=true;this.collapse=false;this.tabsToSpaces=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.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(F,C){var D=document.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 A=F.split("&nbsp;<br>");F="";for(var B=0;B<A.length;B++){D=document.createElement("SPAN");D.className=C;D.innerHTML=A[B];this.div.appendChild(D);if(B+1<A.length){this.div.appendChild(document.createElement("BR"));}}}else{D.className=C;D.innerHTML=F;this.div.appendChild(D);}}else{D.innerHTML=F;this.div.appendChild(D);}};dp.sh.Highlighter.prototype.IsInside=function(A){if(A==null||A.length==0){return ;}for(var B=0;B<this.matches.length;B++){var C=this.matches[B];if(C==null){continue;}if((A.index>C.index)&&(A.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(F){var B=F.split("\n");var A="";var G=4;var D="\t";function H(I,O,M){var N=I.substr(0,O);var L=I.substr(O+1,I.length);var J="";for(var K=0;K<M;K++){J+=" ";}return N+J+L;}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.SwitchToTable=function(){var I=this.div.innerHTML.split(/<BR>/gi);var G=null;var E=null;var D=null;var C="";var A=" | ";function F(J,K){return'<a href="#" onclick="dp.sh.Utils.'+J+'(this); return false;">'+K+"</a>";}D=document.createElement("TBODY");this.table.appendChild(D);if(this.addGutter==true){G=D.insertRow(-1);E=G.insertCell(-1);E.className="tools-corner";}if(this.addControls==true){var H=document.createElement("THEAD");this.table.appendChild(H);G=H.insertRow(-1);if(this.addGutter==true){E=G.insertCell(-1);E.className="tools-corner";}E=G.insertCell(-1);E.originalCode=this.originalCode;E.processedCode=this.code;E.className="tools";if(this.collapse==true){D.className="hide";E.innerHTML+="<span><b>"+F("Expand",dp.sh.Strings.ExpandCode)+"</b>"+A+"</span>";}E.innerHTML+=F("ViewSource",dp.sh.Strings.ViewPlain)+A+F("PrintSource",dp.sh.Strings.Print);if(window.clipboardData){E.innerHTML+=A+F("ToClipboard",dp.sh.Strings.CopyToClipboard);}E.innerHTML+=A+F("About",dp.sh.Strings.About);}for(var B=0;B<I.length-1;B++){G=D.insertRow(-1);if(this.addGutter==true){E=G.insertCell(-1);E.className="gutter";E.innerHTML=B+1;}E=G.insertCell(-1);E.className="line"+(B%2+1);E.innerHTML=I[B];}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(O){var I=O.split("\n");var N=new Array();var L=new RegExp("^\\s*","g");var K=1000;for(var J=0;J<I.length&&K>0;J++){if(F(I[J]).length==0){continue;}var M=L.exec(I[J]);if(M!=null&&M.length>0){K=Math.min(M[0].length,K);}}if(K>0){for(var J=0;J<I.length;J++){I[J]=I[J].substr(K);}}return I.join("\n");}function E(I,K,J){return I.substr(K,J-K);}var H=0;this.originalCode=D;this.code=G(B(D));this.div=document.createElement("DIV");this.table=document.createElement("TABLE");this.matches=new Array();if(this.CssClass!=null){this.table.className=this.CssClass;}if(this.tabsToSpaces==true){this.code=this.ProcessSmartTabs(this.code);}this.table.border=0;this.table.cellSpacing=0;this.table.cellPadding=0;this.ProcessRegexList();if(this.matches.length==0){this.AddBit(this.code,null);this.SwitchToTable();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.SwitchToTable();};dp.sh.Highlighter.prototype.GetKeywords=function(A){return"\\b"+A.replace(/ /g,"\\b|\\b")+"\\b";};dp.sh.HighlightAll=function(C,G,F,M){function K(){var R=arguments;for(var S=0;S<R.length;S++){if(R[S]==null){continue;}if(typeof (R[S])=="string"&&R[S]!=""){return R[S]+"";}if(typeof (R[S])=="object"&&R[S].value!=""){return R[S].value+"";}}return null;}function P(T,S){for(var R=0;R<S.length;R++){if(S[R]==T){return true;}}return false;}var A=document.getElementsByName(C);var O=null;var E=new Object();var L="value";if(A==null){return ;}for(var N in dp.sh.Brushes){var D=dp.sh.Brushes[N].Aliases;if(D==null){continue;}for(var J=0;J<D.length;J++){E[D[J]]=N;}}for(var J=0;J<A.length;J++){var I=A[J];var Q=K(I.attributes["class"],I.className,I.attributes["language"],I.language);var H="";if(Q==null){continue;}Q=Q.split(":");H=Q[0].toLowerCase();if(E[H]==null){continue;}O=new dp.sh.Brushes[E[H]]();I.style.display="none";O.addGutter=(G==null)?!P("nogutter",Q):G;O.addControls=(F==null)?!P("nocontrols",Q):F;O.collapse=(M==null)?P("collapse",Q):M;O.Highlight(I[L]);var B=document.createElement("DIV");B.className="dp-highlighter";B.appendChild(O.table);I.parentNode.insertBefore(B,I);}};
