/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.1.364 (October 15 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.AdsSql = function()
{
	var funcs	=	'abs ascii applicationid avg bit_length case cast char char_length character_length ' +
					'char2hex coalesce collate concat contains convert count createtimestamp ' +
					'curdate current_date current_time current_timestamp current_user curtime ' +
					'database dayname dayofmonth dayofweek dayofyear difference day empty extract ' +
					'frac_second hex2char hour ifnull iif isnull isoweek lastautoinc lcase ' +
					'left length locate lower ltrim minute month monthname newidstring now nullif ' +
					'octet_length position quarter raise repeat replace right rownum rtrim second score ' +
					'scoredistinct soundex session_user space substring sum system_user timestampadd ' +
					'timestampdiff trim ucase upper user week year';

	var keywords =		'absolute action add after alter as asc at authorization begin bigint ' +
					'binary bit by cascade char character check checkpoint close collate ' +
					'column commit committed connect connection constraint contains continue ' +
					'create cube current current_date current_time cursor database date ' +
					'deallocate dec decimal declare default delete desc distinct double drop ' +
					'dynamic else end end-exec escape except exec execute false fetch first ' +
					'float for force foreign forward free from full function global goto grant ' +
					'group grouping having hour ignore index inner insensitive insert instead ' +
					'int integer intersect into if is isolation key last level load local max min ' +
					'minute modify move name national nchar next no numeric of off on only ' +
					'open option order out outer output partial password precision prepare primary ' +
					'prior privileges procedure public read real references relative repeatable ' +
					'restrict return returns revoke rollback rollup rows rule schema scroll ' +
					'second section select sequence serializable set size smallint start static ' +
					'statistics table temp temporary then time timestamp to top transaction ' +
					'translation trigger true truncate uncommitted union unique update values ' +
					'varchar varying view when where while with work';

	var operators =		'all and any between cross in join like not null or outer some';

	this.regexList = [
		{ regex: /--(.*)$/gm,							css: 'comments' },		// one line comments
		{ regex: /\/\/(.*)$/gm,							css: 'comments' },		// one line comments
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,			css: 'comments' },		// multiline comments
		{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,	css: 'string' },		// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },		// single quoted strings
		{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),			css: 'sqlfunc' },		// functions
		{ regex: new RegExp(this.getKeywords(operators), 'gmi'),		css: 'sqloperator' },		// operators and such
		{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),			css: 'sqlkeyword' },		// keyword
		{ regex: /sp_[a-z,A-Z]+/gmi,						css: 'procedures' },		// system procedures
		{ regex: /::[a-z,A-Z]+/gm,						css: 'sqltype' }		// types
		];
};

SyntaxHighlighter.brushes.AdsSql.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.AdsSql.aliases	= ['adssql'];

