/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.296 (March 01 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 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/licenses/>.
 */
SyntaxHighlighter.brushes.Sql = function()
{
	var funcs = 'ABS COS APP_NAME ASCII ASIN ATAN ATN2 AVG BINARY_CHECKSUM CAST CEILING CHARINDEX CHECKSUM_AGG CHECKSUM COALESCE COL_LENGTH COL_NAME COLLAILING CHARINDEX CONVERT COS COT COUNT_BIG COUNT CURRENT_TIMESTAMPROPERTY COLUMNPROPERTY CONVERT COS COT CURRENT_USER CURSOR_STATUS DATABASEPROPERTYEX DATABASEPROPERTY DATALENGTH DATEADD DATEDIFF DATENAME DATEPART DAY DB_ID DB_NAME DEGREES DIFFERENCE EXP DATEDIFF DATENAME DATEPART DAY FILE_ID FILE_NAME FILEGROUP_ID FILEGROUP_NAME FILEGROUPPROPERTY FILEPROPERTY FLOOR FORMATMESSAGE FULLTEXTCATALOGPROPERTY FULLTEXTSERVICEPROPERTY GETANSIOR FORMATMESSAGE FULLTEXTCATALOGPROPERTY FULLTEXTSERVICEPROPERTY GETDATE GETUTCDATE HOST_ID HOST_NAME IDENT_CURRENT IDENT_INCR IDENT_SEE GETDATE GETUTCDATE INDEX_COL INDEXKEY_PROPERTY INDEXPROPERTY IS_MEMBER IS_SRVROLEMEMBER ISDATE ISNULL ISNUMERIC LEN LOG10 LOG LOWER LTRIM MAX MIN MONTH NEWID NULLIF OBJECT_ID OBJECT_NAME OBJECTPROPERTY PARSENAME PATINDEX PERMISSIONS PI POWER QUOTENAME RADIANS RAND REPLACE REPLICATE REVERSE ROUND RTRIM SCOPE_IOTENAME RADIANS RAND REPLACE REPLICATE REVERSE ROUND RTRIM DENTITY SERVERPROPERTY SESSION_USER SESSIONPROPERTY SIGN SIN SOUNDEX SPACE SERVERPROPERTY SQRT SQUARE STATS_DATE STDEVP STDEV STR STUFF SUBSTRING SUM SUSER_ID SUSER_NAME SUSER_SID SUSER_SNAME SYSTEM_USER TAN TEXTPTR TEXTVALID TYPEPROPERTY UNICODE UPPER USER_ID USER_NAME USER VARP VAR YEAR TYPEPROPERTY UNICODE UPPER';


	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 insensitive insert instead ' +
					'int integer intersect into is isolation key last level load local  ' +
					'minute modify move name national nchar next no numeric of off on only ' +
					'open option order out 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 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 with work case datetime datetime2 bigint bit decimal int money float date char text nchar ntext binary image cursor heirarchyid sql_variant nvarchar varchar IF RECONFIGURE OVERRIDE EXTERNAL PAD_INDEX STATISTICS_NORECOMPUTE IGNORE_DUP_KEY ALLOW_ROW_LOCKS ALLOW_PAGE_LOCKS GO';

	var systables = 'sys.altfiles sys.devices sys.oledbusers sys.cacheobjects sys.languages sys.perfinfo sys.charsets sys.lockinfo sys.processes sys.configures sys.logins sys.remotelogins sys.curconfigs sys.messages sys.servers sys.databases sys.files sys.objects sys.columns sys.foreignkeys sys.permissions sys.comments sys.fulltextcatalogs sys.protects sys.constraints sys.indexes sys.references sys.depends sys.indexkeys sys.types sys.filegroups sys.members sys.users sys.servers sys.databases sys.objects sysaltfiles sysdevices sysoledbusers syscacheobjects syslanguages sysperfinfo syscharsets syslockinfo sysprocesses sysconfigures syslogins sysremotelogins syscurconfigs sysmessages sysservers sysdatabases sysfiles sysobjects syscolumns sysforeignkeys syspermissions syscomments sysfulltextcatalogs sysprotects sysconstraints sysindexes sysreferences sysdepends sysindexkeys systypes sysfilegroups sysmembers sysusers sysservers sysdatabases sysobjects';

	var sysprocs = 'sp_add_data_file_recover_suspect_db sp_dropmessage sp_add_log_file_recover_suspect_db sp_droptype sp_addextendedproc sp_executesql sp_addextendedproperty sp_getapplock sp_addmessage sp_getbindtoken sp_addtype sp_help sp_addumpdevice sp_helpconstraint sp_altermessage sp_helpdb sp_attach_db sp_helpdevice sp_attach_single_file_db sp_helpextendedproc sp_autostats sp_helpfile sp_bindefault sp_helpfilegroup sp_bindrule sp_helpindex sp_bindsession sp_helplanguage sp_certify_removable sp_helpserver sp_clean_db_file_free_space sp_helpsort sp_clean_db_free_space sp_helpstats sp_configure sp_helptext sp_control_plan_guide sp_helptrigger sp_create_plan_guide sp_indexoption sp_create_plan_guide_from_handle sp_invalidate_textptr sp_create_removable sp_lock sp_createstats sp_monitor sp_cycle_errorlog sp_procoption sp_datatype_info sp_recompile sp_dbcmptlevel sp_refreshview sp_dbmmonitoraddmonitoring sp_releaseapplock sp_dbmmonitorchangealert sp_rename sp_dbmmonitorchangemonitoring sp_renamedb sp_dbmmonitordropalert sp_resetstatus sp_dbmmonitordropmonitoring sp_serveroption sp_dbmmonitorhelpalert sp_setnetname sp_dbmmonitorhelpmonitoring sp_settriggerorder sp_dbmmonitorresults sp_spaceused sp_dboption sp_tableoption sp_dbremove sp_unbindefault sp_delete_backuphistory sp_unbindrule sp_depends sp_updateextendedproperty sp_detach_db sp_updatestats sp_dropdevice sp_validname sp_dropextendedproc sp_who sp_dropextendedproperty'

	var operators =	'exists all and any between cross in join like not null or outer some left inner outer right apply';
 
	this.regexList = [
		{ regex: /\/\*[\s\S]*?\*\//gm,												css: 'comments' },	
		{ regex: /\[(.*)\]/gm,												css: 'variables' },	
		{ regex: /@[A-Za-z0-9]+/gm,												css: 'variables' },	
		{ regex: /[\+\=\(\)\%\!\^\*\{\}\:\~\<\>\.\,]/gm,								css: 'color1' },	
		{ regex: /--(.*)$/gm,												css: 'comments' },			// one line and multiline comments
		{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,	css: 'variables' },			// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },			// single quoted strings
		{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),				css: 'color2' },			// functions
		{ regex: new RegExp(this.getKeywords(operators), 'gmi'),			css: 'color1' },			// operators and such
		{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),				css: 'keyword' },			// keyword
		{ regex: new RegExp(this.getKeywords(sysprocs), 'gmi'),				css: 'sysprocs' },
		{ regex: new RegExp(this.getKeywords(systables), 'gmi'),				css: 'systables' }
		];
};

SyntaxHighlighter.brushes.Sql.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Sql.aliases	= ['sql'];

