/**
 * 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.PowerShell = function()
{
	// Contributes by B.v.Zanten, Getronics
	// http://confluence.atlassian.com/display/CONFEXT/New+Code+Macro

	var keywords = 'Add-Content Add-History Add-Member Add-PSSnapin Clear(-Content)? Clear-Item ' +
				'Clear-ItemProperty Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ' +
				'ConvertTo-Html ConvertTo-SecureString Copy(-Item)? Copy-ItemProperty Export-Alias ' +
				'Export-Clixml Export-Console Export-Csv ForEach(-Object)? Format-Custom Format-List ' +
				'Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command ' +
				'Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy ' +
				'Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member ' +
				'Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service ' +
				'Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object ' +
				'Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item ' +
				'Join-Path Measure-Command Measure-Object Move(-Item)? Move-ItemProperty New-Alias ' +
				'New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan ' +
				'New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location ' +
				'Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin ' +
				'Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service ' +
				'Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content ' +
				'Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug ' +
				'Set-Service Set-TraceSource Set(-Variable)? Sort-Object Split-Path Start-Service ' +
				'Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service ' +
				'Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where(-Object)? ' +
				'Write-Debug Write-Error Write(-Host)? Write-Output Write-Progress Write-Verbose Write-Warning ' +
				'Add-ADPermission Add-AvailabilityAddressSpace Add-ContentFilterPhrase Add-DistributionGroupMember ' +
				'Add-ExchangeAdministrator Add-IPAllowListEntry Add-IPAllowListProvider Add-IPBlockListEntry ' +
				'Add-IPBlockListProvider Add-MailboxPermission Add-PublicFolderAdministrativePermission ' +
				'Add-PublicFolderClientPermission Clean-MailboxDatabase Clear-ActiveSyncDevice Connect-Mailbox ' +
				'Copy-UMCustomPrompt Disable-AntispamUpdates Disable-ContinuousReplicationHostName ' +
				'Disable-DistributionGroup Disable-JournalRule Disable-Mailbox Disable-MailContact ' +
				'Disable-MailPublicFolder Disable-MailUser Disable-OutlookAnywhere Disable-ServiceEmailChannel ' +
				'Disable-StorageGroupCopy Disable-TransportAgent Disable-TransportRule Disable-UMAutoAttendant ' +
				'Disable-UMIPGateway Disable-UMMailbox Disable-UMServer Dismount-Database Enable-AntispamUpdates ' +
				'Enable-ContinuousReplicationHostName Enable-DatabaseCopy Enable-DistributionGroup ' +
				'Enable-ExchangeCertificate Enable-JournalRule Enable-Mailbox Enable-MailContact ' +
				'Enable-MailPublicFolder Enable-MailUser Enable-OutlookAnywhere Enable-ServiceEmailChannel ' +
				'Enable-StorageGroupCopy Enable-TransportAgent Enable-TransportRule Enable-UMAutoAttendant ' +
				'Enable-UMIPGateway Enable-UMMailbox Enable-UMServer Export-ActiveSyncLog Export-AutoDiscoverConfig ' +
				'Export-ExchangeCertificate Export-Mailbox Export-Message Export-TransportRuleCollection ' +
				'Get-AcceptedDomain Get-ActiveSyncDeviceStatistics Get-ActiveSyncMailboxPolicy ' +
				'Get-ActiveSyncVirtualDirectory Get-AddressList Get-ADPermission Get-ADSite Get-AdSiteLink ' +
				'Get-AgentLog Get-AntispamUpdates Get-AutodiscoverVirtualDirectory Get-AvailabilityAddressSpace ' +
				'Get-AvailabilityConfig Get-CASMailbox Get-ClientAccessServer Get-ClusteredMailboxServerStatus ' +
				'Get-Contact Get-ContentFilterConfig Get-ContentFilterPhrase Get-DetailsTemplate ' +
				'Get-DistributionGroup Get-DistributionGroupMember Get-DynamicDistributionGroup ' +
				'Get-EdgeSubscription Get-EmailAddressPolicy Get-EventLogLevel Get-ExchangeAdministrator ' +
				'Get-ExchangeCertificate Get-ExchangeServer Get-ForeignConnector Get-GlobalAddressList ' +
				'Get-Group Get-ImapSettings Get-IPAllowListConfig Get-IPAllowListEntry ' +
				'Get-IPAllowListProvider Get-IPAllowListProvidersConfig Get-IPBlockListConfig ' +
				'Get-IPBlockListEntry Get-IPBlockListProvider Get-IPBlockListProvidersConfig Get-JournalRule ' +
				'Get-LogonStatistics Get-Mailbox Get-MailboxCalendarSettings Get-MailboxDatabase ' +
				'Get-MailboxFolderStatistics Get-MailboxPermission Get-MailboxServer Get-MailboxStatistics ' +
				'Get-MailContact Get-MailPublicFolder Get-MailUser Get-ManagedContentSettings ' +
				'Get-ManagedFolder Get-ManagedFolderMailboxPolicy Get-Message Get-MessageClassification ' +
				'Get-MessageTrackingLog Get-NetworkConnectionInfo Get-OabVirtualDirectory Get-OfflineAddressBook ' +
				'Get-OrganizationConfig Get-OutlookAnywhere Get-OutlookProvider Get-OwaVirtualDirectory ' +
				'Get-PopSettings Get-PublicFolder Get-PublicFolderAdministrativePermission ' +
				'Get-PublicFolderClientPermission Get-PublicFolderDatabase Get-PublicFolderStatistics ' +
				'Get-Queue Get-ReceiveConnector Get-Recipient Get-RecipientFilterConfig Get-RemoteDomain ' +
				'Get-ResourceConfig Get-RoutingGroupConnector Get-SendConnector Get-SenderFilterConfig ' +
				'Get-SenderIdConfig Get-SenderReputationConfig Get-StorageGroup Get-StorageGroupCopyStatus ' +
				'Get-SystemMessage Get-TransportAgent Get-TransportConfig Get-TransportPipeline ' +
				'Get-TransportRule Get-TransportRuleAction Get-TransportRulePredicate Get-TransportServer ' +
				'Get-UMActiveCalls Get-UMAutoAttendant Get-UMDialPlan Get-UMHuntGroup Get-UMIPGateway ' +
				'Get-UMMailbox Get-UMMailboxPIN Get-UMMailboxPolicy Get-UmServer Get-UMVirtualDirectory ' +
				'Get-User Get-WebServicesVirtualDirectory Get-X400AuthoritativeDomain ' +
				'Import-ExchangeCertificate Import-Mailbox Import-TransportRuleCollection ' +
				'Install-TransportAgent Mount-Database Move-AddressList Move-ClusteredMailboxServer ' +
				'Move-DatabasePath Move-Mailbox Move-OfflineAddressBook Move-StorageGroupPath ' +
				'New-AcceptedDomain New-ActiveSyncMailboxPolicy New-ActiveSyncVirtualDirectory ' +
				'New-AddressList New-AutodiscoverVirtualDirectory New-DistributionGroup ' +
				'New-DynamicDistributionGroup New-EdgeSubscription New-EmailAddressPolicy ' +
				'New-ExchangeCertificate New-ForeignConnector New-GlobalAddressList New-JournalRule ' +
				'New-Mailbox New-MailboxDatabase New-MailContact New-MailUser New-ManagedContentSettings ' +
				'New-ManagedFolder New-ManagedFolderMailboxPolicy New-MessageClassification ' +
				'New-OabVirtualDirectory New-OfflineAddressBook New-OutlookProvider New-OwaVirtualDirectory ' +
				'New-PublicFolder New-PublicFolderDatabase New-ReceiveConnector New-RemoteDomain ' +
				'New-RoutingGroupConnector New-SendConnector New-StorageGroup New-SystemMessage ' +
				'New-TransportRule New-UMAutoAttendant New-UMDialPlan New-UMHuntGroup New-UMIPGateway ' +
				'New-UMMailboxPolicy New-UMVirtualDirectory New-WebServicesVirtualDirectory ' +
				'New-X400AuthoritativeDomain Remove-AcceptedDomain Remove-ActiveSyncDevice ' +
				'Remove-ActiveSyncMailboxPolicy Remove-ActiveSyncVirtualDirectory Remove-AddressList ' +
				'Remove-ADPermission Remove-AutodiscoverVirtualDirectory Remove-AvailabilityAddressSpace ' +
				'Remove-ContentFilterPhrase Remove-DistributionGroup Remove-DistributionGroupMember ' +
				'Remove-DynamicDistributionGroup Remove-EdgeSubscription Remove-EmailAddressPolicy ' +
				'Remove-ExchangeAdministrator Remove-ExchangeCertificate Remove-ForeignConnector ' +
				'Remove-GlobalAddressList Remove-IPAllowListEntry Remove-IPAllowListProvider ' +
				'Remove-IPBlockListEntry Remove-IPBlockListProvider Remove-JournalRule Remove-Mailbox ' +
				'Remove-MailboxDatabase Remove-MailboxPermission Remove-MailContact Remove-MailUser ' +
				'Remove-ManagedContentSettings Remove-ManagedFolder Remove-ManagedFolderMailboxPolicy ' +
				'Remove-Message Remove-MessageClassification Remove-OabVirtualDirectory ' +
				'Remove-OfflineAddressBook Remove-OutlookProvider Remove-OwaVirtualDirectory ' +
				'Remove-PublicFolder Remove-PublicFolderAdministrativePermission ' +
				'Remove-PublicFolderClientPermission Remove-PublicFolderDatabase Remove-ReceiveConnector ' +
				'Remove-RemoteDomain Remove-RoutingGroupConnector Remove-SendConnector Remove-StorageGroup ' +
				'Remove-SystemMessage Remove-TransportRule Remove-UMAutoAttendant Remove-UMDialPlan ' +
				'Remove-UMHuntGroup Remove-UMIPGateway Remove-UMMailboxPolicy Remove-UMVirtualDirectory ' +
				'Remove-WebServicesVirtualDirectory Remove-X400AuthoritativeDomain Restore-DetailsTemplate ' +
				'Restore-Mailbox Restore-StorageGroupCopy Resume-Message Resume-PublicFolderReplication ' +
				'Resume-Queue Resume-StorageGroupCopy Retry-Queue Set-AcceptedDomain ' +
				'Set-ActiveSyncMailboxPolicy Set-ActiveSyncVirtualDirectory Set-AddressList ' +
				'Set-ADSite Set-AdSiteLink Set-AutodiscoverVirtualDirectory Set-AvailabilityConfig ' +
				'Set-CASMailbox Set-ClientAccessServer Set-Contact Set-ContentFilterConfig ' +
				'Set-DetailsTemplate Set-DistributionGroup Set-DynamicDistributionGroup ' +
				'Set-EmailAddressPolicy Set-EventLogLevel Set-ExchangeServer Set-ForeignConnector ' +
				'Set-GlobalAddressList Set-Group Set-ImapSettings Set-IPAllowListConfig ' +
				'Set-IPAllowListProvider Set-IPAllowListProvidersConfig Set-IPBlockListConfig ' +
				'Set-IPBlockListProvider Set-IPBlockListProvidersConfig Set-JournalRule ' +
				'Set-Mailbox Set-MailboxCalendarSettings Set-MailboxDatabase Set-MailboxServer ' +
				'Set-MailContact Set-MailPublicFolder Set-MailUser Set-ManagedContentSettings ' +
				'Set-ManagedFolder Set-ManagedFolderMailboxPolicy Set-MessageClassification ' +
				'Set-OabVirtualDirectory Set-OfflineAddressBook Set-OrganizationConfig ' +
				'Set-OutlookAnywhere Set-OutlookProvider Set-OwaVirtualDirectory Set-PopSettings ' +
				'Set-PublicFolder Set-PublicFolderDatabase Set-ReceiveConnector Set-RecipientFilterConfig ' +
				'Set-RemoteDomain Set-ResourceConfig Set-RoutingGroupConnector Set-SendConnector ' +
				'Set-SenderFilterConfig Set-SenderIdConfig Set-SenderReputationConfig Set-StorageGroup ' +
				'Set-SystemMessage Set-TransportAgent Set-TransportConfig Set-TransportRule ' +
				'Set-TransportServer Set-UMAutoAttendant Set-UMDialPlan Set-UMIPGateway ' +
				'Set-UMMailbox Set-UMMailboxPIN Set-UMMailboxPolicy Set-UmServer Set-UMVirtualDirectory ' +
				'Set-User Set-WebServicesVirtualDirectory Set-X400AuthoritativeDomain ' +
				'Start-ClusteredMailboxServer Start-EdgeSynchronization Start-ManagedFolderAssistant ' +
				'Stop-ClusteredMailboxServer Stop-ManagedFolderAssistant Suspend-Message ' +
				'Suspend-PublicFolderReplication Suspend-Queue Suspend-StorageGroupCopy ' +
				'Test-ActiveSyncConnectivity Test-EdgeSynchronization Test-ExchangeSearch ' +
				'Test-ImapConnectivity Test-IPAllowListProvider Test-IPBlockListProvider ' +
				'Test-Mailflow Test-MAPIConnectivity Test-OutlookWebServices Test-OwaConnectivity ' +
				'Test-PopConnectivity Test-ReplicationHealth Test-SenderId Test-ServiceHealth ' +
				'Test-SystemHealth Test-UMConnectivity Test-WebServicesConnectivity ' +
				'Uninstall-TransportAgent Update-AddressList Update-EmailAddressPolicy ' +
				'Update-FileDistributionService Update-GlobalAddressList Update-OfflineAddressBook ' +
				'Update-PublicFolder Update-PublicFolderHierarchy Update-Recipient Update-SafeList ' +
				'Update-StorageGroupCopy';
	var alias = 'ac asnp clc cli clp clv cpi cpp cvpa diff epal epcsv fc fl ' +
				'ft fw gal gc gci gcm gdr ghy gi gl gm gp gps group gsv ' +
				'gsnp gu gv gwmi iex ihy ii ipal ipcsv mi mp nal ndr ni nv oh rdr ' +
				'ri rni rnp rp rsnp rv rvpa sal sasv sc select si sl sleep sort sp ' +
				'spps spsv sv tee cat cd cp h history kill lp ls ' +
				'mount mv popd ps pushd pwd r rm rmdir echo cls chdir del dir ' +
				'erase rd ren type % \\?';

	this.regexList = [
		{ regex: /#.*$/gm,										css: 'comments' },  // one line comments
		{ regex: /\$[a-zA-Z0-9]+\b/g,							css: 'value'   },   // variables $Computer1
		{ regex: /\-[a-zA-Z]+\b/g,								css: 'keyword' },   // Operators    -not  -and  -eq
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },    // strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,	css: 'string' },    // strings
		{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),	css: 'keyword' },
		{ regex: new RegExp(this.getKeywords(alias), 'gmi'),	css: 'keyword' }
	];
};

SyntaxHighlighter.brushes.PowerShell.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.PowerShell.aliases = ['powershell', 'ps'];
