/**
 * This script is for Java syntax highlighting using Eclipse IDE
 * style colours and fonts.
 * 
 * @author Adarsh Ramamurthy
 * @version 1.0, 30th April 2006
 * @version 1.1, 18th November 2007
 * @version 1.2, 14th May 2008
 */
var keywords = 
    ['private', 'static', 'final', 'null', 'try', 'catch',
     'throw', 'throws', 'transient', 'volatile', 'return',
     'synchronized', 'new', 'finally', 'import', 'class',
     'interface', 'public', 'protected', 'int', 'byte',
     'short', 'double', 'boolean', 'float', 'long', 'if', 
	 'while', 'do', 'else', 'for', 'break', 'switch', 'default',
     'case', 'package', 'extends', 'implements', 'abstract',
     'instanceof', 'strictfp', 'super', 'this', 'true', 'false'
     ];

var keywordpattern = keywords.join('\\b|\\b');

var keywordEx = new RegExp('(\\b'+keywordpattern+'\\b)', 'g');
var commentEx = new RegExp('(//.*$)', 'g');
var stringEx  = new RegExp('("[^"]*")', 'g');

/**
 * Performs syntax-highlighting of Java code, eclipse style
 */
new function highlightCode()
{
    for(id in codeIds)
    {
        var codeDiv = document.getElementById(codeIds[id]);
        
        if(codeDiv)
        {
            var code = codeDiv.innerHTML;
			
			var lines = code.split(/\n/g);
			
			for(var i = 0; i < lines.length; i++)
			{
				if(lines[i].match(commentEx))
				{
					lines[i] = lines[i].replace(commentEx, '<span id="linecomment">$1</span>');
					
					continue;
				}
				lines[i] = lines[i].replace(stringEx, '<span id="string">$1</span>');
				lines[i] = lines[i].replace(keywordEx, '<span id="keyword">$1</span>');
			}
			
			code = lines.join('\n');

            document.getElementById(codeIds[id]).innerHTML = code;
        }
    }
}

/**
 * Performs syntax-highlighting of JavaDoc comments, eclipse style
 */
new function highlightJavaDoc()
{
	for(id in javadocIds)
	{
		var javadocDiv = document.getElementById(javadocIds[id]);
		
		if(javadocDiv)
		{
			var javadoc = javadocDiv.innerHTML;
			
			javadoc = javadoc.replace(/(&lt;[^&;]*&gt;)/g, '<span class="javadoc-htmltag">$1</span>');
			javadoc = javadoc.replace(/(@[a-z]*)/g, '<span class="javadoc-annotation">$1</span>');

			document.getElementById(javadocIds[id]).innerHTML = javadoc;
		}
	}
}
