Sample details: 166a72f33216817ecc11af962ba42b34 --

Hashes
MD5: 166a72f33216817ecc11af962ba42b34
SHA1: fed3abb5364be0be69d6368ddb78528b4f3a7f71
SHA256: d7130869f22a7331c2206401b575e529fa053b3be9f857d364e4b2a3f30a077b
SSDEEP: 12288:jWLp8B/uayAR+RHpZZV6YwCO0KMXsNzJpK0fU0OHgLLIZ0FWchVlKF:j8p0JyAkd369z5NzFfU0OHgLLhph7KF
Details
File Type: PE32
Yara Hits
YRP/Borland_Delphi_40_additional | YRP/Microsoft_Visual_Cpp_v50v60_MFC | YRP/Borland_Delphi_30_additional | YRP/Borland_Delphi_30_ | YRP/Borland_Delphi_Setup_Module | YRP/Borland_Delphi_40 | YRP/Borland_Delphi_v40_v50 | YRP/BobSoft_Mini_Delphi_BoB_BobSoft_additional | YRP/Borland_Delphi_v60_v70 | YRP/Borland_Delphi_v30 | YRP/Borland_Delphi_DLL | YRP/Borland | YRP/BobSoftMiniDelphiBoBBobSoft | YRP/IsPE32 | YRP/IsWindowsGUI | YRP/IsPacked | YRP/HasOverlay | YRP/borland_delphi | YRP/domain | YRP/url | YRP/contentis_base64 | YRP/screenshot | YRP/keylogger | YRP/win_registry | YRP/win_files_operation | YRP/win_hook | YRP/android_meterpreter | YRP/Delphi_FormShow | YRP/Delphi_CompareCall | YRP/Delphi_Copy | YRP/Delphi_StrToInt |
Source
http://alfatihhuseen.com/CRANK/done.exe
http://alfatihhuseen.com/CRANK/done.exe
Strings
		This program must be run under Win32
.idata
.rdata
P.reloc
P.rsrc
Boolean
Integer
Cardinal
String
TObject
TObject
System
IInterface
System
TInterfacedObject
YZ]_^[
~KxI[)
SOFTWARE\Borland\Delphi\RTL
FPUMaskValue
_^[YY]
YZXtm1
ZTUWVSPRTj
_^[YY]
_^[YY]
tVSVWU
kernel32.dll
GetLongPathNameA
Software\Borland\Locales
Software\Borland\Delphi\Locales
_^[YY]
odSelected
odGrayed
odDisabled	odChecked	odFocused	odDefault
odHotLight
odInactive	odNoAccel
odNoFocusRect
odReserved1
odReserved2
odComboBoxEdit
Windows
TOwnerDrawState
Magellan MSWHEEL
MouseZ
MSWHEEL_ROLLMSG
MSH_WHEELSUPPORT_MSG
MSH_SCROLL_LINES_MSG
	ExceptionHt@
EAbort
EHeapException
EOutOfMemory
EInOutError
	EExternal
EExternalException
	EIntError
EDivByZero
ERangeErrorlw@
EIntOverflow
EMathError
EInvalidOp
EZeroDivide
	EOverflow
EUnderflow
EInvalidPointer
EInvalidCast
EConvertError
EAccessViolation
EPrivilege
EStackOverflow
	EControlC
EVariantError
EAssertionFailed
EAbstractError
EIntfCastError
EOSError
ESafecallException
SysUtils
SysUtils
TThreadLocalCounter
$TMultiReadExclusiveWriteSynchronizer
YZ]_^[
_^[YY]
<*t"<0r=<9w9i
INFNAN
$*@@@*$@@@$ *@@* $@@($*)@-$*@@$-*@@$*-@@(*$)@-*$@@*-$@@*$-@@-* $@-$ *@* $-@$ *-@$ -*@*- $@($ *)(* $)
t%HtIHtm
_^[YY]
$Z]_^[
QQQQQQSVW3
QQQQQSVW
_^[YY]
	TErrorRec
TExceptRec
$YZ]_^[
m/d/yy
mmmm d, yyyy
:mm:ss
kernel32.dll
GetDiskFreeSpaceExA
YZ]_^[
YZ]_^[
oleaut32.dll
VariantChangeTypeEx
VarNeg
VarNot
VarAdd
VarSub
VarMul
VarDiv
VarIdiv
VarMod
VarAnd
VarXor
VarCmp
VarI4FromStr
VarR4FromStr
VarR8FromStr
VarDateFromStr
VarCyFromStr
VarBoolFromStr
VarBstrFromCy
VarBstrFromDate
VarBstrFromBool
TCustomVariantType
TCustomVariantType4
Variants
EVariantInvalidOpError
EVariantTypeCastError
EVariantOverflowError
EVariantInvalidArgError
EVariantBadVarTypeError
EVariantBadIndexError
EVariantArrayLockedError
EVariantArrayCreateError
EVariantNotImplError
EVariantOutOfMemoryError
EVariantUnexpectedErrorX
EVariantDispatchError
QQQQSV
Smallint
Integer
Single
Double
Currency
OleStr
Dispatch
Boolean
Variant
Unknown
Decimal
ShortInt
LongWord
String
Array 
ByRef 
Variants
_^[YY]
TAlignment
taLeftJustify
taRightJustify
taCenter
Classes
	TBiDiMode
bdLeftToRight
bdRightToLeft
bdRightToLeftNoAlign
bdRightToLeftReadingOnly
Classes
ssShift
ssCtrl
ssLeft
ssRight
ssMiddle
ssDouble
Classes
TShiftState
THelpContext
	THelpType
	htKeyword	htContext
Classes
	TShortCut
TNotifyEvent
Sender
TObject
EStreamError
EFileStreamError
EFCreateError
EFOpenError
EFilerError
EReadError
EWriteError
EClassNotFound
EResNotFound
EListError
EBitsError
EStringListError
EComponentError
EOutOfResources<
EInvalidOperation
TThreadListX A
TPersistent
TPersistent
Classes
TInterfacedPersistent
TInterfacedPersistent
Classes
IStringsAdapter
Classes
TStrings
TStrings
Classes
TStringItem
TStringList`$A
TStringList
Classes
TStream@%A
THandleStream
TFileStream,&A
TCustomMemoryStream
TMemoryStream
TResourceStream
TStreamAdapter
TClassFinder
TFiler
TReader
EThread
TComponentName
IDesignerNotify
Classes
TComponent
TComponent
Classes
TBasicActionLink
TBasicAction
TBasicAction
Classes
TIdentMapEntry
	TRegGroup
TRegGroups
YZ]_^[
$Z]_^[
$Z]_^[
_^[YY]
	TIntConst
_^[YY]
Strings
S$_^[Y]
_^[YY]
SdZ]_^[
$Z]_^[
TPropFixup
TPropIntfFixup
_^[YY]
Classes
_^[YY]
QQQQQQQS
R0_^[]
_^[YY]
TPUtilWindow
TColor
EInvalidGraphic$
EInvalidGraphicOperation
TFontPitch
	fpDefault
fpVariable
fpFixed
Graphics
	TFontName
TFontCharset
TFontStyle
fsBold
fsItalic
fsUnderline
fsStrikeOut
Graphics
TFontStyles
	TPenStyle
psSolid
psDash
psDot	psDashDot
psDashDotDot
psClear
psInsideFrame
Graphics
TPenMode
pmBlack
pmWhite
pmCopy	pmNotCopy
pmMergePenNot
pmMaskPenNot
pmMergeNotPen
pmMaskNotPen
pmMerge
pmNotMerge
pmMask	pmNotMask
pmNotXor
Graphics
TBrushStyle
bsSolid
bsClear
bsHorizontal
bsVertical
bsFDiagonal
bsBDiagonal
bsCross
bsDiagCross
Graphics
TGraphicsObject,
TGraphicsObject
Graphics
IChangeNotifier
Graphics
Graphics
Charsetd
Color<
Height
Pitch<
Graphics
Style<
TBrush
TBrushT
Graphics
Color<
TCanvas<
TCanvas
Graphics
Brush<
CopyMode
TGraphic
TGraphic
Graphics
TPicture
TPicture
Graphics
TSharedImage
TMetafileImage
	TMetafile
	TMetafile\
Graphics
TBitmapImage
TBitmap
TBitmap
Graphics
TIconImage
Graphics
TResourceManager
_^[YY]
_^[YY]
clBlack
clMaroon
clGreen
clOlive
clNavy
clPurple
clTeal
clGray
clSilver
clLime
clYellow
clBlue
clFuchsia
clAqua
clWhite
clMoneyGreen
clSkyBlue
clCream
clMedGray
clActiveBorder
clActiveCaption
clAppWorkSpace
clBackground
clBtnFace
clBtnHighlight
clBtnShadow
clBtnText
clCaptionText
clDefault
clGradientActiveCaption
clGradientInactiveCaption
clGrayText
clHighlight
clHighlightText
clHotLight
clInactiveBorder
clInactiveCaption
clInactiveCaptionText
clInfoBk
clInfoText
clMenu
clMenuBar
clMenuHighlight
clMenuText
clNone
clScrollBar
cl3DDkShadow
cl3DLight
clWindow
clWindowFrame
clWindowText
ANSI_CHARSET
DEFAULT_CHARSET
SYMBOL_CHARSET
MAC_CHARSET
SHIFTJIS_CHARSET
HANGEUL_CHARSET
JOHAB_CHARSET
GB2312_CHARSET
CHINESEBIG5_CHARSET
GREEK_CHARSET
TURKISH_CHARSET
HEBREW_CHARSET
ARABIC_CHARSET
BALTIC_CHARSET
RUSSIAN_CHARSET
THAI_CHARSET
EASTEUROPE_CHARSET
OEM_CHARSET
Default
E$PVSj
_^[YY]
C ;C$s
TFileFormat
TFileFormatsList
QQQQSV
kD$TdP
kD$PdP
D$LPkD$XdPV
D$HPkD$TdPV
|$( EMFt
TBitmapCanvas
TBitmapCanvas|
Graphics
_^[YY]
s(;~ t8
C(_^[Y]
TPatternManagerSV
_^[YY]
TObjectList
TOrderedList
TStack
GetMonitorInfoA
GetSystemMetrics
MonitorFromRect
MonitorFromWindow
MonitorFromPoint
GetMonitorInfo
DISPLAY
GetMonitorInfoA
DISPLAY
GetMonitorInfoW
DISPLAY
EnumDisplayMonitors
USER32.DLL
IHelpSelector
:	HelpIntfs
IHelpSystem
:	HelpIntfs
ICustomHelpViewer
:	HelpIntfs	
IExtendedHelpViewer8OB
:	HelpIntfs
ISpecialWinHelpViewertOB
:	HelpIntfs
IHelpManager
:	HelpIntfs
EHelpSystemException
THelpViewerNode
THelpManager
comctl32.dll
InitializeFlatSB
UninitializeFlatSB
FlatSB_GetScrollProp
FlatSB_SetScrollProp
FlatSB_EnableScrollBar
FlatSB_ShowScrollBar
FlatSB_GetScrollRange
FlatSB_GetScrollInfo
FlatSB_GetScrollPos
FlatSB_SetScrollPos
FlatSB_SetScrollInfo
FlatSB_SetScrollRange
TSynchroObject
TCriticalSection
uxtheme.dll
OpenThemeData
CloseThemeData
DrawThemeBackground
DrawThemeText
GetThemeBackgroundContentRect
GetThemePartSize
GetThemeTextExtent
GetThemeTextMetrics
GetThemeBackgroundRegion
HitTestThemeBackground
DrawThemeEdge
DrawThemeIcon
IsThemePartDefined
IsThemeBackgroundPartiallyTransparent
GetThemeColor
GetThemeMetric
GetThemeString
GetThemeBool
GetThemeInt
GetThemeEnumValue
GetThemePosition
GetThemeFont
GetThemeRect
GetThemeMargins
GetThemeIntList
GetThemePropertyOrigin
SetWindowTheme
GetThemeFilename
GetThemeSysColor
GetThemeSysColorBrush
GetThemeSysBool
GetThemeSysSize
GetThemeSysFont
GetThemeSysString
GetThemeSysInt
IsThemeActive
IsAppThemed
GetWindowTheme
EnableThemeDialogTexture
IsThemeDialogTextureEnabled
GetThemeAppProperties
SetThemeAppProperties
GetCurrentThemeName
GetThemeDocumentationProperty
DrawThemeParentBackground
EnableTheming
TThemeServices
Theme manager  2001, 2002 Mike Lischke
comctl32.dll
 !"#$%
TTextLayout
tlCenter
tlBottom
StdCtrls
TCustomLabel
TCustomLabel
StdCtrls
TLabel
TLabel
StdCtrls'
Align8
	Alignment<
Anchors
AutoSize
BiDiMode
Captiond
Constraints
DragCursor
DragKind
DragMode
Enabled
FocusControl
ParentBiDiMode
ParentColor
ParentFont
ParentShowHint
	PopupMenu
ShowAccelChar
ShowHint
Transparent
Layout
Visible
WordWrap
OnClick
OnContextPopup
OnDblClick
OnDragDrop
OnDragOver4
	OnEndDock4
	OnEndDrag
OnMouseDown
OnMouseMove
	OnMouseUp
OnMouseEnter
OnMouseLeave
OnStartDock
OnStartDrag
TEditCharCase
ecNormal
ecUpperCase
ecLowerCase
StdCtrls
TCustomEdit
TCustomEdit
StdCtrls
TabStopl
TEditl
StdCtrls6
Anchors
AutoSelect
AutoSize\
BevelEdges
BevelInnert
	BevelKind
BevelOuter
BiDiModeL{D
BorderStyle
CharCased
Constraints
DragCursor
DragKind
DragMode
Enabled
HideSelection
ImeMode
ImeName<
	MaxLength
OEMConvert
ParentBiDiMode
ParentColor
ParentCtl3D
ParentFont
ParentShowHint(
PasswordChar
	PopupMenu
ReadOnly
ShowHint
TabOrder
TabStop
Visible
OnChange
OnClick
OnContextPopup
OnDblClick
OnDragDrop
OnDragOver4
	OnEndDock4
	OnEndDrag
OnEnter
OnExit|
	OnKeyDown
OnKeyPress|
OnKeyUp
OnMouseDown
OnMouseMove
	OnMouseUp
OnStartDock
OnStartDrag
TButtonActionLink
TButtonControl
TButtonControl@
StdCtrls
TButton
TButton
StdCtrls&
Action<
Anchors
BiDiMode
Cancel
Caption
Constraints
Default
DragCursor
DragKind
DragMode
Enabled
ModalResult
ParentBiDiMode
ParentFont
ParentShowHint
	PopupMenu
ShowHint
TabOrder
TabStop
Visible
WordWrap
OnClick
OnContextPopup
OnDragDrop
OnDragOver4
	OnEndDock4
	OnEndDrag
OnEnter
OnExit|
	OnKeyDown
OnKeyPress|
OnKeyUp
OnMouseDown
OnMouseMove
	OnMouseUp
OnStartDock
OnStartDragSV
GH+D$	
_^[YY]
BUTTON
TTimer
TTimer
ExtCtrls
Enabled|
Interval
OnTimer
TCustomPanel
TCustomPanel
ExtCtrls
TPanel
TPanel
ExtCtrls7
Align8
	Alignment<
Anchors
AutoSize
BevelInner
BevelOuter
BevelWidth
BiDiMode
BorderWidthL{D
BorderStyle
Captiond
Constraints
UseDockManager
DockSite
DragCursor
DragKind
DragMode
Enabled
FullRepaint
Locked
ParentBiDiMode
ParentBackground
ParentColor
ParentCtl3D
ParentFont
ParentShowHint
	PopupMenu
ShowHint
TabOrder
TabStop
Visible
OnCanResize
OnClick<
OnConstrainedResize
OnContextPopup
OnDockDrop
OnDockOver
OnDblClick
OnDragDrop
OnDragOver4
	OnEndDock4
	OnEndDrag
OnEnter
OnExit@
OnGetSiteInfo
OnMouseDown
OnMouseMove
	OnMouseUp
OnResize
OnStartDock
OnStartDrag
OnUnDockU
TCommonDialog
TCommonDialogh
Dialogs
Ctl3D`
HelpContext
OnClose
OnShowSV
Cancel
Ignore
NoToAll
YesToAll
commdlg_help
commdlg_FindReplace
WndProcPtr%.8X%.8X
Delphi Picture
Delphi Component
THintAction
THintAction
StdActns
TWinHelpViewer
_^[YY]
_^[YY]
IE(AL("%s",4),"AL(\"%0:s\",3)","JK(\"%1:s\",\"%0:s\")")
JumpID("","%s")
_^[YY]
MS_WINHELP
#32770
TModalResult
TCursor
TAlign
alNone
alBottom
alLeft
alRight
alClient
alCustom
Controls
TDragObject
TDragObject
Controls
TBaseDragControlObject
TBaseDragControlObject`
Controls
TDragControlObject
TDragControlObjectEx
TDragDockObject
TDragDockObject@
Controls
TDragDockObjectEx
TControlCanvas
TControlCanvas
Controls
TControlActionLink
TMouseButton
mbLeft
mbRight
mbMiddle
Controls
	TDragMode
dmManual
dmAutomatic
Controls
TDragState
dsDragEnter
dsDragLeave
dsDragMove
Controls
	TDragKind
dkDrag
dkDock
Controls
	TTabOrder
TCaption
TAnchorKind
akLeft
akRight
akBottom
Controls
TAnchors
TConstraintSize
TSizeConstraints
TSizeConstraints
Controls
	MaxHeightP
MaxWidthP
	MinHeightP
MinWidth
TMouseEvent
Sender
TObject
Button
TMouseButton
TShiftState
Integer
Integer
TMouseMoveEvent
Sender
TObject
TShiftState
Integer
Integer
	TKeyEvent
Sender
TObject
TShiftState
TKeyPressEvent
Sender
TObject
TDragOverEvent
Sender
TObject
Source
TObject
Integer
Integer
TDragState
Accept
Boolean
TDragDropEvent
Sender
TObject
Source
TObject
Integer
Integer
TStartDragEvent
Sender
TObject	
DragObject
TDragObject
TEndDragEvent
Sender
TObject
Target
TObject
Integer
Integer
TDockDropEvent
Sender
TObject
Source
TDragDockObject
Integer
Integer
TDockOverEvent
Sender
TObject
Source
TDragDockObject
Integer
Integer
TDragState
Accept
Boolean
TUnDockEvent
Sender
TObject
Client
TControl
	NewTarget
TWinControl
Boolean
TStartDockEvent
Sender
TObject	
DragObject
TDragDockObject
TGetSiteInfoEvent
Sender
TObject
DockClient
TControl
InfluenceRect
MousePos
TPoint
CanDock
Boolean
TCanResizeEvent
Sender
TObject
NewWidth
Integer
	NewHeight
Integer
Resize
Boolean
TConstrainedResizeEvent
Sender
TObject
MinWidth
Integer
	MinHeight
Integer
MaxWidth
Integer
	MaxHeight
Integer
TMouseWheelEvent
Sender
TObject
TShiftState
WheelDelta
Integer
MousePos
TPoint
Handled
Boolean
TMouseWheelUpDownEvent
Sender
TObject
TShiftState
MousePos
TPoint
Handled
Boolean
TContextPopupEvent
Sender
TObject
MousePos
TPoint
Handled
Boolean
TControl
TControlp
Controls	
Width<
Height
Cursor
HelpType
HelpKeyword`
HelpContext
TWinControlActionLink
TImeMode
	imDisable
imClose
imOpen
imDontCare
imSAlpha
imAlpha
imHira
imSKata
imKata	imChinese
imSHanguel	imHanguel
Controls
TImeName
TBorderWidth
	TBevelCut
bvNone	bvLowered
bvRaised
bvSpace
Controls
TBevelEdge
beLeft
beRight
beBottom
Controls`
TBevelEdges
TBevelKind
bkNone
bkTile
bkSoft
bkFlat
Controls
TBevelWidth
IDockManager
Controls
TWinControl
TWinControlT
Controls
TGraphicControl
TGraphicControl0
Controls
TCustomControl
TCustomControlP
Controls
THintWindow
THintWindow
Controls
	TDockZone
	TDockTree
TMouse
crDefault
crArrow
crCross
crIBeam
crSizeNESW
crSizeNS
crSizeNWSE
crSizeWE
crUpArrow
crHourGlass
crDrag
crNoDrop
crHSplit
crVSplit
crMultiDrag
crSQLWait
crAppStart
crHelp
crHandPoint
crSizeAll
crSize
	TSiteList
_^[YY]
S$_^[]
YZ]_^[
t%Jt?Jt[
%s (%s)
YZ]_^[
u$;~|u
tr;s@u
;CLtX3
_^[YY]
;s0t=;
IsControl
_^[YY]
_^[YY]
+WH+W@
:GauOFKu
DesignSize
_^[YY]
_^[YY]
_^[YY]
YZ]_^[
YZ]_^[
YZ]_^[
YZ]_^[
S8_^[]
t9;wlt4
t$;C8u
QQQQSVW
t#;^dt
BP_^[]
USER32
WINNLSEnableIME
imm32.dll
ImmGetContext
ImmReleaseContext
ImmGetConversionStatus
ImmSetConversionStatus
ImmSetOpenStatus
ImmSetCompositionWindow
ImmSetCompositionFontA
ImmGetCompositionStringA
ImmIsIME
ImmNotifyIME
Delphi%.8X
ControlOfs%.8X%.8X
USER32
AnimateWindow
TContainedAction
TContainedAction
ActnList
Category
TCustomActionList
TCustomActionList0
ActnList
TShortCutList
TShortCutList
ActnList
TCustomAction
TCustomAction(
ActnList
TActionLinkSV
u*;~8u
R0Z_^[
;Blu	3
$:Cjt_
R0Z_^[
R0]_^[
$;Ctt?
R0Z_^[
R0Z_^[
R0Z_^[
R0Z_^[
R0]_^[
$Z]_^[
TChangeLink
TImageIndex
TCustomImageList
TCustomImageList
ImgList
S0_^[]
R ;C0|
R,;C4}!
S`]_^[
Bitmap
comctl32.dll
comctl32.dll
ImageList_WriteEx
EMenuError
TMenuBreak
mbNone
mbBreak
mbBarBreak
TMenuChangeEvent
Sender
TObject
Source	TMenuItem
Rebuild
Boolean
TMenuDrawItemEvent
Sender
TObject
ACanvas
TCanvas
Selected
Boolean
TAdvancedMenuDrawItemEvent
Sender
TObject
ACanvas
TCanvas
TOwnerDrawState
TMenuMeasureItemEvent
Sender
TObject
ACanvas
TCanvas
Integer
Height
Integer
TMenuItemAutoFlag
maAutomatic
maManual
maParent
TMenuAutoFlag
TMenuActionLink8
	TMenuItem
	TMenuItem8
Action
	AutoCheck
AutoHotkeys
AutoLineReduction
Bitmap
Caption
Checked|
SubMenuImages
Default
EnabledT
GroupIndex`
HelpContext
ImageIndex
	RadioItem
ShortCut
Visible
OnClickP
OnDrawItem
OnAdvancedDrawItem4
OnMeasureItem
TMenu\
	TMainMenu
	TMainMenuP
AutoHotkeys
AutoLineReduction
	AutoMerge
BiDiMode|
Images
	OwnerDraw
ParentBiDiMode
OnChange
TPopupAlignment
paLeft
paRight
paCenter
Menus(
TTrackButton
tbRightButton
tbLeftButton
Menush
TMenuAnimations
maLeftToRight
maRightToLeft
maTopToBottom
maBottomToTop
maNone
TMenuAnimation
TPopupMenu
TPopupMenu4
	Alignment
AutoHotkeys
AutoLineReduction
	AutoPopup
BiDiMode`
HelpContext|
Images
MenuAnimation
	OwnerDraw
ParentBiDiMode$
TrackButton
OnChange
OnPopup
TPopupList
TMenuItemStack
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
_^[YY]
Q<]_^[
ShortCutText
P?:S?u
Q<]_^[
@?:F?v
Q<]_^[
;~hu	3
$YZ]_^[
_^[YY]
Ih;J4u
YZ]_^[
TScrollBarInc
TScrollBarStyle
	ssRegular
ssFlat
ssHotTrack
TControlScrollBar
TControlScrollBar
ButtonSized
	Incrementh
Margin
ParentColor<
Position<
Smooth<
Size,vD
Style<
	ThumbSize
Tracking
Visible
TWindowState
wsNormal
wsMinimized
wsMaximized
TScrollingWinControl
TScrollingWinControlXyD
HorzScrollBar
VertScrollBar
TFormBorderStyle
bsNone
bsSingle
bsSizeable
bsDialog
bsToolWindow
bsSizeToolWin
FormsP{D
TBorderStyle
IDesignerHook
Forms	
IOleForm
TFormStyle
fsNormal
fsMDIChild	fsMDIForm
fsStayOnTop
TBorderIcon
biSystemMenu
biMinimize
biMaximize
biHelp
TBorderIcons
	TPosition
poDesigned	poDefault
poDefaultPosOnly
poDefaultSizeOnly
poScreenCenter
poDesktopCenter
poMainFormCenter
poOwnerFormCenter
Forms0}D
TDefaultMonitor
	dmDesktop	dmPrimary
dmMainForm
dmActiveForm
TPrintScale
poNone
poProportional
poPrintToFit
TCloseAction
caNone
caHide
caFree
caMinimize
TCloseEvent
Sender
TObject
Action
TCloseAction
TCloseQueryEvent
Sender
TObject
CanClose
Boolean
TShortCutEvent
TWMKey
Handled
Boolean
THelpEvent
Command
Integer
CallHelp
Boolean
Boolean
TCustomForm
TCustomForm|
FormsU
Action
ActiveControl
AlphaBlendT
AlphaBlendValue<
Anchors
AutoScroll
AutoSize
BiDiModex|D
BorderIcons
BorderStyle
BorderWidth
Caption<
ClientHeight<
ClientWidthd
TransparentColord
TransparentColorValue
Constraints
UseDockManager,}D
DefaultMonitor
DockSite
DragKind
DragMode
Enabled
ParentFont
	FormStyle<
Height
HelpFile
HorzScrollBarL
KeyPreview
OldCreateOrder
ObjectMenuItem
ParentBiDiMode<
PixelsPerInch
	PopupMenu
Position
PrintScale
Scaled
ScreenSnap
ShowHint<
SnapBuffer
VertScrollBar
Visible<
WindowState
WindowMenu
OnActivate
OnCanResize
OnClick
OnCloseT~D
OnCloseQuery<
OnConstrainedResize
OnContextPopup
OnCreate
OnDblClick
	OnDestroy
OnDeactivate
OnDockDrop
OnDockOver
OnDragDrop
OnDragOver4
	OnEndDock@
OnGetSiteInfo
OnHide
OnHelp|
	OnKeyDown
OnKeyPress|
OnKeyUp
OnMouseDown
OnMouseMove
	OnMouseUp
OnMouseWheelT
OnMouseWheelDownT
OnMouseWheelUp
OnPaint
OnResize
OnShortCut
OnShow
OnStartDock
OnUnDock
TCustomDockForm`
TCustomDockForm 
PixelsPerInch
TMonitor
TScreen
TScreenP
	THintInfo@
TApplication
TApplication(
;X0t@S
+WH+W@
PixelsPerInch
TextHeight
IgnoreFontProperty
_^[YY]
S,_^[]
$Z]_^[
F(Z_^[
MDICLIENT
_^[YY]
_^[YY]
_^[YY]
_^[YY]
Ch;Ctt
Cd;Cpt
System\CurrentControlSet\Control\Keyboard Layouts\%.8x
layout text
f;sDtsf
CHYZ]_^[
_^[YY]
TApplication
MAINICON
XD;PHu
sx;P`u
;B0uGj
vcltest3.dll
RegisterAutomation
$Z]_^[
~D_^[Y]
_^[YY]
_^[YY]
Y_^[Y]
YZ]_^[
User32.dll
SetLayeredWindowAttributes
TaskbarCreated
	TJPEGData
TJPEGQualityRange
TJPEGPerformance
jpBestQuality
jpBestSpeed
TJPEGImage
TJPEGImage
S\_^[]
S`_^[Y]
FD_^[Y]
FH_^[Y]
YZ]_^[
K,;K(u
T$$;L$
D$$;T$
L$ ;\$
L$,;T$
L$(;\$
L$0;T$
L$4;T$
L$8;T$
L$<;T$
D$D;T$
L$@;\$
D$,;L$
T$(;\$
K4_^[YY]
C4;CHr3
_^[YY]
D$ ;CH}4
;t$(}(
{$F;t$(|
L$ ;K8|
D$ H;D$
D$p+D$x+
Jt\Jt;
YZ]_^[
EKG;|$
YZ]_^[
_^[YY]
P ;S0uP3
K4;K<}53
C4;C<uV
OtAOt 
C4;D$$~u
D$ ;D$$
D$ ;D$$
P@YZ]_^[
_^[YY]
K<;K(u
C8;C$t
YZ]_^[
QQQQQQSV
center
TIWLicense
TIWJpegOptions
TIWJpegOptions
	IWControl
CompressionQualityt>E
Performance
ProgressiveEncoding
	Smoothing
TIWSessionsU
dBKpeuxCkIy
IRgUvuxoVh
hRikiPejwZYwYx
	BrkpKojwO
WIDxHugVjvWx
	DsnthMWEJ
cspJUhDyjutAw
skHGGqYq 
RkKWtMFkWPr$
vJOxqeNL(
SSzJHSCvdQc,
UOJnDVreCy0
wYsXSqHgTHuKuc4
gOPNunizNeFTZ8
	yxzOCevCc<
kenHyIOgZuenyq@
	CNXJGzcipD
evJgiksyVOldrH
vnbdUtNqL
YMfERLVRRitTP
qwPGZCiUgunAraHT
HohDMLELtXX
XgzByUZDFBmC\
QdGJadMZNmw`
jDIOCCRmggKVtWd
GMtaUpFVDqh
	AASlQgkCO
FormCreate
TForm1
TForm1p
_^[YY]
YnIHDRicqC
Runtime error     at 00000000
0123456789ABCDEF
%.*d,r@
Tahoma
BKbhTb~XBK!;
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
BKbhTb~XBK!;
kernel32.dll
DeleteCriticalSection
LeaveCriticalSection
EnterCriticalSection
InitializeCriticalSection
VirtualFree
VirtualAlloc
LocalFree
LocalAlloc
GetVersion
GetCurrentThreadId
InterlockedDecrement
InterlockedIncrement
VirtualQuery
WideCharToMultiByte
MultiByteToWideChar
lstrlenA
lstrcpynA
LoadLibraryExA
GetThreadLocale
GetStartupInfoA
GetProcAddress
GetModuleHandleA
GetModuleFileNameA
GetLocaleInfoA
GetCommandLineA
FreeLibrary
FindFirstFileA
FindClose
ExitProcess
WriteFile
UnhandledExceptionFilter
RtlUnwind
RaiseException
GetStdHandle
user32.dll
GetKeyboardType
LoadStringA
MessageBoxA
CharNextA
advapi32.dll
RegQueryValueExA
RegOpenKeyExA
RegCloseKey
oleaut32.dll
SysFreeString
SysReAllocStringLen
SysAllocStringLen
kernel32.dll
TlsSetValue
TlsGetValue
LocalAlloc
GetModuleHandleA
advapi32.dll
RegQueryValueExA
RegOpenKeyExA
RegCloseKey
kernel32.dll
lstrcpyA
WriteFile
WaitForSingleObject
VirtualQuery
VirtualAlloc
SizeofResource
SetThreadLocale
SetFilePointer
SetEvent
SetErrorMode
SetEndOfFile
ResetEvent
ReadFile
MulDiv
LockResource
LoadResource
LoadLibraryA
LeaveCriticalSection
InitializeCriticalSection
GlobalUnlock
GlobalReAlloc
GlobalHandle
GlobalLock
GlobalFree
GlobalFindAtomA
GlobalDeleteAtom
GlobalAlloc
GlobalAddAtomA
GetVersionExA
GetVersion
GetTickCount
GetThreadLocale
GetTempPathA
GetSystemInfo
GetSystemDirectoryA
GetStringTypeExA
GetStdHandle
GetProcAddress
GetModuleHandleA
GetModuleFileNameA
GetLocaleInfoA
GetLocalTime
GetLastError
GetFullPathNameA
GetDiskFreeSpaceA
GetDateFormatA
GetCurrentThreadId
GetCurrentProcessId
GetCPInfo
GetACP
FreeResource
InterlockedExchange
FreeLibrary
FormatMessageA
FindResourceA
EnumCalendarInfoA
EnterCriticalSection
DeleteCriticalSection
CreateThread
CreateFileA
CreateEventA
CompareStringA
CloseHandle
version.dll
VerQueryValueA
GetFileVersionInfoSizeA
GetFileVersionInfoA
gdi32.dll
UnrealizeObject
StretchBlt
SetWindowOrgEx
SetWinMetaFileBits
SetViewportOrgEx
SetTextColor
SetStretchBltMode
SetROP2
SetPixel
SetEnhMetaFileBits
SetDIBColorTable
SetBrushOrgEx
SetBkMode
SetBkColor
SelectPalette
SelectObject
SaveDC
RestoreDC
RectVisible
RealizePalette
Polyline
PlayEnhMetaFile
PatBlt
MoveToEx
MaskBlt
LineTo
IntersectClipRect
GetWindowOrgEx
GetWinMetaFileBits
GetTextMetricsA
GetTextExtentPoint32A
GetSystemPaletteEntries
GetStockObject
GetPixel
GetPaletteEntries
GetObjectA
GetEnhMetaFilePaletteEntries
GetEnhMetaFileHeader
GetEnhMetaFileBits
GetDeviceCaps
GetDIBits
GetDIBColorTable
GetDCOrgEx
GetCurrentPositionEx
GetClipBox
GetBrushOrgEx
GetBitmapBits
GdiFlush
ExcludeClipRect
DeleteObject
DeleteEnhMetaFile
DeleteDC
CreateSolidBrush
CreatePenIndirect
CreatePalette
CreateHalftonePalette
CreateFontIndirectA
CreateDIBitmap
CreateDIBSection
CreateCompatibleDC
CreateCompatibleBitmap
CreateBrushIndirect
CreateBitmap
CopyEnhMetaFileA
BitBlt
user32.dll
CreateWindowExA
WindowFromPoint
WinHelpA
WaitMessage
UpdateWindow
UnregisterClassA
UnhookWindowsHookEx
TranslateMessage
TranslateMDISysAccel
TrackPopupMenu
SystemParametersInfoA
AnimateWindow
ShowWindow
ShowScrollBar
ShowOwnedPopups
ShowCursor
SetWindowsHookExA
SetWindowTextA
SetWindowPos
SetWindowPlacement
SetWindowLongA
SetTimer
SetScrollRange
SetScrollPos
SetScrollInfo
SetRect
SetPropA
SetParent
SetMenuItemInfoA
SetMenu
SetForegroundWindow
SetFocus
SetCursor
SetClassLongA
SetCapture
SetActiveWindow
SendMessageA
ScrollWindow
ScreenToClient
RemovePropA
RemoveMenu
ReleaseDC
ReleaseCapture
RegisterWindowMessageA
RegisterClipboardFormatA
RegisterClassA
RedrawWindow
PtInRect
PostQuitMessage
PostMessageA
PeekMessageA
OffsetRect
OemToCharA
MessageBoxA
MapWindowPoints
MapVirtualKeyA
LoadStringA
LoadKeyboardLayoutA
LoadIconA
LoadCursorA
LoadBitmapA
KillTimer
IsZoomed
IsWindowVisible
IsWindowEnabled
IsWindow
IsRectEmpty
IsIconic
IsDialogMessageA
IsChild
InvalidateRect
IntersectRect
InsertMenuItemA
InsertMenuA
InflateRect
GetWindowThreadProcessId
GetWindowTextA
GetWindowRect
GetWindowPlacement
GetWindowLongA
GetWindowDC
GetTopWindow
GetSystemMetrics
GetSystemMenu
GetSysColorBrush
GetSysColor
GetSubMenu
GetScrollRange
GetScrollPos
GetScrollInfo
GetPropA
GetParent
GetWindow
GetMenuStringA
GetMenuState
GetMenuItemInfoA
GetMenuItemID
GetMenuItemCount
GetMenu
GetLastActivePopup
GetKeyboardState
GetKeyboardLayoutList
GetKeyboardLayout
GetKeyState
GetKeyNameTextA
GetIconInfo
GetForegroundWindow
GetFocus
GetDesktopWindow
GetDCEx
GetCursorPos
GetCursor
GetClipboardData
GetClientRect
GetClassNameA
GetClassInfoA
GetCapture
GetActiveWindow
FrameRect
FindWindowA
FillRect
EqualRect
EnumWindows
EnumThreadWindows
EndPaint
EnableWindow
EnableScrollBar
EnableMenuItem
DrawTextA
DrawMenuBar
DrawIconEx
DrawIcon
DrawFrameControl
DrawEdge
DispatchMessageA
DestroyWindow
DestroyMenu
DestroyIcon
DestroyCursor
DeleteMenu
DefWindowProcA
DefMDIChildProcA
DefFrameProcA
CreatePopupMenu
CreateMenu
CreateIcon
ClientToScreen
CheckMenuItem
CallWindowProcA
CallNextHookEx
BeginPaint
CharNextA
CharLowerBuffA
CharLowerA
CharToOemA
AdjustWindowRectEx
ActivateKeyboardLayout
kernel32.dll
oleaut32.dll
SafeArrayPtrOfIndex
SafeArrayGetUBound
SafeArrayGetLBound
SafeArrayCreate
VariantChangeType
VariantCopy
VariantClear
VariantInit
comctl32.dll
ImageList_SetIconSize
ImageList_GetIconSize
ImageList_Write
ImageList_Read
ImageList_GetDragImage
ImageList_DragShowNolock
ImageList_SetDragCursorImage
ImageList_DragMove
ImageList_DragLeave
ImageList_DragEnter
ImageList_EndDrag
ImageList_BeginDrag
ImageList_Remove
ImageList_DrawEx
ImageList_Draw
ImageList_GetBkColor
ImageList_SetBkColor
ImageList_ReplaceIcon
ImageList_Add
ImageList_SetImageCount
ImageList_GetImageCount
ImageList_Destroy
ImageList_Create
0(0<0T0h0|0
1e1i1m1
2&2.262>2F2N2V2^2f2n2v2~2
323:3B3J3R3Z3b3j3u3
<(<.<6<H<X<g<s<{<
="=(=0=:=V=a=
1'101;1D1K1Z1a1
2,363Q3Z3
515:5X5^5f5
7/757=7
788@8H8N8T8\8b8h8o8y8<9j9
:R;g;t;
202A2M2
5/5F5[5
:.:6:L:d:r:
;C;p;y;
=6=?=q=x=
0$0/0^0v0
061:1@1D1I1P1V1^1i1
282C2`2j2
3#3E3Y3e3~3
4]5m5L7j7
1.1;1B1F1L1P1V1]1a1{1
3'333@3R3
5&5.565>5F5N5V5^5f5n5v5~5
6&6.666>6F6N6V6^6f6n6v6~6
7&7.767>7F7N7V7^7f7n7v7~7
8&8.868>8F8N8V8^8f8n8v8~8
9&9.969>9F9N9V9^9f9n9v9~9
:&:.:6:>:F:N:V:^:f:n:v:~:
;&;.;6;>;F;N;V;^;f;n;v;~;
<&<.<6<><F<N<V<^<f<n<v<~<
=&=.=6=>=F=N=V=^=f=n=v=~=
=f>+?0?<?K?W?
0'040F0S0_0l0~0
1$1,141<1D1L1T1\1d1l1t1|1
2$2,242<2D2L2T2\2d2l2t2|2
3$3,343<3D3L3T3c3o3|3
4$4(4,4044484<4@4D4P4p4x4|4
5(5054585<5@5D5H5L5P5`5
686@6D6H6L6P6T6X6\6`6p6
7 7@7H7L7P7T7X7\7`7d7h7|7
8,8L8T8X8\8`8d8h8l8p8t8
9 9$949T9\9`9d9h9l9p9t9x9|9
: :$:(:,:0:4:H:h:p:t:x:|:
; ;(;,;0;4;8;<;@;D;H;\;|;
<0<8<<<@<D<H<L<P<T<X<p<
=(=H=P=T=X=\=`=d=h=l=p=
>4>T>\>`>d>h>l>p>t>x>|>
?0?8?<?@?D?H?L?P?T?X?
0/070D0I0O0
6a6q6|6
6N7a7m7
0!0%0)0-0105090=0A0E0I0
6N7c7n8
4=5d5x5
6%6;6"767
8#848K8
8*9>9O9_9u9
=%>*>8>[>
#0;0M0e0
2&282R3
5&5K5}5
6"646^6r6
8&8?8N8g8
:9;T;];
<0=G=i=w=~=
0!131G1
2.2^2e2o2u2|2
3"3'30393B3K3T3|3
5D5^5|5
<!<(<:<?<O<Y<
<,=B=k=y=
>=>K>j>
?A?c?r?
8 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8
9 9(9,94989@9D9L9P9X9\9d9h9p9t9|9
:$:(:0:4:<:@:H:L:T:X:`:d:l:p:x:|:
;!;+;6;@;K;U;`;j;u;
<#<+<5<@<H<M<s<
=D=Q=z=
1Q1_1d1o1u1z1
2%2*252;2@2K2Q2V2a2g2l2w2}2
3'3-323=3_4k4x4
5 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5d5h5l5
686@6D6H6L6P6T6X6\6`6|6
7 7$7(7D7d7l7p7t7x7|7
8,84888<8@8D8H8L8P8T8t8
9 9$9@9`9h9l9p9t9x9|9
:,:4:8:<:@:D:H:L:P:T:y:
;*;A;i;w;
<1<Y<g<v<
<A=P=q=
>/>>>R>a>r>
>A?O?^?u?
5'6B6X6
9(9@9K;O;S;W;[;_;c;g;k;o;s;w;{;
0!0%0)0-01050G0_0]2a2e2i2m2q2u2y2}2
8H9]9r9w9
;$;8;=;
<B<O<Z<{<
=*=r=w=
>">7>C>K>U>Z>_>d>i>o>t>y>
?$?,?4?<?D?L?T?\?d?l?t?|?
5P5T5X5\5`5d5
8 82888Q8
9H9Z9`9|9
: :$:(:,:0:4:8:<:@:T:t:|:
;0;8;<;@;D;H;L;P;T;X;h;
<8<@<D<H<L<P<T<X<\<`<p<
=(=H=P=T=X=\=`=d=h=l=p=
> >8>X>`>d>h>l>p>t>x>|>
? ?$?(?,?0?4?8?P?p?x?|?
0,04080<0@0D0H0L0P0T0`0p0|0
0!1%1)1A1P1T1\1`1p1x1|1
2<2H2L2\2d2h2l2p2t2x2|2
3$32363H3a3l3|3
4 4$4(4,4044484<4@4D4H4L4\4m4q4
5 5$5(5,5054585<5@5D5H5L5P5T5X5l5
6 6$6(6,6064686<6@6D6\6|6
7 7$7(7,7074787<7
8"8&8*8.82868:8>8V8d8h8
9 9$9(9,90949H9h9p9t9x9|9
:*:<:\:d:h:l:p:t:x:|:
:*;.;2;6;:;>;B;Z;v;
<4<8<<<@<D<H<L<P<T<X<\<`<d<h<l<p<
= =$=(=,=0=4=8=<=@=D=H=L=d=t=
>">&>8>T>
? ?$?(?,?0?@?`?h?l?p?t?x?|?
1:2A2b2
5F5X5o5
8(8X8]8
8,919j9
:?:L:[:f:x:
;';,;J;W;f;x;};
< <$<(<,<0<4<8<
>&>I>T>{>
142W2q2
8/969M9
:e:,;Y;
?+?d?z?
6+6=6Z6
4#535S5
< <4<<<@<D<H<L<P<T<X<\<`<n<v<
1#1M1Y1h1
2P2U2t2
4A5F5q5
6@6]6:7
8/9H9]9
>6?]?s?
2)2-2125292=2w2
3	4#4y4
5(565O5
9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9
;7<O<\<j<-=@=u=
=1>_>z>
3?3C3G3K3O3S3W3[3_3c3g3k3o3s3w3{3
7W8i8p8
8*9R9V9Z9^9b9f9j9n9r9v9z9~9
=#=3=9=M=W=e=u=
>\>i>w>
42595b8
>??N?~?
131;1A1
2+252G2_2k2x2
3$3,343<3D3L3T3\3d3l3t3|3
4$4,444<4D4L4T4\4d4l4t4|4
5$535?5L5^5d5|5
6 6@6Y6
9(9=9A9T9i9
:$:(:,:F:N:f:j:n:
;(;0;4;8;<;@;D;H;L;P;T;X;\;h;r;v;
<(<0<4<8<<<@<D<H<L<P<T<X<\<h<t<x<
= =$=(=,=8=E=I=Z=b=z=
>">&>*>B>P>T>`>l>p>x>|>
?"?&?n?r?v?z?~?
0,0:0>0P0p0x0|0
1 10181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|1
2 2$2(2,2024282<2P2`2p2x2|2
3!3%383X3`3d3h3l3p3t3x3|3
4 4$4(4,4044484<4@4L4W4[4r4
a0f0k0
1+1<1u1
2L2j2w2
6+6<6Y6v6
6J7W7u7
3&3F3`3x3
;0;S;k;
= >>>)?
839E9b9
: :W:m:v:
1R2[2i2S3
9+9N9s9
>0?@?P?X?\?`?d?h?l?p?t?x?|?
050[0`0
;\<)=Z=
=I>c>p>
=5=j=y=~=
1+161@1J1Y1c1m1w1
2&222C2S2]2h2r2}2
3*303P3X3\3`3d3h3l3p3t3x3|3
4 4(4,4044484<4@4D4H4L4P4T4*5
6&6.666>6R6Z6b6j6r6z6
70797F7N7T7`7f7
9$9*969>9
:M:U:[:g:o:
:!;);/;;;C;
<S<^<~<
>!>%>+>/>5>9>?>C>[>g>t>
?8?O?t?
0(0H0P0T0X0\0`0d0h0l0p0
2$2(2,2024282<2@2D2R2Z2p2x2
2$3.383@3L3
334B4u4
?(?:?E?^?y?
0"0+00050C0L0Q0V0d0m0r0w0
0'232@2R2`2
4!4*404=4I4V4]4d4k4r4y4
5!5(5/565=5D5K5R5Y5`5g5n5u5|5
6*6/6<6A6N6S6`6e6r6w6
7&7+787=7J7O7\7a7n7s7
8"8'84898F8K8X8]8j8o8|8
9#90959B9G9T9h9m9*=3===W=c=k=y=
3"3&3*3.32363:3>3B3F3J3N3R3V3Z3^3b3f3j3n3r3v3z3~3
8@8P8\8`8h8l8p8t8x8|8
9094989<9@9D9H9\9n9r9
: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:l:x:|:
;";9;=;A;E;[;c;g;{;
<.<6<U<]<a<t<
=5===]=e=i=
>.>W>|>
?4?Z?~?
040d0t0
1 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|1
2 202@2H2L2P2T2X2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3\3g3k3|3
40484T4\4y4
5+53575K5p5
6A6c6k6
7!7)7F7N7o7w7
8#8+8E8I8M8d8l8p8
;8;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;
< <$<(<,<0<4<8<<<@<D<H<L<P<T<X<\<`<d<h<l<p<t<x<|<
="=&=<=P=T=h=x=
> >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|>
?)?5?L?m?q?u?y?
0B0N0d0l0p0
0 1(1D1L1P1g1k1o1
353Z3|3
:':3:@:R:_:k:x:
; ;2;8;H;T;X;`;d;h;l;p;t;x;|;
<*<2<L<\<h<l<t<x<|<
= =$=(=,=0=4=8=<=@=D=H=L=P=T=X=\=`=t=x=|=
> >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|>
?)?1?M?U?Y?o?
0$0,0J0R0p0t0x0|0
1!1)1D1i1
272`2d2
3%3-3I3Q3U3l3p3t3
5+5O5s5
6*6N6q6
9L9[9r9
<|<N={=
G0V0x0
1 1(10181@1H1P1X1`1h1p1x1
2 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3s3
4,484<4D4H4L4P4T4X4\4`4d4h4l4p4t4x4|4
6)7>7P7^7q7
8<9@9H9L9T9X9`9d9l9p9x9|9
: :+:=:N:V:e:o:z:
:';3;@;R;X;h;x;
<X=\=`=d=h=l=p=t=x=|=
> >$>(>,>0>4>8><>J>R>
0(0A0f0
1;1J1Q1
3M4[4u4
9&919;9E9O9Y9c9u9
;4;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;
< <$<(<,<0<4<8<<<@<D<H<L<d<
= =$=(=,=0=4=8=<=@=D=H=L=P=T=X=\=`=d=h=l=p=t=x=
> >$>(>,>0>4>8><>T>d>t>|>
? ?$?(?,?0?4?8?<?@?D?H?L?P?T?X?\?`?d?h?l?p?t?x?|?
0(0L0e0
1<1K1P1p1
232;2V2^2z2
3i3m3q3u3|3
4s4w4{4
4,50545
5o6s6w6{6
687<7@7
7)8-81858<8
8>9B9F9N9T9
:$:0:4:@:D:L:P:T:X:\:`:d:h:l:p:t:x:|:
<"<&<*<.<2<6<:<><B<F<J<N<R<V<Z<^<b<f<j<n<r<v<z<~<
=&=.=D=L=d=l=
>4>T>\>`>d>h>l>p>t>x>|>
010\0n0t0
1$1(1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|1
3"3&3*3.32363:3>3B3F3J3N3R3V3Z3^3b3f3j3n3r3v3z3~3
4"4&4*4.42464:4>4B4F4J4N4R4V4Z4^4b4f4j4n4r4v4z4~4
5 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5d5h5l5p5t5x5|5
6 6$6,6064686<6@6D6H6L6P6T6X6\6`6d6h6l6p6t6x6|6
7 747H7L7`7p7|7
8 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8
:(:,:H:P:T:X:\:`:d:h:l:p:t:x:|:
;+;r;z;
;!<3<<<`<q<#>3>J>
?4?T?\?`?d?h?l?p?t?x?|?
242a2p2
<V<^<k<r<
=%=-=8=P=\=l=}=
>.>A>W>r>~>
?*?/?9?C?I?R?_?d?n?t?|?
0(0.080>0F0T0Y0e0o0u0}0
1 1?1M1\1
192V2l2t2
3 3,313<3D3J3g3r3{3
4*474?4K4X4_4e4m4
5.555;5C5I5W5]5k5q5
6$7I7N7k7{7
;!<(<{=
4'414x4
9b9o9~9U;e;
0t1B2K2Y2
3j445\5
<9=H>V>
3C3n4~4
4	5C5|5
<&<3<N<
='=:=W=
0_1	3J3Q3
=x=~=)?
:-;e;w;]<
{1 2>2j2
<.<?<W<o<
=E>c>L?
=O=Y=c=m=w=
?%?1?9?E?P?V?b?l?r?~?
0!0&0+060;0@0K0X0j1{1
2$252K2S2b2l2u2
3/3<3F3W3`3
4#4(4-474G4R4_4
5"575C5[5e5o5z5
6 6$6(6,6064686<6@6D6H6L6P6^6p6t6x6|6
7 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7r7v7z7~7
8 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8
9 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9
: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:
 040H0\0p0
8*83888C8H8T8p8t8|8
9 9$9(9,9094989<9@9D9H9L9P9T9X9\9d9|9
;==T=}=
132@2P2y2
4C5m5|5
7 777G7r7
;'<7<d<
>C>J>a>/?;?H?Z?`?
D0H0L0P0
0$1(10141
242<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|3
464>4\4d4
555=5W5_5c5y5
6,64686O6W6[6q6}6
7 7,70787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|7
8$8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8
9/979;9R9Z9s9{9
:$:?:d:
; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;
<@<H<L<c<g<k<
> >$>(>,>0>4>8><>@>D>H>L>
0,0?0Z0u0
6K6#878j8
:):5:C:O:^:j:v:
</<]<{=
=.>T>}>
4Z5B7k8
94:	;R;
31C2e2I3m3
5 5/5>5M5
7;7.8<8S8
;);2;W;|;
;O<r<3=q=,>;>
9":D:w:
=)>6>F>`>v>
&090j0
1P2Z2d2
5+525<5F5P5[5e5w5
6,6J6p6
7*727J7V7n7
8!888@8X8`8|8
9(9,94989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|9
: :$:(:::>:B:F:J:N:h:
;L;g;t;
;(<B<x<
>I>M>T>
?!?%?)?0?<?@?L?P?X?\?`?d?h?l?p?t?x?|?
0 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0z0
1"1&1*1.12161:1>1B1F1J1N1R1V1Z1^1b1f1j1n1r1v1z1~1
2!2%242D2T2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3l3p3|3
4'4/4Q4Y4]4s4{4
5*525P5T5X5\5r5v5z5~5
6:6B6`6h6l6
7;7G7]7e7
81898=8P8\8u8}8
979?9C9[9c9g9~9
:1:9:=:Y:a:e:{:
;1;=;S;_;u;
<"<;<G<_<k<
=>=f=r=
>9>E>_>k>
? ?,?C?h?t?
0 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|0
1(1,1014181<1@1D1H1\1q1u1
2$2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3T3b3j3r3z3
3)4?4I4S4i4
5"5>5F5N5
6 6'6.6?6G6M6W6k6
:(;K;f;y<
=%=4=Y=~=
=#>(>D>
?1?R?Y?t?
5.696F6L6W6d6o6C7
=,><>Y>r>
>6?C?S?m?
314O4~4
5,6B6n6
9-9D9X9y9
=-=P=r=
>->K>^>
?'???Q?p?
4 5^5m5
5H6n6y6
7-7P738
5=8`8o8~8
809L9h9
>C>S>q>
0$1d1s1
2&2<2i2s2
3,3>3U3_3n3
4~5~6G8d8
<Y=E>u>
?I?S?^?p?
2 2g2|2a3{3
<P=[=f=
>'>>>M>]>j>p>
3)3.333E3T3e3x3
354T4s4
5H5q5]6
7(757<7[7
9 9$9(9,90949
<@</=i=
0/0L0b0
0$3J3t3"4E4
9N:^:i:
;&;6;>;M;W;\;
=(=3===H=Z=j=w=
> >$>(>,>0>4>8><>@>D>T>t>
? ?$?(?,?0?4?8?<?@?D?H?L?P?T?X?\?`?d?t?
<0\0d0h0l0p0t0x0|0
4G4Z4#6o6
3+3E3	4
8$83878;8?8C8s:
f5r5y5
;f;m;t;{;}<
7'909?9H9
<L>U>o>
1P3k4I=R=u>~>
:";;;M;t;
939<9C9-:4:
142;2u2|2
>5>d>p>
1#222;2J2
r6v6z6~6
;4;a;v;
0 0%04090W1[1_1c1g1k1o1
0b122[7n7~7Z8x8
6R6/>9>
3?4T4[4d4k4
4a4k4}4
4#5*535:5!:w=
2"2'212:2G2L2^2
3(3:3G3S3`3r3
6"6'6/6:6i6
8$8/898D8V8f8{8
9"9/9;9H9Z9
:+:8:J:W:c:p:
;$;6;C;O;\;n;{;
<<<D<H<L<P<T<X<\<`<d<
=8><>G>S>Z>d>n>x>
?*?7?C?P?b?o?{?
0 020_0
2#2/2<2N2T2t2|2
2K3W3^3h3z3
4$44484<4D4L4P4T4X4\4`4d4h4l4p4t4x4|4
5 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5f5l7
8$818;8t8
0*070A0G0T0a0l0r0
1+1>1P1T1X1\1`1d1h1l1p1t1x1|1
2 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|2
3 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|3
4*4/474A4
<0@0D0,181<1`1d1
2X2`2h2p2x2
3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|3
4L4T4\4d4l4t4|4
5$5,545<5D5L5T5\5d5l5t5|5
6$6,646<6D6L6T6\6d6l6t6(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|7
7p9t9x9|9
:$:,:4:<:D:L:T:\:d:l:t:|:
=4=@=D=H=L=P=T=X=\=`=d=h=l=p=t=x=|=
7 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|7
8 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8
9 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|9
: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:
Gggfv@
&vvggd
wwgbvt
1wwwr"gf@
1wwwr"vv@
wr""gf@
wr""&f@
ww"w""@
wr'""@
LDDDDD
"""""""$$
(,""""""""@
"""""$
L""""" 
GIF89a
;GIF89a
)zAibS
Nx.o|0
GIF89a
GIF89a
;GIF89a
GIF89a
GIF89a
;GIF89a
~Zca]c~
GIF89a
O__{VL
GIF89a
GIF89a
slxX|[U
GIF89a
@W`X<"_
hs>yJf
GIF89a
x~puwAe
;GIF89a
%mKW37
|V~z7ou
;GIF89a
e}z{f/
GIF89a
uF}y1w}~
0tU{|1
GIF89a
GIF89a
GIF89a
LF?a|>Yyh^
MV/u/s
GIF89a
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<META HTTP-EQUIV="no-cache">
	<META NAME="GENERATOR" Content="Visual Page 1.1 for Windows">
	<TITLE>{%APPNAME%} Error</TITLE>
</HEAD>
<BODY>
<TABLE BORDER="0" WIDTH="100%">
		<TD WIDTH="115">&nbsp;</TD>
		<TD>
			<H1 ALIGN="CENTER">{%APPNAME%} Error
		</TD>
	</TR>
		<TD WIDTH="115">&nbsp;</TD>
		<TD VALIGN="TOP">{%CONTENT%}</TD>
	</TR>
</TABLE>
</BODY>
</HTML>
GIF89a
GIF89a
GIF89a
;GIF89a
;GIF89a
GIF89a
GIF89a
GIF89a
;GIF89a
GIF89a
GIF89a
GIF89a
GIF89a
GIF89a
x&#0!b
;GIF89a
GIF89a
GIF89a
GIF89a
GIF89a
0dhj~/
GIF89a
;GIF89a
;t_clear.gif
function DynChartLegend(ADiv, AWidth)
this.Draw = DynChartLegend_Draw;
this.Div = ADiv;
this.Width = AWidth;
function DynChartLegend_Draw()
var i = 0;
var s = '';
var LColorIdx = 0;
s = '<B>Legend - ' + this.DataDescr + '</B></BR>'+ '<TABLE>';
for (i=0; i < this.Data.length; i++) {
'<TR>'+ '<TD width="50" align="center" BGColor="' + this.Colors[LColorIdx++] + '">'+ this.Data[i][1] + '</TD>'+ '<TD>' + this.Data[i][0] + '</TD>'+ '</TR>'
if (LColorIdx >= this.Colors.length) {LColorIdx = 0;}
s += '</TABLE>'
this.Div.innerHTML = s;
function DynChart(ADiv, AData, AColNames, AColors, AVertData, AHorzData, ALegend, AFunc)
this.Draw = DynChart_Draw;
this.Div = ADiv;
this.Data = AData;
this.ColNames = AColNames;
this.Colors = AColors;
this.VertData = AVertData;
this.HorzData = AHorzData;
this.Legend = ALegend;
this.Func = AFunc;
function DynChart_Draw()
var i = 0;
var j = 0;
var s = '';
var LColorIdx = 0;
var LHorzIdx = 0;
var LVertIdx = 0;
var LHeight = this.Div.style.pixelHeight;
var LWidth = this.Div.style.pixelWidth;
var LData = new Array();
function FindHorz(AHorz, AData) {
var i = 0;
for (i = 0; i < AData.length; i++) {
if (AData[i][0] == AHorz)
{return i;}
return -1;
function FindCol(AName, AData) {
var i = 0;
for (i = 0; i < AData.length; i++) {
if (AData[i].toUpperCase() == AName.toUpperCase())
{return i;}
return -1;
function draw_box(AX, AY, AWidth, AHeight, AColor, AText)
return '<SPAN style="'+ 'position:absolute;'+ 'left:' + AX + 'px;'+ 'top:' + AY + 'px;'+ 'width:' + AWidth + 'px;'+ 'height:' + AHeight + 'px;'+ 'background:' + AColor + ';'+ ((AHeight < 10) ? 'font-size:1px;' : '')+ '">'+ AText+ '</SPAN>';
function chartfunc_Avg(AArray, AData) {
AArray[1] += AData;
AArray[2] += 1;
return 0;
function chartpostfunc_Avg(AArray) {
AArray[1] = AArray[1] / AArray[2];
function chartfunc_Sum(AArray, AData) {
AArray[1] += AData;
return 0;
function chartpostfunc_Sum(AArray) {
function chartfunc_Count(AArray, AData) {
AArray[1] += 1;
return 0;
function chartpostfunc_Count(AArray) {
function chartfunc_Min(AArray, AData) {
AArray[1] = Math.min(AArray[1], AData);
return 0;
function chartpostfunc_Min(AArray) {
function chartfunc_Max(AArray, AData) {
AArray[1] = Math.max(AArray[1], AData);
return 0;
function chartpostfunc_Max(AArray) {
LHorzIdx = FindCol(this.HorzData, this.ColNames);
LVertIdx = FindCol(this.VertData, this.ColNames);
s = draw_box(0, 0, 1, LHeight, 'blue', '')+ draw_box(0, LHeight, LWidth, 1, 'blue', '');
for (i=0; i < this.Data.length; i++) {
j = FindHorz(this.Data[i][LHorzIdx], LData);
if (j == -1) {
LData[LData.length] = new Array(this.Data[i][LHorzIdx], 0, 0);
j = LData.length - 1;
eval('chartfunc_' + this.Func + '(LData[j], this.Data[i][LVertIdx])');
for (i=0; i < LData.length; i++) {
eval('chartpostfunc_' + this.Func + '(LData[i])');
var LColWidth = Math.floor(LWidth / (LData.length));
var LBarWidth = Math.floor(LColWidth / 2);
var LBarOffset = Math.floor((LColWidth - LBarWidth) / 2);
var LMaxColValue = 0;
for (i=0; i < LData.length; i++) {
LMaxColValue = Math.max(LMaxColValue, LData[i][1]);
var LColSegHeight = LHeight / LMaxColValue;
for (i=0; i < LData.length; i++) {
LBarHeight = Math.floor(LData[i][1] * LColSegHeight);
s += draw_box(LColWidth * i + LBarOffset, LHeight - LBarHeight, LBarWidth, LBarHeight
, this.Colors[LColorIdx++], LData[i][1]);
if (LColorIdx >= this.Colors.length)
{LColorIdx = 0;}
this.Div.innerHTML = s;
if (this.Legend != null) {
this.Legend.Data = LData;
this.Legend.Colors = this.Colors;
this.Legend.DataDescr = this.ColNames[LHorzIdx];
this.Legend.Draw();
var IWCLForm;
var alNone = 0;
var alTop = 1;
var alBottom = 2;
var alLeft = 3;
var alRight = 4;
var alClient = 5;
var alCustom = 6;
var iwclBase = 0;
var iwclDBBase = 1000;
var iwclLabel = 1 + iwclBase;
var iwclEdit = 2 + iwclBase;
var iwclComboBox = 3 + iwclBase;
var iwclCheckBox = 4 + iwclBase;
var iwclListBox = 5 + iwclBase;
var iwclMemo = 6 + iwclBase;
var iwclTreeView = 7 + iwclBase;
var iwclDBNav = iwclDBBase + 1;
var iwclDBGrid = iwclDBBase + 2;
function Rect(ALeft, ATop, AWidth, AHeight) {
this.Left = ALeft;
this.Top = ATop;
this.Width = AWidth;
this.Height = AHeight;
function RectSize(AWidth, AHeight) {
this.Width = AWidth;
this.Height = AHeight;
function Point(AX, AY)
this.X = AX;
this.Y = AY;
function CopyRect(ASrcRect) {
return new Rect(ASrcRect.Left, ASrcRect.Top, ASrcRect.Width, ASrcRect.Height);
function CreateAnchors(ALeft, ARight, ATop, ABottom) {
this.Left = ALeft;
this.Right = ARight;
this.Top = ATop;
this.Bottom = ABottom;
function CreateIWCLForm(AWidth, AHeight) {
/* this.Width = AWidth;
this.Height = AHeight;
this.OldWidth = AWidth;
this.OldHeight = AHeight; */
this.Item = document.body;
this.Rect = new Rect(0, 0, AWidth, AHeight);
this.OriginalRect = new Rect(0, 0, AWidth, AHeight);
this.OwnedComps = new Array();
this.UpdateRects = IWCL_UpdateRects;
function LocateElement(AId) {
var AItem = ns6 ? document.getElementById(AId): document.all[AId];
if (AItem == null) {
AItem = FindElem(AId);
else {
if (!AItem.tagName) {
AItem = AItem[0]
return AItem;
function ClientToScreen(AControl, APoint) {
var LItem = AControl;
var LPoint = new Point(APoint.X, APoint.Y);
while (LItem != IWCLForm) {
LItem = LItem.Owner;
LPoint.X += LItem.Rect.Left;
LPoint.Y += LItem.Rect.Top;
return LPoint;
function ScreenToClient(AControl, ARect) {
var LPoint;
if (AControl != IWCLForm) {
LPoint = ClientToScreen(AControl.Owner, new Point(AControl.Owner.Rect.Left, AControl.Owner.Rect.Top));
ARect.Left = ARect.Left - LPoint.X;
ARect.Top = ARect.Top - LPoint.Y;
function CreateRect(AControl) {
var LRect;
with (AControl) {
LRect = new Rect(Item.offsetLeft, Item.offsetTop, Item.offsetWidth, Item.offsetHeight);
ScreenToClient(AControl, LRect);
return LRect;
function IWCL_SetAlign(AAlign) {
this.Align = AAlign;
function IWCL_SetAnchors(AAnchors) {
this.Anchors = AAnchors;
function IWCL_SetFieldName(AFieldName) {
this.FieldName = AFieldName;
function IWCL_SetDataSet(ADataSet) {
if (ADataSet == null) {
this.DataSet = ADataSet;
if (ADataSet != null) {
ADataSet.OnChangeList[ADataSet.OnChangeList.length] = this;
this.DoOnChange(ADataSet);
function IWCL_OverrideIWCLType(ASetIWCLTypeMethod) {
this.SetIWCLTypeMehtodList[this.SetIWCLTypeMehtodList.length] = ASetIWCLTypeMethod
function IWCL_SetOnChange(ADataSet) {
this.SetOnChnage = ADataSet;
function IWCL_SetIWCLType(AType) {
switch (AType) {
case iwclLabel:
this.DoOnChange = IWCL_LabelOnChage;
break;
case iwclEdit:
break;
case iwclComboBox:
break;
case iwclCheckBox:
break;
case iwclListBox:
break;
case iwclMemo:
break;
case iwclTreeView:
break;
case iwclDBNav:
this.DoOnChange = IWCL_DBNavigatorOnChage;
break;
case iwclDBGrid:
break;
default: {
for(i = 0; i < this.SetIWCLTypeMehtodList.length; i++)
this.SetIWCLTypeMehtodList[i](AType);
function IWCL_OnChage(ADataSet) {
function IWCL_LabelOnChage(ADataSet) {
AElement = LocateElement(this.Id);
if (ADataSet) {
layerWrite(this.Id, false, ADataSet.FieldByName(this.FieldName));
function IWCL_DBNavigatorOnChage(ADataSet) {
AElement = LocateElement(this.Id + 'IWCL_First');
if (AElement != null) {
if (ADataSet != null) {
if (ADataSet.BOF()) {
AElement.src = this.First_Disabled;
else {
AElement.src = this.First_Enabled;
} else {
AElement.src = this.First_Disabled;
AElement = LocateElement(this.Id + 'IWCL_Last');
if (AElement != null) {
if (ADataSet != null) {
if (ADataSet.EOF()) {
AElement.src = this.Last_Disabled;
else {
AElement.src = this.Last_Enabled;
} else {
AElement.src = this.Last_Disabled;
AElement = LocateElement(this.Id + 'IWCL_Next');
if (AElement != null) {
if (ADataSet != null) {
if (ADataSet.EOF()) {
AElement.src = this.Next_Disabled;
else {
AElement.src = this.Next_Enabled;
} else {
AElement.src = this.Next_Disabled;
AElement = LocateElement(this.Id + 'IWCL_Prior');
if (AElement != null) {
if (ADataSet != null) {
if (ADataSet.BOF()) {
AElement.src = this.Prior_Disabled;
else {
AElement.src = this.Prior_Enabled;
} else {
AElement.src = this.Prior_Disabled;
AElement = LocateElement(this.Id + 'IWCL_Refresh');
if (AElement != null) {
if (ADataSet != null) {
AElement.src = this.Refresh_Enabled;
} else {
AElement.src = this.Refresh_Disabled;
function IWCL_SetRect(ARect) {
var LPoint = new Point(ARect.Left, ARect.Top);
LPoint = ClientToScreen(this, LPoint);
this.Item.style.left = LPoint.X;
this.Item.style.top = LPoint.Y;
if (ARect.Width != this.Rect.Width || ARect.Height != this.Rect.Height) {
this.Item.style.width = ARect.Width;
this.Item.style.height = ARect.Height;
function CreateIWCLObject(AOwner, AId, AName) {
this.Owner = AOwner;
this.Id = AId;
this.Name = AName;
this.Item = LocateElement(AId);
if(this.Item != null) {
this.Align = alNone;
this.Anchors = new CreateAnchors(true, false, true, false);
this.OriginalRect = CreateRect(this);
this.Rect = CreateRect(this);
this.SetAlign = IWCL_SetAlign;
this.SetAnchors = IWCL_SetAnchors;
this.SetDataSet = IWCL_SetDataSet;
this.SetFieldName = IWCL_SetFieldName;
this.SetOnChange = IWCL_SetOnChange;
this.DoOnChange = IWCL_OnChage;
this.SetIWCLType = IWCL_SetIWCLType;
this.SetIWCLTypeMehtodList = new Array();
this.SetRect = IWCL_SetRect;
this.OverrideIWCLType = IWCL_OverrideIWCLType;
this.UpdateRects = IWCL_UpdateRects;
this.UpdateTopLeft = IWCL_UpdateTopLeft;
this.OwnedComps = new Array();
this.Owner.OwnedComps[this.Owner.OwnedComps.length] = this;
function InitRects(AFormWidth, AFormHeight) {
IWCLForm = new CreateIWCLForm(AFormWidth, AFormHeight);
function CustomAnchors(AAnchors, AAlign)
switch (AAlign) {
case alTop: {
return !(AAnchors.Left && AAnchors.Right && AAnchors.Top && !AAnchors.Bottom)
break;
case alBottom: {
return !(AAnchors.Left && AAnchors.Right && !AAnchors.Top && AAnchors.Bottom)
break;
case alLeft: {
return !(AAnchors.Left && !AAnchors.Right && AAnchors.Top && AAnchors.Bottom)
break;
case alRight: {
return !(!AAnchors.Left && AAnchors.Right && AAnchors.Top && AAnchors.Bottom)
break;
case alNone: {
return !(AAnchors.Left && !AAnchors.Right && AAnchors.Top && !AAnchors.Bottom)
function DoUpdateRects(AParent, AAlign, AControl) {
var LNewRect;
var LNewHeight;
var LNewWidth;
var LNewTop;
var LNewLeft;
LNewHeight = AControl.Rect.Height;
LNewWidth = AControl.Rect.Width;
LNewTop = AControl.Rect.Top;
LNewLeft = AControl.Rect.Left;
if (AAlign == alNone || CustomAnchors(AControl.Anchors, AAlign)) {
with (AControl.Anchors) {
if (Left && !Right) {
} else if (Left && Right) {
LNewWidth = AParent.Rect.Width - (AParent.OriginalRect.Width - AControl.OriginalRect.Width);
} else if (!Left && Right) {
LNewLeft = AControl.OriginalRect.Left + AParent.Rect.Width - AParent.OriginalRect.Width;
} else if (!Left && !Right) {
LNewLeft = AControl.OriginalRect.Left + (AParent.Rect.Width - AParent.OriginalRect.Width) / 2;
/* ((AControl.OriginalRect.Left + AControl.OriginalRect.Width / 2) * AParent.Rect.Width) /
AParent.OriginalRect.Width - LNewWidth / 2; */
if (Top && !Bottom) {
} else if (Top && Bottom) {
LNewHeight = AParent.Rect.Height - (AParent.OriginalRect.Height - AControl.OriginalRect.Height);
} else if (!Top && Bottom) {
LNewTop = AControl.OriginalRect.Top + AParent.Rect.Height - AParent.OriginalRect.Height;
} else if (!Top && !Bottom) {
LNewTop = AControl.OriginalRect.Top + (AParent.Rect.Height - AParent.OriginalRect.Height) / 2;
/* ((AParent.OriginalRect.Top + AControl.OriginalRect.Height / 2) * AParent.Rect.Height) /
AParent.OriginalRect.Height - LNewHeight / 2; */
LNewRect = new Rect(LNewLeft, LNewTop, LNewWidth, LNewHeight);
switch (AControl.Align) {
case alTop: {
LNewRect.Height = LNewHeight;
LNewRect.Top = AParent.ClientRect.Top;
LNewRect.Width = AParent.ClientRect.Width;
AParent.ClientRect.Top = AParent.ClientRect.Top + LNewHeight;
AParent.ClientRect.Height = AParent.ClientRect.Height - LNewHeight;
break;
case alBottom: {
LNewRect.Height = LNewHeight;
LNewRect.Top = (AParent.ClientRect.Height + AParent.ClientRect.Top) - LNewRect.Height;
LNewRect.Width = AParent.ClientRect.Width;
AParent.ClientRect.Height = AParent.ClientRect.Height - LNewHeight;
break;
case alLeft: {
LNewRect.Width = LNewWidth;
LNewRect.Left = AParent.ClientRect.Left;
LNewRect.Height = AParent.ClientRect.Height; // + AParent.OriginalRect.Top;
AParent.ClientRect.Left = AParent.ClientRect.Left + LNewWidth;
AParent.ClientRect.Width = AParent.ClientRect.Width - LNewWidth;
break;
case alRight: {
LNewRect.Width = LNewWidth;
LNewRect.Left = (AParent.ClientRect.Left + AParent.ClientRect.Width) - LNewRect.Width;
LNewRect.Height = AParent.ClientRect.Height; // + AParent.OriginalRect.Top;
AParent.ClientRect.Width = AParent.ClientRect.Width - LNewWidth;
break;
case alClient: {
LNewRect.Top = AParent.ClientRect.Top;
LNewRect.Left = AParent.ClientRect.Left;
LNewRect.Width = AParent.ClientRect.Width;
LNewRect.Height = AParent.ClientRect.Height;
break;
AControl.SetRect(LNewRect);
AControl.UpdateRects(LNewRect);
function AlignListSort(A, B) {
switch (A.Align) {
case alTop: {
return A.Rect.Top - B.Rect.Top;
break;
case alBottom: {
return B.Rect.Top - A.Rect.Top;
break;
case alLeft: {
return A.Rect.Left - B.Rect.Left;
break;
case alRight: {
return B.Rect.Left - A.Rect.Left;
break;
function DoAlign(AParent, AAlign) {
var i;
var AlignList = new Array();
for(i=0; i < AParent.OwnedComps.length; i++) {
if (AParent.OwnedComps[i].Align == AAlign) {
AlignList[AlignList.length] = AParent.OwnedComps[i];
if (AAlign != alNone) {
AlignList.sort(AlignListSort);
for (i=0; i < AlignList.length; i++) {
DoUpdateRects(AParent, AAlign, AlignList[i]);
function IWCL_UpdateTopLeft(ADiff) {
this.SetRect(this.Rect);
function IWCL_UpdateRects(ANewRect) {
var i;
var LDiff;
if (ANewRect.Width < this.OriginalRect.Width) {
ANewRect.Width = this.OriginalRect.Width;
if (ANewRect.Height < this.OriginalRect.Height) {
ANewRect.Height = this.OriginalRect.Height;
this.ClientRect = new Rect(0, 0, ANewRect.Width, ANewRect.Height);
this.Rect = CopyRect(ANewRect);
/* for (i = 0; i < this.OwnedComps.length; i++) {
this.OwnedComps[i].SetRect(this.OwnedComps[i].Rect);
if (this.OwnedComps.length > 0) {
DoAlign(this, alTop);
DoAlign(this, alBottom);
DoAlign(this, alLeft);
DoAlign(this, alRight);
DoAlign(this, alClient);
DoAlign(this, alNone);
var ie4 = (document.all)? true:false;
var ns6 = (document.getElementById)? true && !ie4:false;
var _numScrolls = 0;
var _scrolls = new Array();
var _dragObject;
var _thumbLayer; // contains thumb for scrolling
var _barLayer; // contains the scroll bar
var _scrollLayer;// points to the content that is scrolled
var _scrollInt;
var _scrollImgs;
var _nav4 = (navigator.appName.indexOf("Netscape") != -1);
var _loading = false;
var _domain = document.domain;
function fFrame(left,top,width,height,src,baseHREF,borderColor) {
this.top = top;
this.left = left;
this.width = width;
this.height = height;
this.src = src;
this.baseHREF = baseHREF;
this.borderColor = borderColor || "#DDDDDD";
this.inSync = new Array();
this.id = _numScrolls;
this.load = _fLoadSrc;
this.scrollTo = _fScrollTo;
this.scrollBy = _fScrollBy;
this.init = _fInit;
this.setup = _fSetup;
if(src.indexOf("http://") != -1) {
if(src.indexOf(_domain) == -1) {
alert("fframe.js: Sorry, the src you specified is not in this domain.");
return;
if(_nav4) {
this.isInit = false;
this.isSetup = false;
if(!baseHREF) {
this.baseHREF = GURLBase + "/gfx/sb_";
} else
this.baseHREF = baseHREF;
if(!_scrollImgs) _fLoadImages(this.baseHREF);
this.init();
this.load(false, false);
this.setup();
} else {
document.body.innerHTML +=
'<IFRAME WIDTH='+width+' HEIGHT='+height+' SCROLL=AUTO '+
'NAME="scroll'+_numScrolls+'" '+
'ID="scroll'+_numScrolls+'" '+
'STYLE="position:absolute;'+
'left:'+left+';'+
'top:'+top+';'+
'width:'+width+';'+
'height:'+height+';" '+
'SRC="'+src+'">'+
'</IFRAME>\n';
this.layer = document.all["scroll"+_numScrolls];
this.layer.style.borderColor = this.borderColor;
this.isInit = true;
this.isSetup = true;
_numScrolls++;
_scrolls[this.id] = this;
function _fLoadImages(baseHREF) {
if(_loading) {
setTimeout(_fLoadImages, 100, baseHREF);
return;
_loading = true;
_scrollImgs = new Array(13);
_scrollImgs[0] = new Image(16,16);
_scrollImgs[0].src = baseHREF + "vup.gif";
_scrollImgs[1] = new Image(16,16);
_scrollImgs[1].src = baseHREF + "vup2.gif";
_scrollImgs[2] = new Image(16,16);
_scrollImgs[2].src = baseHREF + "vdown.gif";
_scrollImgs[3] = new Image(16,16);
_scrollImgs[3].src = baseHREF + "vdown2.gif";
_scrollImgs[4] = new Image(16,16);
_scrollImgs[4].src = baseHREF + "hleft.gif";
_scrollImgs[5] = new Image(16,16);
_scrollImgs[5].src = baseHREF + "hleft2.gif";
_scrollImgs[6] = new Image(16,16);
_scrollImgs[6].src = baseHREF + "hright.gif";
_scrollImgs[7] = new Image(16,16);
_scrollImgs[7].src = baseHREF + "hright2.gif";
_scrollImgs[8] = new Image(16,16);
_scrollImgs[8].src = baseHREF + "vbg.gif";
_scrollImgs[9] = new Image(16,17);
_scrollImgs[9].src = baseHREF + "vthumb.gif";
_scrollImgs[10] = new Image(16,16);
_scrollImgs[10].src = baseHREF + "hbg.gif";
_scrollImgs[11] = new Image(17,16);
_scrollImgs[11].src = baseHREF + "hthumb.gif";
_scrollImgs[12] = new Image(15,15);
_scrollImgs[12].src = baseHREF + "null.gif";
_loading = false;
function _fInit() { _fRealInit(this); }
function _fRealInit(frame) {
if(_loading) {
setTimeout(_fRealInit, 100, frame);
return;
_loading = true;
var borderLayer, contentLayer;
borderLayer = new Layer(frame.width+2);
borderLayer.left = frame.left-1;
borderLayer.top = frame.top-1;
borderLayer.clip.width = frame.width+2;
borderLayer.height = frame.height+2;
borderLayer.clip.height = frame.height+2;
borderLayer.document.bgColor = frame.borderColor;
borderLayer.visibility = "inherit";
frame.borderLayer = borderLayer;
contentLayer = new Layer(frame.width);
contentLayer.captureEvents(Event.ONLOAD);
contentLayer.onLoad = _fOnLoad;
frame.layer = contentLayer;
frame.layer.frame = frame;
frame.vspLayer = new Layer(16);// contains scroll bar
frame.vsuLayer = new Layer(16);// contains up arrow
frame.vsdLayer = new Layer(16);// contains down arrow
frame.vssLayer = new Layer(16);// contains thumb
_fInitComp(frame.vspLayer,
_scrollStartVJump, _scrollEndVJump, 8);
_fInitComp(frame.vsuLayer,
_scrollStartUp, _scrollEndUp, 0);
_fInitComp(frame.vsdLayer,
_scrollStartDown, _scrollEndDown, 2);
_fInitComp(frame.vssLayer,
_scrollStartDrag, _scrollEndDrag, 9);
frame.vssLayer.parLayer = frame.layer;
frame.vssLayer.spLayer = frame.vspLayer;
frame.vspLayer.ssLayer = frame.vssLayer;
frame.vsuLayer.ssLayer = frame.vssLayer;
frame.vsdLayer.ssLayer = frame.vssLayer;
frame.hspLayer = new Layer(frame.width-29);// contains scroll bar
frame.hsuLayer = new Layer(16);// contains left arrow
frame.hsdLayer = new Layer(16);// contains right arrow
frame.hssLayer = new Layer(17);// contains thumb
_fInitComp(frame.hspLayer,
_scrollStartHJump, _scrollEndHJump, 10);
_fInitComp(frame.hsuLayer,
_scrollStartLeft, _scrollEndLeft, 4);
_fInitComp(frame.hsdLayer,
_scrollStartRight, _scrollEndRight, 6);
_fInitComp(frame.hssLayer,
_scrollStartDrag, _scrollEndDrag, 11);
frame.hssLayer.parLayer = frame.layer;
frame.hssLayer.spLayer = frame.hspLayer;
frame.hspLayer.ssLayer = frame.hssLayer;
frame.hsuLayer.ssLayer = frame.hssLayer;
frame.hsdLayer.ssLayer = frame.hssLayer;
frame.nLayer = new Layer(15);// when two scroll bars
_fInitComp(frame.nLayer,
_fDoNothing, _fDoNothing, 12);
frame.isInit = true;
_loading = false;
function _fLoadSrc(src, noSetup) { _fRealLoadSrc(this, src, noSetup); }
function _fRealLoadSrc(frame, src, noSetup) {
if(_loading || !frame.isInit) {
setTimeout(_fRealLoadSrc, 100, frame, src);
return;
src = src || frame.src;
frame.src = src;
if(_nav4) {
_loading = true;
frame.layer.load(src, frame.width);
if(frame.isSetup) {
frame.layer.vScroll(0, false, true);
frame.layer.hScroll(0, false, true);
if(!noSetup) frame.setup();
} else {
frame.layer.src = src;
function _fSetup() { _fRealSetup(this); }
function _fRealSetup(frame) {
if(!_nav4) return;
if(_loading || !frame.isInit) {
setTimeout(_fRealSetup, 100, frame);
return;
frame.hMax = frame.layer.document.width;
frame.vMax = frame.layer.document.height;
if((frame.hMax > frame.width) && !frame.hasHScroll) {
frame.hasHScroll = true;
frame.height -= 16; // make content shorter to fit horiz. scroll bar
frame.load(); // reload to see if hMax changes
return;
} else if((frame.hMax <= frame.width) && frame.hasHScroll) {
frame.hasHScroll = false;
frame.height += 16; // make content taller
frame.load(); // reload to see if hMax changes
return;
if((frame.vMax > frame.height) && !frame.hasVScroll) {
frame.hasVScroll = true;
frame.width -= 16; // make content skinnier to fit vert. scroll bar
frame.load();  // reload to see if vMax changes
return;
} else if((frame.vMax <= frame.height) && frame.hasVScroll) {
frame.hasVScroll = false;
frame.width += 16; // make content fatter
frame.load();  // reload to see if hMax changes
return;
frame.layer.left = frame.left;
frame.layer.top = frame.top;
frame.layer.clip.top = 0;
frame.layer.clip.left = 0;
frame.layer.clip.width = frame.width;
frame.layer.clip.height = frame.height;
frame.layer.bgColor = "#FFFFFF";
frame.layer.visibility = "show";
frame.layer.oHeight = frame.height;
frame.layer.oWidth = frame.width;
frame.layer.oTop = frame.top;
frame.layer.oLeft = frame.left;
frame.layer.vMax = frame.vMax;
frame.layer.hMax = frame.hMax;
frame.layer.vScroll = _fVScroll;
frame.layer.hScroll = _fHScroll;
frame.vssLayer.v = frame.hasVScroll;
frame.hssLayer.h = frame.hasHScroll;
if(frame.hasVScroll) {
var vspLayerBottom = frame.height-31;
var vspLayerTop = frame.top+16;
var vsdLayerTop = frame.top+frame.height-16;
if(frame.hasVScroll) {
vspLayerBottom++;
vsdLayerTop++;
if(frame.baseHREF.indexOf("mac") != -1) {
vspLayerTop--;
vspLayerBottom++;
_fMoveComp(frame.vspLayer,
vspLayerTop, frame.left + frame.width, 16, vspLayerBottom);
_fMoveComp(frame.vsuLayer,
frame.top, frame.vspLayer.left, 16, 16);
_fMoveComp(frame.vsdLayer,
vsdLayerTop, frame.vspLayer.left, 16, 16);
_fMoveComp(frame.vssLayer,
vspLayerTop, frame.vspLayer.left, 16, 17);
} else {
frame.vssLayer.visibility = "hide";
frame.vspLayer.visibility = "hide";
frame.vsuLayer.visibility = "hide";
frame.vsdLayer.visibility = "hide";
if(frame.hasHScroll) {
var hspLayerWidth = frame.width-31;
var hspLayerLeft = frame.left+16;
var hsdLayerLeft = frame.left + frame.width - 16;
if(frame.hasVScroll) {
hspLayerWidth++;
hsdLayerLeft++;
if(frame.baseHREF.indexOf("mac") != -1) {
hspLayerWidth++;
hspLayerLeft--;
_fMoveComp(frame.hspLayer,
frame.top+frame.height, hspLayerLeft, hspLayerWidth, 16);
_fMoveComp(frame.hsuLayer,
frame.hspLayer.top, frame.left, 16, 16);
_fMoveComp(frame.hsdLayer,
frame.hspLayer.top, hsdLayerLeft, 16, 16);
_fMoveComp(frame.hssLayer,
frame.hspLayer.top, hspLayerLeft, 17, 16);
} else {
frame.hssLayer.visibility = "hide";
frame.hspLayer.visibility = "hide";
frame.hsuLayer.visibility = "hide";
frame.hsdLayer.visibility = "hide";
if(frame.hasHScroll || frame.hasVScroll) {
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = _scrollDrag;
if(frame.hasHScroll && frame.hasVScroll)
_fMoveComp(frame.nLayer,
frame.top+frame.height+1, frame.left+frame.width+1, 15, 15);
frame.nLayer.visibility = "hide";
frame.isSetup = true;
function _fInitComp(layer, onmousedown, onmouseup, bgSrc) {
layer.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
layer.onmousedown = onmousedown;
layer.onmouseup = onmouseup;
layer.background.src = _scrollImgs[bgSrc].src;
function _fMoveComp(layer, top, left, width, height) {
layer.top = top;
layer.left = left;
layer.clip.width = width;
layer.clip.height = height;
layer.visibility = "inherit";
function _fDoNothing() {}
function _fOnLoad() {
var i, out;
_loading = false;
for(i=0; i<this.document.links.length; i++)
out = this.document.links[i];
this.captureEvents(Event.ONLOAD | Event.MOUSEDOWN);
this.onLoad = _fOnLoad;
this.onMouseDown = _fOnMouseDown;
function _fOnMouseDown(e) {
if(e && this) {
if(e.target && this.frame) {
if(e.target.href) {
if((e.target.href.indexOf("mailto:") == -1) &&
(e.target.hostname == _domain) &&
((e.target.target == null) ||
(e.target.target == "_self"))) { // no TARGET specified
this.frame.load(e.target);
return false;
return true;
function _fScrollTo(x, y) {
if(!this) return;
if(!_nav4) {
document.frames("scroll"+this.id).self.scrollTo(x,y);
return;
if((typeof(x) == "number") && (this.hMax > this.width)) {
var p = x/(this.hMax - this.width);
this.layer.hScroll(p,true);
if((typeof(y) == "number") && (this.vMax > this.height)) {
var p = y/(this.vMax - this.height);
this.layer.vScroll(p,true);
function _fScrollBy(x, y) {
if(!this) return;
if(!_nav4) {
document.frames("scroll"+this.id).self.scrollBy(x,y);
return;
if(typeof(x) == "number") {
x += this.layer.clip.left;
var p = x/(this.hMax - this.width);
this.layer.hScroll(p,true);
if(typeof(y) == "number") {
y += this.layer.clip.top;
var p = y/(this.vMax - this.height);
this.layer.vScroll(p,true);
function _fVScroll(p, update, sync) {
if(p > 1) p = 1; if(p < 0) p = 0;
i = p*(this.vMax - this.oHeight);
this.clip.top = i;
this.clip.bottom = this.oHeight+i;
this.clip.height = this.oHeight;
this.top = this.oTop - i;
if(update) {
var frame = this.frame;
frame.vssLayer.top = p*(frame.vspLayer.clip.height -
frame.vssLayer.clip.height) +
frame.vspLayer.top;
if(!sync) {
for(f in this.frame.inSync) {
f = this.frame.inSync[f];
if(f.hMax > f.width) {
p = i/(f.vMax - f.height);
f.layer.vScroll(p, true, true);
function _fHScroll(p, update, sync) {
if(p > 1) p = 1; else if(p < 0) p = 0;
i = p*(this.hMax - this.oWidth);
this.clip.left = i;
this.clip.right = this.oWidth+i;
this.clip.width = this.oWidth;
this.left = this.oLeft - i;
if(update) {
var frame = this.frame;
frame.hssLayer.left = p*(frame.hspLayer.clip.width -
frame.hssLayer.clip.width) +
frame.hspLayer.left;
if(!sync) {
for(f in this.frame.inSync) {
f = this.frame.inSync[f];
if(f.hMax > f.width) {
p = i/(f.hMax - f.width);
f.layer.hScroll(p, true, true);
function _scrollStartDown(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[3].src;
_scrollDown();
_scrollInt = setInterval("_scrollDown();",20);
return false;
function _scrollDown() {
p = (_scrollLayer.clip.top+15) /
(_scrollLayer.vMax - _scrollLayer.oHeight);
_scrollLayer.vScroll(p, true);
function _scrollEndDown(e) {
this.background.src = _scrollImgs[2].src;
clearInterval(_scrollInt);
return false;
function _scrollStartUp(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[1].src;
_scrollUp();
_scrollInt = setInterval("_scrollUp();",20);
return false;
function _scrollUp() {
p = (_scrollLayer.clip.top-15) /
(_scrollLayer.vMax - _scrollLayer.oHeight);
_scrollLayer.vScroll(p, true);
function _scrollEndUp(e) {
this.background.src = _scrollImgs[0].src;
clearInterval(_scrollInt);
return false;
function _scrollStartRight(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[7].src;
_scrollRight();
_scrollInt = setInterval("_scrollRight();",20);
return false;
function _scrollRight() {
p = (_scrollLayer.clip.left+15) /
(_scrollLayer.hMax - _scrollLayer.oWidth);
_scrollLayer.hScroll(p, true);
function _scrollEndRight(e) {
this.background.src = _scrollImgs[6].src;
clearInterval(_scrollInt);
return false;
function _scrollStartLeft(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[5].src;
_scrollLeft();
_scrollInt = setInterval("_scrollLeft();",20);
return false;
function _scrollLeft() {
p = (_scrollLayer.clip.left-15) /
(_scrollLayer.hMax - _scrollLayer.oWidth);
_scrollLayer.hScroll(p, true);
function _scrollEndLeft(e) {
this.background.src = _scrollImgs[4].src;
clearInterval(_scrollInt);
return false;
function _scrollStartVJump(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
if(e.pageY > this.ssLayer.top)
dir = "1";
else dir = "-1";
_scrollVJump(dir,-1);
_scrollInt = setInterval("_scrollVJump("+dir+","+e.pageY+");", 50);
return false;
function _scrollVJump(dir,py) {
p = (_scrollLayer.clip.top+dir*_scrollLayer.clip.height)/
(_scrollLayer.vMax - _scrollLayer.oHeight);
if(p > 1) p = 1; else if(p < 0) p = 0;
t = p*(_barLayer.clip.height - _thumbLayer.clip.height) +
_barLayer.top;
if((dir == 1) && (py != -1) && (t > py)) return;
if((dir == -1) && (py != -1) && (t < (py-17))) return;
_scrollLayer.vScroll(p);
_thumbLayer.top = t;
function _scrollEndVJump() {
clearInterval(_scrollInt);
function _scrollStartHJump(e) {
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
if(e.pageX > this.ssLayer.left)
dir = "1";
else dir = "-1";
_scrollHJump(dir,-1);
_scrollInt = setInterval("_scrollHJump("+dir+","+e.pageX+");", 50);
return false;
function _scrollHJump(dir,px) {
p = (_scrollLayer.clip.left+dir*_scrollLayer.clip.width)/
(_scrollLayer.hMax - _scrollLayer.oWidth);
if(p > 1) p = 1; if(p < 0) p = 0;
t = p*(_barLayer.clip.width - _thumbLayer.clip.width) +
_barLayer.left;
if((dir == 1) && (px != -1) && (t > px)) return;
if((dir == -1) && (px != -1) && (t < (px-17))) return;
_scrollLayer.hScroll(p);
_thumbLayer.left = t;
function _scrollEndHJump() {
clearInterval(_scrollInt);
function _scrollStartDrag(e) {
if(this.parLayer) {
_lastScrolledId = this.parLayer.frame.id;
_dragObject = this;
_dragObject.oTop = _dragObject.top;
_dragObject.oLeft = _dragObject.left;
_dragObject.hOffset = e.pageX - _dragObject.oLeft;
_dragObject.vOffset = e.pageY - _dragObject.oTop;
return false;
return true;
function _scrollDrag(e) {
if(!_dragObject) return true;
var pY = e.pageY;
var pX = e.pageX;
if(_dragObject.v) {
pY -= _dragObject.vOffset;
if((pX > (_dragObject.left+54)) ||
(pX < (_dragObject.left-38))) {
pY = _dragObject.oTop;
if(pY < _dragObject.spLayer.top)
pY = _dragObject.spLayer.top;
if(pY > _dragObject.spLayer.clip.height +
_dragObject.spLayer.top -
_dragObject.clip.height)
pY = _dragObject.spLayer.clip.height +
_dragObject.spLayer.top -
_dragObject.clip.height;
_dragObject.top = pY;
percentScroll = (pY - _dragObject.spLayer.top) /
(_dragObject.spLayer.clip.height -
_dragObject.clip.height);
_dragObject.parLayer.vScroll(percentScroll);
} else {
pX -= _dragObject.hOffset;
if((pY > (_dragObject.top+54)) ||
(pY < (_dragObject.top-38))) {
pX = _dragObject.oLeft;
if(pX < _dragObject.spLayer.left)
pX = _dragObject.spLayer.left;
if(pX > _dragObject.spLayer.clip.width +
_dragObject.spLayer.left -
_dragObject.clip.width)
pX = _dragObject.spLayer.clip.width +
_dragObject.spLayer.left -
_dragObject.clip.width;
_dragObject.left = pX;
percentScroll = (pX - _dragObject.spLayer.left) /
(_dragObject.spLayer.clip.width -
_dragObject.clip.width);
_dragObject.parLayer.hScroll(percentScroll);
return false;
function _scrollEndDrag() {
_dragObject = false;
return false;
var GSubmitting = false;
function IWOnError(AMsg, AUrl, ALineNo) {
GSubmitting = false;
return false;
window.onError = IWOnError;
function ProcessElement(obj) {
var i=0;
if (obj.name != null) {
if (obj.name.length > 0) {
dobj=GSubmitter.elements[obj.name];
if (dobj != null) {
if (obj.type=="select-one") {
if (obj.selectedIndex!=-1) { dobj.value=obj.options[obj.selectedIndex].value; }
else { dobj.value=-1 }
if (obj.type=="select-multiple") {
if (obj.selectedIndex!=-1) {
dobj.value=dobj.value=obj.options[obj.selectedIndex].value+',';
for(i=0;i<obj.length;i++) {
if (obj.options[i].selected==true) {
dobj.value=dobj.value+obj.options[i].value+",";
else { dobj.value=-1 }
if (obj.type=="checkbox") { dobj.value=obj.checked; }
if (obj.type=="radio") {
if (obj.checked) { dobj.value=obj.value; }
if (obj.type!="button") { dobj.value=obj.value; }
function LoadURL(URL) {
location.replace(URL);
return true;
function NewWindow(URL, Name, Options) {
ClearFocusTimeout();
w=window.open(URL, Name, Options);
return true;
function Status(msg) {
window.status=msg;
return true;
function TIWCustomCheckBoxToggle(Name, Image, Submit) {
InitSubmitter();
var df=GSubmitter.elements[Name];
if (df.value == 'On') {
df.value = 'Off';
Image.src = GImageCache_TIWCustomCheckBox_False.src;
} else {
df.value = 'On';
Image.src = GImageCache_TIWCustomCheckBox_True.src;
if (Submit) {SubmitClick(Name, '', false);}
function SubmitClickConfirm(objname, param, ADoValidation, AConfirmation) {
if (AConfirmation.length == 0) {
return SubmitClick(objname, param, ADoValidation);
} else if (window.confirm(AConfirmation)) {
return SubmitClick(objname, param, ADoValidation);
} else {
return false;
function SubmitClick(objname, param, ADoValidation) {
if (GSubmitting == false) {
GSubmitting = true;
var i=0;
var j=0;
InitSubmitter();
if (ADoValidation==true) {
if (Validate()==false) {
GSubmitting = false;
return false;
GSubmitter.elements.IW_Action.value=objname;
GSubmitter.elements.IW_ActionParam.value=param;
GSubmitter.submit();
return false;
function layerWrite(id, nestref, text) {
if (ns6) {
document.getElementById(id).innerHTML = text;
} else if (ie4) {
document.all[id].innerHTML = text;
function CSDS_FieldByName(AFieldName) {
var i = 0;
while (i < this.Fields.length && this.Fields[i] != AFieldName) i++;
if (i < this.Fields.length) {
return this.Data[this.CurrentRecord][i];
else {
return null; // Have to find a way to throw exception
function CSDS_First() {
this.CurrentRecord = 0;
this.DoOnChange();
function CSDS_Next() {
if (this.CurrentRecord < this.Data.length - 1) {
this.CurrentRecord++;
this.DoOnChange();
function CSDS_Prior() {
if (this.CurrentRecord > 0) {
this.CurrentRecord--;
this.DoOnChange();
function CSDS_Last() {
this.CurrentRecord = this.Data.length - 1;
this.DoOnChange();
function CSDS_EOF() {
return (this.CurrentRecord == this.Data.length - 1) || (this.Data.length == 0);
function CSDS_BOF() {
return (this.CurrentRecord == 0) || (this.Data.length == 0);
function CSDS_DoOnChange() {
for (i=0; i < this.OnChangeList.length; i ++) {
this.OnChangeList[i].DoOnChange(this);
function CSDataSet(AFields, AData) {
this.Fields = AFields;
this.Data = AData;
this.FieldByName = CSDS_FieldByName;
this.First = CSDS_First;
this.Next = CSDS_Next;
this.Prior = CSDS_Prior;
this.Last = CSDS_Last;
this.EOF = CSDS_EOF;
this.BOF = CSDS_BOF;
this.OnChangeList = new Array();
this.DoOnChange = CSDS_DoOnChange;
this.First();
function compare(a, b) {
  if (a.SortOrder) {
    if (a.Value < b.Value)
      return -1
    if (a.Value > b.Value)
      return 1
  else {
    if (a.Value < b.Value)
      return 1
    if (a.Value > b.Value)
      return -1
  return 0
function DoSort(id, ACol)
  var sortarray = new Array();
  for (i = 0; i < id.Rows.length; i++) {
    sortarray[i] = new Object();
    sortarray[i].row = i;
    sortarray[i].Value = id.Rows[i].RowData[ACol];
    sortarray[i].SortOrder = id.Cols[ACol].SortOrder;
  sortarray.sort(compare);
  var tmparray = new Array();
  for (i = 0; i < sortarray.length; i ++) {
    tmparray[i] = id.Rows[sortarray[i].row];
  id.Rows = tmparray;
  id.Cols[ACol].SortOrder = !id.Cols[ACol].SortOrder;
  id.RenderTable();
function DoChangeValue(AID, ARow, ACol, ANewValue)
  AID.Cells[ARow][ACol].value = ANewValue;
  AID.RenderTable();
function DoFilterValueChange(AID, ACol, ANewValue)
  var i;
  var j;
  var LCol;
  var FilterIndex = ANewValue - 1;
  var NewFilters = new Array();
  if (FilterIndex == -1) {
    for (i = 0; i < AID.Filters.length; i++) {
      if (AID.Filters[i].Col != ACol)
        NewFilters[NewFilters.length] = AID.Filters[i];
    AID.Filters = NewFilters;
  else {
    for (i = 0; i < AID.Filters.length; i++)
      if (AID.Filters[i].Col == ACol) break;
      
    if (i < AID.Filters.length) {
      AID.Filters[i].Col = ACol;
      AID.Filters[i].Value = FilterIndex;
    else {
      AID.Filters[AID.Filters.length] = new Object();
      AID.Filters[AID.Filters.length - 1].Col = ACol;
      AID.Filters[AID.Filters.length - 1].Value = FilterIndex;
  for (i = 0; i < AID.Rows.length; i++)
    AID.Rows[i].Filtered = false;
  for (i = 0; i < AID.Filters.length; i++) {
    LCol = AID.Filters[i].Col;
    for (j = 0; j < AID.Rows.length; j++) {
      if (AID.Rows[j].RowData[LCol] != AID.Cols[LCol].FilterValues[AID.Filters[i].Value]) 
        AID.Rows[j].Filtered = true;
  AID.Cols[ACol].FilterValue = FilterIndex;
  AID.RenderTable();
function DynGrid_RenderTable()
  var s ='';
  var i;
  var j;
  s += this.TableLook;
  // First row is for operation images
  s += '<tr><td width="19">';
  s += this.TitleLook + '<tr>' +
    '<td>' +
    '<table cellpadding="0" cellspacing="0" width="100%" border="0" style="border-collapse: collapse">' +
    '  <tr>' +
    '    <td>' +
    '      <IMG width=16 hight=16 src=' + this.ImgBlank + ' border=0 align="top" >&nbsp;' +
    '    </td>' +
    '  </tr>' +
    '</table>' +
    '</td></tr></table></td>';
  // Captions band
  for (i = 0; i < this.Cols.length; i++) {
    s += '<td>';
    s += this.TitleLook + '<tr><td>';
    s += 
      '<table cellpadding="0" cellspacing="0" width="100%">' +
      '  <tr>' +
      '    <td width="100%">' + this.Cols[i].Caption + '</TD>' +
      '    <TD><a href="javascript:DoSort(' + this.ObjectName + ', ' + i + ')">';
    if (this.Cols[i].SortOrder) 
      s += '<IMG align=top src=' + this.ImgUp + ' border=0>';
    else
      s += '<IMG align=top src=' + this.ImgDown + ' border=0>';
    s += '     </a>' +
      '    </td>' +
      '  </TR>' +
      '</TABLE></TD></tr></table></td>';
  s += '</TR>'; 
  s += '<tr><td width="19">';
  s += this.TitleLook + '<tr>' +
    '<td>' +
    '<table cellpadding="0" cellspacing="0" width="100%" border="0" style="border-collapse: collapse">' +
    '  <tr>' +
    '    <td>' +
    '      <IMG width=16 hight=16 src=' + this.ImgBlank + ' border=0 align="top" >&nbsp;' +
    '  	 </td>' +
    '  </tr>' +
    '</table>' +
    '</td></tr></table></td>';
  // Filter band
  for (i = 0; i < this.Cols.length; i++) {
    s += '<td>'
    s += this.FilterLook + '<tr><td>';
    if (this.Cols[i].FilterValues.length) {
      s += '<select size="1" name="D1" onChange="javascript:DoFilterValueChange(' + this.ObjectName + ', ' + i + ', this.selectedIndex)">';
      if (this.Cols[i].FilterValue == -1) 
        s += '<option selected>All</option>';
      else
        s += '<option>All</option>';
      for (j = 0; j < this.Cols[i].FilterValues.length; j ++) {
        if (this.Cols[i].FilterValue == j) {
          s += '<option selected>' + this.Cols[i].FilterValues[j] + '</option>';
        }
        else {
          s += '<option>' + this.Cols[i].FilterValues[j] + '</option>';
        }
      }
      s += '</select>';
    s += '</td></tr></table></td>';
  s += '</TR>';
  // Data band
  for (i = 0; i < this.Rows.length; i++) {  
    if (this.Rows[i].RowData.length > 0 && !this.Rows[i].Filtered) {
      s += '<tr><td width="19">';
      s += this.TitleLook + '<tr>' +
        '<td>' +
        '<table cellpadding="0" cellspacing="0" width="100%" border="0" style="border-collapse: collapse">' +
        '  <tr>' +
        '    <td>' +
        '      <IMG width=16 hight=16 align=top src=' + this.ImgBlank + ' border=0>&nbsp;' +
	'    </td>' +
        '  </tr>' +
        '</table>' +
        '</td></tr></table></td>';
      for (j = 0; j < this.Rows[i].RowData.length; j++) {
        if (this.Rows[i].RowData[j] == '') {
          s += '<td>' + this.DataLook + '<tr><td>&nbsp;</td></tr></table></td>';
        }
        else {
          s += '<td>' + this.DataLook + '<tr><td>' + this.Rows[i].RowData[j] + '</td></tr></table></td>';
        }
      }
      s += '</TR>';      
  // End of layot table
  s += '</table>';
  layerWrite(this.DIVName, null, s);
function DefineColumn(ACaption)
  this.Caption = ACaption;
  this.FilterValue = -1;
  this.FilterValues = new Array();
  this.SortOrder = true;
function SimpleSort(a,b)
  if (a < b)
    return -1;
  if (a > b)
    return 1;
  return 0;
function DynGrid_InitTable()
  var LCol;
  var i;
  var j;
  var k;
  for (LCol = 0; LCol < this.TitleCaptions.length; LCol ++) {
    this.Cols[LCol] = new DefineColumn(this.TitleCaptions[LCol]);
  for (i = 0; i < this.CellValues.length; i++){
    this.Rows[i] = new Object();
    this.Rows[i].RowData = this.CellValues[i];
    this.Rows[i].Filtered = false;
    for (j = 0; j < this.Rows[i].RowData.length; j++) {
      for (k = 0; k < this.Cols[j].FilterValues.length; k++) {
        if (this.Cols[j].FilterValues[k] == this.Rows[i].RowData[j]) break;
      }
      if (k == this.Cols[j].FilterValues.length)
        this.Cols[j].FilterValues[this.Cols[j].FilterValues.length] = this.Rows[i].RowData[j];
  for (i = 0; i < this.Cols.length; i++)
    this.Cols[i].FilterValues.sort(SimpleSort);
function DefineDynGrid(ADIVName, AName, ATableLook, ADataLook, ATitleLook, AFilterLook, ATitleCaptions, ACellValues)
  this.Cols = new Array();
  this.Rows = new Array();
  this.Filters = new Array();
  this.CaptionBandVisible = true;
  this.FilterBandVisible = true;
  this.name = AName;
  this.DIVName = ADIVName;
  this.ObjectName = AName;
  this.TableLook = ATableLook;
  this.DataLook = ADataLook; 
  this.TitleLook = ATitleLook;
  this.FilterLook = AFilterLook;
  this.TitleCaptions = ATitleCaptions;
  this.CellValues = ACellValues;
  this.RenderTable = DynGrid_RenderTable;
  this.InitTable = DynGrid_InitTable;
}function IWCancel(){
window.alert('cancel');
window.onCancel
function ImageClick(AName, AEvent, ASubmitValidation, AConfirmation)
return SubmitClickConfirm(AName, AEvent.offsetX + ',' + AEvent.offsetY, ASubmitValidation
, AConfirmation);
function FindElem(objname) {
var i=0;
var j=0;
for (i=0; i<document.forms.length; i++) {
if (document.forms.length == 1 || document.forms[i] != GSubmitter) {
for (j=0; j<document.forms[i].elements.length; j++) {
if (objname==document.forms[i].elements[j].name) {
return document.forms[i].elements[j];
function SubmitClickConfirm_Template(objname, param, ADoValidation, AConfirmation) {
var i=0;
var j=0;
InitSubmitter();
if (GSubmitter != null) {
for (i=0; i<document.forms.length; i++) {
if (document.forms[i] == GSubmitter) {
for (j=0; j<document.forms[i].elements.length; j++) {
AItem = LocateElement(document.forms[i].elements[j].id);
if (AItem != null) {
ProcessElement(AItem);
SubmitClickConfirmOriginal(objname, param, ADoValidation, AConfirmation);
function DoFocus() {
return false;
function ClearFocusTimeout() {
return false;
function StaticInit() {
function InitSubmitter() {
GSubmitter=document.SubmitForm;
function CheckReturnKey(AKey, AName, AValidation) {
if (AKey == 13)
{ return SubmitClick(AName, '', AValidation); }
{ return true; }
function Body_OnResize() {
var LNewRect;
LNewRect = new Rect(0, 0, document.body.offsetWidth - 21, document.body.offsetHeight - 21);
IWCLForm.UpdateRects(LNewRect);
function FindElem(objname) {
var i=0;
var j=0;
for (i=0; i<document.forms.length; i++) {
if (document.forms.length == 1 || document.forms[i] != GSubmitter) {
for (j=0; j<document.forms[i].elements.length; j++) {
if (objname==document.forms[i].elements[j].name) {
return document.forms[i].elements[j];
function SubmitClickConfirm_Template(objname, param, ADoValidation, AConfirmation) {
var i=0;
var j=0;
InitSubmitter();
if (GSubmitter != null) {
for (i=0; i<document.forms.length; i++) {
if (document.forms[i] != GSubmitter) {
for (j=0; j<document.forms[i].elements.length; j++) {
AItem = LocateElement(document.forms[i].elements[j].id);
if (AItem != null) {
ProcessElement(AItem);
SubmitClickConfirmOriginal(objname, param, ADoValidation, AConfirmation);
function DoFocus() {
return false;
function ClearFocusTimeout() {
return false;
function StaticInit() {
function InitSubmitter() {
GSubmitter=document.SubmitForm;
ImageCurrentName = '';
ImageCurrentValidate = false;
ImageCurrentConfirmation = '';
function ImageClick(AEvent) {
return SubmitClickConfirm(ImageCurrentName, (AEvent.layerX - 6) + ',' + (AEvent.layerY - 6)
, ImageCurrentValidate, ImageCurrentConfirmation);
function ImageSetEvent(ALink, AImgName, AValidation, AConfirmation)
ImageCurrentName = AImgName;
ImageCurrentValidate = AValidation;
ImageCurrentConfirmation = AConfirmation;
ALink.onmousedown=ImageClick;
return true;
function Body_OnResize() {
var LNewRect;
LNewRect = new Rect(0, 0, window.innerWidth - 21, window.innerHeight - 21);
IWCLForm.UpdateRects(LNewRect);
/**************
Copyright (c) 2001 Thomas Brattli (www.dhtmlcentral.com)
eXperience DHTML coolMenus - Get it at  www.dhtmlcentral.com
Version 3.02
This script can be used freely as long as all copyright messages are
intact. 
(You can delete the comments below to save space)
This script takes over for the old Coolmenus2 and CoolFrameMenu
Visit www.dhtmlcentral.com/coolmenus/ 
for the latest version of the script.
Tutorial: http://www.dhtmlcentral.com/tutorial.asp
Support: http://www.dhtmlcentral.com/forums/forum.asp?FORUM_ID=2&CAT_ID=1&Forum_Title=CoolMenus
Known bugs:
Netscape 6: When using padding in the layers you can sometimes get
strange visual effects on the lowest menu item. Only way to fix is to not use padding. 
Opera: This menu is very close to working on Opera, but as far as I could 
figure out opera don't support innerHTML or document.createElement() which
makes the changing of the text inside the submenus immpossible. If anyone 
know a solution to this please let me know.
Explorer 4 for mac: It will not work in this browser, nothing does. 
Explorer 5 for mac: It works fine, but like Netscape 6 it's a little slow and you can get strange visual effects sometimes. 
Script checked and working with:
Netscape 4.03 - Netscape 4.04 -Netscape 4.08 - Netscape 4.73 - Netscape 6 - Netscape 6.01
Internet Explorer 5.0 - Internet Explorer 5.5 -Internet Explorer 6.0
Netscape 4 - Explorer 5
Btw: There is basically just one explanation to why this code is sort of "scrambled": I wanted this file be as small as possible..
If you want it to be smaller feel free to remove all comments (except for the copyright)
**************/
/*************
Pageobject
***************/
function makePageCoords(win, fr){
  if (!win) win=window
  this.x=0;
  this.x2 = (bw.ns4 || bw.ns6) ? win.innerWidth-1 : win.document.body.offsetWidth;
  if (!fr&&bw.ie) this.x2-=20;
  else
    if (!fr&&bw.ns4) this.x2-=4;
    else
      if(bw.ns6) this.x2+=1
  this.y = 0;
  this.y2 = (bw.ns4 || bw.ns6) ? win.innerHeight : win.document.body.offsetHeight;
  if (bw.ns4&&!win.rows) this.x2+=5;
  if (!fr&&bw.ie) this.y2-=4;
  else
    if(bw.ns4&&fr) this.y2+=4
  this.y2orig = this.y2;
  this.x50 = this.x2 / 2;
  this.y50 = this.y2/2;
  return this;
/*************
Debugging function
***************/
function debug(txt,ev) {
  if(mDebugging == 2)
    self.status=txt;
  else
    alert(txt);
  if(ev) eval(ev);
  return false;
/*****************************************************************************
Default browsercheck - Leave this one
******************************************************************************/
function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion; this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom)
	return this
/************
Scroll function
*************/
function cm_checkScrolled(obj){
	if(bw.ns4 || bw.ns6) obj.scrolledY=obj.win.pageYOffset
	else obj.scrolledY=obj.win.document.body.scrollTop
	if(obj.scrolledY!=obj.lastScrolled){
		if(!obj.useframes){
			for(i=0;i<obj.l[0].num;i++){var sobj=obj.l[0].o[i].oBorder; sobj.moveY(sobj.y+(obj.scrolledY-obj.lastScrolled))}
			if(obj.usebar) obj.oBar.moveY(obj.oBar.y+(obj.scrolledY-obj.lastScrolled))
		obj.lastScrolled=obj.scrolledY; page.y=obj.scrolledY; page.y2=page.y2orig+obj.scrolledY
		if(!obj.useframes || bw.ie){ clearTimeout(obj.tim); obj.isover=0; obj.hideSubs(1,0)}
	}if((bw.ns4 || bw.ns6) && !obj.useframes) setTimeout("cm_checkScrolled("+obj.name+")",200)
/***********************
Checking if the values are % or not.
***************/
function cm_checkp(num,w,check,istop,ds){
	if(num){ var p=istop?toppage:page
		if(num.toString().indexOf("%")!=-1){if(w || (check && this.rows)) num=(p.x2*parseFloat(num)/100)
		else num=(p.y2*parseFloat(num)/100)
		}else num=eval(num)
	}else num=0; return num
/************
Making DIV objects + DIV objects code
*************/
function cm_makeObj(obj,name,level,win,nest,o){
	if(o&&(bw.ns4||bw.ns6)) this.evnt=o
          this.evnt = bw.dom ? win.document.getElementById(obj) : bw.ie4 ? win.document.all[obj] : bw.ns4 ? nest ? win.document[nest].document[obj] : win.document[obj] : 0;
	if(!this.evnt) return debug('There seems to be an error with this layer:\nFrame: '+win+'\nLayer: '+nest + "." + obj)
	this.css=bw.dom||bw.ie4?this.evnt.style:bw.ns4?this.evnt:0;	this.ref=bw.dom || bw.ie4?win.document:bw.ns4?this.css.document:0;
	this.hideIt=cm_hideIt; this.showIt=cm_showIt; this.writeIt=cm_writeIt; this.setactive=cm_setactive; this.addEvents=cm_addEvents;
	this.moveIt=cm_moveIt; this.clipTo=cm_clipTo; if(name) this.parent=name; this.moveY=cm_moveY; this.l=level; this.clipOut=cm_clipOut;
	this.filterIt=cm_filterIt; this.obj = obj + "Object"; 	eval(this.obj + "=this"); this.tim=10; this.clipy=0; return this
function cm_writeIt(text) {
  if(!this.img1) {
    if(bw.ns4) {
      this.ref.write(text);
      this.ref.close()
    else
      this.evnt.innerHTML=text
function cm_moveY(y){this.y=y; this.css.top=y}
function cm_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}
function cm_showIt(){this.css.visibility="visible"; this.vis=1}; function cm_hideIt(){this.css.visibility="hidden"; this.vis=0}
function cm_clipOut(px,w,ystop,tim,name){
	if(!this.vis) return; if(this.clipy<ystop-px){this.clipy+=px; this.clipTo(0,w,this.clipy,0,1)
		this.tim=setTimeout(this.obj+".clipOut("+px+","+w+","+ystop+","+tim+",'"+name+"')",tim)
	}else{if(bw.ns6){this.hideIt();}; this.clipTo(0,w,ystop,0,1); if(bw.ns6){this.showIt()}}
function cm_filterIt(f){if(this.evnt.filters[0]) this.evnt.filters[0].Stop(); else this.css.filter=f; this.evnt.filters[0].Apply(); this.showIt(); this.evnt.filters[0].Play();}
function cm_setactive(on,name,frmmouse){
	if(!name) name=this.name; var tobj=this.parent.m[name]
	if(tobj.img){if(tobj.img2){if(on) this.ref.images[tobj.img].src=tobj.img2; else this.ref.images[tobj.img].src=tobj.img1}
	}else{
		if(on){var color=tobj.c2; var fcolor=tobj.c4; var re=tobj.c3}else{var color=tobj.c1; var fcolor=tobj.c3; var re=tobj.c4}
		if(color){if(bw.dom || bw.ie4) this.css.backgroundColor=color; else if(bw.ns4) if(color=="transparent") color=null; this.css.bgColor=color}
		if(fcolor && !bw.ns4){if(bw.ie4) this.evnt.style.color=fcolor; else if(this.evnt.childNodes[0]) this.evnt.style.color=fcolor
		}else if(fcolor&&frmmouse){t=this.parent.m[name].text; t=t.replace(re,fcolor); this.writeIt(t); if(on) this.addEvents(name,this.parent.name,tobj.lnk,this.parent.useclick)}
		if(tobj.l==0&&bw.ns6){this.parent.l[0].o[tobj.num].oBorder.hideIt(); this.parent.l[0].o[tobj.num].oBorder.showIt();} //Stupid fix for netscape 6....
function cm_clipTo(t,r,b,l,w){if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
}else{this.css.clip="rect("+t+","+r+","+b+","+l+")"; if(w){this.css.width=r; this.css.height=b}}; this.width=r; this.height=b}
function cm_addEvents(n,name,url,useclick){
	this.evnt.onmouseover=new Function(name+".mover('"+n+"')"); 
	this.evnt.onmouseout=new Function(name+".mmout('"+n+"')")
	if(!url && useclick) ev=new Function(name+".mover('"+n+"',1)")
	else ev=new Function(name+".go('"+n+"')")
	if(bw.ns4){this.ref.captureEvents(Event.MOUSEDOWN); this.ref.onmousedown=ev}
	else this.evnt.onclick=ev
/************
Making menu object
*************/
function cm_makeMenu(name,parent,text,link,target,width,height,img1,img2,bgcoloroff,bgcoloron,textcolor,hovercolor,onclick,onmouseover,onmouseout){
	this.m[name]=new Object(); var obj=this.m[name]; obj.name=name;	obj.subs=new Array(); obj.parent=parent; var tt
	obj.lnk=(link==0||link=='')?"":link; obj.target=target
	if(parent!="" && parent){this.m[parent].subs[this.m[parent].subs.length]=name; l=this.m[parent].l+1} else l=0
	obj.l=l; prop1=l<this.level.length?this.level[l]:this.level[this.level.length-1]; prop2=this.level[0]
	if(this.l.length<=l){
		this.l[l]=new Object(); this.l[l].num=0; if(l==0) this.l[l].names=new Array()
		this.l[l].clip=prop1["clip"]||prop2["clip"]||0; this.l[l].clippx=prop1["clippx"]||prop2["clippx"]||0
		this.l[l].cliptim=prop1["cliptim"]||prop2["cliptim"]||0; this.l[l].filter=prop1["filter"]||prop2["filter"]||0
		this.l[l].border=prop1["border"]||prop2["border"]; this.l[l].maxnum=0
		this.l[l].bordercolor=prop1["bordercolor"]||prop2["bordercolor"];
		s=prop1["align"]||prop2["align"]; if(s=="left") s=1; else if(s=="right") s=0; 
		else if(s=="top") s=3; else if(s=="bottom") s=2; this.l[l].align=s; this.aobj[l]=-1;
		this.l[l].height=prop1["height"]||prop2["height"]; this.l[l].width=prop1["width"]||prop2["width"];
		this.l[l].style=prop1["style"]||prop2["style"]; this.l[l].tc=textcolor||prop1.textcolor||prop2.textcolor; 
		this.l[l].offsetX=String(prop1["offsetX"])!="undefined"?prop1["offsetX"]:prop2["offsetX"]
		this.l[l].offsetY=String(prop1["offsetY"])!="undefined"?prop1["offsetY"]:prop2["offsetY"]
	}if(l==0) this.l[l].names[this.l[l].names.length]=name
	if(parent!="" && parent){obj.num=this.m[parent].subs.length-1}else obj.num=this.l[l].num
	this.l[l].num++; prop=l<this.level.length?this.level[l]:this.level[this.level.length-1]
	obj.width=this.checkp(width?width:prop1.width?prop1.width:prop2.width,1,0,1);
	obj.height=this.checkp(height?height:prop1.height?prop1.height:prop2.height,0,0,1);
	if(parent!="" && parent){if(this.m[parent].subs.length>this.l[l].maxnum) this.l[l].maxnum=this.m[parent].subs.length 
		if(this.m[parent].totheight==0) this.m[parent].totheight=this.l[l].border
		this.m[parent].totheight+=obj.height+ this.l[l].border
		if(this.m[parent].maxwidth<obj.width) this.m[parent].maxwidth=obj.width+this.l[l].border*2
	}else{this.l[l].maxnum=this.l[l].names.length; this.totwidth+=obj.width; this.totheight+=obj.height
		this.maxwidth=this.maxwidth>obj.width?this.maxwidth:obj.width; this.maxheight=this.maxheight>obj.height?this.maxwidth:obj.height
	}if(img1) text='<img src="'+img1+'" border="0" name="imgCMenu'+name+'">'
	else if(bw.ns4){text='<font size="'+(prop1.NS4fontSize||prop2.NS4fontSize)+'" face="'+(prop1.NS4font||prop2.NS4font)+'" color="'+(textcolor||this.l[l].tc)+'">'+text+'</font>'}
	if(bw.ns4&&this.useNS4links&&(l==0||!this.useframes) ||(l==0&&img1)){tt=img1&&l==0?this.useclick?this.name+".mover('"+name+"',1);":this.name+".go('"+name+"');":"";text='<a href="#" onclick="'+tt+'return false" class="clNS4">'+text+'</a>'}
	if(img1){obj.preimg1=new Image(); obj.preimg1.src=img1}; if(img2){obj.preimg2=new Image(); obj.preimg2.src=img2}
	if(img2) obj.img="imgCMenu"+name; else obj.img=0; obj.img1=img1||""; obj.img2=img2||""; obj.text=text; obj.subx=-1;
	obj.c1=bgcoloroff||prop1.bgcoloroff||prop2.bgcoloroff; obj.c2=bgcoloron||prop1.bgcoloron||prop2.bgcoloron;
	obj.c3=textcolor||this.l[l].tc; obj.c4=hovercolor||prop1.hovercolor||prop2.hovercolor;  obj.suby=-1;
	obj.mclick=onclick||""; obj.mover=onmouseover||""; obj.mout=onmouseout||"";	obj.totheight=0; obj.maxwidth=0; 
/************
Onmouseout
*************/
function cm_mout(name,cl){
	if(!name&&cl&&!this.isover){this.isclicked=0; this.hideSubs(1,0,0,0,1);  this.aobj[0]=-1; return}
	if(!name) return; var l=this.m[name].l;
	if((this.m[name].subs.length==0||!this.loaded)||(this.useclick&&!this.isclicked)){if((this.aobj[l+1]==-1||l>=this.l.length-1)&&this.aobj[l]!=-1){this.aobj[l].setactive(0,0,1); this.aobj[l]=-1;}}
	if(this.m[name].mout!="") eval(this.m[name].mout)
	if(this.useclick){this.isover=0; return}; clearTimeout(this.tim); 
	if(!(!bw.ie&&this.useframes&&l==0&&this.aobj1)){ this.isover=0; this.aobj1=0; this.tim=setTimeout(this.name+".hideSubs(1,0,0,0,1)",this.wait)} 
/************
Onmouseover
*************/
function cm_mover(name,cl){
	clearTimeout(this.tim); this.isover=1; var l=this.m[name].l;
	if(this.aobj[l].name==name){
		if(this.aobj[l+1]!=-1 && l<this.l.length-1){
			this.aobj[l+1].setactive(0,0,1); this.aobj[l+1]=-1; this.hideSubs(l+2,1); return
		}else if((!this.useclick)||(this.useclick&&this.isclicked)) return
	}if(this.m[name].mover!="") eval(this.m[name].mover)
	var num=this.m[name].num; var obj=this.l[l].o[num]
	if(this.aobj[l].name!=name){if(this.aobj[l]!=-1) this.aobj[l].setactive(0,0,1); this.aobj[l]=obj; this.aobj[l].name=name; obj.setactive(1,0,1)}
	if(l==1)this.aobj1=1; if(l==0 && cl && this.useclick) this.isclicked=1; 
	if(!this.isclicked&&this.useclick) return; if(!this.loaded) return;
	this.showSubs(name,l,num,cl)
/************
Hiding subelements
*************/
function cm_hideSubs(l,system,cl,sys2,hc){
	if(this.isover && !system) return
	if(l==1 && this.aobj[0]!=-1&&!sys2){this.aobj[0].setactive(0,0,1);this.aobj[0]=-1}
	if(!this.loaded) return; if(cl==1) return
	for(i=l;i<this.l.length;i++){if(this.l[i].oBorder.vis==0) break; this.l[i].oBorder.hideIt(); this.aobj[i]=-1;}
	if(hc&&this.hcode){eval(this.hcode); this.hcode=""}
/************
Get x/y coords. Only the first time :)
*************/
function cm_getCoords(name,l,num,topalign,align,ln,border,cn,lev1b){
	if(cn==5){ this.m[name].subx=0; this.m[name].suby=0; return }//Just in case infinitive loops
	if(l==1) var pobj=this.l[l-1].o[num].oBorder
	else var pobj=this.l[l-1].oBorder
	var x=pobj.x; var y=pobj.y;
	if(l!=1){y+=this.l[l-1].o[num].y}
	pborder=this.l[l-1].border; 
	lx=x+pobj.width; rx=x-this.m[name].maxwidth- (this.l[l-1].offsetX*2)
	if(align==0){if(l==1){y+=border} if(l==1&&this.useframes) x=0; else x=lx
	}else if(align==1){x=rx; if(l==1){if(this.useframes) x=page.x2 - this.m[name].maxwidth; y+=border}}
	if((align==2||topalign==2)&&lev1b!=3){
		if(l!=1 && (align!=1&&align!=0)){if(topalign==1) x=rx; else x=lx}
		if(l==1) if(this.useframes) y=0; else y+=this.m[name].height+border+pborder;
	}if((align==3||topalign==3)&&lev1b!=2){
		if(l!=1&&align!=1&&align!=0){if(topalign==1) x=rx; else x=lx}
		if(this.useframes&&l==1) y=page.y2 - this.m[name].totheight - this.l[l-1].offsetY*2
		else y-=this.m[name].totheight - this.l[l].offsetY*2; if(l!=1||lev1b==3) y+=this.m[name].height
	}this.m[name].scrollY=this.lastScrolled; this.m[name].subx=x+this.l[l-1].offsetX; 
	this.m[name].suby=y+this.l[l-1].offsetY; if(this.useframes&&l==1&&align!=3) this.m[name].suby+=this.lastScrolled
	if(this.pagecheck&&(l!=1||!this.useframes)) this.checkPage(name,l,num,topalign,align,ln,border,cn)
/************
Checking page coords
*************/
function cm_checkPage(name,l,num,topalign,align,ln,border,cn){
	cn++; 
	if(this.m[name].subx+this.m[name].maxwidth>page.x2){
		if(align!=1){if(align==3&&topalign!=0) topalign=3; align=1; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
	}else if(this.m[name].subx<page.x){
		if(align!=0){if(align==3) topalign=3; align=0; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
	}else if((this.m[name].suby+this.m[name].totheight)>page.y2){
		if(l==1){topalign=3; this.getCoords(name,l,num,topalign,align,ln,border,cn,3)}
		else if(align!=3){ align=3; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
	}else if(this.m[name].suby<page.y){
		if(l==1){topalign=2; this.getCoords(name,l,num,topalign,align,ln,border,cn,2)}
		else if(align!=2){align=2; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
/************
Showing subelements
*************/
function cm_showSubs(name,l,num,cl){
	l+=1; if(l>=this.l.length) return; ln=this.m[name].subs.length
	if(ln==0){this.hideSubs(l,1,0,1); return}
	else this.hideSubs(l+1,1); var border=this.l[l].border; this.aobj[l]=-1
	if(this.useframes&&(bw.ns4||bw.ns6)) cm_checkScrolled(this)
	if((this.m[name].subx==-1 || this.m[name].suby==-1) || this.m[name].scrollY!=this.lastScrolled || this.isresized){
		var topalign=this.l[0].align; var align=this.l[l-1].align; 
		this.getCoords(name,l,num,topalign,align,ln,border,0)
	}var x=this.m[name].subx; var y=this.m[name].suby;
	var bobj=this.l[l].oBorder; bobj.hideIt(); 
	if(this.l[l-1].clip&&!(this.l[l-1].filter&&bw.filter)){
		clearTimeout(bobj.tim); bobj.clipy=0; bobj.clipTo(0,this.m[name].maxwidth,0,0);
	}else bobj.clipTo(0,this.m[name].maxwidth,this.m[name].totheight,0,1)
	bobj.moveIt(x,y); var yy=border
	for(i=0;i<this.l[l].maxnum;i++){
		var obj=this.l[l].o[i]
		if(i<ln){
			var n=this.m[name].subs[i]; obj.aname=n; if(!bw.ns4||!this.NS4hover) obj.writeIt(this.m[n].text)
			obj.addEvents(n,this.name,this.m[n].lnk,this.useclick); var w=this.m[n].width; var h=this.m[n].height
			if(obj.y!=yy) obj.moveY(yy); yy+=h+border; if(!obj.img) obj.setactive(0,n,1); 
			if(obj.width!=w||obj.height!=h) obj.clipTo(0,w,h,0,1); obj.css.visibility="inherit"
		}else obj.hideIt()
	}if(this.l[l-1].filter&&bw.filter) bobj.filterIt(this.l[l-1].filter)
	else if(this.l[l-1].clip){bobj.showIt(); bobj.clipOut(this.l[l-1].clippx,this.m[name].maxwidth,this.m[name].totheight,this.l[l-1].cliptim,name);}
	else bobj.showIt(); 
	if(!bw.ns4&&this.checkselect){ //CHECKING FOR SELECT BOXES
		for(i=0;i<this.sel.length;i++){
			selx=0; sely=0; var selp;
			if(this.sel[i].offsetParent){selp=this.sel[i]; while(selp.offsetParent){selp=selp.offsetParent; selx+=selp.offsetLeft; sely+=selp.offsetTop;}}
			selx+=this.sel[i].offsetLeft; sely+=this.sel[i].offsetTop
			selw=this.sel[i].offsetWidth; selh=this.sel[i].offsetHeight
			if(((selx+selw)>this.m[name].subx && selx<(this.m[name].subx+this.m[name].maxwidth))
			&&((sely+selh)>this.m[name].suby && sely<(this.m[name].suby+this.m[name].totheight))){
				if(this.sel[i].style.visibility!="hidden"){this.sel[i].level=l; this.sel[i].style.visibility="hidden"; this.hcode+=this.name+".sel["+i+"].style.visibility='visible';"}
			}else if(l<=this.sel[i].level) this.sel[i].style.visibility="visible"
	}else if(bw.ns4&&this.hideForm){eval(this.hideForm+".visibility='hide'"); this.hcode=this.hideForm+".visibility='show'"}
/************
Making all top elements
*************/
function cm_makeTop(rr){
	var m,rows,border,x,y,mpa
	m=this.menuplacement; rows=this.rows; this.pxbetween=this.checkp(this.pxbetween,0,1,1)
	border=this.l[0].border;y=this.checkp(this.fromtop,0,0,1)+border;x=this.checkp(this.fromleft,0,0,1)+border
	if(m=="bottomcenter"||m=="bottom"){
		if(m=="bottomcenter") x=toppage.x2/2-(this.totwidth+border*this.l[0].num+this.pxbetween*(this.l[0].num-1))/2
		y=toppage.y2-this.maxheight-border
	}else if(m=="right") x=toppage.x2-this.maxwidth-border*2
	else if(m=="bottom") y=toppage.y2-this.maxheight-border*2
	else if(m=="center"){if(rows==0) x=toppage.x2/2 -  (this.maxwidth+border*2)/2; else x=toppage.x2/2 - (this.totwidth + border*this.l[0].num +this.pxbetween*(this.l[0].num-1))/2}
	else if(m.toString().indexOf(",")>-1) mpa=1
	if(this.usebar){ var bx,by,bww,bh,oBb
		oNS=bw.ns6?this.oNS[this.l[0].maxnum]:0
		this.oBar=new cm_makeObj('div'+this.name+'Bar',0,0,window,0,oNS)
		if(this.barx=="menu") bx=mpa&&rows?this.checkp(m[0],1,0,1)-border:x-border; else{ bx=this.checkp(this.barx,1,0,1) }
		if(this.bary=="menu") by=mpa&&!rows?this.checkp(m[0],0,0,1)-border:y-border; else by=this.checkp(this.bary,0,0,1);  this.oBar.moveIt(bx,by)
		if(this.barwidth=="menu"){bww=rows?mpa?(this.checkp(m[m.length-1],1,0,1)-bx)+this.m[this.l[0].names[this.l[0].num-1]].width+border:(this.totwidth +this.pxbetween*(this.l[0].num-1)):this.maxwidth; 
		bww+=!rows?border*2:0;}else bww=this.checkp(this.barwidth,1,0,1); 
		if(bw.ie&&rows&&this.barwidth=="100%"&&this.useframes) bww+=parseInt(self.document.body.leftMargin)*2
		if(this.barheight=="menu"){bh=!rows?mpa?(this.checkp(m[m.length-1],0,0,1)-by)+this.m[this.l[0].names[this.l[0].num-1]].height+border:(this.totheight + this.pxbetween*(this.l[0].num-1)):this.maxheight;
		bh+=rows?this.l[0].border*2:0;} else bh=this.checkp(this.barheight,0,0,1);
		this.oBar.clipTo(0,bww,bh,0,1);
		if(this.barinheritborder&&border){oBb=new cm_makeObj('div'+this.name+'Barb',0,0,window,'div'+this.name+'Bar'); 
		oBb.moveIt(border,border); oBb.clipTo(0,bww-border*2,bh-border*2,0,1); oBb=null;}
	}this.l[0].o=new Array()
	for(j=0;j<this.l[0].maxnum;j++){
		this.l[0].o[j]=new cm_makeObj('div'+this.name+'0_'+j,this,0,window,'div'+this.name+'0_'+j+'b'); if(bw.ns6) oNS=this.oNS[j]; else oNS=0
		this.l[0].o[j].oBorder=new cm_makeObj('div'+this.name+'0_'+j+'b',0,0,window,0,oNS)
		obj=this.l[0].o[j]; w=this.m[this.l[0].names[j]].width; h=this.m[this.l[0].names[j]].height
		obj.addEvents(this.l[0].names[j],this.name,this.m[this.l[0].names[j]].lnk,this.useclick); obj.clipTo(0,w,h,0,1)
		if(mpa){if(rows==1) x=this.checkp(m[j],0,1,1); else y=this.checkp(m[j],0,0,1)}
		obj.moveIt(border,border); 
		obj.setactive(0,this.l[0].names[j])
		obj.oBorder.moveIt(x-border,y-border); obj.oBorder.clipTo(0,w+border*2,h+border*2,0,1); obj.oBorder.showIt()
		if(rows==0) y+=h+border+this.pxbetween
		else x+=w+border+this.pxbetween; obj.showIt()
	}if(!rr){
		if(this.useclick) coolFMouseup+=this.name+".mmout('',1);"; if(!this.useframes&&!bw.ns4) this.refresh()
		else if(!this.useframes&&bw.ns4){l=""; if(onload){l=String(onload.toString()); l=l.replace("function onload(event)",""); l=l.slice(25,l.length-2)} l+=this.name+ ".refresh();"; onload=new Function(l)}
		if(this.resizecheck) setTimeout('window.onresize=new Function("'+this.name+'.resized()")',500)
		if(this.checkscroll){if(bw.ns4 || bw.ns6){if(this.checkscroll!=2&&this.useframes!=1){setTimeout("cm_checkScrolled("+this.name+")",200)}}}
		if(this.useframes&&!rr) this.checkFrame(0); else this.win=window
/************
Refreshing/making all sub elements
*************/
function cm_refresh(ev){
	var border,obj,oNS,oNS2
	if(this.useframes) page=new makePageCoords(this.win,this.useframes); else page=toppage
	for(i=1;i<this.l.length;i++){
		this.l[i].o=new Array();
		border=this.l[i].border; defheight=this.checkp(this.l[i].height)
		if(bw.ns4){oNS=new Layer(this.l[i].width,this.win); oNS.zIndex=(500+i);  if(this.l[i].border) oNS.bgColor=this.l[i].bordercolor;}
		else if(bw.ns6){oNS=document.createElement("DIV"); oNS.setAttribute("style",this.ns6styleb[i]); this.win.document.body.appendChild(oNS)}
		this.l[i].oBorder=new cm_makeObj('div'+this.name+i+"b",0,0,this.win,0,oNS)
		for(j=0;j<this.l[i].maxnum;j++){
			if(bw.ns4){oNS2=new Layer(this.l[i].width,oNS);}
			else if(bw.ns6){oNS2=document.createElement("DIV");	oNS2.setAttribute("style",this.ns6style[i]); oNS.appendChild(oNS2)}
			this.l[i].o[j]=new cm_makeObj('div'+this.name+i+'_'+j,this,i,this.win,0,oNS2)
			obj=this.l[i].o[j]; if(!obj.addEvents) return; obj.moveIt(border,(border+defheight)*j + border)
	}this.loaded=1;
	if(this.checkscroll&&bw.ie){this.win.document.body.onscroll=new Function("cm_checkScrolled("+this.name+")"); cm_checkScrolled(this)}
	if(this.useclick){this.win.document.onmouseup=new Function(coolFMouseup); if(this.useframes) document.onmouseup=new Function(coolFMouseup); }
	if(!bw.ns4&&this.checkselect) this.sel=bw.ie4?this.win.document.all.tags("SELECT"):this.win.document.getElementsByTagName("SELECT")
function cm_NS6_createElement(st,inn){el=document.createElement("DIV"); if(st) el.setAttribute("style",st); if(inn) el.innerHTML=inn; document.body.appendChild(el); return el}
/************
Making code
*************/
function cm_construct(){
	this.level=null; var str=""; var str2=""; var frstr=""; var tempstr; num=bw.ie?this.l.length:1;
	for(i=0;i<num;i++){
		if(i!=0) frstr+='<div id="div'+this.name+i+'b" style="'+this.ns6styleb[i]+'" class="cl'+this.name+i+'b">\n'
		for(j=0;j<this.l[i].maxnum;j++){
			tempstr='<div id="div'+this.name+i+'_'+j+'" '; if(i!=0) tempstr+='style="'+this.ns6style[i]+'"'
			if(i==0){n=this.l[0].names[j]; txt=this.m[n].text
				if(!bw.ns6){
					str+='<div id="div'+this.name+'0_'+j+'b" class="cl'+this.name+'b'+i+'">'
					str+=tempstr+' class="cl'+this.name+i+'">'+txt+'</div>'; str+='</div>\n'
				}else this.oNS[j]=cm_NS6_createElement(this.ns6styleb[i],tempstr+' class="cl'+this.name+i+'">'+txt+'</div>')
			}else frstr+=tempstr+'"></div>\n'
		}if(i!=0){frstr+='</div>\n'}
	}if(this.usebar){
		if(this.barinheritborder) str2='<div id="div'+this.name+'Barb"></div>'; 
		if(bw.ns6) this.oNS[this.l[0].maxnum]=cm_NS6_createElement(this.ns6styleb[this.ns6styleb.length-1],str2)
		else{str+='<div id="div'+this.name+'Bar">';str+=str2+'</div>\n'}
	}if(!this.useframes&&bw.ie) str+=frstr; else this.frstr=frstr; if(!bw.ns6) document.write(str)
	this.makeTop();	if(this.useframes) window.onerror=cm_check_error;
coolFrameError=0//Trapping external pages in frame error!
function cm_check_error(e){e=e.toLowerCase(); if(e.indexOf("access")>-1||e.indexOf("permission")>-1){coolFrameError=1; return true;}else return false}
/**************
Make styles
**************/
function cm_makeStyle(){
	var str="<style>\n"; var zindex=150;  var c,w,st,bg
	this.ns6style=new Array(); this.ns6styleb=new Array()
	for(i=0;i<this.l.length;i++){
		if(i==0){if(bw.ns4){w="width:" +this.l[0].width+";"; this.l[i].style=""} else w=""; str+='.cl'+this.name+i+'{position:absolute; '+w+' background-color:transparent; color:'+this.l[i].tc+';'+this.l[i].style+'; cursor:pointer; cursor:hand; visibility:inherit; z-index:'+zindex+'}\n'}
		else{st='position:absolute; '+this.l[i].style+';  cursor:pointer; cursor:hand; visibility:inherit; z-index:'+zindex; this.ns6style[i]=st}
		bc=this.l[i].border?bw.ns4?'layer-background-color:'+this.l[i].bordercolor:'; background-color:'+this.l[i].bordercolor:"";
		if(!bw.ns4) bc+="; overflow:hidden"
		tempstr='position:absolute; clip:rect(0,0,0,0); visibility:hidden; '+bc+'; z-index:'+(zindex-50)
		if(i==0&&!bw.ns6) str+='.cl'+this.name+'b'+i+'{'+tempstr+'}\n'; 
		else this.ns6styleb[i]=tempstr; zindex+=100
	if(this.usebar){
		bg=this.barinheritborder?this.l[0].bordercolor:this.barcolor
		st='z-index:80; position:absolute; background-color:'+bg+'; layer-background-color:'+bg
		if(!bw.ns6) str+='#div'+this.name+'Bar{'+st+'}\n'; else this.ns6styleb[this.ns6styleb.length]=st
		if(this.barinheritborder){str+='#div'+this.name+'Barb{z-index:85; position:absolute; background-color:'+this.barcolor+'; layer-background-color:'+this.barcolor+'}\n'}
	if(bw.ns4) str+="A.clNS4{text-decoration:none; padding:"+this.NS4padding+"}\n"; document.write(str+"\n</style>\n")
/************
Refreshing page if it's resized
*************/
function cm_resized(){
	page2=new makePageCoords(window,this.useframes); 
	if(page2.x2!=toppage.x2 || page2.y2!=toppage.y2){
		if(!bw.ns4){
			toppage=new makePageCoords(window,this.useframes); this.makeTop(1)
			if(!this.useframes) page=toppage; this.isresized=1; eval(this.resizecode)
		}else{this.win.location.reload(); location.reload()}
	}if(!bw.ns4&&this.useframes){page=new makePageCoords(this.win,this.useframes)}
/************
Going to another page
*************/
function cm_go(name){
	obj=this.m[name]; url=obj.lnk; target=obj.target; fc=obj.mclick
	if(url){
		if(this.useframes&&!coolFrameError) loc=this.win.location.href; else loc=location.href
		if(fc) eval(fc); url=this.checkFolder(loc.toString(),url); this.isover=0;
		this.hideSubs(1,0,1); this.isclicked=0; this.aobj[0]=-1
		if(String(target)=="undefined" || target=="" || target==0 || target=="_self"){
			this.win.location.href=url
		}else if(target=="_blank") window.open(url)
		else if(target=="_top" || target=="window") top.location.href=url  
		else if(top[target]) top[target].location.href=url
		else{fr=findFrame(target); if(fr) fr.location.href=url}
	}else if(fc) eval(fc)
/************
Getting folders - THANKS TO DCAGE FOR THIS FIX
*************/
function cm_checkFolder(tmp,url){
	if(url.indexOf("mailto:")>-1 || url.indexOf("/")==0 || url.indexOf("http://")==0) return url
	else if(this.useframes && bw.ie || bw.ns6) return url
	var addr=''; var lvl=''; var off_cnt=0; var cnt=0;
	if(tmp.indexOf('file:')>-1 || tmp.charAt(1)==':') addr=this.offlineUrl;
	else if(tmp.indexOf('http:')>-1) addr=this.onlineUrl;
	for(var i=0;i<addr.length;i++){if(addr.charAt(i)=='\/') off_cnt+=1}
	for(var i=0;i<tmp.length;i++){if(tmp.charAt(i)=='\/'){ cnt+=1; if(cnt>off_cnt) lvl+='../'; }}
	return lvl + url
/************
Checkloaded for the frames version
*************/
function cm_checkLoaded(ev,ns){
	coolFName=eval(coolFName)
	var ok=0
	if(document.layers){ 
		if(ns){coolFName.refresh(); coolFName.nsload=1; ok=1; coolFrameError=0
		}else if(ev.target.name==coolFName.frame&&!coolFName.nsload){coolFName.refresh(); ok=1; coolFrameError=0; routeEvent(ev)}
	}else if(bw.ie){
		if (coolFName.win.document.readyState == "complete"){
			coolFName.win.document.body.insertAdjacentHTML("beforeEnd",coolFName.frstr)
			coolFName.win.document.body.onunload=cm_unloaded; coolFName.refresh(); ok=1; coolFrameError=0
		}else setTimeout("cm_checkLoaded()",200)
	}else if(bw.ns6){ 
		if(coolFName.win.document){
			if(coolFName.win.document.body){coolFName.win.addEventListener("unload", cm_unloaded, true); coolFName.refresh(); ok=1; coolFrameError=0}
			else setTimeout("cm_checkLoaded()",200)
		}else setTimeout("cm_checkLoaded()",200)
function cm_unloaded(ev){coolFName=eval(coolFName); if(!coolFName) return; if(document.layers && ev.target.name!=coolFName.frame) return; else coolFName.nsload=0; coolFName.loaded=0; if(!document.layers) setTimeout("cm_checkLoaded()",200)}
/************
Make menu object
*************/
var coolFName=""; var onload; var coolFMouseup="";
function makeCompMenu(name){
	coolFName=name; this.name=name; this.lastScrolled=0;
	this.win=window; toppage=new makePageCoords(window,parent.frames.length);
	this.aobj=new Array(); this.m=new Array(); this.l=new Array()
	this.level=new Array(); this.resized=cm_resized;
	this.makeMenu=cm_makeMenu; this.showSubs=cm_showSubs; this.makeTop=cm_makeTop;
	this.getCoords=cm_getCoords; this.checkPage=cm_checkPage;
	this.mmout=cm_mout; this.mover=cm_mover; this.checkp=cm_checkp;
	this.hideSubs=cm_hideSubs; this.construct=cm_construct;
	this.makeStyle=cm_makeStyle; this.refresh=cm_refresh;
	this.go=cm_go; this.frstr=""; this.mobj=new Array()
	this.totwidth=0; this.totheight=0; this.maxwidth=0; this.maxheight=0
	this.tim=10; this.loaded=0; this.isover=false; this.checkFrame=cm_checkFrame;
	this.checkFolder=cm_checkFolder; this.hcode=""; this.oNS=new Array(); this.oNS2=new Array()
	bw.filter=(bw.ie6||bw.ver.indexOf("MSIE 5.5")>-1) && !bw.mac
/************
Find frame
*************/
function findFrame(frameName){
	obj=top; var frameObj=0;
	for(i=0;i<obj.frames.length;i++){
		if(obj.frames[i].name==frameName){frameObj=obj.frames[i]; break;}; ln=obj.frames[i].frames.length
		for(j=0;j<ln;j++){
			if(obj.frames[i].frames[j].name==frameName){frameObj=obj.frames[i].frames[j];  break}; ln2=obj.frames[i].frames[j].frames.length
			for(a=0;a<ln2;a++){
				if(obj.frames[i].frames[j].frames[a].name==frameName){frameObj=obj.frames[i].frames[j].frames[a]; break}
	}return frameObj
/************
Checking for frame
*************/
function cm_checkFrame(num){
	var fr; if(num==10){debug('Frame: '+this.frame+' doesn\'t exist - Value: '+fr + " - Could not build menus."); return}
	if(!top.frames[this.frame]) fr=findFrame(this.frame); else fr=top.frames[this.frame]
	if(!fr){num++; setTimeout(this.name+".checkFrame("+num+")",500)
	}else{ this.win=fr
		if(bw.ns4){
			top.frames.captureEvents(Event.UNLOAD); top.frames.captureEvents(Event.LOAD); top.frames.onunload=cm_unloaded;
			top.frames.onload = cm_checkLoaded;	setTimeout("cm_checkLoaded(0,1)",1000)
		}else if((bw.ie||bw.ns6)) setTimeout("cm_checkLoaded()",200)
var bw=new lib_bwcheck() //Making browsercheck object
var mDebugging=2 
// ***********************
// TreeView Support
// ***********************
function AddTVItem(ATreeView, ACaption, AClickIndex, AName, AState, AChild, ANext)
  this.ATreeView = ATreeView;
  this.Caption = ACaption;
  this.ClickIndex = AClickIndex;
  this.State = AState;
  this.Next = ANext;
  this.Childs = AChild;
  this.Name = AName;
function FindNextItem(ATreeView, AItem)
  while ((AItem < TreeViewItems.length) && (TreeViewItems[AItem].TreeView != ATreeView)) AItem++;
  return AItem;
function NodeText(AItem, ATreeView)
  if (AItem.ClickIndex==0) {
    return AItem.Caption;
  } else {
    return "<A href=\"javascript:void(SubmitClick('" + ATreeView.Id + "', " + AItem.ClickIndex
      + ", false))\">" + AItem.Caption + "</A>";
function BuildTreeView(ATreeView, LItem, LIdent)
  var TreeViewTable = "";
  var j = 0;
  var k;
  while (LItem != null) {
    k = 0;
    while (k < LIdent) {
      TreeViewTable += "<img border=0 src=" + ATreeView.ImgBlank + " width=16 height=16>";
      k++;
    if (LItem.Childs) {
      if (LItem.State) {
        TreeViewTable += "<A href=\"javascript:CloseTreeItem(" + ATreeView.Name + ",'" + LItem.Name + "');\"><img border=0 src=" + ATreeView.ImgMinus + " width=16 height=16></a>";
        TreeViewTable += "<img border=0 src=" + ATreeView.ImgOpen + " width=16 height=16>";
        TreeViewTable += NodeText(LItem, ATreeView) + "<br>";
        TreeViewTable += BuildTreeView(ATreeView, LItem.Childs, LIdent + 1);
      }
      else {
        TreeViewTable += "<A href=\"javascript:OpenTreeItem(" + ATreeView.Name + ",'" + LItem.Name + "');\"><img border=0 src=" + ATreeView.ImgPlus + " width=16 height=16></a>";
        TreeViewTable += "<img border=0 src=" + ATreeView.ImgClosed + " width=16 height=16>"
        TreeViewTable += NodeText(LItem, ATreeView) + "<br>";
      }
    else {
      TreeViewTable += "<img border=0 src=" + ATreeView.ImgBlank + " width=16 height=16>";
      TreeViewTable += "<img border=0 src=" + ATreeView.ImgDocument + " width=16 height=16>";
      TreeViewTable += NodeText(LItem, ATreeView) + "<br>";
    LItem = LItem.Next;
  return (TreeViewTable);
function showTreeView(trview) {
  layerWrite(trview.Id, null, BuildTreeView(trview, trview.Items, 0));
function FindItem(ATV, AItemName)
  var LItem = ATV;
  var LL;
  while (LItem) {
    if (LItem.Name == AItemName) break;
    if (LItem.Childs) {
      LL = FindItem(LItem.Childs, AItemName);
      if (LL) {
        LItem = LL;
        break;
      }
    LItem = LItem.Next;
  return LItem;
function OpenTreeItem(tvname, itemname)
  var LItem = tvname.Items;
  LItem = FindItem(LItem, itemname);  
  if (LItem) LItem.State = true;
  showTreeView(tvname);
function CloseTreeItem(tvname, itemname)
  var LItem = tvname.Items;
  LItem = FindItem(LItem, itemname);  
  if (LItem) LItem.State = false;
  showTreeView(tvname);
function ScanTree(LItem, value)
  while (LItem) {
    if (LItem.Childs) {
      LItem.State = value;    
      ScanTree(LItem.Childs, value);
    LItem = LItem.Next;
function ExpandAll(tvname)
  ScanTree(tvname.Items, true);
  showTreeView(tvname);
function CloseAll(tvname)
  ScanTree(tvname.Items, false);
  showTreeView(tvname);
7Project1
IServerController
System
SysInit
SysUtils
KWindows
UTypes
SysConst
^Classes
"RTLConsts
3Messages
CVariants
$VarUtils
QTypInfo
sActiveX
Printers
Consts
WWinSpool
+Graphics
CommCtrl
FlatSB
StdActns
Clipbrd
YStrUtils
*ShellAPI
&Controls
5Themes
CUxTheme
SyncObjs
MultiMon
vMenus
Contnrs
ImgList
EActnList
dStdCtrls
Dialogs
ExtCtrls
3CommDlg
(ShlObj
RegStr
?WinInet
UrlMon
WinHelpViewer
RHelpIntfs
|IWServerControllerBase
IWGlobal
IWResourceStrings
IWApplication
IWCompButton
KSWSystem
IWControl
DIWForm
IWExtCtrls
SWStrings
IWTypes
IWFileReference
IWHTMLTag
IWFont
IWScriptEvents
IWControlInterface
IWLayoutMgr
IWServer
[IWAppForm
IWFormDsn
IWContainer
?HTTPApp
>WebConst
BrkrConst
=Masks
IWRegion
IWCompRectangle
IWGrids
IWLayoutMgrForm
JConsts
IWLayoutMgrHTML
CopyPrsr
IWTemplateProcessorHTML
IWLayoutMgrHTMLInterface
oIWCompText
8Registry
IniFiles
TForm1
Height
Caption
GfMWByJHsI
	clBtnFace
Font.Charset
DEFAULT_CHARSET
Font.Color
clWindowText
Font.Height
	Font.Name
Tahoma
Font.Style
OldCreateOrder
OnCreate
FormCreate
PixelsPerInch
TextHeight
Height
TabOrder
TPanel
Height
Caption
TabOrder
dBKpeuxCkIy
Height
TabOrder
OFCWnoSuvN
IRgUvuxoVh
Height
TabOrder
pwXpurqzZosriCf
hRikiPejwZYwYx
Height
TabOrder
IWYuWPvNrhHDdjtaKGfZfd
TButton	BrkpKojwO
Height
Caption
gfJGoD
TabOrder
TButton
WIDxHugVjvWx
Height
Caption
HNveQoA
TabOrder
FdJBcvZEJRLD
'S;R(@IP
 E4F="yO
l?@dY;
Wr%{(?,8T
m;I8 73
~Sfw5H}; 
N=Q?_`
ycOXoE
/[):9H
	HZ7eA
I-RyQ%
M{lW=:
o3g[{A
g06|\sLL
v)Q^x+
NvD;0 j
kI*(iB
T[`~?5
IUk#3I
OUO!5y7
I	<,T(H
T>b,19
+YLfMK
BO/Cl|LBH
j|!W"M
~>M+{*
KlwtJB
uUYca1
!>(56_1
5O4QLN
*6G<?(
mwJch7
6q&%rF
6	M^'M
cF=DT!
Hc!).n
2n`O'4>_Z
8]	<ZR
:ex JS
rF~TAz
.L/tIe
(2CRF-
=nS&rJY
+h!lt;
6-0/{HF_
5Z63I2\
SM|s)Zy
S@FSe-@
XVo:zE
 =c%b[ 
@&d=OJ
[1l#HKQV
QJ7&DBI
dbb? {
=<30.l
q5l[&HS_d
]'9[jM
<E%PT&
pTf9LT)
%YE@y#
)c#/z[
)/&\c(ve
4#(2P-:
kv6ZlR
k|1#%W
cU`K^A
3pYB{A
_+T!3`K
4kKC%/
GB:\f,
ARUIRF
ip)~3)
a\Nu`8
][n)uO
)/n>6w#
AnQRnBCy!Z
E(] :a
r@.7n&
`\tM"	
Y_K:Lj
vY&~Rc
CP_B&D
'Z~#w8l
nl9aQU
*[iN?}-A
>r=O9:;X
lh)Q8L4
nCuGyB	
1ugv`C
:XGm2[
;Wk>8 
VYbe@iP
h|BUp"
k%+u=y
ZNd*3S
qE&<8f
J)>mV_
Bizh2U
kV<Aq`g
A7ESqf
h}"B\4
Nh21?[
q9k%6V
pI$3\'gRUQ;
23s^nx_T
7,;JNd
q45+{	U}`
.t=UGH
bo3Qh`
K~[1+T#
.vm8]P
plw%0j#
O^y/l*V
]wY5L>
j'>l6O
{MIT4=
!l- xu
0wV'Jh
	)Ss"nH
%qP}fS
]BiqBI
Vi4ul|
UeyC7^
+%9	L{*g
+V[;1h
)>##c7
rh53=Z
LikZ$%
vO(B	r
)VX2Op'
8Z21f6|
,GF,@w
2!Fq6^
EUomvX
H5%nB_
N%7ryh
-11Ql6
o*DCO<
f1kI7B
~%=uX]
WiAtR<
M@CB|9
}"pq{"
e3	Q%/
7PJ %C
^z]FG!E
bL-D<cRJD
=<wG4W-/
UU.MEv
4*D=hFz
O2qJI%!
[GB]&V
 JZWMA
N>`\p4
s7|	U,
O"/&6K )
DU']Vu
#rOq(|
HooVW`
c"F!.X}
j6fS"|7
_"a0tWz
GXL0;*y
$"lR\V\:
s;C6m0S
b@12h/
1@	+"Y
{I"lR:oG
"aGYt%`"r
g4Q1X"
n>.B5EK00|
XR7	Cv
;v8,"E
'I tX:C
P$ATb7<=W!
	kRr!`E
uKT+<1`
;E2G_>
7+G47	
_JB VK
k-q$}Y
~()+Qj
tuo{0vD
_PCg0"t%
Q09Gsr
?@%Ey'
*Xogh$}
,v@Be,
Nmof&JG!
'(]t1-'c
$ywzg#
U7Bg>~]
EY)+Q2
K82g!-"
j&b[,cL
h_i:mh<^[
(2cPF8
L;[0Gng 	$\V
)DCF@L
p9D%<3
\=r Ea1S
[S4N8v
cWt;A!
9RC@bH
TF~~Aa
Lii,]L
4cgT8$L
4bOv<0
606UxUM?
AZ{WI@L
CA#q5;
=^NnM	
/SM}M1n@8
X9<<+2
>C{&smJ&&"`
V\\aS7
M$W9[p
@R]kJ8zs`
JJKh%$~<e
fJen_8
oxZEgW
>M^/rBm\
f%e+,M
eP{#7t
-7:\Yz
mW-8}:
@d#e3lU
L1$bVxb
dsUtaf
%Ly!0ql0N
t&(_BR
C(+cJm% a/
G*6UI&
;J8z`J
0mvY3<5.
`,9%)k
v>R*}x_5
Jc5Tg?
o`k_h~.
;W[e<La\
df3d52%
)bUpx3
o6^#i:Z
o0==}t
p$qN!J
x8 )k&
\'iw	L-
d|P^}BV5>
|[^EzX**!
^%el025L5O6g
2{@Gf0
X46E)s
i_3p@;
c@=EnP:zj
h ;:T;@l.S
(v3'xU`
+_dotv
IT)x|#
$uEYvw`z
:F8hy%rZ,n
wVW]I=O
4Py\w%_
g6V)7ZGB
~KcnvG
gARlP58S
{dx|i8
GF32-R
6)ku#"s
P;`D3Q/
G;.iOI
?,-$K8
qGR0f3}
\]j~W<
"Y~;Crh{
I9?@[YW
|W3w65
PIWOI4K
M~?cx)
$3rWtA.
rOYYD,
l,k<NB`9
t.9#Zd
rM/B*~
@~Kq+k
NRpckIE
R3lLl%
FdJBcvZEJRkRCrTTEkEqXRwPLTcZqzkRCrTTEkEq
f#qS<J
?;c=JA	
G0$"3x79@
q#Id@0Xl
dFp0zD
VWg ?}
F* :Gt
x-tDCfZz
IFGqZY
_ i;^65
AV"'#B
[%,WNW@S
[]kOO}
XSf@g+
3q"5^.
waASO1
Tig	D!gh
||rA%G
1SrpE	T
E!JG"y
,K1_4i
Wp.hz!
visY,Kp
!Fpqf@
S2g=R\YRy
WkM0?y
YO".V6/X
sn@	Fl&
*TRH.g
*YQ<th
J](:*w
>z*IIG3
v2maX7
[FD*/3Y
)x=H9=
P0B'*2Ic
[B;f~m
g':;+M+
yLTf[d
7]%5M*
E!rUJw.
Hi>t#i
Uc39frC
j4-[\[
9*[,;Z
/!yf._
N#AO9?)
zS~LN$
T UnY[
YLt[^?.&
<=0,@\HS
Q@-0b]L,
Lc}7g@
rCXU6{
!^/JjBP<
Q->v9=
aRJ`QGG
4XRDM$
XG<A;gv
2.TYh=
'8%:7~
AY=pczU
:iD(p?1
b19QLT
hH6)(A
p1-sA|
8vq+"o
D2-({8B
_uk'#2w
G59}4Q
bBkfs'
w0l.u-B
&&}8jJ
a,*F4x
|Ec!)M
OKovKA
uo-m ?
GA4[Py>
8}@eIV
-m]jH4
$}(b>)
zH&P_V\K6
-Y9/4Q
T4q+"{k
<tEEtnf@
7(]_%4^
mm*PtN
tUd}Sb
|V]i.,$
m>F`AW
DeJ+ua~_;
+661qT
GI7 lw
E$>Z$g
V?"Sz)
oN\UL`
uqlk`4
`s6zj]
tWv(}v"
Ca-HHf
I!3+bq
im?UlZ
On#~e*
3K}w1F
wrvPIC
9es3Nk
$^^s(;
poe$iE
6{G bZ
7-8=z0*
<I\FtY
w]5SE&%B
0+D0HwT
oVT#Ij=
K^K=y1!
|*f~?0
k`F/8s
F* E1/u
[sYH?T
c{g+:>
z]X4N"
$Zj!V5
cNB5GP
emvUO"
J1O'X)!
7-y-d1
_0&4r,T
j&1['hp
^ u.k,S$
.<i_w&
'\T_O]
"Rn?[\
rXqJ[~
@>	n\1
bXchYk
8I'Tr#
M"%'_*
p?_xh,
z;7""+<
sWQO<<vX
%oS9|z
0EWLZ=
7%"4+F
>&t!_t
e'.5_;
acR/ls
EkZNW{
[,K/V!3UI5
1MB\.^.
M6#A]&
Bh@CPmg
:=Dp?a[
x16Xlb
(8V7To
jD9FQF
dEN:[-
z@0h{*C;
!CS;*-M
Fq-MGdz
/'tlPv
sBW${65
%$P+PG9.
h{?#^a
=	SKXb
bB9Bn|b~+R
kOX(2L
NT7Y"?1E 
gUmrdHj
zX^vAAo4
.yqEzdc}
Fds2Y,
Uoo) ,}
.N*WHo
gh iK,e
Tnn($@e
w6$E`}?`
h^~Mdv
QqEfHE
Ii6YV:?
j3sUD,E;
cYNP,hF
}Cb@I/q9C6J
*gIZ$O
PE?$KY
25>8T^
#eFh6m|+
K%Jj($;
'uY6#R
:E7^b&T
hWLBX(
PJAF0J*^
V*b6ReCqoH
F>/?BZUB~
8*&*Q#!5-
-NUOjA
Per)-D,^
\:(k:w"
h[*1($sz
\V+#rG
qP cN+
GE#aJ\BC
"1hL6hur
v<}Pcu*
p_.(FOPvu,
n1apG$t
'r TtT
AGeXw"
7L*s[T
"aX@)R
96.P|H
zZYX',
r}*2Wp
+v)MyN
{)a<;oo+RDv	
=$A<-?
Kwlv*5Q
8hOhP,
M*MVij
Q,<Pvq
~8y\;W,