dp.sh.Brushes.Css = function()
{
	var properties =
	'(background-attachment|background-color|background-image|background-position|' +
	'background-repeat|background|border-collapse|border-color|border-spacing|border-style|border-top|' +
	'border-right|border-bottom|border-left|border-top-color|border-right-color|border-bottom-color|' +
	'border-left-color|border-top-style|border-right-style|border-bottom-style|border-left-style|' +
	'border-top-width|border-right-width|border-bottom-width|border-left-width|border-width|' +
	'border|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cursor|direction|' +
	'display|empty-cells|float|font-family|font-size|font-style|font-variant|font-weight|font|' +
	'height|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|' +
	'list-style-type|margin|margin-right|margin-left|margin-top|margin-bottom|max-height|' +
	'max-width|min-height|min-width|outline|outline-color|outline-style|outline-width|overflow|' +
	'padding|padding-top|padding-right|padding-bottom|padding-left|position|property-name|quotes|' +
	'right|table-layout|text-align|text-decoration|text-indent|text-transform|top|unicode-bidi|' +
	'vertical-align|visibility|white-space|width|word-spacing|z-index)';

	var colors =
	'(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|'+
	'blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|'+
	'cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|'+
	'darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|'+
	'darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|darkpink|deepskyblue|'+
	'dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fushia|gainsboro|'+
	'ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|'+
	'indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|'+
	'lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|'+
	'lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|'+
	'lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|'+
	'mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|'+
	'mintcream|mistyrose|mocassin|navawhite|navy|oldlace|olive|olidrab|orange|orangered|orchid|'+
	'palegoldenrod|palegreen|paleturquoise|paletvioletred|papayawhip|peachpuff|peru|pink|plum|'+
	'powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|'+
	'sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|'+
	'thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)';

	var keywords =
	'(rgb|url|left-side|far-left|left|center-left|center|right|center-right|far-right|right-side|'+
	'behind|leftwards|rightwards|inherit|scroll|fixed|transparent|none|repeat|repeat-x|'+
	'repeat-y|no-repeat|collapse|separate|auto|open-quote|close-quote|no-open-quote|'+
	'no-close-quote|cue-before|cue-after|crosshair|default|pointer|move|e-resize|'+
	'ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|'+
	'ltr|rtl|inline|block|list-item|run-in|compact|marker|table|inline-table|'+
	'table-row-group|table-header-group|table-footer-group|table-row|table-column-group|'+
	'table-column|table-cell|table-caption|below|level|above|higher|lower|show|hide|'+
	'normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|'+
	'semi-expanded|expanded|extra-expanded|ultra-expanded|normal|italic|oblique|normal|'+
	'xx-small|x-small|small|large|x-large|xx-large|thin|thick|smaller|larger|small-caps|'+
	'inherit|bold|bolder|lighter|inside|outside|disc|circle|square|decimal|'+
	'decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|'+
	'upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|'+
	'katakana|hiragana-iroha|katakana-iroha|crop|cross|invert|hidden|always|avoid|'+
	'x-low|low|high|x-high|absolute|fixed|relative|static|portrait|landscape|'+
	'spell-out|digits|continuous|x-slow|slow|fast|x-fast|faster|slower|underline|'+
	'overline|line-through|blink|capitalize|uppercase|lowercase|embed|bidi-override|'+
	'baseline|sub|super|top|text-top|middle|bottom|text-bottom|visible|hidden|collapse|'+
	'soft|loud|x-loud|pre|nowrap|dotted|dashed|solid|double|groove|ridge|inset|outset|'+
	'once|both|silent|medium|mix|male|female|child|code)';

	this.regexList = [

		{ regex: new RegExp('/\\*[\\s\\S]*?\\*/', 'g'),
			 css: 'comment' }, 	// multiline comments

		{ regex: new RegExp("\\b-?[0-9\\.]+(pt|pc|in|mm|cm|em|ex|px|ms|s|%)?", 'g'),
			 css: 'unit' }, 			// unit

		{ regex: new RegExp(properties+'\\s*:', 'gm'),
			 css: 'property' },	// properties

		{ regex: new RegExp('#[_a-z0-9-]+(?= \.|:)', 'gm'),
			 css: 'identifier' },	// properties

		{ regex: new RegExp('({|})', 'gm'),
			css: 'brace' },			// braces

		{ regex: new RegExp('\\b'+colors+'(?=\\s|;|$)', 'gm'),
			 css: 'color' },			// color words

		{ regex: new RegExp("#([a-f0-9]{6}|[a-f0-9]{3})", 'g'),
			 css: 'color' }, 		// color units

		{ regex: new RegExp('\\b'+keywords+'(?=\\s|;|$)', 'gm'),
			 css: 'keyword' } 		// keyword

		];

	this.CssClass = 'dp-css';
}

dp.sh.Brushes.Css.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Css.Aliases	= ['css'];
