function FormatSourceCode() 
{
    var isIE = navigator.appName.indexOf('Microsoft') != -1;
    var preElems = document.getElementsByTagName('pre');

    for (var i = 0; i < preElems.length; i++) 
    {
        var pre = preElems[i];
        var oldContent = pre.innerHTML;

        oldContent = oldContent.replace(/ /g, "&nbsp;");
        var codeLine = oldContent.split("\n");
        if (isIE)
            codeLine = oldContent.split("\n");

        var newContent = "<table cellpadding='0' cellspacing='0'>";
        for (var j = 0; j < codeLine.length; j++) {
            newContent += "<tr><td bgcolor='#d4d0c8' style='width: 20px;'>";
            newContent += (j + 1);
            newContent += "</td>";
            newContent += "<td>&nbsp;&nbsp;";
            newContent += codeLine[j];
            newContent += "</td></tr>";
        }
        newContent += "</table>";
        pre.innerHTML = newContent;
    }
}

function FormatSourceCodeWithNo(tagElement, sourceCode) {
    var newContent = "<table cellpadding='0' cellspacing='0'>";    
    var codeLine = sourceCode.split("\n");
    var deep = 0;
    while (codeLine[0].replace(/^\s+|\s+$/g, "").length == 0) {
        codeLine.shift();
    }
    for (var j = 0; j < codeLine.length; j++) {
        codeLine[j] = codeLine[j].replace(/^\s+|\s+$/g, "");

        if ((j == (codeLine.length - 1)) && (codeLine[j].length == 0))
            continue;
        
        newContent += "<tr><td bgcolor='#d4d0c8' style='width: 20px;'>";
        newContent += (j + 1);
        newContent += "</td>";
        newContent += "<td>&nbsp;&nbsp;";
        if (codeLine[j].search(/^}/) > -1)
            deep--;
        newContent += CreateSpace(deep) + codeLine[j];
        if (codeLine[j].search(/{$/) > -1)
            deep++;
        newContent += "</td></tr>";
    }
    newContent += "</table>";
    tagElement.html(newContent);
}

function CreateSpace(spaces) {
    var retString = "";
    for (var i = 0; i < (2 * spaces); i++)
        retString += "&nbsp;";
    return retString;    
}

function FormatSourceCode(tagElement, sourceCode) {
    var newContent = "";
    var codeLine = sourceCode.split("\n");
    var deep = 0;

    if (codeLine[0].length == 0)
        codeLine.shift();

    for (var j = 0; j < codeLine.length; j++) {
        codeLine[j] = codeLine[j].replace(/^\s+|\s+$/g, "");

        if ((j == (codeLine.length - 1)) && (codeLine[j].length == 0))
            continue;
        
        if (codeLine[j].search(/^}/) > -1)
            deep--;
        newContent += CreateSpace(deep) + codeLine[j] +"<br />";
        if (codeLine[j].search(/{$/) > -1)
            deep++;
    }
    tagElement.html(newContent);    
} 