[Templates]
$ParCtlCurProfile = ParCtl.ProfileId
$FullPwdProtEnabled = (EnablePswrdProtect && AskWhenSaveSetting && AskWhenExitApp)
$ParCtlProfileSingle = (!(s_IsStateRunning(ParCtl.state) && (find(ParCtl.Profiles, "Id == #eParCtl_ProfId_Parent").Enabled || find(ParCtl.Profiles, "Id == #eParCtl_ProfId_Teen").Enabled)))

[MainWindow.ContentFilter]
@           = $TaskTab ext(1)
WorkArea    = [MainWindow.ContentFilter_WorkArea]

[MainWindow.ContentFilter_WorkArea]
@           = $TaskWorkArea
Home        = [ProfileHome] alias(taskview) ns(ContentFilter) subst(Tasks([MainWindow.CF.Tasks]) Group1([MainWindow.ContentFilter_WorkArea_Home_Body]) Group2([MainWindow.ContentFilter_WorkArea_SysPerf]))

[MainReport.ContentFilter]
@ = [ProfileReport] subst(Group1([MainReport.ContentFilter_Events]) Group2([MainWindow.ContentFilter_WorkArea_Statistics]) Group3([MainWindow.ContentFilter_WorkArea_StatChart]))

[MainReport.ContentFilter_Events]
d = [Product_Events] subst(Report(v(#eTASK_GROUP_UC) filter(TaskGroup == #eTASK_GROUP_UC) prm(#dbRTP)) Action(visible(0)) views([MainWindow.Antivirus_Filters]))

[MainWindow.ContentFilter_WorkArea_Statistics]
@ = 
Data = [Product_Statistics_List] filter(Counter==#eBanner||Counter==#eSpam||Counter==#eUnwantedWebContent)

[MainWindow.ContentFilter_WorkArea_StatChart]
Legend  = [MainWindow.ContentFilter_WorkArea_SysPerf_Legend_Detected] a(cb)
Body    = [MainWindow.ContentFilter_WorkArea_StatChart_Body]

[MainWindow.ContentFilter_WorkArea_StatChart_Body]
@       = a(lp) sz(p,p)
Chart2  = [ProfileHome_ChartStat] subst(Legend(use(0)) Name(text($Total)) Chart([MainWindow.ContentFilter_WorkArea_StatChart_All]))      a(lt) sz(p,p) rs(50)
Chart3  = [ProfileHome_ChartStat] subst(Legend(use(0)) Name(text(s_date(0))) Chart([MainWindow.ContentFilter_WorkArea_StatChart_Today])) a(at) sz(p,p)

[MainWindow.ContentFilter_WorkArea_StatChart_All]
@      = $ChartStat
Plot   = t(chartplotarea)
AxisY  = $ChartStatAxisY
AxisX  = $ChartStatAxisX
Data1  = $ChartStatData bg("Chart2") v(Blocked) filter(Counter == #eSpam)               tt(s_RepDetectedType(#eSpam)) use(f_isInstalled("Anti_Spam"))
Data2  = $ChartStatData bg("Chart6") v(Blocked) filter(Counter == #eBanner)             tt(s_RepDetectedType(#eBanner)) use(f_isInstalled("AdBlocker"))
Data3  = $ChartStatData bg("Chart5") v(Blocked) filter(Counter == #eUnwantedWebContent) tt(s_RepDetectedType(#eUnwantedWebContent)) use(f_isInstalled("ParCtl"))

[MainWindow.ContentFilter_WorkArea_StatChart_Today]
@      = $ChartStat
Plot   = t(chartplotarea)
AxisY  = $ChartStatAxisY
AxisX  = $ChartStatAxisX
Data1  = $ChartStatData bg("Chart2") v(Blocked) filter((dategroup(Date) == 0) && (Counter == #eSpam))               tt(s_RepDetectedType(#eSpam)) use(f_isInstalled("Anti_Spam"))
Data2  = $ChartStatData bg("Chart6") v(Blocked) filter((dategroup(Date) == 0) && (Counter == #eBanner))             tt(s_RepDetectedType(#eBanner)) use(f_isInstalled("AdBlocker"))
Data3  = $ChartStatData bg("Chart5") v(Blocked) filter((dategroup(Date) == 0) && (Counter == #eUnwantedWebContent)) tt(s_RepDetectedType(#eUnwantedWebContent)) use(f_isInstalled("ParCtl"))

[MainWindow.ContentFilter_WorkArea_Home_Body]
@           = ext(1)
Anti_Spam   = [MainWindow.ContentFilter.Anti_Spam.Body] xy(,,,7) use(f_isInstalled(ctl.id))
AdBlocker   = [MainWindow.ContentFilter.AdBlocker.Body] xy(,,,7) use(f_isInstalled(ctl.id))
ParCtl      = [MainWindow.ContentFilter.ParCtl.Body] xy(,,,7) use(f_isInstalled(ctl.id))

[ContentFilterChartMenu]
@ = t(menu) bg1("MenuIconBg") at(enum) v(Gui.ContentFilterChartMode)
SwitchToCheckedObjects  = at(radiolike) text(s_ContentFilterHeaderText(#ChartMode_CheckedObjects)) v(#ChartMode_CheckedObjects)
SwitchToDetectedObjects = at(radiolike) text(s_ContentFilterHeaderText(#ChartMode_DetectedObjects)) v(#ChartMode_DetectedObjects)

[MainWindow.ContentFilter_WorkArea_SysPerf]
@ = 
Checked = [ProfileHome_Chart] subst(Name() Chart([MainWindow.ContentFilter_WorkArea_SysPerf_Chart_Checked]) Legend([MainWindow.ContentFilter_WorkArea_SysPerf_Legend_Checked])  ) visible(Gui.ContentFilterChartMode!=#ChartMode_DetectedObjects)
Detected = [ProfileHome_Chart] subst(Name() Chart([MainWindow.ContentFilter_WorkArea_SysPerf_Chart_Detected]) Legend([MainWindow.ContentFilter_WorkArea_SysPerf_Legend_Detected])  ) visible(Gui.ContentFilterChartMode==#ChartMode_DetectedObjects)

[MainWindow.ContentFilter_WorkArea_SysPerf_Legend_Checked]
Legend1     = [ChartLegend] subst(Text() Color(bg("Chart2"))) use(f_isInstalled("Anti_Spam"))
Legend2     = [ChartLegend] subst(Text() Color(bg("Chart6"))) use(f_isInstalled("AdBlocker"))
Legend3     = [ChartLegend] subst(Text() Color(bg("Chart5"))) use(f_isInstalled("ParCtl"))

[MainWindow.ContentFilter_WorkArea_SysPerf_Chart_Checked]
@       = t(chart) alias(chartsink) cprops(line,diff,60) refresh(1000) at(noborder,clickable) onclick($ProfileHome_Report) onrclick(menu("ContentFilterChartMenu"))
Report  = $Link a(lt) xy(20) text($Reports) onclick(window("MainReport:ContentFilter"))
line1   = t(chartline) sz(0,0) id(Anti_Spam_MailCount)    bg("Chart2") tt($TipText_Anti_Spam_MailCount) use(f_isInstalled("Anti_Spam"))
line2   = t(chartline) sz(0,0) id(AdBlocker_nURLsChecked) bg("Chart6") tt($TipText_AdBlocker_nURLsChecked) use(f_isInstalled("AdBlocker"))
line3   = t(chartline) sz(0,0) id(ParCtl_nURLsChecked)    bg("Chart5") tt($TipText_ParCtl_nURLsChecked) use(f_isInstalled("ParCtl"))
Plot    = t(chartplotarea) f("PlotAreaFont")
AxisY   = $DynamicChartAxisY
AxisX   = $DynamicChartAxisX

[MainWindow.ContentFilter_WorkArea_SysPerf_Legend_Detected]
@           = sz(a,a) ext(1)
Legend1     = [ChartLegend] subst(Text() Color(bg("Chart2"))) use(f_isInstalled("Anti_Spam"))
Legend2     = [ChartLegend] subst(Text() Color(bg("Chart6"))) use(f_isInstalled("AdBlocker"))
Legend3     = [ChartLegend] subst(Text() Color(bg("Chart5"))) use(f_isInstalled("ParCtl"))

[MainWindow.ContentFilter_WorkArea_SysPerf_Chart_Detected]
@       = t(chart) alias(chartsink) cprops(line,diff,60) refresh(1000) at(noborder,clickable) onclick($ProfileHome_Report) onrclick(menu("ContentFilterChartMenu"))
Report  = $Link a(lt) xy(20) text($Reports) onclick(window("MainReport:ContentFilter"))
line1   = t(chartline) sz(0,0) id(Anti_Spam_MailSpamCount) bg("Chart2") tt($TipText_Anti_Spam_MailSpamCount) use(f_isInstalled("Anti_Spam"))
line2   = t(chartline) sz(0,0) id(AdBlocker_nURLsDetected) bg("Chart6") tt($TipText_AdBlocker_nURLsDetected) use(f_isInstalled("AdBlocker"))
line3   = t(chartline) sz(0,0) id(ParCtl_nURLsDetected)    bg("Chart5") tt($TipText_ParCtl_nURLsDetected) use(f_isInstalled("ParCtl"))
Plot    = t(chartplotarea) f("PlotAreaFont")
AxisY   = $DynamicChartAxisY
AxisX   = $DynamicChartAxisX

[MainWindow.ContentFilter.Anti_Spam.Body]
@       = $TaskSubGroup
Check   = [TaskCheck]
Level   = $TaskVal subst(Name() Val($Link text($SettingsLevel) onclick(menu("[SettingsLevelMenu] subst(Customize(onclick(windowDlg(\"AntiSpamSettings\"))))"))))
Bases   = $TaskVal subst(Name() Val([MainWindow.ContentFilter.Anti_Spam.Body_Bases]))

[MainWindow.ContentFilter.Anti_Spam.Body_Bases]
@               = sz(p,a)
Status          = a(rt)
Train           = $Link a(ra) onclick(f_StartAntiSpamTrainingWizard())
StatusNeedTrain = a(ps)

[MainWindow.ContentFilter.ParCtl.Body]
@                   = $TaskSubGroup
Check   			= [TaskCheck_ParCtl]
Level               = $TaskVal subst(Name() Val($Link text(depend($ParCtlCurProfile) != #eParCtl_ProfId_Parent ? switch(find(Profiles, "Id == $ParCtlCurProfile").Level, "SettingsLevel") : $Unrestricted) onclick(menu("SettingsLevelMenu_ParCtl"))))
Profile             = $TaskVal subst(Name() Val($Link text(s_ParCtlProfileName(depend($ParCtlCurProfile))) onclick(dialog("ParCtl_SwitchProfile_Dialog")))) visible(!$CurProfileSingle)
ProfileSingle       = $TaskVal subst(Name() Val(text(s_ParCtlProfileName(depend($ParCtlCurProfile))))) visible($CurProfileSingle)

[TaskCheck_ParCtl]
@ = [TaskCheck] onclick(menu("[TaskCheckMenu] subst(Enable(onclick( s_ProfileStateClick(state); if(!s_IsStateRunning(state) && !$FullPwdProtEnabled, f_ParCtlPasswordNotEnabled()) )))"))

[MainWindow.ContentFilter.AdBlocker.Body]
@           = $TaskSubGroup
Check       = [TaskCheck]
Database    = $TaskVal subst(Name() Val(text(AdBlockService.DatabaseRecCount)))
BlackWhite  = $TaskVal subst(Name() Val($Link onclick(windowDlg("AdBlockerSettings"))))

[MainWindow.CF.Tasks]
@           = ext(1)
PrivacyCleaner  = [Task.PrivacyCleanerWizard]
Sniffer     = [Task.Sniffer] visible(Gui.ShowNetDetails)

;------------- AdBlockerSettings -----------

[AdBlockerSettingsBlacklist]
@   = $DlgAttr at(resizable) alias(taskedit) sz(420,330) h(15658)
List = [AdBlockerSettingsBlacklist_List]

[AdBlockerSettingsBlacklist_List]
@    = $List sz(p,280) alias(vector) at(noheader) v(AdBlockService.Filter.BlackList) unique(tolower(Name) == tolower(newItem.Name))
Name    = at(checked) sz(a) text(Name) v(Enabled) sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Add(onclick(if(dialog("AdBlocker_RuleEdit"),adblock_updateBlackStats(Name)))) Import(use(1) onclick(import(f_browseFileOpen($List_Import, "txt"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(export(f_browseFileSave($List_Export, "txt"), $ExportAll, msg("AnyError")))))

[AdBlockerSettingsWhitelist]
@   = $DlgAttr at(resizable) alias(taskedit) sz(500,330) h(15657)
List = [AdBlockerSettingsWhitelist_List]

[AdBlockerSettingsWhitelist_List]
@       = $List sz(p,280) alias(vector) at(noheader) v(AdBlockService.Filter.WhiteList) unique(tolower(Name) == tolower(newItem.Name))
Name    = at(checked) sz(a) text(Name) v(Enabled) sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Add(onclick(if(dialog("AdBlocker_RuleEdit"), adblock_updateWhiteStats(Name)))) Import(use(1) onclick(import(f_browseFileOpen($List_Import, "txt"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(export(f_browseFileSave($List_Export, "txt"), $ExportAll, msg("AnyError")))))

[AdBlocker_RuleEdit]
@ = [EditSimpleItem] h(5416) subst(Example()) ext(1)

;------------- AntiSpamSettings -----------
[AntiSpamSettings]
@       = $DlgAttr at(resizable) alias(taskedit) sz(455,465) text($ProfileName)
Tab     = [AntiSpamSettings_Tab]

[AntiSpamSettings_Tab]
@				= $Tab
ExactMethods	= [AntiSpamSettings_Tab_ExactMethods] mg(7,7) h(14974)
ExpertMethods	= [AntiSpamSettings_Tab_ExpertMethods] mg(7,7) h(14980)
Integration		= [AntiSpamSettings_Tab_Integration] mg(7,7) h(14982)

[AntiSpamSettings_Tab_ExactMethods]
@           = sz(p,p)
SpamSection = [AntiSpamSettings_Tab_ExactMethods_SpamSection]
HamSection  = [AntiSpamSettings_Tab_ExactMethods_HamSection]

[AntiSpamSettings_Tab_ExactMethods_SpamSection]
@				= $SettingsGroup
UseAntiphishing	= t(check) sz(a,a) v(UseAntiphishing)
UseWMUF			= t(check) sz(a,a) a(la) xy(,13) v(UseWMUF)
MsgNotForMe		= t(check) sz(a,a) a(la) xy(,13) v(UseNotForMeValidate.Enabled)
MyAdresses      = $Button_Medium a(rs) xy(,-4) enable(UseNotForMeValidate.Enabled) onclick(dialog("AntiSpam_AddressList"))
UseBlackAddr	= t(check) sz(a,a) a(la) xy(,7) v(UseBlackAddresses)
BlackAddresses	= $Button_Medium a(rs) xy(,-4) enable(UseBlackAddresses) onclick(dialog("AntiSpam_BlackList"))
UseBlackWords	= t(check) sz(a,a) a(la) xy(,7) v(UseBlackWords)
BlackWords		= $Button_Medium a(rs) xy(,-4) onclick(dialog("AntiSpam_BlackWords")) enable(UseBlackWords)

[AntiSpamSettings_Tab_ExactMethods_HamSection]
@				= $SettingsGroup
UseWhiteAddr	= t(check) sz(a,a) v(UseWhiteAddresses)
WhiteAddresses	= $Button_Medium a(rs) xy(,-4) enable(UseWhiteAddresses) onclick(dialog("AntiSpam_WhiteList"))
UseWhiteWords	= t(check) sz(a,a) a(la) xy(,7) v(UseWhiteWords)
WhiteWords		= $Button_Medium a(rs) xy(,-4) enable(UseWhiteWords) onclick(dialog("AntiSpam_WhiteWords"))

[AntiSpam_BlackList]
@       = $DlgAttr sz(420,278) alias(taskedit) h(14975)
Body    = [AntiSpam_BlackList_Body]

[AntiSpam_BlackWords]
@       = $DlgAttr sz(420,336) alias(taskedit) h(14976)
Body	= [AntiSpam_BlackWords_Body]

[AntiSpam_BlackList_Body]
@				= sz(p,p) xy(,,,$DialogPanelSizeY)
BlockedSenders  = [AntiSpamSettings_BlockedSenders]

[AntiSpamSettings_BlockedSenders]
@       = sz(p,p) a(lt) rs(100,100)
BSList  = [AntiSpamSettings_BlockedSenders_BSList]

[AntiSpamSettings_BlockedSenders_BSList]
@       = $List alias(vector) at(sorted) a(la) enable(UseBlackAddresses) v(BlackAddrs) unique(tolower(Rule) == tolower(newItem.Rule))
Rule    = at(checked) text(Rule) v(Enabled)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_AddressEdit"))) Import(use(1) onclick(importcsv(f_browseFileOpen($List_Import, "txt,csv"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "txt,csv"), $ExportAll, msg("AnyError")))))

[AntiSpam_BlackWords_Body]
@				= sz(p,p) xy(,,,$DialogPanelSizeY)
BlackWords		= [AntiSpam_BlackWords_Settings]

[AntiSpam_BlackWords_Settings]
@				= sz(p,p) a(lt) rs(100,100)
Comment			= sz(a,a) a(la) f("Normal_Descr")
BWList			= [AntiSpamSettings_BlackWords_List] xy(,7,,25)
ObsceneCheck	= $Check v(UseObsceneWords) a(lb)
ObsceneConfig	= $Link a(as) enable(UseObsceneWords) onclick(if (dialog("AntiSpam_Obscene_WordEdit_Agreements"), dialog("AntiSpamSettings_ObsceneWords_Dlg")))

[AntiSpamSettings_BlackWords_List]
@       = $List alias(vector) at(sorted) a(la) enable(UseBlackWords) v(BlackWords) unique(tolower(Rule) == tolower(newItem.Rule))
Rule    = at(checked, fixedpos) text(Rule) v(Enabled)
Level   = text(Level)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_BlackWordEdit"))) Import(use(1) onclick(importcsv(f_browseFileOpen($List_Import, "csv"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "csv"), $ExportAll, msg("AnyError")))))

[AntiSpam_WhiteList]
@       = $DlgAttr sz(410,a) alias(taskedit) h(14978)
Body    = [AntiSpam_WhiteList_Body]

[AntiSpam_WhiteWords]
@       = $DlgAttr sz(410,a) alias(taskedit) h(14979)
Body    = [AntiSpam_WhiteWords_Body]

[AntiSpam_WhiteList_Body]
@				= sz(p,a) xy(,,,$DialogPanelSizeY)
TrustedSenders  = [AntiSpamSettings_Tab_White_TrustedSenders]

[AntiSpam_WhiteWords_Body]
@				= sz(p,a) xy(,,,$DialogPanelSizeY)
TrustedWords    = [AntiSpamSettings_Tab_White_TrustedWords]

[AntiSpamSettings_Tab_White_TrustedSenders]
@       = sz(p,258) a(lt) rs(100,50)
TSList  = [AntiSpamSettings_Tab_White_TrustedSenders_TSList_Group]

[AntiSpamSettings_Tab_White_TrustedSenders_TSList_Group]
@			= sz(p,p) a(la)
AddOnTrain	= $Check a(lb) v(AddSenderToWhiteListOnTrain)
TSList		= [AntiSpamSettings_Tab_White_TrustedSenders_TSList]

[AntiSpamSettings_Tab_White_TrustedSenders_TSList]
@       = $List a(lp) alias(vector.AsEmailsList) xy(,3,,3) at(sorted) enable(UseWhiteAddresses) v(WhiteAddrs) unique(tolower(Rule) == tolower(newItem.Rule))
Rule    = at(checked) text(Rule) v(Enabled)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_AddressEdit"))) Import(use(1) onclick(menu("AntiSpamSettings_Tab_White_TrustedSenders_TSList.ImportMenu"))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "txt,csv"), $ExportAll, msg("AnyError")))))

[AntiSpamSettings_Tab_White_TrustedSenders_TSList.ImportMenu]
@						= t(menu)
ImportFromFile			= onclick(dialog("AntiSpam_AddressEdit"))
ImportFromAddressBook	= onclick(dialog("AddrBookDlg"))

[AntiSpamSettings_Tab_White_TrustedWords]
@       = sz(p,229) a(lt) rs(100,50)
TWList  = [AntiSpamSettings_Tab_White_TrustedWords_TWList]

[AntiSpamSettings_Tab_White_TrustedWords_TWList]
@       = $List alias(vector) xy(,3) at(sorted) a(la) enable(UseWhiteWords) v(WhiteWords) unique(tolower(Rule) == tolower(newItem.Rule))
Rule    = at(checked) text(Rule) v(Enabled)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_WordEdit"))) Import(use(1) onclick(importcsv(f_browseFileOpen($List_Import, "txt,csv"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "txt,csv"), $ExportAll, msg("AnyError")))))


[AntiSpamSettings_Tab_ExpertMethods]
@           = sz(p,p)
SpamLevel	= [AntiSpamSettings_Tab_ExpertMethods_SpamLevel]
Methods		= [AntiSpamSettings_Tab_ExpertMethods_Methods]
Advanced	= $Button a(rb) sz(150,$Button_CY) onclick(dialog("AntiSpamSettings_Advanced"))

[AntiSpamSettings_Tab_ExpertMethods_SpamLevel]
@				= $SettingsGroup
CertainSpam		= [AntiSpamSettings_Tab_Algorithms_CertainSpam]
ProbableSpam	= [AntiSpamSettings_Tab_Algorithms_PossibleSpam]

[AntiSpamSettings_Tab_Algorithms_CertainSpam]
@					= a(la) sz(p,a)
Description			= 
CertainSpamSlider   = t(slider) at(noticks) a(la) sz(p,30) xy(,,60) nl(1,99) v(ProbableSpamHighLevel) onchange( if(ProbableSpamHighLevel < ProbableSpamLowLevel, ProbableSpamLowLevel = ProbableSpamHighLevel) )
CertainSpamRate     = t(edit) at(number) a(rs) sz(50) nl(1,99) v(ProbableSpamHighLevel) onchange( if(ProbableSpamHighLevel < ProbableSpamLowLevel, ProbableSpamLowLevel = ProbableSpamHighLevel) )

[AntiSpamSettings_Tab_Algorithms_PossibleSpam]
@					= a(la) sz(p,a)
Description			= 
PossibleSpamSlider  = t(slider) at(noticks) a(la) xy(,,60) sz(p,30) nl(1,99) v(ProbableSpamLowLevel) onchange( if(ProbableSpamHighLevel < ProbableSpamLowLevel, ProbableSpamHighLevel = ProbableSpamLowLevel) )
PossibleSpamRate    = t(edit) at(number) a(rs) sz(50) nl(1,99) v(ProbableSpamLowLevel) onchange( if(ProbableSpamHighLevel < ProbableSpamLowLevel, ProbableSpamHighLevel = ProbableSpamLowLevel) )

[AntiSpamSettings_Tab_ExpertMethods_Methods]
@					= $SettingsGroup
EnableEuristic		= t(check) sz(a,a) oninit(ctl.value = 1) enable(0)
UseGSG				= t(check) sz(a,a) a(la) xy(,7) v(UseGSG)
AnalyzeAttachments	= t(check) sz(a,a) a(la) xy(,7) v(bmask(ParseFlags, #pfParseAdditional))
UseBayes			= t(check) sz(a,a) a(la) xy(,7) v(UseBayesian)

[AntiSpamSettings_Advanced]
@       = $DlgAttr sz(460,a) alias(taskedit) h(14983)
Body    = [AntiSpamSettings_Advanced_Body]

[AntiSpamSettings_Advanced_Body]
@					= sz(p,a) xy(,,,$DialogPanelSizeY)
AnalyzeByAddress	= [AntiSpamSettings_Advanced_Body_AnalyzeByAddress]
AnalyzeBySubject	= [AntiSpamSettings_Advanced_Body_AnalyzeBySubject]
AnalyzeByBody		= [AntiSpamSettings_Advanced_Body_AnalyzeByBody]

[AntiSpamSettings_Advanced_Body_AnalyzeByAddress]
@						= $SettingsGroup
HeadersToUndisclosed	= t(check) sz(a,a) a(la) v(UseHeadersToUndisclosed)
HeadersFromToDigits		= t(check) sz(a,a) a(la) xy(,7) v(UseHeadersFromToDigits)
HeadersFromToNoDomain	= t(check) sz(a,a) a(la) xy(,7) v(UseHeadersFromToNoDomain)

[AntiSpamSettings_Advanced_Body_AnalyzeBySubject]
@						= $SettingsGroup
HeadersSubjectTooLong	= t(check) sz(a,a) a(la) v(UseHeadersSubjectTooLong)
HeadersSubjectWsDots	= t(check) sz(a,a) a(la) xy(,7) v(UseHeadersSubjectWsDots)
HeadersSubjectDigitTime	= t(check) sz(a,a) a(la) xy(,7) v(UseHeadersSubjectDigitTime)

[AntiSpamSettings_Advanced_Body_AnalyzeByBody]
$IsLat					= env("Localization") == "en"
@						= $SettingsGroup
ImagesOnly				= $Check a(la) v(UseImagesOnlyCheck)
IvalidTags				= $Check a(la) xy(,7) v(UseInvalidTagsCheck)
Scripts                 = $Check a(la) xy(,7) v(UseScriptsCheck)
HiddenElements          = $Check a(la) xy(,7) v(UseHiddenElementsCheck)
NonLatLimit             = use($IsLat) $Check a(la) xy(,7) v(UseNonLatLimit.Enabled)
NonLatLimitPercent      = use($IsLat) t(edit) at(number) a(as) sz(50) nl(1,100) xy(1,-3) enable(UseNonLatLimit.Enabled) v(NonLatLimit)
NonLatLimitpart2        = use($IsLat) a(as) xy(2,2)

[AntiSpamSettings_Tab_Integration]
@           = sz(p,p)
Actions		= [AntiSpamSettings_Tab_Integration_Actions]
Embedding	= [AntiSpamSettings_Tab_Integration_Embedding]
Incomming	= [AntiSpamSettings_Tab_Integration_Incomming]
Outgoing	= [AntiSpamSettings_Tab_Integration_Outgoing]
Exceptions	= [AntiSpamSettings_Tab_Integration_Exceptions]

[AntiSpamSettings_Tab_Integration_Actions]
@						= $SettingsGroup
UseSpamPrefix			= t(check) sz(a,a) v(UseSpamPrefix)
SpamPrefix				= t(edit) a(as) sz(105,a) xy(,-2) v(SpamSubjectPrefix) enable(UseSpamPrefix)
SpamDescription			= a(as) xy(10,) enable(UseSpamPrefix)
UseProbableSpamPrefix	= t(check) sz(a,a) a(la) xy(,15) v(UseProbableSpamPrefix)
ProbableSpamPrefix		= t(edit) a(as) sz(105,a) xy(,-2) v(ProbableSpamSubjectPrefix) enable(UseProbableSpamPrefix)
ProbableSpamDescription	= a(as) xy(10,) enable(UseProbableSpamPrefix)
 
[AntiSpamSettings_Tab_Integration_Embedding]
@						= $SettingsGroup
Traffic                 = t(check) sz(a,a) v(CheckTrafficMonitorMessages)
ClientOutlook           = t(check) sz(a,a) a(la) xy(,7) v(bmask(SetOfExternalASPlugins, #mpOutlook))
ClientOutlookExpress    = t(check) sz(a,a) a(la) xy(,7) v(bmask(SetOfExternalASPlugins, #mpOutlookExpress))
ClientThunderbird       = t(check) sz(a,a) a(la) xy(,7) v(bmask(SetOfExternalASPlugins, #mpThunderbird))
ClientTheBat            = t(check) sz(a,a) a(la) xy(,7) v(bmask(SetOfExternalASPlugins, #mpTheBat))

[AntiSpamSettings_Tab_Integration_Incomming]
@				= $SettingsGroup
ShowMailWasher  = t(check) sz(a,a) v(ShowMailwasher)

[AntiSpamSettings_Tab_Integration_Outgoing]
@				= $SettingsGroup
TrainOnOutgoing	= t(check) sz(a,a) a(la) v(invert(CheckIncomingMessagesOnly))

[AntiSpamSettings_Tab_Integration_Exceptions]
@					= $SettingsGroup
DontCheckMsExNative = $Check v(UseCannotBeSpamValidate.Enabled)


[AddrBookDlg]
@ = $DlgAttr alias(addrbookdlg) sz(300,330) at(resizable) h(5433)
Body=[AddrBookDlgBody]

[AddrBookDlgBody]
@ = $DlgBodyAttr sz(p,p)
AddrTree = t(tree) $Next_Control alias(addrbooktree) at(checked) sz(p, p)

[AntiSpam_AddressList]
@       = $DlgAttr sz(420,258) ext(1) h(5443)
List    = [AntiSpam_AddressList_List]

[AntiSpam_AddressList_List]
@       = $List alias(vector) xy(,,,$DialogPanelSizeY) at(noheader) v(MyAddrs)
Rule    = at(checked) sz(a) text(Rule) v(Enabled)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_AddressEdit"))) Import(use(1) onclick(importcsv(f_browseFileOpen($List_Import, "txt,csv"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "txt,csv"), $ExportAll, msg("AnyError")))))

[AntiSpam_AddressEdit]
@ = [EditSimpleItem] subst(Name(v(Rule) onok(if(!Rule, balloon("AdressNotSpecified")))) Example()) ext(1) h(5430)

[AntiSpam_WordEdit]
@ = [EditSimpleItem] subst(Name(v(Rule) onok(if(!Rule, balloon("WordNotSpecified")))) Example()) ext(1) h(5431)

[AntiSpam_BlackWordEdit]
@           = $DlgAttr sz(320,a) h(5432)
Rule        = t(edit) nl(100) sz(p) v(Rule)
Example     = a(la) f("Normal_Grey") sz(a,a)
LevelText   = a(la) xy(,7) sz(a,a)
Level       = t(edit) at(number) a(rs) sz(50) nl(0,100) xy(,-2,,$DialogPanelSizeY) v(Level)

[AntiSpam_Obscene_WordEdit_Agreements]
@		= $DlgAttr sz(360,150) btns(Ok(enable(l_agree))) oninit(l_agree=0) h(14977)
Body	= [AntiSpam_Obscene_WordEdit_Agreements_Body]

[AntiSpam_Obscene_WordEdit_Agreements_Body]
@       = sz(p,a) xy(,3) 
Agreements = t(edit) at(multiline,readonly, vscroll) sz(p,75)
IsAgree  = $Check xy(,7) v(l_agree)

[AntiSpamSettings_ObsceneWords_Dlg]
@       = $DlgAttr sz(430,296) alias(taskedit) h(14986)
Body    = [AntiSpamSettings_ObsceneWords_Body]

[AntiSpamSettings_ObsceneWords_Body]
@		= sz(p,p) xy(,,,$DialogPanelSizeY)
ObsceneWordsList = [AntiSpamSettings_ObsceneWords_BWList] sz(p,p)

[AntiSpamSettings_ObsceneWords_BWList]
@       = $List alias(vector) at(sorted) v(ObsceneWords) enable(UseObsceneWords) unique(tolower(Rule) == tolower(newItem.Rule))
Rule    = at(checked, fixedpos) text(Rule) v(Enabled)
Level   = text(Level) a(c)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("AntiSpam_BlackWordEdit"))) Import(use(1) onclick(importcsv(f_browseFileOpen($List_Import, "csv"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(exportcsv(f_browseFileSave($List_Export, "csv"), $ExportAll, msg("AnyError")))))



;------------- AS_Details -------------

[AntiSpam_MailDetails]
@ = $DlgAttrBase sz(450,300) at(resizable,a_close) h(7127)
Body = [AS_Details_Body] ns(objectdata(ObjectID))

[AS_Details_Body]
@               = $DlgBodyAttr
FromLabel		= a(lt)
From			= a(ls) xy(80) text(Sender=="\"\" <:>" ? "" : Sender)
SubjectLabel	= a(la) xy(,7)
Subject         = a(ls) xy(80) text(s_MessageSubj(Subject))
TimeLabel		= a(la) xy(,7)
Time			= a(ls) xy(80) text(datetimeDT(Timestamp))
CategoryLabel	= a(la) xy(,7)
Category		= a(ls) xy(80) text(s_MessageCategoryName(Category)) i(s_MessageCategoryIcon(Category))
Verdicts        = [AS_Details_Verdicts] a(la) sz(p,p) xy(,7)

[AS_Details_Verdicts]
@ = $List v(Verdicts) alias(vector)
Algorithm       = sz(250) text(s_ReasonEx(Algorithm))
Description     = sz(120) text(Description)
Level           = text(Level)

[ParCtl_SwitchProfile_Dialog]
@       = $DlgAttr sz(350,a) alias(taskedit) ns(ParCtl)
Body    = [ParCtl_SwitchProfile_Dialog_Body]

[ParCtl_SwitchProfile_Dialog_Body]
@           = sz(p,a) xy(,,,$DialogPanelSizeY)
ProfileLbl  = a(la) xy(10,$Control_Shift)
Profile     = [ParCtl_Profile_Type]
PasswdLbl   = a(la) xy(10,$Control_Shift)
Passwd      = a(ls) xy(140,$Edit_CenterOffsetY) sz(p) t(edit) at(password) enable(ctl.Profile.value != #eParCtl_ProfId_Child) onok((find(Profiles, "Id == ctl.Profile.value").Password == hashMD5(ctl.Passwd.value)) ? (ProfileId = ctl.Profile.value; savesettings(); #true) : (($IsWin2KOS)? msg("ErrPswrdWrong"):balloon("ErrPswrdWrong")) )

[ParCtl_Profile_Type]
@               = a(ls) xy(140,$Edit_CenterOffsetY) sz(p) t(combo)
ParentProfile   = text(s_ParCtlProfileName(#eParCtl_ProfId_Parent)) v(#eParCtl_ProfId_Parent) use(find(Profiles, "Id == #eParCtl_ProfId_Parent").Enabled && $ParCtlCurProfile != #eParCtl_ProfId_Parent)
TeenagerProfile = text(s_ParCtlProfileName(#eParCtl_ProfId_Teen)) v(#eParCtl_ProfId_Teen) use(find(Profiles, "Id == #eParCtl_ProfId_Teen").Enabled && $ParCtlCurProfile != #eParCtl_ProfId_Teen)
ChildProfile    = text(s_ParCtlProfileName(#eParCtl_ProfId_Child)) v(#eParCtl_ProfId_Child) use($ParCtlCurProfile != #eParCtl_ProfId_Child)

[ParCtlSettings]
@   = $DlgAttr at(resizable) sz(385,440) alias(taskedit) text($ParCtl) onok(if(s_IsStateRunning(state) && !$FullPwdProtEnabled, f_ParCtlPasswordNotEnabled())) onapply(savesettings(); #true)
Tab = [ParCtlSettings_Tab]

[ParCtlSettings_Tab]
@           = $Tab
Profile3    = [ParCtlSettings_Tab_Profile3] mg(7,7) h(14964)
Profile2    = [ParCtlSettings_Tab_Profile2] mg(7,7) h(14965)
Profile1    = [ParCtlSettings_Tab_Profile1] mg(7,7) h(14966)

[ParCtlSettings_Tab_Profile3]
@           = sz(p,p) text(s_ParCtlProfileName(#eParCtl_ProfId_Child)) ns(find(Profiles, "Id == #eParCtl_ProfId_Child")) 
Descr       = sz(273,a) a(ct) xy(,6,,6) 
Settings    = [ParCtlProfileSettView] a(la)

[ParCtlSettings_Tab_Profile2]
@           = sz(p,p) text(s_ParCtlProfileName(#eParCtl_ProfId_Teen)) ns(find(Profiles, "Id == #eParCtl_ProfId_Teen")) onok(if(!Enabled,f_ParCtlCheckUsersAssignedToProfile2()))
Settings    = [ParCtlProfileSettView] a(lb) xy(,7)
Operate     = [ParCtlProfileOperateView]

[ParCtlSettings_Tab_Profile1]
@       = sz(p,p) text(s_ParCtlProfileName(#eParCtl_ProfId_Parent)) ns(find(Profiles, "Id == #eParCtl_ProfId_Parent")) onok(if(!Enabled,f_ParCtlCheckUsersAssignedToProfile1()))
Descr   = sz(273,a) a(cb) xy(-3,48,,16) enable(Enabled)
;f("Normal_Grey")
Operate = [ParCtlProfileOperateView]

[ParCtlProfileSettView]
@           = ext(1) sz(p,a) enable(Enabled)
SecurityGrp = [ParCtlProfileSettView_SecurityGrp]
ActionGrp   = [ParCtlProfileSettView_ActionGrp]

[ParCtlProfileSettView_SecurityGrp]
@           = $SettingsGroup sz(p,93) xy(,$Group_Shift)
ProtLevel   = t(slider) sz(46,p) nl(0,2) at(vertical) v(bswitch(Level, "LevelGroup3_ProtLevel")) onchange(Filter.DenyCategoriesMask = switch(Level, "ParCtlProfileDefCategories")) visible(Level != #SETTINGS_LEVEL_CUSTOM)
ProtGroup   = [ParCtlProfileSettView_SecurityGrp_ProtGroup]
Reset       = $Button_Medium a(rb) tt($GroupLevelReset) onclick(Level = #SETTINGS_LEVEL_DEFAULT; Filter.DenyCategoriesMask = switch(Level, "ParCtlProfileDefCategories")) enable(Level != #SETTINGS_LEVEL_DEFAULT) text($ResetLevel)
Customize   = $Button_Medium a(pb) xy($Button_Shift,) text($Customize) tt($GroupLevelCustomize) onclick(dialog("ParCtl_ProfileFilter_Dlg"))

[ParCtlProfileSettView_SecurityGrp_ProtGroup]
@           = a(at) xy(10) sz(p,a)
HeaderText  = f("Normal_Bold") text(switch(Level, "SettingsLevel")) sz(a,a)
DescrText   = a(la) xy(10) sz(p) text(switch(Level, "ParCtl_ProtLevelDescr"))

[ParCtlProfileSettView_ActionGrp]
@           = $SettingsGroup v(DenyBadURL) xy(,$Group_Shift)
ReportOnly  = $Radio a(lt) v(0)
DenyReport  = $Radio xy(,7) v(1)

[ParCtlProfileOperateView]
@               = a(lp) sz(p,p) ext(1)
Enable          = t(check) sz(a,a) xy(8,7) v(Enabled)
PasswordLbl     = a(lt) sz(p,a) xy(20,30,177) enable(Enabled)
Password        = t(edit) sz(160,a) a(rs) at(passwordsetex) v(bihashMD5(Password)) onok(if(Enabled && !Password, balloon("ProfileEmptyPwdWarn"))) enable(Enabled)
Identification  = [ParCtlProfileOperateView_Identification]

[ParCtlProfileOperateView_Identification]
@           = $SettingsGroup xy(,14) sz(p,p) enable(Enabled)
Acclist     = [ParCtl_ProfileAccounts_List] a(lp) xy(,,,5) sz(p,p)

[ParCtl_ProfileAccounts_List]
@       = $List alias(vector) at(noheader) sz(p,200) v(users) filter(settings.ProfileId == Id) unique(UserId == newItem.UserId)
Name    = text(username(UserId)) i("useracc") sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Edit(use(0)) Add(onclick(if(dialog("ParCtl_BrowseAccount_Dlg"), (settings.serinit(users.ser().settingsByUserSerId()), if(f_UpdateExistUserProfile(users.find("UserId == \"" + UserId + "\""), Id), (settings.ProfileId = Id; #true)))))))

[SettingsLevelMenu_ParCtl]
@ = [SettingsLevelMenuBase] ns(find(Profiles, "Id == $ParCtlCurProfile")) subst(Level(v(Level) enable(Id != #eParCtl_ProfId_Parent) onchange(Filter.DenyCategoriesMask = switch(Level, "ParCtlProfileDefCategories"))) Customize(bp(ctl.selected = Level == #SETTINGS_LEVEL_CUSTOM) onclick(windowDlg("ParCtlSettings:Profile" + Id))))

;-------------- ParCtl_BrowseAccount_Dlg ------------------

[ParCtl_BrowseAccount_Dlg]
@	     = $DlgAttr sz(360,240) h(15187)
Body     = [ParCtl_BrowseAccount_DlgBody]

[ParCtl_BrowseAccount_DlgBody]
@	     = $DlgBodyAttr
ListText = t(text)
List 	 = [ParCtl_BrowseAccount_DlgBody_List]
Name     = t(richedit) a(bl) at(readonly) xy(,7) sz(230,22) text(username(UserId))
Browse   = $Button_Medium a(rs) onclick(browseAccount(UserId))

[ParCtl_BrowseAccount_DlgBody_List]
@        = $List xy(,22) sz(p,130) alias(useraccounts) at(noheader) v(UserId)
Name     = text(strVal1) i("useracc")

;---------- ParCtl_ProfileFilter_Dlg --------------

[ParCtl_ProfileFilter_Dlg]
@       = $DlgAttr sz(512,415) h(1337) alias(settings) onok(if(Filter.DenyCategoriesMask != switch(Level, "ParCtlProfileDefCategories"), Level = #SETTINGS_LEVEL_CUSTOM)) onclose(ctl.isDirty()? msg($AreYouRealyWantToCloseSettings, #m_yesno):#true)
Body    = [ParCtl_ProfileFilter_Dlg_Body]

[ParCtl_ProfileFilter_Dlg_Body]
@            = $Tab
DayTimeSpace = [ParCtl_ProfileTime_Dlg_Body_DayTimeSpace] mg(7,7) h(14968)
Options      = [ParCtl_ProfileTime_Dlg_Body_Options] mg(7,7) h(14969)
Additional   = [ParCtl_ProfileFilter_Additional_Tab] mg(7,7) h(14970)


[ParCtl_ProfileTime_Dlg_Body_DayTimeSpace]
@               = sz(p,p) mg(8,8)
DayTimeSpace	= t(weekplan) at(check(255,255,128),deny(255,128,128),monday) sz(462,180) f("Normal") v(WeekTimeSpace)
TextIcon		= i("warning") a(la) xy(,15)
Text			= t(text) a(ls) xy(20,,,)
UseDayTimeLimit = $Check a(la) xy(,15) v(UseDayTimeLimit)
DayTimeLimit    = t(timeedit) a(rs) xy(,-2) sz(80,22) at(seconds, 24h, notz) v(DayTimeLimit) enable(UseDayTimeLimit)

[ParCtl_ProfileTime_Dlg_Body_Options]
@      = a(lt) sz(p,p) mg(8,15)
Choice = [ParCtl_ProfileTime_Dlg_Body_Radio]

[ParCtl_ProfileTime_Dlg_Body_Radio]
@				 = sz(p,a) v(Filter.UseWhiteListOnly)
Other			 = $Radio v(0)
OtherGrp		 = [ParCtl_ProfileTime_Dlg_Body_OtherGrp] enable(!Filter.UseWhiteListOnly)
WhiteListOnly	 = $Radio xy(,7) v(1)
WhiteListOnlyBtn = $Button_Medium a(la) xy(20,7) onclick(dialog("ParCtl_ListOnly_Dlg")) enable(Filter.UseWhiteListOnly)
WarnIcon	     = i("warning") a(la) xy(20,$Group_Shift) enable(Filter.UseWhiteListOnly) 
WarnText	     = t(text) a(ls) sz(p,a) xy(40,0) enable(Filter.UseWhiteListOnly)

[ParCtl_ProfileTime_Dlg_Body_OtherGrp]
@				        = xy(20,7)
BlackList		        = $Check xy(,14) v(Filter.UseBlackList))
BlackListBtn	        = $Button_Medium a(la) xy(20,7) onclick(dialog("ParCtl_BlackList_Dlg")) enable(Filter.UseBlackList)
Categories		        = $Check xy(,7) v(Filter.UseCategoriesMask)
DenyCategoryPorno		= $Check xy(20,7) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryPorno)) enable(Filter.UseCategoriesMask)
DenyCategoryGambling 	= $Check a(ls) xy(200,0) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryGambling)) enable(Filter.UseCategoriesMask)
DenyCategoryDrugs		= $Check xy(20,7) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryDrugs)) enable(Filter.UseCategoriesMask)
DenyCategoryChat		= $Check a(ls) xy(200,0) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryChat)) enable(Filter.UseCategoriesMask)
DenyCategoryViolence	= $Check xy(20,7) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryViolence)) enable(Filter.UseCategoriesMask)
DenyCategoryWebMail		= $Check a(ls) xy(200,0) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryWebMail)) enable(Filter.UseCategoriesMask)
DenyCategoryUncens		= $Check xy(20,7) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryUncens)) enable(Filter.UseCategoriesMask)
DenyCategorySoftware    = $Check a(ls) xy(200,0) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategorySoftware)) enable(Filter.UseCategoriesMask)
DenyCategoryWeapons		= $Check xy(20,7) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryWeapons)) enable(Filter.UseCategoriesMask)
DenyCategoryCreditCards = $Check a(ls) xy(200,0) v(bmask(Filter.DenyCategoriesMask, #eParCtlCategoryCreditCards)) enable(Filter.UseCategoriesMask)
Exceptions				= $Button_Medium a(la) xy(,10) onclick(dialog("ParCtl_WhiteList_Dlg"))

[ParCtl_ProfileFilter_Additional_Tab]
@             = sz(p,p) text($Additional) mg(8,15)
UseHeuristic  = t(check) sz(a,a) v(UseHeuristic)
HeuristicBody = [ParCtl_ProfileFilter_Additional_Tab_Body] subst(Heuristic()) enable(UseHeuristic)

[ParCtl_ProfileFilter_Additional_Tab_Body]
@           = a(la) sz(p,p) xy(18,12)
Heuristic   = [Value] a(lt)  subst(Name() Val(text(s_ParCtl_HeuristicType(HeuristicType)) f("Normal_Bold") a(lt) xy(150)))
Descr       = sz(p,a) a(la) xy(,4) text(switch(HeuristicType, "s_HeuristicLevelDesc"))
Val         = t(slider) a(lt) xy(,50) v(bswitch(HeuristicType, "s_HeuristicSlider")) sz(p,42) nl(0,2) 

;------------- ParCtl_ListOnly_Dlg ------------

[ParCtl_ListOnly_Dlg]
@		= $DlgAttr sz(470,224) at(resizable) h(14971)
Body    = [ParCtl_ListOnly_DlgBody]

[ParCtl_ListOnly_DlgBody]
@		    = $DlgBodyAttr
List 	    = [ParCtl_ListOnly_List]

[ParCtl_ListOnly_List]
@       = $List alias(vector) at(checked,noheader) v(Filter.WhiteListOnly) unique(tolower(Name)==tolower(newItem.Name))
Name    = at(checked) text(Name) v(Enabled) sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Add(onclick(dialog("ParCtl_Url_Edit")))) Import(use(1) onclick(import(f_browseFileOpen($List_Import, "txt"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(export(f_browseFileSave($List_Export, "txt"), $ExportAll, msg("AnyError")))))

;------------- ParCtl_BlackList_Dlg -----------

[ParCtl_BlackList_Dlg]
@		= $DlgAttr sz(470,224) at(resizable) h(14972)
Body    = [ParCtl_BlackList_DlgBody]

[ParCtl_BlackList_DlgBody]
@		= $DlgBodyAttr sz(p,p)
List 	= [ParCtl_BlackList_List]

[ParCtl_BlackList_List]
@       = $List alias(vector) at(checked,noheader) v(Filter.BlackList) unique(tolower(Name)==tolower(newItem.Name))
Name    = at(checked) text(Name) v(Enabled) sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Add(onclick(if(dialog("ParCtl_Url_Edit"),parctl_updateBlackStats(Name)))) Import(use(1) onclick(import(f_browseFileOpen($List_Import, "txt"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(export(f_browseFileSave($List_Export, "txt"), $ExportAll, msg("AnyError")))))

;------------- ParCtl_WhiteList_Dlg -----------

[ParCtl_WhiteList_Dlg]
@       = $DlgAttr sz(470,224) at(resizable) h(14971)
Body    = [ParCtl_WhiteList_DlgBody]

[ParCtl_WhiteList_DlgBody]
@		= $DlgBodyAttr sz(p,p)
List 	= [ParCtl_WhiteList_List]

[ParCtl_WhiteList_List]
@       = $List alias(vector) at(checked,noheader) v(Filter.WhiteList) unique(tolower(Name)==tolower(newItem.Name))
Name    = at(checked) text(Name) v(Enabled) sort(,sortup)
footer  = [Grid.Footer2.Template] subst(Add(onclick(if(dialog("ParCtl_Url_Edit"),parctl_updateWhiteStats(Name)))) Import(use(1) onclick(import(f_browseFileOpen($List_Import, "txt"), $ImportAll, msg("AnyError")))) Export(use(1) onclick(export(f_browseFileSave($List_Export, "txt"), $ExportAll, msg("AnyError")))))

;------------- ParCtl_Url_Edit ------------------

[ParCtl_Url_Edit]
@ = [EditSimpleItem] subst(Example()) ext(1) h(14973)

;-------------- ParCtl_CheckPassword ------------

[ParCtl_CheckPassword]
@       = $Dlg sz(320,a) h(15968)
Body    = [ParCtl_CheckPassword_Body]

[ParCtl_CheckPassword_Body]
@           = sz(p,a) xy(,,,$DialogPanelSizeY)
Descr       = [ParCtl_CheckPassword_Body_Descr]
EditBlock   = [ParCtl_CheckPassword_Body_EditBlock]

[ParCtl_CheckPassword_Body_Descr]
@           = sz(p,a) a(la)
Ico         = i("password")
DescrText   = a(as) sz(p,a) xy(12)

[ParCtl_CheckPassword_Body_EditBlock]
@         = sz(p,a) a(la) xy(,15)
CheckText = xy(,2) sz(a,a)
Passwd    = t(edit) a(at) xy(5) sz(p) at(password) onok((Passwd == hashMD5(ctl.Passwd.value)) ? #true : (($IsWin2KOS)? msg("ErrPswrdWrong"):balloon("ErrPswrdWrong")) )

;------------- AntiSpam_TrainingWizard -----------

[OutlookPlugin.TrainingWizard]
@ = [WizardTpl] sz(500,370) at(minimizable) alias(trainwizard) mg(0,0,0,0) subst(Pages([OutlookPlugin.TrainingWizardPages])) onclose(checkPassword(#pwdc_SaveSettings)) ext(1)

[OutlookPlugin.TrainingWizardPages]
@       = ext(1) sz(p,p)
Page1   = [WizardPage] subst(Name() Descr() Body([OutlookPlugin.TrainingWizardPages_Page1])) h(15709)
Page2   = [WizardPage] subst(Name() Descr() Body([OutlookPlugin.TrainingWizardPages_Page2])) h(15710)
Page3   = [WizardPage] subst(Name() Descr() Body([OutlookPlugin.TrainingWizardPages_Page3])) h(15711)
Page4   = [WizardPage] subst(Name() Descr() Body([OutlookPlugin.TrainingWizardPages_Page4])) h(15712)
Page5   = [WizardPage] btns(Back(enable(0))) subst(Name() Descr() Body([OutlookPlugin.TrainingWizardPages_Page5])) h(15713)

[OutlookPlugin.TrainingWizardPages_Page1]
@       = sz(p,p) ext(1)
Text1   = a(la) sz(p,a)

[OutlookPlugin.TrainingWizardPages_Page2]
@           = sz(p,p) ext(1)
;Clear       = $Button_Large a(lp) xy(,7)
FolderTree  = t(tree) alias(folders_ham) a(lt) sz(p,p) rs(0,100) at(checked) xy(,,,35)

[OutlookPlugin.TrainingWizardPages_Page3]
@           = sz(p,p) ext(1)
;Clear       = $Button_Large a(lp) xy(,7)
FolderTree  = t(tree) alias(folders_spam) a(lt) sz(p,p) at(checked) xy(,,,35)
InfoText    = a(lb) sz(a,a) i("info") ia(lc) xy(,10)

[OutlookPlugin.TrainingWizardPages_Page4]
@               = sz(p,p) ext(1)
Progress        = t(progress) a(la) sz(p,20) v(PercentCompleted)
TrainingStatus  = $WizardGroupNext
MessageCount    = [Value] a(la) subst(Val(text(MessagesProcessed)))
NowProcessing   = $WizardGroupNext
Folder          = [Value] a(la) subst(Name(f("Header1")) Val(text(CurrentFolder)))
Message         = [Value] a(la) va(lr) sz(p,100) subst(Name(f("Header1")) Val(sz(300) text(CurrentMessage)))

[OutlookPlugin.TrainingWizardPages_Page5]
@               = sz(p,p) ext(1)
StatGroup       = $WizardGroupNext
MessageCount    = [Value] a(la) subst(Name() Val(text(MessagesProcessed)))
RetrainGroup    = [OutlookPlugin.TrainingWizardPages_Page5.ResultsApplySelect]

[OutlookPlugin.TrainingWizardPages_Page5.ResultsApplySelect]
@	= $WizardGroupNext v(ResultsApply)
KeepExisting    = $Radio xy(10,10) v(#eResultMerge)
Retrain         = $Radio xy(10,10) v(#eResultReplace)

;------------- TrafficMonConnectionTerm -------------

[TrafficMonConnectionTerm]
@           = $DlgAttrBase sz(350,100) at(a_yes,a_no) h(6627)
Confirm
AutoTerm    = a(la) xy(,7)

;------------- TrafficMonAskActionDlg -------------

[TrafficMonAskActionDlg]
@ = [AlertDialogT_Green] h(8029) subst(Caption(subst(F(text()) B(text()))) Body([TrafficMonAskActionDlg_Body]) ApplyToAll(v(UseRule) use(ShowUseRule) text()))

[TrafficMonAskActionDlg_Body]
Top     = a(la) sz(p,0) bg("AlertInfoTop")
Descr   = [TrafficMonAskActionDlg_Body_Descr]
Buttom  = a(la) sz(p,1) bg("AlertInfoBottom")
Action  = [TrafficMonAskActionDlg_Body_Action]

[TrafficMonAskActionDlg_Body_Descr]
@       = a(la) sz(p,a) mg(17,17) oninit(if(!sDescription, sDescription = $UnknownApp)) bg("AlertInfo")
Icon    = sz(32,32) i(const(getIcon(sImagePath, "unkapp", 1))) at(clickable) onclick(dialog("AppRulesEdit:Image", p_image(sImagePath), p_appID(0))) 
Descr   = t(richedit) at(readonly,noborder,nofocus) a(as) sz(p,a) xy(17)
;App     = a(la) xy(,7) sz(p,a) i(const(getIcon(sImagePath, "unkapp", 1))) text(const(sDescription))
Host    = [LValue] a(la) xy(37,7) subst(Name() Val(xy(100) text(const(ServerName))))
Port    = [LValue] a(la) xy(37,7) subst(Name() Val(xy(100) text(const(ServerPort))))

[TrafficMonAskActionDlg_Body_Action]
@       = $AlertActions
Process = [AlertDialog_ActionButton] enable(1) v(1) onclick(DecodeSSL = ctl.value; close(#m_res_ok)) subst(Name(f(ctl.parent.hotlight ? const( Valid ? "AlertBtnHl_a" : "AlertBtnHl") : const( Valid ? "AlertBtn_a" : "AlertBtn"))) Descr())
Skip    = [AlertDialog_ActionButton] enable(1) v(0) onclick(DecodeSSL = ctl.value; close(#m_res_ok)) subst(Name(f(ctl.parent.hotlight ? const(!Valid ? "AlertBtnHl_a" : "AlertBtnHl") : const(!Valid ? "AlertBtn_a" : "AlertBtn"))) Descr())
ViewCert= [AlertDialog_ActionButton] enable(1)      onclick(open(OrigFileName)) visible(OrigFileName) subst(Name(f(ctl.parent.hotlight ? "AlertBtnHl" : "AlertBtn")) Descr())

;------------- MailWasher -------------

[MailWasher]
$l_SelectAll
@           = $DlgAttrBase sz(450,300,640,480) oninit($l_SelectAll=0) at(resizable,minimizable,dragable,ontop,a_ok) h(16138)
Info
Toolbar     = [MailWasher_Toolbar]
Progressbar = [MailWasher_Progressbar]
;New         = $Check xy(,7) v(ShowNewMessages) onchange(ctl.Msgs.List.setfilter(ctl.value ? "New && !Deleted" : "!Deleted")))
DontShow    = $Check xy(,7) v(ShowMailwasher)
SelectAll	= $Check xy(,7) v($l_SelectAll) 
Msgs        = [MailWasher_Msgs]

[MailWasher_Toolbar]
@           = a(la) sz(a,23) rs(0,0) xy(,7)
Del         = $Button_Large a(lt) enable(Messages.find("MarkToDelete"))
ReadNext    = $Button_Large a(as) xy(7) enable(MessagesLeft)
NumToRead   = t(edit) a(as) xy(7,1) sz(50) at(number) v(MessagesToRead) enable(MessagesLeft)
Letters     = a(as) xy(7,3) enable(MessagesLeft)

[MailWasher_Progressbar]
@           = a(as) sz(a,23) xy(7) at(hide) rs(0,0)
Progress    = t(progress) sz(110,13) xy(,5)
Stop        = $Button a(at) xy(7) text($Stop)

[MailWasher_Msgs]
@       = t(splitter) a(la) sz(p,p) xy(,7,,$DialogPanelSizeY) at(rememberdata)
List    = [MailWasher_Msgs_List]
Cludges = t(edit) sz(p,p) at(multiline,readonly) alias(descriptor) dataowner(List) text(Data)

[MailWasher_Msgs_List]
@           = $List alias(vector) v(Messages) filter(ShowNewMessages ? (New && !Deleted) : (!Deleted))
New         = sz(40) at(checked) v(MarkToDelete) i(New ? (MarkToDelete ? "mail_new_bad" : "mail_new") : (MarkToDelete ? "mail_bad" : "mail")) text("")
From        = sz(150) text(From)
Subject     = sz(200) text(Subject)
To          = sz(100) text(To)
Size        = sz(40) text(f_ObjSize(Size))
DateTime    = sz(60) text(datetime(Time)) sort(Time,sortdown)
Reason      = sz(60) text(s_ReasonEx(Reason))

[MailWasher_CodepageMenu]
@               = t(menu)
KOI8-R
WINDOWS-1251
IBM866
ISO8859-5
X-MAC-CYRILLIC

;------------- OutlookPlugin.Antivirus -----------

[OutlookPlugin.Antivirus]
@   = t(propsheetpage) sz(550,500) mg(7,7) h(1062)
Dlg = [OutlookPlugin.AntivirusCmn] sz(p,p)

[OutlookPlugin.AntivirusCmn]
@               = sz(p,p) a(lt) mg(7,7)
Main            = a(lt)
MainLine        = b(Topline_medium) a(as) sz(p,7) xy(7,7)
Icon            = a(la) xy(0,7) enable(McEnabled) i("Main.big")
Info            = a(as) sz(p,a)
Status          = a(lt) xy(0,60)
StatusLine      = b(Topline_medium) a(as) sz(p,7) xy(7,7)
EnableStat      = a(la) xy(30,7)
Settings        = a(sa)
Link            = $Link a(as) visible(KavStarted)
Options         = a(lt) xy(0,120)
OptionsLine     = b(Topline_medium) a(as) sz(p,7) xy(7,7)
CheckDelivery   = $Check a(la) xy(30,7) v(CheckOnDelivery)
CheckRead       = $Check a(la) xy(30,7) v(CheckOnRead)
CheckSend       = $Check a(la) xy(30,7) v(CheckOnWriteComplete)

;------------- OutlookPlugin.Antispam -----------

[OutlookPlugin.AntispamDlg]
@   = t(dialog) sz(430,490) mg(7,7) h(15048)
Dlg = [OutlookPlugin.AntispamCmn] xy(,,,$DialogPanelSizeY)

[OutlookPlugin.Antispam]
@   = t(propsheetpage) sz(550,490) mg(7,7) h(15048)
Dlg = [OutlookPlugin.AntispamCmn] sz(p,p)

[OutlookPlugin.AntispamCmn]
$ShowIfFolderCS     = (CertainSpamRule.AntispamPluginAction == 0 || CertainSpamRule.AntispamPluginAction == 1)
$ShowIfMarkReadCS   = ($ShowIfFolderCS || CertainSpamRule.AntispamPluginAction == 3)
$ShowIfFolderPS     = (PossibleSpamRule.AntispamPluginAction == 0 || PossibleSpamRule.AntispamPluginAction == 1)
$ShowIfMarkReadPS   = ($ShowIfFolderPS || PossibleSpamRule.AntispamPluginAction == 3)
@                   = sz(p,p) a(lt) mg(7,7) ext(1)
Main                = a(lt)
MainLine            = b(Topline_medium) a(as) sz(p,7) xy(7,7)
Icon                = a(la) xy(0,7) enable(AsEnabled) i("Main.big")
Info                = a(as) sz(p,a)
Status              = a(lt) xy(0,60)
StatusLine          = b(Topline_medium) a(as) sz(p,7) xy(7,7)
EnableStat          = a(la) xy(30,7)
Settings            = a(sa)
Link                = $Link a(as) visible(KavStarted) v(configure:Anti_Spam)
CSpam               = a(lt) xy(0,120)
CS_Line             = b(Topline_medium) a(as) sz(p,7) xy(7,7)
CS_Action           = t(combo) a(la) sz(p) rs(45,) xy(35,7) v(CertainSpamRule.AntispamPluginAction) [AS_Actions]
CS_Folder           = t(edit) a(as) at(readonly) sz(p) xy(7,,27) v(CertainSpamRule.FolderForAction.Name) visible($ShowIfFolderCS)
CS_Browse           = $Button a(rs) sz(20,19) visible($ShowIfFolderCS)
CS_MarkAsRead       = $Check a(la) xy(35,7) v(CertainSpamRule.MarkAsRead) visible($ShowIfMarkReadCS)
;CS_Additional       = $Link a(la) xy(35,5)
PSpam               = a(lt) xy(0,190)
PS_Line             = b(Topline_medium) a(as) sz(p,7) xy(7,7)
PS_Action           = t(combo) a(la) sz(p) rs(45,) xy(35,7) v(PossibleSpamRule.AntispamPluginAction) [AS_Actions]
PS_Folder           = t(edit) a(as) at(readonly) sz(p) xy(7,,27) v(PossibleSpamRule.FolderForAction.Name) visible($ShowIfFolderPS)
PS_Browse           = $Button a(rs) sz(20,19) visible($ShowIfFolderPS)
PS_MarkAsRead       = $Check a(la) xy(35,7) v(PossibleSpamRule.MarkAsRead) visible($ShowIfMarkReadPS)
CAlgo               = a(lt) xy(0,265)
CA_Line             = b(Topline_medium) a(as) sz(p,7) xy(7,7)
AdditionalGroup		= [OutlookPlugin.AntispamCmn.Additional]

[AS_Actions]
0   = v(0)
1   = v(1)
2   = v(2)
3   = v(3)

[OutlookPlugin.AntispamCmn.Additional]
@	= a(la) sz(a,a)
CAlgoGroup		= [C_AlgoGroup]
SpamComplain  = $Link a(la) xy(35,5)
HamComplain	  = $Link a(la) xy(35,5)

[C_AlgoGroup]
UseOutlookRules = $Check a(la) xy(35,7) v(CheckAlgorithm)
LinkOutlook = $Link a(as) sz(a,a) onclick(help(15048))
CheckSubFolders = $Check a(la) xy(35,7) v(CheckSubFolders)


[OutlookPlugin.AntispamCmn.SendSpamDlg]
@ = $DlgAttr sz(400,a) alias(taskedit) h(7122)
Body = [OutlookPlugin.AntispamCmn.SendSpamDlg.Body]

[OutlookPlugin.AntispamCmn.SendSpamDlg.Body]
@ = sz(p,a) xy(,,,$DialogPanelSizeY) 
Advanced = [OutlookPlugin.AntispamCmn.SendSpamDlg.Body.Advanced]

[OutlookPlugin.AntispamCmn.SendSpamDlg.Body.Advanced]
@                    = v(SendSpamChoice)
SendToLab        = $Radio a(lt) xy(12,5) v(1)
DontSendToLab    = $Radio a(sa) xy(,5) v(2)
AskMeToSendToLab = $Radio a(sa) xy(,5) v(0)

[OutlookPlugin.AntispamCmn.SendHamDlg]
@ = $DlgAttr sz(a,a) alias(taskedit) h(7122)
Body = [OutlookPlugin.AntispamCmn.SendHamDlg.Body]

[OutlookPlugin.AntispamCmn.SendHamDlg.Body]
@ = sz(a,a) xy(,,,$DialogPanelSizeY) 
Advanced = [OutlookPlugin.AntispamCmn.SendHamDlg.Body.Advanced]

[OutlookPlugin.AntispamCmn.SendHamDlg.Body.Advanced]
@                    = v(SendHamChoice)
SendToLab        = $Radio a(lt) xy(12,5) v(1)
DontSendToLab    = $Radio a(sa) xy(,5) v(2)
AskMeToSendToLab = $Radio a(sa) xy(,5) v(0)


[OutlookPlugin.SpamConfirmDialog]
@ = $DlgAttrBase at(a_yes, a_no, a_cancel) h(7123)
Body = [OutlookPlugin.SpamConfirmDialog.Body]

[OutlookPlugin.SpamConfirmDialog.Body]
@ = sz(a,a) xy(,,,$DialogPanelSizeY)
BodyCont = [OutlookPlugin.SpamConfirmDialog.Body.BodyCont]

[OutlookPlugin.SpamConfirmDialog.Body.BodyCont]
Icon = a(la) xy(0,7) i("badmail") 
Note = a(at) xy(7,12) f("MainNavNameErr")
SaveBehaviour = $Check a(sa) xy(0,20) v(SendSpamChoice)

[OutlookPlugin.HamConfirmDialog]
@ = $DlgAttrBase at(a_yes, a_no, a_cancel) h(16514)
Body = [OutlookPlugin.HamConfirmDialog.Body]

[OutlookPlugin.HamConfirmDialog.Body]
@ = sz(a,a) xy(,,,$DialogPanelSizeY)
BodyCont = [OutlookPlugin.HamConfirmDialog.Body.BodyCont]

[OutlookPlugin.HamConfirmDialog.Body.BodyCont]
Icon = a(la) xy(0,7) i("goodmail") 
Note = a(at) xy(7,12) f("MainNavNameErr")
SaveBehaviour = $Check a(sa) xy(0,20) v(SendHamChoice)


;------------- OutlookPlugin.Antispam.Browse -----------

[OutlookPlugin.Antispam.Browse]
@           = t(dialog) sz(350,330) mg(7,7) at(nohelp)
FolderTree  = t(tree) sz(336,p) xy(,,,$DialogPanelSizeY)

;------------- Report_ParCtl -----------

[Report_ParCtl]
@       = $DlgAttrBase mg(0,0) at(resizable,minimizable,a_close) sz(700,565)
Header  = [Report_ParCtl_Header]
Body    = [Report_ParCtl_Body]

[Report_ParCtl_Header]
@       = sz(p,53) at(singleline,fixstyle) ta(lc) bg("MainWindowHeader") f("Header1") extprm(1)
hdr     = [ProductHeader] sz(p,p)
Save    = [BtnGlass] sz($Button_Medium_CX,$Button_CY) a(rc) xy(28) onclick(ctl.Report.savereport()) text("Save")

[Report_ParCtl_Body]
@       = sz(p,p) a(la) mg(7,7) xy(,,,$DialogPanelSizeY)
Report  = [Report_ParCtl_Events]

[Report_ParCtl_Events]
@           = $List at(rememberdata) alias(taskevents) refresh(100) sz(p,p) filter(TaskID == #eTASK_PC && ObjectType == #eURL) prm(#dbRTP)
Time        = sz(150) text(datetimeDT(Timestamp)) group(date,dategroupDT(Timestamp),default) sort(index,sortup) filter(auto,s_date(dategroupDT(Timestamp)))
Site        = sz(a) text(objsite($ObjectText)) i($ObjectIcon) group(ObjectSite,objsite($ObjectText))
URL         = sz(a) text($ObjectText) at(nosort)
row         = at(clickable) i($RepEventIcon) bg($RepEventBg)
