From 00be603ad8efe2b2fe1d229dbbcf8e90be2f2014 Mon Sep 17 00:00:00 2001 From: dmex Date: Sun, 21 Oct 2012 10:45:40 +0000 Subject: [PATCH] Website: changed file encoding git-svn-id: svn://svn.code.sf.net/p/processhacker/code@5093 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- misc/website/websitev2/about.php | 240 ++- misc/website/websitev2/changelog.php | 72 +- misc/website/websitev2/css/lytebox.css | 184 +-- misc/website/websitev2/css/stylesheet.css | 784 +++++----- misc/website/websitev2/downloads.php | 186 +-- misc/website/websitev2/faq.php | 184 ++- misc/website/websitev2/features.php | 234 +-- misc/website/websitev2/footer.php | 44 +- misc/website/websitev2/header.php | 46 +- misc/website/websitev2/index.php | 536 +++---- misc/website/websitev2/screenshots.php | 104 +- misc/website/websitev2/scripts/lytebox.js | 1722 ++++++++++----------- 12 files changed, 2157 insertions(+), 2179 deletions(-) diff --git a/misc/website/websitev2/about.php b/misc/website/websitev2/about.php index 8d5b92f91..55672a940 100644 --- a/misc/website/websitev2/about.php +++ b/misc/website/websitev2/about.php @@ -1,129 +1,113 @@ - - -
-
-
-
- ProjectLogo -
- -
-

Process Hacker

- -
-
- -
-
-
-

Quick Links

- -
- -
-

Get Involved

- -
-
- -
-
-

Process Hacker was started in 2008 as an open source alternative to programs such as Task Manager and Process Explorer.

-

Registered: 16-10-2008

-

Licence: GNU General Public License version 3.0 GPLv3

-

Language: English

-

Intended Audience: Advanced End Users, Developers

-

Programming Language: C, C#

-
-
- -
-
-
- - User avatar -

- wj32 -

-
-
    -
  • Project Founder, Senior Maintainer
  • -
  • Joined: 16-10-2008
  • -
  • Status: Active
  • -
- - - Ohloh kudos - - - wj32 commit history - -
- -
- - User avatar -

- dmex -

-
-
    -
  • Project Operations, Maintainer
  • -
  • Joined: 28-08-2009
  • -
  • Status: Active
  • -
  • 0x0D06F00D
  • -
- - - Ohloh kudos - - - dmex commit history - -
- -
- - User avatar -

- XhmikosR -

-
-
    -
  • Installer Setup Maintainer
  • -
  • Joined: 20-02-2009
  • -
  • Status: Active
  • -
- - - Ohloh kudos - - - XhmikosR commit history - -
-
-
-
-
-
- + + +
+
+
+
+ +
+ +
+

Process Hacker

+ +
+
+ +
+
+
+

Quick Links

+ +
+ +
+

Get Involved

+ +
+
+ +
+
+

Process Hacker was started in 2008 as an open source alternative to programs such as Task Manager and Process Explorer.

+

Registered: 16-10-2008

+

Licence: GNU General Public License version 3.0 GPLv3

+

Language: English

+

Intended Audience: Advanced End Users, Developers

+

Programming Language: C, C#

+
+
+ +
+
+
+ + User avatar +

+ wj32 +

+
+
    +
  • Project Founder, Senior Maintainer
  • +
  • Joined: 16-10-2008
  • +
  • +
  • +
+ + + Ohloh kudos + + + wj32 commit history + +
+ +
+ + User avatar +

+ dmex +

+
+
    +
  • Project Operations, Maintainer
  • +
  • Email: dmex04 at gmail.com
  • +
  • Joined: 28-08-2009
  • +
+ + + Ohloh kudos + + + dmex commit history + +
+ +
+ +
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/misc/website/websitev2/changelog.php b/misc/website/websitev2/changelog.php index 9d757ee70..29ccbc552 100644 --- a/misc/website/websitev2/changelog.php +++ b/misc/website/websitev2/changelog.php @@ -1,37 +1,37 @@ - - -
-
-
-
- -
-
-

Process Hacker

- -
-
- -

This is the changelog from Process Hacker's SVN repository. As such it may contain information about unreleased versions of Process Hacker.

- -
- -
-
-
- + + +
+
+
+
+ +
+
+

Process Hacker

+ +
+
+ +

This is the changelog from Process Hacker's SVN repository. As such it may contain information about unreleased versions of Process Hacker.

+ +
+ +
+
+
+ \ No newline at end of file diff --git a/misc/website/websitev2/css/lytebox.css b/misc/website/websitev2/css/lytebox.css index 282739b3e..67e2b769e 100644 --- a/misc/website/websitev2/css/lytebox.css +++ b/misc/website/websitev2/css/lytebox.css @@ -1,93 +1,93 @@ -#lbOverlay { position: fixed; top: 0; left: 0; z-index: 99998; width: 100%; height: 500px; } - #lbOverlay.grey { background-color: #000000; } - #lbOverlay.red { background-color: #330000; } - #lbOverlay.green { background-color: #003300; } - #lbOverlay.blue { background-color: #011D50; } - #lbOverlay.gold { background-color: #666600; } - -#lbMain { position: absolute; left: 0; width: 100%; z-index: 99999; text-align: center; line-height: 0; } -#lbMain a img { border: none; } - -#lbOuterContainer { position: relative; background-color: #fff; width: 200px; height: 200px; margin: 0 auto; } - #lbOuterContainer.grey { border: 3px solid #888888; } - #lbOuterContainer.red { border: 3px solid #DD0000; } - #lbOuterContainer.green { border: 3px solid #00B000; } - #lbOuterContainer.blue { border: 3px solid #5F89D8; } - #lbOuterContainer.gold { border: 3px solid #B0B000; } - -#lbDetailsContainer { font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; width: 100%; line-height: 1.4em; overflow: auto; margin: 0 auto; } - #lbDetailsContainer.grey { border: 3px solid #888888; border-top: none; } - #lbDetailsContainer.red { border: 3px solid #DD0000; border-top: none; } - #lbDetailsContainer.green { border: 3px solid #00B000; border-top: none; } - #lbDetailsContainer.blue { border: 3px solid #5F89D8; border-top: none; } - #lbDetailsContainer.gold { border: 3px solid #B0B000; border-top: none; } - -#lbImageContainer, #lbIframeContainer { padding: 10px; } -#lbLoading { - position: absolute; top: 45%; left: 0%; height: 32px; width: 100%; text-align: center; line-height: 0; background: url(../images/lytebox/loading.gif) center no-repeat; -} - -#lbHoverNav { position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; } -#lbImageContainer>#lbHoverNav { left: 0; } -#lbHoverNav a { outline: none; } - -#lbPrev { width: 49%; height: 100%; background: transparent url(../images/lytebox/blank.gif) no-repeat; display: block; left: 0; float: left; } - #lbPrev.grey:hover, #lbPrev.grey:visited:hover { background: url(../images/lytebox/prev_grey.gif) left 15% no-repeat; } - #lbPrev.red:hover, #lbPrev.red:visited:hover { background: url(../images/lytebox/prev_red.gif) left 15% no-repeat; } - #lbPrev.green:hover, #lbPrev.green:visited:hover { background: url(../images/lytebox/prev_green.gif) left 15% no-repeat; } - #lbPrev.blue:hover, #lbPrev.blue:visited:hover { background: url(../images/lytebox/prev_blue.gif) left 15% no-repeat; } - #lbPrev.gold:hover, #lbPrev.gold:visited:hover { background: url(../images/lytebox/prev_gold.gif) left 15% no-repeat; } - -#lbNext { width: 49%; height: 100%; background: transparent url(../images/lytebox/blank.gif) no-repeat; display: block; right: 0; float: right; } - #lbNext.grey:hover, #lbNext.grey:visited:hover { background: url(../images/lytebox/next_grey.gif) right 15% no-repeat; } - #lbNext.red:hover, #lbNext.red:visited:hover { background: url(../images/lytebox/next_red.gif) right 15% no-repeat; } - #lbNext.green:hover, #lbNext.green:visited:hover { background: url(../images/lytebox/next_green.gif) right 15% no-repeat; } - #lbNext.blue:hover, #lbNext.blue:visited:hover { background: url(../images/lytebox/next_blue.gif) right 15% no-repeat; } - #lbNext.gold:hover, #lbNext.gold:visited:hover { background: url(../images/lytebox/next_gold.gif) right 15% no-repeat; } - -#lbPrev2, #lbNext2 { text-decoration: none; font-weight: bold; } - #lbPrev2.grey, #lbNext2.grey, #lbSpacer.grey { color: #333333; } - #lbPrev2.red, #lbNext2.red, #lbSpacer.red { color: #620000; } - #lbPrev2.green, #lbNext2.green, #lbSpacer.green { color: #003300; } - #lbPrev2.blue, #lbNext2.blue, #lbSpacer.blue { color: #01379E; } - #lbPrev2.gold, #lbNext2.gold, #lbSpacer.gold { color: #666600; } - -#lbPrev2_Off, #lbNext2_Off { font-weight: bold; } - #lbPrev2_Off.grey, #lbNext2_Off.grey { color: #CCCCCC; } - #lbPrev2_Off.red, #lbNext2_Off.red { color: #FFCCCC; } - #lbPrev2_Off.green, #lbNext2_Off.green { color: #82FF82; } - #lbPrev2_Off.blue, #lbNext2_Off.blue { color: #B7CAEE; } - #lbPrev2_Off.gold, #lbNext2_Off.gold { color: #E1E100; } - -#lbDetailsData { padding: 0 10px; } - #lbDetailsData.grey { color: #333333; } - #lbDetailsData.red { color: #620000; } - #lbDetailsData.green { color: #003300; } - #lbDetailsData.blue { color: #01379E; } - #lbDetailsData.gold { color: #666600; } - -#lbDetails { width: 60%; float: left; text-align: left; } -#lbCaption { display: block; font-weight: bold; } -#lbNumberDisplay { float: left; display: block; padding-bottom: 1.0em; } -#lbNavDisplay { float: left; display: block; padding-bottom: 1.0em; } - -#lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px; } - #lbClose.grey { background: url(../images/lytebox/close_grey.png) no-repeat; } - #lbClose.red { background: url(../images/lytebox/close_red.png) no-repeat; } - #lbClose.green { background: url(../images/lytebox/close_green.png) no-repeat; } - #lbClose.blue { background: url(../images/lytebox/close_blue.png) no-repeat; } - #lbClose.gold { background: url(../images/lytebox/close_gold.png) no-repeat; } - -#lbPlay { width: 64px; height: 28px; float: right; margin-bottom: 1px; } - #lbPlay.grey { background: url(../images/lytebox/play_grey.png) no-repeat; } - #lbPlay.red { background: url(../images/lytebox/play_red.png) no-repeat; } - #lbPlay.green { background: url(../images/lytebox/play_green.png) no-repeat; } - #lbPlay.blue { background: url(../images/lytebox/play_blue.png) no-repeat; } - #lbPlay.gold { background: url(../images/lytebox/play_gold.png) no-repeat; } - -#lbPause { width: 64px; height: 28px; float: right; margin-bottom: 1px; } - #lbPause.grey { background: url(../images/lytebox/pause_grey.png) no-repeat; } - #lbPause.red { background: url(../images/lytebox/pause_red.png) no-repeat; } - #lbPause.green { background: url(../images/lytebox/pause_green.png) no-repeat; } - #lbPause.blue { background: url(../images/lytebox/pause_blue.png) no-repeat; } +#lbOverlay { position: fixed; top: 0; left: 0; z-index: 99998; width: 100%; height: 500px; } + #lbOverlay.grey { background-color: #000000; } + #lbOverlay.red { background-color: #330000; } + #lbOverlay.green { background-color: #003300; } + #lbOverlay.blue { background-color: #011D50; } + #lbOverlay.gold { background-color: #666600; } + +#lbMain { position: absolute; left: 0; width: 100%; z-index: 99999; text-align: center; line-height: 0; } +#lbMain a img { border: none; } + +#lbOuterContainer { position: relative; background-color: #fff; width: 200px; height: 200px; margin: 0 auto; } + #lbOuterContainer.grey { border: 3px solid #888888; } + #lbOuterContainer.red { border: 3px solid #DD0000; } + #lbOuterContainer.green { border: 3px solid #00B000; } + #lbOuterContainer.blue { border: 3px solid #5F89D8; } + #lbOuterContainer.gold { border: 3px solid #B0B000; } + +#lbDetailsContainer { font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; width: 100%; line-height: 1.4em; overflow: auto; margin: 0 auto; } + #lbDetailsContainer.grey { border: 3px solid #888888; border-top: none; } + #lbDetailsContainer.red { border: 3px solid #DD0000; border-top: none; } + #lbDetailsContainer.green { border: 3px solid #00B000; border-top: none; } + #lbDetailsContainer.blue { border: 3px solid #5F89D8; border-top: none; } + #lbDetailsContainer.gold { border: 3px solid #B0B000; border-top: none; } + +#lbImageContainer, #lbIframeContainer { padding: 10px; } +#lbLoading { + position: absolute; top: 45%; left: 0%; height: 32px; width: 100%; text-align: center; line-height: 0; background: url(../images/lytebox/loading.gif) center no-repeat; +} + +#lbHoverNav { position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; } +#lbImageContainer>#lbHoverNav { left: 0; } +#lbHoverNav a { outline: none; } + +#lbPrev { width: 49%; height: 100%; background: transparent url(../images/lytebox/blank.gif) no-repeat; display: block; left: 0; float: left; } + #lbPrev.grey:hover, #lbPrev.grey:visited:hover { background: url(../images/lytebox/prev_grey.gif) left 15% no-repeat; } + #lbPrev.red:hover, #lbPrev.red:visited:hover { background: url(../images/lytebox/prev_red.gif) left 15% no-repeat; } + #lbPrev.green:hover, #lbPrev.green:visited:hover { background: url(../images/lytebox/prev_green.gif) left 15% no-repeat; } + #lbPrev.blue:hover, #lbPrev.blue:visited:hover { background: url(../images/lytebox/prev_blue.gif) left 15% no-repeat; } + #lbPrev.gold:hover, #lbPrev.gold:visited:hover { background: url(../images/lytebox/prev_gold.gif) left 15% no-repeat; } + +#lbNext { width: 49%; height: 100%; background: transparent url(../images/lytebox/blank.gif) no-repeat; display: block; right: 0; float: right; } + #lbNext.grey:hover, #lbNext.grey:visited:hover { background: url(../images/lytebox/next_grey.gif) right 15% no-repeat; } + #lbNext.red:hover, #lbNext.red:visited:hover { background: url(../images/lytebox/next_red.gif) right 15% no-repeat; } + #lbNext.green:hover, #lbNext.green:visited:hover { background: url(../images/lytebox/next_green.gif) right 15% no-repeat; } + #lbNext.blue:hover, #lbNext.blue:visited:hover { background: url(../images/lytebox/next_blue.gif) right 15% no-repeat; } + #lbNext.gold:hover, #lbNext.gold:visited:hover { background: url(../images/lytebox/next_gold.gif) right 15% no-repeat; } + +#lbPrev2, #lbNext2 { text-decoration: none; font-weight: bold; } + #lbPrev2.grey, #lbNext2.grey, #lbSpacer.grey { color: #333333; } + #lbPrev2.red, #lbNext2.red, #lbSpacer.red { color: #620000; } + #lbPrev2.green, #lbNext2.green, #lbSpacer.green { color: #003300; } + #lbPrev2.blue, #lbNext2.blue, #lbSpacer.blue { color: #01379E; } + #lbPrev2.gold, #lbNext2.gold, #lbSpacer.gold { color: #666600; } + +#lbPrev2_Off, #lbNext2_Off { font-weight: bold; } + #lbPrev2_Off.grey, #lbNext2_Off.grey { color: #CCCCCC; } + #lbPrev2_Off.red, #lbNext2_Off.red { color: #FFCCCC; } + #lbPrev2_Off.green, #lbNext2_Off.green { color: #82FF82; } + #lbPrev2_Off.blue, #lbNext2_Off.blue { color: #B7CAEE; } + #lbPrev2_Off.gold, #lbNext2_Off.gold { color: #E1E100; } + +#lbDetailsData { padding: 0 10px; } + #lbDetailsData.grey { color: #333333; } + #lbDetailsData.red { color: #620000; } + #lbDetailsData.green { color: #003300; } + #lbDetailsData.blue { color: #01379E; } + #lbDetailsData.gold { color: #666600; } + +#lbDetails { width: 60%; float: left; text-align: left; } +#lbCaption { display: block; font-weight: bold; } +#lbNumberDisplay { float: left; display: block; padding-bottom: 1.0em; } +#lbNavDisplay { float: left; display: block; padding-bottom: 1.0em; } + +#lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px; } + #lbClose.grey { background: url(../images/lytebox/close_grey.png) no-repeat; } + #lbClose.red { background: url(../images/lytebox/close_red.png) no-repeat; } + #lbClose.green { background: url(../images/lytebox/close_green.png) no-repeat; } + #lbClose.blue { background: url(../images/lytebox/close_blue.png) no-repeat; } + #lbClose.gold { background: url(../images/lytebox/close_gold.png) no-repeat; } + +#lbPlay { width: 64px; height: 28px; float: right; margin-bottom: 1px; } + #lbPlay.grey { background: url(../images/lytebox/play_grey.png) no-repeat; } + #lbPlay.red { background: url(../images/lytebox/play_red.png) no-repeat; } + #lbPlay.green { background: url(../images/lytebox/play_green.png) no-repeat; } + #lbPlay.blue { background: url(../images/lytebox/play_blue.png) no-repeat; } + #lbPlay.gold { background: url(../images/lytebox/play_gold.png) no-repeat; } + +#lbPause { width: 64px; height: 28px; float: right; margin-bottom: 1px; } + #lbPause.grey { background: url(../images/lytebox/pause_grey.png) no-repeat; } + #lbPause.red { background: url(../images/lytebox/pause_red.png) no-repeat; } + #lbPause.green { background: url(../images/lytebox/pause_green.png) no-repeat; } + #lbPause.blue { background: url(../images/lytebox/pause_blue.png) no-repeat; } #lbPause.gold { background: url(../images/lytebox/pause_gold.png) no-repeat; } \ No newline at end of file diff --git a/misc/website/websitev2/css/stylesheet.css b/misc/website/websitev2/css/stylesheet.css index 03e3aa6eb..66c529eb5 100644 --- a/misc/website/websitev2/css/stylesheet.css +++ b/misc/website/websitev2/css/stylesheet.css @@ -1,393 +1,393 @@ -img { border: 0; } - -body -{ - color: #333333; - /*'Segoe UI', Segoe, 'Helvetica Neue', Helvetica, Roboto, Arial, FreeSans, sans-serif*/ - font-family: Tahoma, sans-serif; - font-size: 12px; -} - -.ft -{ - font-size: 10px; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-style: normal; - font-weight: bold; -} - -.center -{ - text-align: center; -} - -.page -{ - max-width: 90em; - padding: 0 10px 5px 10px; - margin: 0 auto; - position: relative /* Addthis div alignment */ -} - -.project_logo -{ - width:64px; - height:64px -} - -.forumdate -{ - padding: 0 0 5px 0; - color: silver; -} - -a#download_button -{ - color:#FFF; - text-align:center; - font:1.308em/1.7em 'Segoe UI Light',Tahoma Light,Arial Light,Helvetica Light,sans-serif; - font-weight:lighter; - background-color:#629D4F; - display:block; - position:relative;padding-top:5px; - padding-bottom:5px; - width:300px; -} - -a#download_button:hover -{ - background-color:#1C8D2E; - color:#FFF; - text-decoration:none; - -webkit-transition:all .5s ease-in-out; - -moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out; - -o-transition:all .5s ease-in-out; - transition:all .5s ease-in-out; -} - -.user-avatar -{ - float:left; - margin: 15px 10px 0 0; - background:white; - padding:4px; - border: 1px solid #E5DFC7; - display: block; -} - -.ohloh-kudos -{ - position:absolute; - top: 10px; - right: 0; -} - -.ohloh-commits -{ - position:absolute; - bottom:0; - right:0; -} - -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td -{ - padding: 0; -} -fieldset, img -{ - border: 0 none; -} -address, caption, cite, code, dfn, em, strong, th, var -{ - font-style: normal; - font-weight: normal; -} -li -{ - list-style: none outside none; -} - -h1, h2, h3, h4, h5, h6 -{ - font-size: 100%; - font-weight: normal; -} -q:before, q:after -{ - content: ""; -} -.yui-d0, .yui-d1, .yui-d1f, .yui-d2, .yui-d2f, .yui-d3, .yui-d3f -{ - margin: auto; - text-align: left; - width: 57.69em; -} -.yui-t1, .yui-t2, .yui-t3, .yui-t4, .yui-t5, .yui-t6 -{ - margin: auto; - text-align: left; - width: 100%; -} -.yui-d0 -{ - margin: auto 10px; - width: auto; -} -.yui-b -{ - position: relative; -} - -.yui-t4 .yui-b -{ - float: right; - width: 20em; -} - -.yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf, .yui-gc .yui-u, .yui-gd .yui-g, .yui-g .yui-gc .yui-u, .yui-ge .yui-u, .yui-ge .yui-g, .yui-gf .yui-g, .yui-gf .yui-u -{ - float: right; -} -.yui-g div.first, .yui-gb div.first, .yui-gc div.first, .yui-gd div.first, .yui-ge div.first, .yui-gf div.first, .yui-g .yui-gc div.first, .yui-g .yui-ge div.first, .yui-gc div.first div.first -{ - float: left; -} -.yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf -{ - width: 49.1%; -} - -#bd:after, .yui-g:after, .yui-gb:after, .yui-gc:after, .yui-gd:after, .yui-ge:after, .yui-gf:after, .yui-t1:after, .yui-t2:after, .yui-t3:after, .yui-t4:after, .yui-t5:after, .yui-t6:after -{ - clear: both; - content: "."; - display: block; - height: 0; - visibility: hidden; -} - -.yui-d0 -{ - margin: 10px 20px; -} - -.portlet, .aside -{ - border-top: 1px solid #EBEBEB; - clear: both; - padding: 0 0 1em; -} - -.portlet > h2:first-child -{ - margin-top: 0; -} - -h1 -{ - clear: none; - font-size: 30px; -} - -h3 -{ - font-size: 16px; - line-height: 20px; - margin-bottom: 8px; - margin-top: 16px; -} - -p -{ - margin-bottom: 0.8em; - width: auto; -} - -:link, *:visited -{ - color: #0033AA; - text-decoration: none; -} - -:link:hover, *:visited:hover -{ - text-decoration: underline; -} - -:link:active, *:visited:active -{ - color: #3366CC; -} - -a[onclick], .collapsible legend a, a.js-action, a[onclick]:active, .collapsible legend a:active, a.js-action, a.js-action:active -{ - color: #009933; -} - -img, a img -{ - border: medium none; -} - -strong -{ - font-weight: bold; -} - -li -{ - padding-bottom: 0.5em; -} - -.two-column-list:after, .three-column-list:after -{ - clear: both; - content: "."; - display: block; - height: 0; - visibility: hidden; -} - -.flowed-block -{ - padding: 0 0 0 10px; - display: inline-block; - text-align: left; - vertical-align: top; - - /* For IE 7 */ - zoom: 1; - *display: inline; -} - -.logo -{ - display: inline; - float: left; - height: 64px; - margin: 0 5px 0 0; - width: 64px; -} - -div.watermark-apps-portlet h1, div.watermark-apps-portlet h2 -{ - clear: none; - color: #000000; - font-size: 30px; - font-weight: bold; - line-height: 34px; - margin-bottom: 6px; - margin-top: 0; -} - -.watermark-apps-portlet li -{ - display: inline; - list-style-type: none; -} - -.watermark-apps-portlet li a, .watermark-apps-portlet li span -{ - margin-right: 0.4em; - padding: 0.3em 0.5em; -} -.watermark-apps-portlet li:first-child a, .watermark-apps-portlet li:first-child span -{ - margin-left: -0.5em; -} - -.watermark-apps-portlet li a:link, .watermark-apps-portlet li a:visited -{ - background-color: #FFFFFF; - color: #000000; - text-decoration: none; -} -.watermark-apps-portlet li.active a, .watermark-apps-portlet li.active span -{ - font-weight: bold; - /*text-decoration: underline;*/ -} -.watermark-apps-portlet li a:hover -{ - background-color: #F3F3F3; - color: #000000; - - /*border: 1px solid transparent; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - border-color: #CEDFEB; - background-color: #F6F8F9;*/ -} - -.facetmenu -{ - width: 100%; -} - -.side .portlet -{ - background: none repeat scroll 0 0 #FBFBFB; - border: 1px solid #DEDEDE; - border-radius: 5px 5px 5px 5px; - margin: 0 auto 1em; - padding: 0.5em; -} -.side h2 -{ - font-size: 16px; -} - -.side ul -{ - background: none repeat scroll 0 0 #FBFBFB; -} - -.downloads li -{ - font-weight: bold; - margin: 0; - padding: 2px 0 0; -} -.downloads li a -{ - background: url("/images/project-downloads.png") no-repeat scroll right center #4F843C; - border-radius: 3px 3px 3px 3px; - color: #FFFFFF; - display: block; - margin: 0; - padding: 6% 40px 6% 6%; - text-decoration: none; -} -.downloads .version -{ - background: none repeat scroll 0 0 #D3E3C7; - border-radius: 5px 5px 0 0; - padding: 0.2em 1em; -} -.downloads .released -{ - background: none repeat scroll 0 0 #D3E3C7; - border-radius: 0 0 5px 5px; - margin: 0.3em 0 0.5em; - padding: 0.2em 1em; -} - -.involvement li -{ - font-weight: bold; - padding: 0; -} - -.involvement a -{ - background: url("/images/answers-arrow-right.png") no-repeat scroll right center transparent; - display: block; - padding: 0.3em; -} - -.involvement a:hover, .involvement li:hover -{ - background-color: #EEEEEE; - text-decoration: none; +img { border: 0; } + +body +{ + color: #333333; + /*'Segoe UI', Segoe, 'Helvetica Neue', Helvetica, Roboto, Arial, FreeSans, sans-serif*/ + font-family: Tahoma, sans-serif; + font-size: 12px; +} + +.ft +{ + font-size: 10px; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-style: normal; + font-weight: bold; +} + +.center +{ + text-align: center; +} + +.page +{ + max-width: 90em; + padding: 0 10px 5px 10px; + margin: 0 auto; + position: relative /* Addthis div alignment */ +} + +.project_logo +{ + width:64px; + height:64px +} + +.forumdate +{ + padding: 0 0 5px 0; + color: silver; +} + +a#download_button +{ + color:#FFF; + text-align:center; + font:1.308em/1.7em 'Segoe UI Light',Tahoma Light,Arial Light,Helvetica Light,sans-serif; + font-weight:lighter; + background-color:#629D4F; + display:block; + position:relative;padding-top:5px; + padding-bottom:5px; + width:300px; +} + +a#download_button:hover +{ + background-color:#1C8D2E; + color:#FFF; + text-decoration:none; + -webkit-transition:all .5s ease-in-out; + -moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out; + -o-transition:all .5s ease-in-out; + transition:all .5s ease-in-out; +} + +.user-avatar +{ + float:left; + margin: 15px 10px 0 0; + background:white; + padding:4px; + border: 1px solid #E5DFC7; + display: block; +} + +.ohloh-kudos +{ + position:absolute; + top: 10px; + right: 0; +} + +.ohloh-commits +{ + position:absolute; + bottom:0; + right:0; +} + +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td +{ + padding: 0; +} +fieldset, img +{ + border: 0 none; +} +address, caption, cite, code, dfn, em, strong, th, var +{ + font-style: normal; + font-weight: normal; +} +li +{ + list-style: none outside none; +} + +h1, h2, h3, h4, h5, h6 +{ + font-size: 100%; + font-weight: normal; +} +q:before, q:after +{ + content: ""; +} +.yui-d0, .yui-d1, .yui-d1f, .yui-d2, .yui-d2f, .yui-d3, .yui-d3f +{ + margin: auto; + text-align: left; + width: 57.69em; +} +.yui-t1, .yui-t2, .yui-t3, .yui-t4, .yui-t5, .yui-t6 +{ + margin: auto; + text-align: left; + width: 100%; +} +.yui-d0 +{ + margin: auto 10px; + width: auto; +} +.yui-b +{ + position: relative; +} + +.yui-t4 .yui-b +{ + float: right; + width: 20em; +} + +.yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf, .yui-gc .yui-u, .yui-gd .yui-g, .yui-g .yui-gc .yui-u, .yui-ge .yui-u, .yui-ge .yui-g, .yui-gf .yui-g, .yui-gf .yui-u +{ + float: right; +} +.yui-g div.first, .yui-gb div.first, .yui-gc div.first, .yui-gd div.first, .yui-ge div.first, .yui-gf div.first, .yui-g .yui-gc div.first, .yui-g .yui-ge div.first, .yui-gc div.first div.first +{ + float: left; +} +.yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf +{ + width: 49.1%; +} + +#bd:after, .yui-g:after, .yui-gb:after, .yui-gc:after, .yui-gd:after, .yui-ge:after, .yui-gf:after, .yui-t1:after, .yui-t2:after, .yui-t3:after, .yui-t4:after, .yui-t5:after, .yui-t6:after +{ + clear: both; + content: "."; + display: block; + height: 0; + visibility: hidden; +} + +.yui-d0 +{ + margin: 10px 20px; +} + +.portlet, .aside +{ + border-top: 1px solid #EBEBEB; + clear: both; + padding: 0 0 1em; +} + +.portlet > h2:first-child +{ + margin-top: 0; +} + +h1 +{ + clear: none; + font-size: 30px; +} + +h3 +{ + font-size: 16px; + line-height: 20px; + margin-bottom: 8px; + margin-top: 16px; +} + +p +{ + margin-bottom: 0.8em; + width: auto; +} + +:link, *:visited +{ + color: #0033AA; + text-decoration: none; +} + +:link:hover, *:visited:hover +{ + text-decoration: underline; +} + +:link:active, *:visited:active +{ + color: #3366CC; +} + +a[onclick], .collapsible legend a, a.js-action, a[onclick]:active, .collapsible legend a:active, a.js-action, a.js-action:active +{ + color: #009933; +} + +img, a img +{ + border: medium none; +} + +strong +{ + font-weight: bold; +} + +li +{ + padding-bottom: 0.5em; +} + +.two-column-list:after, .three-column-list:after +{ + clear: both; + content: "."; + display: block; + height: 0; + visibility: hidden; +} + +.flowed-block +{ + padding: 0 0 0 10px; + display: inline-block; + text-align: left; + vertical-align: top; + + /* For IE 7 */ + zoom: 1; + *display: inline; +} + +.logo +{ + display: inline; + float: left; + height: 64px; + margin: 0 5px 0 0; + width: 64px; +} + +div.watermark-apps-portlet h1, div.watermark-apps-portlet h2 +{ + clear: none; + color: #000000; + font-size: 30px; + font-weight: bold; + line-height: 34px; + margin-bottom: 6px; + margin-top: 0; +} + +.watermark-apps-portlet li +{ + display: inline; + list-style-type: none; +} + +.watermark-apps-portlet li a, .watermark-apps-portlet li span +{ + margin-right: 0.4em; + padding: 0.3em 0.5em; +} +.watermark-apps-portlet li:first-child a, .watermark-apps-portlet li:first-child span +{ + margin-left: -0.5em; +} + +.watermark-apps-portlet li a:link, .watermark-apps-portlet li a:visited +{ + background-color: #FFFFFF; + color: #000000; + text-decoration: none; +} +.watermark-apps-portlet li.active a, .watermark-apps-portlet li.active span +{ + font-weight: bold; + /*text-decoration: underline;*/ +} +.watermark-apps-portlet li a:hover +{ + background-color: #F3F3F3; + color: #000000; + + /*border: 1px solid transparent; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border-color: #CEDFEB; + background-color: #F6F8F9;*/ +} + +.facetmenu +{ + width: 100%; +} + +.side .portlet +{ + background: none repeat scroll 0 0 #FBFBFB; + border: 1px solid #DEDEDE; + border-radius: 5px 5px 5px 5px; + margin: 0 auto 1em; + padding: 0.5em; +} +.side h2 +{ + font-size: 16px; +} + +.side ul +{ + background: none repeat scroll 0 0 #FBFBFB; +} + +.downloads li +{ + font-weight: bold; + margin: 0; + padding: 2px 0 0; +} +.downloads li a +{ + background: url("/images/project-downloads.png") no-repeat scroll right center #4F843C; + border-radius: 3px 3px 3px 3px; + color: #FFFFFF; + display: block; + margin: 0; + padding: 6% 40px 6% 6%; + text-decoration: none; +} +.downloads .version +{ + background: none repeat scroll 0 0 #D3E3C7; + border-radius: 5px 5px 0 0; + padding: 0.2em 1em; +} +.downloads .released +{ + background: none repeat scroll 0 0 #D3E3C7; + border-radius: 0 0 5px 5px; + margin: 0.3em 0 0.5em; + padding: 0.2em 1em; +} + +.involvement li +{ + font-weight: bold; + padding: 0; +} + +.involvement a +{ + background: url("/images/answers-arrow-right.png") no-repeat scroll right center transparent; + display: block; + padding: 0.3em; +} + +.involvement a:hover, .involvement li:hover +{ + background-color: #EEEEEE; + text-decoration: none; } \ No newline at end of file diff --git a/misc/website/websitev2/downloads.php b/misc/website/websitev2/downloads.php index 6aa6c0a46..dd1192221 100644 --- a/misc/website/websitev2/downloads.php +++ b/misc/website/websitev2/downloads.php @@ -1,94 +1,94 @@ - - -
-
-
-
- -
- -
-

Process Hacker

- -
-
- -
-
-
-

Quick Links

- -
-
-

Get Involved

- -
-
- -
-
-

The latest stable version of Process Hacker is

-

The ReactOS Foundation has very kindly signed the driver so it works on 64-bit systems.

-

System Requirements:

-
    -
  • • Microsoft Windows XP SP2 or above, 32-bit or 64-bit.
  • -
  • • Intel Itanium platforms are not supported.
  • -
-
-
- -
-
-
-

Setup (recommended)

- - processhacker--setup.exe () - -

SHA1:

-
-
-

Binaries (portable)

- - processhacker--bin.zip () - -

SHA1:

-
-
-

Source Code

- - processhacker--src.zip () - -

SHA1:

-
-
-

Plugins SDK

- - processhacker--sdk.zip () - -

SHA1:

-
-
-
-
-
-
- + + +
+
+
+
+ +
+ +
+

Process Hacker

+ +
+
+ +
+
+
+

Quick Links

+ +
+
+

Get Involved

+ +
+
+ +
+
+

The latest stable version of Process Hacker is

+

The ReactOS Foundation has very kindly signed the driver so it works on 64-bit systems.

+

System Requirements:

+
    +
  • • Microsoft Windows XP SP2 or above, 32-bit or 64-bit.
  • +
  • • Intel Itanium platforms are not supported.
  • +
+
+
+ +
+
+
+

Setup (recommended)

+ + processhacker--setup.exe () + +

SHA1:

+
+
+

Binaries (portable)

+ + processhacker--bin.zip () + +

SHA1:

+
+
+

Source Code

+ + processhacker--src.zip () + +

SHA1:

+
+
+

Plugins SDK

+ + processhacker--sdk.zip () + +

SHA1:

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/misc/website/websitev2/faq.php b/misc/website/websitev2/faq.php index d7ce4f7aa..eae71bc33 100644 --- a/misc/website/websitev2/faq.php +++ b/misc/website/websitev2/faq.php @@ -1,96 +1,90 @@ - - -
-
-
-
- ProjectLogo -
- -
-

Process Hacker

- -
-
- -
-
-
-

Quick Links

- -
-
-

Get Involved

- -
-
- -
-
-

Why should I use Process Hacker? Why not Process Explorer or some other program?

-

- Process Hacker offers some pretty unique features, like an awesome run-as tool and - the ability to find and terminate hidden processes. The intended users are developers and - people interested in Windows internals. This tool is NOT intended for general system - optimization. -

- -

Why is there annoying bug X in Process Hacker? Why is Process Hacker missing feature Y?

-

Please report any bugs or feature requests in the forums.

- -

"Process Hacker"? Is this a dangerous "hacking" tool?

-

Please read about the correct definition of "hacker".

- -

Process Hacker can kill my anti-virus software! Is this a bug in the anti-virus software?

-

No. Please do not report these incidents as bugs because you will be wasting their time.

-

My anti-virus software reports Process Hacker as a threat!

-

- This is an expected part of the FUD (fear, uncertainty and doubt) campaigns of anti-virus companies - like Kaspersky Lab, who want to scare their users as much as possible. This is completely - misleading and irresponsible, but is typical of the "security industry". The source code of - Process Hacker is available; verify and build the code yourself if you do not trust the binary releases. -

-

Anti-cheat software reports Process Hacker as a game cheating tool!

-

As with anti-virus FUD campaigns, this is similarly ridiculous. Unfortunately there is nothing much that can be done about this.

- -

Is Process Hacker a portable application?

-

Yes. If you want settings to be saved on your USB drive, create a file named "ProcessHacker.exe.settings.xml" in the same directory as ProcessHacker.exe. Settings will then automatically be saved there.

- -

Symbols don't work properly!

-

- Firstly, you need the latest dbghelp.dll version. Install Debugging Tools - for Windows, open Process Hacker options, click on Symbols, and locate dbghelp.dll. - It is usually in C:\Program Files\Debugging Tools for Windows (x86). Next, you need - to configure the search path. If you don't know what to do, enter - SRV*SOME_FOLDER*http://msdl.microsoft.com/download/symbols. - Replace SOME_FOLDER with any folder you can write to, like D:\Symbols. - Now you can restart Process Hacker and view full symbols. -

- -

Why can't I build Process Hacker?

-

The most likely problem is that you do not have the latest Windows SDK installed.

-
-
-
-
-
- + + +
+
+
+
+ ProjectLogo +
+ +
+

Process Hacker

+ +
+
+ +
+
+
+

Get Involved

+ +
+
+ +
+
+

Why should I use Process Hacker? Why not Process Explorer or some other program?

+

+ Process Hacker offers some pretty unique features, like an awesome run-as tool and + the ability to find and terminate hidden processes. The intended users are developers and + people interested in Windows internals. This tool is NOT intended for general system + optimization. +

+ +

Why is there annoying bug X in Process Hacker? Why is Process Hacker missing feature Y?

+

Please report any bugs or feature requests in the forums.

+ +

"Process Hacker"? Is this a dangerous "hacking" tool?

+

Please read about the correct definition of "hacker".

+ +

Process Hacker can kill my anti-virus software! Is this a bug in the anti-virus software?

+

No. Please do not report these incidents as bugs because you will be wasting their time.

+

My anti-virus software reports Process Hacker as a threat!

+

+ This is an expected part of the FUD (fear, uncertainty and doubt) campaigns of anti-virus companies + like Kaspersky Lab, who want to scare their users as much as possible. This is completely + misleading and irresponsible, but is typical of the "security industry". The source code of + Process Hacker is available; verify and build the code yourself if you do not trust the binary releases. +

+

Anti-cheat software reports Process Hacker as a game cheating tool!

+

As with anti-virus FUD campaigns, this is similarly ridiculous. Unfortunately there is nothing much that can be done about this.

+ +

Is Process Hacker a portable application?

+

Yes. If you want settings to be saved on your USB drive, create a file named "ProcessHacker.exe.settings.xml" in the same directory as ProcessHacker.exe. Settings will then automatically be saved there.

+ +

Symbols don't work properly!

+

+ Firstly, you need the latest dbghelp.dll version. Install the latest Windows SDK (information and links are located below), open Process Hacker options, click on Symbols, and locate dbghelp.dll. + It is usually in C:\Program Files\Debugging Tools for Windows (x86) or if you're using the Windows 8 SDK it'll be located at C:\Program Files (x86)\Windows Kits\8.0\Debuggers. Next, you need + to configure the search path. If you don't know what to do, enter + SRV*SOME_FOLDER*http://msdl.microsoft.com/download/symbols. + Replace SOME_FOLDER with any folder you can write to, like D:\Symbols. + Now you can restart Process Hacker and view full symbols. +

+ +

Why can't I build Process Hacker?

+

The most likely problem is that you do not have the latest Windows SDK installed.

+

For Windows XP, Vista and Windows 7 you'll need the Windows SDK for Windows 7 and .NET Framework 4

+

For Windows Vista, Windows 7 and Windows 8 you'll need the Windows 8 SDK

+
+
+
+
+
+ \ No newline at end of file diff --git a/misc/website/websitev2/features.php b/misc/website/websitev2/features.php index 4719ed6c6..126c0b6de 100644 --- a/misc/website/websitev2/features.php +++ b/misc/website/websitev2/features.php @@ -1,118 +1,118 @@ - - -
-
-
-
- -
- -
-

Process Hacker

- -
-
- -
-
-
-

Get Involved

- -
-
- -
-
-

A very incomplete feature list for Process Hacker 2:

-
-

Processes

-
  • • View processes in a tree view with highlighting
  • -
  • • View detailed process statistics and performance graphs
  • -
  • • Process tooltips are detailed and show context-specific information
  • -
  • • Select multiple processes and terminate, suspend or resume them
  • -
  • • (32-bit only) Bypass almost all forms of process protection
  • -
  • • Restart processes
  • -
  • • Empty the working set of processes
  • -
  • • Set affinity, priority and virtualization
  • -
  • • Create process dumps
  • -
  • • Use over a dozen methods to terminate processes
  • -
  • • Detach processes from debuggers
  • -
  • • View process heaps
  • -
  • • View GDI handles
  • -
  • • Inject DLLs
  • -
  • • View DEP status, and even enable/disable DEP
  • -
  • • View environment variables
  • -
  • • View and edit process security descriptors
  • -
  • • View image properties such as imports and exports
  • - -

    Threads

    -
  • • View thread start addresses and stacks with symbols
  • -
  • • Threads are highlighted if suspended, or are GUI threads
  • -
  • • Select multiple threads and terminate, suspend or resume them
  • -
  • • Force terminate threads
  • -
  • • View TEB addresses and view TEB contents
  • -
  • • (32-bit only) Find out what a thread is doing, and what objects it is waiting on
  • -
  • • View and edit thread security descriptors
  • - -

    Tokens

    -
  • • View full token details, including user, owner, primary group, session ID, elevation status, and more
  • -
  • • View token groups
  • -
  • • View privileges and even enable, disable or remove them
  • -
  • • View and edit token security descriptors
  • - -

    Modules

    -
  • • View modules and mapped files in one list
  • -
  • • Unload DLLs
  • -
  • • View file properties and open them in Windows Explorer
  • - -

    Memory

    -
  • • View a virtual memory list
  • -
  • • Read and modify memory using a hex editor
  • -
  • • Dump memory to a file
  • -
  • • Free or decommit memory
  • -
  • • Scan for strings
  • - -

    Handles

    -
  • • View process handles, complete with highlighting for attributes
  • -
  • • Search for handles (and DLLs and mapped files)
  • -
  • • Close handles
  • -
  • • (32-bit only) Set handle attributes - Protected and Inherit
  • -
  • • Granted access of handles can be viewed symbolically instead of plain hex numbers
  • -
  • • View detailed object properties when supported
  • -
  • • View and edit object security descriptors
  • - -

    Services

    -
  • • View a list of all services
  • -
  • • Create services
  • -
  • • Start, stop, pause, continue or delete services
  • -
  • • Edit service properties
  • -
  • • View service dependencies and dependents
  • -
  • • View and edit service security descriptors
  • - -

    Network

    -
  • • View a list of network connections
  • -
  • • Close network connections
  • -
  • • Use tools such as whois, traceroute and ping
  • -
    -
    -
    -
    -
    -
    - + + +
    +
    +
    +
    + +
    + +
    +

    Process Hacker

    + +
    +
    + +
    +
    +
    +

    Get Involved

    + +
    +
    + +
    +
    +

    A very incomplete feature list for Process Hacker 2:

    +
    +

    Processes

    +
  • • View processes in a tree view with highlighting
  • +
  • • View detailed process statistics and performance graphs
  • +
  • • Process tooltips are detailed and show context-specific information
  • +
  • • Select multiple processes and terminate, suspend or resume them
  • +
  • • (32-bit only) Bypass almost all forms of process protection
  • +
  • • Restart processes
  • +
  • • Empty the working set of processes
  • +
  • • Set affinity, priority and virtualization
  • +
  • • Create process dumps
  • +
  • • Use over a dozen methods to terminate processes
  • +
  • • Detach processes from debuggers
  • +
  • • View process heaps
  • +
  • • View GDI handles
  • +
  • • Inject DLLs
  • +
  • • View DEP status, and even enable/disable DEP
  • +
  • • View environment variables
  • +
  • • View and edit process security descriptors
  • +
  • • View image properties such as imports and exports
  • + +

    Threads

    +
  • • View thread start addresses and stacks with symbols
  • +
  • • Threads are highlighted if suspended, or are GUI threads
  • +
  • • Select multiple threads and terminate, suspend or resume them
  • +
  • • Force terminate threads
  • +
  • • View TEB addresses and view TEB contents
  • +
  • • (32-bit only) Find out what a thread is doing, and what objects it is waiting on
  • +
  • • View and edit thread security descriptors
  • + +

    Tokens

    +
  • • View full token details, including user, owner, primary group, session ID, elevation status, and more
  • +
  • • View token groups
  • +
  • • View privileges and even enable, disable or remove them
  • +
  • • View and edit token security descriptors
  • + +

    Modules

    +
  • • View modules and mapped files in one list
  • +
  • • Unload DLLs
  • +
  • • View file properties and open them in Windows Explorer
  • + +

    Memory

    +
  • • View a virtual memory list
  • +
  • • Read and modify memory using a hex editor
  • +
  • • Dump memory to a file
  • +
  • • Free or decommit memory
  • +
  • • Scan for strings
  • + +

    Handles

    +
  • • View process handles, complete with highlighting for attributes
  • +
  • • Search for handles (and DLLs and mapped files)
  • +
  • • Close handles
  • +
  • • (32-bit only) Set handle attributes - Protected and Inherit
  • +
  • • Granted access of handles can be viewed symbolically instead of plain hex numbers
  • +
  • • View detailed object properties when supported
  • +
  • • View and edit object security descriptors
  • + +

    Services

    +
  • • View a list of all services
  • +
  • • Create services
  • +
  • • Start, stop, pause, continue or delete services
  • +
  • • Edit service properties
  • +
  • • View service dependencies and dependents
  • +
  • • View and edit service security descriptors
  • + +

    Network

    +
  • • View a list of network connections
  • +
  • • Close network connections
  • +
  • • Use tools such as whois, traceroute and ping
  • +
    +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/misc/website/websitev2/footer.php b/misc/website/websitev2/footer.php index 0bdbe09e0..80e5766ef 100644 --- a/misc/website/websitev2/footer.php +++ b/misc/website/websitev2/footer.php @@ -1,23 +1,23 @@ -
    - Process Hacker is Hosted by SourceForge.net -
    - Copyright © 2008-2012 wj32 -
    - - - - - +
    + Process Hacker is Hosted by SourceForge.net +
    + Copyright © 2008-2012 wj32 +
    + + + + + \ No newline at end of file diff --git a/misc/website/websitev2/header.php b/misc/website/websitev2/header.php index a10cbea5a..efa7c7296 100644 --- a/misc/website/websitev2/header.php +++ b/misc/website/websitev2/header.php @@ -1,24 +1,24 @@ - - - - - - - - - - - - - - - - - - <?php echo $pagetitle ?> - Process Hacker - - + + + + + + + + + + + + + + + + + + <?php echo $pagetitle ?> - Process Hacker + + \ No newline at end of file diff --git a/misc/website/websitev2/index.php b/misc/website/websitev2/index.php index 68a46dc6d..5a4b39385 100644 --- a/misc/website/websitev2/index.php +++ b/misc/website/websitev2/index.php @@ -1,269 +1,269 @@ - - -
    -
    -
    -
    - -
    - -
    -

    Process Hacker

    - -
    -
    - -
    -
    -
    -

    Downloads

    -
    -
    - Latest version is -
    - -
    - Released -
    -
    -
    - - Donate - -
    -
    - - -
    - -
    -
    -

    Process Hacker is a free and open source process viewer. This multi-purpose tool will assist you with debugging, malware detection and system monitoring. It includes powerful process termination, memory viewing/editing and other unique and specialized features.

    -

    Key features of Process Hacker:

    -
      -
    • • A simple, customizable tree view with highlighting showing you the processes running on your computer.
    • -
    • • Detailed system statistics with graphs.
    • -
    • • Advanced features not found in other programs, such as detaching from debuggers, viewing GDI handles, viewing heaps, injecting and unloading DLLs, and more.
    • -
    • • Powerful process termination that bypasses security software and rootkits.
    • -
    • • View, edit and control services, including those not shown by the Services console.
    • -
    • • View and close network connections.
    • -
    • • Starts up almost instantly, unlike other programs.
    • -
    • Many more features...
    • -
    -

    Compared with Process Explorer, Process Hacker:

    -
      -
    • • Implements all of the functionality offered by Process Explorer, plus more advanced features.
    • -
    • • Allows you to see what a thread is waiting on.
    • -
    • • Has advanced string scanning capabilities, as well as regular expression filtering.
    • -
    • • Highlights both relocated and .NET DLLs.
    • -
    • • Shows symbolic access masks (e.g. Read, Write), rather than just numbers (e.g. 0x12019f).
    • -
    • • Shows names for transaction manager objects and ETW registration objects.
    • -
    • • Shows detailed token information, as well as allowing privileges to be enabled and disabled.
    • -
    -
    -
    -
    - -
    -
    -
    - Rss -

    Latest News

    - 2 AND - p.post_approved = 1 AND - p.post_id = t.topic_last_post_id AND - p.poster_id = u.user_id - ORDER BY p.post_id DESC LIMIT $topicnumber"; - - // Check if we have a valid database connection, preform the query if we do. - if (!empty($db) && ($query = $db->sql_query($sql))) - { - while ($row = $db->sql_fetchrow($query)) - { - $topic_title = $row['topic_title']; - //$post_text = $row['post_text']; - $author_avatar = $row['user_avatar']; - - $post_time = $row["post_time"]; - $post_local_time = date('F jS, Y, g:i a', $post_time); - - $post_author = get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']); - $post_date = get_time_ago($post_time); - $post_link = append_sid("{$phpbb_root_path}viewtopic.php", "p=" . $row['post_id'] . "#p" . $row['post_id']); - - //$bbcode = new bbcode(base64_encode($row['bbcode_bitfield'])); - //$bbcode->bbcode_second_pass($post_text, $row['bbcode_uid'], $row['bbcode_bitfield']); - //$post_text = smiley_text($post_text); - //$post_text = str_replace(' ','',$post_text); - //$post_text = str_replace('./forums','http://processhacker.sourceforge.net/forums/',$post_text); - //$post_text = substr($post_text, 0, 300); - //if ($author_avatar) $avatar = get_user_avatar($author_avatar, $row['user_avatar_type'], 16, 16); - - echo - "
    - {$topic_title} - by - {$post_author} - -
    {$post_date} - {$post_local_time}
    -
    "; - } - $db->sql_freeresult($query); - } - else - { - // Check if we have a valid database connection. - if (!empty($db)) - { - $error = $db->sql_error(); - - echo "

    Query failed: ".$error['message']."

    "; - } - else - { - echo "

    Query failed: Unknown error.

    "; - } - } - ?> -
    -
    - -
    -
    - Rss -

    Forum Activity

    - 2 AND - p.post_approved = 1 AND - p.post_id = t.topic_last_post_id AND - p.poster_id = u.user_id - ORDER BY p.post_id DESC LIMIT $topicnumber"; - - // Check if we have a valid database connection, preform the query if we do. - if (!empty($db) && ($query = $db->sql_query($sql))) - { - while ($row = $db->sql_fetchrow($query)) - { - $topic_title = $row['topic_title']; - //$post_text = nl2br($row['post_text']); - $author_avatar = $row['user_avatar']; - - $post_time = $row["post_time"]; - $post_local_time = date('F jS, Y, g:i a', $post_time); - - $post_author = get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']); - $post_date = get_time_ago($post_time); - $post_link = append_sid("{$phpbb_root_path}viewtopic.php", "p=" . $row['post_id'] . "#p" . $row['post_id']); - //if ($author_avatar) $avatar = get_user_avatar($author_avatar, $row['user_avatar_type'], 16, 16); - - echo - "
    - {$topic_title} - by - {$post_author} - -
    {$post_date} - {$post_local_time}
    -
    "; - } - $db->sql_freeresult($query); - } - else - { - // Check if we have a valid database connection. - if (!empty($db)) - { - $error = $db->sql_error(); - - echo "

    Query failed: ".$error['message']."

    "; - } - else - { - echo "

    Query failed: Unknown error.

    "; - } - } - ?> -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -

    Statistics

    - -
    -
    -
    -
    -
    - - -
    - - - - -
    - -
    - - - - + + +
    +
    +
    +
    + +
    + +
    +

    Process Hacker

    + +
    +
    + +
    +
    +
    +

    Downloads

    +
    +
    + Latest version is +
    + +
    + Released +
    +
    +
    + + Donate + +
    +
    + + +
    + +
    +
    +

    Process Hacker is a free and open source process viewer. This multi-purpose tool will assist you with debugging, malware detection and system monitoring. It includes powerful process termination, memory viewing/editing and other unique and specialized features.

    +

    Key features of Process Hacker:

    +
      +
    • • A simple, customizable tree view with highlighting showing you the processes running on your computer.
    • +
    • • Detailed system statistics with graphs.
    • +
    • • Advanced features not found in other programs, such as detaching from debuggers, viewing GDI handles, viewing heaps, injecting and unloading DLLs, and more.
    • +
    • • Powerful process termination that bypasses security software and rootkits.
    • +
    • • View, edit and control services, including those not shown by the Services console.
    • +
    • • View and close network connections.
    • +
    • • Starts up almost instantly, unlike other programs.
    • +
    • Many more features...
    • +
    +

    Compared with Process Explorer, Process Hacker:

    +
      +
    • • Implements all of the functionality offered by Process Explorer, plus more advanced features.
    • +
    • • Allows you to see what a thread is waiting on.
    • +
    • • Has advanced string scanning capabilities, as well as regular expression filtering.
    • +
    • • Highlights both relocated and .NET DLLs.
    • +
    • • Shows symbolic access masks (e.g. Read, Write), rather than just numbers (e.g. 0x12019f).
    • +
    • • Shows names for transaction manager objects and ETW registration objects.
    • +
    • • Shows detailed token information, as well as allowing privileges to be enabled and disabled.
    • +
    +
    +
    +
    + +
    +
    +
    + Rss +

    Latest News

    + 2 AND + p.post_approved = 1 AND + p.post_id = t.topic_last_post_id AND + p.poster_id = u.user_id + ORDER BY p.post_id DESC LIMIT $topicnumber"; + + // Check if we have a valid database connection, preform the query if we do. + if (!empty($db) && ($query = $db->sql_query($sql))) + { + while ($row = $db->sql_fetchrow($query)) + { + $topic_title = $row['topic_title']; + //$post_text = $row['post_text']; + $author_avatar = $row['user_avatar']; + + $post_time = $row["post_time"]; + $post_local_time = date('F jS, Y, g:i a', $post_time); + + $post_author = get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']); + $post_date = get_time_ago($post_time); + $post_link = append_sid("{$phpbb_root_path}viewtopic.php", "p=" . $row['post_id'] . "#p" . $row['post_id']); + + //$bbcode = new bbcode(base64_encode($row['bbcode_bitfield'])); + //$bbcode->bbcode_second_pass($post_text, $row['bbcode_uid'], $row['bbcode_bitfield']); + //$post_text = smiley_text($post_text); + //$post_text = str_replace(' ','',$post_text); + //$post_text = str_replace('./forums','http://processhacker.sourceforge.net/forums/',$post_text); + //$post_text = substr($post_text, 0, 300); + //if ($author_avatar) $avatar = get_user_avatar($author_avatar, $row['user_avatar_type'], 16, 16); + + echo + "
    + {$topic_title} + by + {$post_author} + +
    {$post_date} - {$post_local_time}
    +
    "; + } + $db->sql_freeresult($query); + } + else + { + // Check if we have a valid database connection. + if (!empty($db)) + { + $error = $db->sql_error(); + + echo "

    Query failed: ".$error['message']."

    "; + } + else + { + echo "

    Query failed: Unknown error.

    "; + } + } + ?> +
    +
    + +
    +
    + Rss +

    Forum Activity

    + 2 AND + p.post_approved = 1 AND + p.post_id = t.topic_last_post_id AND + p.poster_id = u.user_id + ORDER BY p.post_id DESC LIMIT $topicnumber"; + + // Check if we have a valid database connection, preform the query if we do. + if (!empty($db) && ($query = $db->sql_query($sql))) + { + while ($row = $db->sql_fetchrow($query)) + { + $topic_title = $row['topic_title']; + //$post_text = nl2br($row['post_text']); + $author_avatar = $row['user_avatar']; + + $post_time = $row["post_time"]; + $post_local_time = date('F jS, Y, g:i a', $post_time); + + $post_author = get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']); + $post_date = get_time_ago($post_time); + $post_link = append_sid("{$phpbb_root_path}viewtopic.php", "p=" . $row['post_id'] . "#p" . $row['post_id']); + //if ($author_avatar) $avatar = get_user_avatar($author_avatar, $row['user_avatar_type'], 16, 16); + + echo + "
    + {$topic_title} + by + {$post_author} + +
    {$post_date} - {$post_local_time}
    +
    "; + } + $db->sql_freeresult($query); + } + else + { + // Check if we have a valid database connection. + if (!empty($db)) + { + $error = $db->sql_error(); + + echo "

    Query failed: ".$error['message']."

    "; + } + else + { + echo "

    Query failed: Unknown error.

    "; + } + } + ?> +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +

    Statistics

    + +
    +
    +
    +
    +
    + + +
    + + + + +
    + +
    + + + + \ No newline at end of file diff --git a/misc/website/websitev2/screenshots.php b/misc/website/websitev2/screenshots.php index 293e250a5..655557058 100644 --- a/misc/website/websitev2/screenshots.php +++ b/misc/website/websitev2/screenshots.php @@ -1,53 +1,53 @@ - - -
    -
    -
    -
    - -
    - -
    -

    Process Hacker

    - -
    -
    -
    - -
    -

    Incomplete.

    - -
    -
    -

    Main Window

    - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - + + +
    +
    +
    +
    + +
    + +
    +

    Process Hacker

    + +
    +
    +
    + +
    +

    Incomplete.

    + +
    +
    +

    Main Window

    + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/misc/website/websitev2/scripts/lytebox.js b/misc/website/websitev2/scripts/lytebox.js index 3c22fb9c3..b1d6dbfae 100644 --- a/misc/website/websitev2/scripts/lytebox.js +++ b/misc/website/websitev2/scripts/lytebox.js @@ -1,862 +1,862 @@ -//***********************************************************************************************************************************/ -// LyteBox v3.25 -// -// Author: Markus F. Hay -// Website: http://www.dolem.com/lytebox -// Date: July 8, 2011 -// License: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/) -// Browsers: Tested successfully with the following browsers (using no DOCTYPE and Strict/Transitional/Loose DOCTYPES): -// * Firefox: 1.5+ -// * Internet Explorer: 9.0, 8.0, 7.0, 6.0 SP2, 5.5 SP2 -// * Opera: 9.23+ -// -// Releases: For release information, support, custom modules, etc., visit http://www.dolem.com/lytebox/forums/ -// -// * v3.25 (07/08/11) -// * v3.24 (07/06/11) -// * v3.23 (07/05/11) -// * v3.22 (10/02/07) -// * v3.21 (09/30/07) -// * v3.20 (07/12/07) -// * v3.10 (05/28/07) -// * v3.00 (05/15/07) -// * v2.02 (11/13/06) -//***********************************************************************************************************************************/ -Array.prototype.removeDuplicates = function () { for (var i = 1; i < this.length; i++) { if (this[i][0] == this[i-1][0]) { this.splice(i,1); } } } -Array.prototype.empty = function () { for (var i = 0; i <= this.length; i++) { this.shift(); } } -String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g, ''); } - -function LyteBox() { - /*** Start Global Configuration ***/ - this.theme = 'grey'; // themes: grey (default), red, green, blue, gold - this.hideFlash = true; // controls whether or not Flash objects should be hidden - this.outerBorder = true; // controls whether to show the outer grey (or theme) border - this.resizeSpeed = 8; // controls the speed of the image resizing (1=slowest and 10=fastest) - this.maxOpacity = 80; // higher opacity = darker overlay, lower opacity = lighter overlay - this.navType = 1; // 1 = "Prev/Next" buttons on top left and left (default), 2 = "<< prev | next >>" links next to image number - this.autoResize = true; // controls whether or not images should be resized if larger than the browser window dimensions - this.doAnimations = true; // controls whether or not "animate" Lytebox, i.e. resize transition between images, fade in/out effects, etc. - - this.borderSize = 12; // if you adjust the padding in the CSS, you will need to update this variable -- otherwise, leave this alone... - /*** End Global Configuration ***/ - - /*** Configure Slideshow Options ***/ - this.slideInterval = 4000; // Change value (milliseconds) to increase/decrease the time between "slides" (10000 = 10 seconds) - this.showNavigation = true; // true to display Next/Prev buttons/text during slideshow, false to hide - this.showClose = true; // true to display the Close button, false to hide - this.showDetails = true; // true to display image details (caption, count), false to hide - this.showPlayPause = true; // true to display pause/play buttons next to close button, false to hide - this.autoEnd = true; // true to automatically close Lytebox after the last image is reached, false to keep open - this.pauseOnNextClick = false; // true to pause the slideshow when the "Next" button is clicked - this.pauseOnPrevClick = true; // true to pause the slideshow when the "Prev" button is clicked - /*** End Slideshow Configuration ***/ - - if(this.resizeSpeed > 10) { this.resizeSpeed = 10; } - if(this.resizeSpeed < 1) { resizeSpeed = 1; } - this.resizeDuration = (11 - this.resizeSpeed) * 0.15; - this.resizeWTimerArray = new Array(); - this.resizeWTimerCount = 0; - this.resizeHTimerArray = new Array(); - this.resizeHTimerCount = 0; - this.showContentTimerArray = new Array(); - this.showContentTimerCount = 0; - this.overlayTimerArray = new Array(); - this.overlayTimerCount = 0; - this.imageTimerArray = new Array(); - this.imageTimerCount = 0; - this.timerIDArray = new Array(); - this.timerIDCount = 0; - this.slideshowIDArray = new Array(); - this.slideshowIDCount = 0; - this.imageArray = new Array(); - this.activeImage = null; - this.slideArray = new Array(); - this.activeSlide = null; - this.frameArray = new Array(); - this.activeFrame = null; - this.checkFrame(); - this.isSlideshow = false; - this.isLyteframe = false; - /*@cc_on - /*@if (@_jscript) - this.ie = (document.all && !window.opera) ? true : false; - /*@else @*/ - this.ie = false; - /*@end - @*/ - this.ie7 = (this.ie && window.XMLHttpRequest); - this.ie8 = (this.ie && navigator.appVersion.indexOf('IE 8') > 0); - this.ie9 = (this.ie && navigator.appVersion.indexOf('IE 9') > 0); - this.initialize(); -} -LyteBox.prototype.initialize = function() { - this.updateLyteboxItems(); - var objBody = this.doc.getElementsByTagName("body").item(0); - if (this.doc.getElementById('lbOverlay')) { - objBody.removeChild(this.doc.getElementById("lbOverlay")); - objBody.removeChild(this.doc.getElementById("lbMain")); - } - var objOverlay = this.doc.createElement("div"); - objOverlay.setAttribute('id','lbOverlay'); - objOverlay.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - if ((this.ie && !this.ie7) || (this.ie7 && this.doc.compatMode == 'BackCompat')) { - objOverlay.style.position = 'absolute'; - } - objOverlay.style.display = 'none'; - objBody.appendChild(objOverlay); - var objLytebox = this.doc.createElement("div"); - objLytebox.setAttribute('id','lbMain'); - objLytebox.style.display = 'none'; - objBody.appendChild(objLytebox); - var objOuterContainer = this.doc.createElement("div"); - objOuterContainer.setAttribute('id','lbOuterContainer'); - objOuterContainer.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objLytebox.appendChild(objOuterContainer); - var objIframeContainer = this.doc.createElement("div"); - objIframeContainer.setAttribute('id','lbIframeContainer'); - objIframeContainer.style.display = 'none'; - objOuterContainer.appendChild(objIframeContainer); - var objIframe = this.doc.createElement("iframe"); - objIframe.setAttribute('id','lbIframe'); - objIframe.setAttribute('name','lbIframe'); - objIframe.style.display = 'none'; - objIframeContainer.appendChild(objIframe); - var objImageContainer = this.doc.createElement("div"); - objImageContainer.setAttribute('id','lbImageContainer'); - objOuterContainer.appendChild(objImageContainer); - var objLyteboxImage = this.doc.createElement("img"); - objLyteboxImage.setAttribute('id','lbImage'); - objImageContainer.appendChild(objLyteboxImage); - var objLoading = this.doc.createElement("div"); - objLoading.setAttribute('id','lbLoading'); - objOuterContainer.appendChild(objLoading); - var objDetailsContainer = this.doc.createElement("div"); - objDetailsContainer.setAttribute('id','lbDetailsContainer'); - objDetailsContainer.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objLytebox.appendChild(objDetailsContainer); - var objDetailsData =this.doc.createElement("div"); - objDetailsData.setAttribute('id','lbDetailsData'); - objDetailsData.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objDetailsContainer.appendChild(objDetailsData); - var objDetails = this.doc.createElement("div"); - objDetails.setAttribute('id','lbDetails'); - objDetailsData.appendChild(objDetails); - var objCaption = this.doc.createElement("span"); - objCaption.setAttribute('id','lbCaption'); - objDetails.appendChild(objCaption); - var objHoverNav = this.doc.createElement("div"); - objHoverNav.setAttribute('id','lbHoverNav'); - objImageContainer.appendChild(objHoverNav); - var objBottomNav = this.doc.createElement("div"); - objBottomNav.setAttribute('id','lbBottomNav'); - objDetailsData.appendChild(objBottomNav); - var objPrev = this.doc.createElement("a"); - objPrev.setAttribute('id','lbPrev'); - objPrev.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objPrev.setAttribute('href','#'); - objHoverNav.appendChild(objPrev); - var objNext = this.doc.createElement("a"); - objNext.setAttribute('id','lbNext'); - objNext.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objNext.setAttribute('href','#'); - objHoverNav.appendChild(objNext); - var objNumberDisplay = this.doc.createElement("span"); - objNumberDisplay.setAttribute('id','lbNumberDisplay'); - objDetails.appendChild(objNumberDisplay); - var objNavDisplay = this.doc.createElement("span"); - objNavDisplay.setAttribute('id','lbNavDisplay'); - objNavDisplay.style.display = 'none'; - objDetails.appendChild(objNavDisplay); - var objClose = this.doc.createElement("a"); - objClose.setAttribute('id','lbClose'); - objClose.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objClose.setAttribute('href','#'); - objBottomNav.appendChild(objClose); - var objPause = this.doc.createElement("a"); - objPause.setAttribute('id','lbPause'); - objPause.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objPause.setAttribute('href','#'); - objPause.style.display = 'none'; - objBottomNav.appendChild(objPause); - var objPlay = this.doc.createElement("a"); - objPlay.setAttribute('id','lbPlay'); - objPlay.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - objPlay.setAttribute('href','#'); - objPlay.style.display = 'none'; - objBottomNav.appendChild(objPlay); -}; -LyteBox.prototype.updateLyteboxItems = function() { - var anchors = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a'); - var areas = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area'); - var lyteLinks = this.combine(anchors, areas); - for (var i = 0; i < lyteLinks.length; i++) { - var myLink = lyteLinks[i]; - var relAttribute = String(myLink.getAttribute('rel')); - - // use the string.match() method to catch 'lytebox' references in the rel attribute - if (myLink.getAttribute('href')) { - if (relAttribute.toLowerCase().match('lytebox')) { - myLink.onclick = function () { myLytebox.start(this, false, false); return false; } - } else if (relAttribute.toLowerCase().match('lyteshow')) { - myLink.onclick = function () { myLytebox.start(this, true, false); return false; } - } else if (relAttribute.toLowerCase().match('lyteframe')) { - myLink.onclick = function () { myLytebox.start(this, false, true); return false; } - } - } - } -}; -LyteBox.prototype.start = function(imageLink, doSlide, doFrame) { - if (this.ie && !this.ie7) { this.toggleSelects('hide'); } - if (this.hideFlash) { this.toggleFlash('hide'); } - this.isLyteframe = (doFrame ? true : false); - var pageSize = this.getPageSize(); - var objOverlay = this.doc.getElementById('lbOverlay'); - var objBody = this.doc.getElementsByTagName("body").item(0); - objOverlay.style.height = pageSize[1] + "px"; - objOverlay.style.display = ''; - this.appear('lbOverlay', (this.doAnimations ? 0 : this.maxOpacity)); - var anchors = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a'); - var areas = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area'); - var lyteLinks = this.combine(anchors, areas); - if (this.isLyteframe) { - this.frameArray = []; - this.frameNum = 0; - if ((imageLink.getAttribute('rel') == 'lyteframe')) { - var rev = imageLink.getAttribute('rev'); - this.frameArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'), (rev == null || rev == '' ? 'width: 400px; height: 400px; scrolling: auto;' : rev))); - } else { - if (imageLink.getAttribute('rel').indexOf('lyteframe') != -1) { - for (var i = 0; i < lyteLinks.length; i++) { - var myLink = lyteLinks[i]; - if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { - var rev = myLink.getAttribute('rev'); - this.frameArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'), (rev == null || rev == '' ? 'width: 400px; height: 400px; scrolling: auto;' : rev))); - } - } - this.frameArray.removeDuplicates(); - while(this.frameArray[this.frameNum][0] != imageLink.getAttribute('href')) { this.frameNum++; } - } - } - } else { - this.imageArray = []; - this.imageNum = 0; - this.slideArray = []; - this.slideNum = 0; - if ((imageLink.getAttribute('rel') == 'lytebox')) { - this.imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'))); - } else { - if (imageLink.getAttribute('rel').indexOf('lytebox') != -1) { - for (var i = 0; i < lyteLinks.length; i++) { - var myLink = lyteLinks[i]; - if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { - this.imageArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'))); - } - } - this.imageArray.removeDuplicates(); - while(this.imageArray[this.imageNum][0] != imageLink.getAttribute('href')) { this.imageNum++; } - } - if (imageLink.getAttribute('rel').indexOf('lyteshow') != -1) { - for (var i = 0; i < lyteLinks.length; i++) { - var myLink = lyteLinks[i]; - if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { - this.slideArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'))); - } - } - this.slideArray.removeDuplicates(); - while(this.slideArray[this.slideNum][0] != imageLink.getAttribute('href')) { this.slideNum++; } - } - } - } - var object = this.doc.getElementById('lbMain'); - object.style.top = (this.getPageScroll() + (pageSize[3] / 15)) + "px"; - object.style.display = ''; - if (!this.outerBorder) { - this.doc.getElementById('lbOuterContainer').style.border = 'none'; - this.doc.getElementById('lbDetailsContainer').style.border = 'none'; - } else { - this.doc.getElementById('lbOuterContainer').style.borderBottom = ''; - this.doc.getElementById('lbOuterContainer').setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - } - this.doc.getElementById('lbOverlay').onclick = function() { myLytebox.end(); return false; } - this.doc.getElementById('lbMain').onclick = function(e) { - var e = e; - if (!e) { - if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) { - e = window.parent.window.event; - } else { - e = window.event; - } - } - var id = (e.target ? e.target.id : e.srcElement.id); - if (id == 'lbMain') { myLytebox.end(); return false; } - } - this.doc.getElementById('lbClose').onclick = function() { myLytebox.end(); return false; } - this.doc.getElementById('lbPause').onclick = function() { myLytebox.togglePlayPause("lbPause", "lbPlay"); return false; } - this.doc.getElementById('lbPlay').onclick = function() { myLytebox.togglePlayPause("lbPlay", "lbPause"); return false; } - this.isSlideshow = doSlide; - this.isPaused = (this.slideNum != 0 ? true : false); - if (this.isSlideshow && this.showPlayPause && this.isPaused) { - this.doc.getElementById('lbPlay').style.display = ''; - this.doc.getElementById('lbPause').style.display = 'none'; - } - if (this.isLyteframe) { - this.changeContent(this.frameNum); - } else { - if (this.isSlideshow) { - this.changeContent(this.slideNum); - } else { - this.changeContent(this.imageNum); - } - } -}; -LyteBox.prototype.changeContent = function(imageNum) { - if (this.isSlideshow) { - for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } - } - this.activeImage = this.activeSlide = this.activeFrame = imageNum; - if (!this.outerBorder) { - this.doc.getElementById('lbOuterContainer').style.border = 'none'; - this.doc.getElementById('lbDetailsContainer').style.border = 'none'; - } else { - this.doc.getElementById('lbOuterContainer').style.borderBottom = ''; - this.doc.getElementById('lbOuterContainer').setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); - } - this.doc.getElementById('lbLoading').style.display = ''; - this.doc.getElementById('lbImage').style.display = 'none'; - this.doc.getElementById('lbIframe').style.display = 'none'; - this.doc.getElementById('lbPrev').style.display = 'none'; - this.doc.getElementById('lbNext').style.display = 'none'; - this.doc.getElementById('lbIframeContainer').style.display = 'none'; - this.doc.getElementById('lbDetailsContainer').style.display = 'none'; - this.doc.getElementById('lbNumberDisplay').style.display = 'none'; - if (this.navType == 2 || this.isLyteframe) { - object = this.doc.getElementById('lbNavDisplay'); - object.innerHTML = '    || '; - object.style.display = 'none'; - } - if (this.isLyteframe) { - var iframe = myLytebox.doc.getElementById('lbIframe'); - var styles = this.frameArray[this.activeFrame][2]; - var aStyles = styles.split(';'); - for (var i = 0; i < aStyles.length; i++) { - if (aStyles[i].indexOf('width:') >= 0) { - var w = aStyles[i].replace('width:', ''); - iframe.width = w.trim(); - } else if (aStyles[i].indexOf('height:') >= 0) { - var h = aStyles[i].replace('height:', ''); - iframe.height = h.trim(); - } else if (aStyles[i].indexOf('scrolling:') >= 0) { - var s = aStyles[i].replace('scrolling:', ''); - iframe.scrolling = s.trim(); - } else if (aStyles[i].indexOf('border:') >= 0) { - // Not implemented yet, as there are cross-platform issues with setting the border (from a GUI standpoint) - //var b = aStyles[i].replace('border:', ''); - //iframe.style.border = b.trim(); - } - } - this.resizeContainer(parseInt(iframe.width), parseInt(iframe.height)); - } else { - imgPreloader = new Image(); - imgPreloader.onload = function() { - var imageWidth = imgPreloader.width; - var imageHeight = imgPreloader.height; - if (myLytebox.autoResize) { - var pagesize = myLytebox.getPageSize(); - var x = pagesize[2] - 150; - var y = pagesize[3] - 150; - if (imageWidth > x) { - imageHeight = Math.round(imageHeight * (x / imageWidth)); - imageWidth = x; - if (imageHeight > y) { - imageWidth = Math.round(imageWidth * (y / imageHeight)); - imageHeight = y; - } - } else if (imageHeight > y) { - imageWidth = Math.round(imageWidth * (y / imageHeight)); - imageHeight = y; - if (imageWidth > x) { - imageHeight = Math.round(imageHeight * (x / imageWidth)); - imageWidth = x; - } - } - } - var lbImage = myLytebox.doc.getElementById('lbImage') - lbImage.src = (myLytebox.isSlideshow ? myLytebox.slideArray[myLytebox.activeSlide][0] : myLytebox.imageArray[myLytebox.activeImage][0]); - lbImage.width = imageWidth; - lbImage.height = imageHeight; - myLytebox.resizeContainer(imageWidth, imageHeight); - imgPreloader.onload = function() {}; - } - imgPreloader.src = (this.isSlideshow ? this.slideArray[this.activeSlide][0] : this.imageArray[this.activeImage][0]); - } -}; -LyteBox.prototype.resizeContainer = function(imgWidth, imgHeight) { - this.wCur = this.doc.getElementById('lbOuterContainer').offsetWidth; - this.hCur = this.doc.getElementById('lbOuterContainer').offsetHeight; - this.xScale = ((imgWidth + (this.borderSize * 2)) / this.wCur) * 100; - this.yScale = ((imgHeight + (this.borderSize * 2)) / this.hCur) * 100; - var wDiff = (this.wCur - this.borderSize * 2) - imgWidth; - var hDiff = (this.hCur - this.borderSize * 2) - imgHeight; - if (!(hDiff == 0)) { - this.hDone = false; - this.resizeH('lbOuterContainer', this.hCur, imgHeight + this.borderSize*2, this.getPixelRate(this.hCur, imgHeight)); - } else { - this.hDone = true; - } - if (!(wDiff == 0)) { - this.wDone = false; - this.resizeW('lbOuterContainer', this.wCur, imgWidth + this.borderSize*2, this.getPixelRate(this.wCur, imgWidth)); - } else { - this.wDone = true; - } - if ((hDiff == 0) && (wDiff == 0)) { - if (this.ie){ this.pause(250); } else { this.pause(100); } - } - this.doc.getElementById('lbPrev').style.height = imgHeight + "px"; - this.doc.getElementById('lbNext').style.height = imgHeight + "px"; - this.doc.getElementById('lbDetailsContainer').style.width = (imgWidth + (this.borderSize * 2) + (this.ie && this.doc.compatMode == "BackCompat" && this.outerBorder ? 2 : 0)) + "px"; - this.showContent(); -}; -LyteBox.prototype.showContent = function() { - if (this.wDone && this.hDone) { - for (var i = 0; i < this.showContentTimerCount; i++) { window.clearTimeout(this.showContentTimerArray[i]); } - if (this.outerBorder) { - this.doc.getElementById('lbOuterContainer').style.borderBottom = 'none'; - } - this.doc.getElementById('lbLoading').style.display = 'none'; - if (this.isLyteframe) { - this.doc.getElementById('lbIframe').style.display = ''; - this.appear('lbIframe', (this.doAnimations ? 0 : 100)); - } else { - this.doc.getElementById('lbImage').style.display = ''; - this.appear('lbImage', (this.doAnimations ? 0 : 100)); - this.preloadNeighborImages(); - } - if (this.isSlideshow) { - if(this.activeSlide == (this.slideArray.length - 1)) { - if (this.autoEnd) { - this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("myLytebox.end('slideshow')", this.slideInterval); - } - } else { - if (!this.isPaused) { - this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("myLytebox.changeContent("+(this.activeSlide+1)+")", this.slideInterval); - } - } - this.doc.getElementById('lbHoverNav').style.display = (this.showNavigation && this.navType == 1 ? '' : 'none'); - this.doc.getElementById('lbClose').style.display = (this.showClose ? '' : 'none'); - this.doc.getElementById('lbDetails').style.display = (this.showDetails ? '' : 'none'); - this.doc.getElementById('lbPause').style.display = (this.showPlayPause && !this.isPaused ? '' : 'none'); - this.doc.getElementById('lbPlay').style.display = (this.showPlayPause && !this.isPaused ? 'none' : ''); - this.doc.getElementById('lbNavDisplay').style.display = (this.showNavigation && this.navType == 2 ? '' : 'none'); - } else { - this.doc.getElementById('lbHoverNav').style.display = (this.navType == 1 && !this.isLyteframe ? '' : 'none'); - if ((this.navType == 2 && !this.isLyteframe && this.imageArray.length > 1) || (this.frameArray.length > 1 && this.isLyteframe)) { - this.doc.getElementById('lbNavDisplay').style.display = ''; - } else { - this.doc.getElementById('lbNavDisplay').style.display = 'none'; - } - this.doc.getElementById('lbClose').style.display = ''; - this.doc.getElementById('lbDetails').style.display = ''; - this.doc.getElementById('lbPause').style.display = 'none'; - this.doc.getElementById('lbPlay').style.display = 'none'; - } - this.doc.getElementById('lbImageContainer').style.display = (this.isLyteframe ? 'none' : ''); - this.doc.getElementById('lbIframeContainer').style.display = (this.isLyteframe ? '' : 'none'); - try { - this.doc.getElementById('lbIframe').src = this.frameArray[this.activeFrame][0]; - } catch(e) { } - } else { - this.showContentTimerArray[this.showContentTimerCount++] = setTimeout("myLytebox.showContent()", 200); - } -}; -LyteBox.prototype.updateDetails = function() { - var object = this.doc.getElementById('lbCaption'); - var sTitle = (this.isSlideshow ? this.slideArray[this.activeSlide][1] : (this.isLyteframe ? this.frameArray[this.activeFrame][1] : this.imageArray[this.activeImage][1])); - object.style.display = ''; - object.innerHTML = (sTitle == null ? '' : sTitle); - this.updateNav(); - this.doc.getElementById('lbDetailsContainer').style.display = ''; - object = this.doc.getElementById('lbNumberDisplay'); - if (this.isSlideshow && this.slideArray.length > 1) { - object.style.display = ''; - object.innerHTML = "Image " + eval(this.activeSlide + 1) + " of " + this.slideArray.length; - this.doc.getElementById('lbNavDisplay').style.display = (this.navType == 2 && this.showNavigation ? '' : 'none'); - } else if (this.imageArray.length > 1 && !this.isLyteframe) { - object.style.display = ''; - object.innerHTML = "Image " + eval(this.activeImage + 1) + " of " + this.imageArray.length; - this.doc.getElementById('lbNavDisplay').style.display = (this.navType == 2 ? '' : 'none'); - } else if (this.frameArray.length > 1 && this.isLyteframe) { - object.style.display = ''; - object.innerHTML = "Page " + eval(this.activeFrame + 1) + " of " + this.frameArray.length; - this.doc.getElementById('lbNavDisplay').style.display = ''; - } else { - this.doc.getElementById('lbNavDisplay').style.display = 'none'; - } - this.appear('lbDetailsContainer', (this.doAnimations ? 0 : 100)); -}; -LyteBox.prototype.updateNav = function() { - if (this.isSlideshow) { - if (this.activeSlide != 0) { - var object = (this.navType == 2 ? this.doc.getElementById('lbPrev2') : this.doc.getElementById('lbPrev')); - object.style.display = ''; - object.onclick = function() { - if (myLytebox.pauseOnPrevClick) { myLytebox.togglePlayPause("lbPause", "lbPlay"); } - myLytebox.changeContent(myLytebox.activeSlide - 1); return false; - } - } else { - if (this.navType == 2) { this.doc.getElementById('lbPrev2_Off').style.display = ''; } - } - if (this.activeSlide != (this.slideArray.length - 1)) { - var object = (this.navType == 2 ? this.doc.getElementById('lbNext2') : this.doc.getElementById('lbNext')); - object.style.display = ''; - object.onclick = function() { - if (myLytebox.pauseOnNextClick) { myLytebox.togglePlayPause("lbPause", "lbPlay"); } - myLytebox.changeContent(myLytebox.activeSlide + 1); return false; - } - } else { - if (this.navType == 2) { this.doc.getElementById('lbNext2_Off').style.display = ''; } - } - } else if (this.isLyteframe) { - if(this.activeFrame != 0) { - var object = this.doc.getElementById('lbPrev2'); - object.style.display = ''; - object.onclick = function() { - myLytebox.changeContent(myLytebox.activeFrame - 1); return false; - } - } else { - this.doc.getElementById('lbPrev2_Off').style.display = ''; - } - if(this.activeFrame != (this.frameArray.length - 1)) { - var object = this.doc.getElementById('lbNext2'); - object.style.display = ''; - object.onclick = function() { - myLytebox.changeContent(myLytebox.activeFrame + 1); return false; - } - } else { - this.doc.getElementById('lbNext2_Off').style.display = ''; - } - } else { - if(this.activeImage != 0) { - var object = (this.navType == 2 ? this.doc.getElementById('lbPrev2') : this.doc.getElementById('lbPrev')); - object.style.display = ''; - object.onclick = function() { - myLytebox.changeContent(myLytebox.activeImage - 1); return false; - } - } else { - if (this.navType == 2) { this.doc.getElementById('lbPrev2_Off').style.display = ''; } - } - if(this.activeImage != (this.imageArray.length - 1)) { - var object = (this.navType == 2 ? this.doc.getElementById('lbNext2') : this.doc.getElementById('lbNext')); - object.style.display = ''; - object.onclick = function() { - myLytebox.changeContent(myLytebox.activeImage + 1); return false; - } - } else { - if (this.navType == 2) { this.doc.getElementById('lbNext2_Off').style.display = ''; } - } - } - this.enableKeyboardNav(); -}; -LyteBox.prototype.enableKeyboardNav = function() { document.onkeydown = this.keyboardAction; }; -LyteBox.prototype.disableKeyboardNav = function() { document.onkeydown = ''; }; -LyteBox.prototype.keyboardAction = function(e) { - var keycode = key = escape = null; - keycode = (e == null) ? event.keyCode : e.which; - key = String.fromCharCode(keycode).toLowerCase(); - escape = (e == null) ? 27 : e.DOM_VK_ESCAPE; - if ((key == 'x') || (key == 'c') || (keycode == escape)) { - myLytebox.end(); - } else if ((key == 'p') || (keycode == 37)) { - if (myLytebox.isSlideshow) { - if(myLytebox.activeSlide != 0) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeSlide - 1); - } - } else if (myLytebox.isLyteframe) { - if(myLytebox.activeFrame != 0) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeFrame - 1); - } - } else { - if(myLytebox.activeImage != 0) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeImage - 1); - } - } - } else if ((key == 'n') || (keycode == 39)) { - if (myLytebox.isSlideshow) { - if(myLytebox.activeSlide != (myLytebox.slideArray.length - 1)) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeSlide + 1); - } - } else if (myLytebox.isLyteframe) { - if(myLytebox.activeFrame != (myLytebox.frameArray.length - 1)) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeFrame + 1); - } - } else { - if(myLytebox.activeImage != (myLytebox.imageArray.length - 1)) { - myLytebox.disableKeyboardNav(); - myLytebox.changeContent(myLytebox.activeImage + 1); - } - } - } -}; -LyteBox.prototype.preloadNeighborImages = function() { - if (this.isSlideshow) { - if ((this.slideArray.length - 1) > this.activeSlide) { - preloadNextImage = new Image(); - preloadNextImage.src = this.slideArray[this.activeSlide + 1][0]; - } - if(this.activeSlide > 0) { - preloadPrevImage = new Image(); - preloadPrevImage.src = this.slideArray[this.activeSlide - 1][0]; - } - } else { - if ((this.imageArray.length - 1) > this.activeImage) { - preloadNextImage = new Image(); - preloadNextImage.src = this.imageArray[this.activeImage + 1][0]; - } - if(this.activeImage > 0) { - preloadPrevImage = new Image(); - preloadPrevImage.src = this.imageArray[this.activeImage - 1][0]; - } - } -}; -LyteBox.prototype.togglePlayPause = function(hideID, showID) { - if (this.isSlideshow && hideID == "lbPause") { - for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } - } - this.doc.getElementById(hideID).style.display = 'none'; - this.doc.getElementById(showID).style.display = ''; - if (hideID == "lbPlay") { - this.isPaused = false; - if (this.activeSlide == (this.slideArray.length - 1)) { - this.end(); - } else { - this.changeContent(this.activeSlide + 1); - } - } else { - this.isPaused = true; - } -}; -LyteBox.prototype.end = function(caller) { - var closeClick = (caller == 'slideshow' ? false : true); - if (this.isSlideshow && this.isPaused && !closeClick) { return; } - this.disableKeyboardNav(); - this.doc.getElementById('lbMain').style.display = 'none'; - this.fade('lbOverlay', (this.doAnimations ? this.maxOpacity : 0)); - this.toggleSelects('visible'); - if (this.hideFlash) { this.toggleFlash('visible'); } - if (this.isSlideshow) { - for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } - } - if (this.isLyteframe) { - this.initialize(); - } -}; -LyteBox.prototype.checkFrame = function() { - if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) { - this.isFrame = true; - this.lytebox = "window.parent." + window.name + ".myLytebox"; - this.doc = parent.document; - } else { - this.isFrame = false; - this.lytebox = "myLytebox"; - this.doc = document; - } -}; -LyteBox.prototype.getPixelRate = function(cur, img) { - var diff = (img > cur) ? img - cur : cur - img; - if (diff >= 0 && diff <= 100) { return 10; } - if (diff > 100 && diff <= 200) { return 15; } - if (diff > 200 && diff <= 300) { return 20; } - if (diff > 300 && diff <= 400) { return 25; } - if (diff > 400 && diff <= 500) { return 30; } - if (diff > 500 && diff <= 600) { return 35; } - if (diff > 600 && diff <= 700) { return 40; } - if (diff > 700) { return 45; } -}; -LyteBox.prototype.appear = function(id, opacity) { - var object = this.doc.getElementById(id).style; - object.opacity = (opacity / 100); - object.MozOpacity = (opacity / 100); - object.KhtmlOpacity = (opacity / 100); - object.filter = "alpha(opacity=" + (opacity + 10) + ")"; - if (opacity == 100 && (id == 'lbImage' || id == 'lbIframe')) { - try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */ - this.updateDetails(); - } else if (opacity >= this.maxOpacity && id == 'lbOverlay') { - for (var i = 0; i < this.overlayTimerCount; i++) { window.clearTimeout(this.overlayTimerArray[i]); } - return; - } else if (opacity >= 100 && id == 'lbDetailsContainer') { - try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */ - for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); } - this.doc.getElementById('lbOverlay').style.height = this.getPageSize()[1] + "px"; - } else { - if (id == 'lbOverlay') { - this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("myLytebox.appear('" + id + "', " + (opacity+20) + ")", 1); - } else { - this.imageTimerArray[this.imageTimerCount++] = setTimeout("myLytebox.appear('" + id + "', " + (opacity+10) + ")", 1); - } - } -}; -LyteBox.prototype.fade = function(id, opacity) { - var object = this.doc.getElementById(id).style; - object.opacity = (opacity / 100); - object.MozOpacity = (opacity / 100); - object.KhtmlOpacity = (opacity / 100); - object.filter = "alpha(opacity=" + opacity + ")"; - if (opacity <= 0) { - try { - object.display = 'none'; - } catch(err) { } - } else if (id == 'lbOverlay') { - this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("myLytebox.fade('" + id + "', " + (opacity-20) + ")", 1); - } else { - this.timerIDArray[this.timerIDCount++] = setTimeout("myLytebox.fade('" + id + "', " + (opacity-10) + ")", 1); - } -}; -LyteBox.prototype.resizeW = function(id, curW, maxW, pixelrate, speed) { - if (!this.hDone) { - this.resizeWTimerArray[this.resizeWTimerCount++] = setTimeout("myLytebox.resizeW('" + id + "', " + curW + ", " + maxW + ", " + pixelrate + ")", 100); - return; - } - var object = this.doc.getElementById(id); - var timer = speed ? speed : (this.resizeDuration/2); - var newW = (this.doAnimations ? curW : maxW); - object.style.width = (newW) + "px"; - if (newW < maxW) { - newW += (newW + pixelrate >= maxW) ? (maxW - newW) : pixelrate; - } else if (newW > maxW) { - newW -= (newW - pixelrate <= maxW) ? (newW - maxW) : pixelrate; - } - this.resizeWTimerArray[this.resizeWTimerCount++] = setTimeout("myLytebox.resizeW('" + id + "', " + newW + ", " + maxW + ", " + pixelrate + ", " + (timer+0.02) + ")", timer+0.02); - if (parseInt(object.style.width) == maxW) { - this.wDone = true; - for (var i = 0; i < this.resizeWTimerCount; i++) { window.clearTimeout(this.resizeWTimerArray[i]); } - } -}; -LyteBox.prototype.resizeH = function(id, curH, maxH, pixelrate, speed) { - var timer = speed ? speed : (this.resizeDuration/2); - var object = this.doc.getElementById(id); - var newH = (this.doAnimations ? curH : maxH); - object.style.height = (newH) + "px"; - if (newH < maxH) { - newH += (newH + pixelrate >= maxH) ? (maxH - newH) : pixelrate; - } else if (newH > maxH) { - newH -= (newH - pixelrate <= maxH) ? (newH - maxH) : pixelrate; - } - this.resizeHTimerArray[this.resizeHTimerCount++] = setTimeout("myLytebox.resizeH('" + id + "', " + newH + ", " + maxH + ", " + pixelrate + ", " + (timer+.02) + ")", timer+.02); - if (parseInt(object.style.height) == maxH) { - this.hDone = true; - for (var i = 0; i < this.resizeHTimerCount; i++) { window.clearTimeout(this.resizeHTimerArray[i]); } - } -}; -LyteBox.prototype.getPageScroll = function() { - if (self.pageYOffset) { - return this.isFrame ? parent.pageYOffset : self.pageYOffset; - } else if (this.doc.documentElement && this.doc.documentElement.scrollTop){ - return this.doc.documentElement.scrollTop; - } else if (document.body) { - return this.doc.body.scrollTop; - } -}; -LyteBox.prototype.getPageSize = function() { - var xScroll, yScroll, windowWidth, windowHeight; - if (window.innerHeight && window.scrollMaxY) { - xScroll = this.doc.scrollWidth; - yScroll = (this.isFrame ? parent.innerHeight : self.innerHeight) + (this.isFrame ? parent.scrollMaxY : self.scrollMaxY); - } else if (this.doc.body.scrollHeight > this.doc.body.offsetHeight){ - xScroll = this.doc.body.scrollWidth; - yScroll = this.doc.body.scrollHeight; - } else { - xScroll = this.doc.getElementsByTagName("html").item(0).offsetWidth; - yScroll = this.doc.getElementsByTagName("html").item(0).offsetHeight; - xScroll = (xScroll < this.doc.body.offsetWidth) ? this.doc.body.offsetWidth : xScroll; - yScroll = (yScroll < this.doc.body.offsetHeight) ? this.doc.body.offsetHeight : yScroll; - } - if (self.innerHeight) { - windowWidth = (this.isFrame) ? parent.innerWidth : self.innerWidth; - windowHeight = (this.isFrame) ? parent.innerHeight : self.innerHeight; - } else if (document.documentElement && document.documentElement.clientHeight) { - windowWidth = this.doc.documentElement.clientWidth; - windowHeight = this.doc.documentElement.clientHeight; - } else if (document.body) { - windowWidth = this.doc.getElementsByTagName("html").item(0).clientWidth; - windowHeight = this.doc.getElementsByTagName("html").item(0).clientHeight; - windowWidth = (windowWidth == 0) ? this.doc.body.clientWidth : windowWidth; - windowHeight = (windowHeight == 0) ? this.doc.body.clientHeight : windowHeight; - } - var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll; - var pageWidth = (xScroll < windowWidth) ? windowWidth : xScroll; - return new Array(pageWidth, pageHeight, windowWidth, windowHeight); -}; -LyteBox.prototype.toggleFlash = function(state) { - var objects = this.doc.getElementsByTagName("object"); - for (var i = 0; i < objects.length; i++) { - objects[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - var embeds = this.doc.getElementsByTagName("embed"); - for (var i = 0; i < embeds.length; i++) { - embeds[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - if (this.isFrame) { - for (var i = 0; i < parent.frames.length; i++) { - try { - objects = parent.frames[i].window.document.getElementsByTagName("object"); - for (var j = 0; j < objects.length; j++) { - objects[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - } catch(e) { } - try { - embeds = parent.frames[i].window.document.getElementsByTagName("embed"); - for (var j = 0; j < embeds.length; j++) { - embeds[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - } catch(e) { } - } - } -}; -LyteBox.prototype.toggleSelects = function(state) { - var selects = this.doc.getElementsByTagName("select"); - for (var i = 0; i < selects.length; i++ ) { - selects[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - if (this.isFrame) { - for (var i = 0; i < parent.frames.length; i++) { - try { - selects = parent.frames[i].window.document.getElementsByTagName("select"); - for (var j = 0; j < selects.length; j++) { - selects[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; - } - } catch(e) { } - } - } -}; -LyteBox.prototype.pause = function(numberMillis) { - var now = new Date(); - var exitTime = now.getTime() + numberMillis; - while (true) { - now = new Date(); - if (now.getTime() > exitTime) { return; } - } -}; -LyteBox.prototype.combine = function(anchors, areas) { - var lyteLinks = []; - for (var i = 0; i < anchors.length; i++) { - lyteLinks.push(anchors[i]); - } - for (var i = 0; i < areas.length; i++) { - lyteLinks.push(areas[i]); - } - return lyteLinks; -} -if (window.addEventListener) { - window.addEventListener("load",initLytebox,false); -} else if (window.attachEvent) { - window.attachEvent("onload",initLytebox); -} else { - window.onload = function() {initLytebox();} -} +//***********************************************************************************************************************************/ +// LyteBox v3.25 +// +// Author: Markus F. Hay +// Website: http://www.dolem.com/lytebox +// Date: July 8, 2011 +// License: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/) +// Browsers: Tested successfully with the following browsers (using no DOCTYPE and Strict/Transitional/Loose DOCTYPES): +// * Firefox: 1.5+ +// * Internet Explorer: 9.0, 8.0, 7.0, 6.0 SP2, 5.5 SP2 +// * Opera: 9.23+ +// +// Releases: For release information, support, custom modules, etc., visit http://www.dolem.com/lytebox/forums/ +// +// * v3.25 (07/08/11) +// * v3.24 (07/06/11) +// * v3.23 (07/05/11) +// * v3.22 (10/02/07) +// * v3.21 (09/30/07) +// * v3.20 (07/12/07) +// * v3.10 (05/28/07) +// * v3.00 (05/15/07) +// * v2.02 (11/13/06) +//***********************************************************************************************************************************/ +Array.prototype.removeDuplicates = function () { for (var i = 1; i < this.length; i++) { if (this[i][0] == this[i-1][0]) { this.splice(i,1); } } } +Array.prototype.empty = function () { for (var i = 0; i <= this.length; i++) { this.shift(); } } +String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g, ''); } + +function LyteBox() { + /*** Start Global Configuration ***/ + this.theme = 'grey'; // themes: grey (default), red, green, blue, gold + this.hideFlash = true; // controls whether or not Flash objects should be hidden + this.outerBorder = true; // controls whether to show the outer grey (or theme) border + this.resizeSpeed = 8; // controls the speed of the image resizing (1=slowest and 10=fastest) + this.maxOpacity = 80; // higher opacity = darker overlay, lower opacity = lighter overlay + this.navType = 1; // 1 = "Prev/Next" buttons on top left and left (default), 2 = "<< prev | next >>" links next to image number + this.autoResize = true; // controls whether or not images should be resized if larger than the browser window dimensions + this.doAnimations = true; // controls whether or not "animate" Lytebox, i.e. resize transition between images, fade in/out effects, etc. + + this.borderSize = 12; // if you adjust the padding in the CSS, you will need to update this variable -- otherwise, leave this alone... + /*** End Global Configuration ***/ + + /*** Configure Slideshow Options ***/ + this.slideInterval = 4000; // Change value (milliseconds) to increase/decrease the time between "slides" (10000 = 10 seconds) + this.showNavigation = true; // true to display Next/Prev buttons/text during slideshow, false to hide + this.showClose = true; // true to display the Close button, false to hide + this.showDetails = true; // true to display image details (caption, count), false to hide + this.showPlayPause = true; // true to display pause/play buttons next to close button, false to hide + this.autoEnd = true; // true to automatically close Lytebox after the last image is reached, false to keep open + this.pauseOnNextClick = false; // true to pause the slideshow when the "Next" button is clicked + this.pauseOnPrevClick = true; // true to pause the slideshow when the "Prev" button is clicked + /*** End Slideshow Configuration ***/ + + if(this.resizeSpeed > 10) { this.resizeSpeed = 10; } + if(this.resizeSpeed < 1) { resizeSpeed = 1; } + this.resizeDuration = (11 - this.resizeSpeed) * 0.15; + this.resizeWTimerArray = new Array(); + this.resizeWTimerCount = 0; + this.resizeHTimerArray = new Array(); + this.resizeHTimerCount = 0; + this.showContentTimerArray = new Array(); + this.showContentTimerCount = 0; + this.overlayTimerArray = new Array(); + this.overlayTimerCount = 0; + this.imageTimerArray = new Array(); + this.imageTimerCount = 0; + this.timerIDArray = new Array(); + this.timerIDCount = 0; + this.slideshowIDArray = new Array(); + this.slideshowIDCount = 0; + this.imageArray = new Array(); + this.activeImage = null; + this.slideArray = new Array(); + this.activeSlide = null; + this.frameArray = new Array(); + this.activeFrame = null; + this.checkFrame(); + this.isSlideshow = false; + this.isLyteframe = false; + /*@cc_on + /*@if (@_jscript) + this.ie = (document.all && !window.opera) ? true : false; + /*@else @*/ + this.ie = false; + /*@end + @*/ + this.ie7 = (this.ie && window.XMLHttpRequest); + this.ie8 = (this.ie && navigator.appVersion.indexOf('IE 8') > 0); + this.ie9 = (this.ie && navigator.appVersion.indexOf('IE 9') > 0); + this.initialize(); +} +LyteBox.prototype.initialize = function() { + this.updateLyteboxItems(); + var objBody = this.doc.getElementsByTagName("body").item(0); + if (this.doc.getElementById('lbOverlay')) { + objBody.removeChild(this.doc.getElementById("lbOverlay")); + objBody.removeChild(this.doc.getElementById("lbMain")); + } + var objOverlay = this.doc.createElement("div"); + objOverlay.setAttribute('id','lbOverlay'); + objOverlay.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + if ((this.ie && !this.ie7) || (this.ie7 && this.doc.compatMode == 'BackCompat')) { + objOverlay.style.position = 'absolute'; + } + objOverlay.style.display = 'none'; + objBody.appendChild(objOverlay); + var objLytebox = this.doc.createElement("div"); + objLytebox.setAttribute('id','lbMain'); + objLytebox.style.display = 'none'; + objBody.appendChild(objLytebox); + var objOuterContainer = this.doc.createElement("div"); + objOuterContainer.setAttribute('id','lbOuterContainer'); + objOuterContainer.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objLytebox.appendChild(objOuterContainer); + var objIframeContainer = this.doc.createElement("div"); + objIframeContainer.setAttribute('id','lbIframeContainer'); + objIframeContainer.style.display = 'none'; + objOuterContainer.appendChild(objIframeContainer); + var objIframe = this.doc.createElement("iframe"); + objIframe.setAttribute('id','lbIframe'); + objIframe.setAttribute('name','lbIframe'); + objIframe.style.display = 'none'; + objIframeContainer.appendChild(objIframe); + var objImageContainer = this.doc.createElement("div"); + objImageContainer.setAttribute('id','lbImageContainer'); + objOuterContainer.appendChild(objImageContainer); + var objLyteboxImage = this.doc.createElement("img"); + objLyteboxImage.setAttribute('id','lbImage'); + objImageContainer.appendChild(objLyteboxImage); + var objLoading = this.doc.createElement("div"); + objLoading.setAttribute('id','lbLoading'); + objOuterContainer.appendChild(objLoading); + var objDetailsContainer = this.doc.createElement("div"); + objDetailsContainer.setAttribute('id','lbDetailsContainer'); + objDetailsContainer.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objLytebox.appendChild(objDetailsContainer); + var objDetailsData =this.doc.createElement("div"); + objDetailsData.setAttribute('id','lbDetailsData'); + objDetailsData.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objDetailsContainer.appendChild(objDetailsData); + var objDetails = this.doc.createElement("div"); + objDetails.setAttribute('id','lbDetails'); + objDetailsData.appendChild(objDetails); + var objCaption = this.doc.createElement("span"); + objCaption.setAttribute('id','lbCaption'); + objDetails.appendChild(objCaption); + var objHoverNav = this.doc.createElement("div"); + objHoverNav.setAttribute('id','lbHoverNav'); + objImageContainer.appendChild(objHoverNav); + var objBottomNav = this.doc.createElement("div"); + objBottomNav.setAttribute('id','lbBottomNav'); + objDetailsData.appendChild(objBottomNav); + var objPrev = this.doc.createElement("a"); + objPrev.setAttribute('id','lbPrev'); + objPrev.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objPrev.setAttribute('href','#'); + objHoverNav.appendChild(objPrev); + var objNext = this.doc.createElement("a"); + objNext.setAttribute('id','lbNext'); + objNext.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objNext.setAttribute('href','#'); + objHoverNav.appendChild(objNext); + var objNumberDisplay = this.doc.createElement("span"); + objNumberDisplay.setAttribute('id','lbNumberDisplay'); + objDetails.appendChild(objNumberDisplay); + var objNavDisplay = this.doc.createElement("span"); + objNavDisplay.setAttribute('id','lbNavDisplay'); + objNavDisplay.style.display = 'none'; + objDetails.appendChild(objNavDisplay); + var objClose = this.doc.createElement("a"); + objClose.setAttribute('id','lbClose'); + objClose.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objClose.setAttribute('href','#'); + objBottomNav.appendChild(objClose); + var objPause = this.doc.createElement("a"); + objPause.setAttribute('id','lbPause'); + objPause.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objPause.setAttribute('href','#'); + objPause.style.display = 'none'; + objBottomNav.appendChild(objPause); + var objPlay = this.doc.createElement("a"); + objPlay.setAttribute('id','lbPlay'); + objPlay.setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + objPlay.setAttribute('href','#'); + objPlay.style.display = 'none'; + objBottomNav.appendChild(objPlay); +}; +LyteBox.prototype.updateLyteboxItems = function() { + var anchors = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a'); + var areas = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area'); + var lyteLinks = this.combine(anchors, areas); + for (var i = 0; i < lyteLinks.length; i++) { + var myLink = lyteLinks[i]; + var relAttribute = String(myLink.getAttribute('rel')); + + // use the string.match() method to catch 'lytebox' references in the rel attribute + if (myLink.getAttribute('href')) { + if (relAttribute.toLowerCase().match('lytebox')) { + myLink.onclick = function () { myLytebox.start(this, false, false); return false; } + } else if (relAttribute.toLowerCase().match('lyteshow')) { + myLink.onclick = function () { myLytebox.start(this, true, false); return false; } + } else if (relAttribute.toLowerCase().match('lyteframe')) { + myLink.onclick = function () { myLytebox.start(this, false, true); return false; } + } + } + } +}; +LyteBox.prototype.start = function(imageLink, doSlide, doFrame) { + if (this.ie && !this.ie7) { this.toggleSelects('hide'); } + if (this.hideFlash) { this.toggleFlash('hide'); } + this.isLyteframe = (doFrame ? true : false); + var pageSize = this.getPageSize(); + var objOverlay = this.doc.getElementById('lbOverlay'); + var objBody = this.doc.getElementsByTagName("body").item(0); + objOverlay.style.height = pageSize[1] + "px"; + objOverlay.style.display = ''; + this.appear('lbOverlay', (this.doAnimations ? 0 : this.maxOpacity)); + var anchors = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a'); + var areas = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('area') : document.getElementsByTagName('area'); + var lyteLinks = this.combine(anchors, areas); + if (this.isLyteframe) { + this.frameArray = []; + this.frameNum = 0; + if ((imageLink.getAttribute('rel') == 'lyteframe')) { + var rev = imageLink.getAttribute('rev'); + this.frameArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'), (rev == null || rev == '' ? 'width: 400px; height: 400px; scrolling: auto;' : rev))); + } else { + if (imageLink.getAttribute('rel').indexOf('lyteframe') != -1) { + for (var i = 0; i < lyteLinks.length; i++) { + var myLink = lyteLinks[i]; + if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { + var rev = myLink.getAttribute('rev'); + this.frameArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'), (rev == null || rev == '' ? 'width: 400px; height: 400px; scrolling: auto;' : rev))); + } + } + this.frameArray.removeDuplicates(); + while(this.frameArray[this.frameNum][0] != imageLink.getAttribute('href')) { this.frameNum++; } + } + } + } else { + this.imageArray = []; + this.imageNum = 0; + this.slideArray = []; + this.slideNum = 0; + if ((imageLink.getAttribute('rel') == 'lytebox')) { + this.imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'))); + } else { + if (imageLink.getAttribute('rel').indexOf('lytebox') != -1) { + for (var i = 0; i < lyteLinks.length; i++) { + var myLink = lyteLinks[i]; + if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { + this.imageArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'))); + } + } + this.imageArray.removeDuplicates(); + while(this.imageArray[this.imageNum][0] != imageLink.getAttribute('href')) { this.imageNum++; } + } + if (imageLink.getAttribute('rel').indexOf('lyteshow') != -1) { + for (var i = 0; i < lyteLinks.length; i++) { + var myLink = lyteLinks[i]; + if (myLink.getAttribute('href') && (myLink.getAttribute('rel') == imageLink.getAttribute('rel'))) { + this.slideArray.push(new Array(myLink.getAttribute('href'), myLink.getAttribute('title'))); + } + } + this.slideArray.removeDuplicates(); + while(this.slideArray[this.slideNum][0] != imageLink.getAttribute('href')) { this.slideNum++; } + } + } + } + var object = this.doc.getElementById('lbMain'); + object.style.top = (this.getPageScroll() + (pageSize[3] / 15)) + "px"; + object.style.display = ''; + if (!this.outerBorder) { + this.doc.getElementById('lbOuterContainer').style.border = 'none'; + this.doc.getElementById('lbDetailsContainer').style.border = 'none'; + } else { + this.doc.getElementById('lbOuterContainer').style.borderBottom = ''; + this.doc.getElementById('lbOuterContainer').setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + } + this.doc.getElementById('lbOverlay').onclick = function() { myLytebox.end(); return false; } + this.doc.getElementById('lbMain').onclick = function(e) { + var e = e; + if (!e) { + if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) { + e = window.parent.window.event; + } else { + e = window.event; + } + } + var id = (e.target ? e.target.id : e.srcElement.id); + if (id == 'lbMain') { myLytebox.end(); return false; } + } + this.doc.getElementById('lbClose').onclick = function() { myLytebox.end(); return false; } + this.doc.getElementById('lbPause').onclick = function() { myLytebox.togglePlayPause("lbPause", "lbPlay"); return false; } + this.doc.getElementById('lbPlay').onclick = function() { myLytebox.togglePlayPause("lbPlay", "lbPause"); return false; } + this.isSlideshow = doSlide; + this.isPaused = (this.slideNum != 0 ? true : false); + if (this.isSlideshow && this.showPlayPause && this.isPaused) { + this.doc.getElementById('lbPlay').style.display = ''; + this.doc.getElementById('lbPause').style.display = 'none'; + } + if (this.isLyteframe) { + this.changeContent(this.frameNum); + } else { + if (this.isSlideshow) { + this.changeContent(this.slideNum); + } else { + this.changeContent(this.imageNum); + } + } +}; +LyteBox.prototype.changeContent = function(imageNum) { + if (this.isSlideshow) { + for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } + } + this.activeImage = this.activeSlide = this.activeFrame = imageNum; + if (!this.outerBorder) { + this.doc.getElementById('lbOuterContainer').style.border = 'none'; + this.doc.getElementById('lbDetailsContainer').style.border = 'none'; + } else { + this.doc.getElementById('lbOuterContainer').style.borderBottom = ''; + this.doc.getElementById('lbOuterContainer').setAttribute((this.ie && !((this.ie8 || this.ie9) && this.doc.compatMode != 'BackCompat') ? 'className' : 'class'), this.theme); + } + this.doc.getElementById('lbLoading').style.display = ''; + this.doc.getElementById('lbImage').style.display = 'none'; + this.doc.getElementById('lbIframe').style.display = 'none'; + this.doc.getElementById('lbPrev').style.display = 'none'; + this.doc.getElementById('lbNext').style.display = 'none'; + this.doc.getElementById('lbIframeContainer').style.display = 'none'; + this.doc.getElementById('lbDetailsContainer').style.display = 'none'; + this.doc.getElementById('lbNumberDisplay').style.display = 'none'; + if (this.navType == 2 || this.isLyteframe) { + object = this.doc.getElementById('lbNavDisplay'); + object.innerHTML = '    || '; + object.style.display = 'none'; + } + if (this.isLyteframe) { + var iframe = myLytebox.doc.getElementById('lbIframe'); + var styles = this.frameArray[this.activeFrame][2]; + var aStyles = styles.split(';'); + for (var i = 0; i < aStyles.length; i++) { + if (aStyles[i].indexOf('width:') >= 0) { + var w = aStyles[i].replace('width:', ''); + iframe.width = w.trim(); + } else if (aStyles[i].indexOf('height:') >= 0) { + var h = aStyles[i].replace('height:', ''); + iframe.height = h.trim(); + } else if (aStyles[i].indexOf('scrolling:') >= 0) { + var s = aStyles[i].replace('scrolling:', ''); + iframe.scrolling = s.trim(); + } else if (aStyles[i].indexOf('border:') >= 0) { + // Not implemented yet, as there are cross-platform issues with setting the border (from a GUI standpoint) + //var b = aStyles[i].replace('border:', ''); + //iframe.style.border = b.trim(); + } + } + this.resizeContainer(parseInt(iframe.width), parseInt(iframe.height)); + } else { + imgPreloader = new Image(); + imgPreloader.onload = function() { + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (myLytebox.autoResize) { + var pagesize = myLytebox.getPageSize(); + var x = pagesize[2] - 150; + var y = pagesize[3] - 150; + if (imageWidth > x) { + imageHeight = Math.round(imageHeight * (x / imageWidth)); + imageWidth = x; + if (imageHeight > y) { + imageWidth = Math.round(imageWidth * (y / imageHeight)); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = Math.round(imageWidth * (y / imageHeight)); + imageHeight = y; + if (imageWidth > x) { + imageHeight = Math.round(imageHeight * (x / imageWidth)); + imageWidth = x; + } + } + } + var lbImage = myLytebox.doc.getElementById('lbImage') + lbImage.src = (myLytebox.isSlideshow ? myLytebox.slideArray[myLytebox.activeSlide][0] : myLytebox.imageArray[myLytebox.activeImage][0]); + lbImage.width = imageWidth; + lbImage.height = imageHeight; + myLytebox.resizeContainer(imageWidth, imageHeight); + imgPreloader.onload = function() {}; + } + imgPreloader.src = (this.isSlideshow ? this.slideArray[this.activeSlide][0] : this.imageArray[this.activeImage][0]); + } +}; +LyteBox.prototype.resizeContainer = function(imgWidth, imgHeight) { + this.wCur = this.doc.getElementById('lbOuterContainer').offsetWidth; + this.hCur = this.doc.getElementById('lbOuterContainer').offsetHeight; + this.xScale = ((imgWidth + (this.borderSize * 2)) / this.wCur) * 100; + this.yScale = ((imgHeight + (this.borderSize * 2)) / this.hCur) * 100; + var wDiff = (this.wCur - this.borderSize * 2) - imgWidth; + var hDiff = (this.hCur - this.borderSize * 2) - imgHeight; + if (!(hDiff == 0)) { + this.hDone = false; + this.resizeH('lbOuterContainer', this.hCur, imgHeight + this.borderSize*2, this.getPixelRate(this.hCur, imgHeight)); + } else { + this.hDone = true; + } + if (!(wDiff == 0)) { + this.wDone = false; + this.resizeW('lbOuterContainer', this.wCur, imgWidth + this.borderSize*2, this.getPixelRate(this.wCur, imgWidth)); + } else { + this.wDone = true; + } + if ((hDiff == 0) && (wDiff == 0)) { + if (this.ie){ this.pause(250); } else { this.pause(100); } + } + this.doc.getElementById('lbPrev').style.height = imgHeight + "px"; + this.doc.getElementById('lbNext').style.height = imgHeight + "px"; + this.doc.getElementById('lbDetailsContainer').style.width = (imgWidth + (this.borderSize * 2) + (this.ie && this.doc.compatMode == "BackCompat" && this.outerBorder ? 2 : 0)) + "px"; + this.showContent(); +}; +LyteBox.prototype.showContent = function() { + if (this.wDone && this.hDone) { + for (var i = 0; i < this.showContentTimerCount; i++) { window.clearTimeout(this.showContentTimerArray[i]); } + if (this.outerBorder) { + this.doc.getElementById('lbOuterContainer').style.borderBottom = 'none'; + } + this.doc.getElementById('lbLoading').style.display = 'none'; + if (this.isLyteframe) { + this.doc.getElementById('lbIframe').style.display = ''; + this.appear('lbIframe', (this.doAnimations ? 0 : 100)); + } else { + this.doc.getElementById('lbImage').style.display = ''; + this.appear('lbImage', (this.doAnimations ? 0 : 100)); + this.preloadNeighborImages(); + } + if (this.isSlideshow) { + if(this.activeSlide == (this.slideArray.length - 1)) { + if (this.autoEnd) { + this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("myLytebox.end('slideshow')", this.slideInterval); + } + } else { + if (!this.isPaused) { + this.slideshowIDArray[this.slideshowIDCount++] = setTimeout("myLytebox.changeContent("+(this.activeSlide+1)+")", this.slideInterval); + } + } + this.doc.getElementById('lbHoverNav').style.display = (this.showNavigation && this.navType == 1 ? '' : 'none'); + this.doc.getElementById('lbClose').style.display = (this.showClose ? '' : 'none'); + this.doc.getElementById('lbDetails').style.display = (this.showDetails ? '' : 'none'); + this.doc.getElementById('lbPause').style.display = (this.showPlayPause && !this.isPaused ? '' : 'none'); + this.doc.getElementById('lbPlay').style.display = (this.showPlayPause && !this.isPaused ? 'none' : ''); + this.doc.getElementById('lbNavDisplay').style.display = (this.showNavigation && this.navType == 2 ? '' : 'none'); + } else { + this.doc.getElementById('lbHoverNav').style.display = (this.navType == 1 && !this.isLyteframe ? '' : 'none'); + if ((this.navType == 2 && !this.isLyteframe && this.imageArray.length > 1) || (this.frameArray.length > 1 && this.isLyteframe)) { + this.doc.getElementById('lbNavDisplay').style.display = ''; + } else { + this.doc.getElementById('lbNavDisplay').style.display = 'none'; + } + this.doc.getElementById('lbClose').style.display = ''; + this.doc.getElementById('lbDetails').style.display = ''; + this.doc.getElementById('lbPause').style.display = 'none'; + this.doc.getElementById('lbPlay').style.display = 'none'; + } + this.doc.getElementById('lbImageContainer').style.display = (this.isLyteframe ? 'none' : ''); + this.doc.getElementById('lbIframeContainer').style.display = (this.isLyteframe ? '' : 'none'); + try { + this.doc.getElementById('lbIframe').src = this.frameArray[this.activeFrame][0]; + } catch(e) { } + } else { + this.showContentTimerArray[this.showContentTimerCount++] = setTimeout("myLytebox.showContent()", 200); + } +}; +LyteBox.prototype.updateDetails = function() { + var object = this.doc.getElementById('lbCaption'); + var sTitle = (this.isSlideshow ? this.slideArray[this.activeSlide][1] : (this.isLyteframe ? this.frameArray[this.activeFrame][1] : this.imageArray[this.activeImage][1])); + object.style.display = ''; + object.innerHTML = (sTitle == null ? '' : sTitle); + this.updateNav(); + this.doc.getElementById('lbDetailsContainer').style.display = ''; + object = this.doc.getElementById('lbNumberDisplay'); + if (this.isSlideshow && this.slideArray.length > 1) { + object.style.display = ''; + object.innerHTML = "Image " + eval(this.activeSlide + 1) + " of " + this.slideArray.length; + this.doc.getElementById('lbNavDisplay').style.display = (this.navType == 2 && this.showNavigation ? '' : 'none'); + } else if (this.imageArray.length > 1 && !this.isLyteframe) { + object.style.display = ''; + object.innerHTML = "Image " + eval(this.activeImage + 1) + " of " + this.imageArray.length; + this.doc.getElementById('lbNavDisplay').style.display = (this.navType == 2 ? '' : 'none'); + } else if (this.frameArray.length > 1 && this.isLyteframe) { + object.style.display = ''; + object.innerHTML = "Page " + eval(this.activeFrame + 1) + " of " + this.frameArray.length; + this.doc.getElementById('lbNavDisplay').style.display = ''; + } else { + this.doc.getElementById('lbNavDisplay').style.display = 'none'; + } + this.appear('lbDetailsContainer', (this.doAnimations ? 0 : 100)); +}; +LyteBox.prototype.updateNav = function() { + if (this.isSlideshow) { + if (this.activeSlide != 0) { + var object = (this.navType == 2 ? this.doc.getElementById('lbPrev2') : this.doc.getElementById('lbPrev')); + object.style.display = ''; + object.onclick = function() { + if (myLytebox.pauseOnPrevClick) { myLytebox.togglePlayPause("lbPause", "lbPlay"); } + myLytebox.changeContent(myLytebox.activeSlide - 1); return false; + } + } else { + if (this.navType == 2) { this.doc.getElementById('lbPrev2_Off').style.display = ''; } + } + if (this.activeSlide != (this.slideArray.length - 1)) { + var object = (this.navType == 2 ? this.doc.getElementById('lbNext2') : this.doc.getElementById('lbNext')); + object.style.display = ''; + object.onclick = function() { + if (myLytebox.pauseOnNextClick) { myLytebox.togglePlayPause("lbPause", "lbPlay"); } + myLytebox.changeContent(myLytebox.activeSlide + 1); return false; + } + } else { + if (this.navType == 2) { this.doc.getElementById('lbNext2_Off').style.display = ''; } + } + } else if (this.isLyteframe) { + if(this.activeFrame != 0) { + var object = this.doc.getElementById('lbPrev2'); + object.style.display = ''; + object.onclick = function() { + myLytebox.changeContent(myLytebox.activeFrame - 1); return false; + } + } else { + this.doc.getElementById('lbPrev2_Off').style.display = ''; + } + if(this.activeFrame != (this.frameArray.length - 1)) { + var object = this.doc.getElementById('lbNext2'); + object.style.display = ''; + object.onclick = function() { + myLytebox.changeContent(myLytebox.activeFrame + 1); return false; + } + } else { + this.doc.getElementById('lbNext2_Off').style.display = ''; + } + } else { + if(this.activeImage != 0) { + var object = (this.navType == 2 ? this.doc.getElementById('lbPrev2') : this.doc.getElementById('lbPrev')); + object.style.display = ''; + object.onclick = function() { + myLytebox.changeContent(myLytebox.activeImage - 1); return false; + } + } else { + if (this.navType == 2) { this.doc.getElementById('lbPrev2_Off').style.display = ''; } + } + if(this.activeImage != (this.imageArray.length - 1)) { + var object = (this.navType == 2 ? this.doc.getElementById('lbNext2') : this.doc.getElementById('lbNext')); + object.style.display = ''; + object.onclick = function() { + myLytebox.changeContent(myLytebox.activeImage + 1); return false; + } + } else { + if (this.navType == 2) { this.doc.getElementById('lbNext2_Off').style.display = ''; } + } + } + this.enableKeyboardNav(); +}; +LyteBox.prototype.enableKeyboardNav = function() { document.onkeydown = this.keyboardAction; }; +LyteBox.prototype.disableKeyboardNav = function() { document.onkeydown = ''; }; +LyteBox.prototype.keyboardAction = function(e) { + var keycode = key = escape = null; + keycode = (e == null) ? event.keyCode : e.which; + key = String.fromCharCode(keycode).toLowerCase(); + escape = (e == null) ? 27 : e.DOM_VK_ESCAPE; + if ((key == 'x') || (key == 'c') || (keycode == escape)) { + myLytebox.end(); + } else if ((key == 'p') || (keycode == 37)) { + if (myLytebox.isSlideshow) { + if(myLytebox.activeSlide != 0) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeSlide - 1); + } + } else if (myLytebox.isLyteframe) { + if(myLytebox.activeFrame != 0) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeFrame - 1); + } + } else { + if(myLytebox.activeImage != 0) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeImage - 1); + } + } + } else if ((key == 'n') || (keycode == 39)) { + if (myLytebox.isSlideshow) { + if(myLytebox.activeSlide != (myLytebox.slideArray.length - 1)) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeSlide + 1); + } + } else if (myLytebox.isLyteframe) { + if(myLytebox.activeFrame != (myLytebox.frameArray.length - 1)) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeFrame + 1); + } + } else { + if(myLytebox.activeImage != (myLytebox.imageArray.length - 1)) { + myLytebox.disableKeyboardNav(); + myLytebox.changeContent(myLytebox.activeImage + 1); + } + } + } +}; +LyteBox.prototype.preloadNeighborImages = function() { + if (this.isSlideshow) { + if ((this.slideArray.length - 1) > this.activeSlide) { + preloadNextImage = new Image(); + preloadNextImage.src = this.slideArray[this.activeSlide + 1][0]; + } + if(this.activeSlide > 0) { + preloadPrevImage = new Image(); + preloadPrevImage.src = this.slideArray[this.activeSlide - 1][0]; + } + } else { + if ((this.imageArray.length - 1) > this.activeImage) { + preloadNextImage = new Image(); + preloadNextImage.src = this.imageArray[this.activeImage + 1][0]; + } + if(this.activeImage > 0) { + preloadPrevImage = new Image(); + preloadPrevImage.src = this.imageArray[this.activeImage - 1][0]; + } + } +}; +LyteBox.prototype.togglePlayPause = function(hideID, showID) { + if (this.isSlideshow && hideID == "lbPause") { + for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } + } + this.doc.getElementById(hideID).style.display = 'none'; + this.doc.getElementById(showID).style.display = ''; + if (hideID == "lbPlay") { + this.isPaused = false; + if (this.activeSlide == (this.slideArray.length - 1)) { + this.end(); + } else { + this.changeContent(this.activeSlide + 1); + } + } else { + this.isPaused = true; + } +}; +LyteBox.prototype.end = function(caller) { + var closeClick = (caller == 'slideshow' ? false : true); + if (this.isSlideshow && this.isPaused && !closeClick) { return; } + this.disableKeyboardNav(); + this.doc.getElementById('lbMain').style.display = 'none'; + this.fade('lbOverlay', (this.doAnimations ? this.maxOpacity : 0)); + this.toggleSelects('visible'); + if (this.hideFlash) { this.toggleFlash('visible'); } + if (this.isSlideshow) { + for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } + } + if (this.isLyteframe) { + this.initialize(); + } +}; +LyteBox.prototype.checkFrame = function() { + if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) { + this.isFrame = true; + this.lytebox = "window.parent." + window.name + ".myLytebox"; + this.doc = parent.document; + } else { + this.isFrame = false; + this.lytebox = "myLytebox"; + this.doc = document; + } +}; +LyteBox.prototype.getPixelRate = function(cur, img) { + var diff = (img > cur) ? img - cur : cur - img; + if (diff >= 0 && diff <= 100) { return 10; } + if (diff > 100 && diff <= 200) { return 15; } + if (diff > 200 && diff <= 300) { return 20; } + if (diff > 300 && diff <= 400) { return 25; } + if (diff > 400 && diff <= 500) { return 30; } + if (diff > 500 && diff <= 600) { return 35; } + if (diff > 600 && diff <= 700) { return 40; } + if (diff > 700) { return 45; } +}; +LyteBox.prototype.appear = function(id, opacity) { + var object = this.doc.getElementById(id).style; + object.opacity = (opacity / 100); + object.MozOpacity = (opacity / 100); + object.KhtmlOpacity = (opacity / 100); + object.filter = "alpha(opacity=" + (opacity + 10) + ")"; + if (opacity == 100 && (id == 'lbImage' || id == 'lbIframe')) { + try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */ + this.updateDetails(); + } else if (opacity >= this.maxOpacity && id == 'lbOverlay') { + for (var i = 0; i < this.overlayTimerCount; i++) { window.clearTimeout(this.overlayTimerArray[i]); } + return; + } else if (opacity >= 100 && id == 'lbDetailsContainer') { + try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */ + for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); } + this.doc.getElementById('lbOverlay').style.height = this.getPageSize()[1] + "px"; + } else { + if (id == 'lbOverlay') { + this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("myLytebox.appear('" + id + "', " + (opacity+20) + ")", 1); + } else { + this.imageTimerArray[this.imageTimerCount++] = setTimeout("myLytebox.appear('" + id + "', " + (opacity+10) + ")", 1); + } + } +}; +LyteBox.prototype.fade = function(id, opacity) { + var object = this.doc.getElementById(id).style; + object.opacity = (opacity / 100); + object.MozOpacity = (opacity / 100); + object.KhtmlOpacity = (opacity / 100); + object.filter = "alpha(opacity=" + opacity + ")"; + if (opacity <= 0) { + try { + object.display = 'none'; + } catch(err) { } + } else if (id == 'lbOverlay') { + this.overlayTimerArray[this.overlayTimerCount++] = setTimeout("myLytebox.fade('" + id + "', " + (opacity-20) + ")", 1); + } else { + this.timerIDArray[this.timerIDCount++] = setTimeout("myLytebox.fade('" + id + "', " + (opacity-10) + ")", 1); + } +}; +LyteBox.prototype.resizeW = function(id, curW, maxW, pixelrate, speed) { + if (!this.hDone) { + this.resizeWTimerArray[this.resizeWTimerCount++] = setTimeout("myLytebox.resizeW('" + id + "', " + curW + ", " + maxW + ", " + pixelrate + ")", 100); + return; + } + var object = this.doc.getElementById(id); + var timer = speed ? speed : (this.resizeDuration/2); + var newW = (this.doAnimations ? curW : maxW); + object.style.width = (newW) + "px"; + if (newW < maxW) { + newW += (newW + pixelrate >= maxW) ? (maxW - newW) : pixelrate; + } else if (newW > maxW) { + newW -= (newW - pixelrate <= maxW) ? (newW - maxW) : pixelrate; + } + this.resizeWTimerArray[this.resizeWTimerCount++] = setTimeout("myLytebox.resizeW('" + id + "', " + newW + ", " + maxW + ", " + pixelrate + ", " + (timer+0.02) + ")", timer+0.02); + if (parseInt(object.style.width) == maxW) { + this.wDone = true; + for (var i = 0; i < this.resizeWTimerCount; i++) { window.clearTimeout(this.resizeWTimerArray[i]); } + } +}; +LyteBox.prototype.resizeH = function(id, curH, maxH, pixelrate, speed) { + var timer = speed ? speed : (this.resizeDuration/2); + var object = this.doc.getElementById(id); + var newH = (this.doAnimations ? curH : maxH); + object.style.height = (newH) + "px"; + if (newH < maxH) { + newH += (newH + pixelrate >= maxH) ? (maxH - newH) : pixelrate; + } else if (newH > maxH) { + newH -= (newH - pixelrate <= maxH) ? (newH - maxH) : pixelrate; + } + this.resizeHTimerArray[this.resizeHTimerCount++] = setTimeout("myLytebox.resizeH('" + id + "', " + newH + ", " + maxH + ", " + pixelrate + ", " + (timer+.02) + ")", timer+.02); + if (parseInt(object.style.height) == maxH) { + this.hDone = true; + for (var i = 0; i < this.resizeHTimerCount; i++) { window.clearTimeout(this.resizeHTimerArray[i]); } + } +}; +LyteBox.prototype.getPageScroll = function() { + if (self.pageYOffset) { + return this.isFrame ? parent.pageYOffset : self.pageYOffset; + } else if (this.doc.documentElement && this.doc.documentElement.scrollTop){ + return this.doc.documentElement.scrollTop; + } else if (document.body) { + return this.doc.body.scrollTop; + } +}; +LyteBox.prototype.getPageSize = function() { + var xScroll, yScroll, windowWidth, windowHeight; + if (window.innerHeight && window.scrollMaxY) { + xScroll = this.doc.scrollWidth; + yScroll = (this.isFrame ? parent.innerHeight : self.innerHeight) + (this.isFrame ? parent.scrollMaxY : self.scrollMaxY); + } else if (this.doc.body.scrollHeight > this.doc.body.offsetHeight){ + xScroll = this.doc.body.scrollWidth; + yScroll = this.doc.body.scrollHeight; + } else { + xScroll = this.doc.getElementsByTagName("html").item(0).offsetWidth; + yScroll = this.doc.getElementsByTagName("html").item(0).offsetHeight; + xScroll = (xScroll < this.doc.body.offsetWidth) ? this.doc.body.offsetWidth : xScroll; + yScroll = (yScroll < this.doc.body.offsetHeight) ? this.doc.body.offsetHeight : yScroll; + } + if (self.innerHeight) { + windowWidth = (this.isFrame) ? parent.innerWidth : self.innerWidth; + windowHeight = (this.isFrame) ? parent.innerHeight : self.innerHeight; + } else if (document.documentElement && document.documentElement.clientHeight) { + windowWidth = this.doc.documentElement.clientWidth; + windowHeight = this.doc.documentElement.clientHeight; + } else if (document.body) { + windowWidth = this.doc.getElementsByTagName("html").item(0).clientWidth; + windowHeight = this.doc.getElementsByTagName("html").item(0).clientHeight; + windowWidth = (windowWidth == 0) ? this.doc.body.clientWidth : windowWidth; + windowHeight = (windowHeight == 0) ? this.doc.body.clientHeight : windowHeight; + } + var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll; + var pageWidth = (xScroll < windowWidth) ? windowWidth : xScroll; + return new Array(pageWidth, pageHeight, windowWidth, windowHeight); +}; +LyteBox.prototype.toggleFlash = function(state) { + var objects = this.doc.getElementsByTagName("object"); + for (var i = 0; i < objects.length; i++) { + objects[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + var embeds = this.doc.getElementsByTagName("embed"); + for (var i = 0; i < embeds.length; i++) { + embeds[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + if (this.isFrame) { + for (var i = 0; i < parent.frames.length; i++) { + try { + objects = parent.frames[i].window.document.getElementsByTagName("object"); + for (var j = 0; j < objects.length; j++) { + objects[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + } catch(e) { } + try { + embeds = parent.frames[i].window.document.getElementsByTagName("embed"); + for (var j = 0; j < embeds.length; j++) { + embeds[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + } catch(e) { } + } + } +}; +LyteBox.prototype.toggleSelects = function(state) { + var selects = this.doc.getElementsByTagName("select"); + for (var i = 0; i < selects.length; i++ ) { + selects[i].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + if (this.isFrame) { + for (var i = 0; i < parent.frames.length; i++) { + try { + selects = parent.frames[i].window.document.getElementsByTagName("select"); + for (var j = 0; j < selects.length; j++) { + selects[j].style.visibility = (state == "hide") ? 'hidden' : 'visible'; + } + } catch(e) { } + } + } +}; +LyteBox.prototype.pause = function(numberMillis) { + var now = new Date(); + var exitTime = now.getTime() + numberMillis; + while (true) { + now = new Date(); + if (now.getTime() > exitTime) { return; } + } +}; +LyteBox.prototype.combine = function(anchors, areas) { + var lyteLinks = []; + for (var i = 0; i < anchors.length; i++) { + lyteLinks.push(anchors[i]); + } + for (var i = 0; i < areas.length; i++) { + lyteLinks.push(areas[i]); + } + return lyteLinks; +} +if (window.addEventListener) { + window.addEventListener("load",initLytebox,false); +} else if (window.attachEvent) { + window.attachEvent("onload",initLytebox); +} else { + window.onload = function() {initLytebox();} +} function initLytebox() { myLytebox = new LyteBox(); } \ No newline at end of file