author | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Wed, 28 Oct 2009 20:05:35 +0000 (20:05 +0000) | ||
committer | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Wed, 28 Oct 2009 20:05:35 +0000 (20:05 +0000) |
299 files changed:
diff --git a/website/.htaccess b/website/.htaccess
--- /dev/null
+++ b/website/.htaccess
@@ -0,0 +1,12 @@
+DirectoryIndex index.en.html index.html
+ErrorDocument 404 http://oss.oetiker.ch/rrdtool/404.var
+RewriteEngine On
+RewriteRule index.html http://oss.oetiker.ch/rrdtool/ [R=302,L]
+RewriteRule download.html http://oss.oetiker.ch/rrdtool/download.en.html [R=302,L]
+<FilesMatch ".htaccess">
+ Order Allow,Deny
+ Allow From All
+</FilesMatch>
+<FilesMatch "mirror.html">
+ SetHandler cgi-script
+</FilesMatch>
diff --git a/website/.pics/rrdtool.gif b/website/.pics/rrdtool.gif
new file mode 100644 (file)
index 0000000..e95824a
Binary files /dev/null and b/website/.pics/rrdtool.gif differ
index 0000000..e95824a
Binary files /dev/null and b/website/.pics/rrdtool.gif differ
diff --git a/website/.wmkrc b/website/.wmkrc
--- /dev/null
+++ b/website/.wmkrc
@@ -0,0 +1,3 @@
+-o LANG_VAR:%BASE.var
+-o (ALL-LANG_*)+LANG_EN:%BASE.en.html@ug+x
+#-o (ALL-LANG_*)+LANG_DE:%BASE.de.html@ug+x
diff --git a/website/.wmlrc b/website/.wmlrc
--- /dev/null
+++ b/website/.wmlrc
@@ -0,0 +1,17 @@
+-DROOT~.
+
+###############################
+# Language setup
+-DLANGS="en"
+
+###############################
+
+#-I/home/eedesign/public_html
+# last has priority
+-I.
+
+-E $(ROOT)/bin/htmlfix.sh
+-P $(ROOT)/bin/headfix.pl
+
+# tune mp4h behaviour (expansion 0 means complain about everything)
+-W "2,--expansion=0"
diff --git a/website/404.wml b/website/404.wml
--- /dev/null
+++ b/website/404.wml
@@ -0,0 +1,9 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "404">
+
+
+<H1>Sorry this page does not exist</H1>
+
+<p>For the release of RRDtool 1.2 the RRDtool website has been restructured.
+Most things are still around, but probably under a new address.</p>
+
diff --git a/website/award-white.png b/website/award-white.png
new file mode 100644 (file)
index 0000000..40d0b24
Binary files /dev/null and b/website/award-white.png differ
index 0000000..40d0b24
Binary files /dev/null and b/website/award-white.png differ
diff --git a/website/bin/fix-hrefs.pl b/website/bin/fix-hrefs.pl
--- /dev/null
+++ b/website/bin/fix-hrefs.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl -w
+
+use strict;
+use HTML::Parser;
+
+my $p = HTML::Parser->new(api_version => 3);
+$p->handler(start => \&startsub, 'tagname, text');
+#$p->handler(end => \&endsub, 'tagname, text');
+$p->handler(default => sub { print shift() }, 'text');
+$p->parse_file(shift||"-") or die("parse: $!");
+
+sub startsub {
+ my $tag = shift;
+ my $text = shift;
+
+ if ($tag eq "a") {
+ $text =~ s,".*?/doc/,",;
+ $text =~ /^http:/ || $text =~ s,\.html,.en.html,;
+ $text =~ s/name=".+?"//;
+ }
+ print $text;
+}
diff --git a/website/bin/fix-pod2html-orig.pl b/website/bin/fix-pod2html-orig.pl
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/perl -w
+
+use strict;
+use HTML::Parser;
+
+# fix pod2html output:
+# v1.0: defer </dd> and </dt> tags until
+# the next <dd>, <dt> or </dl>
+
+# v1.1: don't nest any <a> elements;
+# end one before beginning another
+
+# v1.2: insert <dd> tags if <dl> occurs
+# inside <dt>
+
+# v1.3: <a> anchors must not start with a digit;
+# insert a letter "N" at the start if they do
+
+# v1.4: insert the "N" letter into <a href="#xxx"> too.
+
+my $p = HTML::Parser->new(api_version => 3);
+$p->handler(start => \&startsub, 'tagname, text');
+$p->handler(end => \&endsub, 'tagname, text');
+$p->handler(default => sub { print shift() }, 'text');
+$p->parse_file(shift||"-") or die("parse: $!");
+
+my @stack;
+my $a=0;
+
+sub startsub {
+ my $tag = shift;
+ my $text = shift;
+ if ($tag eq "dl") {
+ if (@stack and $stack[0] eq "dt") {
+ $stack[0] = "dd";
+ print "</dt><dd>";
+ }
+ unshift @stack, 0;
+ }
+ if (($tag eq "dt" or $tag eq "dd") and $stack[0]) {
+ print "</$stack[0]>";
+ $stack[0] = 0;
+ }
+ if ($tag eq "a") {
+ if ($a) {
+ print "</a>";
+ } else {
+ $a++;
+ }
+ $text =~ s/(name="|href="#)(\d)/$1N$2/;
+ }
+ print $text;
+}
+
+
+sub endsub {
+ my $tag = shift;
+ my $text = shift;
+ if ($tag eq "dl") {
+ print "</$stack[0]>" if $stack[0];
+ shift @stack;
+ }
+ if ($tag eq "a") {
+ if ($a) {
+ print "</a>";
+ $a--;
+ }
+ } elsif ($tag eq "dd" or $tag eq "dt") {
+ $stack[0] = $tag;
+ } else {
+ print $text;
+ }
+}
diff --git a/website/bin/fix-pod2html.pl b/website/bin/fix-pod2html.pl
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+
+use strict;
+use HTML::Parser;
+
+# fix pod2html output:
+# v1.0: defer </dd> and </dt> tags until
+# the next <dd>, <dt> or </dl>
+
+# v1.1: don't nest any <a> elements;
+# end one before beginning another
+
+# v1.2: insert <dd> tags if <dl> occurs
+# inside <dt>
+
+# v1.3: <a> anchors must not start with a digit;
+# insert a letter "N" at the start if they do
+
+# v1.4: insert the "N" letter into <a href="#xxx"> too.
+
+my $p = HTML::Parser->new(api_version => 3);
+$p->handler(start => \&startsub, 'tagname, text');
+$p->handler(end => \&endsub, 'tagname, text');
+$p->handler(default => sub { print shift() }, 'text');
+$p->parse_file(shift||"-") or die("parse: $!");
+
+my @ddstack;
+my @listack;
+my $a=0;
+
+sub startsub {
+ my $tag = shift;
+ my $text = shift;
+ if ($tag eq "dl") {
+ if (@ddstack and $ddstack[0] eq "dt") {
+ $ddstack[0] = "dd";
+ print "</dt><dd>";
+ }
+ unshift @ddstack, 0;
+ }
+ if ($tag =~ /^[uo]l$/) {
+ unshift @listack, 0;
+ }
+ if (($tag eq "dt" or $tag eq "dd") and $ddstack[0]) {
+ print "</$ddstack[0]>";
+ $ddstack[0] = 0;
+ }
+ if (($tag eq "li") and $listack[0]) {
+ print "</$listack[0]>";
+ $listack[0] = 0;
+ }
+ if ($tag eq "a") {
+ if ($a) {
+ print "</a>";
+ } else {
+ $a++;
+ }
+ $text =~ s/(name="|href="#)(\d)/$1N$2/;
+ }
+ print $text;
+}
+
+
+sub endsub {
+ my $tag = shift;
+ my $text = shift;
+ if ($tag eq "dl") {
+ print "</$ddstack[0]>" if $ddstack[0];
+ shift @ddstack;
+ } elsif ($tag =~ /^[uo]l$/) {
+ print "</$listack[0]>" if $listack[0];
+ shift @listack;
+ }
+
+ if ($tag eq "a") {
+ if ($a) {
+ print "</a>";
+ $a--;
+ }
+ } elsif ($tag eq "dd" or $tag eq "dt") {
+ $ddstack[0] = $tag;
+ } elsif ($tag eq "li") {
+ $listack[0] = $tag;
+ } else {
+ print $text;
+ }
+}
diff --git a/website/bin/headfix.pl b/website/bin/headfix.pl
--- /dev/null
+++ b/website/bin/headfix.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+undef $/; #slurp alll
+$_ = <>;
+while (s/<page[\s\n\r]+(\S+)\s*=\s*(?:"([^"]+)"|([^"\s>]+))/<page/si){
+ chomp($VAL{uc($1)}= $2 ? $2: $3);
+}
+
+if ($VAL{TYPE} eq 'lone') {
+ $sub="_$VAL{TYPE}";
+}
+
+s|<page[\s\n\r]*/?>|#include <inc/template${sub}.inc> PAGE="$VAL{PAGE}" AUTHOR="$VAL{AUTHOR}" TYPE="$VAL{TYPE}"\n|si;
+
+print;
+
diff --git a/website/bin/htmlfix.sh b/website/bin/htmlfix.sh
--- /dev/null
+++ b/website/bin/htmlfix.sh
@@ -0,0 +1,24 @@
+#! /bin/sh
+case $1 in
+*.html)
+# tidy -latin1 -wrap 0 -q -asxhtml $1 >$1.fixed 2>$1.report
+# TIDY_RET=$?
+ cp $1 $1.fixed
+ TIDY_RET=0
+ perl -i -0777 -p -e 's/^\s*//;s{="mailto:(oetiker|tobi|tobias)@(oetiker.ch|ee.ethz.ch)"}{="http://tobi.oetiker.ch/"}g;s{="mailto:(\S*?)\@(\S*?)"}{="mailto:$1@..delete..this..$2"}g' $1.fixed
+ # yes, beleive it or not IE chockes on propper xhtml pages ... sigh
+ perl -i -0777 -p -e 's/^\s*<\?xml.+?\?>\s*//;' $1.fixed
+ if [ $TIDY_RET != 0 ]; then
+ echo Parsing: $1
+ egrep -v "^(HTML Tidy|$1:|To learn|Please send|HTML and CSS|Lobby your)" $1.report
+ rm $1.report
+ name=`basename $1 .html`
+ name=`basename $name .en`
+ name=`basename $name .de`
+ touch -m -t 198001010000 $name.*.html
+ exit 1
+ fi
+ mv $1.fixed $1
+ rm -f $1.report
+;;
+esac
diff --git a/website/bin/pod2wml.classic.sh b/website/bin/pod2wml.classic.sh
--- /dev/null
@@ -0,0 +1,39 @@
+pod2wml (){
+ base=$1
+ [ -z "$descr" ] && descr=$base
+ [ -z "$menu" ] && menu=$descr
+ pod2html --infile=$base.pod --outfile=$base.pre --noindex --htmlroot='$(ROOT)' --podroot=$SITEROOT --podpath=$PODPATH
+ $SITEROOT/bin/fix-pod2html.pl $base.pre | $SITEROOT/bin/fix-hrefs.pl >$base.html
+ echo "<nav:but ${sect}_$base \"$menu\" $base/>" >>navbar.inc
+ printf "<dt><a href=\"$base.en.html\">" >>index.inc
+ grep $base $base.pod |fgrep ' - '|head -1|sed 's| - |</a></dt><dd>|' >>index.inc
+ echo "</dd>" >>index.inc
+ echo "<page page=\"${sect}_$base\"" > $base.wml
+ perl -0777 -n -e 's|E<lt>|<|g;s|E<gt>|>|g;m|=head1 AUTHO\S+\s*(.+)| && do {$a=$1;$e="no\@address.nowhere";$a=~ s/\s*<(.+?)>\s*,?// and $e=$1; $e=~ s/\s\S+\s/\@/;print "author=\"$a <$e>\"/>\n"}' $base.pod >>$base.wml
+ # perl -0777 -n -e 's|.*?(<h1.+)</body>.*|$1|s;for($i=5;$i>0;$i--){$j=$i-1;s|(</?h)$j>|$1$i>|g}; s|<h2><a name="name">NAME</a></h2>.*?<p>(.+?) - .*?</p>|<h1>$1</h1>|s;s|<p>\s*</p>||g;s|<hr.*?>||g;s|</pre>\s*<pre>|\n|g;s|<br\s*/>\s*</dt>|</dt>|g;s|</dd>\s*<dd>||g;print ' $base.html >>$base.wml
+ perl -0777 -n -e '
+ s|.*?(<h1.+)</body>.*|$1|s;
+ for($i=5;$i>0;$i--){
+ $j=$i-1;
+ s|(</?h)$j>|$1$i>|g
+ };
+ s|<h2.*?>.*?NAME.*?</h2>.*?<p.*?>\s*(.+?)\s*- .*?</p>|<h1>$1</h1>|s;
+ s{<li></li>(.+?)(?=<li>|</?ul>|</?ol>)}{<li>$1</li>}sg;
+ s|<dt><strong>\s*(.+?)</strong>\s*<dd>|<dt>$1</dt>\n<dd>|sg;
+ s|<p>\s*</p>|\n|g;
+ s|\n\s|\n|g;
+ s|\s*</pre>\s*<pre>\s*|\n\n|g;
+ s|(\S)</pre>|$1\n</pre>|g;
+ s|<pre>(.+?)</pre>|<protect><pre>$1</pre></protect>|gs;
+# s|<strong>\s*(.+?)\s*</strong><br />\s+</dt>|$1</dt>\n|g;
+ s|<hr />\s*<h2>|<h2>|g;
+ s|<dd>\s*</dd>||gs;
+ s|<a href=".*?/website|<a href="\$(ROOT)|g;
+ s|(<h2><a.*?>)\s*(\S)(.+?)\s*(</a></h2>)|$1$2\L$3\E$4|g;
+ print
+ ' $base.html >>$base.wml
+# rm $base.html
+ perl -i~ -0777 -p -e 's|</dd>\s*<pre(.*?)</pre>\s*<dd>|</dd><dd><pre$1</pre></dd><dd>|sg' $base.wml
+ rm $base.html $base.pre
+ descr=""
+}
diff --git a/website/bin/pod2wml.sh b/website/bin/pod2wml.sh
--- /dev/null
+++ b/website/bin/pod2wml.sh
@@ -0,0 +1,61 @@
+pod2wml (){
+ base=$1
+ [ -z "$descr" ] && descr=$base
+ [ -z "$menu" ] && menu=$descr
+ perl-5.8.8 -I/home/oetiker/checkouts/mrtg/trunk/web/bin/lib -MPod::Simple::HTML -e Pod::Simple::HTML::go $base.pod $base.html
+#Thing.pod Thing.html
+# pod2html-5.8.8 --infile=$base.pod --outfile=$base.pre --noindex --htmlroot='$(ROOT)' --podroot=$SITEROOT --podpath=$PODPATH
+# $SITEROOT/bin/fix-pod2html.pl $base.pre | $SITEROOT/bin/fix-hrefs.pl >$base.html
+ echo "<nav:but ${sect}_$base \"$menu\" $base/>" >>navbar.inc
+ printf "<dt><a href=\"$base.en.html\">" >>index.inc
+ grep -i $base $base.pod |fgrep ' - '|head -1|sed 's| - |</a></dt><dd>|' >>index.inc
+ echo "</dd>" >>index.inc
+ echo "<page page=\"${sect}_$base\"" > $base.wml
+ perl-5.8.8 -0777 -n -e 's|E<lt>|<|g;s|E<gt>|>|g;m|=head1 AUTHO\S+\s*(.+)| && do {$a=$1;$a =~ s/>.*/>/; $e="no\@address.nowhere";$a=~ s/\s*<(.+?)>\s*,?// and $e=$1; $e=~ s/\s\S+\s/\@/;print "author=\"$a <$e>\"/>\n"}' $base.pod >>$base.wml
+ # perl -0777 -n -e 's|.*?(<h1.+)</body>.*|$1|s;for($i=5;$i>0;$i--){$j=$i-1;s|(</?h)$j>|$1$i>|g}; s|<h2><a name="name">NAME</a></h2>.*?<p>(.+?) - .*?</p>|<h1>$1</h1>|s;s|<p>\s*</p>||g;s|<hr.*?>||g;s|</pre>\s*<pre>|\n|g;s|<br\s*/>\s*</dt>|</dt>|g;s|</dd>\s*<dd>||g;print ' $base.html >>$base.wml
+true <<'XXXX'
+ perl-5.8.8 -0777 -n -e '
+ s|.*?(<h1.+)</body>.*|$1|s;
+ for($i=5;$i>0;$i--){
+ $j=$i-1;
+ s|(</?h)$j>|$1$i>|g
+ };
+ s|<h2.*?>.*?NAME.*?</h2>.*?<p.*?>\s*(.+?)\s*- .*?</p>|<h1>$1</h1>|s;
+ s{<li></li>(.+?)(?=<li>|</?ul>|</?ol>)}{<li>$1</li>}sg;
+ s|<dt><strong>\s*(.*?)</strong>\s*<dd>|<dt>$1</dt>\n<dd>|sg;
+ s|<dd>\s*<p>\s*(.*?)\s*</p>\s*</dd>|<dd>$1</dd>|sg;
+ s|<li>\s*<p>([^<]+?)</p>\s*</li>|<li>$1</li>|sg;
+ s|<p>\s*</p>|\n|g;
+ s|\n\s|\n|g;
+ s|\s*</pre>\s*<pre>\s*|\n\n|g;
+ s|(\S)</pre>|$1\n</pre>|g;
+ s|<pre>(.+?)</pre>|<protect><pre>$1</pre></protect>|gs;
+# s|<strong>\s*(.+?)\s*</strong><br />\s+</dt>|$1</dt>\n|g;
+ s|<hr />\s*(<h\d>)|$1|g;
+ s|<dd>\s*</dd>||gs;
+ s|<a href=".*?/website|<a href="\$(ROOT)|g;
+ s|(<h2><a.*?>)\s*(\S)(.+?)\s*(</a></h2>)|$1$2\L$3\E$4|g;
+ print
+ ' $base.html >>$base.wml
+# rm $base.html
+ perl-5.8.8 -i~ -0777 -p -e 's|</dd>\s*<pre(.*?)</pre>\s*<dd>|</dd><dd><pre$1</pre></dd><dd>|sg' $base.wml
+XXXX
+ perl-5.8.8 -0777 -n -e '
+ s|</p>\s*<dt>|</p></dd>\n<dt>|sg;
+ s|</pre>\s*<dt>|</pre></dd>\n<dt>|sg;
+ s|<pre>(.+?)</pre>|<protect><pre>$1</pre></protect>|gs;
+ s|.*?(<h1.+)</body>.*|$1|s;
+ for($i=5;$i>0;$i--){
+ $j=$i-1;
+ s|(</?h)$j>|$1$i>|g
+ };
+ s|http://search.cpan.org/perldoc\?([^ #."]+)|$1.en.html|g;
+ s|rrdtutorial.en.html|../tut/rrdtutorial.en.html|g;
+ s|<h2.*?>.*?NAME.*?</h2>.*?<p.*?>\s*(.+?)\s*- .*?</p>|<h1>$1</h1>|s;
+ print
+ ' $base.html >>$base.wml
+# rm $base.html
+ rm $base.html
+# $base.pre
+ descr=""
+}
diff --git a/website/btdmd8.png b/website/btdmd8.png
new file mode 100644 (file)
index 0000000..ba559d8
Binary files /dev/null and b/website/btdmd8.png differ
index 0000000..ba559d8
Binary files /dev/null and b/website/btdmd8.png differ
diff --git a/website/build.sh b/website/build.sh
--- /dev/null
+++ b/website/build.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+PERL5LIB=/home/oetiker/lib/fake-perl/
+SITEROOT=`pwd`
+PODPATH=`ls */build.sh | sed -e 's|/.*||g' | perl -0777 -e 'print join ":", map {"$_"} split /\n/, <>'`
+export PERL5LIB SITEROOT PODPATH
+rm */pod*tmp
+for x in `ls */build.sh | sed 's|/.*||g'`; do
+ echo '****' $x '****'
+ (cd $x;./build.sh)
+done
diff --git a/website/cast.wml b/website/cast.wml
--- /dev/null
+++ b/website/cast.wml
@@ -0,0 +1,14 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "cast">
+
+<H1>Cast</H1>
+
+<p><b><a href="http://tobi.oetiker.ch">Tobias Oetiker</a></b> -- Initial design, Main Developer.</p>
+<p><b>Jake Brutlag</b> -- Aberrant Behavior Detection, Computed datasources.</p>
+<p><b>Alex van den Bogaerdt</b> -- VDEF and other features, lots of documentation.</p>
+
+<p>Over the Years many people have coded for RRDtool. Their contributions
+have helped greatly to make RRDtool as useful as it is today.</p>
+
+#use wml::fmt::verbatim
+<verbatim-file src="$(ROOT)/../program/CONTRIBUTORS"/>
diff --git a/website/doc/build.sh b/website/doc/build.sh
--- /dev/null
+++ b/website/doc/build.sh
@@ -0,0 +1,25 @@
+
+#!/bin/sh
+sect=doc
+src=../../program
+. ../bin/pod2wml.sh
+
+pod2descr() {
+ pod=$1.pod
+ descr=`grep " - " $pod|head -1|sed 's/.*- //'`
+ menu=`grep " - " $pod|head -1|sed 's/ -.*//'`
+}
+
+
+# build probe list
+rm -f navbar.inc
+rm -f index.inc
+
+for pod in `cd $src/doc/;echo rrdtool.pod;echo rrdcached.pod;ls *.pod|egrep -v 'rrdcached.pod|tutorial|beginners|graph-old|bin_dec|rrdtool.pod|python|RRD|ruby|lua|thread'`; do
+ base=`echo $pod |sed 's,.pod,,'`
+ echo $base
+ cat $src/doc/$pod > $base.pod
+ pod2descr $base
+ pod2wml $base
+done
+
diff --git a/website/doc/index.wml b/website/doc/index.wml
--- /dev/null
+++ b/website/doc/index.wml
@@ -0,0 +1,8 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "doc">
+
+<H1>RRDtool Documentation</H1>
+
+<dl>
+#include "index.inc"
+</dl>
diff --git a/website/download.wml b/website/download.wml
--- /dev/null
+++ b/website/download.wml
@@ -0,0 +1,79 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "down">
+
+<H1>RRDtool Download</H1>
+
+You can download RRD tool from several places:
+
+<H2>Primary Distribution Point</H2>
+
+<UL>
+ <LI><A HREF="http://oss.oetiker.ch/rrdtool/pub/?M=D">Stable Release</A></LI>
+ <LI><A HREF="http://oss.oetiker.ch/rrdtool/pub/beta/?M=D">Development SnapShots</A></LI>
+</UL>
+
+<p>You might want to read the <a href="doc/rrdbuild.en.html">build instructions</a> for inspiration on where to go after downloading the source.</p>
+
+#<H2>Mirror Sites</H2>
+#
+#<UL>
+# <LI>BR <A HREF="ftp://ftp.pucpr.br/rrdtool/">ftp://ftp.pucpr.br/rrdtool/</A>. (Rafael Gustavo Gassner rafael.gassner@pucpr.br)</LI>
+# <LI>FR <A HREF="ftp://ftp.fastorama.com/mirrors/rrdtool/">ftp://ftp.fastorama.com/mirrors/rddtool</A> (MrJacK mrjack@fastorama.com)</LI>
+# <LI>NL <A HREF="ftp://ftp.bit.nl/mirror/rrdtool/">ftp://ftp.bit.nl/mirror/rrdtool/</A> (BIT, The Netherlands mirror@bit.nl)</LI>
+# <LI>RO <A HREF="http://ftp.idilis.ro/mirrors/rrdtool/">http://ftp.idilis.ro/mirrors/rrdtool/</A> (Dragos Nitu mirrors@idilis.net)</LI>
+# <LI>SE <A HREF="ftp://ftp.sunet.se/pub/network/monitoring/rrdtool/">ftp://ftp.sunet.se/pub/network/monitoring/rrdtool/</A> (Johan.Hofvander@sdi.slu.se)</LI>
+# <LI>SI <A HREF="http://www.fastmirrors.org/rrdtool/">http://www.fastmirrors.org/rrdtool/</A> (Tomy Kurtis webadmin [at] fastmirrors.org)</LI>
+#</UL>
+
+<H2>Binary Distributions</H2>
+
+<UL>
+ <LI>AIX by <A HREF="mailto:zoran.majcenic_inet.hr">Zoran Majcenic</A> -- <A HREF="http://www.inet.hr/zmp/ibm/rrdtool">http://www.inet.hr/zmp/ibm/rrdtool</A></LI>
+ <LI>HP-UX by <A HREF="mailto:sangelov@globul.bg">Stoyan Angelov</A> -- <A HREF="http://www.filibeto.org/~aduritz/truetrue/rrdtool/">http://www.filibeto.org/~aduritz/truetrue/rrdtool/1.3.4</A></LI>
+ <LI>Solaris OpenCSW <A HREF="http://www.opencsw.org/packages/rrdtool"> http://www.opencsw.org/packages/rrdtool</a></LI>
+ <LI>Debian Linux <A HREF="http://packages.debian.org/rrdtool">http://packages.debian.org/rrdtool</A></LI>
+ <LI>T2 SDE Linux <A HREF="http://www.t2-project.org/packages/rrdtool.html">http://www.t2-project.org/packages/rrdtool.html</a></li>
+
+ <LI>RHEL, CentOS, Fedora <A HREF="mailto:wrl@express.org">William R. Lorenz</a> -- <A href="http://www.express.org/~wrl/rrdtool/">http://www.express.org/~wrl/rrdtool/</a></li>
+ <LI>Redhat/Fedora <A href="http://dag.wieers.com/packages/rrdtool/">http://dag.wieers.com/packages/rrdtool/</a></li>
+ <LI>Native Windows 1 <A HREF="http://oss.oetiker.ch/rrdtool/pub/?M=D">local</a></LI>
+ <LI>Native Windows 2 <A HREF="http://www.gknw.net/mirror/rrdtool/">http://www.gknw.net/mirror/rrdtool/</a></LI>
+ <LI>NetWare <A HREF="http://www.gknw.net/mirror/rrdtool/">http://www.gknw.net/mirror/rrdtool/</a></LI>
+ <LI>Cygwin Windows <A HREF="http://www.cacti.net/downloads/rrdtool/win32">http://www.cacti.net/downloads/rrdtool/win32/</a></LI>
+</UL>
+
+<H2>Anonymous SVN for RRDtool</H2>
+
+<p>RRDtool source is stored in a subversion repository with anonymous access.</p>
+
+<p>Browse the RRDtool SVN via <a href="http://oss.oetiker.ch/rrdtool-trac/browser/branches/1.2/program">RRDtrac</a>.
+Or if you want todo more than look ...</p>
+
+<pre>
+svn ls -R svn://svn.oetiker.ch/rrdtool/
+</pre>
+
+<p>tells you what is in the repository. Normally, development will happen in
+the "trunk" directory. Every major release gets an entry in the "branches"
+tree, and every released version get added to the "tags" tree.</p>
+
+<p>If you checkout code from the subversion repository, you will find that
+the <b>configure</b> script is missing. You get this generated by running:
+<B>./MakeMakefile</B> ... note that you will need automake, autoconf and
+libtool installed for this to work.</p>
+
+
+<p>If you fix a bug, I would love to see the output of '<b>svn diff</b>'.</p>
+
+<p>Starting with rrdtool 1.3rc1, make sure to run <code>./configure --enable-maintainer-mode</code> prior
+before 'makeing' modified source, to ensure that all bits get properly
+rebuilt.</p>
+
+<p>To get the latest changes from the current 1.2 branch use this:</p>
+<pre>
+svn checkout svn://svn.oetiker.ch/rrdtool/branches/1.2/program
+mv program rrdtool-1.2
+cd rrdtool-1.2
+./MakeMakefile
+</pre>
+
diff --git a/website/forum.wml b/website/forum.wml
--- /dev/null
+++ b/website/forum.wml
@@ -0,0 +1,5 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "forum">
+
+<a id="nabblelink" href="http://n2.nabble.com/RRD-Mailinglists-f937164.html">RRD Mailinglists</a>
+<script src="http://n2.nabble.com/embed/f937164"></script>
diff --git a/website/gallery/576_nodes.png b/website/gallery/576_nodes.png
new file mode 100644 (file)
index 0000000..894d2be
Binary files /dev/null and b/website/gallery/576_nodes.png differ
index 0000000..894d2be
Binary files /dev/null and b/website/gallery/576_nodes.png differ
diff --git a/website/gallery/576_nodes.xml b/website/gallery/576_nodes.xml
--- /dev/null
@@ -0,0 +1,12 @@
+<gallery image="576_nodes.png" >
+
+ <title> The Matrix </title>
+ <author> Fabien Wernli </author>
+ <description> This is a part of our cluster of about 2000 CPUs.
+ All nodes are being monitored in real-time for major system
+ information every 15 seconds. Data collection and consolidation
+ is done on one central server.
+ </description>
+ <year> 2006 </year><month> 1 </month>
+
+</gallery>
diff --git a/website/gallery/CPU__Load.xml b/website/gallery/CPU__Load.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<gallery image="CPU__Trend.png" > <!-- no wider than 600 pixle -->
+ <title> CPU Load drawed with drraw.cgi </title>
+ <author> Christoph Baumann </author>
+<description>
+Created with drraw from Christophe Kalt (See RRDtool Companions)
+Changing Colors and using the new Trend Funkion.
+</description>
+ <year> 2005 </year><month> 5 </month> <!-- creation date -->
+ <email> christoph.baumann@coop.ch </email>
+</gallery>
diff --git a/website/gallery/CPU__Trend.png b/website/gallery/CPU__Trend.png
new file mode 100644 (file)
index 0000000..ef47348
Binary files /dev/null and b/website/gallery/CPU__Trend.png differ
index 0000000..ef47348
Binary files /dev/null and b/website/gallery/CPU__Trend.png differ
diff --git a/website/gallery/all_gamers_36h.png b/website/gallery/all_gamers_36h.png
new file mode 100644 (file)
index 0000000..de35010
Binary files /dev/null and b/website/gallery/all_gamers_36h.png differ
index 0000000..de35010
Binary files /dev/null and b/website/gallery/all_gamers_36h.png differ
diff --git a/website/gallery/all_gamers_36h.xml b/website/gallery/all_gamers_36h.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<gallery image="all_gamers_36h.png" >
+
+ <title> Gamer count on 1stgame.nl </title>
+ <author> Tom Mulder </author>
+ <description> Stacked graph of gameserver player counts </description>
+ <year> 2005 </year><month> 11 </month> <!-- creation date -->
+
+ <livesite> http://stats.1stgame.nl/ </livesite>
+ <email> tom@removethis.1stgame.nl </email>
+
+</gallery>
diff --git a/website/gallery/andrey.png b/website/gallery/andrey.png
new file mode 100644 (file)
index 0000000..b20a190
Binary files /dev/null and b/website/gallery/andrey.png differ
index 0000000..b20a190
Binary files /dev/null and b/website/gallery/andrey.png differ
diff --git a/website/gallery/andrey.xml b/website/gallery/andrey.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="andrey.png" > <!-- no wider than 600 pixle -->
+
+ <title> Statistic for network interfaces </title>
+ <author> Andrey Afanasiev </author>
+ <description>
+ This a real (not artificial) data from a production machine.
+ Isn't it amazing? Probably not the ideal sampling interval.
+ </description>
+ <year> 2006 </year> <month> 11 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> none </livesite>
+ <email> afanasiev-av@mcc.elektra.ru </email>
+
+</gallery>
diff --git a/website/gallery/btdmd8.png b/website/gallery/btdmd8.png
new file mode 100644 (file)
index 0000000..013d82e
Binary files /dev/null and b/website/gallery/btdmd8.png differ
index 0000000..013d82e
Binary files /dev/null and b/website/gallery/btdmd8.png differ
diff --git a/website/gallery/btdmd8.xml b/website/gallery/btdmd8.xml
--- /dev/null
@@ -0,0 +1,18 @@
+<gallery image="btdmd8.png" > <!-- no wider than 600 pixle -->
+
+ <title>Interconnect Utilization in Erlangs (Minutes per Minute)</title>
+ <author>Ben Golden</author>
+<description>Graph shows inbound and outbound call traffic going in and out
+of the switch via the 6 trunks connected to the Diamond exchange. Inbound
+traffic shown as positive and uses a lowest-free fill method. Outbound
+traffic shown as negative uses a distributed fill method. <a
+href="/rrdtool-trac/wiki/OutlinedAreaGraph">Tech
+details on RRDtrac</a>.</description>
+
+ <year>2006</year><month>3</month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <email>bengolden@.removethis.blueyonder.co.uk</email>
+
+</gallery>
diff --git a/website/gallery/charles.png b/website/gallery/charles.png
new file mode 100644 (file)
index 0000000..a64ad9d
Binary files /dev/null and b/website/gallery/charles.png differ
index 0000000..a64ad9d
Binary files /dev/null and b/website/gallery/charles.png differ
diff --git a/website/gallery/charles.xml b/website/gallery/charles.xml
--- /dev/null
@@ -0,0 +1,9 @@
+<gallery image="charles.png" > <!-- no wider than 600 pixle -->
+
+ <title> HTTP Cache Traffic </title>
+ <author> Charles Glass </author>
+<description> HTTP cache traffic from servers and to clients </description>
+ <year> 2008 </year><month> 10 </month> <!-- creation date -->
+ <email> charlesequal@gmail.com </email>
+
+</gallery>
diff --git a/website/gallery/cubemon.png b/website/gallery/cubemon.png
new file mode 100644 (file)
index 0000000..9b05317
Binary files /dev/null and b/website/gallery/cubemon.png differ
index 0000000..9b05317
Binary files /dev/null and b/website/gallery/cubemon.png differ
diff --git a/website/gallery/cubemon.xml b/website/gallery/cubemon.xml
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+<gallery image="cubemon.png" > <!-- no wider than 600 pixle -->
+
+ <title>Cubemon</title>
+ <author>Hamish Marson</author>
+<description>Cubemon - Real-Time openGL rotating .png images from RRDTool. Images generated by stats from monitored devices rotate in cubes. This example showing 26 devices at once</description>
+ <year> 2008 </year><month> 4 </month><!-- creation date -->
+
+ <!-- Optional -->
+ <email>hamish@travellingkiwi.com</email>
+
+</gallery>
diff --git a/website/gallery/docsis_upstream_utilization.png b/website/gallery/docsis_upstream_utilization.png
new file mode 100644 (file)
index 0000000..bc3b7f3
Binary files /dev/null and b/website/gallery/docsis_upstream_utilization.png differ
index 0000000..bc3b7f3
Binary files /dev/null and b/website/gallery/docsis_upstream_utilization.png differ
diff --git a/website/gallery/docsis_upstream_utilization.xml b/website/gallery/docsis_upstream_utilization.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="docsis_upstream_utilization.png" >
+<!-- no wider than 600 pixle -->
+
+ <title> DOCSIS UPSTREAM UTILIZATION </title>
+ <author> Diego Santos Soares </author>
+<description> This graph show de upstream utilization
+of DOCSIS CMTS in the cable modem broadband operator.
+</description>
+ <year> 2006 </year><month> 10 </month> <!--
+creation date -->
+
+ <!-- Optional -->
+
+ <email> diegosoares@yahoo.com.br </email>
+
+</gallery>
diff --git a/website/gallery/energy_graph.png b/website/gallery/energy_graph.png
new file mode 100644 (file)
index 0000000..16204f7
Binary files /dev/null and b/website/gallery/energy_graph.png differ
index 0000000..16204f7
Binary files /dev/null and b/website/gallery/energy_graph.png differ
diff --git a/website/gallery/energy_graph.xml b/website/gallery/energy_graph.xml
--- /dev/null
@@ -0,0 +1,15 @@
+<gallery image="energy_graph.png" > <!-- no wider than 600 pixle -->
+
+ <title> Energy Mix </title>
+ <author> Lutz Schulze </author>
+<description> This graph shows indoor and outdoor temperature, heating temperatures,
+brightness, natural gas and electric power consumption. Values come from MessPC
+system and is created with sensorserver project </description>
+ <year> 2008 </year><month> 3 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://www.messpc.de/sensorserver.php </livesite>
+ <email> lschulze@messpc.de </email>
+
+</gallery>
diff --git a/website/gallery/entry.txt b/website/gallery/entry.txt
--- /dev/null
@@ -0,0 +1,13 @@
+<gallery image="graph.png" > <!-- no wider than 600 pixle -->
+
+ <title> A Title for the Graph </title>
+ <author> Who created it ? </author>
+<description> max 300 characters of background information. </description>
+ <year> 2005 </year><month> 4 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://somesite.blabla.plac </livesite>
+ <email> max@example.com </email>
+
+</gallery>
diff --git a/website/gallery/filegroei.png b/website/gallery/filegroei.png
new file mode 100644 (file)
index 0000000..6829081
Binary files /dev/null and b/website/gallery/filegroei.png differ
index 0000000..6829081
Binary files /dev/null and b/website/gallery/filegroei.png differ
diff --git a/website/gallery/filegroei.xml b/website/gallery/filegroei.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<gallery image="filegroei.png" > <!-- no wider than 600 pixle -->\r
+\r
+ <title> Traffic jam statistics Netherlands </title>\r
+ <author> Jeroen Wunnink </author> \r
+<description>RRD with number of dutch traffic jams, length, weather, prediction and 24h ago</description>\r
+ <year> 2008 </year><month> 5 </month> <!-- creation date -->\r
+ \r
+ <!-- Optional --> \r
+\r
+ <livesite> http://www.filegroei.nl </livesite> \r
+ <email> info@filegroei.nl </email>\r
+\r
+</gallery>
\ No newline at end of file
diff --git a/website/gallery/flux.png b/website/gallery/flux.png
new file mode 100644 (file)
index 0000000..cfaa44d
Binary files /dev/null and b/website/gallery/flux.png differ
index 0000000..cfaa44d
Binary files /dev/null and b/website/gallery/flux.png differ
diff --git a/website/gallery/flux.xml b/website/gallery/flux.xml
--- /dev/null
+++ b/website/gallery/flux.xml
@@ -0,0 +1,20 @@
+<gallery image="flux.png" >
+
+ <title> Fluxoscope Graph </title>
+ <author> Simon Leinen </author>
+<description> Fluxoscope is a system used by SWITCH for measurements of
+ our external network traffic. One of its products are graphs which
+ represent, for each external connection, the protocol distribution
+ of traffic over time. The example graph shows the traffic
+ distribution on one of our "upstream" or transit ISPs over a
+ period of a few hours. The "positive" part of the graph shows
+ incoming traffic (what we receive from the ISP), the "negative"
+ part corresponds to outgoing traffic (what we send them). </description>
+
+ <year> 2005 </year><month> 5 </month>
+
+ <!-- Optional -->
+
+ <email> simon@switch.ch </email>
+
+</gallery>
diff --git a/website/gallery/fsu_predict.png b/website/gallery/fsu_predict.png
new file mode 100644 (file)
index 0000000..0b27481
Binary files /dev/null and b/website/gallery/fsu_predict.png differ
index 0000000..0b27481
Binary files /dev/null and b/website/gallery/fsu_predict.png differ
diff --git a/website/gallery/fsu_predict.xml b/website/gallery/fsu_predict.xml
--- /dev/null
@@ -0,0 +1,8 @@
+<gallery image="fsu_predict.png">
+ <title>Filesystem Utilization and Predicted Trends</title>
+ <author>Damien S. Stuart</author>
+ <description>Shows filesystem utilization with projected trend lines based on various starting points in the dataset. Trends are computed using the rrdtool Least Squares Line functions. If a trend is predicted to cross 100% utiliztion within the graph window, the date of the crossing is displayed.</description>
+ <year>2007</year><month>6</month>
+ <email>dstuart@dstuart.org</email>
+</gallery>
+
diff --git a/website/gallery/gate.spamd.day.600.png b/website/gallery/gate.spamd.day.600.png
new file mode 100644 (file)
index 0000000..397dda8
Binary files /dev/null and b/website/gallery/gate.spamd.day.600.png differ
index 0000000..397dda8
Binary files /dev/null and b/website/gallery/gate.spamd.day.600.png differ
diff --git a/website/gallery/gate.spamd.week.600.png b/website/gallery/gate.spamd.week.600.png
new file mode 100644 (file)
index 0000000..cc1f5cb
Binary files /dev/null and b/website/gallery/gate.spamd.week.600.png differ
index 0000000..cc1f5cb
Binary files /dev/null and b/website/gallery/gate.spamd.week.600.png differ
diff --git a/website/gallery/index.en.html b/website/gallery/index.en.html
--- /dev/null
@@ -0,0 +1,615 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
+<link rel="icon" href="../inc/favicon.ico" type="image/ico" />
+<title>RRDtool - RRDtool Gallery
+</title>
+
+<!--[if lt IE 7]><script src="../inc/IE7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+
+<style type="text/css">
+<!--/* <![CDATA[ */
+/* ie5 for mac thinks this comment does not end here because of the backslash \*/
+@import url('../inc/design.css');
+/* ]]> */-->
+</style>
+</head>
+<body>
+<table id="frame" summary="">
+<tr>
+<td valign="top" id="menucell">
+<!-- ############################# -->
+<!-- # MENU -->
+<!-- ############################# -->
+<div id="menu">
+<h2 class="legacy">Menu</h2>
+<ul>
+<li><div><a href="../index.en.html">Welcome </a></div></li>
+<li><div><a href="../download.en.html">Download </a></div></li>
+<li><div><a href="../doc/index.en.html">Documentation </a></div></li>
+<li><div><a href="../tut/index.en.html">Tutorials </a></div></li>
+<li><div><a href="../prog/index.en.html">Programming </a></div></li>
+<li><div><a href="http://oss.oetiker.ch/rrdtool-trac/">Bugs, Wiki</a></div></li>
+<li><div><a href="../support.en.html">Support </a></div></li>
+<li><div class="selected">Gallery </div></li>
+<li><div><a href="../rrdworld/index.en.html">Projects using RRDtool </a></div></li>
+<li><div><a href="../sponsor.en.html">Sponsoring RRDtool </a></div></li>
+<li><div><a href="../license.en.html">License </a></div></li>
+<li><div><a href="../cast.en.html">Cast </a></div></li>
+</ul>
+<br />
+<!-- SiteSearch Google -->
+<form method="get" action="http://oss.oetiker.ch/rrdtool/search.en.html" target="_top">
+<table border="0" summary="">
+<tr><td nowrap="nowrap" valign="top" align="left" height="32">
+<input type="hidden" name="domains" value="oss.oetiker.ch"></input>
+<label for="sbi" style="display: none">Enter your search terms</label>
+<input type="text" name="q" style="width: 180px" maxlength="255" value="" id="sbi"></input>
+</td></tr>
+<tr>
+<td nowrap="nowrap" valign="top">
+<table summary="">
+<tr>
+<td>
+<input type="radio" name="sitesearch" value="" id="ss0"></input>
+<label for="ss0" title="Search the Web"><font size="-1" color="#000000">Web</font></label></td>
+<td>
+<input type="radio" name="sitesearch" value="oss.oetiker.ch" checked="checked" id="ss1"></input>
+<label for="ss1" title="Search oss.oetiker.ch"><font size="-1" color="#000000">oss.oetiker.ch</font></label></td>
+</tr>
+</table>
+<label for="sbb" style="display: none">Submit search form</label>
+<input type="submit" name="sa" value="Google Search" id="sbb"></input>
+<input type="hidden" name="client" value="pub-8135238818549668"></input>
+<input type="hidden" name="forid" value="1"></input>
+<input type="hidden" name="channel" value="6449489261"></input>
+<input type="hidden" name="ie" value="ISO-8859-1"></input>
+<input type="hidden" name="oe" value="ISO-8859-1"></input>
+<input type="hidden" name="safe" value="active"></input>
+<input type="hidden" name="cof" value="GALT:#0066CC;GL:1;DIV:#999999;VLC:336633;AH:center;BGC:FFFFFF;LBGC:FF9900;ALC:0066CC;LC:0066CC;T:000000;GFNT:666666;GIMP:666666;FORID:11"></input>
+<input type="hidden" name="hl" value="en"></input>
+</td></tr></table>
+</form>
+<!-- SiteSearch Google -->
+<br />
+<br />
+<p><b>Gold Sponsors</b></p>
+<p><a href="http://www.loopfuse.net/webrecorder/kredirect?kid=3&cid=LF_00c56f70"><img title="GroundWork Open Source" border="0" alt="GroundWork Open Source Logo" src="../logos/gw200x100.gif" width="200" height="100" /></a></p>
+<p><a href="http://www.zenoss.com/rrdtool?utm_source=rrdtool&utm_medium=logolink&utm_campaign=inbound"><img border="0" title="Zenoss Open Source IT Monitoring" alt="Zenoss Open Source IT Monitoring" src="../logos/zenoss.png" width="200" height="100" /></a></p>
+<p><a href="../sponsor.en.html">Silver Sponsors ...</a></p>
+<br />
+<br />
+<div>
+<a href="http://tobi.oetiker.ch/wish/"><img border="0" alt="Make Tobi Happy" src="../inc/happy-tobi.png" width="119" height="72" /></a>
+</div>
+<br />
+<br />
+<div>
+<iframe width="120" height="50" name="bandwidth" frameborder="0" src="../hoster.html"></iframe>
+</div>
+<br />
+<br />
+</div>
+</td>
+<!-- ############################# -->
+<!-- # Logo and Body -->
+<!-- ############################# -->
+<td id="bodycell" valign="top">
+<div id="mirrors">
+<a href="http://oss.oetiker.ch/rrdtool/gallery/index.en.html">Swiss Original</a>. Mirrors:
+<a href="http://rrdtool.mirror.graemef.net/gallery/index.en.html">UK</a><!--Graeme Fowler <graeme@graemef.net>-->
+<a href="http://rrdtool.cs.pu.edu.tw/gallery/index.en.html">TW</a><!--Hsun-Chang Chang <hsunchang@gmail.com>-->
+<a href="http://rrdtool.codemonkey.se/gallery/index.en.html">SE</a><!--Hans Engren <hans@cyclone.se>-->
+<a href="http://rrdtool.basemirror.de/gallery/index.en.html">DE</a><!--Baseportal Mirrors <mirrors@baseportal.de>-->
+<a href="http://rrdtool.mirroraty.org/gallery/index.en.html">US</a><!--Hossam Hossny <hossam@trexle.com>-->
+</div>
+<div id="logo">
+<div class="legacy">
+RRDtool
+<hr />
+</div>
+</div>
+<!-- ############################# -->
+<!-- # BODY -->
+<!-- ############################# -->
+<div id="body">
+<!-- google_ad_section_start -->
+<h1>RRDtool Gallery</h1>
+<div id="googlead_right">
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+/* rrdtool top right */
+google_ad_slot = "4985488960";
+google_ad_width = 300;
+google_ad_height = 250;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> MMS Inbound </h2>
+<div class="image"><img src="mmh11_pi.png" alt="" width="267" height="321" /></div>
+<div class="caption"> Simply parse of SNMPget from Vendor OID. The graph display the
+actual volume of transactions for MMS submitions, from 3 differents devices,
+such
+as, Phone, VAS and MM4 (others operator). -- Alex Rivoltella <alessio.r-delme-@<span class="legacy">XYZ-</span>tiscalinet.it>, 2006/3 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> MMS Retrieve</h2>
+<div class="image"><img src="mmh11_po.png" alt="" width="267" height="321" /></div>
+<div class="caption"> Simply parse of SNMPget from Vendor OID. The graph display the
+actual volume of transactions for MMS retrieve for mobile phone and sent to
+other Operators (OLO). -- Alex Rivoltella <alessio.r-delme-@<span class="legacy">XYZ-</span>tiscalinet.it>, 2006/3 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> MMS Errors</h2>
+<div class="image"><img src="mmh11_er.png" alt="" width="267" height="321" /></div>
+<div class="caption"> Simply parse of SNMPget from Vendor OID. The graph display the
+actual send a PAP push to the mobile, possibile errors due to get to HLR and
+retrieve for mobile. -- Alex Rivoltella <alessio.r-delme-@<span class="legacy">XYZ-</span>tiscalinet.it>, 2006/3 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Transaction monitoring on property market </h2>
+<div class="image"><img src="miszek.png" alt="" width="377" height="233" /></div>
+<div class="caption"> Graph presents number of transactions on Real Estate market in Wroclaw. Chart is made based on week updates. Similar
+graphs present average property prices. Image is not unique but object of monitoring is quite original :) -- M.Cegielski <info@<span class="legacy">XYZ-</span>wycena.net.pl>, 2008/11 <a href="http://wycena.net.pl/ceny-mieszkania-wroclaw.htm">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> HTTP Cache Traffic </h2>
+<div class="image"><img src="charles.png" alt="" width="597" height="213" /></div>
+<div class="caption"> HTTP cache traffic from servers and to clients -- Charles Glass <charlesequal@<span class="legacy">XYZ-</span>gmail.com>, 2008/10 </div>
+</div>
+ <!-- no wider than 600 pixle
+-->
+ <!-- creation date -->
+<div class="gallery">
+<p>
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 300;
+google_ad_height = 250;
+google_ad_format = "300x250_as";
+google_ad_type = "text_image";
+google_ad_channel ="9159032853";
+google_color_border = "ffffff";
+google_color_bg = "f0f8FF";
+google_color_link = "191919";
+google_color_url = "0066CC";
+google_color_text = "000000";
+//--></script>
+<script type="text/javascript"
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</p>
+<h2> Peering/Upstream Ratio </h2>
+<div class="image"><img src="upstream-traffic-day.png" alt="" width="500" height="682" /></div>
+<div class="caption"> This graph shows Peering- and Upstream-Traffic and
+summarizes total amount of traffic from our Autonoumous System to the
+World Wide Web. Several RRD-DBs are used to create the graph. MRTG is used
+for collecting values from Cisco and Juniper routers. -- Alex Detzen , 2009/9 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> RTT of MPLS VPN endpoints </h2>
+<div class="image"><img src="pings.png" alt="" width="583" height="413" /></div>
+<div class="caption">Although MPLS VPN endpoints seem just one hop away from
+the IP point of view, there is always a more complex underlying
+infrastructure.
+Collecting endpoint RTTs (pings) and plotting them reveals the hidden
+infrastructure. This image shows that there are 6 groups of endpoints
+that have consistent
+minimum RTTs. This is most likely due to the number of real hops in
+the underlying infrastructure and can also be influenced by the last
+mile technology. It's also easy to spot temporary re-routing: in this
+example the light green endpoint plots temporarily out of his
+"league". -- Bruno Ciscato , 2008/9 </div>
+</div>
+<div class="gallery">
+<h2> System Information (retro look) </h2>
+<div class="image"><img src="systembelastung.png" alt="" width="600" height="264" /></div>
+<div class="caption"> These 2 graphs are displayed on a status page of my
+small server at home. The colour green on black is used because I like these colours in combination with computers referring to the opinion of
+windows user about linux console freaks that are all supposed to have these colours in their console command line interfaces and because it looks
+somehow old school.
+ -- kmindi , 2008/08 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Traffic jam statistics Netherlands </h2>
+<div class="image"><img src="filegroei.png" alt="" width="581" height="311" /></div>
+<div class="caption">RRD with number of dutch traffic jams, length, weather, prediction and 24h ago -- Jeroen Wunnink <info@<span class="legacy">XYZ-</span>filegroei.nl>, 2008/5 <a href="http://www.filegroei.nl">[demo]</a></div>
+</div>
+<div class="gallery">
+<h2>SIP Messages Last Week</h2>
+<div class="image"><img src="sip_messages_week.png" alt="" width="697" height="503" /></div>
+<div class="caption">Inbound and outbound SIP messages on a VoIP trunk group over the last week. -- Chris Aloi and Matthew M. Boedicker , 2008/5 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2>Cubemon</h2>
+<div class="image"><img src="cubemon.png" alt="" width="594" height="410" /></div>
+<div class="caption">Cubemon - Real-Time openGL rotating .png images from RRDTool. Images generated by stats from monitored devices rotate in cubes. This example showing 26 devices at once -- Hamish Marson <hamish@<span class="legacy">XYZ-</span>travellingkiwi.com>, 2008/4 </div>
+</div>
+ <!-- no wider than 600
+pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Sinus-Regression of Server-Traffic </h2>
+<div class="image"><img src="sintraf.png" alt="" width="597" height="227" /></div>
+<div class="caption"> This graph shows the traffic of a
+networkinterface(dark-green). In red is displayed the optimal
+sinus-curve thru the points of one week. Light-green is the
+"can-be-range" of the traffic that was not alarmed. Yellow is the
+"warning-range" of the curve and every other points cause an
+CRITICAL-Warning in our minitoring. So we bring the
+statistics-calculations into the monitoring. That will show us abnormaly
+using of different curves and alarm it. -- Holger Kohn <holger@<span class="legacy">XYZ-</span>kohn-nf.de>, 2008/1 <a href="http://www.kohn-nf.de">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Energy Mix </h2>
+<div class="image"><img src="energy_graph.png" alt="" width="581" height="303" /></div>
+<div class="caption"> This graph shows indoor and outdoor temperature, heating temperatures,
+brightness, natural gas and electric power consumption. Values come from MessPC
+system and is created with sensorserver project -- Lutz Schulze <lschulze@<span class="legacy">XYZ-</span>messpc.de>, 2008/3 <a href="http://www.messpc.de/sensorserver.php">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Network Appliance IOPs by protocol </h2>
+<div class="image"><img src="netapp-iops.png" alt="" width="600" height="321" /></div>
+<div class="caption"> We use a combination of RRDtool, SNMP and Python to gather metrics and generate graphs for several of our critical systems. This graph shows a three hour window of the disk IO activity on one of our NetApp filers broken down by protocol (CIFS, NFS, FCP and iSCSI). -- Robert McDermott <rmcdermo@<span class="legacy">XYZ-</span>gmail.com>, 2007/12 </div>
+</div>
+<div class="gallery">
+<h2>PC temperatures and fan speeds</h2>
+<div class="image"><img src="temp6.png" alt="" width="647" height="417" /></div>
+<div class="caption">An aggregate of all the temperatures and fans in my
+personal desktop computer. The spike is me watching a HD movie trailer.
+The grey area is a reboot. -- Ciprian Popovici , 2007/10 </div>
+</div>
+<div class="gallery">
+<h2>Filesystem Utilization and Predicted Trends</h2>
+<div class="image"><img src="fsu_predict.png" alt="" width="597" height="350" /></div>
+<div class="caption">Shows filesystem utilization with projected trend lines based on various starting points in the dataset. Trends are computed using the rrdtool Least Squares Line functions. If a trend is predicted to cross 100% utiliztion within the graph window, the date of the crossing is displayed. -- Damien S. Stuart <dstuart@<span class="legacy">XYZ-</span>dstuart.org>, 2007/6 </div>
+</div>
+<div class="gallery">
+<h2> Streaming Auditor mesure </h2>
+<div class="image"><img src="stream-pop.png" alt="" width="597" height="193" /></div>
+<div class="caption"> This graph waas made in order to have an idea of how many listerners are on the webradio every 5 minutes (in order to have a look on privileged listeing hours). It's an example of a "Blue Flaming". Thanks to ED and dedibox-news great helper team. If you want more explainations send me a mail. -- Black Dragon ? <black@<span class="legacy">XYZ-</span>ozone-server.com>, 2007/5 <a href="http://www.fantasticworlds.eu">[demo]</a></div>
+</div>
+<div class="gallery">
+<h2> Thermostat with Indoor / Outdoor Temperature </h2>
+<div class="image"><img src="n20e-daily.png" alt="" width="597" height="279" /></div>
+<div class="caption"> A graph of the internal (green) and external (grey) temperature from an IP enabled thermostat. Red areas denote times when the heat
+was on while blue denotes times when the air-conditioning was on. This graph also simulates translucent intersecting areas where the internal and
+external temperatures can swap places without becoming unreadable. -- Anders Brownworth , 2007/5 <a href="http://www.anders.com/projects/thermostat-graph/">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2>Voltage control on APC Smart-UPS 2200 (Last Month)</h2>
+<div class="image"><img src="ups_voltage_mounth.png" alt="" /></div>
+<div class="caption">This graph shows the operating voltage of the electrical outlets in the last month. -- SnikS <admin@<span class="legacy">XYZ-</span>vitmn.ru>, 2007/4 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Temperature </h2>
+<div class="image"><img src="temp-poprs..png" alt="" /></div>
+<div class="caption"> This graph shows the temperature of a computer room (indoor) and make a parallel with external
+temperature (in Porto Alegre city). -- João Marcelo Ceron <>, 2007/6 <a href="http://www.pop-rs.rnp.br/temperatura">[demo]</a></div>
+</div>
+<!-- no wider than 600 pixle -->
+ <!--
+creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> DOCSIS UPSTREAM UTILIZATION </h2>
+<div class="image"><img src="docsis_upstream_utilization.png" alt="" width="601" height="233" /></div>
+<div class="caption"> This graph show de upstream utilization
+of DOCSIS CMTS in the cable modem broadband operator.
+ -- Diego Santos Soares <diegosoares@<span class="legacy">XYZ-</span>yahoo.com.br>, 2006/10 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Statistic for network interfaces </h2>
+<div class="image"><img src="andrey.png" alt="" width="597" height="311" /></div>
+<div class="caption">
+ This a real (not artificial) data from a production machine.
+ Isn't it amazing? Probably not the ideal sampling interval.
+ -- Andrey Afanasiev <afanasiev-av@<span class="legacy">XYZ-</span>mcc.elektra.ru>, 2006/11 <a href="none">[demo]</a></div>
+</div>
+ <!-- Optional -->
+<div class="gallery">
+<h2> Merry Christmas</h2>
+<div class="image"><img src="rrdtool-xmas.png" alt="" width="600" height="254" /></div>
+<div class="caption"> Over a year ago I discoverd RRDtool. I had lots of fun
+creating all sorts of new graphs since then. So why not use RRDtool for
+my christmas cards too. A formula for the trees was simple. Father Christmas
+was more of a challenge though. -- Peter J. Linden <linden@<span class="legacy">XYZ-</span>linden-itc.de>, 2005/12 </div>
+</div>
+<div class="gallery">
+<h2> Server room temperature monitoring </h2>
+<div class="image"><img src="termonit.png" alt="" width="600" height="326" /></div>
+<div class="caption"> There are 8 thermal sensors across my server room. This graph shows thermal condition of various parts of the server room. -- Evgueni V. Gavrilov <aquatique@<span class="legacy">XYZ-</span>rusunix.org>, 2006/10 </div>
+</div>
+<div class="gallery">
+<h2>Temperature, humidity and pressure plots</h2>
+<div class="image"><img src="meteo-igf.png" alt="" width="597" height="243" /></div>
+<div class="caption">
+ We use rrdtool to plot some basic meteorological
+ parameters. Data is coming from our institute's
+ (http://www.igf.fuw.edu.pl/zfa/en/) meteo-station
+ which was build from scratch by students. Rrdtool
+ fetch command is also used for creation of datafiles
+ available on the website.
+ -- Sylwester Arabas <slayoo@<span class="legacy">XYZ-</span>igf.fuw.edu.pl>, 2005/12 <a href="http://skng.igf.fuw.edu.pl/pl/stacja/">[demo]</a></div>
+</div>
+<div class="gallery">
+<h2>Load and CPU usage</h2>
+<div class="image"><img src="load.png" alt="" width="571" height="421" /></div>
+<div class="caption">Graphs the load averages on the system and the fractions of CPU
+ states under the curve. -- Lars Kotthoff <metalhead@<span class="legacy">XYZ-</span>metalhead.ws>, 2006/10 <a href="http://www.metalhead.ws/rrdtool">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2>Interconnect Utilization in Erlangs (Minutes per Minute)</h2>
+<div class="image"><img src="btdmd8.png" alt="" width="697" height="427" /></div>
+<div class="caption">Graph shows inbound and outbound call traffic going in and out
+of the switch via the 6 trunks connected to the Diamond exchange. Inbound
+traffic shown as positive and uses a lowest-free fill method. Outbound
+traffic shown as negative uses a distributed fill method. <a
+href="/rrdtool-trac/wiki/OutlinedAreaGraph">Tech
+details on RRDtrac</a>. -- Ben Golden <bengolden@<span class="legacy">XYZ-</span>.removethis.blueyonder.co.uk>, 2006/3 </div>
+</div>
+<div class="gallery">
+<h2> The Matrix </h2>
+<div class="image"><img src="576_nodes.png" alt="" width="600" height="440" /></div>
+<div class="caption"> This is a part of our cluster of about 2000 CPUs.
+ All nodes are being monitored in real-time for major system
+ information every 15 seconds. Data collection and consolidation
+ is done on one central server.
+ -- Fabien Wernli , 2006/1 </div>
+</div>
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Windvaan de drie delfzijlen </h2>
+<div class="image"><img src="windvaan.png" alt="" width="541" height="324" /></div>
+<div class="caption"> A graph showing wind speed & direction. -- H.R. ter Veer <h.r.terveer@<span class="legacy">XYZ-</span>noorderzijlvest.nl>, 2006/1 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2>RRDstats QOS classes usage</h2>
+<div class="image"><img src="rrdstats.png" alt="" width="595" height="370" /></div>
+<div class="caption">RRDStats is Coyote Linux & BrazilFW floppy router package.
+Graphical statistics for bandwidth usage, link quality and defined QOS
+classes. -- Dolly <dolly@<span class="legacy">XYZ-</span>czi.cz>, 2005/11 <a href="http://dolly.czi.cz/coyote/statssample/">[demo]</a></div>
+</div>
+ <!-- creation date -->
+<div class="gallery">
+<h2> Gamer count on 1stgame.nl </h2>
+<div class="image"><img src="all_gamers_36h.png" alt="" width="593" height="385" /></div>
+<div class="caption"> Stacked graph of gameserver player counts -- Tom Mulder <tom@<span class="legacy">XYZ-</span>removethis.1stgame.nl>, 2005/11 <a href="http://stats.1stgame.nl/">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> SMPP Router Statistics </h2>
+<div class="image"><img src="smpp.png" alt="" width="664" height="169" /></div>
+<div class="caption"> SMSs per second statistics graph -- Osinet <info@<span class="legacy">XYZ-</span>osinet.com.ar>, 2005/11 <a href="http://www.osinet.com.ar">[demo]</a></div>
+</div>
+<div class="gallery">
+<h2>Traffic in Kibibytes - cable modem.</h2>
+<div class="image"><img src="ryan.png" alt="" width="697" height="229" /></div>
+<div class="caption">Just an example of different colors and transparency more or less using the rrdtool's site colors. Has a one minute --step. -- Ryan Jordan <ryanstuartjordan@<span class="legacy">XYZ-</span>gmail.com>, 2005/11 <a href="http://carmex.ath.cx/graphs/">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Weather monitoring </h2>
+<div class="image"><img src="zug.png" alt="" width="447" height="229" /></div>
+<div class="caption"> This graph shows the atmospheric pressure measured at our
+school's weather station. We use this data and graphs to
+demonstrate weather behavior with real life data. -- Kantonsschule Zug <info@<span class="legacy">XYZ-</span>kanti-zug.ch>, 2005/11 <a href="http://weather.kanti-zug.ch">[demo]</a></div>
+</div>
+ <!-- creation date -->
+ <!-- Optional -->
+<!-- mpot@martybugs.net -->
+<div class="gallery">
+<h2>WAN Link Monitoring</h2>
+<div class="image"><img src="pmacct-3hour.png" alt="" width="600" height="606" /></div>
+<div class="caption">These graphs show network traffic inbound and outbound on the WAN link from our office into our corporate network, and allow us to monitor the network usage of each department in the office.
+<a href="http://www.ba.cnr.it/~paolo/pmacct/">pmacct</a> is used to monitor all traffic on a mirrored switch port, with some perl scripts to parse the pmacct data, store it into rrd files and generate the graphs.
+Get in <a href="http://martybugs.net/contact.cgi">touch</a> with me if you have any questions.
+ -- Martin Pot , 2004/1 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Solar System's Data </h2>
+<div class="image"><img src="solar.png" alt="" width="472" height="243" /></div>
+<div class="caption"> Shows the daily information about our solar system's data and state -- Christian Kaiser <chk@<span class="legacy">XYZ-</span>online.de>, 2005/8 <a href="http://www.invest-tools.com/pub/solar/today.png">[demo]</a></div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2> Statistic for antispam server </h2>
+<div class="image"><img src="mailstat-daily.png" alt="" width="597" height="499" /></div>
+<div class="caption"> Unlike most other report, data in this report are
+collected every hour (3600 sec). This graph shows how the effectiveness of
+using <a href="http://www.postfix.org/uce.html">postfix UCE control</a>,
+ <a href="http://sqlgrey.sourceforge.net">greylisting</a> and
+ <a href="http://spamassassin.apache.org">spamassassin</a> to reduce spam.
+ -- Bambang Budiharto <budhi@<span class="legacy">XYZ-</span>i6x.org>, 2005/6 </div>
+</div>
+<div class="gallery">
+<h2> ACAD Network - kuzniki.net - traffic graphing </h2>
+<div class="image"><img src="panel_user.png" alt="" width="617" height="335" /></div>
+<div class="caption"> This graph shows amount of total and peer2peer traffic generated by user.
+ Online, offline decision is based on information if the computer was sending any data.
+(Legend translation: 'bajtow na sek DO' - eng. incoming Bps, 'bajtow na sek Z' - eng. outgoing Bps, 'razem' - eng. total,
+ 'wylaczony' - eng. offline, 'wlaczony' - eng. online) -- Gabriel Borkowski , 2005/6 </div>
+</div>
+ <!-- Optional -->
+<div class="gallery">
+<h2> Mailgraph and Greylisting </h2>
+<div class="image"><img src="mailgraph_gallery.png" alt="" width="623" height="387" /></div>
+<div class="caption">This graphs show the effect that the <a
+href="http://isg.ee.ethz.ch/tools/postgrey">greylisting</a> technique
+had on our mail traffic. Notice the drop of spam and viruses in the
+middle of the graph (June 2004) and the corresponding increase in the
+rejected mails.
+ -- David Schweikert <dws@<span class="legacy">XYZ-</span>ee.ethz.ch>, 2005/6 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+ <!-- Optional -->
+<div class="gallery">
+<h2>Ram Usage on Linux Machine</h2>
+<div class="image"><img src="ramUsage.png" alt="" width="600" height="398" /></div>
+<div class="caption">Created for use with Torrus (unsubmitted) to show the usage of all available RAM, stacked by type of usage. -- Michiel Brandenburg <apex@<span class="legacy">XYZ-</span>xepa.nl>, 2005/5 </div>
+</div>
+ <!-- no wider than 600 pixle -->
+ <!-- creation date -->
+<div class="gallery">
+<h2> CPU Load drawed with drraw.cgi </h2>
+<div class="image"><img src="CPU__Trend.png" alt="" width="681" height="333" /></div>
+<div class="caption">
+Created with drraw from Christophe Kalt (See RRDtool Companions)
+Changing Colors and using the new Trend Funkion.
+ -- Christoph Baumann <christoph.baumann@<span class="legacy">XYZ-</span>coop.ch>, 2005/5 </div>
+</div>
+ <!-- Optional -->
+<div class="gallery">
+<h2> Fluxoscope Graph </h2>
+<div class="image"><img src="flux.png" alt="" width="585" height="366" /></div>
+<div class="caption"> Fluxoscope is a system used by SWITCH for measurements of
+ our external network traffic. One of its products are graphs which
+ represent, for each external connection, the protocol distribution
+ of traffic over time. The example graph shows the traffic
+ distribution on one of our "upstream" or transit ISPs over a
+ period of a few hours. The "positive" part of the graph shows
+ incoming traffic (what we receive from the ISP), the "negative"
+ part corresponds to outgoing traffic (what we send them). -- Simon Leinen <simon@<span class="legacy">XYZ-</span>switch.ch>, 2005/5 </div>
+</div>
+<div class="gallery">
+<h2> spamd connections </h2>
+<div class="image"><img src="gate.spamd.week.600.png" alt="" width="462" height="293" /></div>
+<div class="caption">
+<a href='http://www.openbsd.org/cgi-bin/man.cgi?query=spamd'>OpenBSD's
+spam deferral daemon</a> connection graph shows simultaneous connections in green, and connection times in blue. The dark blue line shows the average connection time, with lighter blue used to show the range from minimum to maximum as a blurring effect. The data is taken from a spamd logfile every time a line is added, or at 10 second intervals if no new data arrives in which case the most recent values are duplicated. The RRD is created with a 30 second heartbeat - so some fractional number of connections is possible. For those unfamiliar with spamd, it is an SMTP tarpit for blacklisted senders. The logfile includes the number of concurrent connections each time a new host connects, and the time a connection has lasted when a host disconnects. The number of connections should be fairly accurate in the graphs, while the connection times are not so in the short-term, depending more on the timing of the disconnects. Connections and times are tracked separately in perl, except that disconnects cause a decrement in the connection count as well.
+ -- Christopher Kruslicky <chris-rrdgallery@<span class="legacy">XYZ-</span>kruslicky.net>, 2005/4 </div>
+</div>
+<div class="gallery">
+<h2> UW-HEP Grid Computing Resources Graph </h2>
+<div class="image"><img src="uw-condor.png" alt="" width="607" height="327" /></div>
+<div class="caption">
+This graph shows that the Linux Intel computing resources available
+for particle physics research at the University of Wisconsin
+provides 4.7 CPU <b>years</b> of computing power every day. It's a
+combination of Condor pools managed by High Energy Physics, the
+Computer Science Department and the Grid Laboratory of Wisconsin.
+ -- Steve Rader <rader@<span class="legacy">XYZ-</span>hep.wisc.edu>, 2005/5 <a href="http://nrg.hep.wisc.edu">[demo]</a></div>
+</div>
+<div class="gallery">
+<h2> UW-HEP Grid CPU Utilization Graph </h2>
+<div class="image"><img src="uw-condor-use.png" alt="" width="607" height="327" /></div>
+<div class="caption">
+This graph shows the utilization of Linux Intel CPUs by particle
+physics researchers and other members of the Grid Laboratory of
+Wisconsin.
+ -- Steve Rader <rader@<span class="legacy">XYZ-</span>hep.wisc.edu>, 2005/5 <a href="http://nrg.hep.wisc.edu">[demo]</a></div>
+</div>
+<h2>Add your own graphs to this list</h2>
+<p>If you have created a graph you like, and you think I would like it too,
+please send me the image plus an xml file like the example below to be
+considered for addition to this page. Note that your graph must not be wider
+than 600 pixels.</p>
+<pre>
+<gallery image="graph.png" > <!-- no wider than 600 pixle -->
+
+ <title> A Title for the Graph </title>
+ <author> Who created it ? </author>
+<description> max 300 characters of background information. </description>
+ <year> 2005 </year><month> 4 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://somesite.blabla.plac </livesite>
+ <email> max@example.com </email>
+
+</gallery></pre>
+<!-- google_ad_section_end -->
+</div>
+</td>
+</tr>
+<tr>
+<td id="leftcornercell"></td>
+<td id="footcell">
+<!-- ############################# -->
+<!-- # FOOTER -->
+<!-- ############################# -->
+<div id="address">
+<small>
+10/28/09 | <a href="mailto:tobi@..delete..this..removethis.oetiker.ch">Tobias Oetiker</a> | <a href="http://it.oetiker.ch/monitoring/">OETIKER+PARTNER AG</a>
+</small>
+</div>
+</td></tr>
+</table>
+<hr class="legacy" />
+<p class="legacy" style="border-width: 1px; border-color: red; padding: 5px;">
+<b>NOTE:</b> The content of this website is accessible with any browser. The graphical
+design though relies completely on CSS2 styles. If you see this text, this means
+that your browser does not support CSS2. Consider upgrading to a standard conformant
+browser like Mozilla <a href="http://www.getfirefox.com">Firefox</a> or
+<a href="http://www.opera.com">Opera</a> but also Apple's <a href="http://www.apple.com/safari/">Safari</a>
+or KDE's <a href="http://www.konqueror.org">Konqueror</a> for example.
+It may also be that you are looking at a mirror page which did not copy <a href="../inc/design.css">the CSS</a> for this page. Or if some pictu
+res are missing, then the mirror may not have picked up the contents of the <a href="../inc/">inc</a> directory.
+</p>
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("UA-374525-1");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
+</body>
+</html>
diff --git a/website/gallery/index.var b/website/gallery/index.var
--- /dev/null
@@ -0,0 +1,9 @@
+
+URI: index
+
+URI: index.en.html
+Content-type: text/html
+Content-language: en
+
+URI: index.en.html
+Content-type: text/html
diff --git a/website/gallery/index.wml b/website/gallery/index.wml
--- /dev/null
@@ -0,0 +1,59 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "gallery">
+
+
+<H1>RRDtool Gallery</H1>
+
+#include "mmh11.xml"
+#include "miszek.xml"
+#include "charles.xml"
+#include "upstream-traffic-day.xml"
+#include "pings.xml"
+#include "systembelastung.xml"
+#include "filegroei.xml"
+#include "sip_messages_week.xml"
+#include "cubemon.xml"
+#include "sintraf.xml"
+#include "energy_graph.xml"
+#include "netapp-iops.xml"
+#include "temp6.xml"
+#include "fsu_predict.xml"
+#include "stream-pop.xml"
+#include "n20e-daily.xml"
+#include "ups_voltage_month.xml"
+#include "temp-poprs.xml"
+#include "docsis_upstream_utilization.xml"
+#include "andrey.xml"
+#include "rrdtool-xmas.xml"
+#include "termonit.xml"
+#include "meteo-igf.xml"
+#include "load.xml"
+#include "btdmd8.xml"
+#include "576_nodes.xml"
+#include "windvaan.xml"
+#include "rrdstats.xml"
+#include "all_gamers_36h.xml"
+#include "smpp.xml"
+#include "ryan.xml"
+#include "zug.xml"
+#include "pmacct.xml"
+#include "solar.xml"
+#include "mailstat-daily.xml"
+#include "panel_user.xml"
+#include "mailgraph_gallery.xml"
+#include "ramUsage.xml"
+#include "CPU__Load.xml"
+#include "flux.xml"
+#include "spamd_rrdgraph.xml"
+#include "uw-hep-condor.xml"
+
+
+<h2>Add your own graphs to this list</h2>
+
+<p>If you have created a graph you like, and you think I would like it too,
+please send me the image plus an xml file like the example below to be
+considered for addition to this page. Note that your graph must not be wider
+than 600 pixels.</p>
+
+#use wml::fmt::verbatim
+<verbatim-file src="entry.txt"/>
diff --git a/website/gallery/load.png b/website/gallery/load.png
new file mode 100644 (file)
index 0000000..c144188
Binary files /dev/null and b/website/gallery/load.png differ
index 0000000..c144188
Binary files /dev/null and b/website/gallery/load.png differ
diff --git a/website/gallery/load.xml b/website/gallery/load.xml
--- /dev/null
+++ b/website/gallery/load.xml
@@ -0,0 +1,9 @@
+<gallery image="load.png" >
+ <title>Load and CPU usage</title>
+ <author>Lars Kotthoff</author>
+ <description>Graphs the load averages on the system and the fractions of CPU
+ states under the curve.</description>
+ <year>2006</year><month>10</month>
+ <livesite>http://www.metalhead.ws/rrdtool</livesite>
+ <email>metalhead@metalhead.ws</email>
+</gallery>
diff --git a/website/gallery/mailgraph_gallery.png b/website/gallery/mailgraph_gallery.png
new file mode 100644 (file)
index 0000000..37ea0ad
Binary files /dev/null and b/website/gallery/mailgraph_gallery.png differ
index 0000000..37ea0ad
Binary files /dev/null and b/website/gallery/mailgraph_gallery.png differ
diff --git a/website/gallery/mailgraph_gallery.xml b/website/gallery/mailgraph_gallery.xml
--- /dev/null
@@ -0,0 +1,18 @@
+<gallery image="mailgraph_gallery.png" >
+
+ <title> Mailgraph and Greylisting </title>
+ <author> David Schweikert </author>
+<description>This graphs show the effect that the <a
+href="http://isg.ee.ethz.ch/tools/postgrey">greylisting</a> technique
+had on our mail traffic. Notice the drop of spam and viruses in the
+middle of the graph (June 2004) and the corresponding increase in the
+rejected mails.
+ </description>
+
+ <year> 2005 </year><month> 6 </month>
+
+ <!-- Optional -->
+
+ <email> dws@ee.ethz.ch </email>
+
+</gallery>
diff --git a/website/gallery/mailstat-daily.png b/website/gallery/mailstat-daily.png
new file mode 100644 (file)
index 0000000..87aed1f
Binary files /dev/null and b/website/gallery/mailstat-daily.png differ
index 0000000..87aed1f
Binary files /dev/null and b/website/gallery/mailstat-daily.png differ
diff --git a/website/gallery/mailstat-daily.xml b/website/gallery/mailstat-daily.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<gallery image="mailstat-daily.png" > <!-- no wider than 600 pixle -->
+
+ <title> Statistic for antispam server </title>
+ <author> Bambang Budiharto </author>
+
+ <description> Unlike most other report, data in this report are
+collected every hour (3600 sec). This graph shows how the effectiveness of
+using <a href="http://www.postfix.org/uce.html">postfix UCE control</a>,
+ <a href="http://sqlgrey.sourceforge.net">greylisting</a> and
+ <a href="http://spamassassin.apache.org">spamassassin</a> to reduce spam.
+ </description>
+ <year> 2005 </year><month> 6 </month> <!-- creation date -->
+ <!-- Optional -->
+ <email> budhi@i6x.org </email>
+
+</gallery>
+
diff --git a/website/gallery/meteo-igf.png b/website/gallery/meteo-igf.png
new file mode 100644 (file)
index 0000000..a4acee5
Binary files /dev/null and b/website/gallery/meteo-igf.png differ
index 0000000..a4acee5
Binary files /dev/null and b/website/gallery/meteo-igf.png differ
diff --git a/website/gallery/meteo-igf.xml b/website/gallery/meteo-igf.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="meteo-igf.png" >
+ <title>Temperature, humidity and pressure plots</title>
+ <author>Sylwester Arabas</author>
+ <description>
+ We use rrdtool to plot some basic meteorological
+ parameters. Data is coming from our institute's
+ (http://www.igf.fuw.edu.pl/zfa/en/) meteo-station
+ which was build from scratch by students. Rrdtool
+ fetch command is also used for creation of datafiles
+ available on the website.
+ </description>
+ <year>2005</year>
+ <month>12</month>
+ <livesite>http://skng.igf.fuw.edu.pl/pl/stacja/</livesite>
+ <email>slayoo@igf.fuw.edu.pl</email>
+</gallery>
diff --git a/website/gallery/miszek.png b/website/gallery/miszek.png
new file mode 100644 (file)
index 0000000..4ac5b43
Binary files /dev/null and b/website/gallery/miszek.png differ
index 0000000..4ac5b43
Binary files /dev/null and b/website/gallery/miszek.png differ
diff --git a/website/gallery/miszek.xml b/website/gallery/miszek.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<gallery image="miszek.png" > <!-- no wider than 600 pixle -->
+ <title> Transaction monitoring on property market </title>
+ <author> M.Cegielski </author>
+ <description> Graph presents number of transactions on Real Estate market in Wroclaw. Chart is made based on week updates. Similar
+graphs present average property prices. Image is not unique but object of monitoring is quite original :) </description>
+ <year> 2008 </year><month> 11 </month> <!-- creation date -->
+ <!-- Optional -->
+ <livesite> http://wycena.net.pl/ceny-mieszkania-wroclaw.htm </livesite>
+ <email> info@wycena.net.pl </email>
+</gallery>
diff --git a/website/gallery/mmh11.xml b/website/gallery/mmh11.xml
--- /dev/null
@@ -0,0 +1,36 @@
+<gallery image="mmh11_pi.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS Inbound </title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display the
+actual volume of transactions for MMS submitions, from 3 differents devices,
+such
+as, Phone, VAS and MM4 (others operator). </description>
+<year> 2006 </year><month> 3 </month> <!-- creation date -->
+<email> alessio.r-delme-@tiscalinet.it </email>
+
+</gallery>
+
+<gallery image="mmh11_po.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS Retrieve</title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display the
+actual volume of transactions for MMS retrieve for mobile phone and sent to
+other Operators (OLO). </description>
+<year> 2006 </year><month> 3 </month> <!-- creation date -->
+<email> alessio.r-delme-@tiscalinet.it </email>
+
+</gallery>
+
+<gallery image="mmh11_er.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS Errors</title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display the
+actual send a PAP push to the mobile, possibile errors due to get to HLR and
+retrieve for mobile.</description>
+<year> 2006 </year><month> 3 </month> <!-- creation date -->
+<email> alessio.r-delme-@tiscalinet.it </email>
+
+</gallery>
diff --git a/website/gallery/mmh11_er.png b/website/gallery/mmh11_er.png
new file mode 100644 (file)
index 0000000..ddce455
Binary files /dev/null and b/website/gallery/mmh11_er.png differ
index 0000000..ddce455
Binary files /dev/null and b/website/gallery/mmh11_er.png differ
diff --git a/website/gallery/mmh11_pi.png b/website/gallery/mmh11_pi.png
new file mode 100644 (file)
index 0000000..3a8faac
Binary files /dev/null and b/website/gallery/mmh11_pi.png differ
index 0000000..3a8faac
Binary files /dev/null and b/website/gallery/mmh11_pi.png differ
diff --git a/website/gallery/mmh11_po.png b/website/gallery/mmh11_po.png
new file mode 100644 (file)
index 0000000..1f857ba
Binary files /dev/null and b/website/gallery/mmh11_po.png differ
index 0000000..1f857ba
Binary files /dev/null and b/website/gallery/mmh11_po.png differ
diff --git a/website/gallery/mmsc0.xml b/website/gallery/mmsc0.xml
--- /dev/null
@@ -0,0 +1,35 @@
+<gallery image="mmsc0pin.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS Inbound </title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display
+the actual volume of transactins for MMS submition, from 3 differents
+devices such as, Phone, VAS, and MM4 (others operator). </description>
+<year> 2006 </year><month> 1 </month> <!-- creation date -->
+<email> alessio.r-leaveme@tiscalinet.it </email>
+
+</gallery>
+
+<gallery image="mmsc0pout.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS Outbound </title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display
+the actual volume of transactins for MMS retreive, to 2 differents
+devices such as, Phone and MM4 (others operator). </description>
+<year> 2006 </year><month> 1 </month> <!-- creation date -->
+<email> alessio.r-leaveme@tiscalinet.it </email>
+
+</gallery>
+
+<gallery image="mmsc0qeq.png" > <!-- no wider than 600 pixle -->
+
+<title> MMS In queue</title>
+<author> Alex Rivoltella </author>
+<description> Simply parse of SNMPget from Vendor OID. The graph display
+the actual volume of transactins for MMS retreive, to 2 differents
+devices such as, Phone and MM4 (others operator). </description>
+<year> 2006 </year><month> 1 </month> <!-- creation date -->
+<email> alessio.r-leaveme@tiscalinet.it </email>
+
+</gallery>
diff --git a/website/gallery/mmsc0pin.png b/website/gallery/mmsc0pin.png
new file mode 100644 (file)
index 0000000..4cb020e
Binary files /dev/null and b/website/gallery/mmsc0pin.png differ
index 0000000..4cb020e
Binary files /dev/null and b/website/gallery/mmsc0pin.png differ
diff --git a/website/gallery/mmsc0pout.png b/website/gallery/mmsc0pout.png
new file mode 100644 (file)
index 0000000..23210d2
Binary files /dev/null and b/website/gallery/mmsc0pout.png differ
index 0000000..23210d2
Binary files /dev/null and b/website/gallery/mmsc0pout.png differ
diff --git a/website/gallery/mmsc0qep.png b/website/gallery/mmsc0qep.png
new file mode 100644 (file)
index 0000000..0730dc6
Binary files /dev/null and b/website/gallery/mmsc0qep.png differ
index 0000000..0730dc6
Binary files /dev/null and b/website/gallery/mmsc0qep.png differ
diff --git a/website/gallery/n20e-daily.png b/website/gallery/n20e-daily.png
new file mode 100644 (file)
index 0000000..2576e14
Binary files /dev/null and b/website/gallery/n20e-daily.png differ
index 0000000..2576e14
Binary files /dev/null and b/website/gallery/n20e-daily.png differ
diff --git a/website/gallery/n20e-daily.xml b/website/gallery/n20e-daily.xml
--- /dev/null
@@ -0,0 +1,9 @@
+<gallery image="n20e-daily.png" >
+ <title> Thermostat with Indoor / Outdoor Temperature </title>
+ <author> Anders Brownworth </author>
+<description> A graph of the internal (green) and external (grey) temperature from an IP enabled thermostat. Red areas denote times when the heat
+was on while blue denotes times when the air-conditioning was on. This graph also simulates translucent intersecting areas where the internal and
+external temperatures can swap places without becoming unreadable. </description>
+ <year> 2007 </year><month> 5 </month>
+ <livesite> http://www.anders.com/projects/thermostat-graph/ </livesite>
+</gallery>
diff --git a/website/gallery/netapp-iops.png b/website/gallery/netapp-iops.png
new file mode 100644 (file)
index 0000000..071fdd2
Binary files /dev/null and b/website/gallery/netapp-iops.png differ
index 0000000..071fdd2
Binary files /dev/null and b/website/gallery/netapp-iops.png differ
diff --git a/website/gallery/netapp-iops.xml b/website/gallery/netapp-iops.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<gallery image="netapp-iops.png" > <!-- no wider than 600 pixle -->
+
+ <title> Network Appliance IOPs by protocol </title>
+ <author> Robert McDermott </author>
+<description> We use a combination of RRDtool, SNMP and Python to gather metrics and generate graphs for several of our critical systems. This graph shows a three hour window of the disk IO activity on one of our NetApp filers broken down by protocol (CIFS, NFS, FCP and iSCSI). </description>
+ <year> 2007 </year><month> 12 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+# <livesite> </livesite>
+ <email> rmcdermo@gmail.com </email>
+
+</gallery>
diff --git a/website/gallery/panel_user.png b/website/gallery/panel_user.png
new file mode 100644 (file)
index 0000000..8945b17
Binary files /dev/null and b/website/gallery/panel_user.png differ
index 0000000..8945b17
Binary files /dev/null and b/website/gallery/panel_user.png differ
diff --git a/website/gallery/panel_user.xml b/website/gallery/panel_user.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<gallery image="panel_user.png">\r
+ <title> ACAD Network - kuzniki.net - traffic graphing </title>\r
+ <author> Gabriel Borkowski </author> \r
+<description> This graph shows amount of total and peer2peer traffic generated by user.\r
+ Online, offline decision is based on information if the computer was sending any data.\r
+(Legend translation: 'bajtow na sek DO' - eng. incoming Bps, 'bajtow na sek Z' - eng. outgoing Bps, 'razem' - eng. total,\r
+ 'wylaczony' - eng. offline, 'wlaczony' - eng. online)</description>\r
+ <year> 2005 </year><month> 6 </month>\r
+\r
+</gallery>\r
+\r
diff --git a/website/gallery/pings.png b/website/gallery/pings.png
new file mode 100644 (file)
index 0000000..2ce339b
Binary files /dev/null and b/website/gallery/pings.png differ
index 0000000..2ce339b
Binary files /dev/null and b/website/gallery/pings.png differ
diff --git a/website/gallery/pings.xml b/website/gallery/pings.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<gallery image="pings.png" > <!-- no wider than 600 pixle -->
+
+ <title> RTT of MPLS VPN endpoints </title>
+ <author> Bruno Ciscato </author>
+<description>Although MPLS VPN endpoints seem just one hop away from
+the IP point of view, there is always a more complex underlying
+infrastructure.
+Collecting endpoint RTTs (pings) and plotting them reveals the hidden
+infrastructure. This image shows that there are 6 groups of endpoints
+that have consistent
+minimum RTTs. This is most likely due to the number of real hops in
+the underlying infrastructure and can also be influenced by the last
+mile technology. It's also easy to spot temporary re-routing: in this
+example the light green endpoint plots temporarily out of his
+"league". </description>
+ <year> 2008 </year><month> 9 </month> <!-- creation date -->
+</gallery>
diff --git a/website/gallery/pmacct-3hour.png b/website/gallery/pmacct-3hour.png
new file mode 100644 (file)
index 0000000..c30e157
Binary files /dev/null and b/website/gallery/pmacct-3hour.png differ
index 0000000..c30e157
Binary files /dev/null and b/website/gallery/pmacct-3hour.png differ
diff --git a/website/gallery/pmacct.xml b/website/gallery/pmacct.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="pmacct-3hour.png" >
+
+ <title>WAN Link Monitoring</title>
+ <author>Martin Pot</author>
+<description>These graphs show network traffic inbound and outbound on the WAN link from our office into our corporate network, and allow us to monitor the network usage of each department in the office.
+<a href="http://www.ba.cnr.it/~paolo/pmacct/">pmacct</a> is used to monitor all traffic on a mirrored switch port, with some perl scripts to parse the pmacct data, store it into rrd files and generate the graphs.
+Get in <a href="http://martybugs.net/contact.cgi">touch</a> with me if you have any questions.
+</description>
+ <year> 2004 </year><month> 1 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+<!-- mpot@martybugs.net -->
+
+</gallery>
+
diff --git a/website/gallery/ramUsage.png b/website/gallery/ramUsage.png
new file mode 100644 (file)
index 0000000..d4d8b82
Binary files /dev/null and b/website/gallery/ramUsage.png differ
index 0000000..d4d8b82
Binary files /dev/null and b/website/gallery/ramUsage.png differ
diff --git a/website/gallery/ramUsage.xml b/website/gallery/ramUsage.xml
--- /dev/null
@@ -0,0 +1,9 @@
+<gallery image="ramUsage.png" > <!-- no wider than 600 pixle -->
+
+ <title>Ram Usage on Linux Machine</title>
+ <author>Michiel Brandenburg</author>
+<description>Created for use with Torrus (unsubmitted) to show the usage of all available RAM, stacked by type of usage.</description>
+ <year> 2005 </year><month> 5 </month> <!-- creation date -->
+ <!-- Optional -->
+ <email> apex@xepa.nl </email>
+</gallery>
diff --git a/website/gallery/rrdstats.png b/website/gallery/rrdstats.png
new file mode 100644 (file)
index 0000000..bce659a
Binary files /dev/null and b/website/gallery/rrdstats.png differ
index 0000000..bce659a
Binary files /dev/null and b/website/gallery/rrdstats.png differ
diff --git a/website/gallery/rrdstats.xml b/website/gallery/rrdstats.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<gallery image="rrdstats.png" > <!-- no wider than 600 pixle -->
+ <title>RRDstats QOS classes usage</title>
+ <author>Dolly</author>
+<description>RRDStats is Coyote Linux & BrazilFW floppy router package.
+Graphical statistics for bandwidth usage, link quality and defined QOS
+classes.</description>
+ <year>2005</year><month>11</month> <!-- creation date -->
+ <livesite>http://dolly.czi.cz/coyote/statssample/</livesite>
+ <email>dolly@czi.cz</email>
+</gallery>
diff --git a/website/gallery/rrdtool-xmas-orig.png b/website/gallery/rrdtool-xmas-orig.png
new file mode 100644 (file)
index 0000000..18bd04e
Binary files /dev/null and b/website/gallery/rrdtool-xmas-orig.png differ
index 0000000..18bd04e
Binary files /dev/null and b/website/gallery/rrdtool-xmas-orig.png differ
diff --git a/website/gallery/rrdtool-xmas.png b/website/gallery/rrdtool-xmas.png
new file mode 100644 (file)
index 0000000..d44a7d8
Binary files /dev/null and b/website/gallery/rrdtool-xmas.png differ
index 0000000..d44a7d8
Binary files /dev/null and b/website/gallery/rrdtool-xmas.png differ
diff --git a/website/gallery/rrdtool-xmas.xml b/website/gallery/rrdtool-xmas.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="rrdtool-xmas.png" >
+
+ <title> Merry Christmas</title>
+ <author> Peter J. Linden </author>
+<description> Over a year ago I discoverd RRDtool. I had lots of fun
+creating all sorts of new graphs since then. So why not use RRDtool for
+my christmas cards too. A formula for the trees was simple. Father Christmas
+was more of a challenge though.</description>
+
+ <year> 2005 </year><month> 12 </month>
+
+ <!-- Optional -->
+
+ <email> linden@linden-itc.de </email>
+
+</gallery>
diff --git a/website/gallery/ryan.png b/website/gallery/ryan.png
new file mode 100644 (file)
index 0000000..cc64e82
Binary files /dev/null and b/website/gallery/ryan.png differ
index 0000000..cc64e82
Binary files /dev/null and b/website/gallery/ryan.png differ
diff --git a/website/gallery/ryan.xml b/website/gallery/ryan.xml
--- /dev/null
+++ b/website/gallery/ryan.xml
@@ -0,0 +1,9 @@
+<gallery image="ryan.png" >
+ <title>Traffic in Kibibytes - cable modem.</title>
+ <author>Ryan Jordan</author>
+ <description>Just an example of different colors and transparency more or less using the rrdtool's site colors. Has a one minute --step.</description>
+ <year>2005</year>
+ <month>11</month>
+ <livesite>http://carmex.ath.cx/graphs/</livesite>
+ <email>ryanstuartjordan@gmail.com</email>
+</gallery>
diff --git a/website/gallery/sintraf.png b/website/gallery/sintraf.png
new file mode 100644 (file)
index 0000000..1ebcb04
Binary files /dev/null and b/website/gallery/sintraf.png differ
index 0000000..1ebcb04
Binary files /dev/null and b/website/gallery/sintraf.png differ
diff --git a/website/gallery/sintraf.xml b/website/gallery/sintraf.xml
--- /dev/null
@@ -0,0 +1,21 @@
+<gallery image="sintraf.png" > <!-- no wider than 600
+pixle -->
+
+ <title> Sinus-Regression of Server-Traffic </title>
+ <author> Holger Kohn </author>
+<description> This graph shows the traffic of a
+networkinterface(dark-green). In red is displayed the optimal
+sinus-curve thru the points of one week. Light-green is the
+"can-be-range" of the traffic that was not alarmed. Yellow is the
+"warning-range" of the curve and every other points cause an
+CRITICAL-Warning in our minitoring. So we bring the
+statistics-calculations into the monitoring. That will show us abnormaly
+using of different curves and alarm it. </description>
+ <year> 2008 </year><month> 1 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://www.kohn-nf.de </livesite>
+ <email> holger@kohn-nf.de </email>
+
+</gallery>
diff --git a/website/gallery/sip_messages_week.png b/website/gallery/sip_messages_week.png
new file mode 100644 (file)
index 0000000..91ea077
Binary files /dev/null and b/website/gallery/sip_messages_week.png differ
index 0000000..91ea077
Binary files /dev/null and b/website/gallery/sip_messages_week.png differ
diff --git a/website/gallery/sip_messages_week.xml b/website/gallery/sip_messages_week.xml
--- /dev/null
@@ -0,0 +1,6 @@
+<gallery image="sip_messages_week.png">
+<title>SIP Messages Last Week</title>
+<author>Chris Aloi and Matthew M. Boedicker</author>
+<description>Inbound and outbound SIP messages on a VoIP trunk group over the last week.</description>
+<year>2008</year><month>5</month>
+</gallery>
diff --git a/website/gallery/smpp.png b/website/gallery/smpp.png
new file mode 100644 (file)
index 0000000..252691f
Binary files /dev/null and b/website/gallery/smpp.png differ
index 0000000..252691f
Binary files /dev/null and b/website/gallery/smpp.png differ
diff --git a/website/gallery/smpp.xml b/website/gallery/smpp.xml
--- /dev/null
+++ b/website/gallery/smpp.xml
@@ -0,0 +1,13 @@
+<gallery image="smpp.png" > <!-- no wider than 600 pixle -->
+
+ <title> SMPP Router Statistics </title>
+ <author> Osinet </author>
+<description> SMSs per second statistics graph </description>
+ <year> 2005 </year><month> 11 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://www.osinet.com.ar </livesite>
+ <email> info@osinet.com.ar </email>
+
+</gallery>
diff --git a/website/gallery/solar.png b/website/gallery/solar.png
new file mode 100644 (file)
index 0000000..9e06ab3
Binary files /dev/null and b/website/gallery/solar.png differ
index 0000000..9e06ab3
Binary files /dev/null and b/website/gallery/solar.png differ
diff --git a/website/gallery/solar.xml b/website/gallery/solar.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<gallery image="solar.png" > <!-- no wider than 600 pixle -->
+
+ <title> Solar System's Data </title>
+ <author> Christian Kaiser </author>
+ <description> Shows the daily information about our solar system's data and state </description>
+ <year> 2005 </year><month> 8 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://www.invest-tools.com/pub/solar/today.png </livesite>
+ <email> chk@online.de </email>
+
+</gallery>
+
diff --git a/website/gallery/spamd_rrdgraph.xml b/website/gallery/spamd_rrdgraph.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<gallery image="gate.spamd.week.600.png" >
+
+ <title> spamd connections </title>
+ <author> Christopher Kruslicky </author>
+<description>
+<a href='http://www.openbsd.org/cgi-bin/man.cgi?query=spamd'>OpenBSD's
+spam deferral daemon</a> connection graph shows simultaneous connections in green, and connection times in blue. The dark blue line shows the average connection time, with lighter blue used to show the range from minimum to maximum as a blurring effect. The data is taken from a spamd logfile every time a line is added, or at 10 second intervals if no new data arrives in which case the most recent values are duplicated. The RRD is created with a 30 second heartbeat - so some fractional number of connections is possible. For those unfamiliar with spamd, it is an SMTP tarpit for blacklisted senders. The logfile includes the number of concurrent connections each time a new host connects, and the time a connection has lasted when a host disconnects. The number of connections should be fairly accurate in the graphs, while the connection times are not so in the short-term, depending more on the timing of the disconnects. Connections and times are tracked separately in perl, except that disconnects cause a decrement in the connection count as well.
+</description>
+
+ <year> 2005 </year><month> 4 </month>
+
+ <email> chris-rrdgallery@kruslicky.net </email>
+
+</gallery>
diff --git a/website/gallery/stream-pop.png b/website/gallery/stream-pop.png
new file mode 100644 (file)
index 0000000..d3537eb
Binary files /dev/null and b/website/gallery/stream-pop.png differ
index 0000000..d3537eb
Binary files /dev/null and b/website/gallery/stream-pop.png differ
diff --git a/website/gallery/stream-pop.xml b/website/gallery/stream-pop.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<gallery image="stream-pop.png" >
+
+ <title> Streaming Auditor mesure </title>
+ <author> Black Dragon ? </author>
+<description> This graph waas made in order to have an idea of how many listerners are on the webradio every 5 minutes (in order to have a look on privileged listeing hours). It's an example of a "Blue Flaming". Thanks to ED and dedibox-news great helper team. If you want more explainations send me a mail. </description>
+ <year> 2007 </year><month> 5 </month>
+
+ <livesite> http://www.fantasticworlds.eu </livesite>
+ <email> black@ozone-server.com </email>
+
+</gallery>
\ No newline at end of file
diff --git a/website/gallery/systembelastung.png b/website/gallery/systembelastung.png
new file mode 100644 (file)
index 0000000..84f5e90
Binary files /dev/null and b/website/gallery/systembelastung.png differ
index 0000000..84f5e90
Binary files /dev/null and b/website/gallery/systembelastung.png differ
diff --git a/website/gallery/systembelastung.xml b/website/gallery/systembelastung.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<gallery image="systembelastung.png" >
+
+ <title> System Information (retro look) </title>
+ <author> kmindi </author>
+ <description> These 2 graphs are displayed on a status page of my
+small server at home. The colour green on black is used because I like these colours in combination with computers referring to the opinion of
+windows user about linux console freaks that are all supposed to have these colours in their console command line interfaces and because it looks
+somehow old school.
+ </description>
+ <year> 2008 </year><month> 08 </month>
+</gallery>
diff --git a/website/gallery/temp-poprs.png b/website/gallery/temp-poprs.png
new file mode 100644 (file)
index 0000000..23c6cb5
Binary files /dev/null and b/website/gallery/temp-poprs.png differ
index 0000000..23c6cb5
Binary files /dev/null and b/website/gallery/temp-poprs.png differ
diff --git a/website/gallery/temp-poprs.xml b/website/gallery/temp-poprs.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<gallery image="temp-poprs..png" > <!-- no wider than 600 pixle -->
+
+ <title> Temperature </title>
+ <author> João Marcelo Ceron </author>
+<description> This graph shows the temperature of a computer room (indoor) and make a parallel with external
+temperature (in Porto Alegre city).</description>
+ <year> 2007 </year><month> 6 </month> <!-- creation date -->
+ <!-- Optional -->
+
+ <livesite> http://www.pop-rs.rnp.br/temperatura </livesite>
+ <email></email>
+
+</gallery>
+
+
+
diff --git a/website/gallery/temp6.png b/website/gallery/temp6.png
new file mode 100644 (file)
index 0000000..e18b5a5
Binary files /dev/null and b/website/gallery/temp6.png differ
index 0000000..e18b5a5
Binary files /dev/null and b/website/gallery/temp6.png differ
diff --git a/website/gallery/temp6.xml b/website/gallery/temp6.xml
--- /dev/null
@@ -0,0 +1,8 @@
+<gallery image="temp6.png" >
+ <title>PC temperatures and fan speeds</title>
+ <author>Ciprian Popovici</author>
+ <description>An aggregate of all the temperatures and fans in my
+personal desktop computer. The spike is me watching a HD movie trailer.
+The grey area is a reboot.</description>
+ <year>2007</year><month>10</month>
+</gallery>
diff --git a/website/gallery/termonit.png b/website/gallery/termonit.png
new file mode 100644 (file)
index 0000000..f1ba777
Binary files /dev/null and b/website/gallery/termonit.png differ
index 0000000..f1ba777
Binary files /dev/null and b/website/gallery/termonit.png differ
diff --git a/website/gallery/termonit.xml b/website/gallery/termonit.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<gallery image="termonit.png" >
+
+ <title> Server room temperature monitoring </title>
+ <author> Evgueni V. Gavrilov </author>
+<description> There are 8 thermal sensors across my server room. This graph shows thermal condition of various parts of the server room. </description>
+ <year> 2006 </year>
+ <month> 10 </month>
+ <email> aquatique@rusunix.org </email>
+
+</gallery>
+
diff --git a/website/gallery/ups_voltage_month.png b/website/gallery/ups_voltage_month.png
new file mode 100644 (file)
index 0000000..fd801cb
Binary files /dev/null and b/website/gallery/ups_voltage_month.png differ
index 0000000..fd801cb
Binary files /dev/null and b/website/gallery/ups_voltage_month.png differ
diff --git a/website/gallery/ups_voltage_month.xml b/website/gallery/ups_voltage_month.xml
--- /dev/null
@@ -0,0 +1,9 @@
+<gallery image="ups_voltage_mounth.png" > <!-- no wider than 600 pixle -->
+
+ <title>Voltage control on APC Smart-UPS 2200 (Last Month)</title>
+ <author>SnikS</author>
+ <description>This graph shows the operating voltage of the electrical outlets in the last month.</description>
+ <year>2007</year><month>4</month> <!-- creation date -->
+ <email> admin@vitmn.ru</email>
+
+</gallery>
diff --git a/website/gallery/upstream-traffic-day.png b/website/gallery/upstream-traffic-day.png
new file mode 100644 (file)
index 0000000..4141587
Binary files /dev/null and b/website/gallery/upstream-traffic-day.png differ
index 0000000..4141587
Binary files /dev/null and b/website/gallery/upstream-traffic-day.png differ
diff --git a/website/gallery/upstream-traffic-day.xml b/website/gallery/upstream-traffic-day.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<gallery image="upstream-traffic-day.png" > <!-- no wider than 600 pixle
+-->
+ <title> Peering/Upstream Ratio </title>
+ <author> Alex Detzen </author>
+<description> This graph shows Peering- and Upstream-Traffic and
+summarizes total amount of traffic from our Autonoumous System to the
+World Wide Web. Several RRD-DBs are used to create the graph. MRTG is used
+for collecting values from Cisco and Juniper routers. </description>
+ <year> 2009 </year><month> 9 </month> <!-- creation date -->
+</gallery>
diff --git a/website/gallery/uw-condor-use.png b/website/gallery/uw-condor-use.png
new file mode 100644 (file)
index 0000000..d4df7e5
Binary files /dev/null and b/website/gallery/uw-condor-use.png differ
index 0000000..d4df7e5
Binary files /dev/null and b/website/gallery/uw-condor-use.png differ
diff --git a/website/gallery/uw-condor.png b/website/gallery/uw-condor.png
new file mode 100644 (file)
index 0000000..0cebe28
Binary files /dev/null and b/website/gallery/uw-condor.png differ
index 0000000..0cebe28
Binary files /dev/null and b/website/gallery/uw-condor.png differ
diff --git a/website/gallery/uw-hep-condor.xml b/website/gallery/uw-hep-condor.xml
--- /dev/null
@@ -0,0 +1,37 @@
+
+<gallery image="uw-condor.png" >
+
+<title> UW-HEP Grid Computing Resources Graph </title>
+<author> Steve Rader </author>
+<description>
+This graph shows that the Linux Intel computing resources available
+for particle physics research at the University of Wisconsin
+provides 4.7 CPU <b>years</b> of computing power every day. It's a
+combination of Condor pools managed by High Energy Physics, the
+Computer Science Department and the Grid Laboratory of Wisconsin.
+</description>
+
+<year> 2005 </year> <month> 5 </month>
+<livesite> http://nrg.hep.wisc.edu </livesite>
+
+<email> rader@hep.wisc.edu </email>
+
+</gallery>
+
+
+<gallery image="uw-condor-use.png" >
+<title> UW-HEP Grid CPU Utilization Graph </title>
+<author> Steve Rader </author>
+<description>
+
+This graph shows the utilization of Linux Intel CPUs by particle
+physics researchers and other members of the Grid Laboratory of
+Wisconsin.
+
+</description>
+<year> 2005 </year> <month> 5 </month>
+<livesite> http://nrg.hep.wisc.edu </livesite>
+<email> rader@hep.wisc.edu </email>
+
+</gallery>
+
diff --git a/website/gallery/windvaan.png b/website/gallery/windvaan.png
new file mode 100644 (file)
index 0000000..c7a12c8
Binary files /dev/null and b/website/gallery/windvaan.png differ
index 0000000..c7a12c8
Binary files /dev/null and b/website/gallery/windvaan.png differ
diff --git a/website/gallery/windvaan.xml b/website/gallery/windvaan.xml
--- /dev/null
@@ -0,0 +1,12 @@
+<gallery image="windvaan.png" >
+
+ <title> Windvaan de drie delfzijlen </title>
+ <author> H.R. ter Veer </author>
+<description> A graph showing wind speed & direction. </description>
+ <year> 2006 </year><month> 1 </month> <!-- creation date -->
+
+
+ <!-- Optional -->
+ <email> h.r.terveer@noorderzijlvest.nl </email>
+
+</gallery>
diff --git a/website/gallery/zug.png b/website/gallery/zug.png
new file mode 100644 (file)
index 0000000..6404746
Binary files /dev/null and b/website/gallery/zug.png differ
index 0000000..6404746
Binary files /dev/null and b/website/gallery/zug.png differ
diff --git a/website/gallery/zug.xml b/website/gallery/zug.xml
--- /dev/null
+++ b/website/gallery/zug.xml
@@ -0,0 +1,15 @@
+<gallery image="zug.png" > <!-- no wider than 600 pixle -->
+
+ <title> Weather monitoring </title>
+ <author> Kantonsschule Zug </author>
+<description> This graph shows the atmospheric pressure measured at our
+school's weather station. We use this data and graphs to
+demonstrate weather behavior with real life data. </description>
+ <year> 2005 </year><month> 11 </month> <!-- creation date -->
+
+ <!-- Optional -->
+
+ <livesite> http://weather.kanti-zug.ch </livesite>
+ <email> info@kanti-zug.ch </email>
+
+</gallery>
diff --git a/website/hoster.html b/website/hoster.html
--- /dev/null
+++ b/website/hoster.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<style type="text/css">
+body {
+ margin: 0px;
+ padding: 0px;
+ background-color: #f0f0f0;
+ font-family: sans-serif;
+ font-size: 10px;
+}
+
+#hoster a {
+ color: black;
+ text-decoration: none;
+}
+</style>
+</head>
+<body>
+<div id="hoster">
+<a target="_top" href="http://www.init7.com/bandwidth.php">bandwidth</a> by <a href="http://www.init7.net/" target="_top">Init7</a>
+</div>
+</body>
+</html>
diff --git a/website/iana/RRDMONITOR.MIB b/website/iana/RRDMONITOR.MIB
--- /dev/null
@@ -0,0 +1,87 @@
+RRDMONITOR-MIB DEFINITIONS ::= BEGIN\r
+\r
+IMPORTS\r
+ NOTIFICATION-TYPE, OBJECT-TYPE, MODULE-IDENTITY\r
+ FROM SNMPv2-SMI\r
+ TEXTUAL-CONVENTION\r
+ FROM SNMPv2-TC\r
+ rrdtool\r
+ FROM RRDTOOL-SMI;\r
+\r
+rrdmonitor MODULE-IDENTITY\r
+ LAST-UPDATED "200505160000Z"\r
+ ORGANIZATION \r
+ "RRDMonitor project"\r
+ CONTACT-INFO \r
+ "contact info@rrdmonitor.net\r
+ http://rrdmonitor.net"\r
+ DESCRIPTION \r
+ "The MIB module for SNMP variables specific to RRDMonitor project"\r
+::= { rrdtool 3 }\r
+\r
+\r
+EventType ::= TEXTUAL-CONVENTION\r
+ STATUS current\r
+ DESCRIPTION \r
+ "Defines the event type:\r
+ warning -- The monitor condition is first time met\r
+ critical -- The monitor condition is met again on the consequtive\r
+ monitorin cycle\r
+ clear -- The monitor condition is not met the first time after\r
+ event type set or repeat"\r
+ SYNTAX INTEGER {\r
+ warning (1),\r
+ critical (2),\r
+ clear (3)\r
+ }\r
+\r
+\r
+rrdmonitorAlarmTable OBJECT-TYPE\r
+ SYNTAX SEQUENCE OF RrdmonitorAlarmEntry\r
+ MAX-ACCESS not-accessible\r
+ STATUS current\r
+ DESCRIPTION \r
+ ""\r
+ ::= { rrdmonitor 1 }\r
+\r
+rrdmonitorAlarmEntry OBJECT-TYPE\r
+ SYNTAX RrdmonitorAlarmEntry\r
+ MAX-ACCESS not-accessible\r
+ STATUS current\r
+ DESCRIPTION \r
+ ""\r
+ INDEX { rrdmonitorEventType, \r
+ rrdmonitorMessage }\r
+ ::= { rrdmonitorAlarmTable 1 }\r
+\r
+RrdmonitorAlarmEntry ::= SEQUENCE {\r
+ rrdmonitorEventType\r
+ EventType,\r
+ rrdmonitorMessage\r
+ OCTET STRING\r
+}\r
+\r
+rrdmonitorEventType OBJECT-TYPE\r
+ SYNTAX EventType\r
+ MAX-ACCESS read-write\r
+ STATUS current\r
+ DESCRIPTION \r
+ "The type of the event: warning(1), critical(2), clear(3)"\r
+ ::= { rrdmonitorAlarmEntry 1 }\r
+\r
+rrdmonitorMessage OBJECT-TYPE\r
+ SYNTAX OCTET STRING (SIZE(0..128))\r
+ MAX-ACCESS read-write\r
+ STATUS current\r
+ DESCRIPTION \r
+ "The value of this object uniquely identifies this event entry."\r
+ ::= { rrdmonitorAlarmEntry 2 }\r
+\r
+generic NOTIFICATION-TYPE\r
+ OBJECTS { rrdmonitorEventType, \r
+ rrdmonitorMessage }\r
+ STATUS current\r
+ DESCRIPTION \r
+ "The SNMP trap that is generated when an rrdmonitor monitor condition is changed for the leaf being monitored"\r
+ ::= { rrdmonitor 2 }\r
+END
\ No newline at end of file
diff --git a/website/iana/RRDTOOL-SMI.txt b/website/iana/RRDTOOL-SMI.txt
--- /dev/null
@@ -0,0 +1,56 @@
+RRDTOOL-SMI DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-IDENTITY,
+ enterprises
+ FROM SNMPv2-SMI;
+
+rrdtool MODULE-IDENTITY
+ LAST-UPDATED "200404010000Z"
+ ORGANIZATION "RRD Tool"
+ CONTACT-INFO
+ " Tobi Oetiker
+
+ Postal: OETIKER+PARTNER
+ Aarweg 15
+ CH-4600 Olten
+ Switzerland
+
+ Telephone: +41 62 213 9907
+ E-mail: tobi@oetiker.ch
+
+ RRD Tool Information:
+ http://oss.oetiker.ch/rrdtool/
+ "
+ DESCRIPTION
+ "The Structure of RRDTool fellow projects"
+ ::= { enterprises 14697 } -- assigned by IANA
+
+rrfw OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Round Robin Database Framework.
+ http://rrfw.sourceforge.net/
+ "
+ ::= { rrdtool 1 }
+
+mobilerrd OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "RRDtool within KPN Mobile.
+ Contact mobilerrd{at}12move.nl
+ "
+ ::= { rrdtool 2 }
+
+rrdmonitor OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The MIB module for SNMP variables specific to rrdmonitor project
+ Contact: skorza@gmail.com, rrdmonitor@10096.it
+ "
+ ::= { rrdtool 3 }
+
+-- more to come if necessary.
+
+END
diff --git a/website/iana/index.wml b/website/iana/index.wml
--- /dev/null
+++ b/website/iana/index.wml
@@ -0,0 +1,24 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "iana">
+
+<H1>The RRDtool Enterprise Tree</H1>
+
+<P>The IANA has assigned the Enterprise OID 1.3.6.1.4.1.<b>14697</b> to the
+RRDtool project. This enables us to give out sub OIDs to RRDtool
+frontends which need a place in the SNMP tree to place their own OIDs. If
+you want an OID for your project, please drop <a href="mailto:tobi@oetiker.ch">me</a> a line.</P>
+
+<P>The toplevel MIB defining the basic structure of our tree is <A href="RRDTOOL-SMI.txt">RRDTOOL-SMI</A></P>
+
+<H2>MIB Subregistrations</H2>
+
+<P>The following subregistrations have been accepted:</P>
+
+<UL>
+<LI><B>1</B> -- <A HREF="http://rrfw.sourceforge.net/">Round Robin Database Framework</A> -- <A HREF="http://rrfw.sourceforge.net/RRFW-MIB.txt">RRFW-MIB.txt</A>.</LI>
+<LI><B>2</B> -- MobileRRD RRD implementation of KPN Mobile Contact Wim Siebring.</LI>
+<LI><B>3</B> -- RRDMonitor by RRDMonitor by Pusceddu and Vit from RRDMonitor.net -- <A HREF="RRDMONITOR.MIB">RRDMONITOR.MIB</a>.</LI>
+</UL>
+
+<P>If you submit MIB modules, please <A HREF="http://wwwsnmp.cs.utwente.nl/ietf/mibs/validate/">validate</A> them
+before sending them to me. State in your mail that you have validated the MIB, or I will ask you todo it.</P>
diff --git a/website/inc/IE7/README.txt b/website/inc/IE7/README.txt
--- /dev/null
@@ -0,0 +1,34 @@
+Installation
+------------
+
+Follow these simple instructions to get IE7 working immediately on your server:
+
+ * download the latest IE7 ZIP file (https://sourceforge.net/project/showfiles.php?group_id=109983&package_id=119707)
+
+ * extract the contents to a directory on your server (keep the folder names used in the ZIP)
+
+ * you will now have an IE7 directory on your server
+
+ * include the IE7 JavaScript library in the page you wish to test
+
+ <!-- compliance patch for microsoft browsers -->
+ <!--[if lt IE 7]><script src="/ie7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+
+ * make sure this also points to the same directory
+
+ * open the page in your web browser
+
+ * the page should now be IE7 enabled.
+
+ * if you are using the PNG solution then be aware that it operates on files
+ names "something-trans.png"
+
+ * see this page for more configuration and usage options:
+ http://dean.edwards.name/IE7/usage/
+
+You may extract the contents of the ZIP file to your hard disk if you do not have access to a web server.
+
+
+Enjoy ;-)
+
+Dean Edwards, 23rd May 2005
diff --git a/website/inc/IE7/blank.gif b/website/inc/IE7/blank.gif
new file mode 100644 (file)
index 0000000..a4fe2e6
Binary files /dev/null and b/website/inc/IE7/blank.gif differ
index 0000000..a4fe2e6
Binary files /dev/null and b/website/inc/IE7/blank.gif differ
diff --git a/website/inc/IE7/ie7-base64.php b/website/inc/IE7/ie7-base64.php
--- /dev/null
@@ -0,0 +1,7 @@
+<?php\r
+$data = split(";", $_SERVER["REDIRECT_QUERY_STRING"]);\r
+$type = $data[0];\r
+$data = split(",", $data[1]);\r
+header("Content-type: ".$type);\r
+echo base64_decode($data[1]);\r
+?>
\ No newline at end of file
diff --git a/website/inc/IE7/ie7-content.htc b/website/inc/IE7/ie7-content.htc
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<!--\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+-->\r
+<head>\r
+<object id="dummy" width="0" height="0"></object>\r
+<base id="base">\r
+<style type="text/css">html,body,img{margin:0;}img{vertical-align:top}#dummy{display:inline}</style>\r
+<script type="text/javascript">public_description=new function(){var l=false;this.ie7_anon=true;this.load=function(o,c,u){if(l)return;l=true;base.href=o.document.URL;dummy.style.cssText=c;var _0=o.parentElement;var _1=Boolean(dummy.currentStyle.display=="inline");function r(){o.runtimeStyle.width=(_1)?image.offsetWidth:"100%";o.runtimeStyle.height=body.offsetHeight};image.onreadystatechange=function(){if(this.readyState=="complete")_2()};image.src=u;function _2(){function copy(p){try{body.style[p]=_0.currentStyle[p]}catch(i){}};for(var j in body.currentStyle)copy(j);body.style.width="";body.style.height="";body.style.border="none";body.style.padding="0";body.style.margin="0";body.style.textIndent="";body.style.position="static";while(_0&&_0.currentStyle.backgroundColor=="transparent"){_0=_0.parentElement}if(_0)document.body.style.backgroundColor=_0.currentStyle.backgroundColor;body.runtimeStyle.cssText=c;body.runtimeStyle.margin="0";if(_1)body.runtimeStyle.width="";r()}}};</script>\r
+</head>\r
+<body><span id="body"><img id="image"></span></body>\r
+</html>\r
diff --git a/website/inc/IE7/ie7-core.js b/website/inc/IE7/ie7-core.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('x(!1M.1j)z 6(){1l{1M.1j=8;4 1W=8.2m=z 26;8.O=6(){7"1j 2q 0.9 (5G)"};4 36=/36/.B(42.41.40);4 1G=(36)?6(m){1M.1G(1j+"\\n\\n"+m)}:1W;4 2t=5F.2t.1g(/5E (\\d\\.\\d)/)[1];4 2z=K.5D!="5C";x(/5B/.B(42.41.40)||2t<5||!/^5A/.B(K.1J.2A))7;4 1H=K.39=="1H";4 1t,5z;4 1J=K.1J,2s,3X,17=K.17;4 5y="!";4 22={};4 1u=1C;1j.2m=6(n,s){x(!22[n]){x(1u)1k("s="+2o(s));22[n]=z s()}};4 R=/^[\\w\\.]+[^:]*$/;6 1I(h,p){x(R.B(h))h=(p||"")+h;7 h};6 2e(h,p){h=1I(h,p);7 h.1d(0,h.3n("/")+1)};4 s=K.3Z[K.3Z.y-1];1l{1k(s.3z)}1i(i){}4 1R=2e(s.5x);4 1F;1l{4 l=(5w()>=5)?"5v":"5u";1F=z 5t(l+".5s")}1i(i){}4 2w={};6 2y(h,p){1l{h=1I(h,p);x(!2w[h]){1F.5r("5q",h,1C);1F.5p();x(1F.3Y==0||1F.3Y==5o){2w[h]=1F.5n}}}1i(i){1G("2x [1]: 30 5m 5l "+h)}37{7 2w[h]||""}};4 5k=1I("5j.5i",1R);6 1E(V){x(V!=1L){V.2v=13.16.2v;V.12=13.16.12}7 V};1E.12=6(p,c){x(!p)p={};x(!c)c=p.J;x(c=={}.J)c=z 26("8.2v()");c.Y=z 26("7 8");c.Y.16=z 8.Y;c.Y.16.12(p);c.16=z c.Y;c.Y.16.J=c.16.J=c;c.1r=8;c.12=F.32;c.2u=8.2u;7 c};1E.Y=z 26("7 8");1E.Y.16={J:1E,2v:6(){7 F.32.5h.1r.2k(8,F)},12:6(V){x(8==8.J.16&&8.J.12){7 8.J.Y.16.12(V)}D(4 i 5g V){2K(i){1o"J":1o"O":1o"Y":2X}x(2V V[i]=="6"&&V[i]!=8[i]){V[i].1r=8[i]}8[i]=V[i]}x(V.O!=8.O&&V.O!={}.O){V.O.1r=8.O;8.O=V.O}7 8}};6 13(){};8.13=1E.12({J:13,O:6(){7"[5f "+(8.J.2Z||"5e")+"]"},5d:6(1h){7 8.J==1h||1h.2u(8.J)}});13.2Z="13";13.1r=1L;13.2u=6(1h){1f(1h&&1h.1r!=8)1h=1h.1r;7 3J(1h)};13.Y.1r=1E;2a 8.13;4 3A=13.12({J:6(){8.5c=[];8.1p=[]},1s:1W});x(2t<5.5)1k(2y("Z-5b.3a",1R));4 35=1C;1j.1s=6(){1l{x(35)7;35=1H=1c;2s=K.2s;3X=(2z)?2s:1J;x(1K&&1t)1t.2k();15.2k();1n();1G("1u 5a")}1i(e){1G("2x [2]: "+e.38)}};4 1p=[];6 2C(r){1p.11(r)};6 1n(){H.3P();x(1K&&1t)1t.1n();15.1n();D(4 i=0;i<1p.y;i++)1p[i]()};6 23(){4 E=0,R=1,L=2;4 G=/\\(/g,S=/\\$\\d/,I=/^\\$\\d+$/,T=/([\'"])\\1\\+(.*)\\+\\1\\1$/,3Q=/\\\\./g,Q=/\'/,3W=/\\25[^\\25]*\\25/g;4 1X=8;8.18=6(e,r){x(!r)r="";4 l=(34(2o(e)).1g(G)||"").y+1;x(S.B(r)){x(I.B(r)){r=3e(r.1d(1))-1}1b{4 i=l;4 q=Q.B(34(r))?\'"\':"\'";1f(i)r=r.2S("$"+i--).2p(q+"+a[o+"+i+"]+"+q);r=z 26("a,o","7"+q+r.19(T,"$1")+q)}}3V(e||"/^$/",r,l)};8.1U=6(s){24.y=0;7 3R(3S(s,8.2r).19(z 1Z(1D,8.33?"2I":"g"),3T),8.2r).19(3W,"")};8.59=6(){1D.y=0};4 24=[];4 1D=[];4 3U=6(){7"("+2o(8[E]).1d(1,-1)+")"};1D.O=6(){7 8.2p("|")};6 3V(){F.O=3U;1D[1D.y]=F}6 3T(){x(!F[0])7"";4 i=1,j=0,p;1f(p=1D[j++]){x(F[i]){4 r=p[R];2K(2V r){1o"6":7 r(F,i);1o"58":7 F[r+i]}4 d=(F[i].57(1X.2r)==-1)?"":"\\25"+F[i]+"\\25";7 d+r}1b i+=p[L]}};6 3S(s,e){7 e?s.19(z 1Z("\\\\"+e+"(.)","g"),6(m,c){24[24.y]=c;7 e}):s};6 3R(s,e){4 i=0;7 e?s.19(z 1Z("\\\\"+e,"g"),6(){7 e+(24[i++]||"")}):s};6 34(s){7 s.19(3Q,"")}};23.16={J:23,33:1C,2r:""};13.12(23.16);4 1V=23.12({33:1c});4 H=6(){4 2q="2.0.2";4 C=/\\s*,\\s*/;4 H=6(s,14){1l{4 m=[];4 u=F.32.2Q&&!14;4 b=(14)?(14.J==3G)?14:[14]:[K];4 31=3D(s).2S(C),i;D(i=0;i<31.y;i++){s=2R(31[i]);x(3K&&s.1d(0,3).2p("")==" *#"){s=s.1d(2);14=3H([],b,s[1])}1b 14=b;4 j=0,t,f,a,c="";1f(j<s.y){t=s[j++];f=s[j++];c+=t+f;a="";x(s[j]=="("){1f(s[j++]!=")"&&j<s.y){a+=s[j]}a=a.1d(0,-1);c+="("+a+")"}14=(u&&1P[c])?1P[c]:3F(14,t,f,a);x(u)1P[c]=14}m=m.3t(14)}2a H.30;7 m}1i(e){H.30=e;7[]}};H.O=6(){7"6 H() {\\n [2q "+2q+"]\\n}"};4 1P={};H.2Q=1C;H.3P=6(s){x(s){s=2R(s).2p("");2a 1P[s]}1b 1P={}};4 22={};4 1u=1C;H.2m=6(n,s){x(1u)1k("s="+2o(s));22[n]=z s()};H.Y=6(c){7 c?1k(c):8};4 1B={};4 2n={};4 56={1g:/\\[([\\w-]+(\\|[\\w-]+)?)\\s*(\\W?=)?\\s*([^\\]]*)\\]/};4 55=[];1B[" "]=6(r,f,t,n){4 e,i,j;D(i=0;i<f.y;i++){4 s=2l(f[i],t,n);D(j=0;(e=s[j]);j++){x(1q(e)&&2T(e,n))r.11(e)}}};1B["#"]=6(r,f,i){4 e,j;D(j=0;(e=f[j]);j++)x(e.1a==i)r.11(e)};1B["."]=6(r,f,c){c=z 1Z("(^|\\\\s)"+c+"(\\\\s|$)");4 e,i;D(i=0;(e=f[i]);i++)x(c.B(e.2Z))r.11(e)};1B[":"]=6(r,f,p,a){4 t=2n[p],e,i;x(t)D(i=0;(e=f[i]);i++)x(t(e,a))r.11(e)};2n["21"]=6(e){4 d=2U(e);x(d.2Y)D(4 i=0;i<d.2Y.y;i++){x(d.2Y[i]==e)7 1c}};2n["2N"]=6(e){};4 1q=6(e){7(e&&e.3B==1&&e.2P!="!")?e:1L};4 3N=6(e){1f(e&&(e=e.54)&&!1q(e))2X;7 e};4 2W=6(e){1f(e&&(e=e.53)&&!1q(e))2X;7 e};4 3L=6(e){7 1q(e.3O)||2W(e.3O)};4 52=6(e){7 1q(e.3M)||3N(e.3M)};4 51=6(e){4 c=[];e=3L(e);1f(e){c.11(e);e=2W(e)}7 c};4 3K=1c;4 2O=6(e){4 d=2U(e);7(2V d.3I=="50")?/\\.4Z$/i.B(d.4Y):3J(d.3I=="4X 4W")};4 2U=6(e){7 e.4V||e.K};4 2l=6(e,t){7(t=="*"&&e.1A)?e.1A:e.2l(t)};4 4U=6(e,t,n){x(t=="*")7 1q(e);x(!2T(e,n))7 1C;x(!2O(e))t=t.4T();7 e.2P==t};4 2T=6(e,n){7!n||(n=="*")||(e.4S==n)};4 4R=6(e){7 e.4Q};6 3H(r,f,1a){4 m,i,j;D(i=0;i<f.y;i++){x(m=f[i].1A.4P(1a)){x(m.1a==1a)r.11(m);1b x(m.y!=1L){D(j=0;j<m.y;j++){x(m[j].1a==1a)r.11(m[j])}}}}7 r};x(![].11)3G.16.11=6(){D(4 i=0;i<F.y;i++){8[8.y]=F[i]}7 8.y};4 N=/\\|/;6 3F(14,t,f,a){x(N.B(f)){f=f.2S(N);a=f[0];f=f[1]}4 r=[];x(1B[t]){1B[t](r,14,f,a)}7 r};4 S=/^[^\\s>+~]/;4 3E=/[\\s#.:>+~()@]|[^\\s#.:>+~()@]+/g;6 2R(s){x(S.B(s))s=" "+s;7 s.1g(3E)||[]};4 W=/\\s*([\\s>+~(),]|^|$)\\s*/g;4 I=/([\\s>+~,]|[^(]\\+|^)([#.:@])/g;4 3D=6(s){7 s.19(W,"$1").19(I,"$1*$2")};4 1y={O:6(){7"\'"},1g:/^(\'[^\']*\')|("[^"]*")$/,B:6(s){7 8.1g.B(s)},18:6(s){7 8.B(s)?s:8+s+8},3C:6(s){7 8.B(s)?s.1d(1,-1):s}};4 1N=6(t){7 1y.3C(t)};4 E=/([\\/()[\\]?{}|*+-])/g;6 4O(s){7 s.19(E,"\\\\$1")};1u=1c;7 H}();H.2Q=1c;H.2m("Z",6(){1q=6(e){7(e&&e.3B==1&&e.2P!="!"&&!e.3d)?e:1L}});H.Y("1N=F[1]",3k);4 1K=!H.Y("2O(F[1])",1J);4 2h=":21{Z-21:21}:2N{Z-21:2N}"+(1K?"":"*{4N:0}");4 15=z(3A.12({2F:z 1V,1O:"",1w:"",2L:[],1s:6(){8.2M();8.2g()},2g:6(){15.1Y.X=2h+8.1O+8.1w},3y:6(){4 20=K.2l("1e"),s;D(4 i=20.y-1;(s=20[i]);i--){x(!s.2H&&!s.Z){8.2L.11(s.3z)}}},2k:6(){8.3y();8.2g();z 28("1O");8.3u()},3w:6(e,r){8.2F.18(e,r)},1n:6(){4 R=/3v\\d+/g;4 s=2h.1g(/[{,]/g).y;4 20=s+(8.1O.X.1g(/\\{/g)||"").y;4 3x=8.1Y.4M,r;4 2j,c,2i,e,i,j,k,1a;D(i=s;i<20;i++){r=3x[i];x(r&&(2j=r.1e.X.1g(R))){2i=H(r.4L);x(2i.y)D(j=0;j<2j.y;j++){1a=2j[j];c=15.1p[1a.1d(10)][2];D(k=0;(e=2i[k]);k++){x(e.1v[1a])c(e)}}}}},2C:6(p,t,h,r){t=z 1Z("([{;\\\\s])"+p+"\\\\s*:\\\\s*"+t+"[^;}]*");4 i=8.1p.y;x(r)r=p+":"+r;8.3w(t,6(m,o){7(r?m[o+1]+r:m[o])+";Z-"+m[o].1d(1)+";3v"+i+":1"});8.1p.11(F);7 i},1N:6(s){7 s.X||""},2M:6(){x(1H||!1K)K.2M();1b K.4K("<1e Z=1c></1e>");8.1Y=17[17.y-1];8.1Y.Z=1c;8.1Y.X=2h},3u:6(){D(4 i=0;i<17.y;i++){x(!17[i].Z&&17[i].X){17[i].X=""}}}}));6 28(m){8.1z=m;8.1S();15[m]=8;15.2g()};13.12({J:28,O:6(){7"@1z "+8.1z+"{"+8.X+"}"},1n:1W,1S:6(){8.X="";8.1N();8.3m();8.X=3j(8.X);f={}},1N:6(){4 3r=[].3t(15.2L);4 M=/@1z\\s+([^{]*)\\{([^@]+\\})\\s*\\}/2I;4 A=/\\4J\\b|^$/i,S=/\\4I\\b/i,P=/\\4H\\b/i;6 3q(c,m){2f.v=m;7 c.19(M,2f)};6 2f(4G,m,c){m=2J(m);2K(m){1o"1O":1o"1w":x(m!=2f.v)7"";1o"1A":7 c}7""};6 2J(m){x(A.B(m))7"1A";1b x(S.B(m))7(P.B(m))?"1A":"1O";1b x(P.B(m))7"1w"};4 1X=8;6 2G(s,p,m,l){4 c="";x(!l){m=2J(s.1z);l=0}x(m=="1A"||m==1X.1z){x(l<3){D(4 i=0;i<s.3s.y;i++){c+=2G(s.3s[i],2e(s.2d,p),m,l+1)}}c+=3l(s.2d?3p(s,p):3r.3h()||"");c=3q(c,1X.1z)}7 c};4 f={};6 3p(s,p){4 u=1I(s.2d,p);x(f[u])7"";f[u]=(s.2H)?"":3o(15.1N(s,p),2e(s.2d,p));7 f[u]};4 U=/(4F\\s*\\(\\s*[\'"]?)([\\w\\.]+[^:\\)]*[\'"]?\\))/2I;6 3o(c,p){7 c.19(U,"$1"+p.1d(0,p.3n("/")+1)+"$2")};D(4 i=0;i<17.y;i++){x(!17[i].2H&&!17[i].Z){8.X+=2G(17[i])}}},3m:6(){8.X=15.2F.1U(8.X)},1n:1W});4 1y=H.Y("1y");4 2b=[];6 3l(c){7 1x.1U(2c.1U(c))};6 2E(m,o){7 1y+(2b.11(m[o])-1)+1y};6 3k(v){7 1y.B(v)?1k(2b[1k(v)]):v};4 1x=z 1V;1x.18(/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//);1x.18(/\'[^\']*\'/,2E);1x.18(/"[^"]*"/,2E);1x.18(/\\s+/," ");1x.18(/@(4E|4D)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->/);4 2c=z 1V;2c.18(/\\\\\'/,"\\\\4C");2c.18(/\\\\"/,"\\\\4B");4 2D=z 1V;2D.18(/\'(\\d+)\'/,3i);6 3j(c){7 2D.1U(c)};6 3i(m,o){7 2b[m[o+1]]};4 2B=[];6 4A(h){2C(h);1Q(1M,"4z",h)};6 1Q(e,t,h){e.4y(t,h);2B.11(F)};6 3g(e,t,h){1l{e.4x(t,h)}1i(i){}};1Q(1M,"4w",6(){4 h;1f(h=2B.3h()){3g(h[0],h[1],h[2])}});6 4v(h,e,c){x(!h.29)h.29={};x(c)h.29[e.2A]=e;1b 2a h.29[e.2A];7 c};1Q(1M,"4u",6(){x(!15.1w)z 28("1w");15.1w.1n()});4 3f=/^\\d+(4t)?$/i;4 4s=/^\\d+%$/;4 4r=6(e,v){x(3f.B(v))7 3e(v);4 s=e.1e.1m;4 r=e.1T.1m;e.1T.1m=e.1v.1m;e.1e.1m=v||0;v=e.1e.4q;e.1e.1m=s;e.1T.1m=r;7 v};6 4p(t){4 e=K.4o(t||"4n");e.1e.X="3c:4m;4l:0;4k:4j;4i:4h;4g:4f(0 0 0 0);1m:-4e";e.3d=1c;7 e};4 27="Z-";6 4d(e){7 e.1v["Z-3c"]=="4c"};6 4b(e,p){7 e.1v[27+p]||e.1v[p]};6 4a(e,p,v){x(e.1v[27+p]==1L){e.1T[27+p]=e.1v[p]}e.1T[p]=v};6 49(o,c,u){4 t=48(6(){1l{x(!o.1S)7;o.1S(o,c,u);3b(t)}1i(i){3b(t)}},10)};1u=1c;x(2z)1k(2y("Z-47.3a",1R));15.1s();x(1K&&1t)1t.1s();x(1H)1j.1s();1b{1J.46(1I("Z-1S.45",1R));1Q(K,"44",6(){x(K.39=="1H")43(1j.1s,0)})}}1i(e){1G("2x [0]: "+e.38)}37{}};',62,353,'||||var||function|return|this|||||||||||||||||||||||||if|length|new||test||for||arguments||cssQuery||constructor|document||||toString|||||||that||cssText|valueOf|ie7||push|specialize|Common|fr|ie7CSS|prototype|styleSheets|add|replace|id|else|true|slice|style|while|match|klass|catch|IE7|eval|try|left|recalc|case|recalcs|thisElement|ancestor|init|ie7HTML|loaded|currentStyle|print|encoder|Quote|media|all|selectors|false|_0|ICommon|httpRequest|alert|complete|makePath|documentElement|isHTML|null|window|getText|screen|cache|addEventHandler|path|load|runtimeStyle|exec|Parser|DUMMY|self|styleSheet|RegExp|st|link|modules|ParseMaster|_1|x01|Function|_2|StyleSheet|elements|delete|_3|safeString|href|getPath|_4|refresh|HEADER|el|ca|apply|getElementsByTagName|addModule|pseudoClasses|String|join|version|escapeChar|body|appVersion|ancestorOf|inherit|_5|Error|loadFile|quirksMode|uniqueID|_6|addRecalc|decoder|_7|parser|_8|disabled|gi|_9|switch|styles|createStyleSheet|visited|isXML|tagName|caching|_10|split|compareNamespace|getDocument|typeof|nextElementSibling|continue|links|className|error|se|callee|ignoreCase|_11|_12|ie7_debug|finally|description|readyState|js|clearInterval|position|ie7_anon|parseInt|PIXEL|removeEventHandler|pop|_13|decode|getString|_14|parse|lastIndexOf|_15|_16|_17|_18|imports|concat|trash|ie7_recalc|addFix|ru|getInlineStyles|innerHTML|Fix|nodeType|remove|parseSelector|ST|select|Array|_19|mimeType|Boolean|isMSIE|firstElementChild|lastChild|previousElementSibling|firstChild|clearCache|ES|_20|_21|_22|_23|_24|DE|viewport|status|scripts|search|location|top|setTimeout|onreadystatechange|htc|addBehavior|quirks|setInterval|addTimer|setOverrideStyle|getDefinedStyle|fixed|isFixed|9999|rect|clip|none|border|block|display|padding|absolute|object|createElement|createTempElement|pixelLeft|getPixelValue|PERCENT|px|onbeforeprint|register|onunload|detachEvent|attachEvent|onresize|addResize|x22|x27|import|namespace|url|ma|bprint|bscreen|ball|write|selectorText|rules|margin|regEscape|item|innerText|getTextContent|scopeName|toUpperCase|compareTagName|ownerDocument|Document|XML|URL|xml|unknown|childElements|lastElementChild|nextSibling|previousSibling|attributeSelectors|AttributeSelector|indexOf|number|reset|successfully|ie5|fixes|instanceOf|Object|common|in|caller|gif|blank|BLANK_GIF|file|loading|responseText|200|send|GET|open|XMLHTTP|ActiveXObject|Microsoft|Msxml2|ScriptEngineMajorVersion|src|ANON|ie7Layout|ms_|ie7_off|CSS1Compat|compatMode|MSIE|navigator|alpha'.split('|'),0,{}))\r
diff --git a/website/inc/IE7/ie7-css-strict.js b/website/inc/IE7/ie7-css-strict.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-css-strict",function(){if(!modules["ie7-css2-selectors"])return;StyleSheet.prototype.specialize({parse:function(){this.inherit();var r=[].concat(this.rules);r.sort(ie7CSS.Rule.compare);this.cssText=r.join("\n")},createRule:function(s,c){var m;if(m=s.match(ie7CSS.PseudoElement.MATCH))return new ie7CSS.PseudoElement(m[1],m[2],c);else if(m=s.match(ie7CSS.DynamicRule.MATCH))return new ie7CSS.DynamicRule(s,m[1],m[2],m[3],c);else return new ie7CSS.Rule(s,c)}});ie7CSS.specialize({apply:function(){this.inherit();this.Rule.MATCH=/([^{}]+)(\{[^{}]*\})/g}});ie7CSS.Rule.compare=function(r1,r2){return r1.specificity-r2.specificity};var N=[],I=/#/g,C=/[.:\[]/g,T=/^\w|[\s>+~]\w/g;ie7CSS.Rule.score=function(s){return(s.match(I)||N).length*10000+(s.match(C)||N).length*100+(s.match(T)||N).length};ie7CSS.Rule.simple=function(){return""};ie7CSS.Rule.prototype.specialize({specificity:0,init:function(){this.specificity=ie7CSS.Rule.score(this.selector)}})});\r
diff --git a/website/inc/IE7/ie7-css2-selectors.js b/website/inc/IE7/ie7-css2-selectors.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-css2-selectors",function(){cssQuery.addModule("css-level2",function(){selectors[">"]=function(r,f,t,n){var e,i,j;for(i=0;i<f.length;i++){var s=childElements(f[i]);for(j=0;(e=s[j]);j++)if(compareTagName(e,t,n))r.push(e)}};selectors["+"]=function(r,f,t,n){for(var i=0;i<f.length;i++){var e=nextElementSibling(f[i]);if(e&&compareTagName(e,t,n))r.push(e)}};selectors["@"]=function(r,f,a){var t=attributeSelectors[a].test;var e,i;for(i=0;(e=f[i]);i++)if(t(e))r.push(e)};pseudoClasses["first-child"]=function(e){return!previousElementSibling(e)};pseudoClasses["lang"]=function(e,c){c=new RegExp("^"+c,"i");while(e&&!e.getAttribute("lang"))e=e.parentNode;return e&&c.test(e.getAttribute("lang"))};AttributeSelector.NS_IE=/\\:/g;AttributeSelector.PREFIX="@";AttributeSelector.tests={};AttributeSelector.replace=function(m,a,n,c,v){var k=this.PREFIX+m;if(!attributeSelectors[k]){a=this.create(a,c||"",v||"");attributeSelectors[k]=a;attributeSelectors.push(a)}return attributeSelectors[k].id};AttributeSelector.parse=function(s){s=s.replace(this.NS_IE,"|");var m;while(m=s.match(this.match)){var r=this.replace(m[0],m[1],m[2],m[3],m[4]);s=s.replace(this.match,r)}return s};AttributeSelector.create=function(p,t,v){var a={};a.id=this.PREFIX+attributeSelectors.length;a.name=p;t=this.tests[t];t=t?t(this.getAttribute(p),getText(v)):false;a.test=new Function("e","return "+t);return a};AttributeSelector.getAttribute=function(n){switch(n.toLowerCase()){case"id":return"e.id";case"class":return"e.className";case"for":return"e.htmlFor";case"href":if(isMSIE){return"String((e.outerHTML.match(/href=\\x22?([^\\s\\x22]*)\\x22?/)||[])[1]||'')"}}return"e.getAttribute('"+n.replace(N,":")+"')"};AttributeSelector.tests[""]=function(a){return a};AttributeSelector.tests["="]=function(a,v){return a+"=="+Quote.add(v)};AttributeSelector.tests["~="]=function(a,v){return"/(^| )"+regEscape(v)+"( |$)/.test("+a+")"};AttributeSelector.tests["|="]=function(a,v){return"/^"+regEscape(v)+"(-|$)/.test("+a+")"};var _6=parseSelector;parseSelector=function(s){return _6(AttributeSelector.parse(s))}});var AttributeSelector=cssQuery.valueOf("AttributeSelector");var H=/a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i;var B1=/\s*\{\s*/,B2=/\s*\}\s*/,C=/\s*\,\s*/;var F=/(.*)(:first-(line|letter))/;StyleSheet.prototype.specialize({parse:function(){this.inherit();var o=ie7CSS.rules.length;var ru=this.cssText.split(B2),r;var se,c,i,j;for(i=0;i<ru.length;i++){r=ru[i].split(B1);se=r[0].split(C);c=r[1];for(j=0;j<se.length;j++){se[j]=c?this.createRule(se[j],c):""}ru[i]=se.join("\n")}this.cssText=ru.join("\n");this.rules=ie7CSS.rules.slice(o)},recalc:function(){var r,i;for(i=0;(r=this.rules[i]);i++)r.recalc()},createRule:function(s,c){if(ie7CSS.UNKNOWN.test(s)){var m;if(m=s.match(PseudoElement.MATCH)){return new PseudoElement(m[1],m[2],c)}else if(m=s.match(DynamicRule.MATCH)){if(!isHTML||!H.test(m)||DynamicRule.COMPLEX.test(m)){return new DynamicRule(s,m[1],m[2],m[3],c)}}else return new Rule(s,c)}return s+" {"+c+"}"}});ie7CSS.specialize({rules:[],pseudoClasses:cssQuery.valueOf("pseudoClasses"),dynamicPseudoClasses:{},cache:cssQuery.valueOf("cache"),Rule:Rule,DynamicRule:DynamicRule,PseudoElement:PseudoElement,DynamicPseudoClass:DynamicPseudoClass,apply:function(){var p=this.pseudoClasses+"|before|after|"+this.dynamicPseudoClasses;p=p.replace(/(link|visited)\|/g,"");this.UNKNOWN=new RegExp("[>+~\[]|([:.])[\\w-()]+\\1|:("+p+")");var c="[^\\s(]+\\s*[+~]|@\\d+|:(";Rule.COMPLEX=new RegExp(c+p+")","g");DynamicRule.COMPLEX=new RegExp(c+this.pseudoClasses+")","g");DynamicRule.MATCH=new RegExp("(.*):("+this.dynamicPseudoClasses+")(.*)");PseudoElement.MATCH=/(.*):(before|after).*/;this.inherit()},recalc:function(){this.screen.recalc();this.inherit()},getText:function(s,p){return httpRequest?(loadFile(s.href,p)||s.cssText):this.inherit(s)},addEventHandler:function(e,t,h){addEventHandler(e,t,h)}});function Rule(s,c){this.id=ie7CSS.rules.length;this.className=Rule.PREFIX+this.id;s=(s).match(F)||s||"*";this.selector=s[1]||s;this.selectorText=Rule.simple(this.selector)+"."+this.className+(s[2]||"");this.cssText=c;this.MATCH=new RegExp("\\s"+this.className+"(\\s|$)","g");ie7CSS.rules.push(this);this.init()};Common.specialize({constructor:Rule,toString:function(){return this.selectorText+" {"+this.cssText+"}"},init:DUMMY,add:function(e){e.className+=" "+this.className},remove:function(e){e.className=e.className.replace(this.MATCH,"$1")},recalc:function(){var m=ie7CSS.cache[" *."+this.className]=cssQuery(this.selector);for(i=0;i<m.length;i++)this.add(m[i])}});Rule.PREFIX="ie7_class";Rule.CHILD=/>/g;Rule.simple=function(s){s=AttributeSelector.parse(s);return s.replace(this.COMPLEX,"").replace(this.CHILD," ")};function DynamicRule(s,a,d,t,c){this.attach=a||"*";this.dynamicPseudoClass=ie7CSS.dynamicPseudoClasses[d];this.target=t;this.inherit(s,c)};Rule.specialize({constructor:DynamicRule,recalc:function(){var m=cssQuery(this.attach);for(var i=0;i<m.length;i++){var t=(this.target)?cssQuery(this.target,m[i]):[m[i]];if(t.length)this.dynamicPseudoClass.apply(m[i],t,this)}}});var A=/^attr/;var U=/^url\s*\(\s*([^)]*)\)$/;var M={before0:"beforeBegin",before1:"afterBegin",after0:"afterEnd",after1:"beforeEnd"};var _5=makePath("ie7-content.htc",path)+"?";HEADER+=".ie7_anon{display:none}";function PseudoElement(s,p,c){this.position=p;var co=c.match(PseudoElement.CONTENT),m,e;if(co){co=co[1];m=co.split(/\s+/);for(var i=0;(e=m[i]);i++){m[i]=A.test(e)?{attr:e.slice(5,-1)}:(e.charAt(0)=="'")?getString(e):decode(e)}co=m}this.content=co;this.inherit(s,decode(c))};Rule.specialize({constructor:PseudoElement,toString:function(){return"."+this.className+"{display:inline}"},init:function(){this.match=cssQuery(this.selector);for(var i=0;i<this.match.length;i++){var r=this.match[i].runtimeStyle;if(!r[this.position])r[this.position]={cssText:""};r[this.position].cssText+=";"+this.cssText;if(this.content!=null)r[this.position].content=this.content}},recalc:function(){if(this.content==null)return;for(var i=0;i<this.match.length;i++){this.create(this.match[i])}},create:function(t){var g=t.runtimeStyle[this.position];if(g){var c=[].concat(g.content||"");for(var j=0;j<c.length;j++){if(typeof c[j]=="object"){c[j]=t.getAttribute(c[j].attr)}}c=c.join("");var u=c.match(U);var h=PseudoElement[u?"OBJECT":"ANON"].replace(/%1/,this.className);var cs=g.cssText.replace(/'/g,'"');var po=M[this.position+Number(t.canHaveChildren)];if(u){var p=document.createElement(h);t.insertAdjacentElement(po,p);p.data=_5;addTimer(p,cs,Quote.remove(u[1]))}else{h=h.replace(/%2/,cs).replace(/%3/,c);t.insertAdjacentHTML(po,h)}t.runtimeStyle[this.position]=null}}});PseudoElement.CONTENT=/content\s*:\s*([^;]*)(;|$)/;PseudoElement.OBJECT="<object class='ie7_anon %1' ie7_anon width=100% height=0 type=text/x-scriptlet>";PseudoElement.ANON="<ie7:! class='ie7_anon %1' ie7_anon style='%2'>%3</ie7:!>";function DynamicPseudoClass(n,a){this.name=n;this.apply=a;this.instances={};ie7CSS.dynamicPseudoClasses[n]=this};Common.specialize({constructor:DynamicPseudoClass,register:function(i){var c=i[2];i.id=c.id+i[0].uniqueID;if(!this.instances[i.id]){var t=i[1],j;for(j=0;j<t.length;j++)c.add(t[j]);this.instances[i.id]=i}},unregister:function(i){if(this.instances[i.id]){var c=i[2];var t=i[1],j;for(j=0;j<t.length;j++)c.remove(t[j]);delete this.instances[i.id]}}});ie7CSS.pseudoClasses.toString=function(){var t=[],p;for(p in this){if(this[p].length>1)p+="\\([^)]*\\)";t.push(p)}return t.join("|")};ie7CSS.pseudoClasses["link"]=function(e){return e.currentStyle["ie7-link"]=="link"};ie7CSS.pseudoClasses["visited"]=function(e){return e.currentStyle["ie7-link"]=="visited"};var _4=(appVersion<5.5)?"onmouseover":"onmouseenter";var _3=(appVersion<5.5)?"onmouseout":"onmouseleave";ie7CSS.dynamicPseudoClasses.toString=ie7CSS.pseudoClasses.toString;var _0=new DynamicPseudoClass("hover",function(e){var i=arguments;ie7CSS.addEventHandler(e,_4,function(){_0.register(i)});ie7CSS.addEventHandler(e,_3,function(){_0.unregister(i)})});var _1=new DynamicPseudoClass("focus",function(e){var i=arguments;ie7CSS.addEventHandler(e,"onfocus",function(){_1.unregister(i);_1.register(i)});ie7CSS.addEventHandler(e,"onblur",function(){_1.unregister(i)});if(e==document.activeElement){_1.register(i)}});var _2=new DynamicPseudoClass("active",function(e){var i=arguments;ie7CSS.addEventHandler(e,"onmousedown",function(){_2.register(i)})});addEventHandler(document,"onmouseup",function(){var i=_2.instances,j;for(j in i)_2.unregister(i[j]);i=_0.instances;for(j in i)if(!i[j][0].contains(event.srcElement))_0.unregister(i[j])});ICommon(AttributeSelector);AttributeSelector.specialize({getAttribute:function(n){switch(n.toLowerCase()){case"class":return"e.className.replace(/\\b\\s*ie7_class\\d+/g,'')";case"src":return"(e.pngSrc||e.src)"}return this.inherit(n)}});encoder.add(/::/,":");safeString.add(/\\([\da-fA-F]{1,4})/,function(m,o){m=m[o+1];return"\\u"+"0000".slice(m.length)+m})});\r
diff --git a/website/inc/IE7/ie7-css3-selectors.js b/website/inc/IE7/ie7-css3-selectors.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-css3-selectors",function(){cssQuery.addModule("css-level3",function(){selectors["~"]=function(r,f,t,n){var e,i;for(i=0;(e=f[i]);i++){while(e=nextElementSibling(e)){if(compareTagName(e,t,n))r.push(e)}}};pseudoClasses["contains"]=function(e,t){t=new RegExp(regEscape(getText(t)));return t.test(getTextContent(e))};pseudoClasses["root"]=function(e){return e==getDocument(e).documentElement};pseudoClasses["empty"]=function(e){var n,i;for(i=0;(n=e.childNodes[i]);i++){if(thisElement(n)||n.nodeType==3)return false}return true};pseudoClasses["last-child"]=function(e){return!nextElementSibling(e)};pseudoClasses["only-child"]=function(e){e=e.parentNode;return firstElementChild(e)==lastElementChild(e)};pseudoClasses["not"]=function(e,s){var n=cssQuery(s,getDocument(e));for(var i=0;i<n.length;i++){if(n[i]==e)return false}return true};pseudoClasses["nth-child"]=function(e,a){return nthChild(e,a,previousElementSibling)};pseudoClasses["nth-last-child"]=function(e,a){return nthChild(e,a,nextElementSibling)};pseudoClasses["target"]=function(e){return e.id==location.hash.slice(1)};pseudoClasses["checked"]=function(e){return e.checked};pseudoClasses["enabled"]=function(e){return e.disabled===false};pseudoClasses["disabled"]=function(e){return e.disabled};pseudoClasses["indeterminate"]=function(e){return e.indeterminate};AttributeSelector.tests["^="]=function(a,v){return"/^"+regEscape(v)+"/.test("+a+")"};AttributeSelector.tests["$="]=function(a,v){return"/"+regEscape(v)+"$/.test("+a+")"};AttributeSelector.tests["*="]=function(a,v){return"/"+regEscape(v)+"/.test("+a+")"};function nthChild(e,a,t){switch(a){case"n":return true;case"even":a="2n";break;case"odd":a="2n+1"}var ch=childElements(e.parentNode);function _5(i){var i=(t==nextElementSibling)?ch.length-i:i-1;return ch[i]==e};if(!isNaN(a))return _5(a);a=a.split("n");var m=parseInt(a[0]);var s=parseInt(a[1]);if((isNaN(m)||m==1)&&s==0)return true;if(m==0&&!isNaN(s))return _5(s);if(isNaN(s))s=0;var c=1;while(e=t(e))c++;if(isNaN(m)||m==1)return(t==nextElementSibling)?(c<=s):(s>=c);return(c%m)==s}});var firstElementChild=cssQuery.valueOf("firstElementChild");ie7CSS.pseudoClasses["root"]=function(e){return(e==viewport)||(!isHTML&&e==firstElementChild(body))};var _4=new ie7CSS.DynamicPseudoClass("checked",function(e){if(typeof e.checked!="boolean")return;var i=arguments;ie7CSS.addEventHandler(e,"onpropertychange",function(){if(event.propertyName=="checked"){if(e.checked)_4.register(i);else _4.unregister(i)}});if(e.checked)_4.register(i)});var _3=new ie7CSS.DynamicPseudoClass("enabled",function(e){if(typeof e.disabled!="boolean")return;var i=arguments;ie7CSS.addEventHandler(e,"onpropertychange",function(){if(event.propertyName=="disabled"){if(!e.isDisabled)_3.register(i);else _3.unregister(i)}});if(!e.isDisabled)_3.register(i)});var _2=new ie7CSS.DynamicPseudoClass("disabled",function(e){if(typeof e.disabled!="boolean")return;var i=arguments;ie7CSS.addEventHandler(e,"onpropertychange",function(){if(event.propertyName=="disabled"){if(e.isDisabled)_2.register(i);else _2.unregister(i)}});if(e.isDisabled)_2.register(i)});var _1=new ie7CSS.DynamicPseudoClass("indeterminate",function(e){if(typeof e.indeterminate!="boolean")return;var i=arguments;ie7CSS.addEventHandler(e,"onpropertychange",function(){if(event.propertyName=="indeterminate"){if(e.indeterminate)_1.register(i);else _1.unregister(i)}});ie7CSS.addEventHandler(e,"onclick",function(){_1.unregister(i)})});var _0=new ie7CSS.DynamicPseudoClass("target",function(e){var i=arguments;if(!e.tabIndex)e.tabIndex=0;ie7CSS.addEventHandler(document,"onpropertychange",function(){if(event.propertyName=="activeElement"){if(e.id==location.hash.slice(1))_0.register(i);else _0.unregister(i)}});if(e.id==location.hash.slice(1))_0.register(i)});decoder.add(/\|/,"\\:")});\r
diff --git a/website/inc/IE7/ie7-dhtml.js b/website/inc/IE7/ie7-dhtml.js
--- /dev/null
@@ -0,0 +1,57 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-dhtml", function() {\r
+\r
+/* ---------------------------------------------------------------------\r
+ This module is still in development and should not be used.\r
+--------------------------------------------------------------------- */\r
+\r
+ie7CSS.specialize("recalc", function() {\r
+ this.inherit();\r
+ for (var i = 0; i < this.recalcs.length; i++) {\r
+ var $recalc = this.recalcs[i];\r
+ for (var j = 0; i < $recalc[3].length; i++) {\r
+ _addPropertyChangeHandler($recalc[3][j], _getPropertyName($recalc[2]), $recalc[1]);\r
+ }\r
+ }\r
+});\r
+\r
+// constants\r
+var _PATTERNS = {\r
+ width: "(width|paddingLeft|paddingRight|borderLeftWidth|borderRightWidth|borderLeftStyle|borderRightStyle)",\r
+ height: "(height|paddingTop|paddingBottom|borderTopHeight|borderBottomHeight|borderTopStyle|borderBottomStyle)"\r
+};\r
+var _PROPERTY_NAMES = {\r
+ width: "fixedWidth",\r
+ height: "fixedHeight",\r
+ right: "width",\r
+ bottom: "height"\r
+};\r
+var _DASH_LETTER = /-(\w)/g;\r
+var _PROPERTY_NAME = /\w+/;\r
+\r
+function _addPropertyChangeHandler($element, $propertyName, $fix) {\r
+ addEventHandler($element, "onpropertychange", function() {\r
+ if (_getPattern($propertyName).test(event.propertyName)) {\r
+ _reset($element, $propertyName);\r
+ $fix($element);\r
+ }\r
+ });\r
+};\r
+function _upper($match, $letter) {return $letter.toUpperCase()};\r
+function _getPropertyName($pattern) {\r
+ return String(String($pattern).toLowerCase().replace(_DASH_LETTER, _upper).match(_PROPERTY_NAME));\r
+};\r
+function _getPattern($propertyName) {\r
+ return eval("/^style." + (_PATTERNS[$propertyName] || $propertyName) + "$/");\r
+};\r
+function _reset($element, $propertyName) {\r
+ $element.runtimeStyle[$propertyName] = "";\r
+ $propertyName = _PROPERTY_NAMES[$propertyName]\r
+ if ($propertyName) $element.runtimeStyle[$propertyName] = "";\r
+};\r
+\r
+});\r
diff --git a/website/inc/IE7/ie7-dynamic-attributes.js b/website/inc/IE7/ie7-dynamic-attributes.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-dynamic-attributes",function(){if(!modules["ie7-css2-selectors"])return;var attributeSelectors=cssQuery.valueOf("attributeSelectors");var parseSelector=cssQuery.valueOf("parseSelector");function DynamicAttribute(s,a,d,t,c){this.attach=a||"*";parseSelector(d);this.dynamicAttribute=attributeSelectors["@"+d];this.target=t;this.inherit(s,c)};ie7CSS.Rule.specialize({constructor:DynamicAttribute,recalc:function(){var m=cssQuery(this.attach);for(var i=0;i<m.length;i++){var t=(this.target)?cssQuery(this.target,m[i]):[m[i]];if(t.length)this.apply(m[i],t)}},apply:function(e,t){var self=this;addEventHandler(e,"onpropertychange",function(){if(event.propertyName==self.dynamicAttribute.name)self.test(e,t)});this.test(e,t)},test:function(e,t){var a=this.dynamicAttribute.test(e)?"add":"remove";for(var i=0;(e=t[i]);i++)this[a](e)}});DynamicAttribute.MATCH=/(.*)(\[[^\]]*\])(.*)/;StyleSheet.prototype.specialize({createRule:function(s,c){var m;if(m=s.match(DynamicAttribute.MATCH)){return new DynamicAttribute(s,m[1],m[2],m[3],c)}else return this.inherit(s,c)}})});\r
diff --git a/website/inc/IE7/ie7-fixed.js b/website/inc/IE7/ie7-fixed.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-fixed",function(){ie7CSS.addRecalc("position","fixed",_6,"absolute");ie7CSS.addRecalc("background(-attachment)?","[^};]*fixed",_7);var _10=(quirksMode)?"body":"documentElement";var _8=function(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundRepeat="no-repeat";body.runtimeStyle.backgroundImage="url("+BLANK_GIF+")"}body.runtimeStyle.backgroundAttachment="fixed"}_8=DUMMY};var _0=createTempElement("img");function _1(f){return _2.exec(String(f))};var _2=new ParseMaster;_2.add(/Left/,"Top");_2.add(/left/,"top");_2.add(/Width/,"Height");_2.add(/width/,"height");_2.add(/right/,"bottom");_2.add(/X/,"Y");function _3(e){return(e)?isFixed(e)||_3(e.parentElement):false};function setExpression(e,p,ex){setTimeout("document.all."+e.uniqueID+".runtimeStyle.setExpression('"+p+"','"+ex+"')",0)};function _7(e){if(register(_7,e,e.currentStyle.backgroundAttachment=="fixed"&&!e.contains(body))){_8();backgroundLeft(e);backgroundTop(e);_9(e)}};function _9(e){_0.src=e.currentStyle.backgroundImage.slice(5,-2);var p=(e.canHaveChildren)?e:e.parentElement;p.appendChild(_0);setOffsetLeft(e);setOffsetTop(e);p.removeChild(_0)};function backgroundLeft(e){e.style.backgroundPositionX=e.currentStyle.backgroundPositionX;if(!_3(e)){var ex="(parseInt(runtimeStyle.offsetLeft)+document."+_10+".scrollLeft)||0";setExpression(e,"backgroundPositionX",ex)}};eval(_1(backgroundLeft));function setOffsetLeft(e){var p=_3(e)?"backgroundPositionX":"offsetLeft";e.runtimeStyle[p]=getOffsetLeft(e,e.style.backgroundPositionX)-e.getBoundingClientRect().left-e.clientLeft+2};eval(_1(setOffsetLeft));function getOffsetLeft(e,p){switch(p){case"left":case"top":return 0;case"right":case"bottom":return viewport.clientWidth-_0.offsetWidth;case"center":return(viewport.clientWidth-_0.offsetWidth)/2;default:if(PERCENT.test(p)){return parseInt((viewport.clientWidth-_0.offsetWidth)*parseFloat(p)/100)}_0.style.left=p;return _0.offsetLeft}};eval(_1(getOffsetLeft));function _6(e){if(register(_6,e,isFixed(e))){setOverrideStyle(e,"position","absolute");setOverrideStyle(e,"left",e.currentStyle.left);setOverrideStyle(e,"top",e.currentStyle.top);_8();if(ie7Layout)ie7Layout.fixRight(e);_5(e)}};function _5(e,r){positionTop(e,r);positionLeft(e,r,true);if(!e.runtimeStyle.autoLeft&&e.currentStyle.marginLeft=="auto"&&e.currentStyle.right!="auto"){var l=viewport.clientWidth-getPixelWidth(e,e.currentStyle.right)-getPixelWidth(e,e.runtimeStyle._12)-e.clientWidth;if(e.currentStyle.marginRight=="auto")l=parseInt(l/2);if(_3(e.offsetParent))e.runtimeStyle.pixelLeft+=l;else e.runtimeStyle.shiftLeft=l}clipWidth(e);clipHeight(e)};function clipWidth(e){if(e.currentStyle.width!="auto"){var r=e.getBoundingClientRect();var w=e.offsetWidth-viewport.clientWidth+r.left-2;if(w>=0){w=Math.max(getPixelValue(e,e.currentStyle.width)-w,0);setOverrideStyle(e,"width",w)}}};eval(_1(clipWidth));function positionLeft(e,r){if(!r&&PERCENT.test(e.currentStyle.width)){e.runtimeStyle.fixWidth=e.currentStyle.width}if(e.runtimeStyle.fixWidth){e.runtimeStyle.width=getPixelWidth(e,e.runtimeStyle.fixWidth)}if(r){if(!e.runtimeStyle.autoLeft)return}else{e.runtimeStyle.shiftLeft=0;e.runtimeStyle._12=e.currentStyle.left;e.runtimeStyle.autoLeft=e.currentStyle.right!="auto"&&e.currentStyle.left=="auto"}e.runtimeStyle.left="";e.runtimeStyle.screenLeft=getScreenLeft(e);e.runtimeStyle.pixelLeft=e.runtimeStyle.screenLeft;if(!r&&!_3(e.offsetParent)){var ex="runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document."+_10+".scrollLeft";setExpression(e,"pixelLeft",ex)}};eval(_1(positionLeft));function getScreenLeft(e){var s=e.offsetLeft,n=1;if(e.runtimeStyle.autoLeft){s=viewport.clientWidth-e.offsetWidth-getPixelWidth(e,e.currentStyle.right)}if(e.currentStyle.marginLeft!="auto"){s-=getPixelWidth(e,e.currentStyle.marginLeft)}while(e=e.offsetParent){if(e.currentStyle.position!="static")n=-1;s+=e.offsetLeft*n}return s};eval(_1(getScreenLeft));function getPixelWidth(e,v){if(PERCENT.test(v))return parseInt(parseFloat(v)/100*viewport.clientWidth);return getPixelValue(e,v)};eval(_1(getPixelWidth));function _11(){var e=_7.elements;for(var i in e)_9(e[i]);e=_6.elements;for(i in e){_5(e[i],true);_5(e[i],true)}_4=0};var _4;addResize(function(){if(!_4)_4=setTimeout(_11,0)})});
\ No newline at end of file
diff --git a/website/inc/IE7/ie7-graphics.js b/website/inc/IE7/ie7-graphics.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-graphics",function(){if(appVersion<5.5)return;var A="DXImageTransform.Microsoft.AlphaImageLoader";var F="progid:"+A+"(src='%1',sizingMethod='scale')";var _3=new RegExp((window.IE7_PNG_SUFFIX||"-trans.png")+"$","i");var _0=[];function _2(e){var f=e.filters[A];if(f){f.src=e.src;f.enabled=true}else{e.runtimeStyle.filter=F.replace(/%1/,e.src);_0.push(e)}e.src=BLANK_GIF};function _5(e){e.src=e.pngSrc;e.filters[A].enabled=false};ie7CSS.addFix(/opacity\s*:\s*([\d.]+)/,function(m,o){return"zoom:1;filter:progid:DXImageTransform.Microsoft.Alpha(opacity="+((parseFloat(m[o+1])*100)||1)+")"});var B=/background(-image)?\s*:\s*([^\(};]*)url\(([^\)]+)\)([^;}]*)/;ie7CSS.addFix(B,function(m,o){var u=getString(m[o+3]);return _3.test(u)?"filter:"+F.replace(/scale/,"crop").replace(/%1/,u)+";zoom:1;background"+(m[o+1]||"")+":"+(m[o+2]||"")+"none"+(m[o+4]||""):m[o]});if(ie7HTML){ie7HTML.addRecalc("img,input",function(e){if(e.tagName=="INPUT"&&e.type!="image")return;_4(e);addEventHandler(e,"onpropertychange",function(){if(!_1&&event.propertyName=="src"&&e.src.indexOf(BLANK_GIF)==-1)_4(e)})});var B64=/^data:.*;base64/i;var _7=makePath("ie7-base64.php",path);function _4(e){if(_3.test(e.src)){var i=new Image(e.width,e.height);i.onload=function(){e.width=i.width;e.height=i.height;i=null};i.src=e.src;e.pngSrc=e.src;_2(e)}else if(B64.test(e.src)){e.src=_7+"?"+e.src.slice(5)}};var I=/^image/i;var _6=makePath("ie7-object.htc",path);ie7HTML.addRecalc("object",function(e){if(I.test(e.type)){var o=document.createElement("<object type=text/x-scriptlet>");o.style.width=e.currentStyle.width;o.style.height=e.currentStyle.height;o.data=_6;var u=makePath(e.data,getPath(location.href));e.parentNode.replaceChild(o,e);cssQuery.clearCache("object");addTimer(o,"",u);return o}})}var _1=false;addEventHandler(window,"onbeforeprint",function(){_1=true;for(var i=0;i<_0.length;i++)_5(_0[i])});addEventHandler(window,"onafterprint",function(){for(var i=0;i<_0.length;i++)_2(_0[i]);_1=false})});\r
diff --git a/website/inc/IE7/ie7-html4.js b/website/inc/IE7/ie7-html4.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-html4",function(){if(!isHTML)return;HEADER+="h1{font-size:2em}h2{font-size:1.5em;}h3{font-size:1.17em;}"+"h4{font-size:1em}h5{font-size:.83em}h6{font-size:.67em}";var _0={};ie7HTML=new(Fix.specialize({init:DUMMY,addFix:function(){this.fixes.push(arguments)},apply:function(){for(var i=0;i<this.fixes.length;i++){var m=cssQuery(this.fixes[i][0]);var f=this.fixes[i][1]||_1;for(var j=0;j<m.length;j++)f(m[j])}},addRecalc:function(){this.recalcs.push(arguments)},recalc:function(){for(var i=0;i<this.recalcs.length;i++){var m=cssQuery(this.recalcs[i][0]);var r=this.recalcs[i][1],e;var k=Math.pow(2,i);for(var j=0;(e=m[j]);j++){var u=e.uniqueID;if((_0[u]&k)==0){e=r(e)||e;_0[u]|=k}}}}}));ie7HTML.addFix("abbr");ie7HTML.addRecalc("label",function(e){if(!e.htmlFor){var f=cssQuery("input,textarea",e)[0];if(f){addEventHandler(e,"onclick",function(){f.click()})}}});ie7HTML.addRecalc("button,input",function(e){if(e.tagName=="BUTTON"){var m=e.outerHTML.match(/ value="([^"]*)"/i);e.runtimeStyle.value=(m)?m[1]:""}if(e.type=="submit"){addEventHandler(e,"onclick",function(){e.runtimeStyle.clicked=true;setTimeout("document.all."+e.uniqueID+".runtimeStyle.clicked=false",1)})}});var U=/^(submit|reset|button)$/;ie7HTML.addRecalc("form",function(e){addEventHandler(e,"onsubmit",function(){for(var i=0;i<e.length;i++){if(_2(e[i])){e[i].disabled=true;setTimeout("document.all."+e[i].uniqueID+".disabled=false",1)}else if(e[i].tagName=="BUTTON"&&e[i].type=="submit"){setTimeout("document.all."+e[i].uniqueID+".value='"+e[i].value+"'",1);e[i].value=e[i].runtimeStyle.value}}})});function _2(e){return U.test(e.type)&&!e.disabled&&!e.runtimeStyle.clicked};ie7HTML.addRecalc("img",function(e){if(e.alt&&!e.title)e.title=""});var P=(appVersion<5.5)?"HTML:":"";function _1(e){var f=document.createElement("<"+P+e.outerHTML.slice(1));if(e.outerHTML.slice(-2)!="/>"){var en="</"+e.tagName+">",n;while((n=e.nextSibling)&&n.outerHTML!=en){f.appendChild(n)}if(n)n.removeNode()}e.parentNode.replaceChild(f,e)}});\r
diff --git a/website/inc/IE7/ie7-ie5.js b/website/inc/IE7/ie7-ie5.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+if(appVersion<5.5){ANON="HTML:!";var ap=function(f,o,a){f.apply(o,a)};if(''.replace(/^/,String)){var _0=String.prototype.replace;var _1=function(e,r){var m,n="",s=this;while(s&&(m=e.exec(s))){n+=s.slice(0,m.index)+ap(r,this,m);s=s.slice(m.lastIndex)}return n+s};String.prototype.replace=function(e,r){this.replace=(typeof r=="function")?_1:_0;return this.replace(e,r)}}if(!Function.apply){var APPLY="apply-"+Number(new Date);ap=function(f,o,a){var r;o[APPLY]=f;switch(a.length){case 0:r=o[APPLY]();break;case 1:r=o[APPLY](a[0]);break;case 2:r=o[APPLY](a[0],a[1]);break;case 3:r=o[APPLY](a[0],a[1],a[2]);break;case 4:r=o[APPLY](a[0],a[1],a[2],a[3]);break;default:var aa=[],i=a.length-1;do aa[i]="a["+i+"]";while(i--);eval("r=o[APPLY]("+aa+")")}delete o[APPLY];return r};ICommon.valueOf.prototype.inherit=function(){return ap(arguments.callee.caller.ancestor,this,arguments)}}if(![].push)Array.prototype.push=function(){for(var i=0;i<arguments.length;i++){this[this.length]=arguments[i]}return this.length};if(![].pop)Array.prototype.pop=function(){var i=this[this.length-1];this.length--;return i};if(isHTML){HEADER+="address,blockquote,body,dd,div,dt,fieldset,form,"+"frame,frameset,h1,h2,h3,h4,h5,h6,iframe,noframes,object,p,"+"hr,applet,center,dir,menu,pre,dl,li,ol,ul{display:block}"}}\r
diff --git a/website/inc/IE7/ie7-layout.js b/website/inc/IE7/ie7-layout.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-layout",function(){ie7Layout=this;HEADER+="*{boxSizing:content-box}";this.hasLayout=(appVersion<5.5)?function(e){return e.clientWidth}:function(e){return e.currentStyle.hasLayout};this.boxSizing=function(e){if(!ie7Layout.hasLayout(e)){e.style.height="0cm";if(e.currentStyle.verticalAlign=="auto")e.runtimeStyle.verticalAlign="top";_1(e)}};function _1(e){if(e!=viewport&&e.currentStyle.position!="absolute"){collapseMarginTop(e);collapseMarginBottom(e)}};var firstElementChild=cssQuery.valueOf("firstElementChild");var lastElementChild=cssQuery.valueOf("lastElementChild");function collapseMarginTop(e){if(!e.runtimeStyle.marginTop){var p=e.parentElement;if(p&&ie7Layout.hasLayout(p)&&e==firstElementChild(p))return;var f=firstElementChild(e);if(f&&f.currentStyle.styleFloat=="none"&&ie7Layout.hasLayout(f)){collapseMarginTop(f);m=_3(e,e.currentStyle.marginTop);c=_3(f,f.currentStyle.marginTop);if(m<0||c<0){e.runtimeStyle.marginTop=m+c}else{e.runtimeStyle.marginTop=Math.max(c,m)}f.runtimeStyle.marginTop="0px"}}};eval(String(collapseMarginTop).replace(/Top/g,"Bottom").replace(/first/g,"last"));function _3(e,v){return(v=="auto")?0:getPixelValue(e,v)};var U=/^[.\d][\w%]*$/,A=/^(auto|0cm)$/,N="[.\\d]";var applyWidth,applyHeight;function borderBox(e){applyWidth(e);applyHeight(e)};function fixWidth(H){applyWidth=function(e){if(!PERCENT.test(e.currentStyle.width))fixWidth(e);_1(e)};function fixWidth(e,v){if(!e.runtimeStyle.fixedWidth){if(!v)v=e.currentStyle.width;e.runtimeStyle.fixedWidth=(U.test(v))?Math.max(0,getFixedWidth(e,v)):v;setOverrideStyle(e,"width",e.runtimeStyle.fixedWidth)}};function layoutWidth(e){if(!isFixed(e)){var l=e.offsetParent;while(l&&!ie7Layout.hasLayout(l))l=l.offsetParent}return(l||viewport).clientWidth};function getPixelWidth(e,v){if(PERCENT.test(v))return parseInt(parseFloat(v)/100*layoutWidth(e));return getPixelValue(e,v)};var getFixedWidth=function(e,v){var b=e.currentStyle["box-sizing"]=="border-box";var a=0;if(quirksMode&&!b)a+=getBorderWidth(e)+getPaddingWidth(e);else if(!quirksMode&&b)a-=getBorderWidth(e)+getPaddingWidth(e);return getPixelWidth(e,v)+a};function getBorderWidth(e){return e.offsetWidth-e.clientWidth};function getPaddingWidth(e){return getPixelWidth(e,e.currentStyle.paddingLeft)+getPixelWidth(e,e.currentStyle.paddingRight)};eval(String(getPaddingWidth).replace(/padding/g,"margin").replace(/Padding/g,"Margin"));HEADER+="*{minWidth:none;maxWidth:none;min-width:none;max-width:none}";function minWidth(e){if(e.currentStyle["min-width"]!=null){e.style.minWidth=e.currentStyle["min-width"]}if(register(minWidth,e,e.currentStyle.minWidth!="none")){ie7Layout.boxSizing(e);fixWidth(e);resizeWidth(e)}};eval(String(minWidth).replace(/min/g,"max"));ie7Layout.minWidth=minWidth;ie7Layout.maxWidth=maxWidth;function resizeWidth(e){var r=e.getBoundingClientRect();var w=r.right-r.left;if(e.currentStyle.minWidth!="none"&&w<=getFixedWidth(e,e.currentStyle.minWidth)){e.runtimeStyle.width=getFixedWidth(e,e.currentStyle.minWidth)}else if(e.currentStyle.maxWidth!="none"&&w>=getFixedWidth(e,e.currentStyle.maxWidth)){e.runtimeStyle.width=getFixedWidth(e,e.currentStyle.maxWidth)}else{e.runtimeStyle.width=e.runtimeStyle.fixedWidth}};function fixRight(e){if(register(fixRight,e,/^(fixed|absolute)$/.test(e.currentStyle.position)&&getDefinedStyle(e,"left")!="auto"&&getDefinedStyle(e,"right")!="auto"&&A.test(getDefinedStyle(e,"width")))){resizeRight(e);ie7Layout.boxSizing(e)}};ie7Layout.fixRight=fixRight;function resizeRight(e){var l=getPixelWidth(e,e.runtimeStyle._4||e.currentStyle.left);var w=layoutWidth(e)-getPixelWidth(e,e.currentStyle.right)-l-getMarginWidth(e);if(parseInt(e.runtimeStyle.width)==w)return;e.runtimeStyle.width="";if(isFixed(e)||H||e.offsetWidth<w){if(!quirksMode)w-=getBorderWidth(e)+getPaddingWidth(e);if(w<0)w=0;e.runtimeStyle.fixedWidth=w;setOverrideStyle(e,"width",w)}};var _2=0;addResize(function(){var i,w=(_2<viewport.clientWidth);_2=viewport.clientWidth;for(i in minWidth.elements){var e=minWidth.elements[i];var f=(parseInt(e.runtimeStyle.width)==getFixedWidth(e,e.currentStyle.minWidth));if(w&&f)e.runtimeStyle.width="";if(w==f)resizeWidth(e)}for(i in maxWidth.elements){var e=maxWidth.elements[i];var f=(parseInt(e.runtimeStyle.width)==getFixedWidth(e,e.currentStyle.maxWidth));if(!w&&f)e.runtimeStyle.width="";if(w!=f)resizeWidth(e)}for(i in fixRight.elements)resizeRight(fixRight.elements[i])});if(window.IE7_BOX_MODEL!==false){ie7CSS.addRecalc("width",N,quirksMode?applyWidth:_1)}ie7CSS.addRecalc("min-width",N,minWidth);ie7CSS.addRecalc("max-width",N,maxWidth);ie7CSS.addRecalc("right",N,fixRight)};ie7CSS.addRecalc("border-spacing",N,function(e){if(e.currentStyle.borderCollapse!="collapse"){e.cellSpacing=getPixelValue(e,e.currentStyle["border-spacing"])}});ie7CSS.addRecalc("box-sizing","content-box",this.boxSizing);ie7CSS.addRecalc("box-sizing","border-box",borderBox);var _0=new ParseMaster;_0.add(/Width/,"Height");_0.add(/width/,"height");_0.add(/Left/,"Top");_0.add(/left/,"top");_0.add(/Right/,"Bottom");_0.add(/right/,"bottom");eval(_0.exec(String(fixWidth)));fixWidth();fixHeight(true)});\r
diff --git a/website/inc/IE7/ie7-load.htc b/website/inc/IE7/ie7-load.htc
--- /dev/null
@@ -0,0 +1 @@
+<component lightweight="true"><attach event="ondocumentready" onevent="IE7.init()"/></component>\r
diff --git a/website/inc/IE7/ie7-object.htc b/website/inc/IE7/ie7-object.htc
--- /dev/null
@@ -0,0 +1,12 @@
+<html>\r
+<!--\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+-->\r
+<head>\r
+<style type="text/css">body{margin:0}</style>\r
+<script type="text/javascript">public_description=new function(){var l=false;this.ie7_anon=true;this.load=function(o,c,u){if(l)return;l=true;function _0(t,p){t.style[p]=o.currentStyle[p]};var p=o;while(p&&p.currentStyle.backgroundColor=="transparent"){p=p.parentElement}if(p)body.style.backgroundColor=p.currentStyle.backgroundColor;_0(body,"backgroundImage");_0(body,"backgroundRepeat");_0(body,"backgroundPositionX");_0(body,"backgroundPositionY");_0(body,"fontFamily");_0(body,"fontSize");_0(wrapper,"paddingTop");_0(wrapper,"paddingRight");_0(wrapper,"paddingBottom");_0(wrapper,"paddingLeft");image.width=o.clientWidth;image.height=o.clientHeight;var B64=/^data:.*;base64/i,P=/.png$/i;if(B64.test(u))u="ie7-base64.php"+"?"+u.slice(5);if(P.test(u)&&!/MSIE 5.0/.test(navigator.userAgent)){image.src="blank.gif";image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+u+"',sizingMethod='scale')"}else{image.src=u}o.style.width=body.scrollWidth;o.style.height=body.scrollHeight}};</script>\r
+</head>\r
+<body id="body"><div id="wrapper"><img id="image"></div></body>\r
+</html>\r
diff --git a/website/inc/IE7/ie7-overflow.js b/website/inc/IE7/ie7-overflow.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-overflow",function(){var S={backgroundColor:"transparent",backgroundImage:"none",backgroundPositionX:null,backgroundPositionY:null,backgroundRepeat:null,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none",borderLeftWidth:0,height:null,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,width:"100%"};function _3(p,s,t){t.style[p]=s.currentStyle[p];if(S[p]!=null){s.runtimeStyle[p]=S[p]}};ie7CSS.addRecalc("overflow","visible",function(e){if(e.parentNode.ie7_wrapper)return;if(ie7Layout&&e.currentStyle["max-height"]!="auto"){ie7Layout.maxHeight(e)}if(e.currentStyle.marginLeft=="auto")e.style.marginLeft=0;if(e.currentStyle.marginRight=="auto")e.style.marginRight=0;var w=document.createElement(ANON);w.ie7_wrapper=true;for(var p in S)_3(p,e,w);w.style.display="block";w.style.position="relative";e.runtimeStyle.position="absolute";e.parentNode.insertBefore(w,e);w.appendChild(e)});cssQuery.addModule("ie7-overflow",function(){function _0(e){return(e&&e.ie7_wrapper)?e.firstChild:e};var _2=previousElementSibling;previousElementSibling=function(e){return _0(_2(e))};var _1=nextElementSibling;nextElementSibling=function(e){return _0(_1(e))};selectors[" "]=function(r,f,t,n){var e,i,j;for(i=0;i<f.length;i++){var s=getElementsByTagName(f[i],t,n);for(j=0;(e=_0(s[j]));j++){if(thisElement(e)&&(!n||compareNamespace(e,n)))r.push(e)}}};selectors[">"]=function(r,f,t,n){var e,i,j;for(i=0;i<f.length;i++){var s=childElements(f[i]);for(j=0;(e=_0(s[j]));j++){if(compareTagName(e,t,n))r.push(e)}}}})});\r
diff --git a/website/inc/IE7/ie7-quirks.js b/website/inc/IE7/ie7-quirks.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-quirks",function(){if(quirksMode){var F="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<F.length;i++){F[F[i]]=F[i-1]||"0.67em"}ie7CSS.addFix(new RegExp("(font(-size)?\\s*:\\s*)([\\w\\-\\.]+)"),function(m,o){return m[o+1]+(F[m[o+3]]||m[o+3])});if(appVersion<6){var N=/^\-/,L=/(em|ex)$/i;var EM=/em$/i,EX=/ex$/i;function _2(e){var s=1;_0.style.fontFamily=e.currentStyle.fontFamily;_0.style.lineHeight=e.currentStyle.lineHeight;while(e!=body){var f=e.currentStyle["ie7-font-size"];if(f){if(EM.test(f))s*=parseFloat(f);else if(PERCENT.test(f))s*=(parseFloat(f)/100);else if(EX.test(f))s*=(parseFloat(f)/2);else{_0.style.fontSize=f;return 1}}e=e.parentElement}return s};var _0=createTempElement();getPixelValue=function(e,v){if(PIXEL.test(v||0))return parseInt(v||0);var scale=N.test(v)?-1:1;if(L.test(v))scale*=_2(e);_0.style.width=(scale<0)?v.slice(1):v;body.appendChild(_0);v=scale*_0.offsetWidth;_0.removeNode();return parseInt(v)};HEADER=HEADER.replace(/(font(-size)?\s*:\s*([^\s;}\/]*))/gi,"ie7-font-size:$3;$1");ie7CSS.addFix(/cursor\s*:\s*pointer/,"cursor:hand");ie7CSS.addFix(/display\s*:\s*list-item/,"display:block")}function getPaddingWidth(e){return getPixelValue(e,e.currentStyle.paddingLeft)+getPixelValue(e,e.currentStyle.paddingRight)};function _1(e){if(appVersion<5.5&&ie7Layout)ie7Layout.boxSizing(e.parentElement);var p=e.parentElement;var m=p.offsetWidth-e.offsetWidth-getPaddingWidth(p);var a=(e.currentStyle["ie7-margin"]&&e.currentStyle.marginRight=="auto")||e.currentStyle["ie7-margin-right"]=="auto";switch(p.currentStyle.textAlign){case"right":m=(a)?parseInt(m/2):0;e.runtimeStyle.marginRight=parseInt(m)+"px";break;case"center":if(a)m=0;default:if(a)m=parseInt(m/2);e.runtimeStyle.marginLeft=parseInt(m)+"px"}};ie7CSS.addRecalc("margin(-left|-right)?","[^};]*auto",function(e){if(register(_1,e,e.parentElement&&e.currentStyle.display=="block"&&e.currentStyle.marginLeft=="auto"&&e.currentStyle.position!="absolute")){_1(e)}});addResize(function(){for(var i in _1.elements){e=_1.elements[i];e.runtimeStyle.marginLeft=e.runtimeStyle.marginRight="";_1(e)}})}});\r
diff --git a/website/inc/IE7/ie7-recalc.js b/website/inc/IE7/ie7-recalc.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-recalc",function(){C=/\sie7_class\d+/g;function _0(e){e.className=e.className.replace(C,"")};function _1(e){e.runtimeStyle.cssText=""};ie7CSS.specialize({elements:{},handlers:[],reset:function(){this.removeEventHandlers();var e=this.elements;for(var i in e)_1(e[i]);this.elements={};if(this.Rule){var e=this.Rule.elements;for(var i in e)_0(e[i]);this.Rule.elements={}}},reload:function(){ie7CSS.rules=[];this.getInlineStyles();this.screen.load();if(this.print)this.print.load();this.refresh();this.trash()},addRecalc:function(p,t,h,r){this.inherit(p,t,function(e){h(e);ie7CSS.elements[e.uniqueID]=e},r)},recalc:function(){this.reset();this.inherit()},addEventHandler:function(e,t,h){e.attachEvent(t,h);this.handlers.push(arguments)},removeEventHandlers:function(){var h;while(h=this.handlers.pop()){removeEventHandler(h[0],h[1],h[2])}},getInlineStyles:function(){var st=document.getElementsByTagName("style"),s;for(var i=st.length-1;(s=st[i]);i--){if(!s.disabled&&!s.ie7){var c=s.c||s.innerHTML;this.styles.push(c);s.c=c}}},trash:function(){var s,i;for(i=0;i<styleSheets.length;i++){s=styleSheets[i];if(!s.ie7&&!s.c){s.c=s.cssText}}this.inherit()},getText:function(s){return s.c||this.inherit(s)}});addEventHandler(window,"onunload",function(){ie7CSS.removeEventHandlers()});if(ie7CSS.Rule){ie7CSS.Rule.elements={};ie7CSS.Rule.prototype.specialize({add:function(e){this.inherit(e);ie7CSS.Rule.elements[e.uniqueID]=e}});ie7CSS.PseudoElement.hash={};ie7CSS.PseudoElement.prototype.specialize({create:function(t){var k=this.selector+":"+t.uniqueID;if(!ie7CSS.PseudoElement.hash[k]){ie7CSS.PseudoElement.hash[k]=true;this.inherit(t)}}})}if(isHTML&&ie7HTML){ie7HTML.specialize({elements:{},addRecalc:function(s,h){this.inherit(s,function(e){if(!ie7HTML.elements[e.uniqueID]){h(e);ie7HTML.elements[e.uniqueID]=e}})}})}document.recalc=function(reload){if(ie7CSS.screen){if(reload)ie7CSS.reload();recalc()}}});\r
diff --git a/website/inc/IE7/ie7-server.css b/website/inc/IE7/ie7-server.css
--- /dev/null
@@ -0,0 +1,44 @@
+body, td, dd {font: 10pt Verdana, Arial, Helvetica, sans-serif; color: black;}\r
+body {margin: 8px; background: #333;}\r
+h1 {margin: 0;}\r
+h1 a:hover {background-color: transparent;}\r
+h2 {font-size: 1.75em;}\r
+h3 {font-size: 1.1em;}\r
+p.footnote {font-family: "Times New Roman", Times, serif; font-style: italic;}\r
+a:active {color: #ff0000;}\r
+a:link {color: #0a6cce;}\r
+a:visited {color: #0a6cce;}\r
+code, *.code {font-family: monospace; font-size: 100%; font-style: normal; white-space: nowrap;\r
+ padding: 0 1px; background: #f2f3f8; border: #d6d9e9 1px solid;}\r
+code.box {display: block; padding: 10px; margin: 0.5em 0;}\r
+ul {list-style-type: square;}\r
+dd {margin: .2em 0 .5em 1em;}\r
+dl.library dt {display: list-item; margin-left: 3em; list-style-type: square;}\r
+dl.library dd {font-style: italic; margin-left: 3em;}\r
+dt {font-weight: bold;}\r
+dt.pack {color: brown;}\r
+a img {border-style: none;}\r
+hr {height: 1px; color: #000; border-style: solid;}\r
+hr.short {height: 2px; width: 100px;}\r
+div.document {background: #eef; padding: 20px 20px 5px 20px; width: 600px; border: 1px solid black;}\r
+hr {border-bottom-width: 0px;}\r
+div.header hr {color: #0a6cce; background-color: #0a6cce;}\r
+div.footer hr {color: #898e79; background-color: #898e79; }\r
+div.header, div.header a:link, div.header a:visited, h3 a:link, h3 a:visited {text-decoration: none;}\r
+a:hover {color: #fff; background-color: #0a6cce; text-decoration: none;}\r
+div.footer a:hover {background-color: transparent; text-decoration: none;}\r
+div.header .menu {text-align: right;}\r
+div.content {min-height: 100px;}\r
+div.footer {font-size: x-small; margin-top: 8px;}\r
+div.footnote {font-family: "times new roman", times; font-style: italic; margin-top: 10px;}\r
+#license {margin-top: 5px; font-size: xx-small;}\r
+table {border-top: 1px solid #000; border-left: 1px solid #000;}\r
+th {background-color: #fff; text-align: left;}\r
+th, td {border-right: 1px solid #000; border-bottom: 1px solid #000;}\r
+th.small {width: 100px;}\r
+th.medium {width: 200px;}\r
+th.large {width: 270px;}\r
+th.x-large {width: 408px;}\r
+table.fixed {table-layout: fixed;}\r
+span.comment {color: #666;}\r
+\r
diff --git a/website/inc/IE7/ie7-squish.js b/website/inc/IE7/ie7-squish.js
--- /dev/null
@@ -0,0 +1,45 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+IE7.addModule("ie7-squish", function() {\r
+\r
+/* ---------------------------------------------------------------------\r
+\r
+ Squish some IE bugs!\r
+\r
+ Some of these bug fixes may have adverse effects so they are\r
+ not included in the standard library. Add your own if you want.\r
+\r
+ -dean\r
+\r
+--------------------------------------------------------------------- */\r
+\r
+// @NOTE: ie7Layout.boxSizing is the same as the "Holly Hack"\r
+\r
+// "doubled margin" bug\r
+// http://www.positioniseverything.net/explorer/doubled-margin.html\r
+ie7CSS.addFix(/float\s*:\s*(left|right)/, "display:inline;$1");\r
+\r
+if (ie7Layout) {\r
+ // "peekaboo" bug\r
+ // http://www.positioniseverything.net/explorer/peekaboo.html\r
+ if (appVersion >= 6) ie7CSS.addRecalc("float", "left|right", function($element) {\r
+ ie7Layout.boxSizing($element.parentElement);\r
+ // "doubled margin" bug\r
+ $element.runtimeStyle.display = "inline";\r
+ });\r
+\r
+ // "unscrollable content" bug\r
+ // http://www.positioniseverything.net/explorer/unscrollable.html\r
+ ie7CSS.addRecalc("position", "absolute|fixed", function($element) {\r
+ if ($element.offsetParent && $element.offsetParent.currentStyle.position == "relative")\r
+ ie7Layout.boxSizing($element.offsetParent);\r
+ });\r
+}\r
+\r
+//# // get rid of Microsoft's pesky image toolbar\r
+//# if (!complete) document.write('<meta http-equiv="imagetoolbar" content="no">');\r
+\r
+});\r
diff --git a/website/inc/IE7/ie7-standard-p.js b/website/inc/IE7/ie7-standard-p.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('y(!26.1F)11 7(){2C{26.1F=8;6 2s=8.24=11 3b;8.1g=7(){z"1F 4x 0.9 (ad)"};6 5T=/5T/.Z(2y.5h.7C);6 31=(5T)?7(m){26.31(1F+"\\n\\n"+m)}:2s;6 29=ac.29.19(/ab (\\d\\.\\d)/)[1];6 2m=16.aa!="a9";y(/a8/.Z(2y.5h.7C)||29<5||!/^a7/.Z(16.2F.2a))z;6 33=16.5W=="33";6 1s,1K;6 2F=16.2F,1X,1J,1R=16.1R;6 4E="!";6 3Q={};6 2G=1z;1F.24=7(n,s){y(!3Q[n]){y(2G)1k("s="+23(s));3Q[n]=11 s()}};6 R=/^[\\w\\.]+[^:]*$/;7 1Z(h,p){y(R.Z(h))h=(p||"")+h;z h};7 3F(h,p){h=1Z(h,p);z h.1q(0,h.7a("/")+1)};6 s=16.7B[16.7B.K-1];2C{1k(s.7j)}2j(i){}6 2k=3F(s.1l);6 2v;2C{6 l=(a6()>=5)?"a5":"5n";2v=11 a4(l+".a3")}2j(i){}6 4A={};7 3T(h,p){2C{h=1Z(h,p);y(!4A[h]){2v.a2("a1",h,1z);2v.a0();y(2v.7A==0||2v.7A==9Z){4A[h]=2v.9Y}}}2j(i){31("4B [1]: 5O 9X 9W "+h)}5U{z 4A[h]||""}};6 4i=1Z("9V.9U",2k);7 2o(1w){y(1w!=1U){1w.1T=1t.1C.1T;1w.1e=1t.1C.1e}z 1w};2o.1e=7(p,c){y(!p)p={};y(!c)c=p.1h;y(c=={}.1h)c=11 3b("8.1T()");c.1i=11 3b("z 8");c.1i.1C=11 8.1i;c.1i.1C.1e(p);c.1C=11 c.1i;c.1i.1C.1h=c.1C.1h=c;c.2E=8;c.1e=1a.5P;c.4z=8.4z;z c};2o.1i=11 3b("z 8");2o.1i.1C={1h:2o,1T:7(){z 1a.5P.9T.2E.2q(8,1a)},1e:7(1w){y(8==8.1h.1C&&8.1h.1e){z 8.1h.1i.1C.1e(1w)}O(6 i 28 1w){34(i){1m"1h":1m"1g":1m"1i":5M}y(3Y 1w[i]=="7"&&1w[i]!=8[i]){1w[i].2E=8[i]}8[i]=1w[i]}y(1w.1g!=8.1g&&1w.1g!={}.1g){1w.1g.2E=8.1g;8.1g=1w.1g}z 8}};7 1t(){};8.1t=2o.1e({1h:1t,1g:7(){z"[9S "+(8.1h.1x||"9R")+"]"},9Q:7(2i){z 8.1h==2i||2i.4z(8.1h)}});1t.1x="1t";1t.2E=1U;1t.4z=7(2i){1D(2i&&2i.2E!=8)2i=2i.2E;z 7q(2i)};1t.1i.2E=2o;3u 8.1t;6 5x=1t.1e({1h:7(){8.3L=[];8.1Q=[]},1S:2s});y(29<5.5)1k(3T("17-9P.5X",2k));6 5S=1z;1F.1S=7(){2C{y(5S)z;5S=33=1o;1X=16.1X;1J=(2m)?1X:2F;y(2l&&1s)1s.2q();V.2q();1u();31("2G 9O")}2j(e){31("4B [2]: "+e.5V)}};6 1Q=[];7 1n(r){1Q.1b(r)};7 1u(){14.5g();y(2l&&1s)1s.1u();V.1u();O(6 i=0;i<1Q.K;i++)1Q[i]()};7 2U(){6 E=0,R=1,L=2;6 G=/\\(/g,S=/\\$\\d/,I=/^\\$\\d+$/,T=/([\'"])\\1\\+(.*)\\+\\1\\1$/,7t=/\\\\./g,Q=/\'/,7z=/\\3S[^\\3S]*\\3S/g;6 3N=8;8.15=7(e,r){y(!r)r="";6 l=(5R(23(e)).19(G)||"").K+1;y(S.Z(r)){y(I.Z(r)){r=25(r.1q(1))-1}1d{6 i=l;6 q=Q.Z(5R(r))?\'"\':"\'";1D(i)r=r.2O("$"+i--).2p(q+"+a[o+"+i+"]+"+q);r=11 3b("a,o","z"+q+r.13(T,"$1")+q)}}7y(e||"/^$/",r,l)};8.2V=7(s){3R.K=0;z 7u(7v(s,8.4y).13(11 1N(30,8.5Q?"5D":"g"),7w),8.4y).13(7z,"")};8.72=7(){30.K=0};6 3R=[];6 30=[];6 7x=7(){z"("+23(8[E]).1q(1,-1)+")"};30.1g=7(){z 8.2p("|")};7 7y(){1a.1g=7x;30[30.K]=1a}7 7w(){y(!1a[0])z"";6 i=1,j=0,p;1D(p=30[j++]){y(1a[i]){6 r=p[R];34(3Y r){1m"7":z r(1a,i);1m"9N":z 1a[r+i]}6 d=(1a[i].6F(3N.4y)==-1)?"":"\\3S"+1a[i]+"\\3S";z d+r}1d i+=p[L]}};7 7v(s,e){z e?s.13(11 1N("\\\\"+e+"(.)","g"),7(m,c){3R[3R.K]=c;z e}):s};7 7u(s,e){6 i=0;z e?s.13(11 1N("\\\\"+e,"g"),7(){z e+(3R[i++]||"")}):s};7 5R(s){z s.13(7t,"")}};2U.1C={1h:2U,5Q:1z,4y:""};1t.1e(2U.1C);6 3M=2U.1e({5Q:1o});6 14=7(){6 4x="2.0.2";6 C=/\\s*,\\s*/;6 14=7(s,1E){2C{6 m=[];6 u=1a.5P.5I&&!1E;6 b=(1E)?(1E.1h==7n)?1E:[1E]:[16];6 2f=45(s).2O(C),i;O(i=0;i<2f.K;i++){s=5J(2f[i]);y(4P&&s.1q(0,3).2p("")==" *#"){s=s.1q(2);1E=7o([],b,s[1])}1d 1E=b;6 j=0,t,f,a,c="";1D(j<s.K){t=s[j++];f=s[j++];c+=t+f;a="";y(s[j]=="("){1D(s[j++]!=")"&&j<s.K){a+=s[j]}a=a.1q(0,-1);c+="("+a+")"}1E=(u&&2e[c])?2e[c]:7m(1E,t,f,a);y(u)2e[c]=1E}m=m.4J(1E)}3u 14.5O;z m}2j(e){14.5O=e;z[]}};14.1g=7(){z"7 14() {\\n [4x "+4x+"]\\n}"};6 2e={};14.5I=1z;14.5g=7(s){y(s){s=5J(s).2p("");3u 2e[s]}1d 2e={}};6 3Q={};6 2G=1z;14.24=7(n,s){y(2G)1k("s="+23(s));3Q[n]=11 s()};14.1i=7(c){z c?1k(c):8};6 1V={};6 1B={};6 1p={19:/\\[([\\w-]+(\\|[\\w-]+)?)\\s*(\\W?=)?\\s*([^\\]]*)\\]/};6 2R=[];1V[" "]=7(r,f,t,n){6 e,i,j;O(i=0;i<f.K;i++){6 s=4w(f[i],t,n);O(j=0;(e=s[j]);j++){y(2D(e)&&5K(e,n))r.1b(e)}}};1V["#"]=7(r,f,i){6 e,j;O(j=0;(e=f[j]);j++)y(e.1c==i)r.1b(e)};1V["."]=7(r,f,c){c=11 1N("(^|\\\\s)"+c+"(\\\\s|$)");6 e,i;O(i=0;(e=f[i]);i++)y(c.Z(e.1x))r.1b(e)};1V[":"]=7(r,f,p,a){6 t=1B[p],e,i;y(t)O(i=0;(e=f[i]);i++)y(t(e,a))r.1b(e)};1B["21"]=7(e){6 d=5L(e);y(d.5N)O(6 i=0;i<d.5N.K;i++){y(d.5N[i]==e)z 1o}};1B["37"]=7(e){};6 2D=7(e){z(e&&e.7k==1&&e.2W!="!")?e:1U};6 4S=7(e){1D(e&&(e=e.9M)&&!2D(e))5M;z e};6 47=7(e){1D(e&&(e=e.6W)&&!2D(e))5M;z e};6 3l=7(e){z 2D(e.7s)||47(e.7s)};6 5t=7(e){z 2D(e.7r)||4S(e.7r)};6 6q=7(e){6 c=[];e=3l(e);1D(e){c.1b(e);e=47(e)}z c};6 4P=1o;6 5H=7(e){6 d=5L(e);z(3Y d.7p=="9L")?/\\.9K$/i.Z(d.9J):7q(d.7p=="9I 9H")};6 5L=7(e){z e.9G||e.16};6 4w=7(e,t){z(t=="*"&&e.1Y)?e.1Y:e.4w(t)};6 4T=7(e,t,n){y(t=="*")z 2D(e);y(!5K(e,n))z 1z;y(!5H(e))t=t.9F();z e.2W==t};6 5K=7(e,n){z!n||(n=="*")||(e.9E==n)};6 9D=7(e){z e.9C};7 7o(r,f,1c){6 m,i,j;O(i=0;i<f.K;i++){y(m=f[i].1Y.9B(1c)){y(m.1c==1c)r.1b(m);1d y(m.K!=1U){O(j=0;j<m.K;j++){y(m[j].1c==1c)r.1b(m[j])}}}}z r};y(![].1b)7n.1C.1b=7(){O(6 i=0;i<1a.K;i++){8[8.K]=1a[i]}z 8.K};6 N=/\\|/;7 7m(1E,t,f,a){y(N.Z(f)){f=f.2O(N);a=f[0];f=f[1]}6 r=[];y(1V[t]){1V[t](r,1E,f,a)}z r};6 S=/^[^\\s>+~]/;6 7l=/[\\s#.:>+~()@]|[^\\s#.:>+~()@]+/g;7 5J(s){y(S.Z(s))s=" "+s;z s.19(7l)||[]};6 W=/\\s*([\\s>+~(),]|^|$)\\s*/g;6 I=/([\\s>+~,]|[^(]\\+|^)([#.:@])/g;6 45=7(s){z s.13(W,"$1").13(I,"$1*$2")};6 2c={1g:7(){z"\'"},19:/^(\'[^\']*\')|("[^"]*")$/,Z:7(s){z 8.19.Z(s)},15:7(s){z 8.Z(s)?s:8+s+8},3v:7(s){z 8.Z(s)?s.1q(1,-1):s}};6 2w=7(t){z 2c.3v(t)};6 E=/([\\/()[\\]?{}|*+-])/g;7 4O(s){z s.13(E,"\\\\$1")};2G=1o;z 14}();14.5I=1o;14.24("17",7(){2D=7(e){z(e&&e.7k==1&&e.2W!="!"&&!e.2K)?e:1U}});14.1i("2w=1a[1]",42);6 2l=!14.1i("5H(1a[1])",2F);6 2r=":21{17-21:21}:37{17-21:37}"+(2l?"":"*{6Q:0}");6 V=11(5x.1e({5B:11 3M,2P:"",2Y:"",5F:[],1S:7(){8.5G();8.4t()},4t:7(){V.3O.18=2r+8.2P+8.2Y},7i:7(){6 3P=16.4w("1r"),s;O(6 i=3P.K-1;(s=3P[i]);i--){y(!s.3m&&!s.17){8.5F.1b(s.7j)}}},2q:7(){8.7i();8.4t();11 3y("2P");8.7g()},3i:7(e,r){8.5B.15(e,r)},1u:7(){6 R=/7h\\d+/g;6 s=2r.19(/[{,]/g).K;6 3P=s+(8.2P.18.19(/\\{/g)||"").K;6 2Q=8.3O.2t,r;6 4v,c,4u,e,i,j,k,1c;O(i=s;i<3P;i++){r=2Q[i];y(r&&(4v=r.1r.18.19(R))){4u=14(r.4M);y(4u.K)O(j=0;j<4v.K;j++){1c=4v[j];c=V.1Q[1c.1q(10)][2];O(k=0;(e=4u[k]);k++){y(e.D[1c])c(e)}}}}},1n:7(p,t,h,r){t=11 1N("([{;\\\\s])"+p+"\\\\s*:\\\\s*"+t+"[^;}]*");6 i=8.1Q.K;y(r)r=p+":"+r;8.3i(t,7(m,o){z(r?m[o+1]+r:m[o])+";17-"+m[o].1q(1)+";7h"+i+":1"});8.1Q.1b(1a);z i},2w:7(s){z s.18||""},5G:7(){y(33||!2l)16.5G();1d 16.9A("<1r 17=1o></1r>");8.3O=1R[1R.K-1];8.3O.17=1o;8.3O.18=2r},7g:7(){O(6 i=0;i<1R.K;i++){y(!1R[i].17&&1R[i].18){1R[i].18=""}}}}));7 3y(m){8.2Z=m;8.3q();V[m]=8;V.4t()};1t.1e({1h:3y,1g:7(){z"@2Z "+8.2Z+"{"+8.18+"}"},1u:2s,3q:7(){8.18="";8.2w();8.38();8.18=41(8.18);f={}},2w:7(){6 7e=[].4J(V.5F);6 M=/@2Z\\s+([^{]*)\\{([^@]+\\})\\s*\\}/5D;6 A=/\\9z\\b|^$/i,S=/\\9y\\b/i,P=/\\9x\\b/i;7 7d(c,m){4s.v=m;z c.13(M,4s)};7 4s(9w,m,c){m=5E(m);34(m){1m"2P":1m"2Y":y(m!=4s.v)z"";1m"1Y":z c}z""};7 5E(m){y(A.Z(m))z"1Y";1d y(S.Z(m))z(P.Z(m))?"1Y":"2P";1d y(P.Z(m))z"2Y"};6 3N=8;7 5C(s,p,m,l){6 c="";y(!l){m=5E(s.2Z);l=0}y(m=="1Y"||m==3N.2Z){y(l<3){O(6 i=0;i<s.7f.K;i++){c+=5C(s.7f[i],3F(s.2u,p),m,l+1)}}c+=79(s.2u?7c(s,p):7e.77()||"");c=7d(c,3N.2Z)}z c};6 f={};7 7c(s,p){6 u=1Z(s.2u,p);y(f[u])z"";f[u]=(s.3m)?"":7b(V.2w(s,p),3F(s.2u,p));z f[u]};6 U=/(43\\s*\\(\\s*[\'"]?)([\\w\\.]+[^:\\)]*[\'"]?\\))/5D;7 7b(c,p){z c.13(U,"$1"+p.1q(0,p.7a("/")+1)+"$2")};O(6 i=0;i<1R.K;i++){y(!1R[i].3m&&!1R[i].17){8.18+=5C(1R[i])}}},38:7(){8.18=V.5B.2V(8.18)},1u:2s});6 2c=14.1i("2c");6 4r=[];7 79(c){z 2n.2V(3r.2V(c))};7 5A(m,o){z 2c+(4r.1b(m[o])-1)+2c};7 42(v){z 2c.Z(v)?1k(4r[1k(v)]):v};6 2n=11 3M;2n.15(/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//);2n.15(/\'[^\']*\'/,5A);2n.15(/"[^"]*"/,5A);2n.15(/\\s+/," ");2n.15(/@(9v|9u)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->/);6 3r=11 3M;3r.15(/\\\\\'/,"\\\\9t");3r.15(/\\\\"/,"\\\\46");6 5z=11 3M;5z.15(/\'(\\d+)\'/,78);7 41(c){z 5z.2V(c)};7 78(m,o){z 4r[m[o+1]]};6 5y=[];7 4U(h){1n(h);1j(26,"9s",h)};7 1j(e,t,h){e.9r(t,h);5y.1b(1a)};7 76(e,t,h){2C{e.9q(t,h)}2j(i){}};1j(26,"9p",7(){6 h;1D(h=5y.77()){76(h[0],h[1],h[2])}});7 20(h,e,c){y(!h.1O)h.1O={};y(c)h.1O[e.2a]=e;1d 3u h.1O[e.2a];z c};1j(26,"6z",7(){y(!V.2Y)11 3y("2Y");V.2Y.1u()});6 75=/^\\d+(9o)?$/i;6 3d=/^\\d+%$/;6 3c=7(e,v){y(75.Z(v))z 25(v);6 s=e.1r.1f;6 r=e.J.1f;e.J.1f=e.D.1f;e.1r.1f=v||0;v=e.1r.4e;e.1r.1f=s;e.J.1f=r;z v};7 6x(t){6 e=16.3X(t||"2M");e.1r.18="1y:3C;6R:0;4K:9n;3G:1M;9m:9l(0 0 0 0);1f:-9k";e.2K=1o;z e};6 4q="17-";7 3D(e){z e.D["17-1y"]=="2z"};7 4o(e,p){z e.D[4q+p]||e.D[p]};7 2T(e,p,v){y(e.D[4q+p]==1U){e.J[4q+p]=e.D[p]}e.J[p]=v};7 4H(o,c,u){6 t=9j(7(){2C{y(!o.3q)z;o.3q(o,c,u);74(t)}2j(i){74(t)}},10)};1F.24("17-9i",7(){y(!2l)z;2r+="9h{3p-3o:9g}9f{3p-3o:1.9e;}9d{3p-3o:1.9c;}"+"9b{3p-3o:9a}99{3p-3o:.98}97{3p-3o:.96}";6 5w={};1s=11(5x.1e({1S:2s,3i:7(){8.3L.1b(1a)},2q:7(){O(6 i=0;i<8.3L.K;i++){6 m=14(8.3L[i][0]);6 f=8.3L[i][1]||6X;O(6 j=0;j<m.K;j++)f(m[j])}},1n:7(){8.1Q.1b(1a)},1u:7(){O(6 i=0;i<8.1Q.K;i++){6 m=14(8.1Q[i][0]);6 r=8.1Q[i][1],e;6 k=4g.95(2,i);O(6 j=0;(e=m[j]);j++){6 u=e.2a;y((5w[u]&k)==0){e=r(e)||e;5w[u]|=k}}}}}));1s.3i("94");1s.1n("93",7(e){y(!e.6o){6 f=14("5l,92",e)[0];y(f){1j(e,"73",7(){f.91()})}}});1s.1n("71,5l",7(e){y(e.2W=="70"){6 m=e.3z.19(/ 3n="([^"]*)"/i);e.J.3n=(m)?m[1]:""}y(e.2L=="5v"){1j(e,"73",7(){e.J.5u=1o;32("16.1Y."+e.2a+".J.5u=1z",1)})}});6 U=/^(5v|72|71)$/;1s.1n("90",7(e){1j(e,"8Z",7(){O(6 i=0;i<e.K;i++){y(6Z(e[i])){e[i].3m=1o;32("16.1Y."+e[i].2a+".3m=1z",1)}1d y(e[i].2W=="70"&&e[i].2L=="5v"){32("16.1Y."+e[i].2a+".3n=\'"+e[i].3n+"\'",1);e[i].3n=e[i].J.3n}}})});7 6Z(e){z U.Z(e.2L)&&!e.3m&&!e.J.5u};1s.1n("5d",7(e){y(e.8Y&&!e.6Y)e.6Y=""});6 P=(29<5.5)?"8X:":"";7 6X(e){6 f=16.3X("<"+P+e.3z.1q(1));y(e.3z.1q(-2)!="/>"){6 6V="</"+e.2W+">",n;1D((n=e.6W)&&n.3z!=6V){f.6t(n)}y(n)n.8W()}e.4R.6A(f,e)}});1F.24("17-8V",7(){1K=8;2r+="*{3H:22-2X}";8.3j=(29<5.5)?7(e){z e.1I}:7(e){z e.D.3j};8.3H=7(e){y(!1K.3j(e)){e.1r.2b="6T";y(e.D.6U=="1P")e.J.6U="2y";4k(e)}};7 4k(e){y(e!=1J&&e.D.1y!="3C"){4p(e);8U(e)}};6 3l=14.1i("3l");6 5t=14.1i("5t");7 4p(e){y(!e.J.3k){6 p=e.59;y(p&&1K.3j(p)&&e==3l(p))z;6 f=3l(e);y(f&&f.D.8T=="1M"&&1K.3j(f)){4p(f);m=5s(e,e.D.3k);c=5s(f,f.D.3k);y(m<0||c<0){e.J.3k=m+c}1d{e.J.3k=4g.3g(c,m)}f.J.3k="8S"}}};1k(23(4p).13(/5c/g,"6N").13(/4N/g,"8R"));7 5s(e,v){z(v=="1P")?0:3c(e,v)};6 U=/^[.\\d][\\w%]*$/,A=/^(1P|6T)$/,N="[.\\\\d]";6 4l,6S;7 6O(e){4l(e);6S(e)};7 2g(H){4l=7(e){y(!3d.Z(e.D.12))2g(e);4k(e)};7 2g(e,v){y(!e.J.3J){y(!v)v=e.D.12;e.J.3J=(U.Z(v))?4g.3g(0,2B(e,v)):v;2T(e,"12",e.J.3J)}};7 5r(e){y(!3D(e)){6 l=e.3B;1D(l&&!1K.3j(l))l=l.3B}z(l||1J).1I};7 1H(e,v){y(3d.Z(v))z 25(4c(v)/3w*5r(e));z 3c(e,v)};6 2B=7(e,v){6 b=e.D["2X-5o"]=="3G-2X";6 a=0;y(2m&&!b)a+=4n(e)+3K(e);1d y(!2m&&b)a-=4n(e)+3K(e);z 1H(e,v)+a};7 4n(e){z e.2S-e.1I};7 3K(e){z 1H(e,e.D.8Q)+1H(e,e.D.8P)};1k(23(3K).13(/6R/g,"6Q").13(/8O/g,"8N"));2r+="*{1A:1M;27:1M;3I-12:1M;3g-12:1M}";7 1A(e){y(e.D["3I-12"]!=1U){e.1r.1A=e.D["3I-12"]}y(20(1A,e,e.D.1A!="1M")){1K.3H(e);2g(e);4m(e)}};1k(23(1A).13(/3I/g,"3g"));1K.1A=1A;1K.27=27;7 4m(e){6 r=e.54();6 w=r.1W-r.1f;y(e.D.1A!="1M"&&w<=2B(e,e.D.1A)){e.J.12=2B(e,e.D.1A)}1d y(e.D.27!="1M"&&w>=2B(e,e.D.27)){e.J.12=2B(e,e.D.27)}1d{e.J.12=e.J.3J}};7 2x(e){y(20(2x,e,/^(2z|3C)$/.Z(e.D.1y)&&4o(e,"1f")!="1P"&&4o(e,"1W")!="1P"&&A.Z(4o(e,"12")))){5p(e);1K.3H(e)}};1K.2x=2x;7 5p(e){6 l=1H(e,e.J.52||e.D.1f);6 w=5r(e)-1H(e,e.D.1W)-l-8M(e);y(25(e.J.12)==w)z;e.J.12="";y(3D(e)||H||e.2S<w){y(!2m)w-=4n(e)+3K(e);y(w<0)w=0;e.J.3J=w;2T(e,"12",w)}};6 5q=0;4U(7(){6 i,w=(5q<1J.1I);5q=1J.1I;O(i 28 1A.1O){6 e=1A.1O[i];6 f=(25(e.J.12)==2B(e,e.D.1A));y(w&&f)e.J.12="";y(w==f)4m(e)}O(i 28 27.1O){6 e=27.1O[i];6 f=(25(e.J.12)==2B(e,e.D.27));y(!w&&f)e.J.12="";y(w!=f)4m(e)}O(i 28 2x.1O)5p(2x.1O[i])});y(26.8L!==1z){V.1n("12",N,2m?4l:4k)}V.1n("3I-12",N,1A);V.1n("3g-12",N,27);V.1n("1W",N,2x)};V.1n("3G-6P",N,7(e){y(e.D.8K!="8J"){e.8I=3c(e,e.D["3G-6P"])}});V.1n("2X-5o","22-2X",8.3H);V.1n("2X-5o","3G-2X",6O);6 1v=11 2U;1v.15(/6v/,"6u");1v.15(/12/,"2b");1v.15(/6w/,"5c");1v.15(/1f/,"2y");1v.15(/8H/,"6N");1v.15(/1W/,"56");1k(1v.2V(23(2g)));2g();8G(1o)});1F.24("17-8F",7(){y(29<5.5)z;6 A="6J.5n.8E";6 F="6K:"+A+"(1l=\'%1\',8D=\'6H\')";6 5j=11 1N((26.8C||"-8B.8A")+"$","i");6 3h=[];7 5f(e){6 f=e.6M[A];y(f){f.1l=e.1l;f.6L=1o}1d{e.J.5m=F.13(/%1/,e.1l);3h.1b(e)}e.1l=4i};7 6y(e){e.1l=e.4D;e.6M[A].6L=1z};V.3i(/6I\\s*:\\s*([\\d.]+)/,7(m,o){z"6G:1;5m:6K:6J.5n.8z(6I="+((4c(m[o+1])*3w)||1)+")"});6 B=/5e(-5i)?\\s*:\\s*([^\\(};]*)43\\(([^\\)]+)\\)([^;}]*)/;V.3i(B,7(m,o){6 u=42(m[o+3]);z 5j.Z(u)?"5m:"+F.13(/6H/,"8y").13(/%1/,u)+";6G:1;5e"+(m[o+1]||"")+":"+(m[o+2]||"")+"1M"+(m[o+4]||""):m[o]});y(1s){1s.1n("5d,5l",7(e){y(e.2W=="8x"&&e.2L!="5i")z;5k(e);1j(e,"8w",7(){y(!4j&&60.8v=="1l"&&e.1l.6F(4i)==-1)5k(e)})});6 6D=/^3W:.*;6E/i;6 6C=1Z("17-6E.8u",2k);7 5k(e){y(5j.Z(e.1l)){6 i=11 8t(e.12,e.2b);i.8s=7(){e.12=i.12;e.2b=i.2b;i=1U};i.1l=e.1l;e.4D=e.1l;5f(e)}1d y(6D.Z(e.1l)){e.1l=6C+"?"+e.1l.1q(5)}};6 I=/^5i/i;6 6B=1Z("17-2M.4C",2k);1s.1n("2M",7(e){y(I.Z(e.2L)){6 o=16.3X("<2M 2L=68/x-67>");o.1r.12=e.D.12;o.1r.2b=e.D.2b;o.3W=6B;6 u=1Z(e.3W,3F(5h.2u));e.4R.6A(o,e);14.5g("2M");4H(o,"",u);z o}})}6 4j=1z;1j(26,"6z",7(){4j=1o;O(6 i=0;i<3h.K;i++)6y(3h[i])});1j(26,"8r",7(){O(6 i=0;i<3h.K;i++)5f(3h[i]);4j=1z})});1F.24("17-2z",7(){V.1n("1y","2z",4a,"3C");V.1n("5e(-8q)?","[^};]*2z",4b);6 4Z=(2m)?"1X":"2F";6 4h=7(){y(1X.D.5b!="2z"){y(1X.D.5a=="1M"){1X.J.8p="8o-8n";1X.J.5a="43("+4i+")"}1X.J.5b="2z"}4h=2s};6 2h=6x("5d");7 1v(f){z 2A.2V(23(f))};6 2A=11 2U;2A.15(/6w/,"5c");2A.15(/1f/,"2y");2A.15(/6v/,"6u");2A.15(/12/,"2b");2A.15(/1W/,"56");2A.15(/X/,"Y");7 3f(e){z(e)?3D(e)||3f(e.59):1z};7 4f(e,p,3e){32("16.1Y."+e.2a+".J.4f(\'"+p+"\',\'"+3e+"\')",0)};7 4b(e){y(20(4b,e,e.D.5b=="2z"&&!e.61(1X))){4h();58(e);8m(e);4V(e)}};7 4V(e){2h.1l=e.D.5a.1q(5,-2);6 p=(e.6c)?e:e.59;p.6t(2h);57(e);8l(e);p.8k(2h)};7 58(e){e.1r.3E=e.D.3E;y(!3f(e)){6 3e="(25(J.3A)+16."+4Z+".6s)||0";4f(e,"3E",3e)}};1k(1v(58));7 57(e){6 p=3f(e)?"3E":"3A";e.J[p]=55(e,e.1r.3E)-e.54().1f-e.8j+2};1k(1v(57));7 55(e,p){34(p){1m"1f":1m"2y":z 0;1m"1W":1m"56":z 1J.1I-2h.2S;1m"8i":z(1J.1I-2h.2S)/2;8h:y(3d.Z(p)){z 25((1J.1I-2h.2S)*4c(p)/3w)}2h.1r.1f=p;z 2h.3A}};1k(1v(55));7 4a(e){y(20(4a,e,3D(e))){2T(e,"1y","3C");2T(e,"1f",e.D.1f);2T(e,"2y",e.D.2y);4h();y(1K)1K.2x(e);49(e)}};7 49(e,r){8g(e,r);4Y(e,r,1o);y(!e.J.4d&&e.D.4X=="1P"&&e.D.1W!="1P"){6 l=1J.1I-1H(e,e.D.1W)-1H(e,e.J.52)-e.1I;y(e.D.8f=="1P")l=25(l/2);y(3f(e.3B))e.J.4e+=l;1d e.J.50=l}53(e);8e(e)};7 53(e){y(e.D.12!="1P"){6 r=e.54();6 w=e.2S-1J.1I+r.1f-2;y(w>=0){w=4g.3g(3c(e,e.D.12)-w,0);2T(e,"12",w)}}};1k(1v(53));7 4Y(e,r){y(!r&&3d.Z(e.D.12)){e.J.2g=e.D.12}y(e.J.2g){e.J.12=1H(e,e.J.2g)}y(r){y(!e.J.4d)z}1d{e.J.50=0;e.J.52=e.D.1f;e.J.4d=e.D.1W!="1P"&&e.D.1f=="1P"}e.J.1f="";e.J.51=4W(e);e.J.4e=e.J.51;y(!r&&!3f(e.3B)){6 3e="J.51+J.50+16."+4Z+".6s";4f(e,"4e",3e)}};1k(1v(4Y));7 4W(e){6 s=e.3A,n=1;y(e.J.4d){s=1J.1I-e.2S-1H(e,e.D.1W)}y(e.D.4X!="1P"){s-=1H(e,e.D.4X)}1D(e=e.3B){y(e.D.1y!="8d")n=-1;s+=e.3A*n}z s};1k(1v(4W));7 1H(e,v){y(3d.Z(v))z 25(4c(v)/3w*1J.1I);z 3c(e,v)};1k(1v(1H));7 6r(){6 e=4b.1O;O(6 i 28 e)4V(e[i]);e=4a.1O;O(i 28 e){49(e[i],1o);49(e[i],1o)}48=0};6 48;4U(7(){y(!48)48=32(6r,0)})});1F.24("17-8c-1V",7(){14.24("8b-8a",7(){1V[">"]=7(r,f,t,n){6 e,i,j;O(i=0;i<f.K;i++){6 s=6q(f[i]);O(j=0;(e=s[j]);j++)y(4T(e,t,n))r.1b(e)}};1V["+"]=7(r,f,t,n){O(6 i=0;i<f.K;i++){6 e=47(f[i]);y(e&&4T(e,t,n))r.1b(e)}};1V["@"]=7(r,f,a){6 t=2R[a].Z;6 e,i;O(i=0;(e=f[i]);i++)y(t(e))r.1b(e)};1B["4N-89"]=7(e){z!4S(e)};1B["4Q"]=7(e,c){c=11 1N("^"+c,"i");1D(e&&!e.2H("4Q"))e=e.4R;z e&&c.Z(e.2H("4Q"))};1p.6p=/\\\\:/g;1p.3x="@";1p.3a={};1p.13=7(m,a,n,c,v){6 k=8.3x+m;y(!2R[k]){a=8.3Z(a,c||"",v||"");2R[k]=a;2R.1b(a)}z 2R[k].1c};1p.38=7(s){s=s.13(8.6p,"|");6 m;1D(m=s.19(8.19)){6 r=8.13(m[0],m[1],m[2],m[3],m[4]);s=s.13(8.19,r)}z s};1p.3Z=7(p,t,v){6 a={};a.1c=8.3x+2R.K;a.66=p;t=8.3a[t];t=t?t(8.2H(p),2w(v)):1z;a.Z=11 3b("e","z "+t);z a};1p.2H=7(n){34(n.5Z()){1m"1c":z"e.1c";1m"3U":z"e.1x";1m"O":z"e.6o";1m"2u":y(4P){z"23((e.3z.19(/2u=\\\\46?([^\\\\s\\\\46]*)\\\\46?/)||[])[1]||\'\')"}}z"e.2H(\'"+n.13(N,":")+"\')"};1p.3a[""]=7(a){z a};1p.3a["="]=7(a,v){z a+"=="+2c.15(v)};1p.3a["~="]=7(a,v){z"/(^| )"+4O(v)+"( |$)/.Z("+a+")"};1p.3a["|="]=7(a,v){z"/^"+4O(v)+"(-|$)/.Z("+a+")"};6 6n=45;45=7(s){z 6n(1p.38(s))}});6 1p=14.1i("1p");6 H=/a(#[\\w-]+)?(\\.[\\w-]+)?:(65|62)/i;6 6l=/\\s*\\{\\s*/,6m=/\\s*\\}\\s*/,C=/\\s*\\,\\s*/;6 F=/(.*)(:4N-(88|87))/;3y.1C.1e({38:7(){8.1T();6 o=V.2t.K;6 2Q=8.18.2O(6m),r;6 2f,c,i,j;O(i=0;i<2Q.K;i++){r=2Q[i].2O(6l);2f=r[0].2O(C);c=r[1];O(j=0;j<2f.K;j++){2f[j]=c?8.6k(2f[j],c):""}2Q[i]=2f.2p("\\n")}8.18=2Q.2p("\\n");8.2t=V.2t.1q(o)},1u:7(){6 r,i;O(i=0;(r=8.2t[i]);i++)r.1u()},6k:7(s,c){y(V.6j.Z(s)){6 m;y(m=s.19(1L.39)){z 11 1L(m[1],m[2],c)}1d y(m=s.19(2d.39)){y(!2l||!H.Z(m)||2d.44.Z(m)){z 11 2d(s,m[1],m[2],m[3],c)}}1d z 11 1G(s,c)}z s+" {"+c+"}"}});V.1e({2t:[],1B:14.1i("1B"),36:{},2e:14.1i("2e"),1G:1G,2d:2d,1L:1L,2J:2J,2q:7(){6 p=8.1B+"|6i|6h|"+8.36;p=p.13(/(21|37)\\|/g,"");8.6j=11 1N("[>+~\\[]|([:.])[\\\\w-()]+\\\\1|:("+p+")");6 c="[^\\\\s(]+\\\\s*[+~]|@\\\\d+|:(";1G.44=11 1N(c+p+")","g");2d.44=11 1N(c+8.1B+")","g");2d.39=11 1N("(.*):("+8.36+")(.*)");1L.39=/(.*):(6i|6h).*/;8.1T()},1u:7(){8.2P.1u();8.1T()},2w:7(s,p){z 2v?(3T(s.2u,p)||s.18):8.1T(s)},1j:7(e,t,h){1j(e,t,h)}});7 1G(s,c){8.1c=V.2t.K;8.1x=1G.3x+8.1c;s=(s).19(F)||s||"*";8.40=s[1]||s;8.4M=1G.6g(8.40)+"."+8.1x+(s[2]||"");8.18=c;8.39=11 1N("\\\\s"+8.1x+"(\\\\s|$)","g");V.2t.1b(8);8.1S()};1t.1e({1h:1G,1g:7(){z 8.4M+" {"+8.18+"}"},1S:2s,15:7(e){e.1x+=" "+8.1x},3v:7(e){e.1x=e.1x.13(8.39,"$1")},1u:7(){6 m=V.2e[" *."+8.1x]=14(8.40);O(i=0;i<m.K;i++)8.15(m[i])}});1G.3x="5Y";1G.6f=/>/g;1G.6g=7(s){s=1p.38(s);z s.13(8.44,"").13(8.6f," ")};7 2d(s,a,d,t,c){8.6e=a||"*";8.6d=V.36[d];8.4L=t;8.1T(s,c)};1G.1e({1h:2d,1u:7(){6 m=14(8.6e);O(6 i=0;i<m.K;i++){6 t=(8.4L)?14(8.4L,m[i]):[m[i]];y(t.K)8.6d.2q(m[i],t,8)}}});6 A=/^4I/;6 U=/^43\\s*\\(\\s*([^)]*)\\)$/;6 M={86:"85",84:"83",82:"81",80:"7Z"};6 6b=1Z("17-22.4C",2k)+"?";2r+=".2K{4K:1M}";7 1L(s,p,c){8.1y=p;6 2N=c.19(1L.6a),m,e;y(2N){2N=2N[1];m=2N.2O(/\\s+/);O(6 i=0;(e=m[i]);i++){m[i]=A.Z(e)?{4I:e.1q(5,-1)}:(e.7Y(0)=="\'")?42(e):41(e)}2N=m}8.22=2N;8.1T(s,41(c))};1G.1e({1h:1L,1g:7(){z"."+8.1x+"{4K:7X}"},1S:7(){8.19=14(8.40);O(6 i=0;i<8.19.K;i++){6 r=8.19[i].J;y(!r[8.1y])r[8.1y]={18:""};r[8.1y].18+=";"+8.18;y(8.22!=1U)r[8.1y].22=8.22}},1u:7(){y(8.22==1U)z;O(6 i=0;i<8.19.K;i++){8.3Z(8.19[i])}},3Z:7(t){6 g=t.J[8.1y];y(g){6 c=[].4J(g.22||"");O(6 j=0;j<c.K;j++){y(3Y c[j]=="2M"){c[j]=t.2H(c[j].4I)}}c=c.2p("");6 u=c.19(U);6 h=1L[u?"69":"4E"].13(/%1/,8.1x);6 4G=g.18.13(/\'/g,\'"\');6 4F=M[8.1y+7W(t.6c)];y(u){6 p=16.3X(h);t.7V(4F,p);p.3W=6b;4H(p,4G,2c.3v(u[1]))}1d{h=h.13(/%2/,4G).13(/%3/,c);t.7U(4F,h)}t.J[8.1y]=1U}}});1L.6a=/22\\s*:\\s*([^;]*)(;|$)/;1L.69="<2M 3U=\'2K %1\' 2K 12=3w% 2b=0 2L=68/x-67>";1L.4E="<17:! 3U=\'2K %1\' 2K 1r=\'%2\'>%3</17:!>";7 2J(n,a){8.66=n;8.2q=a;8.2I={};V.36[n]=8};1t.1e({1h:2J,20:7(i){6 c=i[2];i.1c=c.1c+i[0].2a;y(!8.2I[i.1c]){6 t=i[1],j;O(j=0;j<t.K;j++)c.15(t[j]);8.2I[i.1c]=i}},35:7(i){y(8.2I[i.1c]){6 c=i[2];6 t=i[1],j;O(j=0;j<t.K;j++)c.3v(t[j]);3u 8.2I[i.1c]}}});V.1B.1g=7(){6 t=[],p;O(p 28 8){y(8[p].K>1)p+="\\\\([^)]*\\\\)";t.1b(p)}z t.2p("|")};V.1B["21"]=7(e){z e.D["17-21"]=="21"};V.1B["37"]=7(e){z e.D["17-21"]=="37"};6 64=(29<5.5)?"7T":"7S";6 63=(29<5.5)?"7R":"7Q";V.36.1g=V.1B.1g;6 3s=11 2J("65",7(e){6 i=1a;V.1j(e,64,7(){3s.20(i)});V.1j(e,63,7(){3s.35(i)})});6 3t=11 2J("7P",7(e){6 i=1a;V.1j(e,"7O",7(){3t.35(i);3t.20(i)});V.1j(e,"7N",7(){3t.35(i)});y(e==16.7M){3t.20(i)}});6 3V=11 2J("62",7(e){6 i=1a;V.1j(e,"7L",7(){3V.20(i)})});1j(16,"7K",7(){6 i=3V.2I,j;O(j 28 i)3V.35(i[j]);i=3s.2I;O(j 28 i)y(!i[j][0].61(60.7J))3s.35(i[j])});2o(1p);1p.1e({2H:7(n){34(n.5Z()){1m"3U":z"e.1x.13(/\\\\b\\\\s*5Y\\\\d+/g,\'\')";1m"1l":z"(e.4D||e.1l)"}z 8.1T(n)}});2n.15(/::/,":");3r.15(/\\\\([\\7I-7H-F]{1,4})/,7(m,o){m=m[o+1];z"\\\\u"+"7G".1q(m.K)+m})});2G=1o;y(2m)1k(3T("17-7F.5X",2k));V.1S();y(2l&&1s)1s.1S();y(33)1F.1S();1d{2F.7E(1Z("17-3q.4C",2k));1j(16,"7D",7(){y(16.5W=="33")32(1F.1S,0)})}}2j(e){31("4B [0]: "+e.5V)}5U{}};',62,634,'||||||var|function|this||||||||||||||||||||||||||if|return||||currentStyle||||||runtimeStyle|length||||for|||||||ie7CSS||||test||new|width|replace|cssQuery|add|document|ie7|cssText|match|arguments|push|id|else|specialize|left|toString|constructor|valueOf|addEventHandler|eval|src|case|addRecalc|true|AttributeSelector|slice|style|ie7HTML|Common|recalc|_0|that|className|position|false|minWidth|pseudoClasses|prototype|while|fr|IE7|Rule|getPixelWidth|clientWidth|viewport|ie7Layout|PseudoElement|none|RegExp|elements|auto|recalcs|styleSheets|init|inherit|null|selectors|right|body|all|makePath|register|link|content|String|addModule|parseInt|window|maxWidth|in|appVersion|uniqueID|height|Quote|DynamicRule|cache|se|fixWidth|_1|klass|catch|path|isHTML|quirksMode|encoder|ICommon|join|apply|HEADER|DUMMY|rules|href|httpRequest|getText|fixRight|top|fixed|_2|getFixedWidth|try|thisElement|ancestor|documentElement|loaded|getAttribute|instances|DynamicPseudoClass|ie7_anon|type|object|co|split|screen|ru|attributeSelectors|offsetWidth|setOverrideStyle|ParseMaster|exec|tagName|box|print|media|_3|alert|setTimeout|complete|switch|unregister|dynamicPseudoClasses|visited|parse|MATCH|tests|Function|getPixelValue|PERCENT|ex|_4|max|_5|addFix|hasLayout|marginTop|firstElementChild|disabled|value|size|font|load|safeString|_6|_7|delete|remove|100|PREFIX|StyleSheet|outerHTML|offsetLeft|offsetParent|absolute|isFixed|backgroundPositionX|getPath|border|boxSizing|min|fixedWidth|getPaddingWidth|fixes|Parser|self|styleSheet|st|modules|_8|x01|loadFile|class|_9|data|createElement|typeof|create|selector|decode|getString|url|COMPLEX|parseSelector|x22|nextElementSibling|_10|_11|_12|_13|parseFloat|autoLeft|pixelLeft|setExpression|Math|_14|BLANK_GIF|_15|_16|applyWidth|resizeWidth|getBorderWidth|getDefinedStyle|collapseMarginTop|_17|_18|_19|refresh|el|ca|getElementsByTagName|version|escapeChar|ancestorOf|_20|Error|htc|pngSrc|ANON|po|cs|addTimer|attr|concat|display|target|selectorText|first|regEscape|isMSIE|lang|parentNode|previousElementSibling|compareTagName|addResize|_21|getScreenLeft|marginLeft|positionLeft|_22|shiftLeft|screenLeft|_23|clipWidth|getBoundingClientRect|getOffsetLeft|bottom|setOffsetLeft|backgroundLeft|parentElement|backgroundImage|backgroundAttachment|Top|img|background|_24|clearCache|location|image|_25|_26|input|filter|Microsoft|sizing|resizeRight|_27|layoutWidth|_28|lastElementChild|clicked|submit|_29|Fix|_30|decoder|_31|parser|_32|gi|_33|styles|createStyleSheet|isXML|caching|_34|compareNamespace|getDocument|continue|links|error|callee|ignoreCase|_35|_36|ie7_debug|finally|description|readyState|js|ie7_class|toLowerCase|event|contains|active|_37|_38|hover|name|scriptlet|text|OBJECT|CONTENT|_39|canHaveChildren|dynamicPseudoClass|attach|CHILD|simple|after|before|UNKNOWN|createRule|B1|B2|_40|htmlFor|NS_IE|childElements|_41|scrollLeft|appendChild|Height|Width|Left|createTempElement|_42|onbeforeprint|replaceChild|_43|_44|B64|base64|indexOf|zoom|scale|opacity|DXImageTransform|progid|enabled|filters|Bottom|borderBox|spacing|margin|padding|applyHeight|0cm|verticalAlign|en|nextSibling|_45|title|_46|BUTTON|button|reset|onclick|clearInterval|PIXEL|removeEventHandler|pop|_47|_48|lastIndexOf|_49|_50|_51|_52|imports|trash|ie7_recalc|getInlineStyles|innerHTML|nodeType|ST|select|Array|_53|mimeType|Boolean|lastChild|firstChild|ES|_54|_55|_56|_57|_58|DE|status|scripts|search|onreadystatechange|addBehavior|quirks|0000|fA|da|srcElement|onmouseup|onmousedown|activeElement|onblur|onfocus|focus|onmouseleave|onmouseout|onmouseenter|onmouseover|insertAdjacentHTML|insertAdjacentElement|Number|inline|charAt|beforeEnd|after1|afterEnd|after0|afterBegin|before1|beforeBegin|before0|letter|line|child|level2|css|css2|static|clipHeight|marginRight|positionTop|default|center|clientLeft|removeChild|setOffsetTop|backgroundTop|repeat|no|backgroundRepeat|attachment|onafterprint|onload|Image|php|propertyName|onpropertychange|INPUT|crop|Alpha|png|trans|IE7_PNG_SUFFIX|sizingMethod|AlphaImageLoader|graphics|fixHeight|Right|cellSpacing|collapse|borderCollapse|IE7_BOX_MODEL|getMarginWidth|Margin|Padding|paddingRight|paddingLeft|last|0px|styleFloat|collapseMarginBottom|layout|removeNode|HTML|alt|onsubmit|form|click|textarea|label|abbr|pow|67em|h6|83em|h5|1em|h4|17em|h3|5em|h2|2em|h1|html4|setInterval|9999|rect|clip|block|px|onunload|detachEvent|attachEvent|onresize|x27|import|namespace|ma|bprint|bscreen|ball|write|item|innerText|getTextContent|scopeName|toUpperCase|ownerDocument|Document|XML|URL|xml|unknown|previousSibling|number|successfully|ie5|instanceOf|Object|common|caller|gif|blank|file|loading|responseText|200|send|GET|open|XMLHTTP|ActiveXObject|Msxml2|ScriptEngineMajorVersion|ms_|ie7_off|CSS1Compat|compatMode|MSIE|navigator|alpha'.split('|'),0,{}))\r
diff --git a/website/inc/IE7/ie7-xml-extras.js b/website/inc/IE7/ie7-xml-extras.js
--- /dev/null
@@ -0,0 +1,6 @@
+/*\r
+ IE7, version 0.9 (alpha) (2005-08-19)\r
+ Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
+ License: http://creativecommons.org/licenses/LGPL/2.1/\r
+*/\r
+function XMLHttpRequest(){var l=(ScriptEngineMajorVersion()>=5)?"Msxml2":"Microsoft";return new ActiveXObject(l+".XMLHTTP")};function DOMParser(){};DOMParser.prototype={toString:function(){return"[object DOMParser]"},parseFromString:function(s,c){var x=new ActiveXObject("Microsoft.XMLDOM");x.loadXML(s);return x},parseFromStream:new Function,baseURI:""};function XMLSerializer(){};XMLSerializer.prototype={toString:function(){return"[object XMLSerializer]"},serializeToString:function(r){return r.xml||r.outerHTML},serializeToStream:new Function};\r
diff --git a/website/inc/IE7/ie7.gif b/website/inc/IE7/ie7.gif
new file mode 100644 (file)
index 0000000..64a2c2d
Binary files /dev/null and b/website/inc/IE7/ie7.gif differ
index 0000000..64a2c2d
Binary files /dev/null and b/website/inc/IE7/ie7.gif differ
diff --git a/website/inc/IE7/test-trans.png b/website/inc/IE7/test-trans.png
new file mode 100644 (file)
index 0000000..e187e2c
Binary files /dev/null and b/website/inc/IE7/test-trans.png differ
index 0000000..e187e2c
Binary files /dev/null and b/website/inc/IE7/test-trans.png differ
diff --git a/website/inc/IE7/test.html b/website/inc/IE7/test.html
--- /dev/null
@@ -0,0 +1,100 @@
+<html xmlns:html="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>\r
+<title>IE7 Test Page</title>\r
+<meta name="author" content="Dean Edwards"/>\r
+<!-- compliance patch for microsoft browsers -->\r
+<!--[if lt IE 7]>\r
+<script src="ie7-standard-p.js" type="text/javascript"></script>\r
+<script src="ie7-css3-selectors.js" type="text/javascript"></script>\r
+<script src="ie7-css-strict.js" type="text/javascript"></script>\r
+<![endif]-->\r
+<style type="text/css">\r
+ body {background-color: #ccc;}\r
+ img {border: none;}\r
+ h1 {font-family: monospace;}\r
+ h2 {background-color: black; color: white; font-style: normal;}\r
+ h3 {margin: 0.1em 0;}\r
+</style>\r
+</head>\r
+
+<body>\r
+<div class="document">\r
+<div class="header">\r
+<h1>IE7 { css2: auto; }</h1>\r
+<hr />\r
+</div>\r
+\r
+<div class="content">\r
+\r
+<h2>Black & White Test</h2>\r
+\r
+<h3>Legend</h3>\r
+<style type="text/css">\r
+ div.legend {height: 20px; font-weight: bold; text-indent: 4px;}\r
+ #fail {background-color: black; color: white;}\r
+ #pass {background-color: white; color: black;}\r
+</style>\r
+<div class="legend" id="pass">PASS</div>\r
+<div class="legend" id="fail">FAIL</div>\r
+\r
+<hr />\r
+\r
+<h3>ie7-html4.js</h3>\r
+<style type="text/css">\r
+ #ie7-html4 {background-color: black; height: 20px;}\r
+ #ie7-html4 abbr {display: block; background-color: white; height: 20px;}\r
+</style>\r
+<div id="ie7-html4"><abbr> </abbr></div>\r
+\r
+<h3>ie7-layout.js</h3>\r
+<style type="text/css">\r
+ #ie7-layout {background-color: black; height: 20px; overflow: hidden;}\r
+ #ie7-layout div.box {position: relative; top: -40px; background-color: white;\r
+ height: 40px; border-top: 20px black solid;}\r
+</style>\r
+<div id="ie7-layout"><div class="box"></div></div>\r
+\r
+<h3>ie7-graphics.js</h3>\r
+<style type="text/css">\r
+ #ie7-graphics {background-color: white; height: 20px;}\r
+ #ie7-graphics div.box {height: 20px; background: url(test-trans.png);}\r
+</style>\r
+<div id="ie7-graphics"><div class="box"></div></div>\r
+\r
+<h3>ie7-fixed.js</h3>\r
+<style type="text/css">\r
+ #ie7-fixed {background-color: white; height: 20px;}\r
+ #ie7-fixed div.box {position: fixed; top: -20px; background-color: black; height: 20px;}\r
+</style>\r
+<div id="ie7-fixed"><div class="box"></div></div>\r
+\r
+<h3>ie7-css2-selectors.js</h3>\r
+<style type="text/css">\r
+ #ie7-css2-selectors {background-color: black; height: 20px;}\r
+ #ie7-css2-selectors > span {display: block; background-color: white; height: 20px;}\r
+</style>\r
+<div id="ie7-css2-selectors"><span> </span></div>\r
+\r
+<h3>ie7-css3-selectors.js</h3>\r
+<style type="text/css">\r
+ #ie7-css3-selectors {background-color: black; height: 20px;}\r
+ #ie7-css3-selectors:empty {background-color: white;}\r
+</style>\r
+<div id="ie7-css3-selectors"></div>\r
+\r
+<h3>ie7-css-strict.js</h3>\r
+<style type="text/css">\r
+ #ie7-css-strict {background-color: black; height: 20px;}\r
+ #ie7-css-strict > span.strict {display: block; background-color: white; height: 20px;}\r
+ #ie7-css-strict > span {display: block; background-color: black}\r
+</style>\r
+<div id="ie7-css-strict"><span class="strict"></span></div>\r
+</div>\r
+\r
+<div class="footer">\r
+<hr />\r
+<a href="http://dean.edwards.name/IE7/"><img src="ie7.gif" width="80" height="15" alt="IE7 Enhanced"/></a>\r
+</div>\r
+</div>\r
+</body>
+</html>
diff --git a/website/inc/button.png b/website/inc/button.png
new file mode 100644 (file)
index 0000000..d8a7a0e
Binary files /dev/null and b/website/inc/button.png differ
index 0000000..d8a7a0e
Binary files /dev/null and b/website/inc/button.png differ
diff --git a/website/inc/customtags.inc b/website/inc/customtags.inc
--- /dev/null
@@ -0,0 +1,118 @@
+<define-tag where>\
+<perl>
+my $path=$WML_SRC_DIRNAME."/".$WML_SRC_BASENAME;
+$path =~ s|.+?website/||s;
+print "$path.en.html";
+</perl>\
+</define-tag>
+
+#
+# an rrdworld entry
+#
+#<rrdworld type="extension|application"
+# icon="rumble.png" > <!-- Size 100x66 -->
+#
+# <name> RRRRumble </name>
+# <author> Peter Example </author>
+#<description> Makes rrdtool rumble when new data is added </description>
+# <homepage> http://somesite.blabla.plac </homepage>
+# <year> 2005 </year><month> 4 </month>
+# <license> GPL </license>
+#
+# <!-- Optional -->
+#
+# <livesite> http://somesite.blabla.plac </livesite>
+# <email> max@example.com </email>
+#
+#</rrdworld>
+
+#<gallery image="graph.png" >
+#
+# <title> Virus Graph </title>
+# <author> Max Beispiel </author>
+#<description> The five most common critters of the week. </description>
+# <year> 2005 </year><month> 4 </month>
+#
+# <!-- Optional -->
+#
+# <livesite> http://somesite.blabla.plac </livesite>
+# <email> max@example.com </email>
+#
+#</gallery>
+
+
+
+<define-tag name endtag=required ><set-var-x name=rwv_name><h3>%body</h3></set-var-x></define-tag>
+<define-tag title endtag=required ><set-var-x name=rwv_title><h2>%body</h2></set-var-x></define-tag>
+<define-tag author endtag=required ><set-var-x name=rwv_author>%body</set-var-x></define-tag>
+<define-tag description endtag=required ><set-var-x name=rwv_description>%body</set-var-x></define-tag>
+<define-tag homepage endtag=required ><set-var-x name=rwv_homepage> ... <a href="<subst-in-string %body " " "" />">[home]</a></set-var-x></define-tag>
+<define-tag year endtag=required ><set-var-x name=rwv_year> %body </set-var-x></define-tag>
+<define-tag month endtag=required ><set-var-x name=rwv_month> /%body </set-var-x></define-tag>
+<define-tag license endtag=required ><set-var-x name=rwv_license>License: %body</set-var-x></define-tag>
+<define-tag livesite endtag=required ><set-var-x name=rwv_livesite> <a href="<subst-in-string "%body" " " "" />">[demo]</a></set-var-x></define-tag>
+<define-tag email endtag=required ><set-var-x name=rwv_email><<subst-in-string <subst-in-string "%body" " " "" /> @ "@<span class="legacy">XYZ-</span>" />></set-var-x></define-tag>
+
+<define-tag rrdworld endtag=required>
+<preserve icon type rwv_name rwv_author rwv_description rwv_homepage rwv_year rwv_month rwv_license rwv_livesite rwv_email/>
+<set-var %attributes />
+%body
+<subst-in-var rwv_year " " ""/>
+<subst-in-var rwv_month " " ""/>
+<div class="rrdworld">
+<if <get-var icon/> <img align="right" src="<subst-in-string <get-var icon/> " " "" />"/> />
+<get-var rwv_name/>
+<div class="who"><get-var rwv_author/> <get-var rwv_email/> | Date: <get-var rwv_year/><get-var rwv_month/> | <get-var rwv_license/></div>
+<div class="desc">
+<get-var rwv_description/>
+<get-var rwv_homepage/><get-var rwv_livesite/>
+</div>
+</div>
+<restore icon type rwv_name rwv_author rwv_description rwv_homepage rwv_year rwv_month rwv_license rwv_livesite rwv_email/>
+</define-tag>
+
+<define-tag gallery endtag=required>
+<preserve image rwv_title rwv_author rwv_description rwv_year rwv_month rwv_livesite rwv_email/>
+<set-var %attributes />
+%body
+<subst-in-var rwv_year " " ""/>
+<subst-in-var rwv_month " " ""/>
+<div class="gallery">
+<get-var rwv_title/>
+<div class="image"><img src="<subst-in-string <get-var image/> " " "" />"/></div>
+<div class="caption"><get-var rwv_description/> -- <get-var rwv_author/> <get-var rwv_email/>, <get-var rwv_year/><get-var rwv_month/> <get-var rwv_livesite/></div>
+</div>
+<restore image rwv_title rwv_author rwv_description rwv_year rwv_month rwv_livesite rwv_email/>
+</define-tag>
+
+
+<define-tag lastchange>
+<perl>
+use POSIX qw(strftime);
+use POSIX qw(locale_h);
+ setlocale(LC_TIME,"de");
+ my $x_de = strftime "%e. %B %Y", localtime("$(WML_SRC_TIME)");
+ setlocale(LC_TIME,"en_US");
+ my $x_en = strftime "%B %e, %Y", localtime("$(WML_SRC_TIME)");
+ $x_de=~ s/\s/ /g;
+ $x_en=~ s/\s/ /g;
+</perl>
+<en>
+<perl>
+ print $x_en;
+</perl>
+</en>
+<de>
+<perl>
+ print $x_de;
+</perl>
+</de>
+</define-tag>
+
+<define-tag picture endtag=required>
+<div class="pic"><img src="%body" align=left/></div>
+</define-tag>
+
+
+
+# vi: ft=wml
diff --git a/website/inc/design.css b/website/inc/design.css
--- /dev/null
+++ b/website/inc/design.css
@@ -0,0 +1,277 @@
+body {
+ margin: 10px;
+ padding: 0px;
+ font-family: sans-serif;
+ line-height: 1.5em;
+ text-align: center;
+}
+
+/* hide old stuff */
+.legacy {
+ display: none;
+}
+
+/**************************
+ * layout
+ **************************/
+table#frame {
+ width: 950px;
+ margin: 10px auto;
+ border-collapse: collapse;
+ text-align: left;
+}
+
+table#frame > tr > td {
+ vertical-align: top;
+ margin: 0px;
+ padding: 0px;
+}
+
+
+/**************************
+ * body
+ **************************/
+div#body {
+ margin-left: 40px;
+ margin-right: 6px;
+ margin-bottom: 40px;
+ margin-top: 60px;
+}
+
+div#body h1 {
+ color: #717fe5;
+ margin-top: 0px;
+ margin-bottom: 0.5em;
+ padding-bottom: 0.1em;
+ line-height: 1em;
+ font-size: 220%;
+ border-bottom-style: solid;
+ border-bottom-width: 4px;
+ border-bottom-color: #808080;
+}
+
+div#body h2 {
+ margin-top: 0.6em;
+ margin-bottom: 0.1em;
+}
+
+
+div#body a {
+ color: #4a71e4;
+}
+
+div#body a[name] {
+ color: black;
+}
+
+div#body a:hover {
+ color: #7b9dff;
+}
+
+div#body h2 a,
+div#body h3 a,
+div#body h4 a,
+div#body h5 a,
+div#body h2,
+div#body h3,
+div#body h4,
+div#body h5 {
+ color: #606060;
+}
+
+div#body dl dd {
+ margin-left: 1.5em;
+}
+
+div#body dl dt {
+ padding-top: 1em;
+ font-weight: bold;
+}
+
+div#body dl dt a {
+ text-decoration: none;
+}
+
+div#body dl p {
+ margin-bottom: 0.2em;
+ margin-top: 0.2em;
+}
+
+div#body pre {
+ border-style: solid;
+ border-color: #bfbfbf;
+ border-width: 1px;
+ background-color: #E8E8E8;
+ padding: 1em;
+}
+
+div#body pre a{
+ color: black;
+}
+
+div#googlead_right {
+ background-color: white;
+ float: right;
+ margin-top: 5px;
+ padding-left: 20px;
+ margin-left: 20px;
+ padding-right: 0px;
+ padding-bottom: 10px;
+}
+
+/**************************
+ * footer
+ **************************/
+table#frame td#footcell {
+ padding-left: 40px;
+}
+
+div#address {
+}
+
+div#address small {
+ color: #202020;
+ font-size: 90%;
+}
+
+div#address a {
+ color: #202020;
+ text-decoration: none;
+}
+
+/**************************
+ * logo
+ **************************/
+
+div#logo {
+ float: right;
+ height: 78px;
+ width: 190px;
+ background-image: url("rrdtool-3dlogo.png");
+}
+
+/**************************
+ * rrdworld
+ **************************/
+
+div.rrdworld h3 {
+ background: #E0E0F0;
+ margin-top: 0.1em;
+ margin-bottom: 0.3em;
+ padding: 3px;
+}
+
+div.rrdworld {
+ border-style: solid;
+ border-color: #bfbfbf;
+ border-width: 1px;
+ background-color: #D0D0D0;
+ padding: 1em;
+ margin-top: 0.5em;
+ margin-bottom: 1em;
+}
+
+
+/**************************
+ * mirrors
+ **************************/
+
+div#mirrors {
+ float: left;
+ padding: 3px;
+ padding-left: 40px;
+ font-size: 10px;
+}
+
+div#mirrors,
+div#mirrors a {
+ color: #606060;
+}
+
+
+/**************************
+ * menu
+ **************************/
+table#frame td#leftcornercell,
+table#frame td#menucell {
+ width: 10%;
+ background-color: #F0F0F0;
+}
+
+div#menu {
+ font-weight: normal;
+ margin-top: 20px;
+ margin-left: 10px;
+ margin-right: 10px;
+ font-size: 14px;
+ width: 200px;
+ line-height: 1em;
+}
+
+div#menu li {
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-top-style: dotted;
+ border-top-width: 1px;
+ border-top-color: #444;
+}
+
+div#menu li li {
+ padding-top: 3px;
+ padding-bottom: 3px;
+ border-top-color: #ccc;
+}
+
+div#menu a {
+ color: black;
+ text-decoration: none;
+}
+
+div#menu ul ul a {
+ color: black;
+ text-decoration: none;
+}
+
+div#menu ul {
+ list-style: none;
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+div#menu ul ul {
+ padding-left: 10px;
+ font-size: 12px;
+}
+
+div#menu ul a,
+div#menu ul div.selected {
+ padding-left: 0px;
+}
+
+div#menu ul ul {
+ margin-top: 3px;
+}
+
+div#menu > ul {
+ border-bottom-style: dotted;
+ border-bottom-width: 1px;
+ border-bottom-color: #888;
+}
+
+div#menu ul ul ul li {
+ padding-left: 1em;
+}
+
+div#menu a:hover {
+ color: #5c5b8a;
+}
+
+div#menu a:active {
+ color: #373672;
+}
+
+div#menu li div.selected {
+ color: 1d255f;
+ font-weight: bold;
+}
+
diff --git a/website/inc/event.js b/website/inc/event.js
--- /dev/null
+++ b/website/inc/event.js
@@ -0,0 +1,149 @@
+// event.js: cross-browser Listener-style event handling
+// version 0.9, 18-Apr-2001
+// written by Andrew Clover <and@doxdesk.com>, use freely
+
+event_list= new Array();
+
+event_level= 0;
+if (document.implementation)
+ if (document.implementation.hasFeature('Events', '2.0'))
+ event_level= 2;
+
+function event_addListener(esource, etype, elistener) {
+ var i;
+ var alreadyTriggering= false;
+ for (i= 0; i<event_list.length; i++) {
+ if (event_list[i][0]==esource && event_list[i][1]==etype) {
+ if (event_list[i][2]==elistener) return;
+ alreadyTriggering= true;
+ } }
+ event_list[event_list.length]= new Array(esource, etype, elistener);
+ if (!alreadyTriggering) {
+ if (event_level==2) {
+ if (esource==window && !(esource.addEventListener))
+ esource= document; // Opera 7.2
+ esource.addEventListener(etype, event_trigger_DOM2, false);
+ } else {
+ eval(event_trigger_DOM0(etype));
+ esource['on'+etype]= event_trigger;
+ if (esource.captureEvents)
+ esource.captureEvents('Event.'+etype.toUpperCase());
+ } }
+}
+
+function event_removeListener(esource, etype, elistener) {
+ var i; var e;
+ var j= 0;
+ var removedListener= false;
+ var keepTrigger= false;
+ for (i= 0; i<event_list.length; i++) {
+ if (event_list[i][0]==esource && event_list[i][1]==etype) {
+ if (event_list[i][2]==elistener) {
+ removedListener= true;
+ continue;
+ }
+ else keepTrigger= true;
+ }
+ if (i!=j) event_list[j]= event_list[i];
+ j++;
+ }
+ event_list.length= j;
+ if (removedListener && !keepTrigger) {
+ if (event_level==2)
+ esource.removeEventListener(etype, elistener, true);
+ else
+ esource['on'+etype]= window.clientInformation ? null : window.undefined;
+ }
+}
+
+function event_trigger_DOM2(e) {
+ if (event_dispatch(e.target, e.type)==false)
+ e.preventDefault();
+}
+
+function event_trigger_DOM0(t) {
+ return 'function event_trigger() {return event_dispatch(this, \''+t+'\');}';
+}
+
+function event_dispatch(esource, etype) {
+ var i; var r;
+ var elisteners= new Array();
+ var result= window.undefined;
+ for (i= 0; i<event_list.length; i++)
+ if (event_list[i][0]==esource && event_list[i][1]==etype)
+ elisteners[elisteners.length]= event_list[i][2];
+ for (i= 0; i<elisteners.length; i++) {
+ r= elisteners[i](esource, etype);
+ if (r+''!='undefined') result= r;
+ }
+ return result;
+}
+
+// convenience prevent-default-action listener
+function event_prevent(esource, etype) { return false; }
+
+// page finished loading detector for binding
+var event_loaded= false;
+function event_load(esource, etype) {
+ event_loaded= true;
+ event_removeListener(window, 'load', event_load);
+}
+event_addListener(window, 'load', event_load);
+
+// binding helper
+var event_BINDDELAY= 750;
+var event_binds= new Array();
+
+function event_addBinding(btag, blistener) {
+ event_binds[event_binds.length]= new Array(btag, 0, blistener);
+ if (event_intervalling)
+ event_bind();
+ else {
+ event_intervalling= true;
+ window.setTimeout(event_interval, 0);
+ }
+}
+
+var event_intervalling= false;
+function event_interval() {
+ event_bind();
+ if (!event_loaded)
+ window.setTimeout(event_interval, event_BINDDELAY);
+}
+
+function event_bind() {
+ var i, j, els, blistener;
+ for (i= event_binds.length; i-->0;) {
+ els= event_getElementsByTag(event_binds[i][0]);
+ blistener= event_binds[i][2];
+ for (j= event_binds[i][1]; j<els.length; j++)
+ blistener(els[j]);
+ event_binds[i][1]= event_getElementsByTag(event_binds[i][0]).length;
+ }
+}
+
+// get elements by tag name with backup for pre-DOM browsers
+var event_NIL= new Array();
+function event_getElementsByTag(tag) {
+ if (document.getElementsByTagName) {
+ var arr= document.getElementsByTagName(tag);
+ // IE5.0/Win doesn't support '*' for all tags
+ if (tag!='*' || arr.length>0) return arr;
+ }
+ if (document.all) {
+ if (tag=='*') return event_array(document.all);
+ else return event_array(document.all.tags(tag));
+ }
+ tag= tag.toLowerCase();
+ if (tag=='a') return event_array(document.links);
+ if (tag=='img') return event_array(document.images);
+ if (tag=='form') return event_array(document.forms);
+ if (document.layers && tag=='div') return event_array(document.layers);
+ return event_NIL;
+}
+function event_array(coll) {
+ var arr= new Array(coll.length);
+ for (var i= arr.length; i-->0;)
+ arr[i]= coll[i];
+ return arr;
+}
\ No newline at end of file
diff --git a/website/inc/favicon.ico b/website/inc/favicon.ico
new file mode 100644 (file)
index 0000000..7d08dd4
Binary files /dev/null and b/website/inc/favicon.ico differ
index 0000000..7d08dd4
Binary files /dev/null and b/website/inc/favicon.ico differ
diff --git a/website/inc/fixed.js b/website/inc/fixed.js
--- /dev/null
+++ b/website/inc/fixed.js
@@ -0,0 +1,354 @@
+// fixed.js: fix fixed positioning and fixed backgrounds in IE/Win
+// version 1.8, 08-Aug-2003
+// written by Andrew Clover <and@doxdesk.com>, use freely
+
+/*@cc_on
+@if (@_win32 && @_jscript_version>4)
+
+var fixed_positions= new Array();
+var fixed_backgrounds= new Array();
+var fixed_viewport;
+
+// Initialisation. Called when the <body> tag arrives. Set up viewport so the
+// rest of the script knows we're going, and add a measurer div, used to detect
+// font size changes and measure image sizes for backgrounds later
+
+function fixed_init() {
+ fixed_viewport= (document.compatMode=='CSS1Compat') ?
+ document.documentElement : document.body;
+ var el= document.createElement('div');
+ el.setAttribute('id', 'fixed-measure');
+ el.style.position= 'absolute';
+ el.style.top= '0'; el.style.left= '0';
+ el.style.overflow= 'hidden'; el.style.visibility= 'hidden';
+ el.style.fontSize= 'xx-large'; el.style.height= '5em';
+ el.style.setExpression('width', 'fixed_measureFont()');
+ document.body.insertBefore(el, document.body.firstChild);
+}
+
+// Binding. Called every time an element is added to the document, check it
+// for fixed features, if found add to our lists and set initial props
+
+function fixed_bind(el) {
+ var needLayout= false;
+ var tag= el.tagName.toLowerCase();
+ var st= el.style;
+ var cst= el.currentStyle;
+ var anc;
+
+ // find fixed-position elements
+ if (cst.position=='fixed') {
+ needLayout= true;
+ fixed_positions[fixed_positions.length]= el;
+ // store original positioning as we'll overwrite it
+ st.position= 'absolute';
+ st.fixedPLeft= cst.left;
+ st.fixedPTop= cst.top;
+ st.fixedPRight= cst.right;
+ st.fixedPBottom= cst.bottom;
+ st.fixedPWidth= fixed_parseLength(cst.width);
+ st.fixedPHeight= fixed_parseLength(cst.height);
+ // find element that will act as containing box, for convenience later
+ st.fixedCB= null;
+ for (anc= el; (anc= anc.parentElement).parentElement;) {
+ if (anc.currentStyle.position!='static') {
+ st.fixedCB= anc;
+ break;
+ } }
+ // detect nested fixed positioning (only ancestor need move)
+ st.fixedNest= false;
+ for (anc= el; anc= anc.parentElement;) {
+ if (anc.style.fixedNest!=null)
+ st.fixedNest= true;
+ break;
+ }
+ }
+
+ // find fixed-background elements (not body/html which IE already gets right)
+ if (cst.backgroundAttachment=='fixed' && tag!='body' && tag!='html') {
+ needLayout= true;
+ fixed_backgrounds[fixed_backgrounds.length]= el;
+ // get background offset, converting from keyword if necessary
+ st.fixedBLeft= fixed_parseLength(cst.backgroundPositionX);
+ st.fixedBTop= fixed_parseLength(cst.backgroundPositionY);
+ // if it's a non-zero %age, need to know size of image for layout
+ if (st.fixedBLeft[1]=='%' || st.fixedBTop[1]=='%') {
+ st.fixedBWidth= 0; st.fixedBHeight= 0;
+ fixed_measureBack(el);
+ }
+ }
+ if (needLayout) fixed_layout();
+}
+
+// Layout. On every window or font size change, recalculate positioning
+
+// Request re-layout at next free moment
+var fixed_delaying= false;
+function fixed_delayout() {
+ if (fixed_delaying) return;
+ fixed_delaying= true;
+ window.setTimeout(fixed_layout, 0);
+}
+
+var fixed_ARBITRARY= 200;
+
+function fixed_layout() {
+ fixed_delaying= false;
+ if (!fixed_viewport) return;
+ var i, el, st, j, pr, tmp, A= 'auto';
+ var cb, cbLeft, cbTop, cbRight, cbBottom, oLeft, oTop, oRight, oBottom;
+ var vpWidth=fixed_viewport.clientWidth, vpHeight=fixed_viewport.clientHeight;
+
+ // calculate initial position for fixed-position elements [black magic]
+ for (i= fixed_positions.length; i-->0;) {
+ el= fixed_positions[i]; st= el.style;
+ // find positioning of containing block
+ cb= st.fixedCB; if (!cb) cb= fixed_viewport;
+ cbLeft= fixed_pageLeft(cb); cbTop= fixed_pageTop(cb);
+ if (cb!=fixed_viewport) { cbLeft+= cb.clientLeft; cbTop+= cb.clientTop; }
+ cbRight= fixed_viewport.clientWidth-cbLeft-cb.clientWidth;
+ cbBottom= fixed_viewport.clientHeight-cbTop-cb.clientHeight;
+ // if size is in %, must recalculate relative to viewport
+ if (st.fixedPWidth[1]=='%')
+ st.width= Math.round(vpWidth*st.fixedPWidth[0]/100)+'px';
+ if (st.fixedPHeight[1]=='%')
+ st.height= Math.round(vpHeight*st.fixedPHeight[0]/100)+'px';
+ // find out offset values at max size, to account for margins
+ st.left= A; st.right= '0'; st.top= A; st.bottom= '0';
+ oRight= el.offsetLeft+el.offsetWidth; oBottom= el.offsetTop+el.offsetHeight;
+ st.left= '0'; st.right= A; st.top= '0'; st.bottom= A;
+ oLeft= el.offsetLeft; oTop= el.offsetTop;
+ // use this to convert all edges to pixels
+ st.left= A; st.right= st.fixedPRight;
+ st.top= A; st.bottom= st.fixedPBottom;
+ oRight-= el.offsetLeft+el.offsetWidth;
+ oBottom-= el.offsetTop+el.offsetHeight;
+ st.left= st.fixedPLeft; st.top= st.fixedPTop;
+ oLeft= el.offsetLeft-oLeft; oTop= el.offsetTop-oTop;
+ // edge positioning fix
+ if (st.fixedPWidth[1]==A && st.fixedPLeft!=A && st.fixedPRight!=A) {
+ tmp= el.offsetLeft; st.left= A; st.width= fixed_ARBITRARY+'px';
+ tmp= fixed_ARBITRARY+el.offsetLeft-tmp+cbLeft+cbRight;
+ st.left= st.fixedPLeft; st.width= ((tmp<1)?1:tmp)+'px';
+ }
+ if (st.fixedPHeight[1]==A && st.fixedPTop!=A && st.fixedPBottom!=A) {
+ tmp= el.offsetTop; st.top= A; st.height= fixed_ARBITRARY+'px';
+ tmp= fixed_ARBITRARY+el.offsetTop-tmp+cbTop+cbBottom;
+ st.top= st.fixedPTop; st.height= ((tmp<1)?1:tmp)+'px';
+ }
+ // move all non-auto edges relative to the viewport
+ st.fixedCLeft= (st.fixedPLeft=='auto') ? oLeft : oLeft-cbLeft;
+ st.fixedCTop= (st.fixedPTop=='auto') ? oTop : oTop-cbTop;
+ st.fixedCRight= (st.fixedPRight=='auto') ? oRight : oRight-cbRight;
+ st.fixedCBottom= (st.fixedPBottom=='auto') ? oBottom : oBottom-cbBottom;
+ // remove left-positioning of right-positioned elements
+ if (st.fixedPLeft=='auto' && st.fixedPRight!='auto') st.fixedCLeft= 'auto';
+ if (st.fixedPTop=='auto' && st.fixedPBottom!='auto') st.fixedCTop= 'auto';
+ }
+
+
+ // calculate initial positioning of fixed backgrounds
+ for (i= fixed_backgrounds.length; i-->0;) {
+ el= fixed_backgrounds[i]; st= el.style;
+ tmp= st.fixedBImage;
+ if (tmp) {
+ if (tmp.readyState!='uninitialized') {
+ st.fixedBWidth= tmp.offsetWidth;
+ st.fixedBHeight= tmp.offsetHeight;
+ st.fixedBImage= window.undefined;
+ }
+ }
+ st.fixedBX= fixed_length(el, st.fixedBLeft, vpWidth-st.fixedBWidth);
+ st.fixedBY= fixed_length(el, st.fixedBTop, vpHeight-st.fixedBHeight);
+ }
+
+ // now call scroll() to set the positions from the values just calculated
+ fixed_scroll();
+}
+
+// Scrolling. Offset fixed elements relative to viewport scrollness
+
+var fixed_lastX, fixed_lastY;
+var fixed_PATCHDELAY= 300;
+var fixed_patching= false;
+
+// callback function after a scroll, because incorrect scroll position is
+// often reported first go!
+function fixed_patch() {
+ fixed_patching= false;
+ var scrollX= fixed_viewport.scrollLeft, scrollY= fixed_viewport.scrollTop;
+ if (scrollX!=fixed_lastX && scrollY!=fixed_lastY) fixed_scroll();
+}
+
+function fixed_scroll() {
+ if (!fixed_viewport) return;
+ var i, el, st, viewportX, viewportY;
+ var scrollX= fixed_viewport.scrollLeft, scrollY= fixed_viewport.scrollTop;
+ fixed_lastX= scrollX; fixed_lastY= scrollY;
+
+ // move non-nested fixed-position elements
+ for (i= fixed_positions.length; i-->0;) {
+ st= fixed_positions[i].style;
+ viewportX= (st.fixedNest) ? 0 : scrollX;
+ viewportY= (st.fixedNest) ? 0 : scrollY;
+ if (st.fixedCLeft!='auto') st.left= (st.fixedCLeft+viewportX)+'px';
+ if (st.fixedCTop!='auto') st.top= (st.fixedCTop+viewportY)+'px';
+ viewportX= (st.fixedCB==null || st.fixedCB==fixed_viewport) ? 0 : viewportX;
+ viewportY= (st.fixedCB==null || st.fixedCB==fixed_viewport) ? 0 : viewportY;
+ st.right= (st.fixedCRight-viewportX+1)+'px'; st.right= (st.fixedCRight-viewportX)+'px';
+ st.bottom= (st.fixedCBottom-viewportY+1)+'px'; st.bottom= (st.fixedCBottom-viewportY)+'px';
+ }
+
+ // align fixed backgrounds to viewport
+ for (i= fixed_backgrounds.length; i-->0;) {
+ el= fixed_backgrounds[i]; st= el.style;
+ viewportX= scrollX;
+ viewportY= scrollY;
+ while (el.offsetParent) {
+ viewportX-= el.offsetLeft+el.clientLeft;
+ viewportY-= el.offsetTop +el.clientTop;
+ el= el.offsetParent;
+ }
+ st.backgroundPositionX= (st.fixedBX+viewportX)+'px';
+ st.backgroundPositionY= (st.fixedBY+viewportY)+'px';
+ }
+
+ // call back again in a tic
+ if (!fixed_patching) {
+ fixed_patching= true;
+ window.setTimeout(fixed_patch, fixed_PATCHDELAY);
+ }
+}
+
+// Measurement. Load bg-image into an invisible element on the page, when
+// loaded write the width/height to an element's style for layout use; detect
+// when font size changes
+
+function fixed_measureBack(el) {
+ var measure= document.getElementById('fixed-measure');
+ var img= document.createElement('img');
+ img.setAttribute('src', fixed_parseURL(el.currentStyle.backgroundImage));
+ measure.appendChild(img);
+ el.style.fixedBImage= img;
+ if (img.readyState=='uninitialized')
+ img.attachEvent('onreadystatechange', fixed_measureBackImage_ready);
+}
+
+function fixed_measureBackImage_ready() {
+ var img= event.srcElement;
+ if (img && img.readyState!='uninitialized') {
+ img.detachEvent('onreadystatechange', fixed_measureBackImage_ready);
+ fixed_layout();
+ }
+}
+
+var fixed_fontsize= 0;
+function fixed_measureFont() {
+ var fs= document.getElementById('fixed-measure').offsetHeight;
+ if (fixed_fontsize!=fs && fixed_fontsize!=0)
+ fixed_delayout();
+ fixed_fontsize= fs;
+ return '5em';
+}
+
+// Utility. General-purpose functions
+
+// parse url() to get value inside
+
+function fixed_parseURL(v) {
+ v= v.substring(4, v.length-1);
+ if (v.charAt(0)=='"' && v.charAt(v.length-1)=='"' ||
+ v.charAt(0)=="'" && v.charAt(v.length-1)=="'")
+ return v.substring(1, v.length-1);
+ else return v;
+}
+
+// parse length or auto or background-position keyword into number and unit
+
+var fixed_numberChars= '+-0123456789.';
+var fixed_ZERO= new Array(0, 'px');
+var fixed_50PC= new Array(50, '%');
+var fixed_100PC= new Array(100, '%');
+var fixed_AUTO= new Array(0, 'auto');
+
+function fixed_parseLength(v) {
+ var num, i;
+ if (v=='left' || v=='top') return fixed_ZERO;
+ if (v=='right' || v=='bottom') return fixed_100PC;
+ if (v=='center') return fixed_50PC;
+ if (v=='auto') return fixed_AUTO;
+ i= 0;
+ while (i<v.length && fixed_numberChars.indexOf(v.charAt(i))!=-1)
+ i++;
+ num= parseFloat(v.substring(0, i));
+ if (num==0) return fixed_ZERO;
+ else return new Array(num, v.substring(i));
+}
+
+// convert parsed (number, unit) into a number of pixels
+
+function fixed_length(el, l, full) {
+ var tmp, x;
+ if (l[1]=='px') return l[0];
+ if (l[1]=='%') return Math.round(full*l[0]/100);
+ // other units - measure by setting position; this is rather inefficient
+ // but then these units are used for background-position so seldom...
+ tmp= el.currentStyle.left;
+ el.style.left= '0';
+ x= el.offsetLeft;
+ el.style.left= l[0]+l[1];
+ x= el.offsetLeft-x;
+ el.style.left= tmp;
+ return x;
+}
+
+// convert stupid IE offsetLeft/Top to page-relative values
+
+function fixed_pageLeft(el) {
+ var v= 0;
+ while (el.offsetParent) {
+ v+= el.offsetLeft;
+ el= el.offsetParent;
+ }
+ return v;
+}
+function fixed_pageTop(el) {
+ var v= 0;
+ while (el.offsetParent) {
+ v+= el.offsetTop;
+ el= el.offsetParent;
+ }
+ return v;
+}
+
+// Scanning. Check document every so often until it has finished loading. Do
+// nothing until <body> arrives, then call main init. Pass any new elements
+// found on each scan to be bound
+
+var fixed_SCANDELAY= 500;
+
+function fixed_scan() {
+ if (!document.body) return;
+ if (!fixed_viewport) fixed_init();
+ var el;
+ for (var i= 0; i<document.all.length; i++) {
+ el= document.all[i];
+ if (!el.fixed_bound) {
+ el.fixed_bound= true;
+ fixed_bind(el);
+ } }
+}
+
+var fixed_scanner;
+function fixed_stop() {
+ window.clearInterval(fixed_scanner);
+ fixed_scan();
+}
+
+fixed_scan();
+fixed_scanner= window.setInterval(fixed_scan, fixed_SCANDELAY);
+window.attachEvent('onload', fixed_stop);
+window.attachEvent('onresize', fixed_delayout);
+window.attachEvent('onscroll', fixed_scroll);
+
+@end @*/
diff --git a/website/inc/happy-tobi.png b/website/inc/happy-tobi.png
new file mode 100644 (file)
index 0000000..a0984cd
Binary files /dev/null and b/website/inc/happy-tobi.png differ
index 0000000..a0984cd
Binary files /dev/null and b/website/inc/happy-tobi.png differ
diff --git a/website/inc/html.inc b/website/inc/html.inc
--- /dev/null
+++ b/website/inc/html.inc
@@ -0,0 +1,99 @@
+<define-tag h1 whitespace=delete endtag=required>
+<preserve subtitle />
+<set-var %attributes />
+<h1*>%body</h1*>
+{#H1_FLAT#:<: $x = <<kjhasdflkjhasdf;
+%body
+kjhasdflkjhasdf
+$x =~ s/\\n/ /g; print $x; :>:#H1_FLAT#}
+<if <get-var title_is_set /> ""
+ {#Title#:{#H1_FLAT#}:#Title#}
+/>
+<div id="googlead_right">
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+/* rrdtool top right */
+google_ad_slot = "4985488960";
+google_ad_width = 300;
+google_ad_height = 250;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</div>
+<restore subtitle />
+</define-tag>
+
+<define-tag title whitespace=delete endtag=required>
+<set-var title_is_set=1/>
+{#!Title#:<: $_ = <<kjhasdflkjhasdf;
+%body
+kjhasdflkjhasdf
+s/\\n/ /g; print :>:#Title#}
+</define-tag>
+
+<perl>my $addcount=0;</perl>
+
+<define-tag h2 whitespace=delete endtag=required>
+<perl>
+$addcount++;
+if ($addcount == 7){
+print <<'GOOGLEAD';
+<p>
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 300;
+google_ad_height = 250;
+google_ad_format = "300x250_as";
+google_ad_type = "text_image";
+google_ad_channel ="9159032853";
+google_color_border = "ffffff";
+google_color_bg = "f0f8FF";
+google_color_link = "191919";
+google_color_url = "0066CC";
+google_color_text = "000000";
+#google_color_border = "ffffff";
+#google_color_bg = "ffffff";
+#google_color_link = "2c3fbf";
+#google_color_url = "000000";
+#google_color_text = "000000";
+//--></script>
+<script type="text/javascript"
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</p>
+GOOGLEAD
+}
+</perl>
+<h2* %attributes>%body</h2*>
+</define-tag>
+
+<define-tag h3 whitespace=delete endtag=required>
+<perl>
+$addcount++;
+if ($addcount == 7){
+print <<'GOOGLEAD';
+<p>
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 300;
+google_ad_height = 250;
+google_ad_format = "300x250_as";
+google_ad_type = "text_image";
+google_ad_channel ="9159032853";
+google_color_border = "ffffff";
+google_color_bg = "ffffff";
+google_color_link = "2c3fbf";
+google_color_url = "000000";
+google_color_text = "000000";
+//--></script>
+<script type="text/javascript"
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</p>
+GOOGLEAD
+}
+</perl>
+<h3* %attributes>%body</h3*>
+</define-tag>
diff --git a/website/inc/langset.inc b/website/inc/langset.inc
--- /dev/null
+++ b/website/inc/langset.inc
@@ -0,0 +1,34 @@
+#
+#
+# all definitions in the include rely on the existence of $LANG
+#
+#
+###############################################################################
+# define base languages of the document
+###############################################################################
+#use wml::std::lang
+<set-var lntmp=<downcase "$(LANGS)" /> />
+<while <match <get-var lntmp /> "[a-z][a-z]" />>
+ <set-var lan=<match <get-var lntmp /> "[a-z][a-z]" action=extract /> />
+ <set-var lntmp=<match <get-var lntmp /> "[a-z][a-z]" action=delete /> />
+ <lang:new id=<get-var lan /> short />
+</while>
+
+###############################################################################
+## creates .var file for automatic language selection
+###############################################################################
+[LANG_VAR:
+URI: $(WML_SRC_BASENAME)
+<set-var lntmp=<downcase "$(LANGS)" /> />
+<while <match <get-var lntmp /> "[a-z][a-z]" /> >
+ <set-var lan=<match <get-var lntmp /> "[a-z][a-z]" action=extract /> />
+ <set-var lntmp=<match <get-var lntmp /> "[a-z][a-z]" action=delete /> />
+<protect></protect>
+URI: $(WML_SRC_BASENAME).<get-var lan />.html
+Content-type: text/html
+Content-language: <get-var lan />
+</while>
+<protect></protect>
+URI: $(WML_SRC_BASENAME).en.html
+Content-type: text/html
+:LANG_VAR]
diff --git a/website/inc/minmax.js b/website/inc/minmax.js
--- /dev/null
+++ b/website/inc/minmax.js
@@ -0,0 +1,144 @@
+// minmax.js: make IE5+/Win support CSS min/max-width/height
+// version 1.0, 08-Aug-2003
+// written by Andrew Clover <and@doxdesk.com>, use freely
+
+/*@cc_on
+@if (@_win32 && @_jscript_version>4)
+
+var minmax_elements;
+
+minmax_props= new Array(
+ new Array('min-width', 'minWidth'),
+ new Array('max-width', 'maxWidth'),
+ new Array('min-height','minHeight'),
+ new Array('max-height','maxHeight')
+);
+
+// Binding. Called on all new elements. If <body>, initialise; check all
+// elements for minmax properties
+
+function minmax_bind(el) {
+ var i, em, ms;
+ var st= el.style, cs= el.currentStyle;
+
+ if (minmax_elements==window.undefined) {
+ // initialise when body element has turned up, but only on IE
+ if (!document.body || !document.body.currentStyle) return;
+ minmax_elements= new Array();
+ window.attachEvent('onresize', minmax_delayout);
+ // make font size listener
+ em= document.createElement('div');
+ em.setAttribute('id', 'minmax_em');
+ em.style.position= 'absolute'; em.style.visibility= 'hidden';
+ em.style.fontSize= 'xx-large'; em.style.height= '5em';
+ em.style.top='-5em'; em.style.left= '0';
+ if (em.style.setExpression) {
+ em.style.setExpression('width', 'minmax_checkFont()');
+ document.body.insertBefore(em, document.body.firstChild);
+ }
+ }
+
+ // transform hyphenated properties the browser has not caught to camelCase
+ for (i= minmax_props.length; i-->0;)
+ if (cs[minmax_props[i][0]])
+ st[minmax_props[i][1]]= cs[minmax_props[i][0]];
+ // add element with properties to list, store optimal size values
+ for (i= minmax_props.length; i-->0;) {
+ ms= cs[minmax_props[i][1]];
+ if (ms && ms!='auto' && ms!='none' && ms!='0' && ms!='') {
+ st.minmaxWidth= cs.width; st.minmaxHeight= cs.height;
+ minmax_elements[minmax_elements.length]= el;
+ // will need a layout later
+ minmax_delayout();
+ break;
+ } }
+}
+
+// check for font size changes
+
+var minmax_fontsize= 0;
+function minmax_checkFont() {
+ var fs= document.getElementById('minmax_em').offsetHeight;
+ if (minmax_fontsize!=fs && minmax_fontsize!=0)
+ minmax_delayout();
+ minmax_fontsize= fs;
+ return '5em';
+}
+
+// Layout. Called after window and font size-change. Go through elements we
+// picked out earlier and set their size to the minimum, maximum and optimum,
+// choosing whichever is appropriate
+
+// Request re-layout at next available moment
+var minmax_delaying= false;
+function minmax_delayout() {
+ if (minmax_delaying) return;
+ minmax_delaying= true;
+ window.setTimeout(minmax_layout, 0);
+}
+
+function minmax_stopdelaying() {
+ minmax_delaying= false;
+}
+
+function minmax_layout() {
+ window.setTimeout(minmax_stopdelaying, 100);
+ var i, el, st, cs, optimal, inrange;
+ for (i= minmax_elements.length; i-->0;) {
+ el= minmax_elements[i]; st= el.style; cs= el.currentStyle;
+
+ // horizontal size bounding
+ st.width= st.minmaxWidth; optimal= el.offsetWidth;
+ inrange= true;
+ if (inrange && cs.minWidth && cs.minWidth!='0' && cs.minWidth!='auto' && cs.minWidth!='') {
+ st.width= cs.minWidth;
+ inrange= (el.offsetWidth<optimal);
+ }
+ if (inrange && cs.maxWidth && cs.maxWidth!='none' && cs.maxWidth!='auto' && cs.maxWidth!='') {
+ st.width= cs.maxWidth;
+ inrange= (el.offsetWidth>optimal);
+ }
+ if (inrange) st.width= st.minmaxWidth;
+
+ // vertical size bounding
+ st.height= st.minmaxHeight; optimal= el.offsetHeight;
+ inrange= true;
+ if (inrange && cs.minHeight && cs.minHeight!='0' && cs.minHeight!='auto' && cs.minHeight!='') {
+ st.height= cs.minHeight;
+ inrange= (el.offsetHeight<optimal);
+ }
+ if (inrange && cs.maxHeight && cs.maxHeight!='none' && cs.maxHeight!='auto' && cs.maxHeight!='') {
+ st.height= cs.maxHeight;
+ inrange= (el.offsetHeight>optimal);
+ }
+ if (inrange) st.height= st.minmaxHeight;
+ }
+}
+
+// Scanning. Check document every so often until it has finished loading. Do
+// nothing until <body> arrives, then call main init. Pass any new elements
+// found on each scan to be bound
+
+var minmax_SCANDELAY= 500;
+
+function minmax_scan() {
+ var el;
+ for (var i= 0; i<document.all.length; i++) {
+ el= document.all[i];
+ if (!el.minmax_bound) {
+ el.minmax_bound= true;
+ minmax_bind(el);
+ } }
+}
+
+var minmax_scanner;
+function minmax_stop() {
+ window.clearInterval(minmax_scanner);
+ minmax_scan();
+}
+
+minmax_scan();
+minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);
+window.attachEvent('onload', minmax_stop);
+
+@end @*/
diff --git a/website/inc/navbar-def.inc b/website/inc/navbar-def.inc
--- /dev/null
@@ -0,0 +1,76 @@
+#
+# <ul>
+# <li>
+# <div><a href="../../index.de.html">Willkommen</a></div>
+# </li>
+# <li>
+# <div><a href="../../events/index.de.html">Veranstaltungen</a></div>
+# </li>
+# <li>
+# <div><a href="../../collegium/history.de.html">Das Collegium</a></div>
+# </li>
+# <li>
+# <div class="selected_head"><a href="../../who/employee/index.de.html">Who is who</a></div>
+# <ul>
+# <li>
+# <div><a href="../../who/employee/index.de.html">Mitarbeiter</a></div>
+# </li>
+# <li>
+# <div class="selected">Fellows</div>
+# <ul>
+# <li>
+# <div><a href="../../who/fellows/dalferth.de.html">Dalferth</a></div>
+# </li>
+# <li>
+# <div><a href="../../who/fellows/fehr.de.html">Fehr</a></div>
+# </li>
+# </ul>
+# </li>
+# </ul>
+# </li>
+# </ul>
+<define-tag nav:bar endtag=required>
+ <set-var __nav:level=%0 />
+ <navbar:define name="%1" urlbase="$(ROOT)/%2">
+ <navbar:header>
+ <ul*>
+ </navbar:header>
+ <navbar:footer>
+ </ul*>
+ </navbar:footer>
+ <navbar:prolog>
+ <li*><div*></navbar:prolog>
+ <navbar:epilog></div*></li*>
+ </navbar:epilog>
+ <navbar:prolog type="S"><li*><div* class="selected"></navbar:prolog>
+ <navbar:epilog type="S"></div></li*>
+ </navbar:epilog>
+ <navbar:filter>
+ <protect pass=2>
+ my ($mcode, $CFG, $select) = @_;
+ # have the top selected too
+ $mcode =~ s|<div>(.+?)</a><ul>|<div class="selected_head">$1</a></div><ul>|g;
+ $mcode =~ s|<div class="selected">([^<]+?)<ul>|<div class="selected">$1</div><ul>|g;
+ $mcode =~ s|</a><ul>|</a></div><ul>|g;
+ $mcode =~ s|</ul>\s*</div>\s*</li>|</ul></li>|g;
+ return $mcode;
+ </protect>
+ </navbar:filter>
+ %body
+ </navbar:define>
+</define-tag>
+
+<define-tag nav:but>
+ <if <match "%2" "http://|html$|\?|/$|^$" />
+ <navbar:button id="%0"
+ url="%2"
+ txt="%1"
+ menu="%3"
+ />
+ <navbar:button id="%0"
+ url="%2.<lang:star: * />.html"
+ txt="%1 "
+ menu="%3"
+ />
+ />
+</define-tag>
diff --git a/website/inc/position.js b/website/inc/position.js
--- /dev/null
+++ b/website/inc/position.js
@@ -0,0 +1,118 @@
+// position.js: make edge-positioning work on IE/Win
+// version 0.5, 15-Jul-2003
+// written by Andrew Clover <and@doxdesk.com>, use freely
+
+/*@cc_on
+@if (@_win32 && @_jscript_version>4)
+
+var position_h= new Array();
+var position_v= new Array();
+var position_viewport;
+var position_width= 0;
+var position_height= 0;
+var position_fontsize= 0;
+var position_ARBITRARY= 200;
+
+// Binding. Called on each new element; if the it's <body>, initialise script.
+// Check all new elements to see if they need our help, make lists of them
+
+function position_bind(el) {
+ if (!position_viewport) {
+ if (!document.body) return;
+ // initialisation
+ position_viewport= (document.compatMode=='CSS1Compat') ?
+ document.documentElement : document.body;
+ window.attachEvent('onresize', position_delayout);
+ var em= document.createElement('div');
+ em.setAttribute('id', 'position_em');
+ em.style.position= 'absolute'; em.style.visibility= 'hidden';
+ em.style.fontSize= 'xx-large'; em.style.height= '5em';
+ em.style.top='-5em'; em.style.left= '0';
+ em.style.setExpression('width', 'position_checkFont()');
+ document.body.appendChild(em);
+ }
+
+ // check for absolute edge-positioned elements (ignore ones from fixed.js!)
+ var st= el.style; var cs= el.currentStyle;
+ if (cs.position=='absolute' && !st.fixedPWidth) {
+ if (cs.left!='auto' && cs.right!='auto') {
+ position_h[position_h.length]= el;
+ st.position_width= position_ARBITRARY;
+ st.width= st.position_width+'px';
+ position_delayout();
+ }
+ if (cs.top!='auto' && cs.bottom!='auto') {
+ position_v[position_v.length]= el;
+ st.position_height= position_ARBITRARY;
+ st.height= st.position_height+'px';
+ position_delayout();
+ } }
+}
+
+function position_checkFont() { position_delayout(); return '1em'; }
+
+// Layout. For each edge-positioned axis, measure difference between min-edge
+// and max-edge positioning, set size to the difference
+
+// Request re-layout at next available moment
+var position_delaying= false;
+function position_delayout() {
+ if (position_delaying) return;
+ position_delaying= true;
+ window.setTimeout(position_layout, 0);
+}
+
+function position_layout() {
+ position_delaying= false;
+ var i, el, st, pos, tmp;
+ var fs= document.all['position_em'].offsetWidth;
+ var newfs= (position_fontsize!=fs && position_fontsize!=0);
+ position_fontsize= fs;
+
+ // horizontal axis
+ if (position_viewport.clientWidth!=position_width || newfs) {
+ position_width= position_viewport.clientWidth;
+ for (i= position_h.length; i-->0;) {
+ el= position_h[i]; st= el.style; cs= el.currentStyle;
+ pos= el.offsetLeft; tmp= cs.left; st.left= 'auto';
+ st.position_width+= el.offsetLeft-pos; st.left= tmp;
+ if (st.position_width<1) st.position_width= 1;
+ st.width= st.position_width+'px';
+ } }
+ // vertical axis
+ if (position_viewport.clientHeight!=position_height || newfs) {
+ position_height= position_viewport.clientHeight;
+ for (i= position_v.length; i-->0;) {
+ el= position_v[i]; st= el.style; cs= el.currentStyle;
+ pos= el.offsetTop; tmp= cs.top; st.top= 'auto';
+ st.position_height+= el.offsetTop-pos; st.top= tmp;
+ if (st.position_height<1) st.position_height= 1;
+ st.height= st.position_height+'px';
+ } }
+}
+
+// Scanning. Check document every so often until it has finished loading. Do
+// nothing until <body> arrives, then call main init. Pass any new elements
+// found on each scan to be bound
+
+var position_SCANDELAY= 500;
+
+var position_nscanned= 0;
+function position_scan() {
+ var nall= document.all.length;
+ for (var i= position_nscanned; i<nall; i++)
+ position_bind(document.all[i]);
+ position_nscanned= nall;
+}
+
+var position_scanner;
+function position_stop() {
+ window.clearInterval(position_scanner);
+ position_scan();
+}
+
+position_scan();
+position_scanner= window.setInterval(position_scan, position_SCANDELAY);
+window.attachEvent('onload', position_stop);
+
+@end @*/
diff --git a/website/inc/pub_contrib_header.html b/website/inc/pub_contrib_header.html
--- /dev/null
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+<link rel="icon" href="../../inc/favicon.ico" type="image/ico" />
+<title>RRDtool - RRDtool Crontrib Area</title>
+<!--[if lt IE 7]><script src="../../inc/IE7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+
+<style type="text/css">
+<!--/* <![CDATA[ */
+/* ie5 for mac thinks this comment does not end here because of the backslash \*/
+@import url('../../inc/design.css');
+/* ]]> */-->
+</style>
+</head>
+<body>
+<table id="frame" summary="">
+<tr>
+<td valign="top" id="menucell"><!-- ############################# -->
+<!-- # MENU -->
+<!-- ############################# -->
+<div id="menu">
+<h2 class="legacy">Menu</h2>
+<ul>
+<li>
+<div><a href="../../index.en.html">Welcome</a></div>
+</li>
+<li>
+<div class="selected_head"><a href="../../download.en.html">Download</a></div>
+<ul>
+<li>
+<div><a href="../../pub/">/pub</a></div>
+</li>
+<li>
+<div class="selected">/contrib</div>
+</li>
+</ul>
+</li>
+<li>
+<div><a href="../../license.en.html">License</a></div>
+</li>
+<li>
+<div><a href="../../doc/index.en.html">Documentation</a></div>
+</li>
+<li>
+<div><a href="../../tut/index.en.html">Tutorials</a></div>
+</li>
+<li>
+<div><a href="../../support.en.html">Support</a></div>
+</li>
+<li>
+<div><a href="../../sponsor.en.html">Sponsorship</a></div>
+</li>
+<li>
+<div><a href="../../gallery/index.en.html">Gallery</a></div>
+</li>
+<li>
+<div><a href="../../rrdworld/index.en.html">RRDworld</a></div>
+</li>
+<li>
+<div><a href="../../prog/index.en.html">Programming</a></div>
+</li>
+<li>
+<div><a href="http://oss.oetiker.ch/rrdtool-trac/">RRDtrac</a></div>
+</li>
+<li>
+<div><a href="../../iana/index.en.html">RRD MIB</a></div>
+</li>
+<li>
+<div><a href="../../cast.en.html">Cast</a></div>
+</li>
+</ul>
+<br />
+<br />
+<br />
+<p><b>Gold Sponsors</b></p>
+<p><a href="http://www.groundworkopensource.com/products/landing_rrdtool"><img title="GroundWork Open Source" border="0" alt="GroundWork Open Source Logo" src="/rrdtool/logos/gw200x100.gif"/></a></p>
+<p><a href="http://www.zenoss.com/?rrdtool"><img border="0" title="Zenoss Open Source IT Monitoring" alt="Zenoss Open Source IT Monitoring" src="/rrdtool/logos/zenoss.png"/></a></p>
+<p><a href="../../sponsor.en.html">Silver Sponsors ...</a></p>
+<br />
+<br />
+<div><a href="http://tobi.oetiker.ch/wish/"><img border="0" alt="Make Tobi Happy" src="../inc/happy-tobi.png" width="45" height="27" /></a></div>
+<br />
+<div><iframe width="120" height="50" name="bandwidth" frameborder="0" src="../../hoster.html" id="bandwidth"></iframe></div>
+<br />
+<br /></div>
+</td>
+<!-- ############################# -->
+<!-- # Logo and Body -->
+<!-- ############################# -->
+<td id="bodycell">
+<div id="mirrors"><a href="http://oss.oetiker.ch/rrdtool/pub/contrib/index.en.html">Swiss Original</a>. Mirrors: <a href="http://rrdtool.mirror.graemef.net/pub/contrib/index.en.html">UK</a><!--Graeme Fowler <graeme@graemef.net>-->
+<a href="http://rrdtool.cs.pu.edu.tw/pub/contrib/index.en.html">TW</a><!--Hsun-Chang Chang <hsunchang@gmail.com>-->
+<a href="http://rrdtool.trexle.net/pub/contrib/index.en.html">US</a><!--Hossam Hossny <hossam@trexle.com>-->
+<a href="http://rrdtool.paracoda.com/pub/contrib/index.en.html">CA</a><!--Hossam Hossny <admin@paracoda.com>-->
+<a href="http://rrdtool.PlaySystems.ro/pub/contrib/index.en.html">RO</a><!--dan.draghici@ulbsibiu.ro--></div>
+<div id="logo">
+<div class="legacy">RRDtool
+<hr /></div>
+</div>
+<!-- ############################# -->
+<!-- # BODY -->
+<!-- ############################# -->
+<div id="body"><!-- google_ad_section_start -->
+<h1>RRDtool Crontrib Area</h1>
+<div><script type="text/javascript">
+//<![CDATA[
+<!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 728;
+google_ad_height = 90;
+google_ad_format = "728x90_as";
+google_ad_type = "text_image";
+google_ad_channel ="9544599248";
+google_color_border = "e6e6e6";
+google_color_bg = "f8f8f8";
+google_color_link = "0017C1";
+google_color_url = "270B83";
+google_color_text = "000000";
+//-->
+//]]>
+</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script></div>
diff --git a/website/inc/pub_footer.html b/website/inc/pub_footer.html
--- /dev/null
@@ -0,0 +1,23 @@
+<!-- google_ad_section_end --></div>
+</td>
+</tr>
+<tr>
+<td id="leftcornercell"></td>
+<td id="footcell"><!-- ############################# -->
+<!-- # FOOTER -->
+<!-- ############################# -->
+<div id="address"><small>10/25/06 | <a href="mailto:tobi@..delete..this..removethis.oetiker.ch">Tobias Oetiker</a> | <a href="http://it.oetiker.ch/monitoring/">OETIKER+PARTNER AG</a></small></div>
+</td>
+</tr>
+</table>
+<hr class="legacy" />
+<p class="legacy" style="border-width: 1px; border-color: red; padding: 5px;"><b>NOTE:</b> The content of this website is accessible with any browser. The graphical design though relies completely on CSS2 styles. If you see this text, this means that your browser does not support CSS2. Consider upgrading to a standard conformant browser like Mozilla <a href="http://www.getfirefox.com">Firefox</a> or <a href="http://www.opera.com">Opera</a> but also Apple's <a href="http://www.apple.com/safari/">Safari</a> or KDE's <a href="http://www.konqueror.org">Konqueror</a> for example. It may also be that you are looking at a mirror page which did not copy <a href="../inc/design.css">the CSS</a> for this page. Or if some pictu res are missing, then the mirror may not have picked up the contents of the <a href="../inc/">inc</a> directory.</p>
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script><script type="text/javascript">
+//<![CDATA[
+_uacct = "UA-374525-1";
+urchinTracker();
+//]]>
+</script>
+</body>
+</html>
diff --git a/website/inc/pub_header.html b/website/inc/pub_header.html
--- /dev/null
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+<link rel="icon" href="../inc/favicon.ico" type="image/ico" />
+<title>RRDtool - RRDtool Download Area</title>
+<!--[if lt IE 7]><script src="../inc/IE7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+
+<style type="text/css">
+<!--/* <![CDATA[ */
+/* ie5 for mac thinks this comment does not end here because of the backslash \*/
+@import url('../inc/design.css');
+/* ]]> */-->
+</style>
+</head>
+<body>
+<table id="frame" summary="">
+<tr>
+<td valign="top" id="menucell"><!-- ############################# -->
+<!-- # MENU -->
+<!-- ############################# -->
+<div id="menu">
+<h2 class="legacy">Menu</h2>
+<ul>
+<li>
+<div><a href="../index.en.html">Welcome</a></div>
+</li>
+<li>
+<div class="selected_head"><a href="../download.en.html">Download</a></div>
+<ul>
+<li>
+<div class="selected">/pub</div>
+</li>
+<li>
+<div><a href="../pub/contrib/">/contrib</a></div>
+</li>
+</ul>
+</li>
+<li>
+<div><a href="../license.en.html">License</a></div>
+</li>
+<li>
+<div><a href="../doc/index.en.html">Documentation</a></div>
+</li>
+<li>
+<div><a href="../tut/index.en.html">Tutorials</a></div>
+</li>
+<li>
+<div><a href="../support.en.html">Support</a></div>
+</li>
+<li>
+<div><a href="../sponsor.en.html">Sponsorship</a></div>
+</li>
+<li>
+<div><a href="../gallery/index.en.html">Gallery</a></div>
+</li>
+<li>
+<div><a href="../rrdworld/index.en.html">RRDworld</a></div>
+</li>
+<li>
+<div><a href="../prog/index.en.html">Programming</a></div>
+</li>
+<li>
+<div><a href="http://oss.oetiker.ch/rrdtool-trac/">RRDtrac</a></div>
+</li>
+<li>
+<div><a href="../iana/index.en.html">RRD MIB</a></div>
+</li>
+<li>
+<div><a href="../cast.en.html">Cast</a></div>
+</li>
+</ul>
+<br />
+<br />
+<br />
+<p><b>Gold Sponsors</b></p>
+<p><a href="http://www.groundworkopensource.com/products/landing_rrdtool"><img title="GroundWork Open Source" border="0" alt="GroundWork Open Source Logo" src="/rrdtool/logos/gw200x100.gif"/></a></p>
+<p><a href="http://www.zenoss.com/?rrdtool"><img border="0" title="Zenoss Open Source IT Monitoring" alt="Zenoss Open Source IT Monitoring" src="/rrdtool/logos/zenoss.png"/></a></p>
+<p><a href="../sponsor.en.html">Silver Sponsors ...</a></p>
+<br />
+<br />
+<div><a href="http://tobi.oetiker.ch/wish/"><img border="0" alt="Make Tobi Happy" src="../inc/happy-tobi.png" width="45" height="27" /></a></div>
+<br />
+<br />
+<div><iframe width="120" height="50" name="bandwidth" frameborder="0" src="../hoster.html" id="bandwidth"></iframe></div>
+<br />
+<br /></div>
+</td>
+<!-- ############################# -->
+<!-- # Logo and Body -->
+<!-- ############################# -->
+<td id="bodycell">
+<div id="mirrors"><a href="http://oss.oetiker.ch/rrdtool/pub/index.en.html">Swiss Original</a>. Mirrors: <a href="http://rrdtool.mirror.graemef.net/pub/index.en.html">UK</a><!--Graeme Fowler <graeme@graemef.net>-->
+<a href="http://rrdtool.cs.pu.edu.tw/pub/index.en.html">TW</a><!--Hsun-Chang Chang <hsunchang@gmail.com>-->
+<a href="http://rrdtool.trexle.net/pub/index.en.html">US</a><!--Hossam Hossny <hossam@trexle.com>-->
+<a href="http://rrdtool.paracoda.com/pub/index.en.html">CA</a><!--Hossam Hossny <admin@paracoda.com>-->
+<a href="http://rrdtool.PlaySystems.ro/pub/index.en.html">RO</a><!--dan.draghici@ulbsibiu.ro--></div>
+<div id="logo">
+<div class="legacy">RRDtool
+<hr /></div>
+</div>
+<!-- ############################# -->
+<!-- # BODY -->
+<!-- ############################# -->
+<div id="body"><!-- google_ad_section_start -->
+<h1>RRDtool Download Area</h1>
+<div><script type="text/javascript">
+//<![CDATA[
+<!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 728;
+google_ad_height = 90;
+google_ad_format = "728x90_as";
+google_ad_type = "text_image";
+google_ad_channel ="9544599248";
+google_color_border = "e6e6e6";
+google_color_bg = "f8f8f8";
+google_color_link = "0017C1";
+google_color_url = "270B83";
+google_color_text = "000000";
+//-->
+//]]>
+</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script></div>
+
diff --git a/website/inc/rrdtool-3dlogo.png b/website/inc/rrdtool-3dlogo.png
new file mode 100644 (file)
index 0000000..d4e48a0
Binary files /dev/null and b/website/inc/rrdtool-3dlogo.png differ
index 0000000..d4e48a0
Binary files /dev/null and b/website/inc/rrdtool-3dlogo.png differ
diff --git a/website/inc/rrdtool-design.xar b/website/inc/rrdtool-design.xar
new file mode 100644 (file)
index 0000000..0f52479
Binary files /dev/null and b/website/inc/rrdtool-design.xar differ
index 0000000..0f52479
Binary files /dev/null and b/website/inc/rrdtool-design.xar differ
diff --git a/website/inc/rrdtool-gold.png b/website/inc/rrdtool-gold.png
new file mode 100644 (file)
index 0000000..e60eacc
Binary files /dev/null and b/website/inc/rrdtool-gold.png differ
index 0000000..e60eacc
Binary files /dev/null and b/website/inc/rrdtool-gold.png differ
diff --git a/website/inc/rrdtool-logo-dark.png b/website/inc/rrdtool-logo-dark.png
new file mode 100644 (file)
index 0000000..e9b930d
Binary files /dev/null and b/website/inc/rrdtool-logo-dark.png differ
index 0000000..e9b930d
Binary files /dev/null and b/website/inc/rrdtool-logo-dark.png differ
diff --git a/website/inc/rrdtool-logo-light.png b/website/inc/rrdtool-logo-light.png
new file mode 100644 (file)
index 0000000..26a3c64
Binary files /dev/null and b/website/inc/rrdtool-logo-light.png differ
index 0000000..26a3c64
Binary files /dev/null and b/website/inc/rrdtool-logo-light.png differ
diff --git a/website/inc/rrdtool-logo.png b/website/inc/rrdtool-logo.png
new file mode 100644 (file)
index 0000000..adf2b0e
Binary files /dev/null and b/website/inc/rrdtool-logo.png differ
index 0000000..adf2b0e
Binary files /dev/null and b/website/inc/rrdtool-logo.png differ
diff --git a/website/inc/rrdtool-logo.xar b/website/inc/rrdtool-logo.xar
new file mode 100644 (file)
index 0000000..544e5f2
Binary files /dev/null and b/website/inc/rrdtool-logo.xar differ
index 0000000..544e5f2
Binary files /dev/null and b/website/inc/rrdtool-logo.xar differ
diff --git a/website/inc/rrdtool-theme.png b/website/inc/rrdtool-theme.png
new file mode 100644 (file)
index 0000000..e862e9e
Binary files /dev/null and b/website/inc/rrdtool-theme.png differ
index 0000000..e862e9e
Binary files /dev/null and b/website/inc/rrdtool-theme.png differ
diff --git a/website/inc/silver-logo.png b/website/inc/silver-logo.png
new file mode 100644 (file)
index 0000000..8759bac
Binary files /dev/null and b/website/inc/silver-logo.png differ
index 0000000..8759bac
Binary files /dev/null and b/website/inc/silver-logo.png differ
diff --git a/website/inc/template.inc b/website/inc/template.inc
--- /dev/null
+++ b/website/inc/template.inc
@@ -0,0 +1,216 @@
+# this seems to confuse just too many things out there ...
+# guess following the standard is not there yet
+<?xml version="1.0" encoding="iso-8859-15"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+# this must be the very first line to make doc-type switching work on IE
+#use wml::std::logo
+#use wml::std::tags
+#use wml::des::space
+#use wml::des::imgdot
+#use wml::std::grid
+#use wml::fmt::url
+#include <inc/langset.inc>
+#include <inc/html.inc>
+#include <inc/customtags.inc>
+#use wml::des::navbar
+#include <inc/navbar-def.inc>
+#include <$(ROOT)/navbar.inc>
+<html lang="<lang:star: * />" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
+<link* rel="icon" href="$(ROOT)/inc/favicon.ico" type="image/ico" />
+..Title!>>RRDtool - Page without a Title<<..
+<title*>RRDtool - {#Title#}</title*>
+<protect>
+<!--[if lt IE 7]><script src="$(ROOT)/inc/IE7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+</protect>
+<style type="text/css">
+<!--/* <![CDATA[ */
+/* ie5 for mac thinks this comment does not end here because of the backslash \*/
+@import url('$(ROOT)/inc/design.css');
+## @import url('$(ROOT)/inc/design_$(TYPE).css');
+/* ]]> */-->
+</style>
+</head>
+<body>
+<table id="frame">
+<tr>
+<td valign="top" id="menucell">
+<!-- ############################# -->
+<!-- # MENU -->
+<!-- ############################# -->
+<div id="menu">
+<h2 class="legacy">Menu</h2>
+<navbar:render name=main menumode=inner nohints txtonly select=$(PAGE)/>
+<br/>
+<!-- SiteSearch Google -->
+<form method="get" action="http://oss.oetiker.ch/rrdtool/search.en.html" target="_top">
+<table border="0">
+<tr><td nowrap="nowrap" valign="top" align="left" height="32">
+<input type="hidden" name="domains" value="oss.oetiker.ch"></input>
+<label for="sbi" style="display: none">Enter your search terms</label>
+<input type="text" name="q" style="width: 180px" maxlength="255" value="" id="sbi"></input>
+</td></tr>
+<tr>
+<td nowrap="nowrap" valign="top">
+<table>
+<tr>
+<td>
+<input type="radio" name="sitesearch" value="" id="ss0"></input>
+<label for="ss0" title="Search the Web"><font size="-1" color="#000000">Web</font></label></td>
+<td>
+<input type="radio" name="sitesearch" value="oss.oetiker.ch" checked="checked" id="ss1"></input>
+<label for="ss1" title="Search oss.oetiker.ch"><font size="-1" color="#000000">oss.oetiker.ch</font></label></td>
+</tr>
+</table>
+<label for="sbb" style="display: none">Submit search form</label>
+<input type="submit" name="sa" value="Google Search" id="sbb"></input>
+<input type="hidden" name="client" value="pub-8135238818549668"></input>
+<input type="hidden" name="forid" value="1"></input>
+<input type="hidden" name="channel" value="6449489261"></input>
+<input type="hidden" name="ie" value="ISO-8859-1"></input>
+<input type="hidden" name="oe" value="ISO-8859-1"></input>
+<input type="hidden" name="safe" value="active"></input>
+<input type="hidden" name="cof" value="GALT:#0066CC;GL:1;DIV:#999999;VLC:336633;AH:center;BGC:FFFFFF;LBGC:FF9900;ALC:0066CC;LC:0066CC;T:000000;GFNT:666666;GIMP:666666;FORID:11"></input>
+<input type="hidden" name="hl" value="en"></input>
+</td></tr></table>
+</form>
+<!-- SiteSearch Google -->
+<br/>
+<br/>
+<p><b>Gold Sponsors</b></p>
+<p><a href="http://www.loopfuse.net/webrecorder/kredirect?kid=3&cid=LF_00c56f70"><img title="GroundWork Open Source" border="0" alt="GroundWork Open Source Logo" src="$(ROOT)/logos/gw200x100.gif"/></a></p>
+<p><a href="http://www.zenoss.com/rrdtool?utm_source=rrdtool&utm_medium=logolink&utm_campaign=inbound"><img border="0" title="Zenoss Open Source IT Monitoring" alt="Zenoss Open Source IT Monitoring" src="$(ROOT)/logos/zenoss.png"/></a></p>
+<p><a href="$(ROOT)/sponsor.<lang:star: */>.html">Silver Sponsors ...</a></p>
+<br/>
+<br/>
+<div>
+<a href="http://tobi.oetiker.ch/wish/"><img border="0" alt="Make Tobi Happy" src="$(ROOT)/inc/happy-tobi.png"/></a>
+</div>
+<br/>
+<br/>
+<div>
+<iframe width="120" height="50" name="bandwidth" frameborder="0" src="$(ROOT)/hoster.html"></iframe>
+</div>
+<br/>
+<br/>
+</div>
+</td>
+<!-- ############################# -->
+<!-- # Logo and Body -->
+<!-- ############################# -->
+<td id="bodycell" valign="top">
+# all mirrors seem dead currently
+<div id="mirrors">
+<a href="http://oss.oetiker.ch/rrdtool/<where/>">Swiss Original</a>. Mirrors:
+<a href="http://rrdtool.mirror.graemef.net/<where/>">UK</a><!--Graeme Fowler <graeme@graemef.net>-->
+#<a href="http://rrdtool.planetmirror.com/<where/>">AU</a><!--jason andrade <jason@dstc.edu.au>-->
+<a href="http://rrdtool.cs.pu.edu.tw/<where/>">TW</a><!--Hsun-Chang Chang <hsunchang@gmail.com>-->
+#<a href="http://ftp.heanet.ie/mirrors/oss.oetiker.ch/rrdtool/<where/>">IE</a><!-- <mirrors@heanet.ie>-->
+<a href="http://rrdtool.codemonkey.se/<where/>">SE</a><!--Hans Engren <hans@cyclone.se>-->
+<a href="http://rrdtool.basemirror.de/<where/>">DE</a><!--Baseportal Mirrors <mirrors@baseportal.de>-->
+<a href="http://rrdtool.mirroraty.org/<where/>">US</a><!--Hossam Hossny <hossam@trexle.com>-->
+#<a href="http://rrdtool.paracoda.com/<where/>">CA</a><!--Hossam Hossny <admin@paracoda.com>-->
+#<a href="http://rrdtool.PlaySystems.ro/<where/>">RO</a><!--dan.draghici@ulbsibiu.ro-->
+</div>
+<div id="logo">
+<div class="legacy">
+RRDtool
+<hr/>
+</div>
+</div>
+<!-- ############################# -->
+<!-- # BODY -->
+<!-- ############################# -->
+<div id="body">
+<!-- google_ad_section_start -->
+{#Body#}
+<!-- google_ad_section_end -->
+</div>
+</td>
+</tr>
+<tr>
+<td id="leftcornercell"></td>
+<td id="footcell">
+<!-- ############################# -->
+<!-- # FOOTER -->
+<!-- ############################# -->
+<perl>
+if ( -s "$(WML_SRC_BASENAME).wml" > 4000 ){
+print <<'GOOGLEAD';
+<div style="clear:right">
+<script type="text/javascript"><!--
+google_ad_client = "pub-8135238818549668";
+google_ad_width = 300;
+google_ad_height = 250;
+google_ad_format = "300x250_as";
+google_ad_type = "text_image";
+google_ad_channel ="6085696737";
+google_color_border = "ffffff";
+google_color_bg = "f0f8FF";
+google_color_link = "191919";
+google_color_url = "0066CC";
+google_color_text = "000000";
+//--></script>
+<script type="text/javascript"
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</div>
+GOOGLEAD
+}
+</perl>
+<div id="address">
+<small>
+<perl>
+<protect pass=2>
+use POSIX qw(strftime LC_TIME setlocale);
+foreach my $l (qw($(LANGS))){
+ my $lang = lc($l) eq 'de' ? 'de_CH' : $l;
+ $lang =~ s/^en.*/sv/i;
+ setlocale(LC_TIME,$lang);
+ my $year = strftime "%Y", localtime;
+ my $date = strftime "%x", localtime("$(WML_SRC_TIME)");
+ q{$(AUTHOR)} =~ m{(.+\S+)\s*(<.+>|http://.+)} || die q{No Match for $(AUTHOR)}."\n";
+ my $text=$1; my $url=$2; $url =~ s/<(\S+)(?:\@|_at_)(\S+)>/mailto:$1\@removethis.$2/;
+ my $LANG = uc("LANG_$l");
+ print <<LINE
+[$LANG:$date | <a href="$url">$text</a> | <a href="http://it.oetiker.ch/monitoring/">OETIKER+PARTNER AG</a>:$LANG]
+LINE
+}
+</protect>
+</perl>
+</small>
+</div>
+</td></tr>
+</table>
+<hr class="legacy"/>
+<p class="legacy" style="border-width: 1px; border-color: red; padding: 5px;">
+<en><b>NOTE:</b> The content of this website is accessible with any browser. The graphical
+design though relies completely on CSS2 styles. If you see this text, this means
+that your browser does not support CSS2. Consider upgrading to a standard conformant
+browser like Mozilla <a href="http://www.getfirefox.com">Firefox</a> or
+<a href="http://www.opera.com">Opera</a> but also Apple's <a href="http://www.apple.com/safari/">Safari</a>
+or KDE's <a href="http://www.konqueror.org">Konqueror</a> for example.
+It may also be that you are looking at a mirror page which did not copy <a href="$(ROOT)/inc/design.css">the CSS</a> for this page. Or if some pictu
+res are missing, then the mirror may not have picked up the contents of the <a href="$(ROOT)/inc/">inc</a> directory.</en>
+#<de><b>HINWEIS:</b> Diese Website funktioniert mit jedem Browser. Die graphische Präsentation jedoch
+#basiert komplett auf CSS2. Beispiele für CSS2 konforme Browser sind zum Beispiel <a href="http://www.getfirefox.com">Firefox</a>
+#<a href="http://www.opera.com">Opera</a> oder auch <a href="http://www.apple.com/safari/">Safari</a> von Apple und
+#<a href="http://www.konqueror.org">Konqueror</a> aus dem KDE Projekt.
+#</de>
+</p>
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("UA-374525-1");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
+</body>
+</html>
+
+# All the rest goes into Body
+..Body>>
+
diff --git a/website/inc/trac.css b/website/inc/trac.css
--- /dev/null
+++ b/website/inc/trac.css
@@ -0,0 +1,40 @@
+@import url(/rrdtool/inc/design.css);
+
+div#header {
+ display:none;
+}
+
+div#logo {
+ float: left;
+ margin-left: 36px;
+}
+table#frame {
+ width: auto;
+}
+
+div#menu a {
+ border-style: none;
+}
+
+div#menu a:hover {
+ background: inherit;
+}
+
+div#tracbody {
+ color: black;
+ margin: 40px;
+ margin-top: 40px;
+}
+
+div#tracbody h1 {
+ color: #717fe5;
+ margin-top: 10px;
+ margin-bottom: 0.5em;
+ padding-bottom: 0.1em;
+ line-height: 1em;
+ font-size: 220%;
+ border-bottom-style: solid;
+ border-bottom-width: 4px;
+ border-bottom-color: #606060;
+}
+
diff --git a/website/index.wml b/website/index.wml
--- /dev/null
+++ b/website/index.wml
@@ -0,0 +1,60 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "welcome">
+
+
+<h1>About RRDtool</h1>
+
+#<div style="float:right"><a style="border-width: 0px" href="http://www.oetiker.ch/press"><img src="award-white.png" border="0"/></a></div>
+
+<h2>What RRDtool does</h2>
+
+<p>RRDtool is the OpenSource industry standard, high performance data
+logging and graphing system for time series data. Use it to write your
+custom monitoring shell scripts or create whole applications using its Perl,
+Python, Ruby, TCL or PHP bindings.</p>
+
+<h2>Version 1.4 released, October 28th, 2009</h2>
+
+<p>RRDtool 1.4 comes with a much anticipated RRDcache Daemon, elevating the
+system to new performance levels it also contains a host of new and
+improved features. Read the <a href="http://n2.nabble.com/RRDtool-1-4-higher-Performance-and-cool-Features-tp3907839p3907839.html">announcement</a>.</p>
+
+<p><img src="stream-pop.png"/></p>
+
+<h2>RRDtool Training at LISA'09</h2>
+
+<p>On Monday, November 2, 2009, Tobi Oetiker is teaching two half day
+RRDtool tutorials at the Large Installation System Administration Conference
+(LISA'09): <a
+href="http://www.usenix.org/events/lisa09/training/tutonefile.html#m6">RRDtool
+First Steps</a> and <a
+href="http://www.usenix.org/events/lisa09/training/tutonefile.html#m9">RRDtool
+Advanced Topics</a>. <a
+href="http://www.usenix.org/events/lisa09/">Registration is now open</a>.</p>
+
+# <h2>Do you think RRDtool is cool?</h2>
+#
+# <p>Is RRDtool adding good value to your operations? Please consider <a
+# href="http://n2.nabble.com/Supporting-Tobi%27s-OSS-work-in-2009-tp1660428p1660428.html">supporting
+# my OSS work</a> in 2009.</p>
+
+
+<h2>Download</h2>
+
+<p>RRDtool is available for <a href="download.en.html">download</a> from
+this site. It compiles on a number of different Linux and Unix platforms as
+well as on Microsoft Windows.</p>
+
+<h2>RRDtool News Feeds</h2>
+
+<div>RRDtool Announcements feed <a href="http://feeds2.feedburner.com/RrdtoolAnnouncements" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds2.feedburner.com/RrdtoolAnnouncements" rel="alternate" type="application/rss+xml">subscribe in a reader</a></div>
+<div>RRDtool Bugs feed <a href="http://feeds2.feedburner.com/RRDtoolBugs" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/RRDtoolBugs" rel="alternate" type="application/rss+xml">subscribe in a reader</a></div>
+<div>RRDtool Wiki Updates <a href="http://feeds2.feedburner.com/RRDtoolWikiUpdates" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/RRDtoolWikiUpdates" rel="alternate" type="application/rss+xml">subscribe in a reader</a></div>
+<div>RRDtool Checkins <a href="http://feeds2.feedburner.com/RRDtoolCheckins" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/RRDtoolCheckins" rel="alternate" type="application/rss+xml">subscribe in a reader</a></div>
+
+<h2>Sponsorship and Appreciators</h2>
+
+<p>You like RRDtool? You want show your appreciation? You want to sponsor
+future development or a particular new feature? Check out our <a
+href="sponsor.en.html">Sponsorship and Appreciation</a> page or visit my <a href="http://tobi.oetiker.ch/wish">wish list</a>.</p>
+
diff --git a/website/license.wml b/website/license.wml
--- /dev/null
+++ b/website/license.wml
@@ -0,0 +1,29 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "license">
+
+<H1>License</H1>
+
+<H2>GNU General Public License</H2>
+
+<P>RRDtool is available under the terms of the <A
+HREF="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A>.
+This means you can do most things you want with this software as long as you
+do not claim you created the software and don't sell it (or modified version
+of it) under a license other than the GNU GPL.</P>
+
+<p>If you want to use RRDtool with an open source tool that has a GPL
+incompatible license, you may be able to get around the problem thanks to
+the <a
+href="http://oss.oetiker.ch/rrdtool-trac/browser/branches/1.2/program/COPYRIGHT">FLOSS
+License Exception</a> in the RRDtool license.</p>
+
+<H2>Give Credit</H2>
+
+<P>One of the things I get out of RRDtool is 'Being Known in the Industry'.
+This only works if you give credit. This means that you
+mention RRDtool on webpages and other publications containing graphs
+created with RRDtool. If possible, a link should be included in the
+publication, pointing to the RRDtool homepage. Best is to include one of the RRD
+TOOL logos on the page.</P>
+
+<p><img src="$(ROOT)/inc/rrdtool-logo-dark.png"/> <img src="$(ROOT)/inc/rrdtool-logo-light.png"/></p>
diff --git a/website/logos/Contego_Logo_101x51.gif b/website/logos/Contego_Logo_101x51.gif
new file mode 100644 (file)
index 0000000..e344da9
Binary files /dev/null and b/website/logos/Contego_Logo_101x51.gif differ
index 0000000..e344da9
Binary files /dev/null and b/website/logos/Contego_Logo_101x51.gif differ
diff --git a/website/logos/HE_Logo_101x51.gif b/website/logos/HE_Logo_101x51.gif
new file mode 100644 (file)
index 0000000..e3021fe
Binary files /dev/null and b/website/logos/HE_Logo_101x51.gif differ
index 0000000..e3021fe
Binary files /dev/null and b/website/logos/HE_Logo_101x51.gif differ
diff --git a/website/logos/asdasd_101x51.png b/website/logos/asdasd_101x51.png
new file mode 100644 (file)
index 0000000..2140d56
Binary files /dev/null and b/website/logos/asdasd_101x51.png differ
index 0000000..2140d56
Binary files /dev/null and b/website/logos/asdasd_101x51.png differ
diff --git a/website/logos/atc-onlane101x51.gif b/website/logos/atc-onlane101x51.gif
new file mode 100644 (file)
index 0000000..42027fc
Binary files /dev/null and b/website/logos/atc-onlane101x51.gif differ
index 0000000..42027fc
Binary files /dev/null and b/website/logos/atc-onlane101x51.gif differ
diff --git a/website/logos/atc-onlane101x51.png b/website/logos/atc-onlane101x51.png
new file mode 100644 (file)
index 0000000..7558931
Binary files /dev/null and b/website/logos/atc-onlane101x51.png differ
index 0000000..7558931
Binary files /dev/null and b/website/logos/atc-onlane101x51.png differ
diff --git a/website/logos/digicomp.gif b/website/logos/digicomp.gif
new file mode 100644 (file)
index 0000000..caee214
Binary files /dev/null and b/website/logos/digicomp.gif differ
index 0000000..caee214
Binary files /dev/null and b/website/logos/digicomp.gif differ
diff --git a/website/logos/google.png b/website/logos/google.png
new file mode 100644 (file)
index 0000000..d52e164
Binary files /dev/null and b/website/logos/google.png differ
index 0000000..d52e164
Binary files /dev/null and b/website/logos/google.png differ
diff --git a/website/logos/gw200x100.gif b/website/logos/gw200x100.gif
new file mode 100644 (file)
index 0000000..83bc39c
Binary files /dev/null and b/website/logos/gw200x100.gif differ
index 0000000..83bc39c
Binary files /dev/null and b/website/logos/gw200x100.gif differ
diff --git a/website/logos/hitflip.jpg b/website/logos/hitflip.jpg
new file mode 100644 (file)
index 0000000..49135e5
Binary files /dev/null and b/website/logos/hitflip.jpg differ
index 0000000..49135e5
Binary files /dev/null and b/website/logos/hitflip.jpg differ
diff --git a/website/logos/hitmeister.gif b/website/logos/hitmeister.gif
new file mode 100644 (file)
index 0000000..b808ce7
Binary files /dev/null and b/website/logos/hitmeister.gif differ
index 0000000..b808ce7
Binary files /dev/null and b/website/logos/hitmeister.gif differ
diff --git a/website/logos/lancope.png b/website/logos/lancope.png
new file mode 100644 (file)
index 0000000..b0e27a2
Binary files /dev/null and b/website/logos/lancope.png differ
index 0000000..b0e27a2
Binary files /dev/null and b/website/logos/lancope.png differ
diff --git a/website/logos/op5logoweb101x51.gif b/website/logos/op5logoweb101x51.gif
new file mode 100644 (file)
index 0000000..95f8ba9
Binary files /dev/null and b/website/logos/op5logoweb101x51.gif differ
index 0000000..95f8ba9
Binary files /dev/null and b/website/logos/op5logoweb101x51.gif differ
diff --git a/website/logos/pocket.png b/website/logos/pocket.png
new file mode 100644 (file)
index 0000000..700c2da
Binary files /dev/null and b/website/logos/pocket.png differ
index 0000000..700c2da
Binary files /dev/null and b/website/logos/pocket.png differ
diff --git a/website/logos/sidarion.png b/website/logos/sidarion.png
new file mode 100644 (file)
index 0000000..c8c1da2
Binary files /dev/null and b/website/logos/sidarion.png differ
index 0000000..c8c1da2
Binary files /dev/null and b/website/logos/sidarion.png differ
diff --git a/website/logos/terreactive.png b/website/logos/terreactive.png
new file mode 100644 (file)
index 0000000..9d5e6c8
Binary files /dev/null and b/website/logos/terreactive.png differ
index 0000000..9d5e6c8
Binary files /dev/null and b/website/logos/terreactive.png differ
diff --git a/website/logos/zenoss.png b/website/logos/zenoss.png
new file mode 100644 (file)
index 0000000..c66039f
Binary files /dev/null and b/website/logos/zenoss.png differ
index 0000000..c66039f
Binary files /dev/null and b/website/logos/zenoss.png differ
diff --git a/website/navbar.inc b/website/navbar.inc
--- /dev/null
+++ b/website/navbar.inc
@@ -0,0 +1,37 @@
+<nav:bar 0 main "">
+ <nav:but welcome "Welcome" index />
+ <nav:but down "Download" download pub />
+ <nav:but doc "Documentation" doc/index doc />
+ <nav:but tut "Tutorials" tut/index tut />
+ <nav:but prog "Programming" prog/index prog />
+ <nav:but rrdtrac "Bugs, Wiki" http://oss.oetiker.ch/rrdtool-trac/ />
+ <nav:but support "Support" support sup_forum />
+ <nav:but gallery "Gallery" gallery/index />
+ <nav:but rrdworld "Projects using RRDtool" rrdworld/index />
+ <nav:but sponsor "Sponsoring RRDtool" sponsor />
+ <nav:but license "License" license />
+ <nav:but cast "Cast" cast />
+</nav:bar>
+
+<nav:bar 1 doc "doc/">
+#include "doc/navbar.inc"
+</nav:bar>
+
+<nav:bar 1 sup_forum "./">
+<nav:but forum "Forum" forum />
+</nav:bar>
+
+<nav:bar 1 pub "pub/">
+<nav:but down_pub "/pub" "./" />
+<nav:but down_contrib "/contrib" contrib/ />
+</nav:bar>
+
+<nav:bar 1 tut "tut/">
+#include "tut/navbar.inc"
+</nav:bar>
+
+<nav:bar 1 prog "prog/">
+<nav:but iana "RRD MIB" ../iana/index />
+#include "prog/navbar.inc"
+</nav:bar>
+
diff --git a/website/newbanner250x60.gif b/website/newbanner250x60.gif
new file mode 100644 (file)
index 0000000..ef53cfe
Binary files /dev/null and b/website/newbanner250x60.gif differ
index 0000000..ef53cfe
Binary files /dev/null and b/website/newbanner250x60.gif differ
diff --git a/website/newbannernmn250x60.gif b/website/newbannernmn250x60.gif
new file mode 100644 (file)
index 0000000..6e80f87
Binary files /dev/null and b/website/newbannernmn250x60.gif differ
index 0000000..6e80f87
Binary files /dev/null and b/website/newbannernmn250x60.gif differ
diff --git a/website/newin12.txt b/website/newin12.txt
--- /dev/null
+++ b/website/newin12.txt
@@ -0,0 +1,55 @@
+RRDTOOL NEWS
+============
+Major Changes between 1.0.x and 1.2.x
+
+Graphing
+--------
+
+* rewritten graphics generation based on libart.
+ - anti-aliased output
+ - alpha transparency support
+ - truetype fonts
+
+* additional graphics formats: EPS, PDF, SVG
+
+* extended multi-part documentation
+
+* VDEF support; define and use variables. Find, and use, the
+ maximum rate seen by rrdtool; compute and show the average
+
+* Sliding window (trend) analysis
+ Compute a smoother average, for instance over the last 6 CDPs
+
+* percentile (95th or other)
+ Remove peaks, 95 percent of all rates are at or below the
+ returned value
+
+Logging
+-------
+* a second logging interface: rrdtool updatev
+ Verbose updating of the database; show CPDs being created
+
+* Aberrant Behavior Detection with Holt-Winters Forecasting
+ Compare current data with expected data, detect and log when
+ the rates are outside expected levels
+
+* COMPUTE data type for artificial data-sources calculating their
+ input using RPN math and data from the other data-sources.
+
+Incompatibilities
+-----------------
+* Colons in COMMENT arguments to rrdtool graph must be escaped with a backslash
+
+Behind the Scenes
+-----------------
+* In order to support Holt-Winters and Calculated Datasources,
+ the rrdtool data format has changed. While the new version of rrdtool can
+ read files created with rrdtool 1.0.x. It is not possible to read files
+ created by rrdtool-1.2.x with rrdtool-1.0.x
+
+* External libraries are not included with rrdtool anymore. This is in line
+ with todays trend of using shared libraries everywhere. With the exception
+ of the cgi library most things required by rrdtool will be found on every recent
+ system.
+
+* Memory Mapped IO support for faster logging.
diff --git a/website/oscon-120x60.gif b/website/oscon-120x60.gif
new file mode 100644 (file)
index 0000000..1d617bf
Binary files /dev/null and b/website/oscon-120x60.gif differ
index 0000000..1d617bf
Binary files /dev/null and b/website/oscon-120x60.gif differ
diff --git a/website/prog/build.sh b/website/prog/build.sh
--- /dev/null
+++ b/website/prog/build.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+sect=prog
+src=../../program
+. ../bin/pod2wml.sh
+
+pod2descr() {
+ pod=$1.pod
+ descr=`grep " - " $pod|head -1|sed 's/.*- //'`
+ menu=`grep " - " $pod|head -1|sed 's/ -.*//'`
+}
+
+
+# build probe list
+rm -f navbar.inc
+rm -f index.inc
+
+for pod in `cd $src/doc/;ls *.pod|egrep '(RRD|thread|python|ruby|lua)'`; do
+ base=`echo $pod |sed 's,.pod,,'`
+ echo $base
+ cat $src/doc/$pod > $base.pod
+ pod2descr $base
+ pod2wml $base
+done
+
diff --git a/website/prog/index.wml b/website/prog/index.wml
--- /dev/null
+++ b/website/prog/index.wml
@@ -0,0 +1,8 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "prog">
+
+<H1>RRDtool Programming</H1>
+
+<dl>
+#include "index.inc"
+</dl>
diff --git a/website/rrdtool-dump.xsd b/website/rrdtool-dump.xsd
--- /dev/null
+++ b/website/rrdtool-dump.xsd
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ XML schema definition for the RRDTool dump output.
+
+ Author:
+ Tobias Lindenmann <tobias.lindenmann at 1und1.de>
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns="http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml"
+ targetNamespace="http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml"
+ elementFormDefault="qualified">
+
+ <!-- Root element -->
+ <xsd:element name="rrd" type="ns:RrdType">
+ <!-- Check datasource name of unique. -->
+ <xsd:unique name="Ds.Name">
+ <xsd:selector xpath="ns:ds/ns:name"/>
+ <xsd:field xpath="."/>
+ </xsd:unique>
+ </xsd:element>
+
+ <!-- Start of complexTypes -->
+ <xsd:complexType name="RrdType">
+ <xsd:sequence>
+ <!-- RRD file version/RRD Archiv version number-->
+ <xsd:element name="version" type="xsd:nonNegativeInteger"/>
+ <!-- The primary RRD Archiv step in seconds.-->
+ <xsd:element name="step" type="xsd:nonNegativeInteger"/>
+ <!-- The unixtime from the last rrd_update.-->
+ <xsd:element name="lastupdate" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="ds" type="ns:DsType" minOccurs="1" maxOccurs="unbounded"/>
+ <!-- Round Robin Archive (rra). This is the place where the
+ consolidated data points (cdp) get stored. The data is
+ organized in rows (row) and columns (col). The Round Robin
+ Archive got its name from the method data is stored in
+ there. An RRD database can contain several Round Robin
+ Archives. Each Round Robin Archive can have a different row
+ spacing along the time axis (pdp_cnt) and a different
+ consolidation function (cf) used to build its consolidated
+ data points (cdp). -->
+ <xsd:element name="rra" type="ns:RraType" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="DsType">
+ <xsd:sequence>
+ <!-- The name of the data source. -->
+ <xsd:element name="name" type="ns:DataSourceNameType"/>
+ <!-- The Data Source Type (GAUGE, COUNTER, DERIVE, ABSOLUTE, COMPUTE)
+ defines the applied to Build Primary Data Points from the
+ input provided by the data sources (ds). -->
+ <xsd:element name="type" type="ns:DataSourceType"/>
+ <!-- Chocie one groups of elements. -->
+ <xsd:choice>
+ <!-- Group with the elements min,max and heartbeat_min. -->
+ <xsd:group ref="ns:Ds.NormalType"/>
+ <!-- Group with the element cdef.-->
+ <xsd:group ref="ns:Ds.CdefType"/>
+ </xsd:choice>
+ <xsd:element name="last_ds" type="ns:NumberWithUNKNType"/>
+ <!-- Current value of the primary data point, this depends on the data source type. -->
+ <xsd:element name="value" type="ns:LexicalNumberWithNaNType"/>
+ <!-- How many seconds of the current
+ * pdp value is unknown data?-->
+ <xsd:element name="unknown_sec" type="xsd:nonNegativeInteger"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="RraType">
+ <xsd:sequence>
+ <!-- Consolidation Function (cf). An arbitrary Consolidation Function (cf)
+ (averaging, min, max) is applied to the primary data points (pdp) to
+ calculate the consolidated data point. -->
+ <xsd:element name="cf" type="ns:ConsolidationFunctionType"/>
+ <xsd:element name="pdp_per_row" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="params">
+ <!-- Chocie one groups of elements. -->
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:group ref="ns:Params.HwPredictType"/>
+ <xsd:group ref="ns:Params.SeasonalType"/>
+ <xsd:group ref="ns:Params.FailuresType"/>
+ <xsd:group ref="ns:Params.DevPredictType"/>
+ <xsd:group ref="ns:Params.AvgMinMaxType"/>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- Data prep area for cdp values -->
+ <xsd:element name="cdp_prep" type="ns:CdpPrepType"/>
+ <xsd:element name="database" type="ns:DatabaseType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="DatabaseType">
+ <xsd:sequence>
+ <xsd:element name="row" type="ns:VType" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="VType">
+ <xsd:sequence>
+ <xsd:element name="v" type="ns:LexicalNumberWithNaNType" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="CdpPrepType">
+ <xsd:sequence>
+ <xsd:element name="ds" minOccurs="1" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="ns:Ds.Cdp"/>
+ <!-- Chocie one groups of elements. -->
+ <xsd:choice>
+ <xsd:group ref="ns:Ds.Cdp.HwPredictType"/>
+ <xsd:group ref="ns:Ds.Cdp.SeasonalType"/>
+ <xsd:group ref="ns:Ds.Cdp.FailuresType"/>
+ <xsd:group ref="ns:Ds.Cdp.AvgMinMaxType"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!-- End of complexTypes -->
+
+ <!-- Start of groups -->
+ <!-- Start of groups for the element rrd/ds. -->
+ <xsd:group name="Ds.NormalType">
+ <xsd:sequence>
+ <!-- Minimum required heartbeat. A
+ * data source must provide input at
+ * least every ds_mrhb seconds,
+ * otherwise it is regarded dead and
+ * will be set to UNKNOWN -->
+ <xsd:element name="minimal_heartbeat" type="xsd:integer"/>
+ <!-- Min and max define the expected range values for data supplied by a data source. -->
+ <xsd:element name="min" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="max" type="ns:LexicalNumberWithNaNType"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Ds.CdefType">
+ <xsd:sequence>
+ <xsd:element name="cdef" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:group>
+ <!-- End of groups for the element rrd/ds. -->
+ <!-- Start of groups for the element rrd/rra/cd_prep/ds. -->
+ <xsd:group name="Ds.Cdp.HwPredictType">
+ <xsd:sequence>
+ <xsd:element name="intercept" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="last_intercept" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="slope" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="last_slope" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="nan_count" type="xsd:integer"/>
+ <xsd:element name="last_nan_count" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Ds.Cdp.SeasonalType">
+ <xsd:sequence>
+ <xsd:element name="seasonal" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="last_seasonal" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="init_flag" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Ds.Cdp.FailuresType">
+ <xsd:sequence>
+ <!-- History failures message.-->
+ <xsd:element name="history" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Ds.Cdp.AvgMinMaxType">
+ <xsd:sequence>
+ <xsd:element name="value" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="unknown_datapoints" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Ds.Cdp">
+ <xsd:sequence>
+ <xsd:element name="primary_value" type="ns:LexicalNumberWithNaNType"/>
+ <xsd:element name="secondary_value" type="ns:LexicalNumberWithNaNType"/>
+ </xsd:sequence>
+ </xsd:group>
+ <!-- End of groups for the element cd_prep/ds. -->
+ <!-- Start of groups for the element params. -->
+ <xsd:group name="Params.HwPredictType">
+ <xsd:sequence>
+ <xsd:element name="hw_alpha" type="ns:LexicalNumberType"/>
+ <xsd:element name="hw_beta" type="ns:LexicalNumberType"/>
+ <xsd:element name="dependent_rra_idx" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Params.SeasonalType">
+ <xsd:sequence>
+ <xsd:element name="seasonal_gamma" type="ns:LexicalNumberType"/>
+ <xsd:element name="seasonal_smooth_idx" type="xsd:integer"/>
+ <xsd:element name="smoothing_window" type="ns:LexicalNumberType"/>
+ <xsd:element name="dependent_rra_idx" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Params.FailuresType">
+ <xsd:sequence>
+ <xsd:element name="delta_pos" type="ns:LexicalNumberType"/>
+ <xsd:element name="delta_neg" type="ns:LexicalNumberType"/>
+ <xsd:element name="window_len" type="xsd:integer"/>
+ <xsd:element name="failure_threshold" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Params.DevPredictType">
+ <xsd:sequence>
+ <xsd:element name="dependent_rra_idx" type="xsd:integer"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="Params.AvgMinMaxType">
+ <xsd:sequence>
+ <!-- The xfiles factor defines what part of a consolidation interval
+ may be made up from *UNKNOWN* data while the consolidated value
+ is still regarded as known. It is given as the ratio of allowed
+ *UNKNOWN* PDPs to the number of PDPs in the interval. Thus, it
+ ranges from 0 to 1 (exclusive). -->
+ <xsd:element name="xff" type="ns:LexicalNumberType"/>
+ </xsd:sequence>
+ </xsd:group>
+ <!-- End of Groups for the element params. -->
+ <!-- End of groups -->
+
+ <!-- Start of simpleTypes -->
+ <!-- Allowed data source types. -->
+ <!-- @see http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html-->
+ <xsd:simpleType name="DataSourceType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="GAUGE"/>
+ <xsd:enumeration value="COUNTER"/>
+ <xsd:enumeration value="DERIVE"/>
+ <xsd:enumeration value="ABSOLUTE"/>
+ <xsd:enumeration value="COMPUTE"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- A ds-name must be 1 to 19 characters long in the characters [a-zA-Z0-9_]. -->
+ <!-- @see http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html-->
+ <xsd:simpleType name="DataSourceNameType">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="[a-zA-Z0-9_]{1,19}"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Allowed consolidation function (cf). -->
+ <!-- @see http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html-->
+ <xsd:simpleType name="ConsolidationFunctionType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="AVERAGE"/>
+ <xsd:enumeration value="MIN"/>
+ <xsd:enumeration value="MAX"/>
+ <xsd:enumeration value="LAST"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Allowed a lexical number or the string "NaN".-->
+ <xsd:simpleType name="LexicalNumberWithNaNType">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?|NaN)"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Allowed only a lexical number. -->
+ <xsd:simpleType name="LexicalNumberType">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Allowed a number or the string "UNKN" or "U". -->
+ <xsd:simpleType name="NumberWithUNKNType">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="([\d]+|UNKN|U)"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <!-- End of simpleTypes -->
+</xsd:schema>
diff --git a/website/rrdtool.dtd b/website/rrdtool.dtd
--- /dev/null
+++ b/website/rrdtool.dtd
@@ -0,0 +1,115 @@
+<!--
+ - Document type definition for RRDTool
+ -
+ - This document type definition describes the current XML style used by
+ - RRDTool when dumping RRD files. It was reverse engineered by reading
+ - rrd_dump.c and should cover all the tags it uses. Use this DTD if you want
+ - the libxml2 based restore utility to catch invalid definitions and
+ - ordering of elements early on, i. e. within the XML library.
+ -
+ - This DTD is in some ways more strict than the actual restore utility: It
+ - enforces the exact ordering of tags even if the restore utility doesn't
+ - mind.
+ -
+ - Author:
+ - Florian Forster <octo at verplant.org>
+ -->
+
+<!--
+ - The <param> tag
+ -
+ - The <param> tag inside a DS definition depends on the type of DS that is
+ - defined. While this DTD cannot check if the type defined matches with the
+ - tags present here, we can at least check that the tags aren't mixed
+ - wildly.
+ -->
+<!ELEMENT delta_neg (#PCDATA)>
+<!ELEMENT delta_pos (#PCDATA)>
+<!ELEMENT dependent_rra_idx (#PCDATA)>
+<!ELEMENT failure_threshold (#PCDATA)>
+<!ELEMENT hw_alpha (#PCDATA)>
+<!ELEMENT hw_beta (#PCDATA)>
+<!ELEMENT seasonal_gamma (#PCDATA)>
+<!ELEMENT seasonal_smooth_idx (#PCDATA)>
+<!ELEMENT smoothing_window (#PCDATA)>
+<!ELEMENT window_len (#PCDATA)>
+<!ELEMENT xff (#PCDATA)>
+
+<!ENTITY % param.hwpredict "(hw_alpha, hw_beta, dependent_rra_idx)">
+<!ENTITY % param.seasonal "(seasonal_gamma, seasonal_smooth_idx, smoothing_window?, dependent_rra_idx)">
+<!ENTITY % param.failures "(delta_pos, delta_neg, window_len, failure_threshold)">
+<!ENTITY % param.devpredict "(dependent_rra_idx)">
+<!ENTITY % param.avg_min_max "(xff)">
+
+<!ELEMENT params (%param.hwpredict; | %param.seasonal; | %param.failures; | %param.devpredict; | %param.avg_min_max;)>
+
+<!--
+ - The <ds> tag within a <cdp_prep> block.
+ -
+ - There are two <ds> tags: One for defining the data source itself and one
+ - describing it further in a <cdp_prep> area. The tags allowed within the
+ - <ds> tag in the <cdp_prep> area depend on the type of the DS, but we
+ - cannot verify that in the DTD. We check that the combination of tags makes
+ - some sense, though.
+ -->
+<!ELEMENT history (#PCDATA)>
+<!ELEMENT init_flag (#PCDATA)>
+<!ELEMENT intercept (#PCDATA)>
+<!ELEMENT last_intercept (#PCDATA)>
+<!ELEMENT last_nan_count (#PCDATA)>
+<!ELEMENT last_seasonal (#PCDATA)>
+<!ELEMENT last_slope (#PCDATA)>
+<!ELEMENT nan_count (#PCDATA)>
+<!ELEMENT primary_value (#PCDATA)>
+<!ELEMENT seasonal (#PCDATA)>
+<!ELEMENT secondary_value (#PCDATA)>
+<!ELEMENT slope (#PCDATA)>
+<!ELEMENT unknown_datapoints (#PCDATA)>
+<!ELEMENT value (#PCDATA)>
+
+<!ENTITY % ds.cdp.hwpredict "(intercept, last_intercept, slope, last_slope, nan_count, last_nan_count)">
+<!ENTITY % ds.cdp.seasonal "(seasonal, last_seasonal, init_flag)">
+<!ENTITY % ds.cdp.failures "(history)">
+<!ENTITY % ds.cdp.avg_min_max "(value, unknown_datapoints)">
+<!ENTITY % ds.cdp "(primary_value, secondary_value, (%ds.cdp.hwpredict; | %ds.cdp.seasonal; | %ds.cdp.failures; | %ds.cdp.avg_min_max;)?)">
+
+<!--
+ - The <ds> tag in the root <rrd> tag.
+ -
+ - This <ds> tag is different than the one above in that is defines a data
+ - source rather than it's parameters within an RRA. Yet, there is an little
+ - exception for CDEF data sources..
+ -->
+<!ELEMENT cdef (#PCDATA)>
+<!ELEMENT last_ds (#PCDATA)>
+<!ELEMENT max (#PCDATA)>
+<!ELEMENT minimal_heartbeat (#PCDATA)>
+<!ELEMENT min (#PCDATA)>
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT type (#PCDATA)>
+<!ELEMENT unknown_sec (#PCDATA)>
+
+<!ENTITY % ds.decl.normal "(minimal_heartbeat,min,max)">
+<!ENTITY % ds.decl.cdef "(cdef)">
+<!ENTITY % ds.decl "(name, type, (%ds.decl.normal; | %ds.decl.cdef;), last_ds, value, unknown_sec)">
+
+<!ELEMENT ds (%ds.decl; | %ds.cdp;)>
+
+<!-- The <ds> tag in <cdp_prep> differs from the one in <rrd>, but we cannot
+ check this in the DTD :/ -->
+<!ELEMENT cdp_prep (ds+)>
+
+<!-- The actual data.. -->
+<!ELEMENT v (#PCDATA)>
+<!ELEMENT row (v+)>
+<!ELEMENT database (row+)>
+
+<!ELEMENT cf (#PCDATA)>
+<!ELEMENT pdp_per_row (#PCDATA)>
+
+<!ELEMENT rra (cf,pdp_per_row,params,cdp_prep,database)>
+
+<!ELEMENT lastupdate (#PCDATA)>
+<!ELEMENT step (#PCDATA)>
+<!ELEMENT version (#PCDATA)>
+<!ELEMENT rrd (version,step,lastupdate,ds+,rra+)>
diff --git a/website/rrdworld/airwave.png b/website/rrdworld/airwave.png
new file mode 100644 (file)
index 0000000..4b1b2ae
Binary files /dev/null and b/website/rrdworld/airwave.png differ
index 0000000..4b1b2ae
Binary files /dev/null and b/website/rrdworld/airwave.png differ
diff --git a/website/rrdworld/airwave.xml b/website/rrdworld/airwave.xml
--- /dev/null
@@ -0,0 +1,19 @@
+<rrdworld type="application" icon="airwave.png">
+ <name>AirWave Management Platform</name>
+ <author>AirWave Wireless, Inc.</author>
+
+ <description>The AirWave Management Platform™ (AMP) wireless network
+management software gives you complete, centralized control over your
+organization's Wi-Fi network infrastructure. AMP's web-based console
+provides you a single point of intelligent control from which to
+automatically monitor, analyze, and configure even complex, multi-vendor
+wireless network infrastructures in real time. Whether you're responsible
+for a small network in a single building or a global wireless network across
+hundreds of locations worldwide, AMP gives you the tools to deliver the
+performance and security your users demand.</description>
+
+ <homepage>http://www.airwave.com/</homepage>
+ <year>2005</year><month>7</month>
+ <license>Commercial</license>
+ <email>info@airwave.com</email>
+</rrdworld>
diff --git a/website/rrdworld/akkada.gif b/website/rrdworld/akkada.gif
new file mode 100644 (file)
index 0000000..263f3d7
Binary files /dev/null and b/website/rrdworld/akkada.gif differ
index 0000000..263f3d7
Binary files /dev/null and b/website/rrdworld/akkada.gif differ
diff --git a/website/rrdworld/akkada.xml b/website/rrdworld/akkada.xml
--- /dev/null
@@ -0,0 +1,20 @@
+<rrdworld type="application"
+ icon="akkada.gi">
+
+ <name> akk@da </name>
+ <author> Piotr Kodzis </author>
+<description>System designed for middle size computer networks. Its purpose
+is to quick detect system or network fault and to display information about its
+for administrator. akk@da does not wait for information from any agents,
+systems. Almost all services of the monitored hosts are discovered
+automatically.</description>
+ <homepage> http://akkada.tivi.net.pl </homepage>
+ <year> 2006 </year><month> 7 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> piotr.kodzis@inteligo.pl </email> <!-- Author contact -->
+
+</rrdworld>
+
diff --git a/website/rrdworld/aware.xml b/website/rrdworld/aware.xml
--- /dev/null
@@ -0,0 +1,21 @@
+<rrdworld type="application"
+ icon="awicon64.png" > <!-- Size 100x66 -->
+
+ <name> Aware </name>
+ <author> Russell Leighton </author>
+<description>
+
+The *Aware* project is an effort to create a software framework
+to measure, monitor, and control computer system resources. Aware is
+intended to enable system administrators tune system variables, set
+monitoring/security alarms and build adaptive distributed systems.
+Aware modules may be linked into applications making them 'aware' and
+able to participate in the larger managed system.
+
+</description>
+ <homepage> http://www.elegant-software.com/software/aware/ </homepage>
+ <year> 2006 </year><month> 4 </month> <!-- Entry creation date -->
+ <license> LGPL </license>
+
+
+</rrdworld>
diff --git a/website/rrdworld/awicon64.png b/website/rrdworld/awicon64.png
new file mode 100644 (file)
index 0000000..a2aff23
Binary files /dev/null and b/website/rrdworld/awicon64.png differ
index 0000000..a2aff23
Binary files /dev/null and b/website/rrdworld/awicon64.png differ
diff --git a/website/rrdworld/bbstatus.xml b/website/rrdworld/bbstatus.xml
--- /dev/null
@@ -0,0 +1,20 @@
+<rrdworld type="application"
+ icon="bbstatus100x66.png" > <!-- Size 100x66 -->
+
+ <name> BBStatus </name>
+ <author> Victor Tarhon-Onu </author>
+<description>
+BBStatus is an IP accounting and a SNMP and IP monitoring tool for Linux
+(for now). It uses RRDTool (RRDs PERL module) to display traffic statistics
+and data gathered by SNMP. It also provides user based access, so each user
+can log in and visualize various data (depending on access rights).
+</description>
+ <homepage> http://freshmeat.net/projects/bbstatus/ </homepage>
+ <year> 2003 </year><month> 2 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> mituc@ac.tuiasi.ro </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/bbstatus100x66.png b/website/rrdworld/bbstatus100x66.png
new file mode 100644 (file)
index 0000000..19ccec0
Binary files /dev/null and b/website/rrdworld/bbstatus100x66.png differ
index 0000000..19ccec0
Binary files /dev/null and b/website/rrdworld/bbstatus100x66.png differ
diff --git a/website/rrdworld/bigsis_rrdworld.xml b/website/rrdworld/bigsis_rrdworld.xml
--- /dev/null
@@ -0,0 +1,21 @@
+<rrdworld type="application"
+ icon="logo_bigsis_rrd_100x66.png" > <!-- Size 100x66 -->
+
+ <name> Big Sister system and network monitor</name>
+ <author> Tom Aeby </author>
+<description>
+Big Sister detects failing services and systems, displays live status
+overviews and sends alerts. For providing diagnostic information to the
+system administrator Big Sister also collects system performance data
+and uses RRDTool as a powerful utility for storing and visualizing the
+collected data.
+</description>
+ <homepage> http://www.bigsister.ch/ </homepage>
+ <year> 2005 </year><month> 8 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> aeby@graeff.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/cacti.xml b/website/rrdworld/cacti.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="application">
+<name>Cacti</name>
+<author>Ian Berry</author>
+<description>Cacti is a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.</description>
+<homepage>http://www.cacti.net</homepage>
+<year>2005</year><month>4</month>
+<license>GPL</license>
+<livesite>http://www.bigspring.k12.pa.us/cacti/graph_view.php</livesite>
+<email>iberry@raxnet.net</email>
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/collectd.png b/website/rrdworld/collectd.png
new file mode 100644 (file)
index 0000000..d1904e0
Binary files /dev/null and b/website/rrdworld/collectd.png differ
index 0000000..d1904e0
Binary files /dev/null and b/website/rrdworld/collectd.png differ
diff --git a/website/rrdworld/collectd.xml b/website/rrdworld/collectd.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<rrdworld type="application" icon="collectd.png">
+ <name>collectd</name>
+ <author>Florian Forster</author>
+ <description>
+ collectd is a lighweight, modular daemon that collects system performance data.
+ It includes sophisticated networking possibilities, SNMP integration and well over 40 more plugins.
+ Multiple ways of extending it are available, including an embedded Perl interpreter and executing arbitary programs.
+ </description>
+ <homepage>http://collectd.org/</homepage>
+ <year>2008</year><month>1</month>
+ <license> GPLv2 </license>
+ <email>collectd@verplant.org</email>
+</rrdworld>
diff --git a/website/rrdworld/drraw.png b/website/rrdworld/drraw.png
new file mode 100644 (file)
index 0000000..9d1e908
Binary files /dev/null and b/website/rrdworld/drraw.png differ
index 0000000..9d1e908
Binary files /dev/null and b/website/rrdworld/drraw.png differ
diff --git a/website/rrdworld/drraw.xml b/website/rrdworld/drraw.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<rrdworld type="application" icon="drraw.png" > <!-- Size 100x66 -->
+ <name> drraw </name>
+ <author> Christophe Kalt </author>
+<description> drraw is a simple web based presentation front-end for RRDtool that allows you to interactively build graphs of your own design. A
+graph definition can be turned into a template which may be applied to many Round Robin Database files. drraw specializes in providing an easy mean
+of displaying data stored with RRDtool and does not care about how the data is collected, making it a great complement to other RRDtool front-ends.
+</description>
+ <homepage> http://web.taranis.org/drraw/ </homepage>
+ <year> 2002 </year><month> 11 </month>
+ <license> BSD </license>
+</rrdworld>
diff --git a/website/rrdworld/dsreport.xml b/website/rrdworld/dsreport.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="companion">
+ <name> DSreport </name>
+ <author> Steve Rader </author>
+
+<description>
+
+DSreport pretty prints DS values from an RRDtool database in
+tabular format. It supports flexable reporting time frames,
+autoscaling DS values, and conversion factors.
+
+</description>
+
+ <homepage> http://noc.hep.wisc.edu/dsreport.txt </homepage>
+ <year> 2000 </year>
+ <month> 3 </month>
+ <license> GPL </license>
+</rrdworld>
diff --git a/website/rrdworld/efw-community.png b/website/rrdworld/efw-community.png
new file mode 100644 (file)
index 0000000..9573141
Binary files /dev/null and b/website/rrdworld/efw-community.png differ
index 0000000..9573141
Binary files /dev/null and b/website/rrdworld/efw-community.png differ
diff --git a/website/rrdworld/efw-community.xml b/website/rrdworld/efw-community.xml
--- /dev/null
@@ -0,0 +1,24 @@
+<rrdworld type="application"
+ icon="efwcommunity.png" > <!-- Size 100x66 -->
+
+ <name> Endian Firewall Community </name>
+ <author> Endian srl </author>
+<description> Endian Firewall Community is a "turn-key" linux security
+distribution that turns every system into a full featured security
+appliance. The software has been designed with "usability in mind" and
+is very easy to install, use and manage, without losing its flexibility.
+The features include a stateful packet inspection firewall,
+application-level proxies for various protocols (HTTP, FTP, POP3, SMTP)
+with antivirus support, virus and spamfiltering for email traffic (POP
+and SMTP), content filtering of Web traffic and a "hassle free" VPN
+solution (based on OpenVPN).
+ </description>
+ <homepage> http://www.efw.it </homepage>
+ <year> 2006 </year><month> 12 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> info@endian.it </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/eluna_graph_system.png b/website/rrdworld/eluna_graph_system.png
new file mode 100644 (file)
index 0000000..f8e339a
Binary files /dev/null and b/website/rrdworld/eluna_graph_system.png differ
index 0000000..f8e339a
Binary files /dev/null and b/website/rrdworld/eluna_graph_system.png differ
diff --git a/website/rrdworld/eluna_graph_system.xml b/website/rrdworld/eluna_graph_system.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<rrdworld type="application"
+ icon="eluna_graph_system.png" >
+
+ <name> eLuna Graph System </name>
+ <author> Stephane Dupont </author>
+<description> eLuna Graph System is an application written in Perl based on RRDTool and distributed under GNU General Public License. Its aim is collection, and then presentation in graphic form, of data, to aid in monitoring of a Linux machine. </description>
+ <homepage> http://steph.eluna.org/eluna_graph_system.html </homepage>
+ <year> 2006 </year><month> 4 </month>
+ <license> GPL </license>
+ <livesite> http://graphs.eluna.org </livesite>
+ <email> steph@eluna.org </email>
+
+</rrdworld>
+
diff --git a/website/rrdworld/entry.txt b/website/rrdworld/entry.txt
--- /dev/null
@@ -0,0 +1,16 @@
+<rrdworld type="companion|application|?????"
+ icon="rumble.png" > <!-- Size 100x66 -->
+
+ <name> Name of the Product </name>
+ <author> Who Created it </author>
+<description> A short description of the tool. 300 char max. </description>
+ <homepage> http://somesite.blabla.plac </homepage>
+ <year> 2005 </year><month> 4 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://somesite.blabla.plac </livesite>
+ <email> max@example.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/gbrrdgraphix.xml b/website/rrdworld/gbrrdgraphix.xml
--- /dev/null
@@ -0,0 +1,15 @@
+<rrdworld type="application"
+ icon="rumble.png" > <!-- Size 100x66 -->
+
+ <name> gbRRDGraphix </name>
+ <author> Olivier CRUILLES </author>
+<description> gbRRDGraphix is a graphical interface specialy to learn or use 'rrdtool' utilities easily </description>
+ <homepage> http://gbrrdgraphix.sourceforge.net </homepage>
+ <year> 2008 </year><month> 9 </month> <!-- Entry creation date -->
+ <license> GPL v2 </license>
+
+ <!-- Optional -->
+
+ <email> linuxos@club-internet.fr </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/index.wml b/website/rrdworld/index.wml
--- /dev/null
@@ -0,0 +1,86 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "rrdworld">
+
+
+<H1>RRD World</H1>
+
+<p>A whole ecosystem of tools have sprung up around rrdtool. From tiny
+add-ons to big applications or even replacements for rrdtool itself.</p>
+
+<h2>RRDtool Companions</h2>
+
+#include "drraw.xml"
+#include "dsreport.xml"
+#include "nhawk_description.xml"
+#include "rrd_merger.xml"
+#include "weathermap4rrd.xml"
+#include "weathermap_rrdworld.xml"
+#include "rrdutils.xml"
+#include "rrd4j.xml"
+#include "toolsmith.xml"
+#include "rrdcreator.xml"
+#include "pyrrd.xml"
+
+<h2>Free Applications</h2>
+
+#include "akkada.xml"
+#include "aware.xml"
+#include "bbstatus.xml"
+#include "bigsis_rrdworld.xml"
+#include "cacti.xml"
+#include "collectd.xml"
+#include "efw-community.xml"
+#include "eluna_graph_system.xml"
+#include "gbrrdgraphix.xml"
+#include "lpar2rrd.xml"
+#include "mailgraph.xml"
+#include "monitorix.xml"
+#include "mpltd.xml"
+#include "munin.xml"
+#include "mysqlBind2.xml"
+#include "n2rrd.xml"
+#include "netmrg.xml"
+#include "nmis-rrdtool.xml"
+#include "observernms.xml"
+#include "oreon.xml"
+#include "ourmon.xml"
+#include "ow.xml"
+#include "ozmonitor.xml"
+#include "prb.xml"
+#include "rrdbot.xml"
+#include "rrdcgi.xml"
+#include "rrdstats.xml"
+#include "rrdutil.xml"
+#include "rrdweather.xml"
+#include "serverstats.xml"
+#include "sicm.xml"
+#include "smokeping.xml"
+#include "snm_at_rrdworld.xml"
+#include "snmpgraph.xml"
+#include "statsdawg.xml"
+#include "systemgraph.xml"
+#include "thermometer.xml"
+#include "tinygraph.xml"
+#include "toolsmith.xml"
+#include "torrus.xml"
+#include "tstat.xml"
+#include "unnoc.xml"
+#include "webminstats.xml"
+#include "yacketystats.xml"
+#include "zenoss.xml"
+#include "zerod.xml"
+
+<h2>Commercial Applications</h2>
+
+#include "airwave.xml"
+#include "prefixmaster.xml"
+#include "wanguard.xml"
+#include "tacLOG_RRD.xml"
+
+<h2>Add your own tool to this list</h2>
+
+<p>If you have written a tool that you would like to see listed in this index,
+please send me a little xml file describing your tool. Below you find an example:</p>
+
+#use wml::fmt::verbatim
+<verbatim-file src="entry.txt"/>
diff --git a/website/rrdworld/logo_bigsis_rrd_100x66.png b/website/rrdworld/logo_bigsis_rrd_100x66.png
new file mode 100644 (file)
index 0000000..9450b61
Binary files /dev/null and b/website/rrdworld/logo_bigsis_rrd_100x66.png differ
index 0000000..9450b61
Binary files /dev/null and b/website/rrdworld/logo_bigsis_rrd_100x66.png differ
diff --git a/website/rrdworld/lpar2rrd.png b/website/rrdworld/lpar2rrd.png
new file mode 100644 (file)
index 0000000..d5e4b98
Binary files /dev/null and b/website/rrdworld/lpar2rrd.png differ
index 0000000..d5e4b98
Binary files /dev/null and b/website/rrdworld/lpar2rrd.png differ
diff --git a/website/rrdworld/lpar2rrd.xml b/website/rrdworld/lpar2rrd.xml
--- /dev/null
@@ -0,0 +1,21 @@
+<rrdworld type="application"
+ icon="lpar2rrd.png" > <!-- Size 100x66 -->
+ <name> LPAR2RRD </name>
+ <author> Pavel Hampl </author>
+<description>LPAR CPU statistics and documentation tool for IBM Power
+systems servers (pSeries & iSeries)
+The tool is capable to produce historical CPU utilization graphs of LPARs
+and shared CPU usage.
+It also collects complete physical (HW) and logical configuration of all
+managed systems and their lpars and all changes in their state and
+configuration
+</description>
+ <homepage>http://www.ibm.com/developerworks/wikis/display/virtualization/lpar2rrd+tool </homepage>
+ <year> 2009 </year><month> 1 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://lpar2rrd.sourceforge.net/demo/ </livesite>
+ <email> pavel.hampl@cz.ibm.com </email> <!-- Author contact -->
+</rrdworld>
diff --git a/website/rrdworld/mailgraph.xml b/website/rrdworld/mailgraph.xml
--- /dev/null
@@ -0,0 +1,19 @@
+<rrdworld type="application">
+
+ <name> Mailgraph </name>
+ <author> David Schweikert </author>
+ <description> Mailgraph is a very simple mail statistics RRDtool
+ frontend for Postfix and Sendmail that produces daily,
+ weekly, monthly and yearly graphs of received/sent and
+ bounced/rejected mail. </description>
+ <homepage> http://mailgraph.schweikert.ch/ </homepage>
+ <year> 2005 </year><month> 6 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://www.stat.ee.ethz.ch/mailgraph.cgi </livesite>
+ <email> david@schweikert.ch </email> <!-- Author contact -->
+
+ </rrdworld>
+
diff --git a/website/rrdworld/monitorix.png b/website/rrdworld/monitorix.png
new file mode 100644 (file)
index 0000000..9d9ad97
Binary files /dev/null and b/website/rrdworld/monitorix.png differ
index 0000000..9d9ad97
Binary files /dev/null and b/website/rrdworld/monitorix.png differ
diff --git a/website/rrdworld/monitorix.xml b/website/rrdworld/monitorix.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<rrdworld type="application"
+ icon="monitorix.png" > <!-- Size 155x40 -->
+
+ <name> Monitorix </name>
+ <author> Jordi Sanfeliu </author>
+<description>Monitorix is a lightweight monitoring tool designed to monitor as many services as it can. At this time, it monitors from the CPU load and temperatures to the users on the system. Network device activity, network service demand, kernel usage and even the devices' interrupt activity are also monitored. It uses RRDtool as its logging and graphing back-end. The current status of any corporate UNIX/Linux server with Monitorix installed can be accessed via a Web browser. </description>
+ <homepage> http://www.monitorix.org </homepage>
+ <year> 2005 </year><month> 9 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://www.fibranet.cat/monitorix/ </livesite>
+ <email> jordi@fibranet.cat </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/mpltd.xml b/website/rrdworld/mpltd.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<rrdworld type="linux daemon"
+ > <!-- Size 100x66 -->
+
+ <name>mpltd : MP Log Traffic Daemon</name>
+ <author>Massimiliano Piccinini</author>
+<description>mplpd is a little sniffing daemon that logs statistics per type of service. The type of service is defined by a rules configuration.</description>
+ <homepage>http://digilander.libero.it/ItaAto/st_welcome.htm</homepage>
+ <year>2006</year><month>9</month> <!-- Entry creation date -->
+ <license>free source</license>
+
+ <email>maxpic(@)libero.it</email> <!-- Author contact -->
+</rrdworld>
+
+
diff --git a/website/rrdworld/munin.png b/website/rrdworld/munin.png
new file mode 100644 (file)
index 0000000..74d8d6a
Binary files /dev/null and b/website/rrdworld/munin.png differ
index 0000000..74d8d6a
Binary files /dev/null and b/website/rrdworld/munin.png differ
diff --git a/website/rrdworld/munin.xml b/website/rrdworld/munin.xml
--- /dev/null
@@ -0,0 +1,22 @@
+<rrdworld type="application"
+ icon="munin.png" > <!-- Size 100x66 -->
+
+ <name> Munin </name>
+ <author> Ingvar Hagelund, Kjetil T. Homme, Patrick Domack, Mike
+Discenza, Alexandre Dupouy, Nicolai Langfeldt, Mike Fedyk
+</author>
+<description> Munin is a tool for collecting performance data and
+displaying it in a web interface. It has a master/node architecture. The
+master collects data from the nodes at regular intervals, storing the
+data in RRD, and updates the graphs. One of the main goals has been ease
+of creating plugins. </description>
+ <homepage> http://www.linpro.no/projects/munin/ </homepage>
+ <year> 2005 </year><month> 11 </month> <!-- Entry creation date -->
+ <license> GPL v2 </license>
+
+ <!-- Optional -->
+
+ <livesite> http://www.linpro.no/projects/munin/example/ </livesite>
+ <email> munin-users@lists.sourceforge.net </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/n2rrd.xml b/website/rrdworld/n2rrd.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="companion" > <!-- Size 100x66 -->
+
+ <name> N2RRD Nagios Add-On</name>
+ <author> Badri Prasad Pillai </author>
+<description> Nagios to RRD (n2rrd) is a small perl script, which transforms performance data into
+RRA (Round Robin Archives). The resulting archives can later be viewed by any RRD graph display tool.
+ </description>
+ <homepage> http://n2rrd.diglinks.com </homepage>
+ <year> 2006 </year><month> 10 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://mon.diglinks.com/cgi-bin/rrd2graph.cgi?hostname=demo&service=icmp </livesite>
+ <email> badri@diglinks.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/netmrg.png b/website/rrdworld/netmrg.png
new file mode 100644 (file)
index 0000000..a678bc4
Binary files /dev/null and b/website/rrdworld/netmrg.png differ
index 0000000..a678bc4
Binary files /dev/null and b/website/rrdworld/netmrg.png differ
diff --git a/website/rrdworld/netmrg.xml b/website/rrdworld/netmrg.xml
--- /dev/null
@@ -0,0 +1,20 @@
+<rrdworld type="application"
+ icon="netmrg.png" > <!-- Size 100x66 -->
+
+ <name> NetMRG </name>
+ <author> Brady Alleman, Douglas E. Warner, Kevin Bonner </author>
+<description>
+A network monitoring, reporting, and graphing system.
+Using MySQL, PHP, C++, pthreads, and RRDTOOL, it is capable of monitoring
+thousands of arbitrary values at user-configured intervals (typically 5 minutes).
+</description>
+ <homepage> http://www.netmrg.net </homepage>
+ <year> 2006 </year><month> 1 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://demo.netmrg.net </livesite>
+ <email> dev@netmrg.net </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/nhawk_description.xml b/website/rrdworld/nhawk_description.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<rrdworld type="companion"\r
+ icon="nhawk_icon.png" > <!-- Size 100x66 -->\r
+ \r
+ <name> NHAWK (C# RRDTool Library for .Net and Mono) </name>\r
+ <author> Michael Corley </author>\r
+<description> NHawk is an initiative to provide a thin, complete RRDtool provider for the .Net and Mono framework. The project goal is targeted at providing a C# interface to native RRDtool facilities through appropriate .Net / Mono object model semantics. </description>\r
+ <homepage> http://www.codeproject.com/KB/cs/NHawk.aspx </homepage> \r
+ <year> 2008 </year><month> 8 </month> <!-- Entry creation date -->\r
+ <license> GPL </license>\r
+\r
+ <!-- Optional --> \r
+\r
+ <livesite> http://www.codeproject.com/KB/cs/NHawk.aspx </livesite> \r
+ <email> mwcorley79@gmail.com </email> <!-- Author contact -->\r
+\r
+</rrdworld>\r
diff --git a/website/rrdworld/nhawk_icon.png b/website/rrdworld/nhawk_icon.png
new file mode 100644 (file)
index 0000000..90bd3a6
Binary files /dev/null and b/website/rrdworld/nhawk_icon.png differ
index 0000000..90bd3a6
Binary files /dev/null and b/website/rrdworld/nhawk_icon.png differ
diff --git a/website/rrdworld/nmis-rrdtool.xml b/website/rrdworld/nmis-rrdtool.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="application" > <!-- Size 100x66 -->
+ <name>NMIS</name>
+ <author>Keith Sinclair, Eric Greenwood, Ivan Brunello, Jan van Keulen and the NMIS Development Team.</author>
+ <description>
+NMIS stands for Network Management Information System. It provides a platform
+for fault and performance management of your network.
+It supports many network products including Cisco, Microsoft, Sun , NET-SNMP
+(Linux).
+It provides thresholding, notification engine, summary network metrics, as
+well reporting of MANY things.
+There is an active NMIS community @ http://groups.yahoo.com/group/nmis_users/
+ </description>
+ <homepage>http://www.sins.com.au/nmis/</homepage>
+ <year>2006</year>
+ <month>3</month> <!-- Entry creation date -->
+ <license>GPL</license>
+</rrdworld>
diff --git a/website/rrdworld/observernms.jpg b/website/rrdworld/observernms.jpg
new file mode 100644 (file)
index 0000000..723f2bc
Binary files /dev/null and b/website/rrdworld/observernms.jpg differ
index 0000000..723f2bc
Binary files /dev/null and b/website/rrdworld/observernms.jpg differ
diff --git a/website/rrdworld/observernms.xml b/website/rrdworld/observernms.xml
--- /dev/null
@@ -0,0 +1,15 @@
+<rrdworld type="companion"
+ icon="observer.png" > <!-- Size 60x59 -->
+
+ <name> Observer NMS </name>
+ <author> Adam Armstrong </author>
+<description> Observer is an autodiscovering network management/monitoring system using rrdtool to draw graphs. Cisco network hardware can be automatically discovered based on CDP data collected via SNMP. It is also capable of automatically generating network infrastructure diagrams using Graphviz. </description>
+ <homepage> http://www.observernms.org </homepage>
+ <year> 2007 </year><month> 3 </month> <!-- Entry creation date -->
+ <license> BSD </license>
+
+ <!-- Optional -->
+
+ <livesite> http://demo.observernms.org </livesite>
+ <email> adama@memetic.org </email> <!-- Author contact -->
+</rrdworld>
diff --git a/website/rrdworld/oreon.gif b/website/rrdworld/oreon.gif
new file mode 100644 (file)
index 0000000..cbad037
Binary files /dev/null and b/website/rrdworld/oreon.gif differ
index 0000000..cbad037
Binary files /dev/null and b/website/rrdworld/oreon.gif differ
diff --git a/website/rrdworld/oreon.xml b/website/rrdworld/oreon.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<rrdworld type="application" icon="oreon.gif" > <!-- Size 280x115 -->
+ <name> Oreon </name>
+ <author> <a href="mailto:jmathis@oreon-project.org">Julien Mathis</a> And <a href="mailto:rlemerlus@oreon-project.org">Romain Le Merlus</a> </author>
+<description> Oreon is a network supervision software. It is based upon Nagios which is the most effective Open Source supervision and monitoring engine. The aim of this project is to offer a new frontend to Nagios, providing new functionalities through a modern and customisable interface for most users.</description>
+ <homepage> http://www.oreon-project.org</homepage>
+ <year> 2003 </year><month> 02 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> info@oreon-project.org </email> <!-- Author contact -->
+
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/ourmon.xml b/website/rrdworld/ourmon.xml
--- /dev/null
@@ -0,0 +1,31 @@
+<rrdworld type="application" >
+
+ <name> Ourmon Networm Monitoring and Anomaly Detection System </name>
+ <author> Jim Binkley </author>
+<description>
+Ourmon is a statistically oriented open-source network monitoring and
+anomaly detection system. It may be regarded as an open source
+equivalent of SNMP RMON II. It is based on promiscuous mode packet
+collection on Ethernet (typically) interfaces. Ourmon does not collect
+all the packets because one principle design goal is to extract signal
+from noise, and not store all the noise in a giant bag under the
+assumption that you can look at it "later" (there is no later).
+Instead it attempts to find important data and summarize it. Data
+is displayed on the web via pictures or reports. Features include
+RRDTOOL graphs built from user-defined BPF expressions, topn flow
+lists, topn ports, topn synning IP hosts, top UDP error makers, top
+scanners, and IRC channels and hosts. Ourmon's anomaly detection
+features include TCP and UDP anomalous hosts, IRC "evil" networks
+(botnets) and a lovely graph that displays the number of remote and
+local scanners. TCP data also includes information about P2P using
+hosts, and soon will allow traffic classification via user-suppled
+PCRE pattern tags.
+</description>
+ <homepage> http://ourmon.sourceforge.net </homepage>
+ <year> 2006 </year><month> 3 </month> <!-- Entry creation date -->
+ <license> BSD </license>
+
+ <livesite> http://ourmon.cat.pdx.edu/ourmon</livesite>
+ <email> jrb@cs.pdx.edu </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/ow.xml b/website/rrdworld/ow.xml
--- /dev/null
+++ b/website/rrdworld/ow.xml
@@ -0,0 +1,11 @@
+<rrdworld type="application">
+
+ <name> openSSI webView </name>
+ <author> Kilian CAVALOTTI </author>
+ <description> openSSI webView is a simple and easy-to-use openSSI cluster monitoring system. Its goal is to provide a quick overview of the cluster state, by graphing vital functions and graphically representing key figures. It allows the cluster administrator to keep an eye on the cluster health and usage rate, to quick view each node state and load, and to watch, and even migrate, users processes all accross the cluster. </description>
+ <homepage> http://openssi-webview.sourceforge.net/ </homepage>
+ <year> 2004 </year><month> 11 </month> <!-- Entry creation date -->
+ <license> CeCILL </license>
+
+</rrdworld>
+
diff --git a/website/rrdworld/ozmonitor.gif b/website/rrdworld/ozmonitor.gif
new file mode 100644 (file)
index 0000000..7c4c76c
Binary files /dev/null and b/website/rrdworld/ozmonitor.gif differ
index 0000000..7c4c76c
Binary files /dev/null and b/website/rrdworld/ozmonitor.gif differ
diff --git a/website/rrdworld/ozmonitor.xml b/website/rrdworld/ozmonitor.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<rrdworld type="application" icon="ozmonitor.gif" >
+
+ <name> ozMonitor </name>
+ <author> OZOOD Solutions </author>
+<description>
+ozMonitor monitor permanently your Web site. As soon as this one is
+unvalable or that its performance
+(downloadtime) is degraded, you are automatically alerted. You can thus
+react as soon as possible. Thus, you
+control your Web site freely with ozMonitor.
+</description>
+ <homepage> http://www.ozmonitor.net</homepage>
+ <year> 2005 </year><month> 09 </month> <!-- Entry creation date -->
+ <license> Free ASP Mode </license>
+ <livesite> http://www.ozmonitor.net/index.php?option=com_ozdemo</livesite>
+</rrdworld>
diff --git a/website/rrdworld/prb.png b/website/rrdworld/prb.png
new file mode 100644 (file)
index 0000000..7ab6025
Binary files /dev/null and b/website/rrdworld/prb.png differ
index 0000000..7ab6025
Binary files /dev/null and b/website/rrdworld/prb.png differ
diff --git a/website/rrdworld/prb.xml b/website/rrdworld/prb.xml
--- /dev/null
+++ b/website/rrdworld/prb.xml
@@ -0,0 +1,23 @@
+<rrdworld type="companion|application"
+ icon="prb.png" > <!-- Size 88x56 -->
+
+ <name> p|r|b php rrd browser </name>
+ <author> Guillaume Fontaine ** </author>
+<description> A modular rrdtool utility for polling and graphing data.
+It is written in php and stores configuration information in mysql.
+The aim is to be highly flexible and make it possible to gather most
+any kind of data and and graph it. The creation of RRA's, the polling
+logic and the graph definitions are all defined in dedicated php
+modules which can be added or customized at will. The poller and web
+font-end both
+use these modules.
+ </description>
+ <homepage> http://prb.sourceforge.net/ </homepage>
+ <year> 2007 </year><month> 2 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+ <email> prb.dev@gmail.com </email> <!-- Author contact -->
+
+</rrdworld>
+
diff --git a/website/rrdworld/prefixmaster.xml b/website/rrdworld/prefixmaster.xml
--- /dev/null
@@ -0,0 +1,23 @@
+<rrdworld type="application"
+ icon="" >
+
+ <name> Eye-on Bandwidth </name>
+ <author> Prefixmaster </author>
+<description>
+Eye-on Bandwidth is a bandwidth monitor designed for scalability, speed
+and security. It can be used by non-technical staff and has different
+user privilege levels. A public system is available for small business
+to simply manage a few devices, and a on-site system is available for
+enterprise/ISP.
+</description>
+ <homepage> http://www.prefixmaster.com/ </homepage>
+ <year> 2006 </year><month> 4 </month> <!-- Entry creation date
+-->
+ <license> Commercial </license>
+
+ <!-- Optional -->
+
+ <livesite> http://demo.prefixmaster.com/ </livesite>
+ <email> info@prefixmaster.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/pyrrd.xml b/website/rrdworld/pyrrd.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="library">
+
+ <name>PyRRD</name>
+ <author>Duncan McGreggor</author>
+<description>A Pure Python OO Wrapper for RRDTool</description>
+ <homepage>http://code.google.com/p/pyrrd/</homepage>
+ <year>2004</year><month>8</month>
+ <license>BSD</license>
+
+</rrdworld>
diff --git a/website/rrdworld/rrd4j.xml b/website/rrdworld/rrd4j.xml
--- /dev/null
@@ -0,0 +1,9 @@
+<rrdworld type="companion">
+ <name> RRD4J </name>
+ <author> Sasa Marcovic, Mathias Bogaert </author>
+<description> Rrd4j is a 100% pure java implementation of RRDTool.</description>
+ <homepage> https://rrd4j.dev.java.net/ </homepage>
+ <year> 2006 </year><month> 2 </month>
+ <license> LGPL </license>
+<email> m.bogaert@memenco.com </email> <!-- Author contact -->
+</rrdworld>
diff --git a/website/rrdworld/rrd_merger.xml b/website/rrdworld/rrd_merger.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<rrdworld type="application" > <!-- Size 100x66 -->\r
+\r
+ <name> RRD Merger </name>\r
+ <author> Ivan Pintori </author>\r
+<description> RRD Merger is a perl script that merges 2 RRDs into a new one. </description>\r
+ <homepage> http://www.pintori.it/rrd-merger </homepage>\r
+ <year> 2005 </year><month> 5 </month>\r
+ <license> GPL </license>\r
+\r
+ <!-- Optional -->\r
+\r
+ <email> ivan@pintori.it </email>\r
+\r
+</rrdworld>\r
diff --git a/website/rrdworld/rrdbot.xml b/website/rrdworld/rrdbot.xml
--- /dev/null
@@ -0,0 +1,12 @@
+<rrdworld type="companion">
+
+ <name>RRDBot</name>
+ <author>Nate Nielsen</author>
+<description>RRDBot is an SNMP polling daemon which writes the polled values to an RRD database. It can poll many different SNMP sources in an efficient manner. RRDBot also contains tools to simplify the creation of RRD files, and the various archives contained in them. </description>
+ <homepage>http://memberwebs.com/nielsen/software/rrdbot/</homepage>
+ <year>2006</year><month>8</month> <!-- Entry creation date -->
+ <license>BSD</license>
+
+ <email>rrdbot@googlegroups.com</email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/rrdcgi.xml b/website/rrdworld/rrdcgi.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="frontend">
+ <name> rrd.cgi </name>
+ <author> Haroon Rafique </author>
+ <description> rrd.cgi is an on-demand, highly configurable perl front-end
+ for rrdtool. It supports,
+ unlimited DEFs, CDEFs, hourly/daily/weekly/montly/yearly graphs,
+ auto-archival of graphs, historical graphs, displaying
+ source of RRDs::graph statements and autorefresh. rrd.cgi runs
+ under cgi-bin or mod_perl.</description>
+ <homepage> http://haroon.sis.utoronto.ca/rrd/scripts/ </homepage>
+ <year> 2005 </year><month> 6 </month>
+ <license> GPL </license>
+
+ <livesite> http://haroon.sis.utoronto.ca/perl/rrd.cgi/ </livesite>
+ <email> haroon.rafique@utoronto.ca </email>
+
+</rrdworld>
diff --git a/website/rrdworld/rrdcreator.xml b/website/rrdworld/rrdcreator.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<rrdworld type="companion" >
+ <name> RRDTool::Creator</name>
+ <author>Jacquelin Charbonnel</author>
+ <description>
+ Perl module to simplify the creation of different kind of common RRD
+ </description>
+ <homepage>http://search.cpan.org/search?query=RRDTool::Creator&mode=module</homepage>
+ <year> 2007 </year>
+ <month> 6 </month>
+ <license> CeCILL-C </license>
+</rrdworld>
diff --git a/website/rrdworld/rrdstats.png b/website/rrdworld/rrdstats.png
new file mode 100644 (file)
index 0000000..a159e0c
Binary files /dev/null and b/website/rrdworld/rrdstats.png differ
index 0000000..a159e0c
Binary files /dev/null and b/website/rrdworld/rrdstats.png differ
diff --git a/website/rrdworld/rrdstats.xml b/website/rrdworld/rrdstats.xml
--- /dev/null
@@ -0,0 +1,14 @@
+<rrdworld type="application" icon="rrdstats.png" > <!-- Size 100x66
+-->
+ <name>RRDstats</name>
+ <author>Dolly</author>
+<description>Coyote Linux & BrazilFW floppy router monitoring package. This
+package monitors and graphically presents router bandwidth usage and
+internet link quality statistics. It's also used for visualizing statistics
+of defined QOS classes.</description>
+ <homepage>http://dolly.czi.cz/coyote/packages/rrd.asp</homepage>
+ <year>2005</year><month>11</month> <!-- Entry creation date -->
+ <license>GPL</license>
+ <livesite>http://dolly.czi.cz/coyote/statssample/</livesite>
+ <email>dolly@czi.cz</email> <!-- Author contact -->
+</rrdworld>
diff --git a/website/rrdworld/rrdutil.xml b/website/rrdworld/rrdutil.xml
--- /dev/null
@@ -0,0 +1,20 @@
+<rrdworld type="application" >
+
+ <name> RRDutil </name>
+ <author> Matt Simerson </author>
+ <description> Complete host monitoring tool for small
+networks. Polls hosts via SNMP. Includes data collection scripts for
+monitoring Apache, MySQL, and motherboard info. Monitors CPU load, memory,
+disk space and activity, and network interfaces. Email
+stats are provided via maillogs. Web hits via Logmonster.</description>
+ <homepage> http://www.tnpi.biz/internet/manage/rrdutil/ </homepage>
+ <year> 2005 </year><month> 6 </month> <!-- Entry creation date -->
+ <license> BSD </license>
+
+ <!-- Optional -->
+
+ <livesite> http://www.tnpi.biz/cgi-bin/rrdutil.cgi </livesite>
+ <email> info@tnpi.biz </email> <!-- Author contact -->
+
+ </rrdworld>
+
diff --git a/website/rrdworld/rrdutils.xml b/website/rrdworld/rrdutils.xml
--- /dev/null
@@ -0,0 +1,18 @@
+<rrdworld type="companion">
+
+ <name> rrdUtils </name>
+ <author> Javier Palacios </author>
+ <description> Is a set of tools intended to help the creation
+and graphing
+of RRD files. The RRD characteristics (data sources, consolidation
+functions, ...) and the graphs are described in a configuration file that we
+can use to create new instances of a RRD, and to generate the graphs for
+them.<br/> It includes an extension which uses the configuration files to
+poll an SNMP agent and stores the results in the related RRD. </description>
+ <homepage> http://rrdutils.sourceforge.net </homepage>
+ <year> 2005 </year><month> 4 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <email> javierpb@arsystel.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/rrdweather.xml b/website/rrdworld/rrdweather.xml
--- /dev/null
@@ -0,0 +1,12 @@
+<rrdworld type="application">
+
+ <name> RRDWeather </name>
+ <author> Sébastien Wains </author>
+ <description> RRDWeather is a set of scripts working with RRDtool and weather.com.
+RRDWeather collects weather info from the web on a regular basis and puts it in RRDtool graphs.</description>
+ <homepage> http://www.wains.be/projects/rrdweather/ </homepage>
+ <year> 2005 </year><month> 9 </month>
+ <license> GPL </license>
+ <livesite> http://www.wains.be/cgi-bin/weather.cgi </livesite>
+
+</rrdworld>
diff --git a/website/rrdworld/serverstats.xml b/website/rrdworld/serverstats.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="application" >
+ <name> Serverstats </name>
+ <author> David Danier </author>
+<description> Simple collection of some PHP5 scripts for creating graphs. </description>
+ <homepage> http://www.webmasterpro.de/~ddanier/serverstats/ </homepage>
+ <year> 2005 </year><month> 5 </month>
+ <license> GPL </license>
+ <livesite> https://www.webmasterpro.de/~ddanier/serverstats/demo/</livesite>
+ <email> david.danier@team23.de </email>
+</rrdworld>
diff --git a/website/rrdworld/sicm.xml b/website/rrdworld/sicm.xml
--- /dev/null
@@ -0,0 +1,15 @@
+<rrdworld type="application"\r
+ icon="sicm_logo.png" > <!-- Size 100x66 -->\r
+ \r
+ <name> SICM - Simple Infrastructure Capacity Monitor </name>\r
+ <author> Thomas Price </author>\r
+<description> SICM is a tool to monitor, graph and alert the capacity of computing devices and applications. SICM runs on a Windows or Linux device on your network, 24 hours every day and constantly records the capacity parameters of any networked device using snmp, ping or custom modules. The recorded data is stored for later reference via a user friendly menu-driven web browser. E-mail alerts are raised if a user determined number of queries fail. </description>\r
+ <homepage> http://sicm.sourceforge.net </homepage> \r
+ <year> 2003 </year><month> 10 </month> <!-- Entry creation date -->\r
+ <license> GPL </license>\r
+\r
+ <!-- Optional --> \r
+\r
+ <livesite> http://sicm.sourceforge.net/example.html </livesite> \r
+\r
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/sicm_logo.png b/website/rrdworld/sicm_logo.png
new file mode 100644 (file)
index 0000000..2cca637
Binary files /dev/null and b/website/rrdworld/sicm_logo.png differ
index 0000000..2cca637
Binary files /dev/null and b/website/rrdworld/sicm_logo.png differ
diff --git a/website/rrdworld/smokeping.png b/website/rrdworld/smokeping.png
new file mode 100644 (file)
index 0000000..7d9d364
Binary files /dev/null and b/website/rrdworld/smokeping.png differ
index 0000000..7d9d364
Binary files /dev/null and b/website/rrdworld/smokeping.png differ
diff --git a/website/rrdworld/smokeping.xml b/website/rrdworld/smokeping.xml
--- /dev/null
@@ -0,0 +1,18 @@
+<rrdworld type="application"
+ icon="smokeping.png" > <!-- Size 100x66 -->
+
+ <name> SmokePing </name>
+ <author> Tobias Oetiker and Niko Tyni</author>
+<description> Latency monitor with built-in alerting system,
+ web interface and powerful plugin system for extensibility with new
+type of latency probes and alerts.
+</description>
+ <homepage> http://oss.oetiker.ch/smokeping </homepage>
+ <year> 2005 </year><month> 9 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> tobi@oetiker.ch </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/snm_at_rrdworld.png b/website/rrdworld/snm_at_rrdworld.png
new file mode 100644 (file)
index 0000000..3493ec1
Binary files /dev/null and b/website/rrdworld/snm_at_rrdworld.png differ
index 0000000..3493ec1
Binary files /dev/null and b/website/rrdworld/snm_at_rrdworld.png differ
diff --git a/website/rrdworld/snm_at_rrdworld.xml b/website/rrdworld/snm_at_rrdworld.xml
--- /dev/null
@@ -0,0 +1,19 @@
+<rrdworld type="application"
+ icon="snm_at_rrdworld.png" > <!-- Size 100x66 -->
+
+ <name> SNM - System and Network Monitor </name>
+ <author> Thomas Price </author>
+<description> SNM is a tool to monitor, graph and alert system and network computing devices.
+ SNM runs on a Windows or Linux device on your network, 24 hours a day constantly recording the
+ parameters of the computing device using snmp, ping or custom modules. The recorded data is
+ stored for later reference via a user friendly menu-driven web browser. E-mail alerts are raised
+ if a user determined number of queries or thresholds fail. </description>
+ <homepage> http://snm.sourceforge.net/ </homepage>
+ <year> 2006 </year><month> 5 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://snm.sourceforge.net/example.html </livesite>
+
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/snmpgraph.xml b/website/rrdworld/snmpgraph.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<rrdworld type="application" >
+
+ <name> SnmpGraph </name>
+ <author> Antoine Guilmard </author>
+ <description> SnmpGraph permit to monitor the OIDs of SNMP protocol. You can also monitor all probe of
+MotherBoardMonitor 5 (temperature, voltage). It automates the update of a RRD data base like does it the famous MRTG but does
+not use Perl script. The installation can be done as a service in Windows. </description>
+ <homepage> http://guilmard.free.fr/index.php?page=snmpgraph&lg=en </homepage>
+ <year> 2005 </year><month> 5 </month>
+ <license> GPL </license>
+
+</rrdworld>
+# From: Antoine Guilmard <guilmard@free.fr>
diff --git a/website/rrdworld/statsdawg.xml b/website/rrdworld/statsdawg.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="application">
+ <name>StatsDawg</name>
+ <author>Tim Soderstrom</author>
+<description>Server status and tracking suite designed to be easy to install yet feature-rich. Based on
+PHP, RRDTool, and the Smarty Template Engine.</description>
+ <homepage>http://www.statsdawg.org</homepage>
+ <year>2007</year><month>3</month> <!-- Entry creation date -->
+ <license>GPL</license>
+</rrdworld>
+
diff --git a/website/rrdworld/systemgraph.png b/website/rrdworld/systemgraph.png
new file mode 100644 (file)
index 0000000..156871e
Binary files /dev/null and b/website/rrdworld/systemgraph.png differ
index 0000000..156871e
Binary files /dev/null and b/website/rrdworld/systemgraph.png differ
diff --git a/website/rrdworld/systemgraph.xml b/website/rrdworld/systemgraph.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<rrdworld type="application|"
+ icon="systemgraph.png" > <!-- Size 100x66 -->
+
+ <name> Systemgraph </name>
+ <author> Jochen Schlick </author>
+<description> A nice graphical system statistics RRDtool frontend which produces hourly, daily, weekly, monthly ... graphs of various system data. At the moment it provides graphs for memory usage, cpu info, number of processes, number of open files, number of tcp connections, system load, network traffic, harddisk usage, ntpdrift, fan status and system temperatures. </description>
+ <homepage> http://www.decagon.de/sw/systemgraph </homepage>
+ <year> 2006 </year><month> 2 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+</rrdworld>
diff --git a/website/rrdworld/tacLOG_RRD.png b/website/rrdworld/tacLOG_RRD.png
new file mode 100644 (file)
index 0000000..ab4ee44
Binary files /dev/null and b/website/rrdworld/tacLOG_RRD.png differ
index 0000000..ab4ee44
Binary files /dev/null and b/website/rrdworld/tacLOG_RRD.png differ
diff --git a/website/rrdworld/tacLOG_RRD.xml b/website/rrdworld/tacLOG_RRD.xml
--- /dev/null
@@ -0,0 +1,16 @@
+<rrdworld type="application"
+ icon="taclog_RRD.png" > <!-- Size 100x66 -->
+
+ <name>tacLOG / tacMON</name>
+ <author>terreActive AG</author>
+<description>tacLOG is a tool for centralized log management (passive monitoring). It can be used for compliance, event generation, analysis and reporting. tacMON is the active counter part used for system and security monitoring. RRD-graphs are used to display the (active and passive) monitoring results.</description>
+ <homepage> http://www.terreactive.ch </homepage>
+ <year> 2009 </year><month> 2 </month> <!-- Entry creation date -->
+ <license>proprietary</license>
+
+ <!-- Optional -->
+
+ <livesite> http://www.terreactive.ch </livesite>
+ <email> sales@terreactive.ch </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/thermometer.png b/website/rrdworld/thermometer.png
new file mode 100644 (file)
index 0000000..43d8964
Binary files /dev/null and b/website/rrdworld/thermometer.png differ
index 0000000..43d8964
Binary files /dev/null and b/website/rrdworld/thermometer.png differ
diff --git a/website/rrdworld/thermometer.xml b/website/rrdworld/thermometer.xml
--- /dev/null
@@ -0,0 +1,16 @@
+ <rrdworld type="companion"
+ icon="thermometer.png" > <!-- Size 100x66 -->
+
+ <name> temperatures </name>
+ <author> Gürkan Sengün </author>
+ <description> CPU and Disk temperature monitoring </description>
+ <homepage> https://inventory.phys.ethz.ch/stats/ </homepage>
+ <year> 2006 </year><month> 12 </month> <!-- Entry creation date -->
+ <license> GNU GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> https://inventory.phys.ethz.ch/stats/ </livesite>
+ <email> sengun@phys.ethz.ch </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/tinygraph.xml b/website/rrdworld/tinygraph.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="application">
+ <name>tinygraph</name>
+ <author>Ulrich Zehl</author>
+ <description>tinygraph is a simple RRDtool frontend that parses tinydns' logfiles and produces daily, weekly, monthly and yearly graphs of answered queries, grouping them together by their various types.</description>
+ <homepage>http://www.topfen.net/software/tinygraph/</homepage>
+ <year>2005</year>
+ <month>7</month>
+ <license>GPL</license>
+ <livesite>http://www.topfen.net/software/tinygraph/tinygraph.cgi</livesite>
+</rrdworld>
diff --git a/website/rrdworld/toolsmith.xml b/website/rrdworld/toolsmith.xml
--- /dev/null
@@ -0,0 +1,21 @@
+<rrdworld type="companion"
+ icon="toolsmith_logo.png" > <!-- Size 100x43 -->
+
+ <name> RRD Editor </name>
+ <author> Paul Smith </author>
+<description> The visual editing features of the RRD Editor allow you to
+easily modify the contents of an RRD. Once
+an RRD is loaded into the Editor you can quickly locate a specific data
+point to modify or an entire Round Robin
+Archive can be removed. The tool also allows new data sources and RRAs to
+be added. </description>
+ <homepage> http://thetoolsmith.com </homepage>
+ <year> 2006 </year><month> 4 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://thetoolsmith.com </livesite>
+ <email> admin@thetoolsmith.com </email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/rrdworld/toolsmith_logo.png b/website/rrdworld/toolsmith_logo.png
new file mode 100644 (file)
index 0000000..ecd01cf
Binary files /dev/null and b/website/rrdworld/toolsmith_logo.png differ
index 0000000..ecd01cf
Binary files /dev/null and b/website/rrdworld/toolsmith_logo.png differ
diff --git a/website/rrdworld/torrus.xml b/website/rrdworld/torrus.xml
--- /dev/null
@@ -0,0 +1,13 @@
+<rrdworld type="application">
+<name>Torrus</name>
+<author>Stanislav Sinyagin</author>
+<description>
+A robust and flexible framework for data collection and processing.
+Includes a modular SNMP discovery engine, SNMP collector, threshold monitor,
+hierarchical web interface.
+</description>
+<homepage>http://torrus.org/</homepage>
+<year>2005</year><month>6</month>
+<license>GPL</license>
+<email>ssinyagin@yahoo.com</email>
+</rrdworld>
diff --git a/website/rrdworld/tstat.xml b/website/rrdworld/tstat.xml
--- /dev/null
@@ -0,0 +1,31 @@
+<rrdworld type="application"
+ icon="tstat_logo.png" > <!-- Size 100x66 -->
+
+ <name> Tstat </name>
+ <author> Marco Mellia </author>
+ <description>
+ Tstat provides information about classic
+ and novel performance indexes and statistical data
+ about Internet traffic.
+ It collects measurement indexes at both the
+ network (IP) layer and transport (TCP/UDP) layer.
+ Real time protocols (RTP/RTCP) are also analyzed,
+ allowing you to get statistical measurements on
+ VOIP traffic, for example.
+ Tstat analyzes either real-time captured packet
+traces,
+or previously recorded packet-level traces in various dump formats.
+
+</description>
+ <homepage> http://tstat.tlc.polito.it </homepage>
+ <year> 2005 </year><month> 6 </month> <!-- Entry creation date
+ -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://tstat.tlc.polito.it/web.shtml</livesite>
+ <email> mellia@mail.tlc.polito.it </email> <!-- Author contact -->
+
+ </rrdworld>
+
diff --git a/website/rrdworld/tstat_logo.png b/website/rrdworld/tstat_logo.png
new file mode 100644 (file)
index 0000000..e866b59
Binary files /dev/null and b/website/rrdworld/tstat_logo.png differ
index 0000000..e866b59
Binary files /dev/null and b/website/rrdworld/tstat_logo.png differ
diff --git a/website/rrdworld/unnoc-100x66.png b/website/rrdworld/unnoc-100x66.png
new file mode 100644 (file)
index 0000000..5d2d1a5
Binary files /dev/null and b/website/rrdworld/unnoc-100x66.png differ
index 0000000..5d2d1a5
Binary files /dev/null and b/website/rrdworld/unnoc-100x66.png differ
diff --git a/website/rrdworld/unnoc.xml b/website/rrdworld/unnoc.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="application"
+ icon="unnoc-100x66.png" > <!-- Size 100x66 -->
+
+ <name> Unnoc </name>
+ <author> Jason Schoonover</author>
+ <description>Unnoc is an application that integrates RRDTool graphs with device monitoring. It will monitor and graph: CPU use, Memory, Load Average, Processes, Disk Usage, Network traffic and other misc items. Email alerts. Many supported devices (anything SNMP), including Cisco Aironets, APC and VMWare VI3.</description>
+ <homepage> http://unnoc.org </homepage>
+ <year> 2007 </year><month> 1 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <livesite> http://unnoc.org/demo </livesite>
+ <email> jason_jks@yahoo.com </email> <!-- Author contact -->
+
+</rrdworld>
+
diff --git a/website/rrdworld/wanguard.png b/website/rrdworld/wanguard.png
new file mode 100644 (file)
index 0000000..7d8fdc5
Binary files /dev/null and b/website/rrdworld/wanguard.png differ
index 0000000..7d8fdc5
Binary files /dev/null and b/website/rrdworld/wanguard.png differ
diff --git a/website/rrdworld/wanguard.xml b/website/rrdworld/wanguard.xml
--- /dev/null
@@ -0,0 +1,11 @@
+<rrdworld type="application"
+ icon="wanguard.png" > <!-- Size 100x68 -->
+
+ <name> WANGuard Platform </name>
+ <author> Andrisoft </author>
+<description> WANGuard Platform relies on NetFlow or Port Mirroring / SPAN to provide in-depth network traffic analysis and DDoS detection and mitigation. It can be used to generate traffic graphs and traffic accounting reports per IP, per subnet, per IP Zone or per router interface / switch port.</description>
+ <homepage> http://www.andrisoft.com </homepage>
+ <year> 2008 </year><month> 2 </month>
+ <license> Commercial </license>
+ <email> office@andrisoft.com </email>
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/weathermap4rrd.png b/website/rrdworld/weathermap4rrd.png
new file mode 100644 (file)
index 0000000..07617cd
Binary files /dev/null and b/website/rrdworld/weathermap4rrd.png differ
index 0000000..07617cd
Binary files /dev/null and b/website/rrdworld/weathermap4rrd.png differ
diff --git a/website/rrdworld/weathermap4rrd.xml b/website/rrdworld/weathermap4rrd.xml
--- /dev/null
@@ -0,0 +1,15 @@
+<rrdworld type="application"
+ icon="weathermap4rrd.png" > <!-- Size 100x66 -->
+
+ <name> WeatherMap4RRD </name>
+ <author> Alexandre Fontelle </author>
+<description> Network Weathermap based on data from RRD files </description>
+ <homepage> http://weathermap4rrd.tropicalex.net/ </homepage>
+ <year> 2005 </year><month> 1 </month>
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> afontelle@free.fr </email>
+
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/weathermap_rrdworld.xml b/website/rrdworld/weathermap_rrdworld.xml
--- /dev/null
@@ -0,0 +1,12 @@
+<rrdworld type="companion"
+ icon="weathermap_rrdworld.png" > <!-- Size 100x66 -->
+ <name>PHP Network Weathermap</name>
+ <author>Howard Jones</author>
+<description>Weathermap is a network visualisation tool, to take data you already have and show you an overview of your network in map form. Support is built in for RRD, and tab-delimited text files. Other sources are via plugins or external scripts. Includes nice Cacti integration with user authentication.</description>
+ <homepage>http://www.network-weathermap.com/</homepage>
+ <year>2007 </year><month> 6 </month> <!-- Entry creation date -->
+ <license>GPL </license>
+
+ <livesite>http://www.network-weathermap.com/manual/0.92/example/example.html</livesite>
+ <email>howie@thingy.com</email> <!-- Author contact -->
+</rrdworld>
\ No newline at end of file
diff --git a/website/rrdworld/webminstats.xml b/website/rrdworld/webminstats.xml
--- /dev/null
@@ -0,0 +1,17 @@
+<rrdworld type="application">
+
+ <name>webminstats</name>
+ <author>Eric Gerbier</author>
+<description> Webminstats is a Webmin module designed to store system information in an rrdtool database and to display historic (hourly,
+daily, weekly, monthly, and custom) graphs. It is modular in design, so as to be able to log everything from CPU usage to email box
+size.</description>
+ <homepage> http://webminstats.sourceforge.net</homepage>
+ <year> 2001 </year><month> 8 </month> <!-- Entry creation date -->
+ <license> GPL </license>
+
+ <!-- Optional -->
+
+ <email> gerbier@users.sourceforge.net </email> <!-- Author contact -->
+
+</rrdworld>
+
diff --git a/website/rrdworld/yacketystats.xml b/website/rrdworld/yacketystats.xml
--- /dev/null
@@ -0,0 +1,18 @@
+<rrdworld type="application"\r
+ icon="http://yaketystats.org/yak10066.png" > <!-- Size 100x66 -->\r
+ \r
+ <name> YaketyStats </name>\r
+ <author> teamdowntime@yaketystats.org </author>\r
+ \r
+ <description> YaketyStats gathers statistics about your *nix systems. It\r
+ is easy to install, maintain and extend and has has an intuitive,\r
+ AJAX-powered web interface for graphing data. Graphs are built on the\r
+ fly, can contain stats from multiple systems and include "Google\r
+ Maps"-like dragging.\r
+ </description>\r
+\r
+ <homepage> http://yaketystats.org/</homepage> \r
+ <year> 2008 </year><month> 10 </month> <!-- Entry creation date -->\r
+ <license> GPL V2 </license>\r
+ \r
+</rrdworld>\r
diff --git a/website/rrdworld/zenoss.xml b/website/rrdworld/zenoss.xml
--- /dev/null
@@ -0,0 +1,10 @@
+<rrdworld type="application"
+ icon="zenoss_logo.png" > <!-- Size 100x66 -->
+ <name>Zenoss Monitoring System</name>
+ <author>Erik A. Dahl</author>
+ <description>Zenoss is an enterprise grade monitoring system that provides Inventory/Configuration, Event, Performance and Availability management in a single integrated package. It is written in Python using the Zope web application framework and Twisted network programming environment. All performance information is stored in RRD files. Zenoss is written to be easy to use for a beginner yet flexible and powerful enough for the advanced user.</description>
+ <homepage> http://www.zenoss.org </homepage>
+ <year>2006</year><month>6</month> <!-- Entry creation date -->
+ <license> GPL </license>
+ <email>edahl@zenoss.org</email> <!-- Author contact -->
+</rrdworld>
diff --git a/website/rrdworld/zenoss_logo.png b/website/rrdworld/zenoss_logo.png
new file mode 100644 (file)
index 0000000..e853d53
Binary files /dev/null and b/website/rrdworld/zenoss_logo.png differ
index 0000000..e853d53
Binary files /dev/null and b/website/rrdworld/zenoss_logo.png differ
diff --git a/website/rrdworld/zerod.xml b/website/rrdworld/zerod.xml
--- /dev/null
@@ -0,0 +1,19 @@
+<rrdworld type="Framework"> <!-- Size 100x66 -->
+
+ <name> Zero RRD Framework </name>
+ <author> Boris Bukowski </author>
+<description>Zero is a light Framework around RRDTool, primary focused
+on server monitoring. The agent collects system statistics and sends
+them via HTTP to the central Server. There are plugins for logfile
+processing, mysql, diskusage, java JMX, squid logs and apache status.
+Zero is written in Perl.</description>
+ <homepage> http://zerod.sourceforge.net/ </homepage>
+ <year> 2009 </year><month> 4 </month> <!-- Entry creation date
+ -->
+ <license> GPL v3 </license>
+
+ <!-- Optional -->
+
+ <email>b.bukowski@gmx.de</email> <!-- Author contact -->
+
+</rrdworld>
diff --git a/website/site-sync b/website/site-sync
--- /dev/null
+++ b/website/site-sync
@@ -0,0 +1,3 @@
+rsync --copy-unsafe-links --verbose --times --delete --exclude pub --exclude='*~' --exclude=".svn" --exclude=".condor" -r . oposs@oss.oetiker.ch:public_html/rrdtool/
+#rsync --copy-unsafe-links --verbose --times --delete --exclude pub --exclude='*~' --exclude=".svn" --exclude=".condor" -r . /home/oetiker/public_html/webtools/rrdtool
+#rsync --links --verbose --times --delete --exclude pub --exclude='*~' --rsh=ssh -r . tobi@ipn.caida.org:/ipn/web/Tools/RRDtool
diff --git a/website/sponsor.wml b/website/sponsor.wml
--- /dev/null
+++ b/website/sponsor.wml
@@ -0,0 +1,54 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "sponsor">
+
+<h1>Sponsorship</h1>
+
+<p>These days I finance my work on RRDtool by developing <a
+href="http://it.oetiker.ch/monitoring/support.var">customer specific add-on
+features and support contracts</a>. Since this work is focused towards the
+customers requirements this does not leave much room for general improvement.
+If you profit from RRDtool and want to support the project as a whole, you
+could <a href="http://it.oetiker.ch/monitoring/sponsoring.var">become a
+sponsor</a>!</p>
+
+<h2>2009 Gold Sponsors</h2>
+
+<p>
+#Mark Hinkle <mrhinkle@zenoss.com>
+<a href="http://www.zenoss.com/?rrdtool"><img border="0" title="Zenoss Open Source IT Monitoring" alt="Zenoss Open Source IT Monitoring" src="$(ROOT)/logos/zenoss.png"/></a>
+#Mahesh Iyer <miyer@groundworkopensource.com>
+<a href="http://www.groundworkopensource.com/products/components/rrdtool.html"><img title="GroundWork Open Source" alt="GroundWork Open Source Logo" src="$(ROOT)/logos/gw200x100.gif" border="0"/></a>
+</p>
+
+<h2>2009 Silver Sponsors</h2>
+
+<p>
+# oliver.mueller@digicomp.ch 27 Oct 2008 14:16:42 +0100
+<a href="http://www.digicomp.ch/linux"><img border="0" alt="Digicomp Academy AG" src="$(ROOT)/logos/digicomp.gif"/></a>
+# Ulf Zimmermann <ulf@openlane.com> Thu, 10 May 2007 14:08:10 -0700
+<a href="http://www.openlane.com"><img border="0" title="Openlane, Inc." src="$(ROOT)/logos/openlane_101x51.jpg"/></a>
+# Rolf Hefti <rolf.hefti@terreactive.ch> Mon, 9 Jul 2007 10:58:10 +0200
+<a href="http://www.terreactive.ch"><img border="0" title="terreActive AG" src="$(ROOT)/logos/terreactive.png"/></a>
+# Felix Schueren <felix.schueren@hosteurope.de> Thu, 21 Dec 2006 12:24:51 +0100
+<a href="http://www.hosteurope.de/"><img border="0" alt="Silver Sponsor" src="$(ROOT)/logos/HE_Logo_101x51.gif"/></a>
+#From: Roger Grandjean <rgrandjean@sidarion.ch> Mon, 14 Apr 2008 11:49:56 +0200
+<a href="http://www.sidarion.ch"><img border="0" alt="Sidarion" src="$(ROOT)/logos/sidarion.png"/></a>
+# Joel R. Mills <jmills@contego.net>, Chris Widhelm <cwidhelm@contego.net>
+<a href="http://www.contego.net"><img border="0" title="CONTEGO Solutions, LLC" src="$(ROOT)/logos/Contego_Logo_101x51.gif"/></a>
+# From: Maik Metzen <maik.metzen@hitflip.de> Mon, 17 Sep 2007 09:27:40 +0200
+<a href="http://www.hitmeister.de"><img border="0" title="Hitflip Media Trading GmbH" src="$(ROOT)/logos/hitmeister.gif"/></a>
+# From: Mark Burazin via RT <mark@chinavasion.com>
+<a href="http://www.chinavasion.com"><img border="0" title="Chinavasion Wholesale Ltd, China" src="$(ROOT)/logos/chinavasion.png"/></a>
+
+<a href="http://it.oetiker.ch/monitoring/sponsoring.var"><img border="0" alt="Silver Sponsor" src="$(ROOT)/inc/silver-logo.png"/></a>
+</p>
+
+<h2>Other means for making Tobi happy</h2>
+
+<p>If you like RRDtool and want to show me your appreciation personally, have a look
+at my <a HREF="http://tobi.oetiker.ch/wish">media wishlist</a>.
+Please put your <b>eMail</b> address into the the message area, so that I
+can thank you for your present. I do keep a list of people who sent me
+stuff. You can look at it <a href="http://tobi.oetiker.ch/webtools/appreciators.txt">here</a>.</p>
+
+
diff --git a/website/stream-pop.png b/website/stream-pop.png
new file mode 100644 (file)
index 0000000..02a2f7c
Binary files /dev/null and b/website/stream-pop.png differ
index 0000000..02a2f7c
Binary files /dev/null and b/website/stream-pop.png differ
diff --git a/website/support.wml b/website/support.wml
--- /dev/null
+++ b/website/support.wml
@@ -0,0 +1,54 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "support">
+
+<H1>Support</H1>
+
+<H2>RRD Wizard</H2>
+
+<p>If you just can't seem to cram all the RRDtool options into your head, you may find Ivan Zahariev's
+<a href="http://www.famzah.net/rrdwizard">RRDtool Wizard</a> most helpful. It will help you build these command lines in a snap.</p>
+
+<H2>rrd-announce mailing list</H2>
+
+<P>If you want to keep up-to-date with the progress of RRDtool, subscribe to
+this LOW VOLUME list by sending a message with the subject 'subscribe' to <A
+HREF="mailto:rrd-announce-request@lists.oetiker.ch?subject=subscribe">rrd-announce-request@lists.oetiker.ch</A>.
+Or on the <a href="http://lists.oetiker.ch">web interface</a>.</p>
+
+
+<P>Note, that posts to this list will be crossposted to the rrd-users and
+rrd-developers mailing lists.</P>
+
+<H2>rrd-users mailing list</H2>
+
+<P>If you are using RRDtool in your applications, subscribe to
+this list by sending a message with the subject 'subscribe' to <A
+HREF="mailto:rrd-users-request@lists.oetiker.ch?subject=subscribe">rrd-users-request@lists.oetiker.ch</A>.
+Or on the <a href="http://lists.oetiker.ch">web interface</a>.</p>
+
+<H2>rrd-developers mailing list</H2>
+
+<P>If you are interested in working on the RRDtool code itself, subscribe to
+this list by sending a message with the subject 'subscribe' to <A
+HREF="mailto:rrd-developers-request@lists.oetiker.ch?subject=subscribe">rrd-developers-request@lists.oetiker.ch</A>.
+Or on the <a href="http://lists.oetiker.ch">web interface</a>.</p>
+
+<h2>list archive</h2>
+
+<P>There is an archive of past list traffic on <A
+HREF="http://gmane.org/find.php?list=rrd/">Gmane</A> and the <a
+HREF="http://www.mail-archive.com/index.php?hunt=rrd">"The Mail
+Archive"</A>.</P>
+
+<h2>RRDtool Trac</h2>
+
+<p>Bug Tracking, user maintained documentation and SVN access live in the <a
+href="http://oss.oetiker.ch/rrdtool-trac/">RRDtrac</a> site. Check it
+out.</p>
+
+<h2>the #rrdtool channel on IRCnet</h2>
+
+<p>On IRCnet there is an #rrdtool channel where you can meet fellow rrdtool
+users online. It has it's own <a
+href="http://www.krogloth.de/rrd/">homepage</a> with instructions about how
+to connect.</p>
diff --git a/website/tut/build.sh b/website/tut/build.sh
--- /dev/null
+++ b/website/tut/build.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+sect=tut
+src=../../program
+. ../bin/pod2wml.sh
+
+pod2descr() {
+ pod=$1.pod
+ descr=`grep " - " $pod|head -1|sed 's/.*- //'`
+ menu=`grep " - " $pod|head -1|sed 's/ -.*//'`
+}
+
+
+# build probe list
+rm -f navbar.inc
+rm -f index.inc
+
+for pod in `cd $src/doc/;echo rrdtutorial.pod;ls *.pod|egrep 'cdeftut|rpntut|beginners|bin_dec'`; do
+ base=`echo $pod |sed 's,.pod,,'`
+ echo $base
+ cat $src/doc/$pod > $base.pod
+ pod2descr $base
+ pod2wml $base
+done
diff --git a/website/tut/index.wml b/website/tut/index.wml
--- /dev/null
+++ b/website/tut/index.wml
@@ -0,0 +1,22 @@
+<PAGE AUTHOR = "Tobias Oetiker <tobi@oetiker.ch>"
+ PAGE = "tut">
+
+<H1>RRDtool Tutorial</H1>
+
+<dl>
+#include "index.inc"
+</dl>
+
+<h2> External Tutorials </h2>
+
+<p>Some of these external tutorials may not be in sync with the latest release of rrdtool.</p>
+
+<ul>
+<li><a href="http://www.enderunix.org/docs/freebsd+snmp+rrdtool.pdf">Turkish RRDtool Tutorial for FreeBSD</a></li>
+<li><a href="http://tilde.se/rrdtoolchartsinadobeflex2/">Using RRDtool with Adobe Flex</a></li>
+<li><a href="http://ed.zehome.com/?page=rrdtool">French RRDtutorial</a></li>
+<li><a href="http://silverwraith.com/papers/freebsd-snmp.php">Using SNMP and RRDtool on FreeBSD</a></li>
+<li><a href="http://www.photonway.net/Rrdtool-Tutorial-jp.html">Japanese Version of Alex's RRDtool Tutorial</a></li>
+<li><a href="http://www.linux-magazin.de/Heft-Abo/Ausgaben/2004/06/Daten-ausgesiebt">RRDtool Intro from the German Linux Magazin</a></li>
+<li><a href="http://aplawrence.com/Girish/gv-rrdtool.html">Creating pretty graphs with RRDTOOL</a></li>
+</ul>