Gen.Variant.Zusy.190729_556b02e491

by malwarelabrobot on May 18th, 2016 in Malware Descriptions.

HEUR:Trojan.Win32.Generic (Kaspersky), Gen:Variant.Zusy.190729 (B) (Emsisoft), Gen:Variant.Zusy.190729 (AdAware), Trojan-Banker.Win32.Banker.FD, Trojan-Banker.Win32.Brasil.FD, Trojan.Win32.Delphi.FD, Trojan.Win32.Iconomon.FD, Trojan.Win32.Sasfis.FD, VirTool.Win32.DelfInject.FD, GenericInjector.YR, BankerGeneric.YR (Lavasoft MAS)
Behaviour: Banker, Trojan, VirTool


The description has been automatically generated by Lavasoft Malware Analysis System and it may contain incomplete or inaccurate information.

Requires JavaScript enabled!

Summary
Dynamic Analysis
Static Analysis
Network Activity
Map
Strings from Dumps
Removals

MD5: 556b02e49156dd56fdbb25b7370acd64
SHA1: f0d2e3ea2631951d05204a6334a64df1fbcaa152
SHA256: 41ed161c05fddaa625bb1e311f0e30d461206391942100680c20acc22798a0ba
SSDeep: 49152:2ecbtRyaDO/TsTnUkcNVuV9zwu3WJ7rmFXPw6Ud4yyFF:2LblzQ7qZPw7KyyF
Size: 7921664 bytes
File type: EXE
Platform: WIN32
Entropy: Not Packed
PEID: UPolyXv05_v6, BorlandDelphi30, BorlandDelphiv30, ACProtect141
Company: no certificate found
Created at: 2010-02-19 08:15:49
Analyzed on: WindowsXP SP3 32-bit


Summary:

Banker. Steals data relating to online banking systems, e-payment systems and credit card systems.

Payload

No specific payload has been found.

Process activity

The Trojan creates the following process(es):

%original file name%.exe:1168

The Trojan injects its code into the following process(es):

Aviation.exe:620
Explorer.EXE:1572

Mutexes

The following mutexes were created/opened:
No objects were found.

File activity

The process %original file name%.exe:1168 makes changes in the file system.
The Trojan creates and/or writes to the following file(s):

%WinDir%\Aviation.exe (59260 bytes)

Registry activity

The process Aviation.exe:620 makes changes in the system registry.
The Trojan creates and/or sets the following values in system registry:

[HKLM\SOFTWARE\Microsoft\Cryptography\RNG]
"Seed" = "E9 5A 8C 9E A0 42 19 18 07 AA 1C E3 05 5E D6 70"

[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Win]
"Shell" = "Explorer.exe %WinDir%\Aviation.exe"

The following service is disabled:

[HKLM\System\CurrentControlSet\Services\SharedAccess]
"Start" = "4"

To automatically run itself each time Windows is booted, the Trojan adds the following link to its file to the system registry autorun key:

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Aviation.exe internacional" = "%WinDir%\Aviation.exe"

The Trojan deletes the following value(s) in system registry:

[HKLM\SOFTWARE\Aviation]
"meba1"

"meba2"

The Trojan disables automatic startup of the application by deleting the following autorun value:

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"HBO.exe internacional"

The process %original file name%.exe:1168 makes changes in the system registry.
The Trojan creates and/or sets the following values in system registry:

[HKLM\SOFTWARE\Microsoft\Cryptography\RNG]
"Seed" = "7A 6C F6 F7 7D 01 44 C0 D3 41 56 4C F2 46 F5 E8"

[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Win]
"Shell" = "Explorer.exe %WinDir%\Aviation.exe"

[HKLM\SOFTWARE\Aviation]
"Ativ/Desa" = "0"

The following service is disabled:

[HKLM\System\CurrentControlSet\Services\SharedAccess]
"Start" = "4"

To automatically run itself each time Windows is booted, the Trojan adds the following link to its file to the system registry autorun key:

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Aviation.exe internacional" = "%WinDir%\Aviation.exe"

The Trojan deletes the following value(s) in system registry:
The Trojan disables automatic startup of the application by deleting the following autorun value:

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"HBO.exe internacional"

Dropped PE files

There are no dropped PE files.

HOSTS file anomalies

No changes have been detected.

Rootkit activity

No anomalies have been detected.

Propagation

VersionInfo

Company Name: Aviation
Product Name: Aviation
Product Version: 20
Legal Copyright: Aviation
Legal Trademarks: Aviation
Original Filename: Aviation
Internal Name: Aviation
File Version: 12.0.0.14
File Description: Aviation
Comments:
Language: English (United States)

PE Sections

Name Virtual Address Virtual Size Raw Size Entropy Section MD5
.text 4096 1280140 1280512 4.55485 3bf2d4c70ebcbdfd05a6b3dddb5a66cb
.itext 1286144 5492 5632 4.38106 2203fa0f3eadf2e20ee96e938ad984b3
.data 1294336 35952 36352 4.11172 8feb93f32d198317e305742d6223b543
.bss 1331200 27504 0 0 d41d8cd98f00b204e9800998ecf8427e
.idata 1359872 14148 14336 3.14061 8287c0895f2154d15f69a453a3f35bad
.tls 1376256 64 0 0 d41d8cd98f00b204e9800998ecf8427e
.rdata 1380352 24 512 0.117936 8f659a24cb03274b12aa5d91b6a90cd6
.reloc 1384448 91864 92160 0 b2a7a65cbd4803bbdb552620e57cd1bd
.rsrc 1478656 6491136 6491136 2.13174 7ccdb00b77c92f948daf1aab7da770ef

Dropped from:

Downloaded by:

Similar by SSDeep:

Similar by Lavasoft Polymorphic Checker:

URLs

URL IP
hxxp://gone2paradise.net/images/thumbs_.php
hxxp://faunarescue.org/albums/thumbs_.php
hxxp://faunarescue.org/albums/
hxxp://www.safe-tec.de/inc/htmln.php 85.13.149.202
hxxp://www.giteluberon.fr/resources/htmln.php 217.160.223.208
hxxp://www.vigneron-independant.com//download/images/htmln.php 178.33.0.119
hxxp://www.maskottchen24.de/ext/positivo.php 46.252.18.142
hxxp://www.jhcomp1609.com/eng/positivo.php 112.175.14.21
hxxp://volleyball-stuttgart.de/ecards/positivo.php
hxxp://www.faunarescue.org/albums/ 72.167.232.146
hxxp://www.volleyball-stuttgart.de/ecards/positivo.php 81.169.145.90
hxxp://www.faunarescue.org/albums/thumbs_.php 72.167.232.146
hxxp://www.gone2paradise.net/images/thumbs_.php 192.185.98.76


IDS verdicts (Suricata alerts: Emerging Threats ET ruleset)

Traffic

POST /resources/htmln.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 6
Host: VVV.giteluberon.fr
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=
HTTP/1.1 404 Not Found
Date: Tue, 17 May 2016 08:59:26 GMT
Server: Apache
Content-Length: 823
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"."htt
p://VVV.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.<html xml
ns="hXXp://VVV.w3.org/1999/xhtml" xml:lang="en" lang="en">. <h
ead>. <title>Error 404 - Not found</title>. &
lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
>. <meta http-equiv="cache-control" content="no-cache" />
;. </head>. <body style="font-family:arial;">. .<h
1 style="color:#0a328c;font-size:1.0em;">Error 404 - Not found</
h1>..<p style="font-size:0.8em;">Le fichier requis n'a pas &#
233;té trouvé..Il peut s'agir d'une erreur technique. Veuill
ez réessayer ultérieurement. Si vous ne pouvez pas accé
der au fichier après plusieurs tentatives, cela signifie qu'il a
été supprimé..</p>. </body>. </html&g
t;...


POST /eng/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.jhcomp1609.com
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 404 Object Not Found
Server: WebKnight/2.4
Date: Tue, 17 May 2016 08:59:34 GMT
Content-Type: text/html; charset=windows-1252
Content-Length: 836
Pragma: no-cache
Cache-control: no-cache
Expires: Tue, 17 May 2016 08:59:34 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"..   
"hXXp://VVV.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">..<ht
ml xmlns="hXXp://VVV.w3.org/1999/xhtml">..<head>...<META N
AME="ROBOTS" CONTENT="NOINDEX">...<title>Firewall Alert</t
itle>...<style type="text/css">...<!--....body {.....font-
size:small;....}....div {.....margin:0;.....padding:0;....}....#conten
ts {.....width:500px; height:300px;.....position:absolute; top:50%; le
ft:50%;.....margin:-150px 0 0 -250px;...../* margin-top.. height.. 50%
, margin-left.. width.. 50%.. .......... ....... */.....background:#FF
F url(hXXp://VVV.nesolution.com/messages/images/firewall.gif) no-repea
t;.....text-indent:-1000px;....}...//-->...</style>..</hea
d>..<body>..<div id="contents">....... ........ .. ....
.... .... ...... .................</div>..</body>..</ht
ml>....


POST /albums/ HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 175
Host: VVV.faunarescue.org
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=..............................................................?..........................................................................................................
HTTP/1.1 302 Found
Date: Tue, 17 May 2016 08:59:24 GMT
Server: Apache
Location: hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedContent/redirect_0.html
Content-Length: 330
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">.<html>&
lt;head>.<title>302 Found</title>.</head><body
>.<h1>Found</h1>.<p>The document has moved <a
href="hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedConten
t/redirect_0.html">here</a>.</p>.<hr>.<address
>Apache Server at faunarescue.org Port 80</address>.</body
></html>...


POST /ext/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.maskottchen24.de
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 301 Moved Permanently
Date: Tue, 17 May 2016 08:59:28 GMT
Server: Apache/2.4.10
X-Powered-By: PHP/5.2.17
Connection: close
P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=ZCoimWplOTc=X0kaUsMBarQ=AbX9CyshljQ=5Ns4ouO3I48=xZYNRkXktT8=; expires=Mon, 06-Jun-2016 08:59:28 GMT; path=/; domain=maskottchen24.de
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=ZCoimWplOTc=X0kaUsMBarQ=LIkYzL1kNK8=JF5wHvO6PzE=lF5gzfWzAd0=LNhM2cw8JRA=7WP7IxOEn7A=; expires=Mon, 06-Jun-2016 08:59:28 GMT; path=/; domain=maskottchen24.de
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=ZCoimWplOTc=X0kaUsMBarQ=LIkYzL1kNK8=JF5wHvO6PzE=WaOGZqMY5go=LnrtD7gLLN4=SprGAYOtap4=Srx22nDX9no=; expires=Mon, 06-Jun-2016 08:59:28 GMT; path=/; domain=maskottchen24.de
Location: hXXp://VVV.maskottchen24.de/
Content-Type: text/html; charset=utf-8
..<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "hXXp://VVV.w3.
org/TR/xhtml11/DTD/xhtml11.dtd">.<html xmlns="hXXp://VVV.w3.org/
1999/xhtml" xml:lang="de">..<head>...<title>Maskottchen
24</title>...<meta http-equiv="Content-Type" content="applica
tion/xhtml xml; charset=utf-8" />...<meta name="generator" conte
nt="PrestaShop" />...<meta name="robots" content="index,follow"
/>...<link rel="icon" type="image/vnd.microsoft.icon" href="http
://VVV.maskottchen24.de/img/favicon.ico" />...<link rel="shortcu
t icon" type="image/x-icon" href="hXXp://VVV.maskottchen24.de/img/favi
con.ico" />...<link href="/themes/theme032/css/global.css" rel="
stylesheet" type="text/css" media="all" />...<link href="hXXp://
VVV.maskottchen24.de/themes/theme032/css/style.css" rel="stylesheet" t
ype="text/css" media="all" />...<link href="hXXp://VVV.maskottch
en24.de/themes/theme032/css/domtab.css" rel="stylesheet" type="text/cs
s" media="all" />...<script type="text/javascript" src="hXXp://w
ww.maskottchen24.de/js/tools.js"></script>...<script type=
"text/javascript">....var baseDir = 'hXXp://VVV.maskottchen24.de/';
....var static_token = 'ed2eebe59895e4f5580c8c805898f944';....var toke
n = '08c8a478ad3ff4ccdee47105a16e9462';....var priceDisplayPrecision =
2;....var roundMode = 2;...</script>. . .<link
rel="stylesheet" type="text/css" href="hXXp://VVV.maskottchen24.de/th
emes/theme032/slider_header/engine1/style.css"/>.... . ..

<<< skipped >>>

POST /ecards/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.volleyball-stuttgart.de
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 301 Moved Permanently
Date: Tue, 17 May 2016 08:59:30 GMT
Server: Apache/2.2.31 (Unix)
Location: hXXp://VVV.allianz-volleyball.de/ecards/positivo.php
Content-Length: 260
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">.<html>&
lt;head>.<title>301 Moved Permanently</title>.</head
><body>.<h1>Moved Permanently</h1>.<p>The d
ocument has moved <a href="hXXp://VVV.allianz-volleyball.de/ecards/
positivo.php">here</a>.</p>.</body></html>.
..


POST /ecards/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.volleyball-stuttgart.de
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 301 Moved Permanently
Date: Tue, 17 May 2016 08:59:33 GMT
Server: Apache/2.2.31 (Unix)
Location: hXXp://VVV.allianz-volleyball.de/ecards/positivo.php
Conten


POST /albums/thumbs_.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 175
Host: VVV.faunarescue.org
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=..............................................................?..........................................................................................................
HTTP/1.1 302 Found
Date: Tue, 17 May 2016 08:59:23 GMT
Server: Apache
Location: hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedContent/redirect_0.html
Content-Length: 330
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">.<html>&
lt;head>.<title>302 Found</title>.</head><body
>.<h1>Found</h1>.<p>The document has moved <a
href="hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedConten
t/redirect_0.html">here</a>.</p>.<hr>.<address
>Apache Server at faunarescue.org Port 80</address>.</body
></html>...


POST /eng/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.jhcomp1609.com
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 404 Object Not Found
Server: WebKnight/2.4
Date: Tue, 17 May 2016 08:59:31 GMT
Content-Type: text/html; charset=windows-1252
Content-Length: 836
Pragma: no-cache
Cache-control: no-cache
Expires: Tue, 17 May 2016 08:59:31 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"..   
"hXXp://VVV.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">..<ht
ml xmlns="hXXp://VVV.w3.org/1999/xhtml">..<head>...<META N
AME="ROBOTS" CONTENT="NOINDEX">...<title>Firewall Alert</t
itle>...<style type="text/css">...<!--....body {.....font-
size:small;....}....div {.....margin:0;.....padding:0;....}....#conten
ts {.....width:500px; height:300px;.....position:absolute; top:50%; le
ft:50%;.....margin:-150px 0 0 -250px;...../* margin-top.. height.. 50%
, margin-left.. width.. 50%.. .......... ....... */.....background:#FF
F url(hXXp://VVV.nesolution.com/messages/images/firewall.gif) no-repea
t;.....text-indent:-1000px;....}...//-->...</style>..</hea
d>..<body>..<div id="contents">....... ........ .. ....
.... .... ...... .................</div>..</body>..</ht
ml>....


POST //download/images/htmln.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 6
Host: VVV.vigneron-independant.com
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=
HTTP/1.1 200 OK
Date: Tue, 17 May 2016 08:59:26 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7 squeeze23
Vary: Accept-Encoding
Content-Length: 0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
HTTP/1.1 200 OK..Date: Tue, 17 May 2016 08:59:26 GMT..Server: Apache/2
.2.16 (Debian)..X-Powered-By: PHP/5.3.3-7 squeeze23..Vary: Accept-Enco
ding..Content-Length: 0..Keep-Alive: timeout=15, max=100..Connection:
Keep-Alive..Content-Type: text/html..


POST /ext/positivo.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Host: VVV.maskottchen24.de
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)


HTTP/1.1 301 Moved Permanently
Date: Tue, 17 May 2016 08:59:31 GMT
Server: Apache/2.4.10
X-Powered-By: PHP/5.2.17
Connection: close
P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=+y1VTVR7Ijg=X0kaUsMBarQ=AbX9CyshljQ=s3UF9JAcqng=zVZbqpaRY4o=; expires=Mon, 06-Jun-2016 08:59:31 GMT; path=/; domain=maskottchen24.de
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=+y1VTVR7Ijg=X0kaUsMBarQ=LIkYzL1kNK8=JF5wHvO6PzE=lF5gzfWzAd0=9dOCnp6MjVw=CJumTwBgElU=; expires=Mon, 06-Jun-2016 08:59:31 GMT; path=/; domain=maskottchen24.de
Set-Cookie: 130086927f173a49292dc87be9d0d1d5=6aEcOkCfe18=d1O6F3lECOo=NSHMkvVZsqk=+y1VTVR7Ijg=X0kaUsMBarQ=LIkYzL1kNK8=JF5wHvO6PzE=WaOGZqMY5go=LnrtD7gLLN4=xELfkmhnzGc=iJGru20q698=suH9FIE1Kto=; expires=Mon, 06-Jun-2016 08:59:31 GMT; path=/; domain=maskottchen24.de
Location: hXXp://VVV.maskottchen24.de/
Content-Type: text/html; charset=utf-8
..<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "hXXp://VVV.w3.
org/TR/xhtml11/DTD/xhtml11.dtd">.<html xmlns="hXXp://VVV.w3.org/
1999/xhtml" xml:lang="de">..<head>...<title>Maskottchen
24</title>...<meta http-equiv="Content-Type" content="applica
tion/xhtml xml; charset=utf-8" />...<meta name="generator" conte
nt="PrestaShop" />...<meta name="robots" content="index,follow"
/>...<link rel="icon" type="image/vnd.microsoft.icon" href="http
://VVV.maskottchen24.de/img/favicon.ico" />...<link rel="shortcu
t icon" type="image/x-icon" href="hXXp://VVV.maskottchen24.de/img/favi
con.ico" />...<link href="/themes/theme032/css/global.css" rel="
stylesheet" type="text/css" media="all" />...<link href="hXXp://
VVV.maskottchen24.de/themes/theme032/css/style.css" rel="stylesheet" t
ype="text/css" media="all" />...<link href="hXXp://VVV.maskottch
en24.de/themes/theme032/css/domtab.css" rel="stylesheet" type="text/cs
s" media="all" />...<script type="text/javascript" src="hXXp://w
ww.maskottchen24.de/js/tools.js"></script>...<script type=
"text/javascript">....var baseDir = 'hXXp://VVV.maskottchen24.de/';
....var static_token = 'ed2eebe59895e4f5580c8c805898f944';....var toke
n = '08c8a478ad3ff4ccdee47105a16e9462';....var priceDisplayPrecision =
2;....var roundMode = 2;...</script>. . .<link
rel="stylesheet" type="text/css" href="hXXp://VVV.maskottchen24.de/th
emes/theme032/slider_header/engine1/style.css"/>.... . ..

<<< skipped >>>

POST /images/thumbs_.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 175
Host: VVV.gone2paradise.net
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=..............................................................?..........................................................................................................
HTTP/1.1 406 Not Acceptable
Server: nginx/1.10.0
Date: Tue, 17 May 2016 08:59:23 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 226
Connection: keep-alive
<head><title>Not Acceptable!</title></head><
;body><h1>Not Acceptable!</h1><p>An appropriate r
epresentation of the requested resource could not be found on this ser
ver. This error was generated by Mod_Security.</p></body>&
lt;/html>..


POST /inc/htmln.php HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 6
Host: VVV.safe-tec.de
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

texto=
HTTP/1.0 404 Not Found
Date: Tue, 17 May 2016 08:59:25 GMT
Server: Apache
X-Powered-By: W3 Total Cache/0.9.3
Set-Cookie: _icl_current_language=de; expires=Wed, 18-May-2016 08:59:25 GMT; path=/
X-Pingback: hXXp://safe-tec.de/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Vary: User-Agent,Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html>.<!--[if lt IE 7]>      <html class="no-
js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->.<!--[if IE 7]>
<html class="no-js lt-ie9 lt-ie8"> <![endif]-->.<
;!--[if IE 8]> <html class="no-js lt-ie9"> <![endi
f]-->.<!--[if gt IE 8]><!--> <html class="no-js">
<!--<![endif]-->. <head>...<meta charset="UTF-8"
>..<title>Safe-Tec</title>..<link rel="stylesheet" h
ref="hXXp://safe-tec.de/wp-content/plugins/sitepress-multilingual-cms/
res/css/language-selector.css?v=2.6.0" type="text/css" media="all" /&g
t;.....<meta name="viewport" content="width=device-width">..<
link rel="shortcut icon" href="hXXp://safe-tec.de/wp-content/themes/js
-safetec-wp/img/favicon.ico">..<link rel="stylesheet" href="http
://safe-tec.de/wp-content/themes/js-safetec-wp/style.css">....<s
cript src="hXXp://safe-tec.de/wp-content/themes/js-safetec-wp/js/moder
nizr-2.6.1.min.js"></script>..<script type="text/javascrip
t" src="hXXp://safe-tec.de/wp-content/themes/js-safetec-wp/js/jquery-1
.8.2.min.js"></script>..<script type='text/javascript' src
='hXXp://safe-tec.de/wp-content/themes/js-safetec-wp/js/init.js'>&l
t;/script>..<script>..if((navigator.userAgent.match(/iPhone/i
)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.ma
tch(/Android/i)))..{..viewport = document.querySelector("meta[name=vie
wport]");..viewport.setAttribute('content', 'width=1300');..docume

<<< skipped >>>

The Trojan connects to the servers at the folowing location(s):

msmsgs.exe_1016:

.text
`.data
.rsrc
msvcrt.dll
ADVAPI32.dll
KERNEL32.dll
NTDLL.DLL
GDI32.dll
USER32.dll
WSOCK32.dll
ws2_32.DLL
ole32.dll
OLEAUT32.dll
COMCTL32.dll
comdlg32.dll
SHELL32.dll
VERSION.dll
WINMM.dll
SHLWAPI.dll
gdiplus.dll
MSIMG32.dll
NETAPI32.dll
WININET.dll
cryptdll.dll
iphlpapi.dll
4.7.3001
SHLWAPI.DLL
msmsgs.exe
1.2.6
MSNFTP
CONNECT %s:%d HTTP/1.0
User-Agent: MSMSGS
@MSGR
WinMsgr
crypt32.dll
CryptDestroyKey
CryptImportKey
CryptExportKey
CryptGetUserKey
CryptGenKey
advapi32.dll
1.2.1
0123456789ABCDEFlibpng error: %s
libpng error: %s, offset=%d
libpng error no. %s: %s
libpng warning: %s
libpng warning no. %s: %s
Unknown zTXt compression type %d
Incomplete compressed datastream in %s chunk
Data error in compressed datastream in %s chunk
Buffer error in compressed datastream in %s chunk
'7gamma = (%d/100000)
gx=%f, gy=%f, bx=%f, by=%f
wx=%f, wy=%f, rx=%f, ry=%f
incorrect gamma=(%d/100000)
NULL row buffer for row %ld, pass %d
inflate 1.2.1 Copyright 1995-2003 Mark Adler
iTXt chunk not supported.
Microsoft.Messenger.ToastSemaphore
<?xml version="1.0"?><provision key="messenger" name="messenger"><user uri="sip:%s@%s" account="%s" name="%s" password="%s" realm="voice.net" /><sipsrv addr="%s" protocol="%s" %s role="proxy"><session party="first" type="pc2ph" /></sipsrv></provision>
xx
l=%d&t=%s&h=%s
%s?clientid=1&t=%s
MSGSHotmailSP
%s%lu
0xx
%d.%d
%hs&CLCID=0xx&Country=%hs
%s%s%s:%d
%s%s%s
%s:%d
wininet.dll
hXXp://g.msn.com
gateway.messenger.hotmail.com
hXXps://nexus.passport.com/rdr/pprdr.asp
messenger.hotmail.com
HTTPGateway
%lu %s
%lu %s %s %s
%lu %s %s
%lu %c
MSMSGS
<PHONE pri="1"><LOC>%s</LOC><NUM>%s</NUM></PHONE><TEXT xml:space="preserve" enc="utf-8">%s</TEXT>
<TEXT xml:space="preserve" enc="utf-8">%s</TEXT>
%u %s %d
%s %s
%lu %s 0xx %s %s %s %s
%lu %lu 0xx %s %s %s %s
%lu %s %d
%s %lu
%lu %c
%lu %s %s %lu.%lu %s %s %s %s %s
%lu %s
%lu %s I %s
%lu %s S %s
%s %s %lu
%s %lu %s %lu
%s %d
%s %s
%s %S
HTTPProxy
HTTPProxyUsername
HTTPProxyPassword
HTTPProxyRealm
HTTPGatewayDll
Action=%s&SessionID=%s
SessionID=%s
Action=%s&Server=%s&IP=%s
hXXp://
<HTML><HEAD><META HTTP-EQUIV="REFRESH" CONTENT="0; URL=
hXXps://
Authorization: Passport1.4 OrgVerb=GET,OrgURL=hXXp://messenger.msn.com,sign-in=%s,pwd=%s,%s
Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%:%/%/messenger%.msn%.com,sign-in=%s,pwd=%s,%s
PassportURLs:
DALogin=
PassportConfig:
prefs.js
GetUrlCacheEntryInfoExA
SetUrlCacheEntryInfoA
AutoConfigURL
RemoteAccess\Profile\%s
Software\Microsoft\Windows\CurrentVersion\Internet Settings\LAN
Software\Microsoft\Windows\CurrentVersion\Internet Settings
Auto Config Url
HTTP_ProxyPort
HTTP_Proxy
AutoConfigJSURL
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\RAS\%s\%s
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\LAN\%s
HttpQueryInfoA
InternetOpenUrlA
Software\Netscape\Netscape %d
http_port"
http"
autoconfig_url"
user_pref("network.proxy.
%s\%s
\mozregistry.dat
\nsreg.dat
Software\Netscape\Netscape Navigator\Users\%s
http\shell\open\command
LastDetectUrl
0x%x;
DetectAutoProxyUrl
NSPlayer/%u.%u.%u.%u
%s://%s
kernel32.dll
<<<<____
...OOOOOOOqqqqq
...OOOOOOOqqqqqq
%%ÿFFFFFiiiiii
%%ÿFFFF
%%ÿFFFFFiiiii
%%ÿFFF
%%ÿFF
!"#$%&'()* ,-./0123456789:;
msmsgs.pdb
FTPj
|WVSSSSSSSh
SSSSSSh
t.Ht'Ht Ht
PSSSSh
.FG;}
~SSh'
SSShb
F<t(SSh
9^8Wu%S
HtSHt.Ht
tCHt.Ht H
jTjSSh
SSSSh
SSSShD
&SShB
SPSSSSh
FTSShG
FTSShP
t.HuCj
WSSSSh)
t.HHt -P
t%SWhP
{SShD
t SSh
SShOUT
hMSG
MSG t
WPhURL
hURL
>%u#3
URL tV
SSSh$
SSSh,
PSSSSSSh
_acmdln
RegCloseKey
RegOpenKeyExW
GetWindowsDirectoryW
GetProcessHeap
GetKeyState
ShellExecuteW
ShellExecuteExW
GdiplusShutdown
NetGetJoinInformation
RegFlushKey
RegCreateKeyExW
RegQueryInfoKeyW
RegEnumKeyW
RegDeleteKeyW
ReportEventW
RegOpenKeyExA
RegCreateKeyExA
RegDeleteKeyA
RegEnumKeyA
GetWindowsDirectoryA
GetViewportExtEx
SetViewportOrgEx
EnumChildWindows
UnhookWindowsHookEx
SetWindowsHookExW
MsgWaitForMultipleObjects
GetAsyncKeyState
RPCRT4.dll
InternetOpenUrlW
HttpQueryInfoW
InternetCrackUrlW
InternetCanonicalizeUrlW
HttpSendRequestW
GetUrlCacheEntryInfoW
HttpOpenRequestW
POST hXXp://%s%s?%s
HTTP/1.1
Host: %s
Content-Length: %d
Proxy-Authorization: Basic %s
version="1.0.0.0"
name="Microsoft.MessengerService.Messenger"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
$$ *&-5@;`
3333333333333333
333333333333333333
3331""#3
333333333333
1111111
Vh~MevDan=^f6Z].UT'PJ!K@
PZ%Ud#^m(fv/m}5r
333333333
80.11.2w
--.Ms
,--.ss
!!000QQQSSHHCC3884'''))
QQSTTCmDI44'599::***
TTCmDD445559::**   ,]]^^\_
QQTTCCmD
45559:::    ]]]^\__
\\\_MMMM.aaaaO
\\\\^LMLL.....aN
$$555'')
--.aM`
,--..Ms
.fgF)V)Ul:
[email protected]
Ih%uo
mdMSg
9.SgNm
xwgcd%F
99999999
2345679999
9999999
9999999999
99999999999
444444444444441
$33334    
stdole2.tlbWWW
#IMsgrObjectWd
IMsgrServiced
%FindUser
8MURLTYPE
{MURLTYPE_CHANGE_PASSWORD
CMURLTYPE_CHANGE_INFO
JMURLTYPE_COMPOSE_EMAILWW
&MURLTYPE_GO_TO_EMAIL_INBOXWW
MURLTYPE_GO_TO_EMAIL_FOLDERS
MURLTYPE_MOBILE_SIGNUPWW
MURLTYPE_CHANGE_MOBILE_INFOW
MURLTYPE_CHANGE_PROFILEW
MURLTYPE_CHATWWW
MURLTYPE_POST_URL_REQUESTWWW
MURLTYPE_ADDRESS_BOOKWWW
zMURLTYPE_ADVANCED_SEARCH
MURLTYPE_SEARCH_BY_INTERESTW
UMURLTYPE_MAX_NUM_URLd
RequestURLPostWW
MPFLFIELD_NICKNAMEWW
8GhIMsgrUserWWW
wMMSGTYPE
yMMSGTYPE_NO_RESULTWW
MMSGTYPE_ERRORS_ONLY
0 VMMSGTYPE_ALL_RESULTS
bstrMsgHeaderWWW
u*bstrMsgTextW
bstrPassword
IMsgrUsersWW
MMSGPRIVACYW
0#_MMSGPRIVACY_BLOCK_LIST_EXCLUDEDW
1MMSGPRIVACY_ALLOW_LIST_ONLYW
%0sBMPROMPT_YES_IF_NOT_ALLOWED_OR_BLOCKEDWWWl
bstrAppURLWW
MLOPT_HTTPS_SERVERWW4
MLOPT_SOCKS4_PORTWWW4
MLOPT_SOCKS5_PORTWWW4
0EfMLOPT_HTTPS_PORT4
MLOPT_SOCKS5_PASSWORDWWW4
MLOPT_HTTP_SERVERWWW4
2MLOPT_HTTP_PORTW
bIMsgrIMSessionsW
8^IIMsgrIMSessionWW
pIMsgrIMSessionW
IMsgrServicesWWW(
c.LaunchLogonUIWWW
IMessengerIMWindowsW
pcWindowsWWWT
IMWindowsWWW
ppIMWindowsWT
QCachedPasswordWW
MSGRConstantsWWW<
MSGR_E_CONNECTWW<
MSGR_E_INVALID_SERVER_NAMEWW<
MSGR_E_INVALID_PASSWORDW<
MSGR_E_ALREADY_LOGGED_ON<
5MSGR_E_SERVER_VERSIONWWW<
MSGR_E_LOGON_TIMEOUT<
XMSGR_E_LIST_FULL<
vMSGR_E_AI_REJECT<
0%DMSGR_E_AI_REJECT_NOT_INSTWWW<
MSGR_E_USER_NOT_FOUNDWWW<
MSGR_E_ALREADY_IN_LISTWW<
MSGR_E_DISCONNECTEDW<
0K$MSGR_E_UNEXPECTEDWWW<
eMSGR_E_SERVER_TOO_BUSYWW<
MSGR_E_INVALID_AUTH_PACKAGES<
MSGR_E_NEWER_CLIENT_AVAILABLEWWW<
MSGR_E_AI_TIMEOUTWWW<
MSGR_E_CANCELWWW<
MSGR_E_TOO_MANY_MATCHESW<
#MSGR_E_SERVER_UNAVAILABLEWWW<
MSGR_E_LOGON_UI_ACTIVEWW<
MSGR_E_OPTION_UI_ACTIVEW<
MSGR_E_CONTACT_UI_ACTIVE<
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON<
MSGR_E_LOGGED_ON<
MSGR_E_CONNECT_PROXY<
0xsMSGR_E_PROXY_AUTHWWW<
QMSGR_E_PROXY_AUTH_TYPEWW<
(MSGR_E_INVALID_PROXY_NAMEWWW<
MSGR_E_NOT_LOGGED_ON<
mMSGR_E_NOT_PRIMARY_SERVICEWW<
MSGR_E_TOO_MANY_SESSIONS<
MSGR_E_TOO_MANY_MESSAGES<
MSGR_E_REMOTE_LOGINW<
MSGR_E_INVALID_FRIENDLY_NAME<
MSGR_E_SESSION_FULLW<
MSGR_E_NOT_ALLOWING_NEW_USERSWWW<
sMSGR_E_INVALID_DOMAINWWW<
MSGR_E_TCP_ERROR<
/MSGR_E_SESSION_TIMEOUTWW<
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW<
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW<
MSGR_E_REVERSE_LIST_FULL<
MSGR_E_SERVER_ERRORW<
wMSGR_E_SYSTEM_CONFIG<
MSGR_E_NO_DIRECTORYW<
 MSGR_E_RETRY_SET<
CMSGR_E_CHILD_WITHOUT_CONSENT<
MSGR_E_USER_CANCELLEDWWW<
MSGR_E_CANCEL_BEFORE_CONNECT<
mMSGR_E_VOICE_IM_TIMEOUTW<
MSGR_E_NOT_ACCEPTING_PAGESWW<
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW<
MSGR_E_AUDIO_UI_ACTIVEWW<
MSGR_E_NO_HARDWAREWW<
>MSGR_E_PAGING_UNAVAILABLEWWW<
MSGR_E_PHONE_INVALID_NUMBERW<
MSGR_E_PHONE_NO_FUNDSWWW<
MSGR_E_VOICE_NO_ANSWERWW<
MSGR_E_VOICE_WAVEIN_DEVICEWW<
MSGR_E_FT_TIMEOUTWWW<
MSGR_E_MESSAGE_TOO_LONGW<
MSGR_E_VOICE_FIREWALLWWW<
MSGR_E_VOICE_NETCONN<
MSGR_E_PHONE_CIRCUITS_BUSYWW<
}MSGR_E_SERVER_PROTOCOLWW<
MSGR_E_UNAVAILABLE_VIA_HTTPW<
MSGR_E_PHONE_INVALID_PIN<
MSGR_E_PHONE_PINPROCEED_TIMEOUTW<
\MSGR_E_SERVER_SHUTDOWNWW<
eMSGR_E_CLIENT_DISALLOWED<
MSGR_E_PHONE_CALL_NOT_COMPLETEWW<
4MSGR_E_GROUPS_NOT_ENABLEDWWW<
08XMSGR_E_GROUP_ALREADY_EXISTSW<
MSGR_E_TOO_MANY_GROUPSWW<
MSGR_E_GROUP_DOES_NOT_EXISTW<
MSGR_E_USER_NOT_GROUP_MEMBER<
05=MSGR_E_GROUP_NAME_TOO_LONGWW<
0NLMSGR_E_GROUP_NOT_EMPTYWW<
VMSGR_E_BAD_GROUP_NAMEWWW<
@MSGR_E_PHONESERVICE_UNAVAILABLEW<
0{lMSGR_E_CANNOT_RENAME<
MSGR_E_CANNOT_DELETE<
GMSGR_E_INVALID_SERVICEWW<
aMSGR_E_POLICY_RESTRICTED<
MSGR_E_BUSYW<
MSGR_E_DNS_SRV_FAILW<
MSGR_E_DNS_A_RES_FAILWWW<
MSGR_E_NO_SERVER_ADDRESS_SPECIFIEDWW<
MSGR_E_TLS_FAILW<
MSGR_E_INCOMPATIBLE_ENCRYPTIONWW<
nMSGR_E_SSL_TUNNEL_FAILED<
MSGR_E_SIP_TIMEOUTWW<
MSGR_E_INCOMPATIBLE_IMWW<
MSGR_E_MIM_ADD_TO_CONTACTS_FAILW<
MSGR_E_INVALID_ADDRESS_FORMATWWW<
MSGR_E_INVALID_CERTIFICATEWW<
dMSGR_E_AUTH_TIME_SKEWWWW<
MSGR_E_CHANGED_CREDENTIALSWW<
 MSGR_E_SIP_LOGIN_FORBIDDENWW<
MSGR_E_SIP_HIGH_SECURITY_SET_TLS<
MSGR_E_CALLEE_INSUFFICIENT_SECURITY_LEVELWWW<
)0K3MSGR_E_CALLER_PEER2PEER_CALLS_NOT_ALLOWEDWWW<
MSGR_E_SIP_UDP_UNSUPPORTEDWW<
MSGR_E_SIP_SEARCH_FORBIDDENW<
MSGR_E_SESSION_RESTRICTEDWWW<
MSGR_E_MANAGED_USER_INVALID_CVRW<
MSGR_E_RESTRICTED_USERWW<
MSGR_E_PROXY_AUTH_REQUIREDWW<
MSGR_E_PROXY_REALM_MISMATCHW<
0E0MSGR_E_PROXY_PASSWORD_INCORRECTW<
1MSGR_E_RESTRICTED_USER_LOGON_RESTRICEDWW<
MSGR_E_IE_OFFLINEWWW<
MSGR_E_IE_CANT_CONNECTWW<
MSGR_E_ACCOUNT_ERROR_REDIRECTWWW<
MSGR_S_ALREADY_IN_THE_MODEWW<
MSGR_S_TRANSFER_SEND_BEGUNWW<
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW<
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW<
VMSGR_S_TRANSFER_RECEIVE_FINISHED<
MSGR_S_GROUP_ALREADY_EXISTSW<
MSGR_E_FAILW<
MSGR_S_OKWWW
0~9MUSERPROP_SUPPORTS_CHUNKINGW
MLOPT_MAX_PORT_NUMBERWWW
xMPROXYTYPE_HTTPS
0'#MPROXYTYPE_HTTPW
03dMCONNECTIONTYPE_HTTP_PROXYWW\
MFT_SAVE_PASSWORDWWW
MFT_DONT_SAVE_PASSWORDWW
IMsgrObject2
DMsgrObjectEventsWWW|
bstrDownloadUrlW
2,bstrFallbackUrlW
f}OnRequestURLResultWW
bstrURLW|
OnUserJoinWW
2pIMsgrUserWW|
OnRequestURLPostResultWW
bstrURLPostW|
IMsgrUser2WW
IMsgrSPW
IMsgrSP2p
IMsgrWebScriptManagerWWW
PassportClientWW
MsgrHost8
8LBIMsgrPassportClientW8
JbstrSwitchURLWWW
_bstrStayURLW
8(KIMsgrHostWWW
8|}MsgrObjectWWd
Messenger Web Automation managerWW
Pasport is about to switch usersWW(
return the interface for Messenger host.WW
Passport Client InterfaceWV
Launch a new web browser and Passport authentication for the following URL and site ID
IMsgrSessionManagerW
IMsgrSessiond
__MIDL___MIDL_itf_msgrpriv_0000_0001,
ApplicationURLWW
pbstrURLd
__MIDL___MIDL_itf_msgrpriv_0000_0002
__MIDL___MIDL_itf_msgrpriv_0000_0003
__MIDL___MIDL_itf_msgrpriv_0000_0004
MSGR_E_API_NOTINITIALIZEDWWW
IMSGR_E_API_LOCKEDWWW
@MSGR_E_API_UNLOCK_FAILED
0&RMSGR_E_API_ALREADY_UNLOCKEDW
MSGR_E_API_PENDING_UNLOCKWWW
[MSGR_E_API_DISABLEDW
__MIDL___MIDL_itf_msgrpriv_0000_0005L
_IMsgrLockWWW
DMsgrSessionManagerEventsWWW
DMsgrSessionEventsWW@
MsgrSessionManagerWW
MsgrSessionManagerNative4
<MsgrSessionW
Create a new Session object.WW5
Remove an app from the list.WW#
Get the collection of applications.WWW
Retrieve session ID.WW'
Retrieve the app-specific context data.WWW
Retrieve the application URL.W
Retrieve the session flags.WWW
Retrieve the other user.WW(
Set the local IP address of the session.WW-
Send app-specific context data.WWW
Messenger Lock and Key InterfaceWW
Returns the lock and key statusWWW
Request lock and key challenge.WWW
Send lock and key response.WWW
A new session invitation has been received.WWW&
Challenge from server received.WWW(
Result from server lock and key service.WW
Enable/disable lock and key.WW
Messenger is shutting down.WWW&
The invitee has accepted the invitation.WW(
The invitee has declined the invitation.WW
The session has been cancelled.WWW
The session is approved for launch.WWW2
The last operation failed when sending.WWW
"8SN__MIDL___MIDL_itf_msgrua_0000_0007WW
"8RN__MIDL___MIDL_itf_msgrua_0000_0006WW
"8NN__MIDL___MIDL_itf_msgrua_0000_0002WWX
^.MyStatus
"8TN__MIDL___MIDL_itf_msgrua_0000_0008WW
"8PN__MIDL___MIDL_itf_msgrua_0000_0004WW
.ppdispServicesWWL
"8qN__MIDL___MIDL_itf_msgrua_0000_0010WW
"8ON__MIDL___MIDL_itf_msgrua_0000_0003WW@
"8QN__MIDL___MIDL_itf_msgrua_0000_0005WW
"8UN__MIDL___MIDL_itf_msgrua_0000_0009WW
MSGRConstantsWWW
"8MN__MIDL___MIDL_itf_msgrua_0000_0001WW
MSGR_E_CONNECTWW
MSGR_E_INVALID_SERVER_NAMEWW
MSGR_E_INVALID_PASSWORDW
MSGR_E_ALREADY_LOGGED_ON
5MSGR_E_SERVER_VERSIONWWW
MSGR_E_LOGON_TIMEOUT
XMSGR_E_LIST_FULL
vMSGR_E_AI_REJECT
0%DMSGR_E_AI_REJECT_NOT_INSTWWW
MSGR_E_USER_NOT_FOUNDWWW
MSGR_E_ALREADY_IN_LISTWW
MSGR_E_DISCONNECTEDW
0K$MSGR_E_UNEXPECTEDWWW
eMSGR_E_SERVER_TOO_BUSYWW
MSGR_E_INVALID_AUTH_PACKAGES
MSGR_E_NEWER_CLIENT_AVAILABLEWWW
MSGR_E_AI_TIMEOUTWWW
MSGR_E_CANCELWWW
MSGR_E_TOO_MANY_MATCHESW
#MSGR_E_SERVER_UNAVAILABLEWWW
MSGR_E_LOGON_UI_ACTIVEWW
MSGR_E_OPTION_UI_ACTIVEW
MSGR_E_CONTACT_UI_ACTIVE
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON
MSGR_E_LOGGED_ON
MSGR_E_CONNECT_PROXY
0xsMSGR_E_PROXY_AUTHWWW
QMSGR_E_PROXY_AUTH_TYPEWW
(MSGR_E_INVALID_PROXY_NAMEWWW
MSGR_E_NOT_LOGGED_ON
mMSGR_E_NOT_PRIMARY_SERVICEWW
MSGR_E_TOO_MANY_SESSIONS
MSGR_E_TOO_MANY_MESSAGES
MSGR_E_REMOTE_LOGINW
MSGR_E_INVALID_FRIENDLY_NAME
MSGR_E_SESSION_FULLW
MSGR_E_NOT_ALLOWING_NEW_USERSWWW
sMSGR_E_INVALID_DOMAINWWW
MSGR_E_TCP_ERROR
/MSGR_E_SESSION_TIMEOUTWW
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW
MSGR_E_REVERSE_LIST_FULL
MSGR_E_SERVER_ERRORW
wMSGR_E_SYSTEM_CONFIG
MSGR_E_NO_DIRECTORYW
 MSGR_E_RETRY_SET
CMSGR_E_CHILD_WITHOUT_CONSENT
MSGR_E_USER_CANCELLEDWWW
MSGR_E_CANCEL_BEFORE_CONNECT
mMSGR_E_VOICE_IM_TIMEOUTW
MSGR_E_NOT_ACCEPTING_PAGESWW
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW
MSGR_E_AUDIO_UI_ACTIVEWW
MSGR_E_NO_HARDWAREWW
>MSGR_E_PAGING_UNAVAILABLEWWW
MSGR_E_PHONE_INVALID_NUMBERW
MSGR_E_PHONE_NO_FUNDSWWW
MSGR_E_VOICE_NO_ANSWERWW
MSGR_E_VOICE_WAVEIN_DEVICEWW
MSGR_E_FT_TIMEOUTWWW
MSGR_E_MESSAGE_TOO_LONGW
MSGR_E_VOICE_FIREWALLWWW
MSGR_E_VOICE_NETCONN
MSGR_E_PHONE_CIRCUITS_BUSYWW
}MSGR_E_SERVER_PROTOCOLWW
MSGR_E_UNAVAILABLE_VIA_HTTPW
MSGR_E_PHONE_INVALID_PIN
MSGR_E_PHONE_PINPROCEED_TIMEOUTW
\MSGR_E_SERVER_SHUTDOWNWW
eMSGR_E_CLIENT_DISALLOWED
MSGR_E_PHONE_CALL_NOT_COMPLETEWW
4MSGR_E_GROUPS_NOT_ENABLEDWWW
08XMSGR_E_GROUP_ALREADY_EXISTSW
MSGR_E_TOO_MANY_GROUPSWW
MSGR_E_GROUP_DOES_NOT_EXISTW
MSGR_E_USER_NOT_GROUP_MEMBER
05=MSGR_E_GROUP_NAME_TOO_LONGWW
0NLMSGR_E_GROUP_NOT_EMPTYWW
VMSGR_E_BAD_GROUP_NAMEWWW
@MSGR_E_PHONESERVICE_UNAVAILABLEW
0{lMSGR_E_CANNOT_RENAME
MSGR_E_CANNOT_DELETE
GMSGR_E_INVALID_SERVICEWW
aMSGR_E_POLICY_RESTRICTED
MSGR_S_ALREADY_IN_THE_MODEWW
MSGR_S_TRANSFER_SEND_BEGUNWW
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW
VMSGR_S_TRANSFER_RECEIVE_FINISHED
MSGR_S_GROUP_ALREADY_EXISTSW
MSGR_E_FAILW
Returns main window IMessengerWindow object.WW
Initiates view contact profile.WWW*
Initiates send file invite.WWW'
Initiates a sign out from all services.WWWJ
Initiates signin dialog and populates signin name and password edit boxes.
Initiates IM Window.WW
Initiates Phone Window.WWW
Initiates pager instant message Window.WWY
Initiates a signin without UI if connected to the network and contact saved the password.W
Returns signin name.WW
Returns my primary service name.WW
Returns one of my phone numbers.WW
Local User property.WW
Create group in the service.WW
Messenger property.WWW
An IM Window has beed destroyed.WW*
Messenger is shutting down.WWW
Signin attempt complete.WW
Result from list remove request.WW,
Result from my friendly name change request.WW
Result from one of my phone numbers change request.WWW0
Result from one of my attributes change request.WW1
Result from contact block state change notification.WW<
Result from contact pager configuration change notification.WW=
Unread email count has changed.WWW
Returns the Handle of the Application window.WR
The vertical position (pixels) of the Application window relative to the screen.WW<
The horizontal dimension (pixels) of the Application window.WW:
Show the window.WW
Window property.WW
Returns signin Name of the contact.WWW#
Return service name of the contact.WWW
Return contact's service ID.WW,
Returns number of contacts.WWW$
Returns a specific contact by index.WW&
Service ID.WWW
Service status.WWW
Signin name.WW
Primary Service Object.WWW
Number of services.WWW&
Enumerates the services.WW
Returns the group's collection of users.WW
Add a contact to the group.WWW
Remove a contact from the group.WW
Remove a group from the collection.WWW
Enumerates the contacts.WW'
Add a user to the conversation.WWW
Software\Microsoft\MessengerService\ServiceProviders\{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
Software\Microsoft\MessengerService\ServiceProviders\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
SOCKS4Port
HTTPSServer
HTTPSPort
SOCKS5Port
SOCKS5Password
HTTPPort
Content-Type: text/x-msmsgsinvite; charset=UTF-8
application/x-msmsgsspmessage
Application-URL:
Port:
PortX:
PortX-Internal:
MSGSBlObj
.NET Messenger Service
\/:*"<>|
{5D3E02AB-6190-11d3-BBBB-00C04F795683}
<service name="%s">
<contact>%s</contact>
Software\Policies\Microsoft\Windows NT\Terminal Services
Password
Software\Policies\Microsoft\Messenger\Client\{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
Software\Policies\Microsoft\Messenger\Client\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
Software\Policies\Microsoft\Messenger\Client\{9B017612-C9F1-11D2-8D9F-0000F875C541}
Software\Policies\Microsoft\Messenger\Client\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}\_Default
Transport
SavePassword
AppEvents\Schemes\Apps\MSMSGS
MSMSGSC Event
Global\MSMSGS.EXE Event
MSMSGS-
MSGSLANG.DLL
XPOB2RES.DLL
AdvApi32.Dll
MessengerURL
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
AppEvents\EventLabels\MSMsgs_NewMessage
.Default\AppEvents\EventLabels\MSMsgs_NewMessage
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Default
AppEvents\EventLabels\MSMsgs_NewMail
.Default\AppEvents\EventLabels\MSMsgs_NewMail
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Default
AppEvents\EventLabels\MSMsgs_NewAlert
.Default\AppEvents\EventLabels\MSMsgs_NewAlert
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Default
AppEvents\EventLabels\MSMsgs_ContactOnline
.Default\AppEvents\EventLabels\MSMsgs_ContactOnline
.Default\AppEvents\Schemes\Apps\MSMsgs
OLE32.DLL
{02D3C01F-BF30-4825-A83A-DE7AF41648AA}
{1DF57D09-637A-4ca5-91B9-2C3EDAAF62FE}
{F1B1920C-6A3C-4ce7-B18C-AFAB305FD03D}
sqmdatad.sqm
sqmdata*.sqm
hXXp://sqm.microsoft.com/sqm/WM/sqmserver.dll
\Windows Messenger
%s.%lu
custsat.dll
msgslang.dll
PassportBalloon
TryWindowsMsgrShutdown
logowin.gif
SOFTWARE\Clients\Mail\%s\shell\open\command
Software\Microsoft\Windows\CurrentVersion\Run
SharePassportCredentials
text/x-msmsgscontrol
text/x-msmsgssystemmessage; charset=UTF-8
text/x-msmsgssystemmessage
application/x-msmsgssystemmessage
text/x-msmsgsprofile; charset=UTF-8
text/x-msmsgsprofile
MSMSGS_ContactOnline
MSMSGS_NewAlert
LCOMCTL32.DLL
NOTIFICATION/MSG/BODY
NOTIFICATION/MSG/ACTION
NOTIFICATION/MSG/SUBSCR
siteurl
2kmsgr5.chm
xpmsgr.chm
{56b994a7-380f-410b-9985-c809d78c1bdc}
text/x-msmsgsemailnotification; charset=UTF-8
text/x-msmsgsemailnotification
application/x-msmsgsemailnotification
text/x-msmsgsinitialemailnotification; charset=UTF-8
text/x-msmsgsinitialemailnotification
to_pid=%s¬ification_id=%s&message_id=%s&agent=messenger
NOTIFICATION/MSG
%s\%s(%d)
%s\%s(%d).%s
HH.EXE
%s::%s
%%windir%%\help\MUI\x\%s
WindowsMessenger
HNetCfg.FwAuthorizedApplication
HNetCfg.FwMgr
%ProgramFiles%\messenger\msmsgs.exe
%s/%s
%s%c%s
http:
NOTIFICATION/MSG/BODY/TEXT
SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack
PerPassportSettings
{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
{9b017612-c9f1-11d2-8d9f-0000f875c541}
{E9133EFD-6D33-4a0b-988A-C7B5979C4820}
%hs\%hs\%u
\Microsoft\Windows Messenger
URL Protocol
URL:Telephony Protocol
import:
{44BBA842-CC51-11CF-AAFA-00AA00B6015C}
{44BBA842-CC51-11CF-AAFA-00AA00B6015B}
KERNEL32.DLL
{X-X-X-XX-
BhXXps://
Software\Clients\IM\Windows Messenger\InstallInfo
SYSTEM\CurrentControlSet\Control\Windows
comctl32.dll
wtsapi32.dll
InkEd.dll
sensapi.dll
MSIMG32.DLL
(MSN/Windows) Messenger Service
\MsiExec.Exe
\Msi.Dll
%s\Microsoft Shared\DW\dw20.exe -x -s %u
Windows Messenger
icmp.dll
rasapi32.dll
tapi32.dll
wintrust.dll
\WININIT.INI
advpack.dll,LaunchINFSection qmgr.inf,DefaultInstall,1
rundll32.exe
COMCTL32.DLL
ole32.Dll
calendar.msn.com
hotmail.msn.com
hotmail.com
microsoft.com
EchoPortManager
Content-Type: application/x-www-form-urlencoded
rTCP
PassportWizard
UseKeyring
PassportHash
credui.dll
uxtheme.dll
ScrnSave.exe
{d597bab1-5b9f-11d1-8dd2-00aa004abd5e}
{d5978620-5b9f-11d1-8dd2-00aa004abd5e}
EventSystem.EventSubscription
SubscriptionID == %s
MsgrSessionManagerGuid
lvback.gif
%s %s %s
WindowsScreenSaverClass
MSBLPopupMsgWClass
%s (%d/%d)
%s %d/%d
%s (%d)
contenturl
{05C9D843-C82C-4ac3-BCDA-2E74E78721AD}
{C9F94B63-DCE4-4248-995D-5AA84CDB887F}
FN=%s; EF=%s; CO=%lx; CS=%x; PF=%x
FN=%s; EF=%s; CO=%lx; CS=%x; PF=%x; RL=1
MSMSGS_NewMessage
RICHED32.DLL
RICHED20.DLL
WVERSION.dll
MsgrBanner
port
\rcImLby.exe
sip:%s@%s;user=phone
tel:%s
conf.exe
logourl
urls
transport
passport-site
[email protected]
Microsoft.RTCContainer
e450.voice.microsoft.com
MsgsPhoneWindowClass
[%s] %s
%1 "%2 (%3)"
%s%sctry=%s&lcid=%s
%s%sctry=%s&lcid=%s&err=%d
Keypad
WPassport1.4
Passport.Net
%s %s\%s
@hotmail.com
shell32.dll,Control_RunDLL mmsys.cpl,
mmsys.cpl
Ports
%u-%u
Port
LoginTime:
ClientPort:
yPassportNexus
Contact%d
Block%d
Allow%d
Reverse%d
Group%d
MsgPrivacy
\ListCache.dat
MS_WebcheckMonitor
yHTTPGatewayPort
/gateway/gateway.dll
MSNMSGRPassportLogin
msmsgs CHttpIE
HTTP/1.1
https
82BD0E67-9FEA-4748-8672-D5EFE5B779B0
{54A345A1-94F3-40CF-9C83-821DF3F33642}
msmsgs
Version 4.7.3001
xpTOCSelectServices.htm
xpTOCAccounts.htm
xpTOCLogoff.htm
xprtcreconfig.htm
TOCPreferences.htm
TOCPhone.htm
emoticons.htm
xchgadvanced.htm
rtcreconfig.htm
TOCDialer.htm
xpTOCLogon.htm
xpTOCPreferences.htm
xpTOCPhone.htm
xpTOCDialer.htm
TOCSelectServices.htm
TOCLogoff.htm
TOCLogon.htm
TOCMessage.htm
xpTOCMessage.htm
TOCPrivacy.htm
TOCAccounts.htm
TOCConnection.htm
TOCPersonal.htm
xpwhyfileblocked.htm

Aviation.exe_620:

.text
`.itext
`.data
.idata
.rdata
@.reloc
B.rsrc
kernel32.dll
Windows
MSWHEEL_ROLLMSG
MSH_WHEELSUPPORT_MSG
MSH_SCROLL_LINES_MSG
$*@@@*$@@@$ *@@* $@@($*)@-$*@@$-*@@$*-@@(*$)@-*$@@*-$@@*$-@@-* $@-$ *@* $-@$ *-@$ -*@*- $@($ *)(* $)
oleaut32.dll
EVariantBadIndexError
ssShift
htKeyword
EInvalidOperation
%s[%d]
%s_%d
.Owner
EInvalidGraphicOperation
SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
clWebSnow
clWebFloralWhite
clWebLavenderBlush
clWebOldLace
clWebIvory
clWebCornSilk
clWebBeige
clWebAntiqueWhite
clWebWheat
clWebAliceBlue
clWebGhostWhite
clWebLavender
clWebSeashell
clWebLightYellow
clWebPapayaWhip
clWebNavajoWhite
clWebMoccasin
clWebBurlywood
clWebAzure
clWebMintcream
clWebHoneydew
clWebLinen
clWebLemonChiffon
clWebBlanchedAlmond
clWebBisque
clWebPeachPuff
clWebTan
clWebYellow
clWebDarkOrange
clWebRed
clWebDarkRed
clWebMaroon
clWebIndianRed
clWebSalmon
clWebCoral
clWebGold
clWebTomato
clWebCrimson
clWebBrown
clWebChocolate
clWebSandyBrown
clWebLightSalmon
clWebLightCoral
clWebOrange
clWebOrangeRed
clWebFirebrick
clWebSaddleBrown
clWebSienna
clWebPeru
clWebDarkSalmon
clWebRosyBrown
clWebPaleGoldenrod
clWebLightGoldenrodYellow
clWebOlive
clWebForestGreen
clWebGreenYellow
clWebChartreuse
clWebLightGreen
clWebAquamarine
clWebSeaGreen
clWebGoldenRod
clWebKhaki
clWebOliveDrab
clWebGreen
clWebYellowGreen
clWebLawnGreen
clWebPaleGreen
clWebMediumAquamarine
clWebMediumSeaGreen
clWebDarkGoldenRod
clWebDarkKhaki
clWebDarkOliveGreen
clWebDarkgreen
clWebLimeGreen
clWebLime
clWebSpringGreen
clWebMediumSpringGreen
clWebDarkSeaGreen
clWebLightSeaGreen
clWebPaleTurquoise
clWebLightCyan
clWebLightBlue
clWebLightSkyBlue
clWebCornFlowerBlue
clWebDarkBlue
clWebIndigo
clWebMediumTurquoise
clWebTurquoise
clWebCyan
clWebPowderBlue
clWebSkyBlue
clWebRoyalBlue
clWebMediumBlue
clWebMidnightBlue
clWebDarkTurquoise
clWebCadetBlue
clWebDarkCyan
clWebTeal
clWebDeepskyBlue
clWebDodgerBlue
clWebBlue
clWebNavy
clWebDarkViolet
clWebDarkOrchid
clWebMagenta
clWebDarkMagenta
clWebMediumVioletRed
clWebPaleVioletRed
clWebBlueViolet
clWebMediumOrchid
clWebMediumPurple
clWebPurple
clWebDeepPink
clWebLightPink
clWebViolet
clWebOrchid
clWebPlum
clWebThistle
clWebHotPink
clWebPink
clWebLightSteelBlue
clWebMediumSlateBlue
clWebLightSlateGray
clWebWhite
clWebLightgrey
clWebGray
clWebSteelBlue
clWebSlateBlue
clWebSlateGray
clWebWhiteSmoke
clWebSilver
clWebDimGray
clWebMistyRose
clWebDarkSlateBlue
clWebDarkSlategray
clWebGainsboro
clWebDarkGray
clWebBlack
comctl32.dll
TaskDialogIndirect
USER32.DLL
uxtheme.dll
DWMAPI.DLL
%s%s%s%s%s%s%s%s%s%s
AutoHotkeys$
AutoHotkeysl
\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
TKeyEvent
TKeyPressEvent
HelpKeyword
crSQLWait
%s (%s)
imm32.dll
ssHotTrack
TWindowState
poProportional
TWMKey
KeyPreviewlF
WindowStateP
OnKeyDown
OnKeyPress
OnKeyUp
GlassFrame.Bottom
GlassFrame.Enabled
GlassFrame.Left
GlassFrame.Right
GlassFrame.SheetOfGlass
GlassFrame.Top
System\CurrentControlSet\Control\Keyboard Layouts\%.8x
User32.dll
OnExecute0
PasswordChar
ssHorizontal
Proportional
TMonochromeLookup
password
Kernel32.dll
WinExec
Explorer.exe
%s %s
(%s%s)
-%s%s
%s-%s
%s%s-
-%s %s
%s %s-
%s -%s
(%s- %s)
(%s %s)
TSQLTimeStampVariantType
TSQLTimeStampData
SqlTimSt
%s, ClassID: %s
ole32.dll
ftParadoxOle
pfInKey
ImportedConstraint
LookupKeyFields
KeyFields
TSQLTimeStampField
TSQLTimeStampFieldd\
SQLTimeStamp
%s.%s
MAPI32.DLL
TPasswordDialog
Password
TLoginDialog
9#8#7#6#5#4#3#1#/#.#-# #
TPasswordEvent
SQLHourGlass
OnPasswordT
TDatabaseLoginEvent
LoginParams
LoginPrompt`
OnLogin
%s%s:"%s";
\DATABASES\%s\DB INFO
\DATABASES\%s\DB OPEN
%s=%s
\DRIVERS\%s\DB OPEN
\DATABASES\%s
PASSWORD
No valid DataSource: %s
3D effect percent must be between %d and %d
%s of %s
of %s
##0.## %
#,##0.###
Series.ParentChart is not myself!
Keyboards
Editing %s
E&xport Chart...
%s: Invalid Editor Class: %s
%s: has no Editor Dialog
Delete %s ?
Desired %s Increment
Incorrect value. Reason: %s
QReport
Field %s does not exist
Calculate %s every:
Page %d of %d
%d bytes
Bitmaps (*.bmp)|*.bmp
Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf
Panel property is not set in Export format
Vert.Line
Horiz.Line
Diag.Cross
Can not email TeeChart. Mapi Error: %d
Series Delete: ValueIndex %d out of bounds (0 to %d).
Error code: %d downloading Chart from URL: %s
Error code: %d downloading Series data from URL: %s
JPEG files (*.jpg)|*.jpg
GIF files (*.gif)|*.gif
PNG files (*.png)|*.png
PCX files (*.pcx)|*.pcx
VML files (*.htm)|*.htm
Do you want to save %s?
PDF files (*.pdf)|*.pdf
PostScript files (*.eps)|*.eps
Space delimited text files (*.txt)|*.txt
Tab delimited text files (*.txt)|*.txt
Comma delimited text files (*.csv)|*.csv
Colon delimited text files (*.txt)|*.txt
Custom delimited text files (*.txt)|*.txt
XML files (*.xml)|*.xml
HTML files (*.htm)|*.htm
Microsoft Excel files (*.xls)|*.xls
SVG files (*.svg)|*.svg
msimg32.dll
gdi32.dll
olepro32.dll
OnExecutepN
AutoHotKeys
ActionClientItem%d
%s, %.2d %s %.4d %s %s
EIdCanNotBindPortInRange
EIdInvalidPortRange
getservbyport
WSAAsyncGetServByPort
WSAJoinLeaf
WS2_32.DLL
Wship6.dll
EIdIPVersionUnsupportedU
TIdSocketListWindows
TIdStackWindowsU
IdStackWindows
127.0.0.1
ftpTransfer
ftpReady
ftpAborted
ClientPortMinl
ClientPortMax
PortSVW
EIdPortRequired8
EIdTCPConnectionError
EIdObjectTypeNotSupported
Portl
"EIdTransparentProxyUDPNotSupported
TIdTCPClientCustom
TIdTCPClientCustom`
IdTCPClient
TIdTCPClient
BoundPortl
%EIdSocksUDPNotSupportedBySOCKSVersion
saUsernamePassword
Passwordl
PortT
0.0.0.1
0.0.0.0
DefaultPortT
TIdTCPConnection
TIdTCPConnection<N
IdTCPConnection
ISO_646.irv:1991
ISO_646.basic:1983
ISO_646.irv:1983
csISO16Portuguese
csISO84Portuguese2
windows-936
csShiftJIS
ISO-8859-1-Windows-3.0-Latin-1
csWindows30Latin1
ISO-8859-1-Windows-3.1-Latin-1
csWindows31Latin1
ISO-8859-2-Windows-Latin-2
csWindows31Latin2
ISO-8859-9-Windows-Latin-5
csWindows31Latin5
csMicrosoftPublishing
Windows-31J
csWindows31J
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
*#%<> []
CommentURL
Port
IdHTTPHeaderInfo
ProxyPasswordl
ProxyPort
Mozilla/3.0 (compatible; Indy Library)
%d%s%d
TIdHTTPOption
IdHTTP
TIdHTTPOptions
TIdHTTPProtocolVersion
TIdHTTPOnRedirectEvent
TIdHTTPOnHeadersAvailable
TIdHTTPResponse
TIdHTTPRequest
TIdHTTPProtocol
TIdCustomHTTP
TIdHTTP
HTTPOptionsp#
EIdHTTPProtocolException
application/x-www-form-urlencoded
HTTPS
https
HTTP/1.0 200 OK
HTTP/
CoShellWindows
OnExecuteMacro
Service %s
Topic %s
0123456789
HBO.exe internacional
rpcrt4.dll
Windows Vista
^atcp
C:\projects\Pe indetectavel D2007\UFunc.pas
1.2.3
Edit4KeyPress
Edit1KeyPress
Edit3KeyPress
tcpup?
pbtvdcp?gxpsra?r~|>sra>^atcprx~
n%D,3
mozillawindowclass
mozilladropshadowwindowclass
Idhttp1
%d.%d.%d.%d
13.0.0.0
Portable Network Graphics
idapi32.DLL
IDAPI32.DLL
deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly
inflate 1.2.3 Copyright 1995-2005 Mark Adler
%WinDir%\Aviation.exe
?456789:;<=
!"#$%&'()* ,-./0123
KERNEL32.DLL
advapi32.dll
oleacc.dll
shell32.dll
user32.dll
version.dll
winmm.dll
GetWindowsDirectoryA
GetCPInfo
RegOpenKeyExA
RegCloseKey
RegOpenKeyA
RegFlushKey
RegCreateKeyExA
SetViewportOrgEx
UnhookWindowsHookEx
SetWindowsHookExA
MsgWaitForMultipleObjects
MapVirtualKeyA
LoadKeyboardLayoutA
GetKeyboardState
GetKeyboardLayoutNameA
GetKeyboardLayoutList
GetKeyboardLayout
GetKeyState
GetKeyNameTextA
EnumWindows
EnumThreadWindows
EnumChildWindows
ActivateKeyboardLayout
GetKeyboardType
ExitWindowsEx
333333333333333333
33333833
3333339
3333333333333338
:*"*"$3338
3333333
33333333
33333333333
3333333333338
33338?383
333333333333
:*3:"$3338
333333333333333
33333333333333
337373?3
333373?33
33333337
3733333
3337333
3333373
3737333
373333?3
3333333333
333333333
333?33?333
333373?3
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="cache-control" content="no-cache">
<IMG SRC="{%INTRAWEBLOGO%}">
the case, please report the error message to the administrator.
{%CONTENT%}
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="cache-control" content="no-cache">
<IMG SRC="{%INTRAWEBLOGO%}">
;t_clear.gif
req.timeout =null;
req.generateUniqueUrl =true;
req.url =window.location.href;
req.method ="GET";
req.async =true;
req.username =null;
req.password =null;
req.parameters =new Object();
req.requestIndex =AjaxRequest.numAjaxRequests  ;
req.responseReceived =false;
req.groupName =null;
req.queryString ="";
req.responseText =null;
req.responseXML =null;
req.status =null;
req.statusText =null;
req.aborted =false;
req.xmlHttpRequest =null;
req.onTimeout=null;
req.onLoading=null;
req.onLoaded=null;
req.onInteractive=null;
req.onComplete=null;
req.onSuccess=null;
req.onError=null;
req.onGroupBegin=null;
req.onGroupEnd=null;
req.xmlHttpRequest =AjaxRequest.getXmlHttpRequest();
if(req.xmlHttpRequest==null) {
req.xmlHttpRequest.onreadystatechange = function(){
if(req==null || req.xmlHttpRequest==null){
if(req.xmlHttpRequest.readyState==1){
req.onLoadingInternal(req);
if(req.xmlHttpRequest.readyState==2){
req.onLoadedInternal(req);
if(req.xmlHttpRequest.readyState==3){
req.onInteractiveInternal(req);
if(req.xmlHttpRequest.readyState==4){
req.onCompleteInternal(req);
req.onLoadingInternalHandled=false;
req.onLoadedInternalHandled=false;
req.onInteractiveInternalHandled=false;
req.onCompleteInternalHandled=false;
req.onLoadingInternal= function(){
if(req.onLoadingInternalHandled){
AjaxRequest.numActiveAjaxRequests  ;
if(AjaxRequest.numActiveAjaxRequests==1 && typeof(window['AjaxRequestBegin'])=="function"){
if(req.groupName!=null){
if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=="undefined"){
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] =0;
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]  ;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==1 && typeof(req.onGroupBegin)=="function"){
req.onGroupBegin(req.groupName);
if(typeof(req.onLoading)=="function"){
req.onLoading(req);
req.onLoadingInternalHandled=true;
req.onLoadedInternal=function(){
if(req.onLoadedInternalHandled){
if(typeof(req.onLoaded)=="function"){
req.onLoaded(req);
req.onLoadedInternalHandled=true;
req.onInteractiveInternal= function(){
if(req.onInteractiveInternalHandled){
if(typeof(req.onInteractive)=="function"){
req.onInteractive(req);
req.onInteractiveInternalHandled=true;
req.onCompleteInternal= function(){
if(req.onCompleteInternalHandled || req.aborted){
req.onCompleteInternalHandled=true;
AjaxRequest.numActiveAjaxRequests--;
if(AjaxRequest.numActiveAjaxRequests==0 && typeof(window['AjaxRequestEnd'])=="function"){
AjaxRequestEnd(req.groupName);
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0 && typeof(req.onGroupEnd)=="function"){
req.onGroupEnd(req.groupName);
req.responseReceived =true;
req.status =req.xmlHttpRequest.status;
req.statusText =req.xmlHttpRequest.statusText;
req.responseText =req.xmlHttpRequest.responseText;
req.responseXML =req.xmlHttpRequest.responseXML;
if(typeof(req.onComplete)=="function"){
req.onComplete(req);
if(req.xmlHttpRequest.status==200 && typeof(req.onSuccess)=="function"){
req.onSuccess(req);
if(typeof(req.onError)=="function"){
req.onError(req);
delete req.xmlHttpRequest['onreadystatechange'];
req.onTimeoutInternal= function(){
if(req!=null && req.xmlHttpRequest!=null && !req.onCompleteInternalHandled){
req.aborted =true;
req.xmlHttpRequest.abort();
if(typeof(req.onTimeout)=="function"){
req.onTimeout(req);
req.process = function(){
if(req.xmlHttpRequest!=null){
if(req.generateUniqueUrl && req.method=="GET"){
req.parameters["AjaxRequestUniqueId"] =new Date().getTime()   ""   req.requestIndex;
for(var i in req.parameters){
if(req.queryString.length>0){
req.queryString  ="&";
req.queryString  =encodeURIComponent(i)   "="   encodeURIComponent(req.parameters[i]);
if(req.method=="GET"){
req.url  =((req.url.indexOf("?")>-1)?"&":"?")   req.queryString;
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.password);
if(req.method=="POST"){
if(typeof(req.xmlHttpRequest.setRequestHeader)!="undefined"){
req.xmlHttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
content =req.queryString;
if(req.timeout>0){
setTimeout(req.onTimeoutInternal,req.timeout);
req.xmlHttpRequest.send(content);
req.handleArguments = function(args){
req.parameters[i] =args[i];
req.getAllResponseHeaders = function(){if(req.xmlHttpRequest!=null){if(req.responseReceived){return req.xmlHttpRequest.getAllResponseHeaders();}debugAlert("Cannot getAllResponseHeaders because a response has not yet been received");}};
req.getResponseHeader = function(headerName){
if(req.responseReceived){
return req.xmlHttpRequest.getResponseHeader(headerName);
AjaxRequest.getXmlHttpRequest=function(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
if(window.ActiveXObject){/*@cc_on @*/
try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(E){return null;}}@end @*/
AjaxRequest.isActive =function(){
return(AjaxRequest.numActiveAjaxRequests>0);
AjaxRequest.get=function(args){
AjaxRequest.doRequest("GET",args);
AjaxRequest.post=function(args){
AjaxRequest.doRequest("POST",args);
AjaxRequest.doRequest =function(method,args){
myRequest.method =method;
myRequest.handleArguments(args);
myRequest.process();
AjaxRequest.submit = function(theform, args){
var serializedForm =AjaxRequest.serializeForm(theform);
myRequest.method =theform.method.toUpperCase();
myRequest.url =theform.action;
myRequest.queryString =serializedForm;
AjaxRequest.serializeForm=function(theform){
var els =theform.elements;
var len =els.length;
this.addField = function(name,value){
if(queryString.length>0){
if(!el.disabled){
switch(el.type){
case 'password':
this.addField(el.name,el.value);
if(el.selectedIndex>=0){
this.addField(el.name,el.options[el.selectedIndex].value);
for(var j=0;j<el.options.length;j  ){
if(el.options[j].selected){
this.addField(el.name,el.options[j].value);
if(el.checked){
AjaxRequest.numActiveAjaxRequests =0;
AjaxRequest.numActiveAjaxGroupRequests =new Object();
AjaxRequest.numAjaxRequests =0;
var xSubmitForm = getSubmitForm().cloneNode(true);
for (j=xSubmitForm.elements.length-1;j>=0;j--) {
var name=xSubmitForm.elements[j].name;
xSubmitForm.removeChild(xSubmitForm.elements[j])
for (j = 0; j < xSubmitForm.elements.length; j  ) {
AItem = LocateInputElement(xSubmitForm.elements[j].name, xSubmitForm, ProcessElement);
if (aSender != null && AItem != null && AItem.name == aSender.name) {
gSentValue = AItem.value;
gSenderName = aSender.name;
xSubmitForm.elements.IW_Action.value=aSender.name;
return (lEvent.altKey ? "ALT_MASK," : "")  (lEvent.ctrlKey ? "CTRL_MASK," : "")  (lEvent.metaKey ? "META_MASK," : "")  (lEvent.shiftKey ? "SHIFT_MASK" : "");
return "&x="   lEvent.offsetX   "&y="   lEvent.offsetY   "&which="  lEvent.button   "&modifiers="   modifiers(lEvent);
return "&x="   lEvent.layerX   "&y="   lEvent.layerY   "&which="  lEvent.which   "&modifiers="   modifiers(lEvent);
function(lEvent) { // "keydown"
return "&x="   lEvent.offsetX   "&y="   lEvent.offsetY   "&which="  lEvent.keyCode   "&modifiers="   modifiers(lEvent);
function(lEvent) { // "keypress"
function(lEvent) { // "keyup"
return "&x="   lEvent.offsetX   "&y="   lEvent.offsetY;
return "&x="   lEvent.layerX   "&y="   lEvent.layerY;
function constructEventURL(lEvent)
for (j=0; j < eventList.length; j   ) {
if (eventList[j] == lEvent.type) {
eventName = lEvent.type;
var url = "";
url  = eventFunction(lEvent);
return url;
var aURL = GURLBase   '/callback'   aSessionInfo   '?callback='   aCallback;
window.ChangedControls = "";
xSubmitForm.action = aURL   eventParams;
var status = AjaxRequest.submit(
xmldoc = loadAjaxResponse(req.responseText);
window.eventProcessing = false;
if (req.responseText == "") {
window.serverProblem = true;
debugAlert('Ajax-Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
window.serverProblem = false
var indexOf = window.ChangedControls.indexOf(controlName   ",");
var lEvent = event ? event : window.event;
var target = lEvent.srcElement ? lEvent.srcElement : lEvent.target;
while (target.id == "") {
if (ie4 || opera_browser) {
target = target.parentElement;
target = target.parentNode;
var controlName = target.id;
window.ChangedControls  = controlName   ",";
var logElement = FindElem("INTRAWEBLOGMEMO");
if (logElement.childNodes.length > 50) {
logElement.innerHTML = aMessage   "<br/>";
logElement.innerHTML  = aMessage   "<br/>";
eventParams = constructEventURL(lEvent);
window.eventQueue = new Array();
window.lastEvent = null;
if (eventQueue.length > 0) {
var f = window.eventQueue.shift();
function executeAjaxEvent(eventParams, aSender, aCallback, aDirectSend, aSendControl, aAppend)
if (window.serverProblem) {
if (!window.eventProcessing) {
window.eventProcessing = true;
window.setTimeout(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend), 10);
window.eventQueue.push(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend));
if (aAppend || window.lastEvent == null || window.eventQueue.length == 0 || window.lastEvent != aCallback) {
window.lastEvent = aCallback;
window.ChangedControls  = aSender.id   ",";
if (window.ChangedControls.length == 0) {
var aURL;
aURL = GURLBase   '/callback'   aSessionInfo   '?callback='   aCallback   '&'   aSender.name   '='   aSender.value;
aURL = GURLBase   '/callback'   aSessionInfo   '?callback='   aCallback;
aURL = aURL   eventParams;
AjaxRequest.get(
'url':aURL
debugAlert('Callback Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
if (window.ActiveXObject) { // IE
xXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xXmlDoc.async = false;
xXmlDoc.loadXML(aResponse);
} else { // Mozilla
xXmlDoc = (new DOMParser()).parseFromString(aResponse, "text/xml");
var xData = aXmlDoc.getElementsByTagName("response");
if (xData == null || xData.length != 1) {
var xTrackID = aXmlDoc.getElementsByTagName("submit");
if (xTrackID.length > 0) {
xSubmitForm.action = xTrackID[0].lastChild.nodeValue;
var xUpdate = aXmlDoc.getElementsByTagName("update");
if (xUpdate.length > 0) {
processAjaxUpdate(xUpdate[0].childNodes);
var xExecute = aXmlDoc.getElementsByTagName("execute");
if (xExecute.length > 0) {
processAjaxExecute(xExecute[0].childNodes);
for (var i = 0; i < aUpdateElements.length; i  ) {
if (xElement.nodeType != 1) {
function processAjaxExecute(aExecuteElements)
for (var i = 0; i < aExecuteElements.length; i   ) {
var xElement = aExecuteElements[i];
eval(xElement.lastChild.nodeValue);
var xID = aElement.getAttribute("id").toUpperCase();
var xType = aElement.getAttribute("type").toUpperCase();
var xObject = IWTop().FindElem(xID);
for (var i = 0; i < aElement.childNodes.length; i  ) {
if (aElement.childNodes[i].nodeType != 1) {
var xPropName = aElement.childNodes[i].nodeName;
if (aElement.childNodes[i].lastChild != null) {
var xPropValue = aElement.childNodes[i].lastChild.nodeValue;
if (xID == gSenderName && xObject.value == gSentValue) {
xObject.value = xPropValue;
logMessage(xObject.value   ":"   xPropValue);
if (xObject.innerHTML != xPropValue) {
xObject.innerHTML = xPropValue;
xObject.className = xPropValue;
var xItemsNode = aElement.childNodes[i];
for (var ii = 0; ii < xItemsNode.childNodes.length; ii  ) {
if (xItemsNode.childNodes[ii].nodeType != 1) {
var xItemNode = xItemsNode.childNodes[ii];
if (xItemNode.nodeName == "attribute") {
var xPropertyName = xItemNode.getAttribute("name");
if (xItemNode.lastChild != null) {
xPropertyValue = xItemNode.lastChild.nodeValue;
eval("xObject.style."   xPropertyName   "=\""   xPropertyValue   "\"");
xObject.disabled = false;
xObject.disabled = true;
xObject.readOnly = true;
xObject.readOnly = false;
xObject.src = xPropValue;
var xObject = IWTop().FindElem(xID   "_CHECKBOX");
if (xObject.checked != xPropValue) {
xObject.checked = xPropValue;
xObject.multiple = !(xPropValue == "select-one");
xObject.removeAttribute("multiple");
xObject.setAttribute("multiple", "");
while (xObject.childNodes.length > 0) {
xObject.removeChild(xObject.childNodes[0]);
var xIsSelected = xItemNode.getAttribute("selected");
var xItemValue = xItemNode.getAttribute("value");
xItemText = xItemNode.lastChild.nodeValue;
var oOption = document.createElement("OPTION");
oOption.text=xItemText;
oOption.value=xItemValue;
xSelected.push(oOption);
xObject.add(oOption);
xObject.appendChild(new Option(xItemText, xItemValue, false, xIsSelected != null));
var xVerticalLayout = aElement.getAttribute("layout").toLowerCase() == "vertical";
var xRadioInput = document.createElement(element);
element = "<span onclick=\"FindElem('"   xID   "_INPUT_"   ii   "').checked = true;\"/>";
var xSpan = document.createElement(element);
xObject.appendChild(xRadioInput);
xSpan.innerHTML = xItemText;
xObject.appendChild(xSpan);
var xRadioInput = document.createElement("input");
xRadioInput.name = xID   "_INPUT";
xRadioInput.id = xID   "_INPUT_"   ii;
xRadioInput.type = "radio";
xRadioInput.value = xItemValue;
xRadioInput.checked = xIsSelected != null;
var xSpan = document.createElement("span");
xSpan.onclick = function() {
FindElem(xID   "_INPUT_"   ii).checked = true;
xObject.appendChild(document.createElement("BR"));
while (xSelected.length > 0) {
xSelected.shift().selected = true;
xSelected.selected = true;
window.setTimeout(delegate(obj, obj.method, xSelected), 1);
var xObj = IWTop().FindElem(aObject);
xObj.disabled = aDisabled;
xObj.readOnly = aReadOnly;
xObj.style.visiblity = 'visible';
xObj.style.visiblity = 'hidden';
xObj.style.left = aX;
xObj.style.top = aY;
xObj.style.zIndex = aZ;
var xObj = IWTop().FindElem(aListBox);
var xElem = document.createElement("option");
xElem.text = aItemText;
xElem.value = aItemValue;
xObj.appendChild(xElem);
this.interval = interval;
this.enabled = enabled;
this.callback = callback;
this.startTimer = function() {
this.enabled = true;
setTimeout(delegate(this.timeout, this.timeout.method, this), this.interval);
this.stopTimer = function() {
this.enabled = false;
this.timeout = {
executeAjaxEvent("", null, timer.callback, true);
if (timer.enabled) {
setTimeout(delegate(timer.timeout, timer.timeout.method, timer), timer.interval);
if (enabled) this.startTimer();
FindElem(controlName).checked = !FindElem(controlName).checked;
FindElem(checkbox).onclick(event);
this.Draw = DynChartLegend_Draw;
this.Div = ADiv;
this.Width = AWidth;
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;}
this.Div.innerHTML = s;
this.Draw = DynChart_Draw;
this.Data = AData;
this.ColNames = AColNames;
this.Colors = AColors;
this.VertData = AVertData;
this.HorzData = AHorzData;
this.Legend = ALegend;
this.Func = AFunc;
this.ValuesInBars = true;
var LHeight = this.Div.clientHeight;
var LWidth = this.Div.clientWidth;
for (i = 0; i < AData.length; i  ) {
if (AData[i].toUpperCase() == AName.toUpperCase())
AArray[1] = Math.min(AArray[1], AData);
AArray[1] = Math.max(AArray[1], AData);
LHorzIdx = FindCol(this.HorzData, this.ColNames);
LVertIdx = FindCol(this.VertData, this.ColNames);
j = FindHorz(this.Data[i][LHorzIdx], LData);
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);
LMaxColValue = Math.max(LMaxColValue, LData[i][1]);
LBarHeight = Math.floor(LData[i][1] * LColSegHeight);
, this.Colors[LColorIdx  ], this.ValuesInBars?LData[i][1]:' ');
if (LColorIdx >= this.Colors.length)
if (this.Legend != null) {
this.Legend.Data = LData;
this.Legend.Colors = this.Colors;
this.Legend.DataDescr = this.ColNames[LHorzIdx];
this.Legend.Draw();
onKeyDown
onKeyPress
onKeyUp
for (i = 0; i < AAraay.length; i  ) {
if (opera_browser || KHTML_browser) {
return AElement.style.clip != "auto";
return AElement.currentStyle.clipTop != "auto"
return getComputedStyle(AElement,'').getPropertyValue('clip') != "auto";
if (opera_browser) {
return AElement.visibility;
return AElement.style.visibility
return AElement.currentStyle.visibility;
return getComputedStyle(AElement,'').getPropertyValue('visibility');
AElement.Visible = true;
AElement.Visible = false;
if (AElement != null && AElement != window.document.body) {
return isNotClipped(AElement.offsetParent);
this.Left = ALeft;
this.Top = ATop;
this.Height = AHeight;
this.equals = Rect_equals;
return this.Width == ARect.Width && this.Height == ARect.Height && this.Left == ARect.Left && this.Top == ARect.Top;
return new Rect(ASrcRect.Left, ASrcRect.Top, ASrcRect.Width, ASrcRect.Height);
this.Right = ARight;
this.Bottom = ABottom;
delete this.Rect;
delete this.OriginalRect;
for (i = 0; i < this.OwnedComps.length; i  ) {
this.OwnedComps[i].IWRelease();
this.OwnedComps[i] = null;
if (this.oldCursors) {
for (i = 0; i < this.oldCursors.length; i  ) {
this.oldCursors[i] = null;
for (i = 0; i < this.HTMLelements.length; i  ) {
this.HTMLelements[i] = null;
/* this.Width = AWidth;
this.OldWidth = AWidth;
this.OldHeight = AHeight; */
this.BorderWidthPixels = 0;
this.Item = window.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;
this.HookEvent = IWCL_HookEvent;
this.IWRelease = IWCL_FormRelease;
IWCLForm.IWRelease();
AItem = window.document.getElementById(AId);
if (AItem != null && AItem.length && AItem.length > 0 && !AItem.tagName) {
for (i = 0; i < AItem.length; i  ) {
if (LResult.id == AId) break;
var AItem = (ns6||KHTML_browser) ? window.document.getElementById(AId): window.document.all[AId];
var iLen = (AItem != null) ? AItem.length : 0;
if (AItem != null && iLen && iLen > 0 && !AItem.tagName) {
LItem = LItem.Owner;
LPoint.X  = LItem.Rect.Left;
LPoint.Y  = LItem.Rect.Top;
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;
LRect = new Rect(AControl.offsetLeft, AControl.offsetTop,
AControl.offsetWidth, AControl.offsetHeight);
if (ns6 || opera_browser) {
if (AControl.Owner != IWCLForm && hasClip(AControl.Owner)) {
LRect.Left  = AControl.Owner.BorderWidthPixels;
LRect.Top  = AControl.Owner.BorderWidthPixels;
InflateRect(LRect, -AControl.BorderWidthPixels, -AControl.BorderWidthPixels);
this.Align = AAlign;
this.Anchors = AAnchors;
this.FieldName = AFieldName;
this.DataSet = ADataSet;
ADataSet.OnChangeList[ADataSet.OnChangeList.length] = this;
this.DoOnChange(ADataSet);
this.SetIWCLTypeMehtodList[this.SetIWCLTypeMehtodList.length] = ASetIWCLTypeMethod
this.SetOnChnage = ADataSet;
this.DoOnChange = IWCL_LabelOnChange;
this.DoOnChange = IWCL_DBNavigatorOnChange;
for(i = 0; i < this.SetIWCLTypeMehtodList.length; i  )
this.SetIWCLTypeMehtodList[i](AType);
layerWrite(this.id, false, ADataSet.FieldByName(this.FieldName));
AElement = LocateElement(this.id   'IWCL_First');
if (ADataSet.BOF()) {
AElement.src = this.First_Disabled;
AElement.src = this.First_Enabled;
AElement = LocateElement(this.id   'IWCL_Last');
if (ADataSet.EOF()) {
AElement.src = this.Last_Disabled;
AElement.src = this.Last_Enabled;
AElement = LocateElement(this.id   'IWCL_Next');
AElement.src = this.Next_Disabled;
AElement.src = this.Next_Enabled;
AElement = LocateElement(this.id   'IWCL_Prior');
AElement.src = this.Prior_Disabled;
AElement.src = this.Prior_Enabled;
AElement = LocateElement(this.id   'IWCL_Refresh');
AElement.src = this.Refresh_Enabled;
AElement.src = this.Refresh_Disabled;
if( this.className == "tab-page" )
this.style.visibility = "visible";
this.style.display = "";
this.style.visibility = "hidden";
this.style.display = "none";
this.OwnedComps[i].IWSetVisible(AVisible);
if (!AItem.Visible) {
if (AItem.Owner != null){
return IsVisible(AItem.Owner);
if (IsVisible(this)) this.IWSetVisible(true)
else this.IWSetVisible(false);
this.IWSetVisible(false);
if( this.Rect.equals(ARect) )
var LPoint = new Point(ARect.Left, ARect.Top);
if ((ARect.Left   ARect.Width) < 0 || (ARect.Top   ARect.Height) < 0 || ARect.Width < 0 || ARect.Height < 0) {
alert(ARect.Left   ","   ARect.Top   ","   ARect.Width   ","   ARect.Height  "("   getComputedStyle(this,"").getPropertyValue("clip")   ")");
this.style.left = LPoint.X;
this.style.top = LPoint.Y;
ARect.Width -= (2*this.BorderWidthPixels);
ARect.Height -= (2*this.BorderWidthPixels);
if (ARect.Width != this.Rect.Width || ARect.Height != this.Rect.Height) {
var lWidth = ARect.Width;
var lHeight = ARect.Height;
this.style.width = lWidth ;
this.style.height = lHeight;
this.style.clip = "rect(0px,"   lWidth   "px,"   lHeight   "px,0px)";
ARect.Width  = (2*this.BorderWidthPixels);
ARect.Height  = (2*this.BorderWidthPixels);
this.style.clip = "rect(0px,"   ARect.Width   "px,"   ARect.Height   "px,0px)";
this.Anchors = null;
this.OriginalRect = null;
this.Rect = null;
this.SetAlign = null;
this.SetAnchors = null;
this.SetDataSet = null;
this.SetFieldName = null;
this.SetOnChange = null;
this.DoOnChange = null;
this.SetIWCLType = null;
this.SetRect = null;
this.OverrideIWCLType = null;
this.UpdateRects = null;
this.UpdateTopLeft = null;
this.HookEvent = null;
this.IWRelease = null;
for (i = 0; i < this.SetIWCLTypeMehtodList.length; i  ) {
this.SetIWCLTypeMehtodList[i] = null;
this.SetIWCLTypeMehtodList = null;
this.OwnedComps = null;
for (i = 0; i < this.IEEventHandlers.length; i  ) {
this.IEEventHandlers[i] = null;
this.IEEventHandlers = null;
this.Owner = null;
eval(this.VarName   "= null;");
Item.Owner = AOwner;
Item.BorderWidth = 0;
Item.BorderWidthPixels = 0;
Item.Align = alNone;
Item.VarName = AName;
Item.Anchors = new CreateAnchors(true, false, true, false);
if( Item.OriginalRect ) {
Item.Rect = CopyRect( Item.OriginalRect );
Item.OriginalRect = CreateRect(Item);
Item.Rect = CopyRect(Item.OriginalRect);
Item.Visible = true;
Item.IWShow = IWCL_Show;
Item.IWHide = IWCL_Hide;
Item.IWSetVisible = IWCL_SetVisible;
Item.SetAlign = IWCL_SetAlign;
Item.SetAnchors = IWCL_SetAnchors;
Item.SetDataSet = IWCL_SetDataSet;
Item.SetFieldName = IWCL_SetFieldName;
Item.SetOnChange = IWCL_SetOnChange;
Item.DoOnChange = IWCL_OnChange;
Item.SetIWCLType = IWCL_SetIWCLType;
Item.SetIWCLTypeMehtodList = new Array();
Item.SetRect = IWCL_SetRect;
Item.OverrideIWCLType = IWCL_OverrideIWCLType;
Item.UpdateRects = IWCL_UpdateRects;
Item.UpdateTopLeft = IWCL_UpdateTopLeft;
Item.HookEvent = IWCL_HookEvent;
Item.IWRelease = IWCL_Release;
Item.OwnedComps = new Array();
if (Item.Owner != null)
Item.Owner.OwnedComps[Item.Owner.OwnedComps.length] = Item;
Item.IEEventHandlers = new Array();
return !(AAnchors.Left && AAnchors.Right && AAnchors.Top && !AAnchors.Bottom)
return !(AAnchors.Left && AAnchors.Right && !AAnchors.Top && AAnchors.Bottom)
return !(AAnchors.Left && !AAnchors.Right && AAnchors.Top && AAnchors.Bottom)
return !(!AAnchors.Left && AAnchors.Right && AAnchors.Top && AAnchors.Bottom)
return !(AAnchors.Left && !AAnchors.Right && AAnchors.Top && !AAnchors.Bottom)
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) {
LNewWidth = (AParent.Rect.Width - AParent.OriginalRect.Width)   AControl.OriginalRect.Width;
LNewLeft = AControl.OriginalRect.Left   AParent.Rect.Width - AParent.OriginalRect.Width;
LNewLeft = ((AControl.OriginalRect.Left   AControl.OriginalRect.Width / 2) * AParent.Rect.Width) /
AParent.OriginalRect.Width - (LNewWidth / 2);
LNewHeight = AParent.Rect.Height - (AParent.OriginalRect.Height - AControl.OriginalRect.Height);
LNewTop = AControl.OriginalRect.Top   AParent.Rect.Height - AParent.OriginalRect.Height;
LNewTop = ((AControl.OriginalRect.Top   AControl.OriginalRect.Height / 2) * AParent.Rect.Height) /
AParent.OriginalRect.Height - (LNewHeight / 2);
switch (AControl.Align) {
LNewRect.Height = LNewHeight;
LNewRect.Top = AParent.ClientRect.Top;
LNewRect.Width = AParent.ClientRect.Width-(2*AParent.BorderWidthPixels);
LNewRect.Left = AParent.ClientRect.Left;
AParent.ClientRect.Top = AParent.ClientRect.Top   LNewHeight;
AParent.ClientRect.Height = AParent.ClientRect.Height - LNewHeight;
LNewRect.Top = (AParent.ClientRect.Height   AParent.ClientRect.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Width = AParent.ClientRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Width = LNewWidth;
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels); //   AParent.OriginalRect.Top;
AParent.ClientRect.Left = AParent.ClientRect.Left   LNewWidth;
AParent.ClientRect.Width = AParent.ClientRect.Width - LNewWidth;
LNewRect.Left = (AParent.ClientRect.Left   AParent.ClientRect.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels);
AControl.SetRect(LNewRect);
AControl.UpdateRects(LNewRect);
var a = AControl.Anchors;
var cr = AParent.ClientRect;
if (a.Left && !a.Right) {
} else if (a.Left && a.Right) {
} else if (!a.Left && a.Right) {
} else if (!a.Left && !a.Right) {
if (a.Top && !a.Bottom) {
} else if (a.Top && a.Bottom) {
} else if (!a.Top && a.Bottom) {
} else if (!a.Top && !a.Bottom) {
LNewRect.Top = cr.Top;
LNewRect.Width = cr.Width-(2*AParent.BorderWidthPixels);
LNewRect.Left = cr.Left;
cr.Top = cr.Top   LNewHeight;
cr.Height = cr.Height - LNewHeight;
LNewRect.Top = (cr.Height   cr.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Width = cr.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels); //   AParent.OriginalRect.Top;
cr.Left = cr.Left   LNewWidth;
cr.Width = cr.Width - LNewWidth;
LNewRect.Left = (cr.Left   cr.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels);
switch (A.Align) {
return A.Rect.Top - B.Rect.Top;
return B.Rect.Top - A.Rect.Top;
return A.Rect.Left - B.Rect.Left;
return B.Rect.Left - A.Rect.Left;
var i = AParent.OwnedComps.length;
if (AParent.OwnedComps[idx].Align == AAlign && IsVisible(AParent.OwnedComps[idx])) {
AlignList[AlignList.length] = AParent.OwnedComps[idx];
AlignList.sort(AlignListSort);
i = AlignList.length;
for(i=0; i < AParent.OwnedComps.length; i  ) {
if (AParent.OwnedComps[i].Align == AAlign && IsVisible(AParent.OwnedComps[i])) {
AlignList[AlignList.length] = AParent.OwnedComps[i];
for (i=0; i < AlignList.length; i  ) {
this.SetRect(this.Rect);
for (j=0; j < xSubmitForm.elements.length; j  ) {
if (AName == xSubmitForm.elements[j].name) {
return xSubmitForm.elements[j];
resizeFrame.src = GResizeURL   "&IW_width="   AWidth  "&IW_height="   AHeight;
ARect.Width  = 2 * dWidth;
ARect.Height  = 2 * dHeight;
if (IWCLForm.timerid != null && (this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
clearTimeout(IWCLForm.timerid)
(this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
this.timerid = setTimeout("IWCL_SendNewSize("   ANewRect.Width   ", "   ANewRect.Height   ")", GOnResizetimeout);
lWidth.value = ANewRect.Width;
lHeight.value = ANewRect.Height;
this.ClientRect = new Rect(0, 0, ANewRect.Width, ANewRect.Height);
this.Rect = CopyRect(ANewRect);
if (this.OwnedComps.length > 0) {
Status("Size: ("   ANewRect.Width   ", "   ANewRect.Height   "); Scroll size: ("  window.document.body.scrollWidth   ", "   window.document.body.scrollHeight   ");");
item.style.left = IWCLForm.Item.scrollLeft;
item.style.top = IWCLForm.Item.scrollTop;
item.style.width = IWCLForm.Item.clientWidth;
item.style.height = IWCLForm.Item.clientHeight;
item.style.width = IWCLForm.Rect.Width;
item.style.height = IWCLForm.Rect.Height;
item.style.visibility = "visible";
item.style.display = "";
IWCLForm.oldCursors = new Array();
IWCLForm.HTMLelements = new Array();
SetCursor(window.document.body);
if (IWCLForm && IWCLForm.HTMLelements) {
item.style.visibility = "hidden";
item.style.display = "none";
if( IWCLForm.HTMLelements ){
for (i = 0; i < IWCLForm.HTMLelements.length; i  ) {
IWCLForm.HTMLelements[i].style.cursor = IWCLForm.oldCursors[i];
var ie4 = (document.all)? true:false;
var ns6 = (document.getElementById)? true && !ie4:false;
var opera_browser = (window.opera)?true:false;
var KHTML_browser = (navigator.vendor == 'KDE') || ( document.childNodes && !document.all && !navigator.taintEnabled );
var _nav4 = (navigator.appName.indexOf("Netscape") != -1);
var _domain = document.domain;
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("hXXp://") != -1) {
if(src.indexOf(_domain) == -1) {
alert("fframe.js: Sorry, the src you specified is not in this domain.");
this.isInit = false;
this.isSetup = false;
this.baseHREF = GURLBase   "/gfx/sb_";
if(!_scrollImgs) _fLoadImages(this.baseHREF);
this.init();
this.load(false, false);
this.setup();
document.body.innerHTML  =
this.layer = document.all["scroll" _numScrolls];
this.layer.style.borderColor = this.borderColor;
this.isInit = true;
this.isSetup = true;
_scrolls[this.id] = this;
_scrollImgs[0].src = baseHREF   "vup.gif";
_scrollImgs[1].src = baseHREF   "vup2.gif";
_scrollImgs[2].src = baseHREF   "vdown.gif";
_scrollImgs[3].src = baseHREF   "vdown2.gif";
_scrollImgs[4].src = baseHREF   "hleft.gif";
_scrollImgs[5].src = baseHREF   "hleft2.gif";
_scrollImgs[6].src = baseHREF   "hright.gif";
_scrollImgs[7].src = baseHREF   "hright2.gif";
_scrollImgs[8].src = baseHREF   "vbg.gif";
_scrollImgs[9].src = baseHREF   "vthumb.gif";
_scrollImgs[10].src = baseHREF   "hbg.gif";
_scrollImgs[11].src = baseHREF   "hthumb.gif";
_scrollImgs[12].src = baseHREF   "null.gif";
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,
_fInitComp(frame.vsuLayer,
_fInitComp(frame.vsdLayer,
_fInitComp(frame.vssLayer,
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,
_fInitComp(frame.hsuLayer,
_fInitComp(frame.hsdLayer,
_fInitComp(frame.hssLayer,
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,
frame.isInit = true;
if(_loading || !frame.isInit) {
src = src || frame.src;
frame.src = src;
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();
frame.layer.src = src;
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
} else if((frame.hMax <= frame.width) && frame.hasHScroll) {
frame.hasHScroll = false;
frame.height  = 16; // make content taller
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
} 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
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.baseHREF.indexOf("mac") != -1) {
_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);
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;
_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);
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;
layer.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
layer.onmousedown = onmousedown;
layer.onmouseup = onmouseup;
layer.background.src = _scrollImgs[bgSrc].src;
layer.top = top;
layer.left = left;
layer.clip.width = width;
layer.clip.height = height;
layer.visibility = "inherit";
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;
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);
document.frames("scroll" this.id).self.scrollTo(x,y);
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);
document.frames("scroll" this.id).self.scrollBy(x,y);
x  = this.layer.clip.left;
y  = this.layer.clip.top;
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;
var frame = this.frame;
frame.vssLayer.top = p*(frame.vspLayer.clip.height -
frame.vssLayer.clip.height)  
frame.vspLayer.top;
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);
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;
frame.hssLayer.left = p*(frame.hspLayer.clip.width -
frame.hssLayer.clip.width)  
frame.hspLayer.left;
p = i/(f.hMax - f.width);
f.layer.hScroll(p, true, true);
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[3].src;
p = (_scrollLayer.clip.top 15) /
(_scrollLayer.vMax - _scrollLayer.oHeight);
_scrollLayer.vScroll(p, true);
this.background.src = _scrollImgs[2].src;
this.background.src = _scrollImgs[1].src;
p = (_scrollLayer.clip.top-15) /
this.background.src = _scrollImgs[0].src;
this.background.src = _scrollImgs[7].src;
p = (_scrollLayer.clip.left 15) /
(_scrollLayer.hMax - _scrollLayer.oWidth);
_scrollLayer.hScroll(p, true);
this.background.src = _scrollImgs[6].src;
this.background.src = _scrollImgs[5].src;
p = (_scrollLayer.clip.left-15) /
this.background.src = _scrollImgs[4].src;
if(e.pageY > this.ssLayer.top)
_scrollInt = setInterval("_scrollVJump(" dir "," e.pageY ");", 50);
p = (_scrollLayer.clip.top dir*_scrollLayer.clip.height)/
t = p*(_barLayer.clip.height - _thumbLayer.clip.height)  
_barLayer.top;
_scrollLayer.vScroll(p);
_thumbLayer.top = t;
if(e.pageX > this.ssLayer.left)
_scrollInt = setInterval("_scrollHJump(" dir "," e.pageX ");", 50);
p = (_scrollLayer.clip.left dir*_scrollLayer.clip.width)/
t = p*(_barLayer.clip.width - _thumbLayer.clip.width)  
_barLayer.left;
_scrollLayer.hScroll(p);
_thumbLayer.left = t;
if(this.parLayer) {
_lastScrolledId = this.parLayer.frame.id;
_dragObject.oTop = _dragObject.top;
_dragObject.oLeft = _dragObject.left;
_dragObject.hOffset = e.pageX - _dragObject.oLeft;
_dragObject.vOffset = e.pageY - _dragObject.oTop;
var pY = e.pageY;
var pX = e.pageX;
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.clip.height;
_dragObject.top = pY;
percentScroll = (pY - _dragObject.spLayer.top) /
(_dragObject.spLayer.clip.height -
_dragObject.clip.height);
_dragObject.parLayer.vScroll(percentScroll);
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.clip.width;
_dragObject.left = pX;
percentScroll = (pX - _dragObject.spLayer.left) /
(_dragObject.spLayer.clip.width -
_dragObject.clip.width);
_dragObject.parLayer.hScroll(percentScroll);
function IWOnError(AMsg, AUrl, ALineNo) {
window.onError = IWOnError;
if (obj.name != null && obj.form && obj.form.name != "HiddenSubmitForm") {
if (obj.name.length > 0) {
var dobj=aSubmitForm.elements[obj.name];
if (obj.type) {
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 ",";
if (obj.type=="checkbox") { dobj.value = obj.checked ? "on" : "off"; }
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);
function NewWindow(URL, Name, Options) {
w=window.open(URL, Name, Options);
function Status(msg) {
window.status=msg;
if (df.value == "On") {
df.value = "Off";
Image.src = GImageCache_CoolCheckBox_False.src;
df.value = "On";
Image.src = GImageCache_CoolCheckBox_True.src;
if (AConfirmation.length == 0) {
if (window.confirm(AConfirmation)) {
if (document.activeElement){
GActiveControl = document.activeElement.id;
if (xSubmitForm.elements[j].type != "hidden") { // Automatically submit all hidden fields
if ( document.getElementsByName(name).length == 0 ) {
xSubmitForm.removeChild(xSubmitForm.elements[j]);
for (j=0; j<xSubmitForm.elements.length; j  ) {
xSubmitForm.elements.IW_Action.value=objname;
xSubmitForm.elements.IW_ActionParam.value=param;
xSubmitForm.submit();
document.getElementById(id).innerHTML = text;
document.all[id].innerHTML = text;
document.getElementById(id).innerHTML  = text;
document.all[id].innerHTML  = text;
function CheckReturnKey(AKey, AName, AValidation) {
if (AKey == 13) {
if(!IWTop().IWHistoryList) {
IWTop().IWHistoryList = new Array();
IWTop().IWHistoryList = IWTop().IWHistoryList.slice(0, HistoryIndex(ALocation));
IWTop().IWHistoryList[IWTop().IWHistoryList.length] = ALocation;
for (i = 0; i < IWTop().IWHistoryList.length; i  ) {
if (IWTop().IWHistoryList[i] == ALocation) {
if (IWTop().IWHistoryList) {
return LRegExp.test(LEdit.value);
var elems=document.getElementsByName(name);
for (i=0;i<elems.length;i  ){
elems[i].checked=false;
FindElem(selected).checked=true;
var elem = document.getElementById(CommentName);
document.write(elem.innerHTML);
return parent.IWTop();
if(arguments.length > 2)
for(var n = 2; n < arguments.length;   n) _params.push(arguments[n]);
return function() { return thatMethod.apply(that,_params); }
return function() { return thatMethod.call(that); }
while (i < this.Fields.length && this.Fields[i] != AFieldName) i  ;
if (i < this.Fields.length) {
return this.Data[this.CurrentRecord][i];
this.CurrentRecord = 0;
this.DoOnChange();
if (this.CurrentRecord < this.Data.length - 1) {
this.CurrentRecord  ;
if (this.CurrentRecord > 0) {
this.CurrentRecord--;
this.CurrentRecord = this.Data.length - 1;
return (this.CurrentRecord == this.Data.length - 1) || (this.Data.length == 0);
return (this.CurrentRecord == 0) || (this.Data.length == 0);
for (i=0; i < this.OnChangeList.length; i   ) {
this.OnChangeList[i].DoOnChange(this);
this.Fields = AFields;
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();
if (a.SortOrder) {
if (a.Value < b.Value)
if (a.Value > b.Value)
for (i = 0; i < id.Rows.length; i  ) {
sortarray[i].row = i;
sortarray[i].Value = id.Rows[i].RowData[ACol];
sortarray[i].SortOrder = id.Cols[ACol].SortOrder;
sortarray.sort(compare);
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();
AID.Cells[ARow][ACol].value = ANewValue;
AID.RenderTable();
for (i = 0; i < AID.Filters.length; i  ) {
if (AID.Filters[i].Col != ACol)
NewFilters[NewFilters.length] = AID.Filters[i];
AID.Filters = NewFilters;
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;
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;
s[sindex  ] = this.TableLook;
// First row is for operation images
s[sindex  ] = this.TitleLook   "<tr>"  
" <IMG width=16 height=16 src="   this.ImgBlank.src   " border=0 align=\"top\" > "  
for (i = 0; i < this.Cols.length; i  ) {
s[sindex  ] = "<td "   this.WrapTitles   ">";
s[sindex  ] = this.TitleLook   "<tr><td>";
" <td "   this.WrapTitles   " width=\"100%\">"   this.Cols[i].Caption   "</TD>"  
" <TD "   this.WrapTitles   "><a href=\"javascript:DoSort("   this.ObjectName   ", "   i   ")\">";
if (this.Cols[i].SortOrder)
s[sindex  ] = "<IMG align=top src="   this.ImgUp.src   " border=0>";
s[sindex  ] = "<IMG align=top src="   this.ImgDown.src   " border=0>";
" </td "   this.WrapTitles   ">"  
s[sindex  ] = this.FilterLook   "<tr><td>";
if (this.Cols[i].FilterValues.length) {
  this.ObjectName   ", "   i   ", this.selectedIndex)\">";
if (this.Cols[i].FilterValue == -1)
for (j = 0; j < this.Cols[i].FilterValues.length; j   ) {
if (this.Cols[i].FilterValue == j) {
s[sindex  ] = "<option selected>"   this.Cols[i].FilterValues[j]   "</option>";
s[sindex  ] = "<option>"   this.Cols[i].FilterValues[j]   "</option>";
var RowStart = "<tr><td width=\"19\">"   this.TitleLook   "<tr>"  
" <IMG width=16 height=16 src="   this.ImgBlank.src   " border=0 align=\"top\" > "  
for (i = 0; i < this.Rows.length; i  ) {
if (this.Rows[i].RowData.length > 0 && !this.Rows[i].Filtered) {
for (j = 0; j < this.Rows[i].RowData.length; j  ) {
if (this.Rows[i].RowData[j] == "") {
s[sindex  ] = "<td>"   this.DataLook   "<tr><td> </td></tr></table></td>";
s[sindex  ] = "<td>"   this.DataLook   "<tr><td>"   this.Rows[i].RowData[j]   "</td></tr></table></td>";
layerWriteAppend(this.DIVName, null, s);
var str = s.join("");
layerWrite(this.DIVName, null, str);
this.Caption = ACaption;
this.FilterValue = -1;
this.FilterValues = new Array();
this.SortOrder = true;
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);
this.WrapTitles = AWrapTitles;
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;
"keydown", "keypress", "keyup", "load",
var iLength = eventList.length;
if (eventList[j] == event.type) break;
var isClick = event.type == "click";
evElement = event.srcElement;
if (evElement.IEEventHandlers == null) {
while (evElement != null && evElement.IEEventHandlers == null) {
evElement = evElement.parentElement;
if (evElement.IEEventHandlers.length > 0) {
iLength = evElement.IEEventHandlers[j].length;
evElement.eventFunc = evElement.IEEventHandlers[j][i];
if (!evElement.eventFunc()) {
var iLen = eventList.length;
if (this.IEEventHandlers[i] == null) {
this.IEEventHandlers[i] = new Array();
eval("if (this.on"   event   " != null) {this.IEEventHandlers[0] = this.on"   event   ";}");
eval("this.on"   event   " = IWEventHandler;");
this.IEEventHandlers[i][this.IEEventHandlers[i].length] = EventHandler;
window.alert('cancel');
window.onCancel
return SubmitClickConfirm(AName, AEvent.offsetX   ','   AEvent.offsetY, ASubmitValidation
var formsLength = document.forms.length;
if (document.forms[i] == aIgnoreForm || document.forms[i] == getSubmitForm()) {
var elemntsLength = document.forms[i].elements.length;
if (objname == document.forms[i].elements[j].name) {
return document.forms[i].elements[j];
var res = document.all[objname];
if (res.length > 0) {
var resLength = res.length;
if (res[i].form != aIgnoreForm) return res[i];
if (res.form != aIgnoreForm) {
return window.SubmitFrame.document.SubmitForm;
return document.SubmitForm;
lp.top = 0;
lp.left = 0;
/*lp.top = lPoint.top   aRoot.offsetTop;
lp.left = lPoint.left   aRoot.offsetLeft;*/
for (i = 0; i < aRoot.children.length; i  ) {
if (isNotClipped(aRoot.children[i])) {
CalculateScrollSize(aRoot.children[i], lScroll, lp);
if (lp.top   aRoot.children[i].offsetTop   aRoot.children[i].offsetHeight > lScroll.Height) {
lScroll.Height = lp.top   aRoot.children[i].offsetTop   aRoot.children[i].offsetHeight;
if (lp.left   aRoot.children[i].offsetLef   aRoot.children[i].offsetWidth > lScroll.Width) {
lScroll.Width = lp.left   aRoot.children[i].offsetLef   aRoot.children[i].offsetWidth;
lScroll.Width = document.body.scrollWidth;
lScroll.Height = document.body.scrollHeight;
var lWidth = document.body.clientWidth;
var lHeight = document.body.clientHeight;
if (lWidth < lScroll.Width) {
lWidth = lScroll.Width;
if (lHeight < lScroll.Height) {
lHeight = lScroll.Height;
IWCLForm.UpdateRects(LNewRect);
for (i = 0; i < ARoot.children.length; i  ) {
SetCursor(ARoot.children[i]);
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.children[i].style.cursor;
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.children[i];
ARoot.children[i].style.cursor = "wait";
this.addEventListener(event, EventHandler, false);
var listLength = eventList.length;
evElement = event.target;
evElement = evElement.parentNode;
listLength = evElement.IEEventHandlers[j].length;
if (!evElement.eventFunc(event)) {
var lforms = window.document.forms;
var iLen = lforms.length;
for (j=lforms[i].elements.length-1; j>=0; --j) {
if (objname==lforms[i].elements[j].name) {
lresult[lresult.length] = lforms[i].elements[j]
if (lresult.length == 0) {
return window.document.getElementById(objname);
if (lresult.length == 1) {
return window.document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
return window.document.forms["SubmitForm"];
return SubmitClickConfirm(ImageCurrentName, (AEvent.layerX)   ','   (AEvent.layerY)
ALink.onmousedown=ImageClick;
for (var i = aElement.childNodes.length-1; i >= 0; --i) {
var node = aElement.childNodes[i];
if (node.offsetTop   node.offsetHeight > lscrollHeight) {
lscrollHeight = node.offsetTop   node.offsetHeight;
if (node.offsetLeft   node.offsetWidth > lscrollWidth) {
lscrollWidth = node.offsetLeft   node.offsetWidth;
var lWidth = window.innerWidth;
var lHeight = window.innerHeight;
/*alert("client("   window.parent.document.body.clientWidth   ","   window.parent.document.body.clientHeight   ")"  " scroll("   window.parent.document.body.scrollWidth   ","   window.parent.document.body.scrollHeight   ")");*/
var lPoint = calcScrollRect(document.body); */
var lscrollWidth = window.document.body.scrollWidth; // js - added window.
var lscrollHeight = window.document.body.scrollHeight; // js - added window.
var lWidth = window.innerWidth - 21;
var lHeight = window.innerHeight - 21;
for (i = ARoot.childNodes.length-1; i >= 0; --i) {
SetCursor(ARoot.childNodes[i]);
if (ARoot.childNodes[i].style) {
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.childNodes[i].style.cursor;
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.childNodes[i];
ARoot.childNodes[i].style.cursor = "wait";
var doc = elem.ownerDocument;
var cs = doc.defaultView.getComputedStyle(elem,'');
var borderLeftPixels = parseInt(cs.borderLeftWidth);
var borderRightPixels = parseInt(cs.borderRightWidth);
var borderTopPixels = parseInt(cs.borderTopWidth);
var borderBottomPixels = parseInt(cs.borderBottomWidth);
var possibleClientWidth = elem.offsetWidth - borderLeftPixels - borderRightPixels;
var possibleClientHeight = elem.offsetHeight - borderTopPixels - borderBottomPixels;
var isHBad = (elem.clientWidth < elem.scrollWidth) && ( elem.scrollWidth <= possibleClientWidth);
var isVBad = (elem.clientHeight < elem.scrollHeight) && ( elem.scrollHeight <= possibleClientHeight);
var oldOverflow = cs.overflow;
elem.style.overflow = "visible";
elem.style.overflow = oldOverflow;
menu.ItemStyle = menu.className;
menu.SelectedItemStyle = "";
menu.addMenuItem = Menu_addMenuItem;
menu.getItemStyle = Menu_getItemStyle;
menu.getSelectedItemStyle= Menu_getSelectedItemStyle;
menu.onmouseover = Menu_onmouseover;
menu.onmouseout = Menu_onmouseout;
menu.onclick = Menu_onclick;
menu.Selected = null;
menu.ParentMenu = null;
menu.findMenuItem = Menu_findMenuItem;
menu.MenuItems = new Array();
menu.getMainMenu = Menu_getMainMenu;
menu.MenuOrientation = -1;
menu.submenuvisble = false;
menu.hideAll = MainMenu_hideAll;
menu.timerid = null;
menu.onmouseover = null;
menu.onmouseout = null;
menu.onclick = null;
if (this.ParentMenu != null) {
return this.ParentMenu.getMainMenu();
if (this.ItemStyle != "") {
return this.ItemStyle;
if (this.ParentMenu != null) {
return this.ParentMenu.getItemStyle();
if (this.SelectedItemStyle != "") {
return this.SelectedItemStyle;
return this.ParentMenu.getSelectedItemStyle();
for (i=0; i < this.MenuItems.length; i  ) {
if (this.MenuItems[i].Id == AId) {
return this.MenuItems[i];
l = this.MenuItems[i].findMenuItem(AId);
this.MenuItems[this.MenuItems.length] = CreateSubMenu(AItemID);
this.MenuItems[this.MenuItems.length - 1].ParentMenu = LocateElement(parent);
return this.MenuItems[this.MenuItems.length - 1];
// var lMainMenu = element.getMainMenu();
// if (element.tagName.toUpperCase() != 'TR') {
Lpoint.X  = element.offsetLeft;
Lpoint.Y  = element.offsetTop;
element = element.offsetParent;
Lpoint.X  = element.offsetLeft;
Lpoint.Y  = element.offsetTop;
var childList = ns6 ? ARoot.childNodes: ARoot.children;
for (i = 0; i < childList.length; i  ) {
if (childList[i].type == "select-one" || childList[i].type == "select-multi") {
if (childList[i].AutoHide) {
if (childList[i].IWHide) {
childList[i].IWHide();
childList[i].style.visibility = "hidden";
childList[i].style.display = "none";
if (childList[i].IWShow) {
childList[i].IWShow();
childList[i].style.visibility = "visible";
childList[i].style.display = "";
if (this.getMainMenu().timerid != null) {
clearTimeout(this.getMainMenu().timerid);
this.getMainMenu().timerid = null;
if (this.ParentMenu.Selected != this) {
var litem = this.ParentMenu.Selected;
if (litem == null && this.getMainMenu().ComboBoxHide) {
HideComboBoxes(document.body);
litem.className = litem.getItemStyle();
litem.ParentMenu.Selected = null;
if (litem.MenuItems.length > 0) {
var lElement = LocateElement(litem.id   "_table");
lElement.style.visibility = "hidden";
lElement.style.display = "none";
litem = litem.Selected;
this.className = this.getSelectedItemStyle();
this.ParentMenu.Selected = this;
if (this.getMainMenu().submenuvisble) {
if (this.MenuItems.length > 0) {
var lElement = LocateElement(this.id   "_table");
lElement.style.visibility = "visible";
lElement.style.display = "";
var lPoint = getPagePosition(this, lElement.offsetParent);
if (this.ParentMenu.MenuOrientation == moHorizontal) {
lElement.style.left = lPoint.X;
lElement.style.top = lPoint.Y   this.offsetHeight;
if (this.ParentMenu.MenuOrientation == moVertical) {
lElement.style.left = lPoint.X   this.offsetWidth;
lElement.style.top = lPoint.Y;
LocateElement(menuId).hideAll()
this.getMainMenu().timerid = setTimeout(delegate(this, hideAll, this.getMainMenu().id), 1500);
this.ParentMenu.Selected = this;
this.className = this.ParentMenu.getSelectedItemStyle();
if (this.ParentMenu == this.getMainMenu()) {
this.getMainMenu().submenuvisble = true;
if (this.MenuItems.length > 0) {
var lElement = LocateElement(this.id   "_table");
lElement.style.visibility = "visible";
lElement.style.display = "";
var lPoint = getPagePosition(this, lElement.offsetParent);
if (this.ParentMenu.MenuOrientation == moHorizontal) {
lElement.style.left = lPoint.X;
lElement.style.top = lPoint.Y   this.offsetHeight;
if (this.ParentMenu.MenuOrientation == moVertical) {
lElement.style.left = lPoint.X   this.offsetWidth;
lElement.style.top = lPoint.Y;
if (this.getMainMenu().id.indexOf("_menu") > 0) {
result = SubmitClickConfirm(this.getMainMenu().id.substring(0, this.getMainMenu().id.indexOf("_menu")), this.id, false, "");
result = SubmitNextFile(this.getMainMenu().id.substring(0, this.getMainMenu().id.indexOf("_menu")), this.id, false, "");
result = SubmitClickConfirm(this.getMainMenu().id, this.id, false, "");
result = SubmitNextFile(this.getMainMenu().id, this.id, false, "");
this.getMainMenu().hideAll();
var litem = this.Selected;
litem.ParentMenu.Selected = null;
this.Selected.className = this.Selected.getItemStyle();
this.Selected = null;
ShowComboBoxes(document.body);
this.submenuvisible = false;
var evLength = eventList.length;
var handlersLength = evElement.IEEventHandlers[j].length;
if (!evElement.eventFunc(event)) { //'event' added
if (document.forms[i] != aIgnoreForm) {
var elemLength = document.forms[i].elements.length;
return document.all[objname];
return document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
/*alert("Size: ("   lWidth   ", "   lHeight   "); Scroll size: ("  lScroll.Width   ", "   lScroll.Height   ");");*/
for (var i = 0; i < ASelect.options.length; i  ) {
if (ASelect.options[i].selected) {
s = s   "*"   ASelect.options[i].value   ";"
s = s   ASelect.options[i].value   ";"
AHidden.value = s;
if (AElement) {AElement.disabled = obj.selectedIndex >= obj.options.length - 1};
if (AElement) {AElement.disabled = obj.selectedIndex == 0};
for (var i= (direction > 0 ? 0 : obj.options.length - 1); i != (direction > 0 ? obj.options.length : -1); i = i   direction)
AFirstOption = obj.options[i];
if (AFirstOption.selected)
if ((i - direction >= 0) & (i - direction < obj.options.length))
ASecondOption = obj.options[i - direction];
if (!ASecondOption.selected)
AElement.disabled = !CanMove(obj, -1);
AElement.disabled = !CanMove(obj, 1);
for (var i= (direction > 0 ? 0 : ASelect.options.length - 1); i != (direction > 0 ? ASelect.options.length : -1); i = i   direction)
AFirstOption = ASelect.options[i];
if (AFirstOption.selected)
if ((i - direction >= 0) & (i - direction < ASelect.options.length))
ASecondOption = ASelect.options[i - direction];
if (!ASecondOption.selected)
AFirstText = AFirstOption.text;
AFirstValue = AFirstOption.value;
ASecondText = ASecondOption.text;
ASecondValue = ASecondOption.value;
ASelect.options[i - direction] = AFirstOption;
ASelect.options[i] = ASecondOption;
AFirstOption.selected = true;
var e=IWTop().LocateElement(AHTMLName);
e.id=AHTMLName   "_INVALID";
e = IWTop().LocateElement(AHTMLName   "_UPDATE");
e.innerHTML=ANewHTML;
"IWTop().SetVisibility(window.parent."   varName   ","   (AVisible ? "true" : "false")   "); \n"  
"IWTop()."   varName   ".OriginalRect = new parent.Rect("   left   ","   top   ","   width   ","   height   "); \n"  
if (document.getElementById)
document.getElementById('locker').style.visibility = 'hidden';
if (document.layers)
document.locker.visibility = 'hidden';
document.all.locker.style.visibility = 'hidden';
IWTop().getElementById('locker').style.visibility = 'hidden';
IWTop().locker.visibility = 'hidden';
IWTop().all.locker.style.visibility = 'hidden';
LLocker = document.getElementById('locker');
LLocker.style.visibility = '';
if (document.locker) {
document.locker.visibility = '';
if (document.all.locker) {
document.all.locker.style.visibility = '';
return event.target;
return event.srcElement;
return element.ownerDocument;
return element.document;
var x = event.clientX   doc.body.scrollLeft;
var y = event.clientY   doc.body.scrollTop;
var top = elem.offsetTop;
var p = elem.offsetParent;
var cs = doc.defaultView.getComputedStyle(p,'');
if( cs.overflow != "visible" ) {
var left = elem.offsetLeft;
left  = borderLeftPixels;
if( cs.overflow == "visible" ) {
left  = p.offsetLeft   borderLeftPixels;
top  = p.offsetTop   borderTopPixels;
left  = p.offsetLeft   (2 * borderLeftPixels);
top  = p.offsetTop   (2 * borderTopPixels);
left  = p.offsetLeft   p.clientLeft;
top  = p.offsetTop   p.clientTop;
p = p.offsetParent;
elem.style.overflow = "auto";
this.divElement = getEventSource(event).parentNode;
this.gripType = gripType;
this.initialMouseAbsX = event.clientX   window.document.body.scrollLeft;
this.initialMouseAbsY = event.clientY   window.document.body.scrollTop;
this.initialHeight = this.divElement.clientHeight
this.initialWidth = this.divElement.clientWidth;
this.initialLeft = getElementOffsetLeft(this.divElement);
this.initialTop = getElementOffsetTop(this.divElement);
var doc = getOwnerDocument(this.divElement);
var cs = doc.defaultView.getComputedStyle(this.divElement,'');
this.initialOverflow = cs.overflow;
this.initialHeight = this.divElement.offsetHeight;
this.initialWidth = this.divElement.offsetWidth;
this.initialLeft = this.divElement.offsetLeft;
this.initialTop = this.divElement.offsetTop;
if( opera_browser ) {
this.initialOverflowX = this.divElement.style.overflowX;
this.initialOverflowY = this.divElement.style.overflowY;
this.initialOverflowX = this.divElement.currentStyle.overflowX;
this.initialOverflowY = this.divElement.currentStyle.overflowY;
document.addEventListener("mousemove", DocumentMouseMove, true);
document.addEventListener("mouseup", DocumentMouseUp, true);
window.document.attachEvent( "onmousemove", DocumentMouseMove );
window.document.attachEvent( "onmouseup", DocumentMouseUp );
this.divElement.style.overflow = "hidden";
this.divElement.style.overflowX = "hidden";
this.divElement.style.overflowY = "hidden";
SplitterInfo.prototype.doMouseMove = function (event) {
var mouseDevX = mouseAbsLocation.x - this.initialMouseAbsX;
var mouseDevY = mouseAbsLocation.y - this.initialMouseAbsY;
switch( this.gripType ) {
var newWidth = this.initialWidth - mouseDevX;
if( newWidth > this.divElement.offsetParent.scrollWidth )
this.divElement.style.left = this.initialLeft   mouseDevX;
this.divElement.style.width = newWidth;
var widthDev = this.divElement.offsetWidth - this.initialWidth;
var newLeft = this.initialLeft - widthDev;
this.divElement.style.left = newLeft;
changeData = this.divElement.offsetLeft   ","   this.divElement.offsetWidth;
var newHeight = this.initialHeight - mouseDevY;
if( newHeight > this.divElement.offsetParent.scrollHeight )
this.divElement.style.top = this.initialTop   mouseDevY;
this.divElement.style.height = newHeight;
var heightDev = this.divElement.offsetHeight - this.initialHeight;
var newTop = this.initialTop - heightDev;
this.divElement.style.top = newTop;
changeData = this.divElement.offsetTop   ","   this.divElement.offsetHeight;
var newHeight = this.initialHeight   mouseDevY;
var newWidth = this.initialWidth   mouseDevX;
removeNS6Scrollbars(this.divElement);
removeNS6Scrollbars(this.divElement.offsetParent);
var newRect = new Rect(this.divElement.offsetLeft, this.divElement.offsetTop,this.divElement.offsetWidth, this.divElement.offsetHeight);
this.divElement.SetRect(newRect);
this.divElement.UpdateRects(newRect);
var owner = this.divElement.Owner;
owner.UpdateRects(owner.Rect);
var hiddenInput = IWTop().FindElem( this.divElement.id   '_data' );
hiddenInput.value = "";
hiddenInput.value = changeData;
SplitterInfo.prototype.doMouseUp = function (event) {
this.divElement.style.overflow = this.initialOverflow;
this.divElement.style.overflowX = this.initialOverflowX;
this.divElement.style.overflowY = this.initialOverflowY;
document.removeEventListener("mousemove", DocumentMouseMove, true);
document.removeEventListener("mouseup", DocumentMouseUp, true);
window.document.detachEvent( "onmousemove", DocumentMouseMove );
window.document.detachEvent( "onmouseup", DocumentMouseUp );
var gripAbsTop = divAbsLocation.y   divElem.offsetHeight - gripSize;
var gripAbsLeft = divAbsLocation.x   divElem.offsetWidth - gripSize;
divElem.style.cursor = "n-resize";
divElem.style.cursor = "w-resize";
divElem.style.cursor = "auto";
GSplitterInfo.doMouseMove(event);
GSplitterInfo.doMouseUp(event);
// TreeView Support
inputelement.value = escape(value);
if (inputelement.value != null) {
return unescape(inputelement.value);
if (AParent.Childs) {
ScanTree(AParent.Childs);
AParent.Childs = null;
AParent.State = null;
AParent.Name = null;
AParent.element = null;
AParent.TreeView = null;
AParent = AParent.Next;
lp.Next = null;
this.Container = null;
this.OpenTreeItem = OpenTreeItem;
this.CloseTreeItem = CloseTreeItem;
this.CloseAll = CloseAll;
this.ExpandAll = ExpandAll;
FreeTree(this.Items);
if (this.OldRelease != null) {
this.OldRelease();
ATreeView.OpenTreeItem = OpenTreeItem;
ATreeView.CloseTreeItem = CloseTreeItem;
ATreeView.CloseAll = CloseAll;
ATreeView.ExpandAll = ExpandAll;
ATreeView.Container = LocateElement(AContainerName);
ATreeView.OldRelease = ATreeView.IWRelease;
ATreeView.IWRelease = IWTree_Release;
ScanTree(ATreeView.Items, false);
if (ATreeView.Container != null) {
ATreeView.Container.style.width = 4096;
ATreeView.Container.style.height = 4096;
var LItem = ATreeView.Items;
if (LMax < LItem.element.offsetWidth) {
LMax = LItem.element.offsetWidth;
LHeight = LHeight   LItem.element.offsetHeight;
LItem = LItem.Next;
ATreeView.Container.style.width = LMax;
ATreeView.Container.style.height = LHeight;
ATreeView.OriginalRect = CreateRect(ATreeView);
ATreeView.Rect = CreateRect(ATreeView);
var status = getCookie(ATreeView.id);
lItemID = status.substring(0, status.indexOf(",")   1);
status = status.substring(lItemID.length);
lItemID = lItemID.substring(0, lItemID.indexOf(","));
var Item = FindItem(ATreeView.Items, lItemID);
Item.State = true;
this.State = false;
this.Next = ANext;
this.Childs = AChild;
this.Name = AName;
this.element = LocateElement(AName);
this.TreeView = ATreeView;
// this.className = null;
if (LItem.Name == AItemName) break;
if (LItem.Childs) {
LL = FindItem(LItem.Childs, AItemName);
LItem = LItem.Next;
var element = LocateElement(LItem.Name);
element.style.visibility = "visible";
element.style.display = "";
if (LItem.Childs != null && LItem.State) {
ShowItemChilds(LItem.Childs);
var LItem = this.Items;
LItem.State = true;
var statecookie = getCookie(LItem.TreeView.id)   ","   LItem.Name   ",";
setCookie(LItem.TreeView.id, statecookie);
var element = LocateElement("plusImg_"   LItem.Name);
element.style.visibility = "hidden";
element.style.display = "none";
element = LocateElement("minusImg_"   LItem.Name);
element.style.visibility = "visible";
element.style.display = "";
ShowItemChilds(LItem.Childs);
this.Container.style.width = 4096;
this.Container.style.height = 4096;
LItem = this.Items;
this.Container.style.width = LMax;
this.Container.style.height = LHeight;
element.style.visibility = "hidden";
element.style.display = "none";
HideItemChilds(LItem.Childs);
LItem.State = false;
var statecookie = getCookie(LItem.TreeView.id);
var search = ","   LItem.Name   ",";
var offset = statecookie.indexOf(search);
var oldstate = statecookie.substring(0, offset);
var statecookie = oldstate   statecookie.substring(offset   search.length, statecookie.length);
setCookie(LItem.TreeView.id, statecookie);
HideItemChilds(LItem.Childs);
LMax = LItem.element.offsetWidth;
LHeight = LItem.element.offsetHeight;
// this.showTreeView();
LItem.State = value;
ScanTree(LItem.Childs, value);
ScanTree(this.Items, true);
ScanTree(this.Items, false);
/* Prototype JavaScript framework, version 1.4.0
* (c) 2005 Sam Stephenson <[email protected]>
* For details, see the Prototype web site: hXXp://prototype.conio.net/
Version: '1.4.0',
this.initialize.apply(this, arguments);
Object.extend = function(destination, source) {
Object.inspect = function(object) {
return object.inspect ? object.inspect() : object.toString();
Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
return __method.apply(object, args.concat($A(arguments)));
Function.prototype.bindAsEventListener = function(object) {
return __method.call(object, event || window.event);
Object.extend(Number.prototype, {
var digits = this.toString(16);
$R(0, this, true).each(iterator);
for (var i = 0; i < arguments.length; i  ) {
var PeriodicalExecuter = Class.create();
PeriodicalExecuter.prototype = {
this.callback = callback;
this.frequency = frequency;
this.currentlyExecuting = false;
this.registerCallback();
setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
if (!this.currentlyExecuting) {
this.currentlyExecuting = true;
this.callback();
this.currentlyExecuting = false;
for (var i = 0; i < arguments.length; i  ) {
element = document.getElementById(element);
if (arguments.length == 1)
elements.push(element);
Object.extend(String.prototype, {
return this.replace(/<\/?[^>] >/gi, '');
return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
return (scriptTag.match(matchOne) || ['', ''])[1];
return this.extractScripts().map(eval);
var div = document.createElement('div');
var text = document.createTextNode(this);
div.appendChild(text);
return div.innerHTML;
div.innerHTML = this.stripTags();
return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
var pairs = this.match(/^\??(.*)$/)[1].split('&');
return pairs.inject({}, function(params, pairString) {
var pair = pairString.split('=');
return this.split('');
var oStringList = this.split('-');
if (oStringList.length == 1) return oStringList[0];
var camelizedString = this.indexOf('-') == 0
? oStringList[0].charAt(0).toUpperCase()   oStringList[0].substring(1)
for (var i = 1, len = oStringList.length; i < len; i  ) {
camelizedString  = s.charAt(0).toUpperCase()   s.substring(1);
return "'"   this.replace('\\', '\\\\').replace("'", '\\\'')   "'";
String.prototype.parseQuery = String.prototype.toQueryParams;
this.each(function(value, index) {
results.push(iterator(value, index));
results.push(value);
var stringValue = value.toString();
if (stringValue.match(pattern))
results.push((iterator || Prototype.K)(value, index));
this.each(function(value) {
var args = $A(arguments).slice(1);
return this.collect(function(value) {
return value[method].apply(value, args);
trues : falses).push(value);
results.push(value[property]);
return this.collect(function(value, index) {
}).sort(function(left, right) {
var a = left.criteria, b = right.criteria;
}).pluck('value');
return this.collect(Prototype.K);
if (typeof args.last() == 'function')
iterator = args.pop();
var collections = [this].concat(args).map($A);
return this.map(function(value, index) {
iterator(value = collections.pluck(index));
return '#<Enumerable:'   this.toArray().inspect()   '>';
Object.extend(Enumerable, {
map: Enumerable.collect,
find: Enumerable.detect,
select: Enumerable.findAll,
member: Enumerable.include,
entries: Enumerable.toArray
var $A = Array.from = function(iterable) {
if (iterable.toArray) {
return iterable.toArray();
for (var i = 0; i < iterable.length; i  )
results.push(iterable[i]);
Object.extend(Array.prototype, Enumerable);
Array.prototype._reverse = Array.prototype.reverse;
Object.extend(Array.prototype, {
for (var i = 0; i < this.length; i  )
this.length = 0;
return this[this.length - 1];
return this.select(function(value) {
return this.inject([], function(array, value) {
return array.concat(value.constructor == Array ?
value.flatten() : [value]);
return !values.include(value);
return (inline !== false ? this : this.toArray())._reverse();
for (var i = 0; i < this.length - 1; i  )
this.length--;
return '['   this.map(Object.inspect).join(', ')   ']';
for (key in this) {
var value = this[key];
var pair = [key, value];
pair.key = key;
pair.value = value;
keys: function() {
return this.pluck('key');
return this.pluck('value');
return $H(hash).inject($H(this), function(mergedHash, pair) {
mergedHash[pair.key] = pair.value;
return this.map(function(pair) {
return pair.map(encodeURIComponent).join('=');
}).join('&');
return '#<Hash:{'   this.map(function(pair) {
return pair.map(Object.inspect).join(': ');
}).join(', ')   '}>';
var hash = Object.extend({}, object || {});
Object.extend(hash, Enumerable);
Object.extend(hash, Hash);
ObjectRange = Class.create();
Object.extend(ObjectRange.prototype, Enumerable);
Object.extend(ObjectRange.prototype, {
this.start = start;
this.end = end;
this.exclusive = exclusive;
var value = this.start;
value = value.succ();
} while (this.include(value));
if (value < this.start)
if (this.exclusive)
return value < this.end;
return value <= this.end;
getTransport: function() {
return Try.these(
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')},
function() {return new XMLHttpRequest()}
Ajax.Responders = {
this.responders._each(iterator);
if (!this.include(responderToAdd))
this.responders.push(responderToAdd);
this.responders = this.responders.without(responderToRemove);
dispatch: function(callback, request, transport, json) {
this.each(function(responder) {
responder[callback].apply(responder, [request, transport, json]);
Object.extend(Ajax.Responders, Enumerable);
Ajax.Responders.register({
Ajax.activeRequestCount  ;
Ajax.activeRequestCount--;
Ajax.Base = function() {};
Ajax.Base.prototype = {
this.options = {
Object.extend(this.options, options || {});
return this.transport.status == undefined
|| this.transport.status == 0
|| (this.transport.status >= 200 && this.transport.status < 300);
return !this.responseIsSuccess();
Ajax.Request = Class.create();
Ajax.Request.Events =
Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
initialize: function(url, options) {
this.transport = Ajax.getTransport();
this.setOptions(options);
this.request(url);
request: function(url) {
var parameters = this.options.parameters || '';
if (parameters.length > 0) parameters  = '&_=';
this.url = url;
if (this.options.method == 'get' && parameters.length > 0)
this.url  = (this.url.match(/\?/) ? '&' : '?')   parameters;
Ajax.Responders.dispatch('onCreate', this, this.transport);
this.transport.open(this.options.method, this.url,
this.options.asynchronous);
if (this.options.asynchronous) {
this.transport.onreadystatechange = this.onStateChange.bind(this);
setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
this.setRequestHeaders();
var body = this.options.postBody ? this.options.postBody : parameters;
this.transport.send(this.options.method == 'post' ? body : null);
this.dispatchException(e);
['X-Requested-With', 'XMLHttpRequest',
'X-Prototype-Version', Prototype.Version];
if (this.options.method == 'post') {
requestHeaders.push('Content-type',
'application/x-www-form-urlencoded');
/* Force "Connection: close" for Mozilla browsers to work around
* a bug where XMLHttpReqeuest sends an incorrect Content-length
* header. See Mozilla Bugzilla #246651.
if (this.transport.overrideMimeType)
requestHeaders.push('Connection', 'close');
if (this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
for (var i = 0; i < requestHeaders.length; i  = 2)
this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i 1]);
var readyState = this.transport.readyState;
this.respondToReadyState(this.transport.readyState);
return this.transport.getResponseHeader(name);
return eval(this.header('X-JSON'));
return eval(this.transport.responseText);
var event = Ajax.Request.Events[readyState];
var transport = this.transport, json = this.evalJSON();
(this.options['on'   this.transport.status]
|| this.options['on'   (this.responseIsSuccess() ? 'Success' : 'Failure')]
|| Prototype.emptyFunction)(transport, json);
this.dispatchException(e);
if ((this.header('Content-type') || '').match(/^text\/javascript/i))
this.evalResponse();
(this.options['on'   event] || Prototype.emptyFunction)(transport, json);
Ajax.Responders.dispatch('on'   event, this, transport, json);
this.transport.onreadystatechange = Prototype.emptyFunction;
(this.options.onException || Prototype.emptyFunction)(this, exception);
Ajax.Responders.dispatch('onException', this, exception);
Ajax.Updater = Class.create();
Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
initialize: function(container, url, options) {
this.containers = {
success: container.success ? $(container.success) : $(container),
failure: container.failure ? $(container.failure) :
(container.success ? null : $(container))
var onComplete = this.options.onComplete || Prototype.emptyFunction;
this.options.onComplete = (function(transport, object) {
this.updateContent();
onComplete(transport, object);
}).bind(this);
var receiver = this.responseIsSuccess() ?
this.containers.success : this.containers.failure;
var response = this.transport.responseText;
if (!this.options.evalScripts)
response = response.stripScripts();
if (this.options.insertion) {
new this.options.insertion(receiver, response);
Element.update(receiver, response);
if (this.responseIsSuccess()) {
if (this.onComplete)
setTimeout(this.onComplete.bind(this), 10);
Ajax.PeriodicalUpdater = Class.create();
Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
this.onComplete = this.options.onComplete;
this.frequency = (this.options.frequency || 2);
this.decay = (this.options.decay || 1);
this.updater = {};
this.container = container;
this.url = url;
this.start();
this.options.onComplete = this.updateComplete.bind(this);
this.onTimerEvent();
this.updater.onComplete = undefined;
clearTimeout(this.timer);
(this.onComplete || Prototype.emptyFunction).apply(this, arguments);
if (this.options.decay) {
this.decay = (request.responseText == this.lastText ?
this.decay * this.options.decay : 1);
this.lastText = request.responseText;
this.timer = setTimeout(this.onTimerEvent.bind(this),
this.decay * this.frequency * 1000);
this.updater = new Ajax.Updater(this.container, this.url, this.options);
document.getElementsByClassName = function(className, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName('*');
return $A(children).inject([], function(elements, child) {
if (child.className.match(new RegExp("(^|\\s)"   className   "(\\s|$)")))
elements.push(child);
if (!window.Element) {
Object.extend(Element, {
return $(element).style.display != 'none';
Element[Element.visible(element) ? 'hide' : 'show'](element);
element.style.display = 'none';
element.style.display = '';
element.parentNode.removeChild(element);
$(element).innerHTML = html.stripScripts();
setTimeout(function() {html.evalScripts()}, 10);
return element.offsetHeight;
return new Element.ClassNames(element);
return Element.classNames(element).include(className);
return Element.classNames(element).add(className);
return Element.classNames(element).remove(className);
for (var i = 0; i < element.childNodes.length; i  ) {
var node = element.childNodes[i];
if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
Element.remove(node);
return $(element).innerHTML.match(/^\s*$/);
var x = element.x ? element.x : element.offsetLeft,
y = element.y ? element.y : element.offsetTop;
window.scrollTo(x, y);
var value = element.style[style.camelize()];
if (document.defaultView && document.defaultView.getComputedStyle) {
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(style) : null;
} else if (element.currentStyle) {
value = element.currentStyle[style.camelize()];
if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
if (Element.getStyle(element, 'position') == 'static') value = 'auto';
element.style[name.camelize()] = style[name];
if (Element.getStyle(element, 'display') != 'none')
return {width: element.offsetWidth, height: element.offsetHeight};
var els = element.style;
var originalVisibility = els.visibility;
var originalPosition = els.position;
els.visibility = 'hidden';
els.position = 'absolute';
els.display = '';
var originalWidth = element.clientWidth;
var originalHeight = element.clientHeight;
els.display = 'none';
els.position = originalPosition;
els.visibility = originalVisibility;
var pos = Element.getStyle(element, 'position');
element.style.position = 'relative';
// Opera returns the offset relative to the positioning context, when an
if (window.opera) {
element.style.top = 0;
element.style.left = 0;
element.style.position =
element.style.top =
element.style.left =
element.style.bottom =
element.style.right = '';
element._overflow = element.style.overflow;
if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
element.style.overflow = 'hidden';
element.style.overflow = element._overflow;
Toggle.display = Element.toggle;
Abstract.Insertion = function(adjacency) {
this.adjacency = adjacency;
Abstract.Insertion.prototype = {
this.element = $(element);
this.content = content.stripScripts();
if (this.adjacency && this.element.insertAdjacentHTML) {
this.element.insertAdjacentHTML(this.adjacency, this.content);
if (this.element.tagName.toLowerCase() == 'tbody') {
this.insertContent(this.contentFromAnonymousTable());
this.range = this.element.ownerDocument.createRange();
if (this.initializeRange) this.initializeRange();
this.insertContent([this.range.createContextualFragment(this.content)]);
setTimeout(function() {content.evalScripts()}, 10);
div.innerHTML = '<table><tbody>'   this.content   '</tbody></table>';
return $A(div.childNodes[0].childNodes[0].childNodes);
Insertion.Before = Class.create();
Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
this.range.setStartBefore(this.element);
fragments.each((function(fragment) {
this.element.parentNode.insertBefore(fragment, this.element);
}).bind(this));
Insertion.Top = Class.create();
Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
this.range.selectNodeContents(this.element);
this.range.collapse(true);
fragments.reverse(false).each((function(fragment) {
this.element.insertBefore(fragment, this.element.firstChild);
Insertion.Bottom = Class.create();
Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
this.range.collapse(this.element);
this.element.appendChild(fragment);
Insertion.After = Class.create();
Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
this.range.setStartAfter(this.element);
this.element.parentNode.insertBefore(fragment,
this.element.nextSibling);
Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
this.element.className.split(/\s /).select(function(name) {
return name.length > 0;
this.element.className = className;
if (this.include(classNameToAdd)) return;
this.set(this.toArray().concat(classNameToAdd).join(' '));
if (!this.include(classNameToRemove)) return;
this.set(this.select(function(className) {
}).join(' '));
return this.toArray().join(' ');
Object.extend(Element.ClassNames.prototype, Enumerable);
for (var i = 0; i < arguments.length; i  )
$(arguments[i]).value = '';
$(element).focus();
if ($(arguments[i]).value == '') return false;
$(element).select();
element.focus();
if (element.select)
element.select();
var elements = Form.getElements($(form));
for (var i = 0; i < elements.length; i  ) {
var queryComponent = Form.Element.serialize(elements[i]);
queryComponents.push(queryComponent);
return queryComponents.join('&');
for (tagName in Form.Element.Serializers) {
var tagElements = form.getElementsByTagName(tagName);
for (var j = 0; j < tagElements.length; j  )
elements.push(tagElements[j]);
var inputs = form.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i  ) {
if ((typeName && input.type != typeName) ||
(name && input.name != name))
matchingInputs.push(input);
var elements = Form.getElements(form);
element.blur();
element.disabled = 'true';
element.disabled = '';
return Form.getElements(form).find(function(element) {
return element.type != 'hidden' && !element.disabled &&
['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
Field.activate(Form.findFirstElement(form));
$(form).reset();
Form.Element = {
var method = element.tagName.toLowerCase();
var parameter = Form.Element.Serializers[method](element);
var key = encodeURIComponent(parameter[0]);
if (key.length == 0) return;
if (parameter[1].constructor != Array)
return parameter[1].map(function(value) {
return key   '='   encodeURIComponent(value);
}).join('&');
Form.Element.Serializers = {
switch (element.type.toLowerCase()) {
case 'password':
return Form.Element.Serializers.textarea(element);
return Form.Element.Serializers.inputSelector(element);
if (element.checked)
return [element.name, element.value];
return [element.name, element.value];
return Form.Element.Serializers[element.type == 'select-one' ?
var value = '', opt, index = element.selectedIndex;
opt = element.options[index];
value = opt.value;
value = opt.text;
return [element.name, value];
for (var i = 0; i < element.length; i  ) {
var opt = element.options[i];
if (opt.selected) {
var optValue = opt.value;
optValue = opt.text;
value.push(optValue);
var $F = Form.Element.getValue;
Abstract.TimedObserver = function() {}
Abstract.TimedObserver.prototype = {
this.element = $(element);
this.callback = callback;
this.lastValue = this.getValue();
var value = this.getValue();
if (this.lastValue != value) {
this.callback(this.element, value);
this.lastValue = value;
Form.Element.Observer = Class.create();
Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
return Form.Element.getValue(this.element);
Form.Observer = Class.create();
Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
return Form.serialize(this.element);
Abstract.EventObserver = function() {}
Abstract.EventObserver.prototype = {
this.element = $(element);
if (this.element.tagName.toLowerCase() == 'form')
this.registerFormCallbacks();
this.registerCallback(this.element);
var elements = Form.getElements(this.element);
for (var i = 0; i < elements.length; i  )
this.registerCallback(elements[i]);
if (element.type) {
switch (element.type.toLowerCase()) {
Event.observe(element, 'click', this.onElementEvent.bind(this));
case 'password':
Event.observe(element, 'change', this.onElementEvent.bind(this));
Form.Element.EventObserver = Class.create();
Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
Form.EventObserver = Class.create();
Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
if (!window.Event) {
Object.extend(Event, {
KEY_BACKSPACE: 8,
KEY_TAB: 9,
KEY_RETURN: 13,
KEY_ESC: 27,
KEY_LEFT: 37,
KEY_UP: 38,
KEY_RIGHT: 39,
KEY_DOWN: 40,
KEY_DELETE: 46,
return event.target || event.srcElement;
return (((event.which) && (event.which == 1)) ||
((event.button) && (event.button == 1)));
return event.pageX || (event.clientX  
(document.documentElement.scrollLeft || document.body.scrollLeft));
return event.pageY || (event.clientY  
(document.documentElement.scrollTop || document.body.scrollTop));
if (event.preventDefault) {
event.preventDefault();
event.stopPropagation();
event.returnValue = false;
event.cancelBubble = true;
var element = Event.element(event);
while (element.parentNode && (!element.tagName ||
(element.tagName.toUpperCase() != tagName.toUpperCase())))
element = element.parentNode;
if (!this.observers) this.observers = [];
if (element.addEventListener) {
this.observers.push([element, name, observer, useCapture]);
element.addEventListener(name, observer, useCapture);
} else if (element.attachEvent) {
element.attachEvent('on'   name, observer);
if (!Event.observers) return;
for (var i = 0; i < Event.observers.length; i  ) {
Event.stopObserving.apply(this, Event.observers[i]);
Event.observers[i][0] = null;
Event.observers = false;
if (name == 'keypress' &&
(navigator.appVersion.match(/Konqueror|Safari|KHTML/)
|| element.attachEvent))
name = 'keydown';
|| element.detachEvent))
if (element.removeEventListener) {
element.removeEventListener(name, observer, useCapture);
} else if (element.detachEvent) {
element.detachEvent('on'   name, observer);
Event.observe(window, 'unload', Event.unloadCache, false);
// set to true if needed, warning: firefox performance problems
this.deltaX = window.pageXOffset
|| document.documentElement.scrollLeft
|| document.body.scrollLeft
this.deltaY = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop
valueT  = element.scrollTop || 0;
valueL  = element.scrollLeft || 0;
valueT  = element.offsetTop || 0;
valueL  = element.offsetLeft || 0;
element = element.offsetParent;
p = Element.getStyle(element, 'position');
if (element.offsetParent) return element.offsetParent;
if (element == document.body) return element;
while ((element = element.parentNode) && element != document.body)
if (Element.getStyle(element, 'position') != 'static')
return document.body;
if (this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element, x, y);
this.xcomp = x;
this.ycomp = y;
this.offset = this.cumulativeOffset(element);
return (y >= this.offset[1] &&
y < this.offset[1]   element.offsetHeight &&
x >= this.offset[0] &&
x < this.offset[0]   element.offsetWidth);
var offsetcache = this.realOffset(element);
this.xcomp = x   offsetcache[0] - this.deltaX;
this.ycomp = y   offsetcache[1] - this.deltaY;
return (this.ycomp >= this.offset[1] &&
this.ycomp < this.offset[1]   element.offsetHeight &&
this.xcomp >= this.offset[0] &&
this.xcomp < this.offset[0]   element.offsetWidth);
return ((this.offset[1]   element.offsetHeight) - this.ycomp) /
element.offsetHeight;
return ((this.offset[0]   element.offsetWidth) - this.xcomp) /
element.offsetWidth;
target.style.position = 'absolute';
var offsets = this.cumulativeOffset(source);
target.style.top = offsets[1]   'px';
target.style.left = offsets[0]   'px';
target.style.width = source.offsetWidth   'px';
target.style.height = source.offsetHeight   'px';
if (element.offsetParent==document.body)
if (Element.getStyle(element,'position')=='absolute') break;
} while (element = element.offsetParent);
valueT -= element.scrollTop || 0;
valueL -= element.scrollLeft || 0;
} while (element = element.parentNode);
var options = Object.extend({
var p = Position.page(source);
if (Element.getStyle(target,'position') == 'absolute') {
parent = Position.offsetParent(target);
delta = Position.page(parent);
if (parent == document.body) {
delta[0] -= document.body.offsetLeft;
delta[1] -= document.body.offsetTop;
if(options.setLeft) target.style.left = (p[0] - delta[0]   options.offsetLeft)   'px';
if(options.setTop) target.style.top = (p[1] - delta[1]   options.offsetTop)   'px';
if(options.setWidth) target.style.width = source.offsetWidth   'px';
if(options.setHeight) target.style.height = source.offsetHeight   'px';
if (element.style.position == 'absolute') return;
Position.prepare();
var offsets = Position.positionedOffset(element);
var width = element.clientWidth;
var height = element.clientHeight;
element._originalLeft = left - parseFloat(element.style.left || 0);
element._originalTop = top - parseFloat(element.style.top || 0);
element._originalWidth = element.style.width;
element._originalHeight = element.style.height;
element.style.position = 'absolute';
element.style.top = top   'px';;
element.style.left = left   'px';;
element.style.width = width   'px';;
element.style.height = height   'px';;
if (element.style.position == 'relative') return;
element.style.position = 'relative';
var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
element.style.top = top   'px';
element.style.left = left   'px';
element.style.height = element._originalHeight;
element.style.width = element._originalWidth;
// positioned. For performance reasons, redefine Position.cumulativeOffset for
// KHTML/WebKit only.
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
Position.cumulativeOffset = function(element) {
if (element.offsetParent == document.body)
if (Element.getStyle(element, 'position') == 'absolute') break;
* hXXp://VVV.apache.org/licenses/LICENSE-2.0
//-------------------- rico.js
Version: '1.1.2',
prototypeVersion: parseFloat(Prototype.Version.split(".")[0]   "."   Prototype.Version.split(".")[1])
if((typeof Prototype=='undefined') || Rico.prototypeVersion < 1.3)
Rico.ArrayExtensions = new Array();
if (Object.prototype.extend) {
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
if (Array.prototype.push) {
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.push;
if (!Array.prototype.remove) {
Array.prototype.remove = function(dx) {
if( isNaN(dx) || dx > this.length )
for( var i=0,n=0; i<this.length; i   )
this.length-=1;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.remove;
if (!Array.prototype.removeItem) {
Array.prototype.removeItem = function(item) {
for ( var i = 0 ; i < this.length ; i   )
this.remove(i);
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.removeItem;
if (!Array.prototype.indices) {
Array.prototype.indices = function() {
for ( var i = 0 ; i < Rico.ArrayExtensions.length ; i   ) {
if ( this[index] == Rico.ArrayExtensions[i] ) {
indexArray[ indexArray.length ] = index;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.indices;
// Create the loadXML method and xml getter for Mozilla
if ( window.DOMParser &&
window.XMLSerializer &&
window.Node && Node.prototype && Node.prototype.__defineGetter__ ) {
if (!Document.prototype.loadXML) {
Document.prototype.loadXML = function (s) {
var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
while (this.hasChildNodes())
this.removeChild(this.lastChild);
for (var i = 0; i < doc2.childNodes.length; i  ) {
this.appendChild(this.importNode(doc2.childNodes[i], true));
Document.prototype.__defineGetter__( "xml",
return (new XMLSerializer()).serializeToString(this);
document.getElementsByTagAndClassName = function(tagName, className) {
var children = document.getElementsByTagName(tagName) || document.all;
for (var i = 0; i < children.length; i  ) {
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j  ) {
elements.push(child);
//-------------------- ricoAccordion.js
Rico.Accordion = Class.create();
Rico.Accordion.prototype = {
this.container = $(container);
this.lastExpandedTab = null;
this.accordionTabs = new Array();
this.setOptions(options);
this.container.style.borderBottom = '1px solid '   this.options.borderColor;
if (this.options.onLoadShowTab >= this.accordionTabs.length)
this.options.onLoadShowTab = 0;
for ( var i=0 ; i < this.accordionTabs.length ; i   )
if (i != this.options.onLoadShowTab){
this.accordionTabs[i].collapse();
this.accordionTabs[i].content.style.display = 'none';
this.lastExpandedTab = this.accordionTabs[this.options.onLoadShowTab];
if (this.options.panelHeight == 'auto'){
var tabToCheck = (this.options.onloadShowTab === 0)? 1 : 0;
var titleBarSize = parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[tabToCheck].titleBar, 'height'));
titleBarSize = this.accordionTabs[tabToCheck].titleBar.offsetHeight;
var totalTitleBarSize = this.accordionTabs.length * titleBarSize;
var parentHeight = parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode, 'height'));
parentHeight = this.container.parentNode.offsetHeight;
this.options.panelHeight = parentHeight - totalTitleBarSize-2;
this.lastExpandedTab.content.style.height = this.options.panelHeight   "px";
this.lastExpandedTab.showExpanded();
this.lastExpandedTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
this.options = {
Object.extend(this.options, options || {});
var doAnimate = arguments.length == 1 ? true : animate;
this.showTab( this.accordionTabs[anIndex], doAnimate );
if ( this.lastExpandedTab == accordionTab )
if ( this.options.onHideTab )
this.options.onHideTab(this.lastExpandedTab);
this.lastExpandedTab.showCollapsed();
var lastExpandedTab = this.lastExpandedTab;
this.lastExpandedTab.content.style.height = (this.options.panelHeight - 1)   'px';
accordionTab.content.style.display = '';
accordionTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
new Rico.Effect.AccordionSize( this.lastExpandedTab.content,
accordionTab.content,
this.options.panelHeight,
100, 10,
{ complete: function() {accordion.showTabDone(lastExpandedTab)} } );
this.lastExpandedTab = accordionTab;
this.lastExpandedTab.content.style.height = "1px";
accordionTab.content.style.height = this.options.panelHeight   "px";
this.showTabDone(lastExpandedTab);
collapsedTab.content.style.display = 'none';
if ( this.options.onShowTab )
this.options.onShowTab(this.lastExpandedTab);
var panels = this._getDirectChildrenByTag(this.container, 'DIV');
for ( var i = 0 ; i < panels.length ; i   ) {
if ( tabChildren.length != 2 )
this.accordionTabs.push( new Rico.Accordion.Tab(this,tabTitleBar,tabContentBox) );
var allKids = e.childNodes;
for( var i = 0 ; i < allKids.length ; i   )
if ( allKids[i] && allKids[i].tagName && allKids[i].tagName == tagName )
kids.push(allKids[i]);
Rico.Accordion.Tab = Class.create();
Rico.Accordion.Tab.prototype = {
this.accordion = accordion;
this.titleBar = titleBar;
this.content = content;
this.showCollapsed();
this.content.style.height = "1px";
this.expanded = false;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.titleBar.style.fontWeight = this.accordion.options.collapsedFontWeight;
this.content.style.overflow = "hidden";
this.expanded = true;
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.content.style.overflow = "auto";
if ( this.accordion.lastExpandedTab == this )
this.accordion.showTab(this);
this.titleBar.style.backgroundColor = this.accordion.options.hoverBg;
this.titleBar.style.color = this.accordion.options.hoverTextColor;
if ( this.expanded ) {
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.content.style.border = "1px solid "   this.accordion.options.borderColor;
this.content.style.borderTopWidth = "0px";
this.content.style.borderBottomWidth = "0px";
this.content.style.margin = "0px";
this.titleBar.onclick = this.titleBarClicked.bindAsEventListener(this);
this.titleBar.onmouseover = this.hover.bindAsEventListener(this);
this.titleBar.onmouseout = this.unhover.bindAsEventListener(this);
//-------------------- ricoAjaxEngine.js
Rico.AjaxEngine = Class.create();
Rico.AjaxEngine.prototype = {
this.ajaxElements = new Array();
this.ajaxObjects = new Array();
this.requestURLS = new Array();
this.options = {};
this.ajaxElements[anId] = anElement;
this.ajaxObjects[anId] = anObject;
registerRequest: function (requestLogicalName, requestURL) {
this.requestURLS[requestLogicalName] = requestURL;
if ( arguments.length >= 2 )
this.sendRequestWithData(requestName, null, options);
var requestURL = this.requestURLS[requestName];
if ( requestURL == null )
if ( arguments.length >= 3 )
options.parameters = this._createQueryString(arguments, 2);
new Ajax.Request(requestURL, this._requestOptions(options,xmlDocument));
this.sendRequestWithDataAndUpdate(requestName, null, container, options);
if ( arguments.length >= 4 )
options.parameters = this._createQueryString(arguments, 3);
new Ajax.Updater(container, requestURL, updaterOptions);
var requestHeaders = ['X-Rico-Version', Rico.Version ];
if (Rico.prototypeVersion < 1.4)
requestHeaders.push( 'Content-type', 'text/xml' );
if (options.onComplete)
options.onRicoComplete = options.onComplete;
if (options.overrideOnComplete)
options.onComplete = options.overrideOnComplete;
options.onComplete = this._onRequestComplete.bind(this);
this.options = {
parameters: options.parameters,
onComplete: options.onComplete
Object.extend(this.options, options);
return this.options;
for ( var i = offset ; i < theArgs.length ; i   ) {
if ( anArg.name != undefined && anArg.value != undefined ) {
queryString  = anArg.name   "="   escape(anArg.value);
var ePos = anArg.indexOf('=');
var argName = anArg.substring( 0, ePos );
var argValue = anArg.substring( ePos   1 );
if (request.status != 200)
var response = request.responseXML.getElementsByTagName("ajax-response");
if (response == null || response.length != 1)
this._processAjaxResponse( response[0].childNodes );
var onRicoComplete = this.options.onRicoComplete;
for ( var i = 0 ; i < xmlResponseElements.length ; i   ) {
if ( responseElement.nodeType != 1 )
var responseType = responseElement.getAttribute("type");
var responseId = responseElement.getAttribute("id");
this._processAjaxObjectUpdate( this.ajaxObjects[ responseId ], responseElement );
this._processAjaxElementUpdate( this.ajaxElements[ responseId ], responseElement );
ajaxObject.ajaxUpdate( responseElement );
ajaxElement.innerHTML = RicoUtil.getContentAsString(responseElement);
var ajaxEngine = new Rico.AjaxEngine();
//-------------------- ricoColor.js
Rico.Color = Class.create();
Rico.Color.prototype = {
this.rgb = { r: red, g : green, b : blue };
this.rgb.r = r;
this.rgb.g = g;
this.rgb.b = b;
var hsb = this.asHSB();
this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b);
this.rgb = Rico.Color.HSBtoRGB( hsb.h, hsb.s, hsb.b );
var hsb = this.asHSB();
this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.max(hsb.b - percent,0));
this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.min(hsb.b   percent,1));
this.rgb.r = Math.floor((this.rgb.r   other.rgb.r)/2);
this.rgb.g = Math.floor((this.rgb.g   other.rgb.g)/2);
this.rgb.b = Math.floor((this.rgb.b   other.rgb.b)/2);
return this.asHSB().b > 0.5;
return ! this.isBright();
return "rgb("   this.rgb.r   ","   this.rgb.g   ","   this.rgb.b   ")";
return "#"   this.rgb.r.toColorPart()   this.rgb.g.toColorPart()   this.rgb.b.toColorPart();
return Rico.Color.RGBtoHSB(this.rgb.r, this.rgb.g, this.rgb.b);
return this.asHex();
Rico.Color.createFromHex = function(hexCode) {
if(hexCode.length==4) {
for(var i=1;i<4;i  ) hexCode  = (shortHexCode.charAt(i)  
shortHexCode.charAt(i));
if ( hexCode.indexOf('#') == 0 )
hexCode = hexCode.substring(1);
var red = hexCode.substring(0,2);
var green = hexCode.substring(2,4);
var blue = hexCode.substring(4,6);
return new Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) );
Rico.Color.createColorFromBackground = function(elem) {
var actualColor = RicoUtil.getElementsComputedStyle($(elem), "backgroundColor", "background-color");
if ( actualColor == "transparent" && elem.parentNode )
return Rico.Color.createColorFromBackground(elem.parentNode);
return new Rico.Color(255,255,255);
if ( actualColor.indexOf("rgb(") == 0 ) {
var colors = actualColor.substring(4, actualColor.length - 1 );
var colorArray = colors.split(",");
return new Rico.Color( parseInt( colorArray[0] ),
else if ( actualColor.indexOf("#") == 0 ) {
return Rico.Color.createFromHex(actualColor);
Rico.Color.HSBtoRGB = function(hue, saturation, brightness) {
var h = (hue - Math.floor(hue)) * 6.0;
var f = h - Math.floor(h);
Rico.Color.RGBtoHSB = function(r, g, b) {
//-------------------- ricoCorner.js
Rico.Corner = {
var color = this.options.color;
if ( this.options.color == "fromElement" )
var bgColor = this.options.bgColor;
if ( this.options.bgColor == "fromParent" )
bgColor = this._background(e.offsetParent);
if(this.options.border)
el.innerHTML = "<div "   style   ">"   el.innerHTML   "</div>"
for(var i=0 ; i < this.options.numSlices ; i   )
corner.appendChild(this._createCornerSlice(color,bgColor,i,"top"));
el.style.paddingTop = 0;
el.insertBefore(corner,el.firstChild);
for(var i=(this.options.numSlices-1) ; i >= 0 ; i-- )
corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom"));
el.style.paddingBottom = 0;
el.appendChild(corner);
var corner = document.createElement("div");
corner.style.backgroundColor = (this._isTransparent() ? "transparent" : bgColor);
var slice = document.createElement("span");
var inStyle = slice.style;
inStyle.backgroundColor = color;
inStyle.display = "block";
inStyle.height = "1px";
inStyle.overflow = "hidden";
inStyle.fontSize = "1px";
if ( this.options.border && n == 0 ) {
inStyle.borderTopStyle = "solid";
inStyle.borderTopWidth = "1px";
inStyle.borderLeftWidth = "0px";
inStyle.borderRightWidth = "0px";
inStyle.borderBottomWidth = "0px";
inStyle.height = "0px"; // assumes css compliant box model
inStyle.borderColor = borderColor;
inStyle.borderColor = borderColor;
inStyle.borderStyle = "solid";
inStyle.borderWidth = "0px 1px";
if ( !this.options.compact && (n == (this.options.numSlices-1)) )
inStyle.height = "2px";
this.options.numSlices = this.options.compact ? 2 : 4;
this.options.blend = false;
if ( this._hasString(this.options.corners, "all", "top") )
if ( this.options.corners.indexOf("tl") >= 0 && this.options.corners.indexOf("tr") >= 0 )
if (this.options.corners.indexOf("tl") >= 0)
else if (this.options.corners.indexOf("tr") >= 0)
if ( this._hasString(this.options.corners, "all", "bottom") )
if ( this.options.corners.indexOf("bl")>=0 && this.options.corners.indexOf("br")>=0 )
if(this.options.corners.indexOf("bl") >=0)
else if(this.options.corners.indexOf("br")>=0)
else if ( this.options.border )
return this.options.border;
else if ( this.options.blend )
el.style.marginLeft = marginSize   "px"; el.style.marginRight = "0px";
el.style.marginRight = marginSize   "px"; el.style.marginLeft = "0px";
el.style.marginLeft = marginSize   "px"; el.style.marginRight = marginSize   "px";
el.style.borderLeftWidth = borderSize   "px"; el.style.borderRightWidth = "0px";
el.style.borderRightWidth = borderSize   "px"; el.style.borderLeftWidth = "0px";
el.style.borderLeftWidth = borderSize   "px"; el.style.borderRightWidth = borderSize   "px";
if (this.options.border != false)
el.style.borderLeftWidth = borderSize   "px"; el.style.borderRightWidth = borderSize   "px";
if ( this.options.compact && this.options.blend )
else if ( this.options.compact )
if ( this.options.compact && (this.options.blend || this._isTransparent()) )
_hasString: function(str) { for(var i=1 ; i<arguments.length ; i  ) if (str.indexOf(arguments[i]) >= 0) return true; return false; },
_blend: function(c1, c2) { var cc1 = Rico.Color.createFromHex(c1); cc1.blend(Rico.Color.createFromHex(c2)); return cc1; },
_background: function(el) { try { return Rico.Color.createColorFromBackground(el).asHex(); } catch(err) { return "#ffffff"; } },
_isTransparent: function() { return this.options.color == "transparent"; },
_isTopRounded: function() { return this._hasString(this.options.corners, "all", "top", "tl", "tr"); },
_isBottomRounded: function() { return this._hasString(this.options.corners, "all", "bottom", "bl", "br"); },
_hasSingleTextChild: function(el) { return el.childNodes.length == 1 && el.childNodes[0].nodeType == 3; }
//-------------------- ricoDragAndDrop.js
Rico.DragAndDrop = Class.create();
Rico.DragAndDrop.prototype = {
this.dropZones = new Array();
this.draggables = new Array();
this.currentDragObjects = new Array();
this.dragElement = null;
this.lastSelectedDraggable = null;
this.currentDragObjectVisible = false;
this.interestedInMotionEvents = false;
this._mouseDown = this._mouseDownHandler.bindAsEventListener(this);
this._mouseMove = this._mouseMoveHandler.bindAsEventListener(this);
this._mouseUp = this._mouseUpHandler.bindAsEventListener(this);
this.dropZones[ this.dropZones.length ] = aDropZone;
for ( var i = 0 ; i < this.dropZones.length ; i   ) {
if ( this.dropZones[i] != aDropZone )
newDropZones[j  ] = this.dropZones[i];
this.dropZones = newDropZones;
this.dropZones = new Array();
this.draggables[ this.draggables.length ] = aDraggable;
for ( var i = 0 ; i < this.currentDragObjects.length ; i   )
this.currentDragObjects[i].deselect();
this.currentDragObjects = new Array();
this.lastSelectedDraggable = null;
return this.currentDragObjects.length > 0;
this.origPos = RicoUtil.toDocumentPosition(mouseDownElement);
this.startx = e.screenX - this.origPos.x
this.starty = e.screenY - this.origPos.y
//this.startComponentX = e.layerX ? e.layerX : e.offsetX;
//this.startComponentY = e.layerY ? e.layerY : e.offsetY;
//this.adjustedForDraggableSize = false;
this.interestedInMotionEvents = this.hasSelection();
this.clearSelection();
if ( draggable.isSelected() ) {
this.currentDragObjects.removeItem(draggable);
draggable.deselect();
if ( draggable == this.lastSelectedDraggable )
this.lastSelectedDraggable = null;
this.currentDragObjects[ this.currentDragObjects.length ] = draggable;
draggable.select();
this.lastSelectedDraggable = draggable;
if ( arguments.length == 0 )
var nsEvent = e.which != undefined;
if ( (nsEvent && e.which != 1) || (!nsEvent && e.button != 1))
var eventTarget = e.target ? e.target : e.srcElement;
var draggableObject = eventTarget.draggable;
while (draggableObject == null && candidate.parentNode) {
candidate = candidate.parentNode;
draggableObject = candidate.draggable;
this.updateSelection( draggableObject, e.ctrlKey );
if ( this.hasSelection() )
for ( var i = 0 ; i < this.dropZones.length ; i   )
this.dropZones[i].clearPositionCache();
this.setStartDragFromElement( e, draggableObject.getMouseDownHTMLElement() );
if ( !this.interestedInMotionEvents ) {
if ( ! this.hasSelection() )
if ( ! this.currentDragObjectVisible )
if ( !this.activatedDropZones )
//if ( !this.adjustedForDraggableSize )
if ( !this.hasSelection() )
if ( this.currentDragObjects.length > 1 )
dragElement = this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects);
dragElement = this.currentDragObjects[0].getSingleObjectDragGUI();
if ( RicoUtil.getElementsComputedStyle(dragElement, "position") != "absolute" )
dragElement.style.position = "absolute";
if ( dragElement.parentNode == null || dragElement.parentNode.nodeType == 11 )
document.body.appendChild(dragElement);
this.dragElement = dragElement;
this.currentDragObjectVisible = true;
var dragElementWidth = this.dragElement.offsetWidth;
var dragElementHeight = this.dragElement.offsetHeight;
if ( this.startComponentX > dragElementWidth )
this.startx -= this.startComponentX - dragElementWidth   2;
if ( e.offsetY ) {
if ( this.startComponentY > dragElementHeight )
this.starty -= this.startComponentY - dragElementHeight   2;
this.adjustedForDraggableSize = true;
return e.offsetX ? document.body.scrollLeft : 0
return e.offsetY ? document.body.scrollTop:0
var dragObjectStyle = this.dragElement.style;
dragObjectStyle.left = (e.screenX   this._leftOffset(e) - this.startx)   "px"
dragObjectStyle.top = (e.screenY   this._topOffset(e) - this.starty)   "px";
var n = this.dropZones.length;
if ( ! this._mousePointInDropZone( e, this.dropZones[i] ) )
this.dropZones[i].hideHover();
if ( this._mousePointInDropZone( e, this.dropZones[i] ) ) {
if ( this.dropZones[i].canAccept(this.currentDragObjects) )
this.dropZones[i].showHover();
this.currentDragObjects[i].startDrag();
if ( this.dragElement == null ) {
this._completeDropOperation(e);
new Rico.Effect.Position( this.dragElement,
this.origPos.x,
this.origPos.y,
{ complete : this._doCancelDragProcessing.bind(this) } );
Event.stopObserving(document.body, "mousemove", this._mouseMove);
Event.stopObserving(document.body, "mouseup", this._mouseUp);
_completeDropOperation: function(e) {
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() ) {
if ( this.dragElement.parentNode != null )
this.dragElement.parentNode.removeChild(this.dragElement);
this.clearSelection();
this.dragElement = null;
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() && this.dragElement)
if ( this.dragElement.parentNode != null )
this.dragElement.parentNode.removeChild(this.dragElement);
if ( this.dropZones[i].canAccept(this.currentDragObjects) ) {
this.dropZones[i].hideHover();
this.dropZones[i].accept(this.currentDragObjects);
this.currentDragObjects[i].cancelDrag();
this.currentDragObjects[i].endDrag();
var absoluteRect = dropZone.getAbsoluteRect();
return e.clientX > absoluteRect.left   this._leftOffset(e) &&
e.clientX < absoluteRect.right   this._leftOffset(e) &&
e.clientY > absoluteRect.top   this._topOffset(e) &&
e.clientY < absoluteRect.bottom   this._topOffset(e);
htmlElement = aDraggable.getMouseDownHTMLElement();
htmlElement.draggable = aDraggable;
Event.observe(htmlElement , "mousedown", this._onmousedown.bindAsEventListener(this));
Event.observe(htmlElement, "mousedown", this._mouseDown);
var dropZone = this.dropZones[i];
if ( dropZone.canAccept(this.currentDragObjects) )
dropZone.activate();
this.activatedDropZones = true;
this.dropZones[i].deactivate();
this.activatedDropZones = false;
Event.observe(document.body, "mousemove", this._mouseMove);
Event.observe(document.body, "mouseup", this._mouseUp);
if ( e.stopPropagation != undefined )
e.stopPropagation();
else if ( e.cancelBubble != undefined )
e.cancelBubble = true;
if ( e.preventDefault != undefined )
e.preventDefault();
e.returnValue = false;
if ( typeof document.implementation != "undefined" &&
document.implementation.hasFeature("HTML", "1.0") &&
document.implementation.hasFeature("Events", "2.0") &&
document.implementation.hasFeature("CSS", "2.0") ) {
document.addEventListener("mouseup", this._mouseUpHandler.bindAsEventListener(this), false);
document.addEventListener("mousemove", this._mouseMoveHandler.bindAsEventListener(this), false);
document.attachEvent( "onmouseup", this._mouseUpHandler.bindAsEventListener(this) );
document.attachEvent( "onmousemove", this._mouseMoveHandler.bindAsEventListener(this) );
var dndMgr = new Rico.DragAndDrop();
dndMgr.initializeEventHandlers();
//-------------------- ricoDraggable.js
Rico.Draggable = Class.create();
Rico.Draggable.prototype = {
this.type = type;
this.htmlElement = $(htmlElement);
this.selected = false;
* added to it in order to initiate a drag operation
return this.htmlElement;
this.selected = true;
if ( this.showingSelected )
var htmlElement = this.getMouseDownHTMLElement();
var color = Rico.Color.createColorFromBackground(htmlElement);
color.isBright() ? color.darken(0.033) : color.brighten(0.033);
this.saveBackground = RicoUtil.getElementsComputedStyle(htmlElement, "backgroundColor", "background-color");
htmlElement.style.backgroundColor = color.asHex();
this.showingSelected = true;
this.selected = false;
if ( !this.showingSelected )
htmlElement.style.backgroundColor = this.saveBackground;
this.showingSelected = false;
return this.selected;
return this.type   ":"   this.htmlElement   ":";
//-------------------- ricoDropzone.js
Rico.Dropzone = Class.create();
Rico.Dropzone.prototype = {
this.htmlElement = $(htmlElement);
this.absoluteRect = null;
if ( this.absoluteRect == null ) {
var htmlElement = this.getHTMLElement();
var pos = RicoUtil.toViewportPosition(htmlElement);
this.absoluteRect = {
bottom: pos.y   htmlElement.offsetHeight,
right: pos.x   htmlElement.offsetWidth
return this.absoluteRect;
var htmlElement = this.getHTMLElement();
if (htmlElement == null || this.showingActive)
this.showingActive = true;
this.saveBackgroundColor = htmlElement.style.backgroundColor;
var currentColor = Rico.Color.createColorFromBackground(htmlElement);
htmlElement.style.backgroundColor = fallbackColor;
currentColor.isBright() ? currentColor.darken(0.2) : currentColor.brighten(0.2);
htmlElement.style.backgroundColor = currentColor.asHex();
if (htmlElement == null || !this.showingActive)
htmlElement.style.backgroundColor = this.saveBackgroundColor;
this.showingActive = false;
this.saveBackgroundColor = null;
if ( htmlElement == null || this.showingHover )
this.saveBorderWidth = htmlElement.style.borderWidth;
this.saveBorderStyle = htmlElement.style.borderStyle;
this.saveBorderColor = htmlElement.style.borderColor;
this.showingHover = true;
htmlElement.style.borderWidth = "1px";
htmlElement.style.borderStyle = "solid";
//htmlElement.style.borderColor = "#ff9900";
htmlElement.style.borderColor = "#ffff00";
if ( htmlElement == null || !this.showingHover )
htmlElement.style.borderWidth = this.saveBorderWidth;
htmlElement.style.borderStyle = this.saveBorderStyle;
htmlElement.style.borderColor = this.saveBorderColor;
this.showingHover = false;
n = draggableObjects.length;
var theGUI = draggableObjects[i].getDroppedGUI();
if ( RicoUtil.getElementsComputedStyle( theGUI, "position" ) == "absolute" )
theGUI.style.position = "static";
theGUI.style.top = "";
htmlElement.appendChild(theGUI);
//-------------------- ricoEffects.js
Rico.Effect = {};
Rico.Effect.SizeAndPosition = Class.create();
Rico.Effect.SizeAndPosition.prototype = {
this.element = $(element);
this.duration = duration;
this.steps = steps;
this.options = arguments[7] || {};
this.sizeAndPosition();
if (this.isFinished()) {
if(this.options.complete) this.options.complete(this);
if (this.timer)
clearTimeout(this.timer);
var stepDuration = Math.round(this.duration/this.steps) ;
var currentX = this.element.offsetLeft;
var currentY = this.element.offsetTop;
var currentW = this.element.offsetWidth;
var currentH = this.element.offsetHeight;
var difX = this.steps > 0 ? (this.x - currentX)/this.steps : 0;
var difY = this.steps > 0 ? (this.y - currentY)/this.steps : 0;
var difW = this.steps > 0 ? (this.w - currentW)/this.steps : 0;
var difH = this.steps > 0 ? (this.h - currentH)/this.steps : 0;
this.moveBy(difX, difY);
this.resizeBy(difW, difH);
this.duration -= stepDuration;
this.steps--;
this.timer = setTimeout(this.sizeAndPosition.bind(this), stepDuration);
return this.steps <= 0;
var currentLeft = this.element.offsetLeft;
var currentTop = this.element.offsetTop;
var style = this.element.style;
style.left = (currentLeft   intDifX)   "px";
style.top = (currentTop   intDifY)   "px";
var currentWidth = this.element.offsetWidth;
var currentHeight = this.element.offsetHeight;
style.width = (currentWidth   intDifW)   "px";
style.height = (currentHeight   intDifH)   "px";
Rico.Effect.Size = Class.create();
Rico.Effect.Size.prototype = {
new Rico.Effect.SizeAndPosition(element, null, null, w, h, duration, steps, options);
Rico.Effect.Position = Class.create();
Rico.Effect.Position.prototype = {
new Rico.Effect.SizeAndPosition(element, x, y, null, null, duration, steps, options);
Rico.Effect.Round = Class.create();
Rico.Effect.Round.prototype = {
var elements = document.getElementsByTagAndClassName(tagName,className);
for ( var i = 0 ; i < elements.length ; i   )
Rico.Corner.round( elements[i], options );
Rico.Effect.FadeTo = Class.create();
Rico.Effect.FadeTo.prototype = {
this.element = $(element);
this.opacity = opacity;
this.options = arguments[4] || {};
this.fadeTo();
var currentOpacity = this.getElementOpacity();
var delta = this.steps > 0 ? (this.opacity - currentOpacity)/this.steps : 0;
this.changeOpacityBy(delta);
this.timer = setTimeout(this.fadeTo.bind(this), stepDuration);
var newOpacity = Math.max(0, Math.min(currentOpacity v, 1));
this.element.ricoOpacity = newOpacity;
this.element.style.filter = "alpha(opacity:" Math.round(newOpacity*100) ")";
this.element.style.opacity = newOpacity; /*//*/;
if ( this.element.ricoOpacity == undefined ) {
var opacity = RicoUtil.getElementsComputedStyle(this.element, 'opacity');
this.element.ricoOpacity = opacity != undefined ? opacity : 1.0;
return parseFloat(this.element.ricoOpacity);
Rico.Effect.AccordionSize = Class.create();
Rico.Effect.AccordionSize.prototype = {
this.start = start;
this.end = end;
this.options = arguments[6] || {};
this.accordionSize();
this.e1.style.height = this.start   "px";
this.e2.style.height = this.end   "px";
if(this.options.complete)
this.options.complete(this);
var diff = this.steps > 0 ? (parseInt(this.e1.offsetHeight) - this.start)/this.steps : 0;
this.resizeBy(diff);
this.timer = setTimeout(this.accordionSize.bind(this), stepDuration);
var h1Height = this.e1.offsetHeight;
var h2Height = this.e2.offsetHeight;
this.e1.style.height = (h1Height - intDiff)   "px";
this.e2.style.height = (h2Height   intDiff)   "px";
//-------------------- ricoLiveGrid.js
// Rico.LiveGridMetaData -----------------------------------------------------
Rico.LiveGridMetaData = Class.create();
Rico.LiveGridMetaData.prototype = {
this.pageSize = pageSize;
this.totalRows = totalRows;
this.ArrowHeight = 16;
this.columnCount = columnCount;
return this.pageSize;
return this.totalRows;
this.totalRows = n;
return parseInt(this.options.largeBufferSize * this.pageSize);
return parseInt(this.getLargeBufferSize() * this.options.nearLimitFactor);
// Rico.LiveGridScroller -----------------------------------------------------
Rico.LiveGridScroller = Class.create();
Rico.LiveGridScroller.prototype = {
initialize: function(liveGrid, viewPort) {
this.isIE = navigator.userAgent.toLowerCase().indexOf("msie") >= 0;
this.liveGrid = liveGrid;
this.metaData = liveGrid.metaData;
this.createScrollBar();
this.scrollTimeout = null;
this.lastScrollPos = 0;
this.viewPort = viewPort;
this.rows = new Array();
return this.scrollerDiv.onscroll == null;
this.scrollerDiv.onscroll = this.handleScroll.bindAsEventListener(this);
this.scrollerDiv.onscroll = null;
if ( !this.isIE ) return;
var headerTable = $(this.liveGrid.tableId   "_header");
headerTable.rows[0].cells[0].style.width =
(headerTable.rows[0].cells[0].offsetWidth   1)   "px";
var visibleHeight = this.liveGrid.viewPort.visibleHeight();
this.scrollerDiv = document.createElement("div");
var scrollerStyle = this.scrollerDiv.style;
scrollerStyle.borderRight = this.liveGrid.options.scrollerBorderRight;
scrollerStyle.position = "relative";
scrollerStyle.left = this.isIE ? "-6px" : "-3px";
scrollerStyle.width = "19px";
scrollerStyle.height = visibleHeight   "px";
scrollerStyle.overflow = "auto";
this.heightDiv = document.createElement("div");
this.heightDiv.style.width = "1px";
this.heightDiv.style.height = parseInt(visibleHeight *
this.metaData.getTotalRows()/this.metaData.getPageSize())   "px" ;
this.scrollerDiv.appendChild(this.heightDiv);
var table = this.liveGrid.table;
table.parentNode.parentNode.insertBefore( this.scrollerDiv, table.parentNode.nextSibling );
var eventName = this.isIE ? "mousewheel" : "DOMMouseScroll";
Event.observe(table, eventName,
if (evt.wheelDelta>=0 || evt.detail < 0) //wheel-up
this.scrollerDiv.scrollTop -= (2*this.viewPort.rowHeight);
this.scrollerDiv.scrollTop  = (2*this.viewPort.rowHeight);
this.handleScroll(false);
}.bindAsEventListener(this),
var table = this.liveGrid.table;
var visibleHeight = this.viewPort.visibleHeight();
this.metaData.getTotalRows()/this.metaData.getPageSize())   "px";
return (rowOffset / this.metaData.getTotalRows()) * this.heightDiv.offsetHeight
this.scrollerDiv.scrollTop = this.rowToPixel(rowOffset);
if ( this.metaData.options.onscroll )
this.metaData.options.onscroll( this.liveGrid, rowOffset );
if ( this.scrollTimeout )
clearTimeout( this.scrollTimeout );
var scrollDiff = this.lastScrollPos-this.scrollerDiv.scrollTop;
var r = this.scrollerDiv.scrollTop % this.viewPort.rowHeight;
this.unplug();
this.scrollerDiv.scrollTop  = (this.viewPort.rowHeight-r);
this.scrollerDiv.scrollTop -= r;
this.plugin();
var contentOffset = parseInt(this.scrollerDiv.scrollTop / this.viewPort.rowHeight);
this.liveGrid.requestContentRefresh(contentOffset);
this.viewPort.scrollTo(this.scrollerDiv.scrollTop);
if ( this.metaData.options.onscroll )
this.metaData.options.onscroll( this.liveGrid, contentOffset );
this.scrollTimeout = setTimeout(this.scrollIdle.bind(this), 1200 );
this.lastScrollPos = this.scrollerDiv.scrollTop;
if ( this.metaData.options.onscrollidle )
this.metaData.options.onscrollidle();
// Rico.LiveGridBuffer -----------------------------------------------------
Rico.LiveGridBuffer = Class.create();
Rico.LiveGridBuffer.prototype = {
initialize: function(metaData, viewPort) {
this.startPos = 0;
this.size = 0;
this.metaData = metaData;
this.rows = new Array();
this.updateInProgress = false;
this.maxBufferSize = metaData.getLargeBufferSize() * 2;
this.maxFetchSize = metaData.getLargeBufferSize();
this.lastOffset = 0;
if (!this.blankRow ) {
this.blankRow = new Array();
for ( var i=0; i < this.metaData.columnCount ; i   )
this.blankRow[i] = " ";
return this.blankRow;
var rowsElement = ajaxResponse.getElementsByTagName('rows')[0];
this.updateUI = rowsElement.getAttribute("update_ui") == "true"
var trs = rowsElement.getElementsByTagName("tr");
for ( var i=0 ; i < trs.length; i   ) {
var cells = trs[i].getElementsByTagName("td");
for ( var j=0; j < cells.length ; j   ) {
var convertSpaces = cell.getAttribute("convert_spaces") == "true";
var cellContent = RicoUtil.getContentAsString(cell);
row[j] = convertSpaces ? this.convertSpaces(cellContent) : cellContent;
var newRows = this.loadRows(ajaxResponse);
if (this.rows.length == 0) { // initial load
this.rows = newRows;
this.size = this.rows.length;
this.startPos = start;
if (start > this.startPos) { //appending
if (this.startPos   this.rows.length < start) {
this.rows = newRows;
this.startPos = start;//
this.rows = this.rows.concat( newRows.slice(0, newRows.length));
if (this.rows.length > this.maxBufferSize) {
var fullSize = this.rows.length;
this.rows = this.rows.slice(this.rows.length - this.maxBufferSize, this.rows.length)
this.startPos = this.startPos   (fullSize - this.rows.length);
if (start   newRows.length < this.startPos) {
this.rows = newRows.slice(0, this.startPos).concat(this.rows);
if (this.rows.length > this.maxBufferSize)
this.rows = this.rows.slice(0, this.maxBufferSize)
this.startPos = start;
this.size = this.rows.length;
this.size = 0;
return ((start < this.endPos()) && (this.startPos < start   size)) || (this.endPos() == 0)
return (position >= this.startPos) && (position   this.metaData.getPageSize() <= this.endPos());
//&& this.size() != 0;
return position - this.startPos < this.metaData.getLimitTolerance();
return this.startPos   this.rows.length;
return this.endPos() - (position   this.metaData.getPageSize()) < this.metaData.getLimitTolerance();
return this.startPos == 0;
return this.endPos() == this.metaData.getTotalRows();
return ( !this.isAtTop() && this.isNearingTopLimit(position)) ||
( !this.isAtBottom() && this.isNearingBottomLimit(position) )
var adjustedOffset = this.getFetchOffset(offset);
if (adjustedOffset >= this.startPos) { //apending
var endFetchOffset = this.maxFetchSize   adjustedOffset;
if (endFetchOffset > this.metaData.totalRows)
endFetchOffset = this.metaData.totalRows;
if(adjustedOffset == 0 && adjustedSize < this.maxFetchSize){
adjustedSize = this.maxFetchSize;
var adjustedSize = this.startPos - adjustedOffset;
if (adjustedSize > this.maxFetchSize)
adjustedSize = this.maxFetchSize;
if (offset > this.startPos) //apending
adjustedOffset = (offset > this.endPos()) ? offset : this.endPos();
if (offset   this.maxFetchSize >= this.startPos) {
var adjustedOffset = this.startPos - this.maxFetchSize;
this.lastOffset = adjustedOffset;
var begPos = start - this.startPos
if ( endPos > this.size )
endPos = this.size
results[index  ] = this.rows[i]
return s.split(" ").join(" ");
//Rico.GridViewPort --------------------------------------------------
Rico.GridViewPort = Class.create();
Rico.GridViewPort.prototype = {
this.lastDisplayedStartPos = 0;
this.div = table.parentNode;
this.table = table
this.rowHeight = rowHeight;
this.div.style.height = (this.rowHeight * visibleRows)   "px";
this.div.style.overflow = "hidden";
this.buffer = buffer;
this.visibleRows = visibleRows   1;
this.lastPixelOffset = 0;
for (var j=0; j < row.length; j  ) {
htmlRow.cells[j].innerHTML = row[j]
this.refreshContents( parseInt(this.lastPixelOffset / this.rowHeight));
if (!this.isBlank) {
this.liveGrid.table.className = this.liveGrid.options.loadingClass;
for (var i=0; i < this.visibleRows; i  )
this.populateRow(this.table.rows[i], this.buffer.getBlankRow());
this.isBlank = true;
this.clearRows();
this.scrollTo(0);
this.lastStartPos = -1;
if (startPos == this.lastRowPos && !this.isPartialBlank && !this.isBlank) {
if ((startPos   this.visibleRows < this.buffer.startPos)
|| (this.buffer.startPos   this.buffer.size < startPos)
|| (this.buffer.size == 0)) {
this.clearRows();
this.isBlank = false;
var viewPrecedesBuffer = this.buffer.startPos > startPos
var contentStartPos = viewPrecedesBuffer ? this.buffer.startPos: startPos;
var contentEndPos = (this.buffer.startPos   this.buffer.size < startPos   this.visibleRows)
? this.buffer.startPos   this.buffer.size
: startPos   this.visibleRows;
var rows = this.buffer.getRows(contentStartPos, rowSize );
var blankSize = this.visibleRows - rowSize;
for (var i=0; i < rows.length; i  ) {//initialize what we have
this.populateRow(this.table.rows[i   contentOffset], rows[i]);
this.populateRow(this.table.rows[i   blankOffset], this.buffer.getBlankRow());
this.isPartialBlank = blankSize > 0;
this.lastRowPos = startPos;
this.liveGrid.table.className = this.liveGrid.options.tableClass;
var onRefreshComplete = this.liveGrid.options.onRefreshComplete;
if (this.lastPixelOffset == pixelOffset)
this.refreshContents(parseInt(pixelOffset / this.rowHeight))
this.div.scrollTop = pixelOffset % this.rowHeight
this.lastPixelOffset = pixelOffset;
return parseInt(RicoUtil.getElementsComputedStyle(this.div, 'height'));
Rico.LiveGridRequest = Class.create();
Rico.LiveGridRequest.prototype = {
this.requestOffset = requestOffset;
// Rico.LiveGrid -----------------------------------------------------
Rico.LiveGrid = Class.create();
Rico.LiveGrid.prototype = {
initialize: function( tableId, visibleRows, totalRows, url, options, ajaxOptions ) {
tableClass: $(tableId).className,
loadingClass: $(tableId).className,
sortAscendImg: 'images/sort_asc.gif',
sortDescendImg: 'images/sort_desc.gif',
ajaxSortURLParms: [],
this.ajaxOptions = {parameters: null};
Object.extend(this.ajaxOptions, ajaxOptions || {});
this.tableId = tableId;
this.table = $(tableId);
this.addLiveGridHtml();
var columnCount = this.table.rows[0].cells.length;
this.metaData = new Rico.LiveGridMetaData(visibleRows, totalRows, columnCount, options);
this.buffer = new Rico.LiveGridBuffer(this.metaData);
var rowCount = this.table.rows.length;
this.viewPort = new Rico.GridViewPort(this.table,
this.table.offsetHeight/rowCount,
this.buffer, this);
this.scroller = new Rico.LiveGridScroller(this,this.viewPort);
this.options.sortHandler = this.sortHandler.bind(this);
this.sort = new Rico.LiveGridSort(tableId   '_header', this.options)
this.processingRequest = null;
this.unprocessedRequest = null;
this.initAjax(url);
if ( this.options.prefetchBuffer || this.options.prefetchOffset > 0) {
if (this.options.offset ) {
offset = this.options.offset;
this.scroller.moveScroll(offset);
this.viewPort.scrollTo(this.scroller.rowToPixel(offset));
if (this.options.sortCol) {
this.sortCol = options.sortCol;
this.sortDir = options.sortDir;
this.requestContentRefresh(offset);
if (this.table.getElementsByTagName("thead").length > 0){
// Create Table this.tableId '_header'
var tableHeader = this.table.cloneNode(true);
tableHeader.setAttribute('id', this.tableId '_header');
tableHeader.setAttribute('class', this.table.className '_header');
for( var i = 0; i < tableHeader.tBodies.length; i   )
tableHeader.removeChild(tableHeader.tBodies[i]);
this.table.deleteTHead();
this.table.parentNode.insertBefore(tableHeader,this.table);
new Insertion.Before(this.table, "<div id='" this.tableId "_container'></div>");
this.table.previousSibling.appendChild(this.table);
new Insertion.Before(this.table,"<div id='" this.tableId "_viewport' style='float:left;'></div>");
this.scroller.moveScroll(0);
this.buffer.clear();
this.viewPort.clearContents();
this.sortCol = column.name;
this.sortDir = column.currentSort;
this.resetContents();
this.requestContentRefresh(0)
this.metaData.setTotalRows(newTotalRows);
this.scroller.updateSize();
initAjax: function(url) {
ajaxEngine.registerRequest( this.tableId   '_request', url );
ajaxEngine.registerAjaxObject( this.tableId   '_updater', this );
this.processQueuedRequest();
if ( this.buffer.isInRange(offset) &&
!this.buffer.isNearingLimit(offset)) {
if (this.processingRequest) {
this.unprocessedRequest = new Rico.LiveGridRequest(offset);
var bufferStartPos = this.buffer.getFetchOffset(offset);
this.processingRequest = new Rico.LiveGridRequest(offset);
this.processingRequest.bufferOffset = bufferStartPos;
var fetchSize = this.buffer.getFetchSize(offset);
if (this.options.requestParameters)
queryString = this._createQueryString(this.options.requestParameters, 0);
queryString = queryString 'id=' this.tableId '&page_size=' fetchSize '&offset=' bufferStartPos;
if (this.sortCol)
queryString = queryString '&sort_col=' escape(this.sortCol) '&sort_dir=' this.sortDir;
this.ajaxOptions.parameters = queryString;
ajaxEngine.sendRequest( this.tableId   '_request', this.ajaxOptions );
this.timeoutHandler = setTimeout( this.handleTimedOut.bind(this), this.options.bufferTimeout);
this.options.requestParameters = [];
for ( var i=0 ; i < arguments.length ; i   )
this.options.requestParameters[i] = arguments[i];
this.fetchBuffer(contentOffset);
clearTimeout( this.timeoutHandler );
this.buffer.update(ajaxResponse,this.processingRequest.bufferOffset);
this.viewPort.bufferChanged();
finally {this.processingRequest = null; }
if (this.unprocessedRequest != null) {
this.requestContentRefresh(this.unprocessedRequest.requestOffset);
this.unprocessedRequest = null
//-------------------- ricoLiveGridSort.js
Rico.LiveGridSort = Class.create();
Rico.LiveGridSort.prototype = {
this.headerTableId = headerTableId;
this.headerTable = $(headerTableId);
this.options = options;
this.setOptions();
this.applySortBehavior();
if ( this.options.sortCol ) {
this.setSortUI( this.options.sortCol, this.options.sortDir );
var cols = this.options.columns;
for ( var i = 0 ; i < cols.length ; i   ) {
if ( cols[i].name == columnName ) {
this.setColumnSort(i, sortDirection);
new Image().src = this.options.sortAscendImg;
new Image().src = this.options.sortDescendImg;
this.sort = this.options.sortHandler;
if ( !this.options.columns )
this.options.columns = this.introspectForColumnInfo();
// allow client to pass { columns: [ ["a", true], ["b", false] ] }
// and convert to an array of Rico.TableColumn objs...
this.options.columns = this.convertToTableColumns(this.options.columns);
var headerRow = this.headerTable.rows[0];
var headerCells = headerRow.cells;
for ( var i = 0 ; i < headerCells.length ; i   ) {
this.addSortBehaviorToColumn( i, headerCells[i] );
if ( this.options.columns[n].isSortable() ) {
cell.id = this.headerTableId   '_'   n;
cell.style.cursor = 'pointer';
cell.onclick = this.headerCellClicked.bindAsEventListener(this);
cell.innerHTML = cell.innerHTML   '<span id="'   this.headerTableId   '_img_'   n   '">'
var eventTarget = evt.target ? evt.target : evt.srcElement;
var cellId = eventTarget.id;
var columnNumber = parseInt(cellId.substring( cellId.lastIndexOf('_')   1 ));
var sortedColumnIndex = this.getSortedColumnIndex();
this.removeColumnSort(sortedColumnIndex);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
this.toggleColumnSort(sortedColumnIndex);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
if (this.options.sortHandler) {
this.options.sortHandler(this.options.columns[columnNumber]);
this.options.columns[n].setUnsorted();
this.setSortImage(n);
this.options.columns[n].setSorted(direction);
this.options.columns[n].toggleSort();
var sortDirection = this.options.columns[n].getSortDirection();
var sortImageSpan = $( this.headerTableId   '_img_'   n );
if ( sortDirection == Rico.TableColumn.UNSORTED )
sortImageSpan.innerHTML = '  ';
else if ( sortDirection == Rico.TableColumn.SORT_ASC )
sortImageSpan.innerHTML = '  <img width="'   this.options.sortImageWidth   '" '  
'height="'  this.options.sortImageHeight   '" '  
'src="'   this.options.sortAscendImg   '"/>';
else if ( sortDirection == Rico.TableColumn.SORT_DESC )
'src="'   this.options.sortDescendImg   '"/>';
if ( cols[i].isSorted() )
for ( var i = 0 ; i < headerCells.length ; i   )
columns.push( new Rico.TableColumn( this.deriveColumnNameFromCell(headerCells[i],i), true ) );
for ( var i = 0 ; i < cols.length ; i   )
columns.push( new Rico.TableColumn( cols[i][0], cols[i][1] ) );
var cellContent = cell.innerText != undefined ? cell.innerText : cell.textContent;
return cellContent ? cellContent.toLowerCase().split(' ').join('_') : "col_"   columnNumber;
Rico.TableColumn = Class.create();
Rico.TableColumn.UNSORTED = 0;
Rico.TableColumn.SORT_ASC = "ASC";
Rico.TableColumn.SORT_DESC = "DESC";
Rico.TableColumn.prototype = {
this.name = name;
this.sortable = sortable;
this.currentSort = Rico.TableColumn.UNSORTED;
return this.sortable;
return this.currentSort != Rico.TableColumn.UNSORTED;
return this.currentSort;
if ( this.currentSort == Rico.TableColumn.UNSORTED || this.currentSort == Rico.TableColumn.SORT_DESC )
this.currentSort = Rico.TableColumn.SORT_ASC;
else if ( this.currentSort == Rico.TableColumn.SORT_ASC )
this.currentSort = Rico.TableColumn.SORT_DESC;
this.setSorted(Rico.TableColumn.UNSORTED);
// direction must by one of Rico.TableColumn.UNSORTED, .SORT_ASC, or .SORT_DESC...
this.currentSort = direction;
//-------------------- ricoUtil.js
getElementsComputedStyle: function ( htmlElement, cssProperty, mozillaEquivalentCSS) {
if ( arguments.length == 2 )
mozillaEquivalentCSS = cssProperty;
if ( el.currentStyle )
return el.currentStyle[cssProperty];
return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozillaEquivalentCSS);
if (document.implementation && document.implementation.createDocument) {
var doc = document.implementation.createDocument("", "", null);
if (doc.readyState == null) {
doc.readyState = 1;
doc.addEventListener("load", function () {
doc.readyState = 4;
if (typeof doc.onreadystatechange == "function")
doc.onreadystatechange();
if (window.ActiveXObject)
return Try.these(
function() { return new ActiveXObject('MSXML2.DomDocument') },
function() { return new ActiveXObject('Microsoft.DomDocument')},
function() { return new ActiveXObject('MSXML.DomDocument') },
function() { return new ActiveXObject('MSXML3.DomDocument') }
return parentNode.xml != undefined ?
this._getContentAsStringMozilla(parentNode);
for ( var i = 0 ; i < parentNode.childNodes.length ; i   ) {
var n = parentNode.childNodes[i];
if (n.nodeType == 4) {
contentStr  = n.nodeValue;
contentStr  = n.xml;
_getContentAsStringMozilla: function(parentNode) {
var n = parentNode.childNodes[i];
if (n.nodeType == 4) { // CDATA node
contentStr  = n.nodeValue;
contentStr  = xmlSerializer.serializeToString(n);
toViewportPosition: function(element) {
* Compute the elements position in terms of the window viewport
* offsetParent hierarchy, ...taking into account any scrollTop,
* IE has a bug reporting a correct offsetLeft of elements within a
if ( navigator.userAgent.toLowerCase().indexOf("msie") == -1 )
return this._toAbsoluteMozilla(element,accountForDocScroll);
var borderXOffset = parseInt(this.getElementsComputedStyle(parent, "borderLeftWidth" ));
var borderYOffset = parseInt(this.getElementsComputedStyle(parent, "borderTopWidth" ));
x  = parent.offsetLeft - parent.scrollLeft   borderXOffset;
y  = parent.offsetTop - parent.scrollTop   borderYOffset;
parent = parent.offsetParent;
x -= this.docScrollLeft();
y -= this.docScrollTop();
* Mozilla did not report all of the parents up the hierarchy via the
_toAbsoluteMozilla: function(element,accountForDocScroll) {
x  = parent.offsetLeft;
y  = parent.offsetTop;
parent != document.body &&
parent != document.documentElement ) {
if ( parent.scrollLeft )
x -= parent.scrollLeft;
if ( parent.scrollTop )
y -= parent.scrollTop;
parent = parent.parentNode;
if ( window.pageXOffset )
return window.pageXOffset;
else if ( document.documentElement && document.documentElement.scrollLeft )
return document.documentElement.scrollLeft;
else if ( document.body )
return document.body.scrollLeft;
if ( window.pageYOffset )
return window.pageYOffset;
else if ( document.documentElement && document.documentElement.scrollTop )
return document.documentElement.scrollTop;
return document.body.scrollTop;
KWindows
UrlMon
0IdHTTPHeaderInfo
rSqlTimSt
P.reloc
P.rsrc
u%CNu
Uh.tA
IE(AL("%s",4),"AL(\"%0:s\",3)","JK(\"%1:s\",\"%0:s\")")
JumpID("","%s")
AutoHotkeysd
AutoHotkeys
KeyPreviewX
WindowState
vcltest3.dll
PSAPI.dll
Error Restarting IntraWeb Application:
ReportEventA
6)6/676<6
0 0$0(0,0004080<0@0`0
6 6$6(6,60646
:":&:*:.:2:6:::
;"<&<*<2<8<
= =$=(=,=
?ArcIWSMWebCommon
.rsrc
N%U5;
UdpG
7of%C
@; E.TML
?.fAM
%U0!Us
sn.nDQpP
u1%S`
G]P.Mw
g!k%c'
%UDNm
\C%c"N
.=[
KWeb
Q{ExecutBE
E.sNE
{.Ms[
i.MsD
e!%S is
-tl'tf(t`ssss)tZ tT,tN.tHssss/tB:t<=t6?t0nsss;t*!t$*t
BP7H%C
"Ì!0
:.cqT
>~%d/)
H.dJ.x
`H.dJ
H xJ.dJ
Ep.efu
eG%D zY
 $ H.dJ.p
/ .dJ.@p
74dJ.dJ
;,dJ.dX
T4J.dJT
\$.dJN\P
#^ ^HdJ.dl
9yXydn%C
{PxJ.dJ
8dJ.dJ
%soX-
%s:sT
#O.Jh~
j ,%uA
URLMON.
THTTP
yUrl
U$?%UQ
(%d);'
$%S2Ja
6P.%d
%U=GT
rBn|%CH
Msgv
Keyfs
va.ab1x*
.AK;7
?0"$$/$'532#('-.&"'07/#2*4*%)
7@*#6'443
wininet.dll
SoapClient.dll
dito>>>BCP>>> - Windows Internet Explorer
Font.Charset
Font.Color
Font.Height
Font.Name
Font.Style
Picture.Data
ImageNormal.Data
4557880
Items.Strings
&Operaciones con T. compras en Internet
Font.Pitch
#X$%X$%b'([# [# M
#X$%X$%b'(b'(b'(b'(b'(b'(X$%M
k/.[# b'(X$%X$%[# [# M
#[# [# [#
[# [# X$%X$%X$%X$%[# [# .
%.s%.s
#X$%X$%X$%X$%[# [# .
#X$%X$%[# X$%[# [# .
X$%X$%X$%X$%d&!X$%#
*6{%.s
X$%X$%X$%X$%[# H&7#
X$%[# X$%X$%X$%[# H&7#
X$%X$%X$%d&!H&7
v%.s%.s%.s2 n%.s2 n#*Y
#X$%X$%X$%[# =
#X$%X$%[# =
#[# [# X$%X$$=
#X$%X$%X$%[# [# [# d&!g "d&!g "g "g "g "p9;
FQ}FQ}FQ};Iz1>l(5i#,h#,h#,h%.s(5i(5i*6{
#X$%X$%b'(b'(b'(b'(X$%b'(b'(b'(g "g "
FQ}FQ}FQ}FQ}:?t(5i#,h#,h#,h%.s(5i*6{(5i
FQ}1>l%.s#,h%.s(5i*6{*6{*6{
;Iz*6{%.s%.s
FQ}*6{%.s
*6{*6{*6{0<
:?t%.s.
*6{*6{%.s%.s
*6{%.s%.s:?t:?tec
:~|:~|:~|:~|@
*6{%.s%.s#,h
*6{*6{%.s#,h
*6{%.s#,h
%.s%.s%.s%.s#,h
*6{*6{*6{*6{%.s#,h
*6{*6{%.s
*6{%.s%.s#,h#,h
*6{*6{*6{%.s#,h
$h%.s%.s%.s%.s%.s
*6{%.s%.s
$h#,h%.s*6{*6{*6{*6{
$h%.s*6{0<
*6{*6{0<
Pen.Style
024.375.716.711/1768 - CA
(7),01444
'9=82<.342
OJC.QT
LoginDialog
Database Login
&Password:
PasswordDialog
Enter password
, #&')*)
-0-(0%()(
/hXXp://VVV.gone2paradise.net/images/thumbs_.php
0hXXp://vacations.oatley.us//modlogan/thumbs_.php
-hXXp://VVV.faunarescue.org/albums/thumbs_.php
$hXXp://VVV.safe-tec.de/inc/htmln.php
-hXXp://VVV.giteluberon.fr/resources/htmln.php
>hXXp://VVV.vigneron-independant.com//download/images/htmln.php
Aviation.exe
1hXXp://VVV.obconline.net/kapal/image/htm8.exe.bak
5hXXp://VVV.parislemarais.com/lists/texts/htm8.exe.bak
4hXXp://VVV.calandreta-gaillac.fr/Images/htm8.exe.bak
"hXXp://VVV.itc.es/tmp/htm8.exe.bak
1hXXp://VVV.toughnuttocrack.de//gbook/htm8.exe.bak
0hXXp://vacations.oatley.us//modlogan/thumbx_.php
.hXXp://VVV.ipsanandres.org.ar//images/tail.php
5hXXp://VVV.koja-lindlar.de/bilder/2008_07_29/tail.php
#hXXp://VVV.enertia-llc.com/tail.php
ProxyParams.BasicAuthentication
ProxyParams.ProxyPort
Request.ContentLength
Request.ContentType
Request.Accept
Request.BasicAuthentication
Request.UserAgent
&Mozilla/3.0 (compatible; Indy Library)
HTTPOptions
Icon.Data
IIIIIB(II<.Fg
7?_____ZZSSH%
3333333331
2222222222
22222222
999999999
9999999999yoFÿ
%uuuu|
<<}%%ug8
version="1.0.0.0"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
<requestedExecutionLevel
%s: %s
IW_GFX_LOGOINTRAWEB
IW_JS_IWOPERA
RESTARTEXE
TLOGINDIALOG
TPASSWORDDIALOG
There is no such palette entry.dThis "Portable Network Graphics" image contains an unknown critical part which could not be decoded.pThis "Portable Network Graphics" image is encoded with an unknown compression scheme which could not be decoded.cThis "Portable Network Graphics" image uses an unknown interlace scheme which could not be decoded.-The chunks must be compatible to be assigned.jThis "Portable Network Graphics" image is invalid because the decoder found an unexpected end of the file.8This "Portable Network Graphics" image contains no data.]The program tried to add a existent critical chunk to the current image which is not allowed.IIt's not allowed to add a new chunk because the current image is invalid.oSome operation could not be performed because the system is out of resources. Close some windows and try again.OThis operation is not valid because the current image contains no valid header.4The new size provided for image resizing is invalid.
OLE control activation failed*Could not obtain OLE control window handle%License information for %s is invalidPLicense information for %s not found. You cannot use this control in design modeNUnable to retrieve a pointer to a running object registered with OLE for %s/%s&Cannot change the size of a JPEG image
JPEG error #%d
JPEG Image FilejThis "Portable Network Graphics" image is not valid because it contains invalid pieces of data (crc error)yThe "Portable Network Graphics" image could not be loaded because one of its main piece of data (ihdr) might be corruptedUThis "Portable Network Graphics" image is invalid because it has missing image parts.[Could not decompress the image because it contains invalid compressed data.
Description: BThe "Portable Network Graphics" image contains an invalid palette.
The file being readed is not a valid "Portable Network Graphics" image because it contains an invalid header. This file may be corruped, try obtaining it again.nThis "Portable Network Graphics" image is not supported or it might be invalid.
This "Portable Network Graphics" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length.
Transparent proxy cannot bind. UDP Not supported by this proxy.$Buffer terminator must be specified.!Buffer start position is invalid.
Reply Code is not valid: %s
Unknown Protocol(Request method requires HTTP version 1.1DThis authentication method is already registered with class name %s.
Command not supported.
Address type not supported."%d: Circular links are not allowed
File "%s" not found
Object type not supported.
%s is not a valid service.
%s is not a valid IPv6 address:The requested IPVersion / Address family is not supported.
Set Size Exceeded.)UDP is not support in this SOCKS version.
Request rejected or failed.5Request rejected because SOCKS server cannot connect.QRequest rejected because the client program and identd report different user-ids.
Stack already created.1Only one TIdAntiFreeze can exist per application.&Cannot change IPVersion when connected$Can not bind in port range (%d - %d)
Connection Closed Gracefully.;Could not bind socket. Address and port are already in use.
Invalid Port Range (%d - %d)
Socket type not supported."Operation not supported on socket.
Protocol family not supported.0Address family not supported by protocol family.
Socket is not connected..Cannot send or receive after socket is closed.#Too many references, cannot splice.
Socket Error # %d
Operation would block.
Operation now in progress.
Operation already in progress.
Socket operation on non-socket.
Protocol not supported.
Not in cached update mode$Cannot access field '%s' in a filter
Untitled ApplicationFThe transaction isolation level must be dirty read for local databases4Failed attempting to retrieve time zone information.*Error on call Winsock2 library function %s&Error on loading Winsock2 library (%s)
Resolving hostname %s.
Connecting to %s.
%s:Cannot modify SessionName while AutoSessionName is enabled
Duplicate database name '%s'
Duplicate session name '%s'
Invalid session name %s
Session name missing1Cannot perform this operation on an open database2Cannot perform this operation on a closed database,Database handle owned by a different session2Cannot perform this operation on an active session
Error creating cursor handle/ReferenceTableName not specified for field '%s'
No value for parameter '%s'
Cannot connect to database '%s'ZAn error occurred while attempting to initialize the Borland Database Engine (error $%.4x)
/Variant does not reference an automation object7Dispatch methods do not support more than 64 parameters
Remote LoginZCannot enable AutoSessionName property with more than one session on a form or data-module^Cannot add a session to the form or data-module while session '%s' has AutoSessionName enabled
Parameter '%s' not found$Field '%s' is of an unsupported type
SQL not supported: %s
Execute not supported: %sfField '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc1Operation not allowed on a unidirectional dataset
%s is not a valid BCD value
Invalid format type for BCD$Could not parse SQL TimeStamp string
Invalid SQL date/time values
OLE error %.8x.Method '%s' not supported by automation object
')' or ',' expected but %s found Expression expected but %s found0Field '%s' cannot be used in a filter expression#NULL only allowed with '=' and '<>'
Type mismatch in expression>Operation cannot mix aggregate value with record-varying value.Arithmetic in filter expressions not supported)Expression is not an aggregate expression
Constant is not correct type %s,Aggregate expressions not allowed in filters"IN predicate list may not be empty
Invalid use of keyword
1Field '%s' cannot be a calculated or lookup field
Field '%s' cannot be modified0Field '%s' is not indexed and cannot be modified"Circular datalinks are not allowed/Lookup information for field '%s' is incomplete0Cannot perform this operation on an open dataset"Dataset not in edit or insert mode1Cannot perform this operation on a closed dataset!Cannot modify a read-only dataset#Nested dataset must inherit from %s(Filter expression incorrectly terminated
Unterminated string constant)Invalid filter expression character: '%s'
'(' expected but %s found
')' expected but %s found
Duplicate field name '%s'
Field '%s' not found#Cannot access field '%s' as type %s
Invalid value for field '%s'E%g is not a valid value for field '%s'. The allowed range is %g to %gE%s is not a valid value for field '%s'. The allowed range is %s to %s0'%s' is not a valid integer value for field '%s'0'%s' is not a valid boolean value for field '%s'7'%s' is not a valid floating point value for field '%s'6Type mismatch for field '%s', expecting: %s actual: %s6Size mismatch for field '%s', expecting: %d actual: %d Invalid variant type or size for field '%s'#Value of field '%s' is out of range
Field '%s' must have a value
Field '%s' has no dataset
Invalid stream operation
Invalid FieldKind Field '%s' is of an unknown type
Invalid Image trailerAInternal error: Extension Instance does not match Extension Label,Unsupported Application Extension block size
Unknown GIF block type'Object type not supported for operation
Unsupported PixelFormat
No help found for %s#No context-sensitive help installed
Invalid extension introducerúiled to allocate memory for GIF DIB
ExpandMError loading previously saved settings file: %s
%s does not allow hiding
UTF-7Ênnot remove shell notification iconÊnnot create shell notification icon
Unable to insert a line Clipboard does not support Icons
Text exceeds memo capacity/Menu '%s' is already being used by another form
- Dock zone has no controlLError loading dock zone from the stream. Expecting version %d, but found %d.eCannot assign a subitem to an actionbar when one of it's parent's is already assigned to an actionbar$Item %s has subitems, delete anyway?'You are not allowed to delete this item"Item %s is not allowed to be moved
Cannot drag a form"An error returned from DDE ($0%x)/DDE Error - conversation not established ($0%x)0Error occurred when DDE ran out of memory ($0%x)"Unable to connect DDE conversation
Error creating window class Cannot focus a disabled or invisible window!Control '%s' has no parent window$Parent given is not a parent of '%s'
Scan line index out of range!Cannot change the size of an icon Invalid operation on TOleGraphic
Unsupported clipboard format
List index out of bounds (%d) Out of memory while expanding memory stream
Error reading %s%s%s: %s
Failed to get data for '%s'
Failed to set data for '%s'
Resource %s not found
%s.Seek not implemented$Operation not allowed on sorted list$%s not in a class registration group
Property %s does not exist
Thread creation error: %s
Thread Error: %s (%d)
A class named %s already exists%List does not allow duplicates ($0%x)#A component named %s already exists%String list does not allow duplicates
Cannot create file "%s". %s
Cannot open file "%s". %s
Invalid stream format$''%s'' is not a valid component name
Invalid property element: %s
Invalid property type: %s
Invalid data type for '%s' List capacity out of bounds (%d)
List count out of bounds (%d)
Ancestor for '%s' not found
Cannot assign a %s to a %s
Bits index out of range*Can't write to a read-only resource streamECheckSynchronize called from thread $%x, which is NOT the main thread
Class %s not found
Wed?Access violation at address %p in module '%s'. %s of address %p
System Error. Code: %d.
/Custom variant type (%s%.4x) already used by %s*Custom variant type (%s%.4x) is not usable2Too many custom variant types have been registered5Could not convert variant of type (%s) into type (%s)=Overflow while converting variant of type (%s) into type (%s)
Operation not supported
External exception %x
Interface not supported
%s (%s, line %d)
Abstract Error(Exception %s in module %s at %p.
Application Error1Format '%s' invalid or incompatible with argument
No argument for format '%s'"Variant method calls not supported
Invalid variant operation
Invalid NULL variant operation%Invalid variant operation (%s%.8x)
%s,Custom variant type (%s%.4x) is out of range
Integer overflow Invalid floating point operation
Invalid pointer operation
Invalid class typecast0Access violation at address %p. %s of address %p
Operation aborted
!'%s' is not a valid integer value('%s' is not a valid floating point value
'%s' is not a valid date
'%s' is not a valid time!'%s' is not a valid date and time '%d.%d' is not a valid timestamp
I/O error %d
No help keyword specified.
No help found for %s#No context-sensitive help installed$No topic-based help system installed
Alt  Clipboard does not support Icons/Menu '%s' is already being used by another form
Error creating window class Cannot focus a disabled or invisible window!Control '%s' has no parent window
Invalid property value List capacity out of bounds (%d)
Abstract Error?Access violation at address %p in module '%s'. %s of address %p
Invalid variant operation%Invalid variant operation (%s%.8x)
%s5Could not convert variant of type (%s) into type (%s)=Overflow while converting variant of type (%s) into type (%s)
Privileged instruction(Exception %s in module %s at %p.
!'%s' is not a valid integer value
1.5.6.235
1.0.0.0
12.0.0.14

Explorer.EXE_1572_rwx_00FF0000_00001000:

%WinDir%\Aviation.exe

Explorer.EXE_1572_rwx_01E20000_00001000:

%WinDir%\Aviation.exe


Remove it with Ad-Aware

  1. Click (here) to download and install Ad-Aware Free Antivirus.
  2. Update the definition files.
  3. Run a full scan of your computer.


Manual removal*

  1. Terminate malicious process(es) (How to End a Process With the Task Manager):

    %original file name%.exe:1168

  2. Delete the original Trojan file.
  3. Delete or disinfect the following files created/modified by the Trojan:

    %WinDir%\Aviation.exe (59260 bytes)

  4. Delete the following value(s) in the autorun key (How to Work with System Registry):

    [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "Aviation.exe internacional" = "%WinDir%\Aviation.exe"

  5. Clean the Temporary Internet Files folder, which may contain infected files (How to clean Temporary Internet Files folder).
  6. Reboot the computer.

*Manual removal may cause unexpected system behaviour and should be performed at your own risk.

No votes yet

x

Our best antivirus yet!

Fresh new look. Faster scanning. Better protection.

Enjoy unique new features, lightning fast scans and a simple yet beautiful new look in our best antivirus yet!

For a quicker, lighter and more secure experience, download the all new adaware antivirus 12 now!

Download adaware antivirus 12
No thanks, continue to lavasoft.com
close x

Discover the new adaware antivirus 12

Our best antivirus yet

Download Now