dp.sh.Brushes.ActionScript = function()
{
	var datatypes = 
    'Array Boolean int Number Object String uint XML';
  var keywords = 
    'as break case catch class const ' + 
    'continue default delete do dynamic each else extends ' + 
    'false final finally for function get if implements import ' + 
    'in instanceof include interface internal is label namespace native new null ' + 
    'override package private protected public return ' + 
    'set static super switch this throw to true ' + 
    'try typeof use var void while with';

	this.regexList = [
		{ regex: dp.sh.RegexLib.SingleLineCComments,							css: 'comment' },		// one line comments
		{ regex: new RegExp('/\\*(?=\\*)[\\s\\S]*?\\*/', 'gm'),       css: 'asdoc' },		// asdoc comments
//		{ regex: dp.sh.RegexLib.MultiLineCComments,								css: 'comment' },		// multiline comments
		{ regex: new RegExp('/\\*(?!\\*)[\\s\\S]*?\\*/', 'gm'),								css: 'comment' },		// multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,								css: 'string' },		// strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,								css: 'string' },		// strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'number' },		// numbers
		{ regex: new RegExp(this.GetKeywords(datatypes), 'gm'),		css: 'datatypes' }, // actionscript datatypes
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' }		// actionscript keyword
		];

	this.CssClass = 'dp-as';
	this.Style = 
  	'.dp-as .datatypes { color: #2E8B57; font-weight: bold; }' + 
    '.dp-as .asdoc { color: #3f5fbf; }' + 
    '.dp-as .number { color: #C00000; }';
}

dp.sh.Brushes.ActionScript.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.ActionScript.Aliases	= ['actionscript', 'as'];

