/**
 * 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.Delphi = function()
{

	var keywords =	'Function Procedure Type Shader ASMBlock EndFunction EndProcedure EndType EndShader EndASM Alias Declare Explicit Debug End If ElseIf Else EndIf For To Next Step While Wend Until Var Local Global Dim And Or Return ' +
					'Data Read ReadF Restore Include Not Goto Gosub Const Field Forever Repeat Until ' +
					'Select EndSelect Case Default Int Float Floor Ceil Abs AbsF Mod Sqr Sin Cos Tan ASin ACos ATan Rnd RndF SeedRnd True False Null Pi# ' +
					'MessageBox OpenConsole Input Print PrintN CloseConsole InitGraphics GraphicsMode AppTitle LoadMesh GetMeshHandle OpenPak LoadMap AddCamera AddFPSCamera PointCamera AmbientLight ' +
					'BeginScene UpdateScene RenderScene GetInputEvents EndGraphics Text AddShadow SetShadowMode SetShadowColor AddLight PositionEntity ScaleEntity RotateEntity TurnEntity MoveEntity TranslateEntity '+
					'PlanarMap EntityFx EntityMaterialFx EntityMaterial EntityMaterialCount EntityMaterialShininess EntityShininess EntityDiffuse '+
					'EntitySpecular EntityEmissive EntityAmbient EntityVertexColor NameEntity EntityName EntityParent ParentEntity '+
					'RemoveChildren CountChildren EntityChild SetMaterialParam LoadTexture EntityTexture TextureFlags ShowEntity FreeEntity '+
					'KeyDown KeyHit LastKeyHit SetFogMode CreateCube CreateSphere CreateCylinder CreateCone CreatePlane CreateWater CreateSkybox CreateSkydome CreateTerrain TerrainTextureScale '+
					'InitParticlesPerSecond InitParticlesLifetime InitParticlesAngle InitParticlesColor AddParticleEmitter SetParticleFx AddCollideReceiver RemoveCollideReceiver AddCollider RemoveCollider '+
					'CopyMesh CopyMap CreateBillBoard FreeTexture FreeImage LoadImage AddScreenImage DrawImageFlat DrawImage DrawImageRect ImageMask ImageAlpha TextColor SetText FreeText FreeScreenImage '+
					'CopyMeshDeep EntityX EntityY EntityZ EntityPitch EntityYaw EntityRoll EntityWidth EntityHeight EntityDepth '+
					'CameraProject ProjectedX ProjectedY PickedX PickedY PickedZ CameraPick LinePick EntityIntersect AddTextureCamera CreateRenderTexture RenderToTexture '+
					'SetAnimRange SetAnimSpeed SetAnimFrame SetAnimLooped GetAnimFrame PlayMD2Anim PlayMD2AnimName AnimEventDelete AnimEventOrbit AnimEventPath AnimEventTurn AnimEventSpline AddSplinePoint ClearSpline StopAnimEvent '+
					'ClearMeshData AddVertex AddTriangle CreateMesh MeshVertexCount MeshIndexCount MeshTriCount AppendMeshData GetMeshData TriangleVertex VertexX VertexY VertexZ VertexNX VertexNY VertexNZ VertexU VertexV VertexPosition VertexNormals VertexUV VertexColor SetMeshData MorphMesh '+
					'CameraRange CameraFOV CameraOrthogonal MouseDown MouseHit MouseXSpeed MouseYSpeed MouseZSpeed ShowMouse Viewport GetFPS PointEntity CreatePivot LoadBMPFont BMPFontText '+
					'InitAudio EndAudio LoadSound FreeSound PlaySound StopSound PlayMusic StopMusic SoundVolume SoundPitch SoundPan SetListener EmitSound EntityShader EntityLoadShader VertexShaderConst PixelShaderConst ShaderModel '+
					'Str StrF Left Right Mid UCase LCase Trim Chr Hex Bin StrCopy StrIn Asc Len WaitKey Millisecs Delay Date Time Execute '+
					'OpenFile ReadFile WriteFile CloseFile ChangeDir CurrentDir DeleteFile EOF ReadByte ReadInt ReadFloat ReadString ReadLine WriteByte WriteInt WriteFloat WriteString WriteLine '+
					'PointerX PointerY SaveScreenshot CreateBonePivot DeltaPitch DeltaRoll ClearScene LoadScene SaveScene CalcNormals CreateTorus '+
					'AddKeyFrame AnimEventKeyFrame EntityAutoCull GetEntityByName CameraBGColor EntityDistance MoveMouse CameraUpVectorX CameraUpVectorY CameraUpVectorZ CameraUpVector';

	this.regexList = [
		{ regex: /\(\*[\s\S]*?\*\)/gm,								css: 'comments' },  	// multiline comments (* *)
		{ regex: /{(?!\$)[\s\S]*?}/gm,								css: 'comments' },  	// multiline comments { }
		{ regex: /;.*$/gm,										css: 'comments' },			// one line comments
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// strings
		{ regex: /\{\$[a-zA-Z]+ .+\}/g,								css: 'color1' },		// compiler Directives and Region tags
		{ regex: /\b[\d\.]+\b/g,									css: 'value' },			// numbers 12345
		{ regex: /\$[a-zA-Z0-9]+\b/g,								css: 'value' },			// numbers $F5D3
		{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),		css: 'keyword' }		// keyword
		];
};

SyntaxHighlighter.brushes.Delphi.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Delphi.aliases	= ['delphi', 'pascal', 'pas'];

