From 110f754f9abdb7c40935ab08a611d2c7e1e7722e Mon Sep 17 00:00:00 2001
From: Lokutos <j.kuder@swissnwx.ch>
Date: Wed, 16 Mar 2016 23:27:34 +0100
Subject: [PATCH] Add VMSone Files

---
 Anleitung.txt                                 |  11 +
 Nutzungsbedingungen.pdf                       | Bin 0 -> 8319 bytes
 adminforce/content/bilanzsystem.php           |  28 +
 adminforce/content/error/kein_zutritt.php     |  14 +
 adminforce/content/error/keine_seite.php      |  13 +
 adminforce/content/interfacebanner/admin.php  |  33 +
 .../content/interfacebanner/blacklist.php     |  35 +
 .../content/interfacebanner/fuco-ads.php      |  35 +
 adminforce/content/interfacebanner/fucoex.php |  35 +
 .../content/interfacebanner/hp-lose.php       |  35 +
 .../content/interfacebanner/lose-ads.php      |  35 +
 .../content/interfacebanner/losebox.php       |  35 +
 .../content/interfacebanner/webmasterlose.php |  35 +
 .../content/interfacedaten/betreiber.php      |  55 ++
 adminforce/content/interfacedaten/crons.php   |  33 +
 .../content/interfacedaten/fuco-ads.php       |  56 ++
 adminforce/content/interfacedaten/fucoex.php  |  49 +
 adminforce/content/interfacedaten/hp-lose.php |  46 +
 .../content/interfacedaten/lose-ads.php       |  46 +
 adminforce/content/interfacedaten/losebox.php |  46 +
 .../content/interfacedaten/pageconfig.php     |  78 ++
 .../content/interfacedaten/webmasterlose.php  |  50 +
 adminforce/content/module.php                 |  42 +
 adminforce/content/newssystem/news.php        |  81 ++
 adminforce/content/ralleysystem/aktiv.php     | 255 +++++
 adminforce/content/ralleysystem/klick.php     | 288 ++++++
 adminforce/content/ralleysystem/ref.php       | 271 ++++++
 adminforce/content/startseite.php             |  31 +
 adminforce/content/texte/agb.php              |  29 +
 adminforce/content/texte/aktivralley.php      |  29 +
 .../content/texte/alternativwerbung.php       | 100 ++
 adminforce/content/texte/faq.php              |  29 +
 adminforce/content/texte/klickralley.php      |  29 +
 adminforce/content/texte/refralley.php        |  29 +
 adminforce/content/texte/wartung.php          |  29 +
 adminforce/content/usersystem/buchungen.php   |  27 +
 adminforce/content/usersystem/doppelaccis.php |  83 ++
 adminforce/content/usersystem/liste.php       |  42 +
 .../content/usersystem/userbearbeiten.php     | 263 ++++++
 .../content/werbesystem/forcedbanner_468.php  |  82 ++
 adminforce/content/werbesystem/paidmail.php   | 100 ++
 .../content/werbesystem/paidmail_hist.php     |  43 +
 adminforce/css/main.css                       |  78 ++
 adminforce/images/gelb.gif                    | Bin 0 -> 147 bytes
 adminforce/images/gruen.gif                   | Bin 0 -> 149 bytes
 adminforce/images/rot.gif                     | Bin 0 -> 147 bytes
 adminforce/index.php                          |  52 ++
 adminforce/lib/footer.php                     |  10 +
 adminforce/lib/header.php                     |  99 ++
 adminforce/lib/layout.lib.php                 |  36 +
 adminforce/lib/menue_links.php                |  33 +
 adminforce/lib/menue_rechts.php               |  26 +
 adminforce/moduladmin.php                     |  35 +
 content/betteln.php                           |  54 ++
 content/error/kein_ref.php                    |   6 +
 content/error/kein_zutritt.php                |  12 +
 content/error/keine_seite.php                 |  12 +
 content/error/user_gesperrt.php               |   7 +
 content/intern/agbs.php                       |  14 +
 content/intern/aktivieren.php                 |  43 +
 content/intern/anmelden.php                   | 188 ++++
 content/intern/daten.php                      |  42 +
 content/intern/faqs.php                       |  14 +
 content/intern/impressum.php                  |  20 +
 content/intern/mediadaten.php                 | 102 ++
 content/intern/startseite.php                 |  42 +
 content/intern/werbemittel.php                |  39 +
 content/konto/auszahlen.php                   |  79 ++
 content/konto/buchungen.php                   |  34 +
 content/konto/einzahlen.php                   |  71 ++
 content/konto/refdetails.php                  | 107 +++
 content/konto/refuebersicht.php               | 136 +++
 content/konto/uebersicht.php                  |  65 ++
 content/konto/userprofil.php                  | 193 ++++
 content/module.php                            |  38 +
 content/nickpage.php                          |  15 +
 content/ralleys/aktiv.php                     |  63 ++
 content/ralleys/klick.php                     |  71 ++
 content/ralleys/ref.php                       |  59 ++
 content/verdienen/betteln4.php                |  39 +
 content/verdienen/klick4.php                  |  22 +
 content/verdienen/paidmails.php               |  34 +
 cron.php                                      |  22 +
 crons/fuco-ads.int.php                        | 129 +++
 crons/fucoex.int.php                          |  50 +
 crons/hp-lose.int.php                         |  50 +
 crons/lose-ads.int.php                        |  53 ++
 crons/losebox.int.php                         |  53 ++
 crons/refzahlungen.knt.php                    |  58 ++
 crons/webmasterlose.int.php                   |  53 ++
 css/bframe.css                                |  34 +
 css/main.css                                  | 119 +++
 fc.php                                        |  27 +
 images/Thumbs.db                              | Bin 0 -> 9216 bytes
 images/banner/2.gif                           | Bin 0 -> 36704 bytes
 images/banner/3.gif                           | Bin 0 -> 33000 bytes
 images/banner/Thumbs.db                       | Bin 0 -> 10240 bytes
 images/gelb.gif                               | Bin 0 -> 147 bytes
 images/gruen.gif                              | Bin 0 -> 149 bytes
 images/header.gif                             | Bin 0 -> 29232 bytes
 images/pfeil.gif                              | Bin 0 -> 254 bytes
 images/rand.gif                               | Bin 0 -> 475 bytes
 images/rot.gif                                | Bin 0 -> 147 bytes
 index.php                                     |  11 +
 lib/extras.init.php                           |  11 +
 lib/extras.lib.php                            |  95 ++
 lib/footer.php                                |  13 +
 lib/functions.lib.php                         | 156 ++++
 lib/header.php                                |  82 ++
 lib/layout.lib.php                            |  53 ++
 lib/mail/LICENSE                              | 278 ++++++
 lib/mail/RFC822.php                           | 872 ++++++++++++++++++
 lib/mail/background.gif                       | Bin 0 -> 1321 bytes
 lib/mail/klasse.php                           | 795 ++++++++++++++++
 lib/mail/mimePart.php                         | 333 +++++++
 lib/mail/smtp.php                             | 359 +++++++
 lib/menue_links.php                           |  73 ++
 lib/menue_rechts.php                          |  31 +
 lib/module.lib.php                            |  54 ++
 lib/schnittstellen/ebesucher.php              | 125 +++
 lib/schnittstellen/funcoins.php               | 114 +++
 lib/schnittstellen/klamm.php                  | 138 +++
 lib/schnittstellen/nickey.php                 |  95 ++
 lib/session.lib.php                           | 121 +++
 lib/texte/agb.txt                             |   1 +
 lib/texte/aktivralley.txt                     |   7 +
 lib/texte/alt_bettelseitenpopup.txt           |   1 +
 lib/texte/alt_headerbanner.txt                |   1 +
 lib/texte/alt_startseitenpopup.txt            |   1 +
 lib/texte/bettelwerbung.txt                   |   1 +
 lib/texte/box1.txt                            |   1 +
 lib/texte/box2.txt                            |   1 +
 lib/texte/faq.txt                             |   1 +
 lib/texte/klickralley.txt                     |   0
 lib/texte/refralley.txt                       |   1 +
 lib/texte/startwerbung.txt                    |   4 +
 lib/texte/wartung.txt                         |   1 +
 lib/weristonline.php                          |  21 +
 module/testmodul/admin.php                    |  16 +
 module/testmodul/files/mysql.sql              |   1 +
 module/testmodul/icon.png                     | Bin 0 -> 2162 bytes
 module/testmodul/module.php                   |  19 +
 module/testmodul/pref.ini                     |  20 +
 pcheck.php                                    |  71 ++
 pclick.php                                    |  24 +
 topframe_forced.php                           |  87 ++
 vms.sql                                       | 271 ++++++
 wartung.php                                   |  42 +
 148 files changed, 9725 insertions(+)
 create mode 100644 Anleitung.txt
 create mode 100644 Nutzungsbedingungen.pdf
 create mode 100644 adminforce/content/bilanzsystem.php
 create mode 100644 adminforce/content/error/kein_zutritt.php
 create mode 100644 adminforce/content/error/keine_seite.php
 create mode 100644 adminforce/content/interfacebanner/admin.php
 create mode 100644 adminforce/content/interfacebanner/blacklist.php
 create mode 100644 adminforce/content/interfacebanner/fuco-ads.php
 create mode 100644 adminforce/content/interfacebanner/fucoex.php
 create mode 100644 adminforce/content/interfacebanner/hp-lose.php
 create mode 100644 adminforce/content/interfacebanner/lose-ads.php
 create mode 100644 adminforce/content/interfacebanner/losebox.php
 create mode 100644 adminforce/content/interfacebanner/webmasterlose.php
 create mode 100644 adminforce/content/interfacedaten/betreiber.php
 create mode 100644 adminforce/content/interfacedaten/crons.php
 create mode 100644 adminforce/content/interfacedaten/fuco-ads.php
 create mode 100644 adminforce/content/interfacedaten/fucoex.php
 create mode 100644 adminforce/content/interfacedaten/hp-lose.php
 create mode 100644 adminforce/content/interfacedaten/lose-ads.php
 create mode 100644 adminforce/content/interfacedaten/losebox.php
 create mode 100644 adminforce/content/interfacedaten/pageconfig.php
 create mode 100644 adminforce/content/interfacedaten/webmasterlose.php
 create mode 100644 adminforce/content/module.php
 create mode 100644 adminforce/content/newssystem/news.php
 create mode 100644 adminforce/content/ralleysystem/aktiv.php
 create mode 100644 adminforce/content/ralleysystem/klick.php
 create mode 100644 adminforce/content/ralleysystem/ref.php
 create mode 100644 adminforce/content/startseite.php
 create mode 100644 adminforce/content/texte/agb.php
 create mode 100644 adminforce/content/texte/aktivralley.php
 create mode 100644 adminforce/content/texte/alternativwerbung.php
 create mode 100644 adminforce/content/texte/faq.php
 create mode 100644 adminforce/content/texte/klickralley.php
 create mode 100644 adminforce/content/texte/refralley.php
 create mode 100644 adminforce/content/texte/wartung.php
 create mode 100644 adminforce/content/usersystem/buchungen.php
 create mode 100644 adminforce/content/usersystem/doppelaccis.php
 create mode 100644 adminforce/content/usersystem/liste.php
 create mode 100644 adminforce/content/usersystem/userbearbeiten.php
 create mode 100644 adminforce/content/werbesystem/forcedbanner_468.php
 create mode 100644 adminforce/content/werbesystem/paidmail.php
 create mode 100644 adminforce/content/werbesystem/paidmail_hist.php
 create mode 100644 adminforce/css/main.css
 create mode 100644 adminforce/images/gelb.gif
 create mode 100644 adminforce/images/gruen.gif
 create mode 100644 adminforce/images/rot.gif
 create mode 100644 adminforce/index.php
 create mode 100644 adminforce/lib/footer.php
 create mode 100644 adminforce/lib/header.php
 create mode 100644 adminforce/lib/layout.lib.php
 create mode 100644 adminforce/lib/menue_links.php
 create mode 100644 adminforce/lib/menue_rechts.php
 create mode 100644 adminforce/moduladmin.php
 create mode 100644 content/betteln.php
 create mode 100644 content/error/kein_ref.php
 create mode 100644 content/error/kein_zutritt.php
 create mode 100644 content/error/keine_seite.php
 create mode 100644 content/error/user_gesperrt.php
 create mode 100644 content/intern/agbs.php
 create mode 100644 content/intern/aktivieren.php
 create mode 100644 content/intern/anmelden.php
 create mode 100644 content/intern/daten.php
 create mode 100644 content/intern/faqs.php
 create mode 100644 content/intern/impressum.php
 create mode 100644 content/intern/mediadaten.php
 create mode 100644 content/intern/startseite.php
 create mode 100644 content/intern/werbemittel.php
 create mode 100644 content/konto/auszahlen.php
 create mode 100644 content/konto/buchungen.php
 create mode 100644 content/konto/einzahlen.php
 create mode 100644 content/konto/refdetails.php
 create mode 100644 content/konto/refuebersicht.php
 create mode 100644 content/konto/uebersicht.php
 create mode 100644 content/konto/userprofil.php
 create mode 100644 content/module.php
 create mode 100644 content/nickpage.php
 create mode 100644 content/ralleys/aktiv.php
 create mode 100644 content/ralleys/klick.php
 create mode 100644 content/ralleys/ref.php
 create mode 100644 content/verdienen/betteln4.php
 create mode 100644 content/verdienen/klick4.php
 create mode 100644 content/verdienen/paidmails.php
 create mode 100644 cron.php
 create mode 100644 crons/fuco-ads.int.php
 create mode 100644 crons/fucoex.int.php
 create mode 100644 crons/hp-lose.int.php
 create mode 100644 crons/lose-ads.int.php
 create mode 100644 crons/losebox.int.php
 create mode 100644 crons/refzahlungen.knt.php
 create mode 100644 crons/webmasterlose.int.php
 create mode 100644 css/bframe.css
 create mode 100644 css/main.css
 create mode 100644 fc.php
 create mode 100644 images/Thumbs.db
 create mode 100644 images/banner/2.gif
 create mode 100644 images/banner/3.gif
 create mode 100644 images/banner/Thumbs.db
 create mode 100644 images/gelb.gif
 create mode 100644 images/gruen.gif
 create mode 100644 images/header.gif
 create mode 100644 images/pfeil.gif
 create mode 100644 images/rand.gif
 create mode 100644 images/rot.gif
 create mode 100644 index.php
 create mode 100644 lib/extras.init.php
 create mode 100644 lib/extras.lib.php
 create mode 100644 lib/footer.php
 create mode 100644 lib/functions.lib.php
 create mode 100644 lib/header.php
 create mode 100644 lib/layout.lib.php
 create mode 100644 lib/mail/LICENSE
 create mode 100644 lib/mail/RFC822.php
 create mode 100644 lib/mail/background.gif
 create mode 100644 lib/mail/klasse.php
 create mode 100644 lib/mail/mimePart.php
 create mode 100644 lib/mail/smtp.php
 create mode 100644 lib/menue_links.php
 create mode 100644 lib/menue_rechts.php
 create mode 100644 lib/module.lib.php
 create mode 100644 lib/schnittstellen/ebesucher.php
 create mode 100644 lib/schnittstellen/funcoins.php
 create mode 100644 lib/schnittstellen/klamm.php
 create mode 100644 lib/schnittstellen/nickey.php
 create mode 100644 lib/session.lib.php
 create mode 100644 lib/texte/agb.txt
 create mode 100644 lib/texte/aktivralley.txt
 create mode 100644 lib/texte/alt_bettelseitenpopup.txt
 create mode 100644 lib/texte/alt_headerbanner.txt
 create mode 100644 lib/texte/alt_startseitenpopup.txt
 create mode 100644 lib/texte/bettelwerbung.txt
 create mode 100644 lib/texte/box1.txt
 create mode 100644 lib/texte/box2.txt
 create mode 100644 lib/texte/faq.txt
 create mode 100644 lib/texte/klickralley.txt
 create mode 100644 lib/texte/refralley.txt
 create mode 100644 lib/texte/startwerbung.txt
 create mode 100644 lib/texte/wartung.txt
 create mode 100644 lib/weristonline.php
 create mode 100644 module/testmodul/admin.php
 create mode 100644 module/testmodul/files/mysql.sql
 create mode 100644 module/testmodul/icon.png
 create mode 100644 module/testmodul/module.php
 create mode 100644 module/testmodul/pref.ini
 create mode 100644 pcheck.php
 create mode 100644 pclick.php
 create mode 100644 topframe_forced.php
 create mode 100644 vms.sql
 create mode 100644 wartung.php

diff --git a/Anleitung.txt b/Anleitung.txt
new file mode 100644
index 0000000..cb03d36
--- /dev/null
+++ b/Anleitung.txt
@@ -0,0 +1,11 @@
+1) Alle Dateien aus dem Ordner files hochladen
+2) vms.sql in phpMyAdmin importieren
+3) Datei lib/functions.lib.php anpassen neben allen Variablen die angepasst werden müssen ist eine Beschreibung
+4) www.ihre-domain.de/adminforce/ öffnen und unter 
+	» Seiteneinstell.
+   alle Einstellungen vornehmen das gleiche unter 
+	» Betreiberdaten
+
+
+Weitere Fragen zur Einrichtung oder zum Betrieb des VMS bitte im Forum http://www.designerscripte.net stellen,
+eine Ausführliche Dokumentation ist in Arbeit.
\ No newline at end of file
diff --git a/Nutzungsbedingungen.pdf b/Nutzungsbedingungen.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2334e3ed3dc96184221c41e9bc8608b5e2a9f65e
GIT binary patch
literal 8319
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

literal 0
HcmV?d00001

diff --git a/adminforce/content/bilanzsystem.php b/adminforce/content/bilanzsystem.php
new file mode 100644
index 0000000..2f53010
--- /dev/null
+++ b/adminforce/content/bilanzsystem.php
@@ -0,0 +1,28 @@
+<?
+head("Bilanzsystem");?>
+Hier eine übersicht über die Einnahmen und Ausgaben der Seite
+<?foot();?>
+
+<?head("Letzten 14 Tage");?>
+<table border="0" width="100%">
+<tr>
+    <td align="center">Datum</td>
+    <td align="center">Einnahmen</td>
+    <td align="center">Ausgaben</td>
+    <td align="center">Bilanz</td>
+</tr>
+<?
+$sql = db_query("SELECT ein,aus,date FROM ".$db_prefix."_bilanz ORDER BY date DESC");
+while ($bilanz = mysql_fetch_assoc($sql)){
+      echo '
+      <tr>
+          <td align="center">'.date("d.m.Y",$bilanz['date']).'</td>
+          <td align="center">'.$bilanz['ein'].'</td>
+          <td align="center">'.$bilanz['aus'].'</td>
+          <td align="center">'.round($bilanz['ein']-$bilanz['aus'],2).'
+      </tr>                              
+      ';
+}
+?>
+</table>                
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/error/kein_zutritt.php b/adminforce/content/error/kein_zutritt.php
new file mode 100644
index 0000000..a954a35
--- /dev/null
+++ b/adminforce/content/error/kein_zutritt.php
@@ -0,0 +1,14 @@
+<?head("Zutritt verweigert");?>
+Der Zutritt zu diesem Bereich wurde Dir verweigert!<br>
+Bevor Du dich an den Support wendest, prüfe bitte erst die unten aufgezählten Möglichkeiten
+um so unnötige Supportanfragen zu vermeiden!<br>
+<br>
+<b>Mögliche Gründe</b><br>
+<ul>
+<li>Du bist nicht eingeloggt (bitte erst einloggen)</li>
+<li>Die Kontonummer/Passwortkombination stimmt nicht (Loginfehler)</li>
+<li>Du hast deinen Account noch nicht freigeschaltet (bitte Email prüfen)</li>
+<li>Die Session ist abgelaufen (verwende doch den Autologin)</li>
+</ul>
+<?foot();?>
+
diff --git a/adminforce/content/error/keine_seite.php b/adminforce/content/error/keine_seite.php
new file mode 100644
index 0000000..1f35823
--- /dev/null
+++ b/adminforce/content/error/keine_seite.php
@@ -0,0 +1,13 @@
+<?head("Seite nicht gefunden");?>
+Die von Dir angeforderte Seite ist nicht erreichbar.<br>
+Bitte wähle aus dem Menü einen gültigen Link, sollte weiterhin das Problem bestehen informiere
+bitte den Webmaster darüber.<br>
+<br>
+<b>Mögliche Gründe</b><br>
+<ul>
+<li>Die Seite wurde aus Wartungsgründen entfernt</li>
+<li>Ein Link im Menü wurde falsch gesetzt</li>
+<li>Du hast eine falsche oder ungültige URL erhalten (extern)</li>
+</ul>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/admin.php b/adminforce/content/interfacebanner/admin.php
new file mode 100644
index 0000000..84c5a0b
--- /dev/null
+++ b/adminforce/content/interfacebanner/admin.php
@@ -0,0 +1,33 @@
+<?head("Admin ForcedBanner");?>
+<?
+if (!isset($_GET['tan'])) $_GET['tan'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['tan']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE tan='".$_GET['tan']."' and sponsor='administrator' LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='administrator' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/admin&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
+
diff --git a/adminforce/content/interfacebanner/blacklist.php b/adminforce/content/interfacebanner/blacklist.php
new file mode 100644
index 0000000..8482503
--- /dev/null
+++ b/adminforce/content/interfacebanner/blacklist.php
@@ -0,0 +1,35 @@
+<?head("ForcedBanner Blacklist");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and status = '2' and sponsor='".$_GET['sponsor']."' LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1' WHERE kid='".$_GET['kid']."' and sponsor='".$_GET['sponsor']."'  LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE werbeart = 'forcedbanner' and status = '2' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+<td align="center" width="50%">TAN:&nbsp;'.$anzeigen['tan'].'<br>KID:&nbsp;'.$anzeigen['kid'].' ('.$anzeigen['sponsor'].')</td>
+<td align="center" width="50%">Bet:&nbsp;'.number_format($anzeigen['preis'],2,",",".").' / User:&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="center" colspan="2"><a href="'.$anzeigen['ziel'].'" target="_blank"><img alt="Sponsorenbanner" src="'.$anzeigen['banner'].'" border="0" width="468" height="60"></a></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="center" width="50%">Reload:&nbsp;'. $anzeigen['reload']/3600 .' Std. / Rest:&nbsp;'.number_format($anzeigen['menge'],0,",",".").'</td>
+<td align="center" width="50%"><a href="?content=/interfacebanner/blacklist&amp;sponsor='.$anzeigen['sponsor'].'&amp;loeschen=true&amp;kid='.$anzeigen['kid'].'" target="_self">Löschen</a>  <a href="?content=/interfacebanner/blacklist&amp;sponsor='.$anzeigen['sponsor'].'&amp;blacklist=true&amp;kid='.$anzeigen['kid'].'" target="_self">Löschen-Blacklist</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/fuco-ads.php b/adminforce/content/interfacebanner/fuco-ads.php
new file mode 100644
index 0000000..7644ef7
--- /dev/null
+++ b/adminforce/content/interfacebanner/fuco-ads.php
@@ -0,0 +1,35 @@
+<?head("FuCo-Ads ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='fuco-ads'  LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='fuco-ads'  LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='fuco-ads' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/fuco-ads&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/fucoex.php b/adminforce/content/interfacebanner/fucoex.php
new file mode 100644
index 0000000..0b93fba
--- /dev/null
+++ b/adminforce/content/interfacebanner/fucoex.php
@@ -0,0 +1,35 @@
+<?head("FuCoEx ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='fucoex'  LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='fucoex'  LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='fucoex' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/fucoex&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/hp-lose.php b/adminforce/content/interfacebanner/hp-lose.php
new file mode 100644
index 0000000..5a8c25f
--- /dev/null
+++ b/adminforce/content/interfacebanner/hp-lose.php
@@ -0,0 +1,35 @@
+<?head("HP-Lose ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='hp-lose' LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='hp-lose' LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='hp-lose' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/hp-lose&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/lose-ads.php b/adminforce/content/interfacebanner/lose-ads.php
new file mode 100644
index 0000000..3cb8c03
--- /dev/null
+++ b/adminforce/content/interfacebanner/lose-ads.php
@@ -0,0 +1,35 @@
+<?head("Lose-Ads ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='lose-ads' LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='lose-ads' LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='lose-ads' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/lose-ads&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/losebox.php b/adminforce/content/interfacebanner/losebox.php
new file mode 100644
index 0000000..4bad69d
--- /dev/null
+++ b/adminforce/content/interfacebanner/losebox.php
@@ -0,0 +1,35 @@
+<?head("Losebox ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='losebox' LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='losebox' LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='losebox' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/losebox&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacebanner/webmasterlose.php b/adminforce/content/interfacebanner/webmasterlose.php
new file mode 100644
index 0000000..c4a1d16
--- /dev/null
+++ b/adminforce/content/interfacebanner/webmasterlose.php
@@ -0,0 +1,35 @@
+<?head("Webmasterlose ForcedBanner");?>
+<?
+if (!isset($_GET['kid'])) $_GET['kid'] = '';
+if (!isset($_GET['loeschen'])) $_GET['loeschen'] = '';
+if (!isset($_GET['blacklist'])) $_GET['blacklist'] = '';
+
+if ($_GET['loeschen']=='true' && $_GET['kid']) {
+db_query("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE kid='".$_GET['kid']."' and sponsor='webmasterlose' LIMIT 1");
+}
+if ($_GET['blacklist']=='true' && $_GET['kid']) {
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '2' WHERE kid='".$_GET['kid']."' and sponsor='webmasterlose' LIMIT 1");
+}
+
+$forcedbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor='webmasterlose' and werbeart = 'forcedbanner' and status = '1' ORDER BY kid ASC");
+while ($anzeigen = mysql_fetch_array($forcedbanner)) {
+echo '
+<table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>TAN:</b>&nbsp;'.$anzeigen['tan'].'</td>
+    <td align="center" width="50%"><b>Vergütung:</b>&nbsp;'.number_format($anzeigen['verdienst'],2,",",".").'</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="left" colspan="2"><br><b>Ziel:</b> <a href="'.$anzeigen['ziel'].'">'.$anzeigen['ziel'].'</a> <br><b>Banner:</b> <a href="'.$anzeigen['banner'].'">'.$anzeigen['banner'].'</a><br><br></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td align="center" width="50%"><b>Reload:</b>&nbsp;'. $anzeigen['reload']/3600 .'h  <b>Rest:</b>&nbsp;'.number_format($anzeigen['menge'],0,",",".").' Klicks</td>
+    <td align="center" width="50%"><a href="?content=/interfacebanner/webmasterlose&amp;loeschen=true&amp;tan='.$anzeigen['tan'].'" target="_self">Löschen</a></td>
+</tr>
+</table>
+<br>
+';
+}
+?>
+<?foot();?>
+
diff --git a/adminforce/content/interfacedaten/betreiber.php b/adminforce/content/interfacedaten/betreiber.php
new file mode 100644
index 0000000..5d9d959
--- /dev/null
+++ b/adminforce/content/interfacedaten/betreiber.php
@@ -0,0 +1,55 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber_id'])) $_POST['betreiber_id'] = '';
+if (!isset($_POST['betreiber_passwort'])) $_POST['betreiber_passwort'] = '';
+if (!isset($_POST['betreiber_kennung'])) $_POST['betreiber_kennung'] = '';
+if (!isset($_POST['schnittstelle'])) $_POST['schnittstelle'] = '';
+if (!isset($_POST['einzahltext'])) $_POST['einzahltext'] = '';
+if (!isset($_POST['auszahltext'])) $_POST['auszahltext'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_schnittstelle SET betreiber_id='".$_POST['betreiber_id']."', betreiber_passwort='".$_POST['betreiber_passwort']."', betreiber_kennung='".$_POST['betreiber_kennung']."', schnittstelle='".$_POST['schnittstelle']."', einzahltext='".$_POST['einzahltext']."', auszahltext='".$_POST['auszahltext']."', einzahlsumme='".$_POST['einzahlsumme']."', auszahlsumme='".$_POST['auszahlsumme']."', anfragen_tag='".$_POST['anfragen_tag']."', anfragen_user='".$_POST['anfragen_user']."'  LIMIT 1");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1"));
+?>
+<? head("Interfacedaten Betreiber (EF²,FuCoEx² usw.)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+    <td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber_id" value="<?=$interface['betreiber_id'];?>" style="width:180px;"></td>
+</tr>
+<tr>
+    <td align="left">Betreiberpasswort</td><td align="left"><input type="Text" name="betreiber_passwort" value="<?=$interface['betreiber_passwort'];?>" style="width:180px;"></td>
+</tr>
+<tr>
+    <td align="left">Betreiberkennung<br><i>Kennung nur bei EF²</i></td><td align="left"><input type="Text" name="betreiber_kennung" value="<?=$interface['betreiber_kennung'];?>" style="width:180px;"></td>
+</tr>
+<tr>
+    <td align="left">Schnittstelle<br><i>Dateiname der Schnittstelle</i></td><td align="left"><input type="Text" name="schnittstelle" value="<?=$interface['schnittstelle'];?>" style="width:180px;">.php                            
+</td>
+</tr>
+<tr>
+    <td align="left">Einzahltext<br><i>Max. 40 Zeichen</i></td><td align="left"><input type="Text" name="einzahltext" value="<?=$interface['einzahltext'];?>"  style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="left">Auszahltext<br><i>Max. 40 Zeichen</i></td><td align="left"><input type="Text" name="auszahltext" value="<?=$interface['auszahltext'];?>" style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="left">Minimum Einzahlsumme<br><i>0 = Ohne Einschränkung</i></td><td align="left"><input type="Text" name="einzahlsumme" value="<?=$interface['einzahlsumme'];?>" style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="left">Minimum Auszahlsumme<br><i>0 = Ohne Einschränkung</i></td><td align="left"><input type="Text" name="auszahlsumme" value="<?=$interface['auszahlsumme'];?>" style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="left">Max. Schnittstellenanfragen (Tag)<br><i>0 = Ohne Einschränkung<br>Nur für Anmeldungen</i></td><td align="left"><input type="Text" name="anfragen_tag" value="<?=$interface['anfragen_tag'];?>" style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="left">Max. Schnittstellenanfragen (User)<br><i>0 = Ohne Einschränkung<br>Nur Ein./Auszahlungen</i></td><td align="left"><input type="Text" name="anfragen_user" value="<?=$interface['anfragen_user'];?>" style="width:180px;" maxlength="40"></td>
+</tr>
+<tr>
+    <td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/crons.php b/adminforce/content/interfacedaten/crons.php
new file mode 100644
index 0000000..d83dc70
--- /dev/null
+++ b/adminforce/content/interfacedaten/crons.php
@@ -0,0 +1,33 @@
+<? head("Crons (Übersicht und manuell Start)");?>
+<table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#c0c0c0">
+<tr class="tr_head">
+    <td align="center"><b>Cron</b></td>
+    <td align="center"><b>Laufzeit</b></td>
+    <td align="center">URL</td>
+</tr>
+<?
+$crons = db_query("SELECT * FROM ".$db_prefix."_crons");
+while ($crontabelle = mysql_fetch_array($crons)) {
+$i++;
+$row = ($i % 2 == 0) ? 0 : 1;
+
+echo '
+<tr class="tr_row'.$row.'">
+    <td valign="middle"><b>'.$crontabelle['bezeichnung'].'</b><br>
+        <i>ID: '.$crontabelle['id'].'</i>
+    </td>
+    
+    <td align="center" valign="middle">
+    <font color="#000080">'.date("d.m.Y - H:i:s",$crontabelle['laufzeit']).'</font>
+    </td>
+   
+    <td align="center" valign="middle">
+    <a href="../cron.php?id='.$crontabelle['id'].'&amp;pw='.$cron_pw.'" target="_blank"><img src="images/gruen.gif" width="15" height="15" border="0" alt="Ausführen"></a>
+    </td>
+
+</tr>
+';
+}
+?>
+</table>
+<? foot(); ?>
diff --git a/adminforce/content/interfacedaten/fuco-ads.php b/adminforce/content/interfacedaten/fuco-ads.php
new file mode 100644
index 0000000..d6dc470
--- /dev/null
+++ b/adminforce/content/interfacedaten/fuco-ads.php
@@ -0,0 +1,56 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['pass'])) $_POST['pass'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET surfview='".$_POST['surfview']."',surfklick='".$_POST['surfklick']."',betreiber='".$_POST['betreiber']."', seite='".$_POST['seite']."', pass='".$_POST['pass']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='fuco-ads'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='fuco-ads' LIMIT 1"));
+?>
+<? head("Interfacedaten (FuCo-Ads.de)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Schnittstellen Passwort</td><td align="left"><input type="Text" name="pass" value="<?=$interface['pass'];?>" style="width:150px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i><b>Surfview</b> (0=deaktiv)</i></td><td align="left"><input type="Text" name="surfview" value="<?=$interface['surfview'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i><b>Surfklick</b> (0=deaktiv)</i></td><td align="left"><input type="Text" name="surfklick" value="<?=$interface['surfklick'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/fucoex.php b/adminforce/content/interfacedaten/fucoex.php
new file mode 100644
index 0000000..35a87ec
--- /dev/null
+++ b/adminforce/content/interfacedaten/fucoex.php
@@ -0,0 +1,49 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET betreiber='".$_POST['betreiber']."',pass='".$_POST['pass']."', seite='".$_POST['seite']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='fucoex'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='fucoex' LIMIT 1"));
+?>
+<? head("Interfacedaten (Fucoex)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Schnittstellen Passwort</td><td align="left"><input type="Text" name="pass" value="<?=$interface['pass'];?>" style="width:150px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/hp-lose.php b/adminforce/content/interfacedaten/hp-lose.php
new file mode 100644
index 0000000..62bdd3d
--- /dev/null
+++ b/adminforce/content/interfacedaten/hp-lose.php
@@ -0,0 +1,46 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET betreiber='".$_POST['betreiber']."', seite='".$_POST['seite']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='hp-lose'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='hp-lose' LIMIT 1"));
+?>
+<? head("Interfacedaten (HP-Lose.de)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/lose-ads.php b/adminforce/content/interfacedaten/lose-ads.php
new file mode 100644
index 0000000..78fde2b
--- /dev/null
+++ b/adminforce/content/interfacedaten/lose-ads.php
@@ -0,0 +1,46 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET betreiber='".$_POST['betreiber']."', seite='".$_POST['seite']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='lose-ads'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='lose-ads' LIMIT 1"));
+?>
+<? head("Interfacedaten (Lose-Ads.de)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/losebox.php b/adminforce/content/interfacedaten/losebox.php
new file mode 100644
index 0000000..a059680
--- /dev/null
+++ b/adminforce/content/interfacedaten/losebox.php
@@ -0,0 +1,46 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET betreiber='".$_POST['betreiber']."', seite='".$_POST['seite']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='losebox'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='losebox' LIMIT 1"));
+?>
+<? head("Interfacedaten (Losebox.de)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/pageconfig.php b/adminforce/content/interfacedaten/pageconfig.php
new file mode 100644
index 0000000..826e736
--- /dev/null
+++ b/adminforce/content/interfacedaten/pageconfig.php
@@ -0,0 +1,78 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_seitenkonfig SET 
+                 denied_domains='".$_POST['denied_domains']."', 
+                 wartung='".$_POST['wartung']."', 
+                 einzahlgrenze='".$_POST['einzahlgrenze']."', 
+                 re1='".$_POST['re1']."', 
+                 re2='".$_POST['re2']."', 
+                 re3='".$_POST['re3']."', 
+                 min_betteln = '".$_POST['min_betteln']."', 
+                 max_betteln = '".$_POST['max_betteln']."', 
+                 reload_betteln = '".$_POST['reload_betteln']."'
+                 admin_name='".$_POST['admin_name']."', 
+                 admin_pass='".$_POST['admin_pass']."'                  
+LIMIT 1");
+}
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
+?>
+
+<? head("Webseiteneinstellungen"); ?>
+<form action="" method="post">
+<table width="100%" align="center" border="0" cellpadding="1" cellspacing="1" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Wartungsmodus</b><br><i>Wartungstext muss bearbeitet werden!</i></td>
+<td align="left">&nbsp;<select name="wartung">
+	<option value="0" <?if ($interface['wartung'] == 0) echo 'SELECTED';?>>Deaktiviert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
+	<option value="1" <?if ($interface['wartung'] == 1) echo 'SELECTED';?>>Aktiviert</option>
+</select>
+</td>
+</tr>
+<tr bgcolor="#f5f5f5">
+<td align="left"><b>Einzahlgrenze</b><br><i>Max. Guthaben pro User!</i></td>
+<td align="left">&nbsp;<input type="Text" name="einzahlgrenze" value="<?=$interface['einzahlgrenze'];?>"> Nur Ganzzahlen</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Refebene 1</b><br><i>Angaben in Prozent!</i></td>
+<td align="left">&nbsp;<input type="Text" name="re1" value="<?=$interface['re1'];?>"> Punkt statt Komma</td>
+</tr>
+<tr bgcolor="#f5f5f5">
+<td align="left"><b>Refebene 2</b><br><i>Angaben in Prozent!</i></td>
+<td align="left">&nbsp;<input type="Text" name="re2" value="<?=$interface['re2'];?>"> Punkt statt Komma</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Refebene 3</b><br><i>Angaben in Prozent!</i></td>
+<td align="left">&nbsp;<input type="Text" name="re3" value="<?=$interface['re3'];?>"> Punkt statt Komma</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>min. Verdienst (Bettelaufruf)</b></td>
+<td align="left">&nbsp;<input type="Text" name="min_betteln" value="<?=$interface['min_betteln'];?>"> Punkt statt Komma</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>max. Verdienst (Bettelaufruf)</b></td>
+<td align="left">&nbsp;<input type="Text" name="max_betteln" value="<?=$interface['max_betteln'];?>"> Punkt statt Komma</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Reloadzeit (Bettelaufruf)</b><br><i>Angaben in Sekunden (3600 = 1 Stunde) (0 = Bettellink deaktiviert)</i></td>
+<td align="left">&nbsp;<input type="Text" name="reload_betteln" value="<?=$interface['reload_betteln'];?>"> Nur Ganzzahlen</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Nicht erlaubte eMail-Domains</b><br><i>(Durch ; getrennt)</i></td>
+<td align="left">&nbsp;<input type="Text" name="denied_domains" value="<?=$interface['denied_domains'];?>"></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Loginname (Adminforce)</b></td>
+<td align="left">&nbsp;<input type="Text" name="admin_name" value="<?=$interface['admin_name'];?>"></td>
+</tr>
+<tr bgcolor="#f0f0f0">
+<td align="left"><b>Passwort (Adminforce)</b></td>
+<td align="left">&nbsp;<input type="Text" name="admin_pass" value="<?=$interface['admin_pass'];?>"></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/webmasterlose.php b/adminforce/content/interfacedaten/webmasterlose.php
new file mode 100644
index 0000000..c8d00ae
--- /dev/null
+++ b/adminforce/content/interfacedaten/webmasterlose.php
@@ -0,0 +1,50 @@
+<?
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['betreiber'])) $_POST['betreiber'] = '';
+if (!isset($_POST['pass'])) $_POST['pass'] = '';
+if (!isset($_POST['seite'])) $_POST['seite'] = '';
+if (!isset($_POST['eigenverdienst'])) $_POST['eigenverdienst'] = '';
+if (!isset($_POST['min_verguetung'])) $_POST['min_verguetung'] = '';
+if (!isset($_POST['restklicks'])) $_POST['restklicks'] = '';
+if (!isset($_POST['umrechnung'])) $_POST['umrechnung'] = '';
+if (!isset($_POST['aufendhalt'])) $_POST['aufendhalt'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+db_query("UPDATE ".$db_prefix."_interface SET betreiber='".$_POST['betreiber']."', seite='".$_POST['seite']."',pass='".$_POST['pass']."', eigenverdienst='".$_POST['eigenverdienst']."', mindestverguetung='".$_POST['min_verguetung']."', restklicks='".$_POST['restklicks']."', umrechnung='".$_POST['umrechnung']."', aufendhalt='".$_POST['aufendhalt']."' WHERE interface='webmasterlose'");
+}
+
+$interface = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface='webmasterlose' LIMIT 1"));
+?>
+<? head("Interfacedaten (Webmasterlose.de)"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Betreiber-ID</td><td align="left"><input type="Text" name="betreiber" value="<?=$interface['betreiber'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Seiten-ID</td><td align="left"><input type="Text" name="seite" value="<?=$interface['seite'];?>" style="width:50px;"></td>
+</tr>
+<tr>
+<td align="left">Schnittstellen Passwort</td><td align="left"><input type="Text" name="pass" value="<?=$interface['pass'];?>" style="width:150px;"></td>
+</tr>
+<tr>
+<td align="left">Eigenverdienst in Prozent<br><i>Bitte Refverdienste bedenken</i></td><td align="left"><input type="Text" name="eigenverdienst" value="<?=$interface['eigenverdienst'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Mindestvergütung bei den Sponsoren<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="min_verguetung" value="<?=$interface['mindestverguetung'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Wieviel % sollen eingebucht werden?</td><td align="left"><input type="Text" name="restklicks" value="<?=$interface['restklicks'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="left">Umrechnung<br><i>Basierend auf die Sponsorenwährung</i></td><td align="left"><input type="Text" name="umrechnung" value="<?=$interface['umrechnung'];?>" style="width:50px;"> <b>Punkt statt Komma</b></td>
+</tr>
+<tr>
+<td align="left">Aufendhalt in Sek. für den User</td><td align="left"><input type="Text" name="aufendhalt" value="<?=$interface['aufendhalt'];?>" style="width:50px;"> <b>Ganzzahlen</b></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="updaten" value="Updaten !"></td>
+</tr>
+</table>
+</form>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/module.php b/adminforce/content/module.php
new file mode 100644
index 0000000..6ed80bc
--- /dev/null
+++ b/adminforce/content/module.php
@@ -0,0 +1,42 @@
+<?
+$dir = '../module/';
+
+if (is_dir($dir) && $dh = opendir($dir)) {
+	head ('Modul&uuml;bersicht');
+?>
+Sie sehen hier eine Auflistung aller verf&uuml;gbaren Module. Um die Verwaltung der jeweiligen Module zu gelanden klicken Sie bitte auf das entsprechende Icon.<br />
+<br />
+<table width="100%" cellspacing=0 cellpadding=5 border=1 bordercolor="#4a4a4a" style="border-collapse: collapse;">
+<?
+	$i = 1;
+	while (($file = readdir ($dh)) !== false) {
+		if (is_dir ($dir.$file) && file_exists ($dir.$file.'/pref.ini') && $file != '.' && $file != '..') {
+			$modul = parse_ini_file ($dir.$file.'/pref.ini', TRUE);
+			$ico_endung = (file_exists ($dir.$file.'/icon.png')) ? 'png' : 'gif';
+			if ($i == 1 || ( $i % 4 ) == 0) echo '	<tr>'."\n";
+			echo '		<td width="25%" style="text-align: center;"><a href="javascript:ShowWindow(\'moduladmin.php?mod='.$file.'\');"><img src="'.$dir.$file.'/icon.'.$ico_endung.'" border="0" width="32" height="32" alt="" /><br />'.$modul['modul']['name'].'</a></td>'."\n";
+			if ( ( ( $i + 1 ) % 4 ) == 0 ) echo '	</tr>'."\n";
+			$i++;
+		}
+	}
+	closedir ($dh);
+
+	$uebrig = ( ( $i -1 ) % 4 );
+	if ( $uebrig != 0 ) {
+		for ($i=0;$i<(4-$uebrig);$i++) echo '		<td>&nbsp;</td>'."\n";
+		echo '	</tr>'."\n";
+	} ?>
+</table>
+<br />
+<br />
+<span style="font-weight: bold;">Nützlichens:</span><br />
+<a href="http://www.totaltoll.de/shop/docs/modulsystem.pdf" target="_blank">Manual zum Modulsystem (F&uuml;r Entwickler, Mirror 1)</a><br />
+<a href="http://www.designerscripte.net/downloads/docs/modulsystem.pdf" target="_blank">Manual zum Modulsystem (F&uuml;r Entwickler, Mirror 2)</a><br />
+<?
+	foot ();
+} else {
+	head ('Fataler Fehler');
+	echo 'Fehler: Modulverzeichnis '.$dir.' ist ung&uuml;ltig !';
+	foot ();
+}
+?>
\ No newline at end of file
diff --git a/adminforce/content/newssystem/news.php b/adminforce/content/newssystem/news.php
new file mode 100644
index 0000000..cb9f6c2
--- /dev/null
+++ b/adminforce/content/newssystem/news.php
@@ -0,0 +1,81 @@
+<?
+if (!isset($titel))			$titel			     = '';
+if (!isset($news))			$news			     = '';
+if (!isset($id))			$id                          = '0';
+if (!isset($_POST['auffuehren']))	$_POST['auffuehren']	     = '0';
+if (!isset($_POST['load']))		$_POST['load']		     = '0';
+if (!isset($_POST['loader']))		$_POST['loader']	     = '';
+if (!isset($_POST['newsletter']))        $_POST['newsletter']         = '';
+
+if ($_POST['auffuehren'] == 'Ausführen') {
+	if ($_POST['id'] == 0 ){
+		if ($_POST['art'] == 1 || $_POST['art'] == 2) db_query("INSERT INTO ".$db_prefix."_news (zeit,titel,news) VALUES ('".time()."','".$_POST['titel']."','".$_POST['news']."')");
+
+		if ($_POST['art'] == 1 || $_POST['art'] == 3) {
+			$empfaenger = db_query('SELECT emailadresse FROM '.$db_prefix.'_emaildaten WHERE freigabe_fuer = 1 OR freigabe_fuer = 3 GROUP BY emailadresse');
+			while ($user = mysql_fetch_assoc($empfaenger)) usermail ($user['emailadresse'], $_POST['titel'], $_POST['news'], '"'.$seitenname.'" <'.$betreibermail.'>');
+		}
+	} else db_query("UPDATE ".$db_prefix."_news SET titel='".$_POST['titel']."',news='".$_POST['news']." WHERE id='".$_POST['id']."'");
+}
+
+if ($_POST['load'] == 'Editieren') {
+      $edit       = mysql_fetch_array(db_query("SELECT titel,news,id,zeit FROM ".$db_prefix."_news  WHERE id=".(int)$_POST['loader']." LIMIT 1"));
+      $titel      = $edit['titel'];
+      $news	  = $edit['news'];
+      $id	  = $edit['id'];
+}
+
+if ($_POST['load'] == 'Löschen') {
+   db_query("DELETE FROM ".$db_prefix."_news WHERE id='".(int)$_POST['loader']."' LIMIT 1");
+}
+
+$old_news = db_query("SELECT * FROM ".$db_prefix."_news ORDER BY id DESC");
+?>
+
+<?
+if (mysql_num_rows($old_news)){
+head("News editieren / löschen");?>
+<form action="" method="post">
+<table>
+<tr>
+       <td>
+           <select name="loader" size="1">
+                <?
+                while ($load = mysql_fetch_array($old_news)) echo '<option value="'.$load['id'].'">('.$load['id'].') - '.$load['titel'].' ('.date("d.m.Y - H:i",$load['zeit']).')</option>';
+                ?>
+           </select>
+       </td>
+       <td>
+           <input type="Submit" name="load" value="Editieren">
+       </td>
+       <td>
+           <input type="Submit" name="load" value="Löschen">
+       </td>
+</tr>
+</table>
+</form>
+<?foot();
+}
+?>
+
+<?head("News schreiben");?>
+<form action="" method="post">
+<div align="center">
+<b>Newstitel</b><br>
+<input type="Text" name="titel" value="<?=$titel;?>"><br>
+<br>
+<b>News</b> <i>(HTML)</i><br>
+<textarea name="news" style="width:500px; height:80px;"><?=$news;?></textarea><br>
+<br>
+<b>Art</b><br>
+<select name="art">
+        <option value="1">News + Newsletter</option>
+        <option value="2">News</option>
+        <option value="3">Newsletter</option>
+</select>
+<br>
+<input type="Submit" name="auffuehren" value="Ausführen">
+<input type="Hidden" name="id" value="<?=$id;?>">
+</div>
+</form>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/ralleysystem/aktiv.php b/adminforce/content/ralleysystem/aktiv.php
new file mode 100644
index 0000000..f944f9e
--- /dev/null
+++ b/adminforce/content/ralleysystem/aktiv.php
@@ -0,0 +1,255 @@
+<?
+// Variabeln definieren
+if (!isset($_POST['speichern']))	$_POST['speichern']	= '';
+if (!isset($_POST['reset']))		$_POST['reset']		= '';
+if (!isset($_POST['auswerten']))	$_POST['auswerten']	= '';
+$rp = 0;
+
+$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='aktivralley' LIMIT 1"));
+
+// Ralleystand reseten
+if ($_POST['reset'] == 'Reseten') {
+db_query ("DELETE FROM ".$db_prefix."_aktivralley");
+}
+
+// Ralley auswerten
+if ($_POST['auswerten'] == 'Auswerten') {
+$platz = db_query("SELECT * FROM ".$db_prefix."_aktivralley WHERE punkte > '".$ralleydaten['pro']."' ORDER BY punkte DESC LIMIT ".$ralleydaten['plaetze']."");
+	while ($pa = mysql_fetch_array($platz)) {
+	$rp++;
+	$buchungssumme = $ralleydaten['p'.$rp];
+	// Buchungen durchführen
+	db_query("UPDATE ".$db_prefix."_aktivralley SET ausgezahlt = '".time()."' WHERE uid='".$pa['uid']."'");
+	$buchungs_id = create_code(14);
+	kontobuchung ('+',$buchungssumme,$pa['uid']);
+	buchungsliste ($buchungs_id,'konto',$buchungssumme,'Aktivralley (Platz '.$rp.')',$pa['uid']);
+	bilanz (0,$buchungssumme);
+	}
+}
+
+// Ralleydaten speichern
+if ($_POST['speichern'] == 'Speichern') {
+$ralleystart	= strtotime("".$_POST['start_monat']."/".$_POST['start_tag']."/".$_POST['start_jahr']." ".$_POST['start_stunde']." hours ".$_POST['start_minute']." minutes 0 seconds");
+$ralleyende		= strtotime("".$_POST['ende_monat']."/".$_POST['ende_tag']."/".$_POST['ende_jahr']." ".$_POST['ende_stunde']." hours ".$_POST['ende_minute']." minutes 0 seconds");
+db_query ("UPDATE ".$db_prefix."_ralleydaten SET start = '".$ralleystart."', ende = '".$ralleyende."', pro = '".$_POST['pro']."', plaetze = '".$_POST['plaetze']."', p1 = '".$_POST['p1']."', p2 = '".$_POST['p2']."', p3 = '".$_POST['p3']."', p4 = '".$_POST['p4']."', p5 = '".$_POST['p5']."', p6 = '".$_POST['p6']."', p7 = '".$_POST['p7']."', p8 = '".$_POST['p8']."', p9 = '".$_POST['p9']."', p10 = '".$_POST['p10']."' WHERE ralley = 'aktivralley'");
+}
+
+$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='aktivralley' LIMIT 1"));
+?>
+
+<?head("Aktivralley bearbeiten");?>
+<form action="" method="post">
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="left" valign="middle"><b>Start der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="start_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="start_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="right" valign="middle"><b>Ende der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="ende_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="ende_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="left" valign="middle" colspan="2">
+<b>Anzahl der Plätze</b>&nbsp;
+<select name="plaetze" size="1">
+<?
+for($x=0;$x<11;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if ($ralleydaten['plaetze'] == $x) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;&nbsp;
+<b>Punkte die User min. braucht</b>&nbsp;
+<input type="Text" name="pro" value="<?=$ralleydaten['pro'];?>" style="width:100px;">
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="center" valign="middle">Gewinn Platz 01</td>
+<td align="center" valign="middle">Gewinn Platz 02</td>
+<td align="center" valign="middle">Gewinn Platz 03</td>
+<td align="center" valign="middle">Gewinn Platz 04</td>
+<td align="center" valign="middle">Gewinn Platz 05</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p1" value="<?=$ralleydaten['p1'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p2" value="<?=$ralleydaten['p2'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p3" value="<?=$ralleydaten['p3'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p4" value="<?=$ralleydaten['p4'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p5" value="<?=$ralleydaten['p5'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle">Gewinn Platz 06</td>
+<td align="center" valign="middle">Gewinn Platz 07</td>
+<td align="center" valign="middle">Gewinn Platz 08</td>
+<td align="center" valign="middle">Gewinn Platz 09</td>
+<td align="center" valign="middle">Gewinn Platz 10</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p6" value="<?=$ralleydaten['p6'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p7" value="<?=$ralleydaten['p7'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p8" value="<?=$ralleydaten['p8'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p9" value="<?=$ralleydaten['p9'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p10" value="<?=$ralleydaten['p10'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle" colspan="5"><input type="Submit" name="speichern" value="Speichern" style="width:100px;"></td>
+</tr>
+</table>
+</form>
+<?foot();?>
+
+<?head("Platzierungen und Preise");?>
+Dieses Aktivralley läuft von <b><?=date("d.m.Y - H:i:s",$ralleydaten['start']);?></b> bis <b><?=date("d.m.Y - H:i:s",$ralleydaten['ende']);?></b>.<br>
+Für diese Ralley sind <b><?=number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung;?></b> ausgelobt die auf die Plätze <b>1</b> bis <b><?=$ralleydaten['plaetze'];?></b> verteilt werden.
+<? if ($ralleydaten['pro'] > 0.00) {
+echo 'Es müssen mindestens <b>'.number_format($ralleydaten['pro'],0,",",".").' Punkte</b> erreicht werden um gewertet zu werden';
+}?>
+<br>
+<br>
+<table cellpadding="1" cellspacing="1" border="0" bgcolor="#c0c0c0" align="center">
+<tr bgcolor="#d0d0d0">
+<td align="center">&nbsp;&nbsp;<b>User</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>Punkte</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>möglicher Gewinn</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>Ausgewertet</b>&nbsp;&nbsp;</td>
+</tr>
+
+<?
+$platz = db_query("SELECT * FROM ".$db_prefix."_aktivralley WHERE punkte > '".$ralleydaten['pro']."' ORDER BY punkte DESC LIMIT 10");
+while ($pa = mysql_fetch_array($platz)) {
+$rp++;
+$mg = number_format($ralleydaten['p'.$rp],2,",",".");
+if ($rp > $ralleydaten['plaetze']) $mg = '----';
+if ($pa['ausgezahlt'] >= 1) {$ausg = date("d.m.Y - H:i:s",$pa['ausgezahlt']);} else {$ausg = '<b>Nein</b>';}
+echo '
+<tr bgcolor="#f0f0f0">
+<td align="center">'.$pa['uid'].'</td>
+<td align="right">'.number_format($pa['punkte'],2,",",".").'&nbsp;&nbsp;</td>
+<td align="right">'.$mg.'&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;'.$ausg.'&nbsp;&nbsp;</td>
+</tr>
+';
+}
+for($x=$rp+1;$x<11;$x++){
+$mg = number_format($ralleydaten['p'.$x],2,",",".");
+if ($x > $ralleydaten['plaetze']) $mg = '----';
+if ($pa['ausgezahlt'] >= 1) {$ausg = date("d.m.Y - H:i:s",$pa['ausgezahlt']);} else {$ausg = '<b>Nein</b>';}
+echo '
+<tr bgcolor="#f0f0f0">
+<td align="center">N/A</td>
+<td align="right">0&nbsp;&nbsp;</td>
+<td align="right">'.$mg.'&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;'.$ausg.'&nbsp;&nbsp;</td>
+</tr>
+';
+}
+?>
+</table>
+<br><br>
+<div align="center">
+<form action="" method="POST">
+<input type="Submit" name="reset" value="Reseten">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<input type="Submit" name="auswerten" value="Auswerten">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/ralleysystem/klick.php b/adminforce/content/ralleysystem/klick.php
new file mode 100644
index 0000000..d83586e
--- /dev/null
+++ b/adminforce/content/ralleysystem/klick.php
@@ -0,0 +1,288 @@
+<?
+// Variabeln definieren
+if (!isset($_POST['speichern']))	$_POST['speichern']	= '';
+if (!isset($_POST['reset']))		$_POST['reset']		= '';
+if (!isset($_POST['auswerten']))	$_POST['auswerten']	= '';
+$rp = 0;
+
+$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='klickralley' LIMIT 1"));
+
+// Ralleystand reseten
+if ($_POST['reset'] == 'Reseten') {
+db_query ("DELETE FROM ".$db_prefix."_klickralley");
+db_query ("UPDATE ".$db_prefix."_ralleydaten SET jackpot='0' WHERE ralley='klickralley'");
+}
+
+// Ralley auswerten
+if ($_POST['auswerten'] == 'Auswerten') {
+$platz = db_query("SELECT * FROM ".$db_prefix."_klickralley WHERE klicks >= 1 ORDER BY klicks DESC LIMIT ".$ralleydaten['plaetze']."");
+	while ($pa = mysql_fetch_array($platz)) {
+	$rp++;
+		if ($ralleydaten['art'] == 'statisch') {
+		$buchungssumme = $ralleydaten['p'.$rp];
+		} else {
+		$buchungssumme = $ralleydaten['jackpot'] / 100 * $ralleydaten['p'.$rp];
+		}
+	// Buchungen durchführen
+	db_query("UPDATE ".$db_prefix."_klickralley SET ausgezahlt = '".time()."' WHERE uid='".$pa['uid']."'");
+	$buchungs_id = create_code(14);
+	kontobuchung ('+',$buchungssumme,$pa['uid']);
+	buchungsliste ($buchungs_id,'konto',$buchungssumme,'Klickralley (Platz '.$rp.')',$pa['uid']);
+	bilanz (0,$buchungssumme);
+	}
+}
+
+// Ralleydaten speichern
+if ($_POST['speichern'] == 'Speichern') {
+$ralleystart	= strtotime("".$_POST['start_monat']."/".$_POST['start_tag']."/".$_POST['start_jahr']." ".$_POST['start_stunde']." hours ".$_POST['start_minute']." minutes 0 seconds");
+$ralleyende		= strtotime("".$_POST['ende_monat']."/".$_POST['ende_tag']."/".$_POST['ende_jahr']." ".$_POST['ende_stunde']." hours ".$_POST['ende_minute']." minutes 0 seconds");
+db_query ("UPDATE ".$db_prefix."_ralleydaten SET start = '".$ralleystart."', ende = '".$ralleyende."', art = '".$_POST['art']."', pro = '".$_POST['pro']."', plaetze = '".$_POST['plaetze']."', p1 = '".$_POST['p1']."', p2 = '".$_POST['p2']."', p3 = '".$_POST['p3']."', p4 = '".$_POST['p4']."', p5 = '".$_POST['p5']."', p6 = '".$_POST['p6']."', p7 = '".$_POST['p7']."', p8 = '".$_POST['p8']."', p9 = '".$_POST['p9']."', p10 = '".$_POST['p10']."' WHERE ralley = 'klickralley'");
+}
+
+$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='klickralley' LIMIT 1"));
+?>
+
+<?head("Klickralley bearbeiten");?>
+<form action="" method="post">
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="left" valign="middle"><b>Start der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="start_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="start_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="right" valign="middle"><b>Ende der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="ende_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="ende_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="left" valign="middle" colspan="2">
+<b>Anzahl der Plätze</b>&nbsp;
+<select name="plaetze" size="1">
+<?
+for($x=0;$x<11;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if ($ralleydaten['plaetze'] == $x) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;&nbsp;
+<b>Ralleyart</b>&nbsp;
+<select name="art" size="1">
+<option value="statisch"<?if ($ralleydaten['art'] == 'statisch') echo' selected';?>>Statisch</option>
+<option value="dynamisch"<?if ($ralleydaten['art'] == 'dynamisch') echo' selected';?>>Dynamisch</option>
+</select>
+&nbsp;&nbsp;
+<b>Pro Klick</b>&nbsp;
+<input type="Text" name="pro" value="<?=$ralleydaten['pro'];?>" style="width:50px;">
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="center" valign="middle">Gewinn Platz 01</td>
+<td align="center" valign="middle">Gewinn Platz 02</td>
+<td align="center" valign="middle">Gewinn Platz 03</td>
+<td align="center" valign="middle">Gewinn Platz 04</td>
+<td align="center" valign="middle">Gewinn Platz 05</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p1" value="<?=$ralleydaten['p1'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p2" value="<?=$ralleydaten['p2'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p3" value="<?=$ralleydaten['p3'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p4" value="<?=$ralleydaten['p4'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p5" value="<?=$ralleydaten['p5'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle">Gewinn Platz 06</td>
+<td align="center" valign="middle">Gewinn Platz 07</td>
+<td align="center" valign="middle">Gewinn Platz 08</td>
+<td align="center" valign="middle">Gewinn Platz 09</td>
+<td align="center" valign="middle">Gewinn Platz 10</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p6" value="<?=$ralleydaten['p6'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p7" value="<?=$ralleydaten['p7'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p8" value="<?=$ralleydaten['p8'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p9" value="<?=$ralleydaten['p9'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p10" value="<?=$ralleydaten['p10'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle" colspan="5"><input type="Submit" name="speichern" value="Speichern" style="width:100px;"></td>
+</tr>
+</table>
+</form>
+<?foot();?>
+
+<?head("Platzierungen und Preise");?>
+<?
+if ($ralleydaten['art'] != 'statisch') {
+echo'
+<div align="left">
+Dieses Klickralley läuft von <b>'.date("d.m.Y - H:i:s",$ralleydaten['start']).'</b> bis <b>'.date("d.m.Y - H:i:s",$ralleydaten['ende']).'</b>.<br>
+Dabei handelt es sich um eine dynamische Klickralley wo pro Klick <b>'.number_format($ralleydaten['pro'],2,",",".").' '.$waehrung.'</b> in den Jackpot fliesen.
+Im Jackpot befinden sicher gerade <b>'.number_format($ralleydaten['jackpot'],2,",",".").' '.$waehrung.'</b> die wie unten aufgeführt auf die Plätze <b>1 
+bis '.$ralleydaten['plaetze'].'</b> verteilt werden.
+</div><br>
+';
+} else {
+echo'
+<div align="left">
+Dieses Klickralley läuft von <b>'.date("d.m.Y - H:i:s",$ralleydaten['start']).'</b> bis <b>'.date("d.m.Y - H:i:s",$ralleydaten['ende']).'</b>.<br>
+Für diese Klickralley sind <b>'.number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung.'</b> ausgelobt und werden wie unten angezeigt auf die 
+Plätze <b>1</b> bis <b>'.$ralleydaten['plaetze'].'</b> verteilt.
+</div><br>
+';
+}
+?>
+<table cellpadding="1" cellspacing="1" border="0" bgcolor="#c0c0c0" align="center">
+<tr bgcolor="#d0d0d0">
+<td align="center">&nbsp;&nbsp;<b>User</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>Klicks</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>möglicher Gewinn</b>&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;<b>Ausgewertet</b>&nbsp;&nbsp;</td>
+</tr>
+
+<?
+$platz = db_query("SELECT * FROM ".$db_prefix."_klickralley ORDER BY klicks DESC LIMIT 10");
+while ($pa = mysql_fetch_array($platz)) {
+$rp++;
+if ($ralleydaten['art'] == 'statisch') {
+$mg = number_format($ralleydaten['p'.$rp],2,",",".");
+} else {
+$mg = number_format($ralleydaten['jackpot'] / 100 * $ralleydaten['p'.$rp],2,",",".");
+}
+if ($rp > $ralleydaten['plaetze']) $mg = '----';
+if ($pa['ausgezahlt'] >= 1) {$ausg = date("d.m.Y - H:i:s",$pa['ausgezahlt']);} else {$ausg = '<b>Nein</b>';}
+echo '
+<tr bgcolor="#f0f0f0">
+<td align="center">'.$pa['uid'].'</td>
+<td align="right">'.number_format($pa['klicks'],0,",",".").'&nbsp;&nbsp;</td>
+<td align="right">'.$mg.'&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;'.$ausg.'&nbsp;&nbsp;</td>
+</tr>
+';
+}
+for($x=$rp+1;$x<11;$x++){
+if ($ralleydaten['art'] == 'statisch') {
+$mg = number_format($ralleydaten['p'.$x],2,",",".");
+} else {
+$mg = number_format($ralleydaten['jackpot'] / 100 * $ralleydaten['p'.$x],2,",",".");
+}
+if ($x > $ralleydaten['plaetze']) $mg = '----';
+if ($pa['ausgezahlt'] >= 1) {$ausg = date("d.m.Y - H:i:s",$pa['ausgezahlt']);} else {$ausg = '<b>Nein</b>';}
+echo '
+<tr bgcolor="#f0f0f0">
+<td align="center">N/A</td>
+<td align="right">0&nbsp;&nbsp;</td>
+<td align="right">'.$mg.'&nbsp;&nbsp;</td>
+<td align="center">&nbsp;&nbsp;'.$ausg.'&nbsp;&nbsp;</td>
+</tr>
+';
+}
+?>
+</table>
+<br><br>
+<form action="" method="POST">
+<div align="center">
+<input type="Submit" name="reset" value="Reseten">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<input type="Submit" name="auswerten" value="Auswerten">
+</div>
+</form>
+<?foot();?>
+
diff --git a/adminforce/content/ralleysystem/ref.php b/adminforce/content/ralleysystem/ref.php
new file mode 100644
index 0000000..957c8f7
--- /dev/null
+++ b/adminforce/content/ralleysystem/ref.php
@@ -0,0 +1,271 @@
+<?
+// Variabeln definieren
+if (!isset($_POST['speichern']))	$_POST['speichern'] = '';
+if (!isset($_POST['auswerten']))	$_POST['auswerten']	= '';
+if (!isset($rp))					$rp					= "";
+if (!isset($rpy))					$rpy				= "";
+if (!isset($count))					$count				= "";
+if (!isset($platz1))				$platz1				= "";
+if (!isset($platz2))				$platz2				= "";
+if (!isset($platz3))				$platz3				= "";
+if (!isset($platz4))				$platz4				= "";
+if (!isset($platz5))				$platz5				= "";
+if (!isset($platz6))				$platz6				= "";
+if (!isset($platz7))				$platz7				= "";
+if (!isset($platz8))				$platz8				= "";
+if (!isset($platz9))				$platz9				= "";
+if (!isset($platz10))				$platz10			= "";
+
+if ($_POST['speichern'] == 'Speichern') {
+$ralleystart	= strtotime("".$_POST['start_monat']."/".$_POST['start_tag']."/".$_POST['start_jahr']." ".$_POST['start_stunde']." hours ".$_POST['start_minute']." minutes 0 seconds");
+$ralleyende		= strtotime("".$_POST['ende_monat']."/".$_POST['ende_tag']."/".$_POST['ende_jahr']." ".$_POST['ende_stunde']." hours ".$_POST['ende_minute']." minutes 0 seconds");
+db_query ("UPDATE ".$db_prefix."_ralleydaten SET start = '".$ralleystart."', ende = '".$ralleyende."', pro = '".$_POST['pro']."', plaetze = '".$_POST['plaetze']."', p1 = '".$_POST['p1']."', p2 = '".$_POST['p2']."', p3 = '".$_POST['p3']."', p4 = '".$_POST['p4']."', p5 = '".$_POST['p5']."', p6 = '".$_POST['p6']."', p7 = '".$_POST['p7']."', p8 = '".$_POST['p8']."', p9 = '".$_POST['p9']."', p10 = '".$_POST['p10']."' WHERE ralley = 'refralley'");
+}
+
+$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='refralley' LIMIT 1"));
+
+$refs = mysql_query("SELECT werber , COUNT(werber)AS total FROM ".$db_prefix."_werberdaten WHERE werber != 0 and zuordnungszeit >= '".$ralleydaten['start']."' and zuordnungszeit <= '".$ralleydaten['ende']."' and gesamt >= '".$ralleydaten['pro']."' GROUP BY werber ORDER BY total DESC LIMIT 10");
+$count = 1;
+while ($row = mysql_fetch_array($refs)) {
+$user = mysql_fetch_array(mysql_query("SELECT uid FROM ".$db_prefix."_kontodaten WHERE `uid`='$row[0]'"));
+if ($count == 1) {$users[1] = $user[0]; $ref[1] = $row[1];}
+if ($count == 2) {$users[2] = $user[0]; $ref[2] = $row[1];}
+if ($count == 3) {$users[3] = $user[0]; $ref[3] = $row[1];}
+if ($count == 4) {$users[4] = $user[0]; $ref[4] = $row[1];}
+if ($count == 5) {$users[5] = $user[0]; $ref[5] = $row[1];}
+if ($count == 6) {$users[6] = $user[0]; $ref[6] = $row[1];}
+if ($count == 7) {$users[7] = $user[0]; $ref[7] = $row[1];}
+if ($count == 8) {$users[8] = $user[0]; $ref[8] = $row[1];}
+if ($count == 9) {$users[9] = $user[0]; $ref[9] = $row[1];}
+if ($count == 10) {$users[10] = $user[0]; $ref[10] = $row[1];}
+$count = $count + 1;
+}
+
+// Ralley auswerten
+if ($_POST['auswerten'] == 'Auswerten') {
+	for($y=1;$y<11;$y++){
+	$rpy++;
+		if (!isset($users[$rpy]))	$users[$rpy]	= "0";
+		if (!isset($ref[$rpy]))		$ref[$rpy]		= "0";
+			if ($ref[$rpy] != 0 and $users[$rpy] != 0) {
+			// Buchungen durchführen
+			$buchungs_id = create_code(14);
+			kontobuchung ('+',$ralleydaten['p'.$rpy],$users[$rpy]);
+			buchungsliste ($buchungs_id,'konto',$ralleydaten['p'.$rpy],'Refralley (Platz '.$rpy.')',$users[$rpy]);
+			bilanz (0,$ralleydaten['p'.$rpy]);
+			}
+	}
+}
+?>
+
+<?head("Refralley bearbeiten");?>
+<form action="" method="post">
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="left" valign="middle"><b>Start der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="start_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="start_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="start_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['start']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="right" valign="middle"><b>Ende der Ralley</b> (<i>HH/MM. - TT/MM/JJJJ</i>)</td>
+<td align="left" valign="middle">
+<select name="ende_stunde" size="1">
+<?
+for($x=0;$x<24;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("H",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_minute" size="1">
+<?
+for($x=0;$x<60;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("i",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;-&nbsp;
+<select name="ende_tag" size="1">
+<?
+for($x=1;$x<32;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("d",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_monat" size="1">
+<?
+for($x=1;$x<13;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("m",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+<select name="ende_jahr" size="1">
+<?
+for($x=2005;$x<2011;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if (date("Y",$ralleydaten['ende']) == $y) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+</td>
+</tr>
+<tr>
+<td align="left" valign="middle" colspan="2">
+<b>Anzahl der Plätze</b>&nbsp;
+<select name="plaetze" size="1">
+<?
+for($x=0;$x<11;$x++){
+if ($x <= 9) {$y = '0'.$x;} else {$y = $x;}
+if ($ralleydaten['plaetze'] == $x) {$select = ' selected';} else {$select = '';}
+echo '<option value="'.$x.'"'.$select.'>'.$y.'</option>';
+}
+?>
+</select>
+&nbsp;&nbsp;
+<b>Punkte die Ref min. braucht</b>&nbsp;
+<input type="Text" name="pro" value="<?=$ralleydaten['pro'];?>" style="width:100px;">
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="2" cellspacing="2" border="0" align="center">
+<tr>
+<td align="center" valign="middle">Gewinn Platz 01</td>
+<td align="center" valign="middle">Gewinn Platz 02</td>
+<td align="center" valign="middle">Gewinn Platz 03</td>
+<td align="center" valign="middle">Gewinn Platz 04</td>
+<td align="center" valign="middle">Gewinn Platz 05</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p1" value="<?=$ralleydaten['p1'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p2" value="<?=$ralleydaten['p2'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p3" value="<?=$ralleydaten['p3'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p4" value="<?=$ralleydaten['p4'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p5" value="<?=$ralleydaten['p5'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle">Gewinn Platz 06</td>
+<td align="center" valign="middle">Gewinn Platz 07</td>
+<td align="center" valign="middle">Gewinn Platz 08</td>
+<td align="center" valign="middle">Gewinn Platz 09</td>
+<td align="center" valign="middle">Gewinn Platz 10</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><input type="Text" name="p6" value="<?=$ralleydaten['p6'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p7" value="<?=$ralleydaten['p7'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p8" value="<?=$ralleydaten['p8'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p9" value="<?=$ralleydaten['p9'];?>" style="width:80px;"></td>
+<td align="center" valign="middle"><input type="Text" name="p10" value="<?=$ralleydaten['p10'];?>" style="width:80px;"></td>
+</tr>
+<tr>
+<td align="center" valign="middle" colspan="5"><input type="Submit" name="speichern" value="Speichern" style="width:100px;"></td>
+</tr>
+</table>
+</form>
+<?foot();?>
+
+<?head("Platzierungen und Preise");?>
+<? if ($ralleydaten['ende']<= time()) echo '<font color="#000000">'; ?>
+<? if ($ralleydaten['start']>= time()) echo '<font color="#000000">'; ?>
+<?
+echo'
+<div align="left">
+Dieses Refralley läuft von <b>'.date("d.m.Y - H:i:s",$ralleydaten['start']).'</b> bis <b>'.date("d.m.Y - H:i:s",$ralleydaten['ende']).'</b>.<br>
+Für diese Refralley sind <b>'.number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung.'</b> ausgelobt und werden wie unten angezeigt auf die 
+Plätze <b>1</b> bis <b>'.$ralleydaten['plaetze'].'</b> verteilt.
+<br>
+<br>
+</div>
+';
+if ($ralleydaten['pro'] == 0) {
+echo '<div align="center"><b>Es werden alle Refs gezählt!</b></div>';
+} else {
+echo '<div align="center"><b>Es werden nur Refs gezählt ab '.number_format($ralleydaten['pro'],2,',','.').' '.$waehrung.' Umsatz!</b></div><br>';
+}
+?>
+<br>
+<table width="70%" cellpadding="1" cellspacing="1" border="0" bgcolor="#c0c0c0" align="center">
+<tr bgcolor="#d0d0d0">
+<td align="center"><b>Platz</b></td>
+<td align="center"><b>User</b></td>
+<td align="center"><b>Refs</b></td>
+<td align="center"><b>Gewinn</b></td>
+</tr>
+<?
+for($x=1;$x<11;$x++){
+$rp++;
+if (!isset($users[$rp]))	$users[$rp]	= "N/A";
+if (!isset($ref[$rp]))		$ref[$rp]	= "0";
+?>
+<tr bgcolor="#f0f0f0">
+<td align="center"><b><?=$x;?></b></td>
+<td align="center"><b><?=$users[$rp];?></b></td>
+<td align="center"><b><?=$ref[$rp];?></b></td>
+<td align="center"><b><?=number_format($ralleydaten['p'.$rp],0,',','.');?></b></td>
+</tr>
+<?
+}
+?>
+</table>
+<br><br>
+<form action="" method="POST">
+<div align="center">
+<input type="Submit" name="auswerten" value="Auswerten">
+</div>
+</form>
+<?foot();?>
+
diff --git a/adminforce/content/startseite.php b/adminforce/content/startseite.php
new file mode 100644
index 0000000..42e2f9c
--- /dev/null
+++ b/adminforce/content/startseite.php
@@ -0,0 +1,31 @@
+<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr>
+<td width="100%" valign="top">
+<?head("Userstatistik");?>
+<?
+$kontostats = mysql_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid , SUM(kontostand) AS kd_kontostand FROM ".$db_prefix."_kontodaten"));
+?>
+<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#c0c0c0">
+<tr bgcolor="#f0f0f0">
+    <td width="55%">Angemeldete User</td>
+    <td align="right"><?=@number_format($kontostats['kd_uid'],0,",",".");?>&nbsp;&nbsp;</td>
+</tr>
+<tr bgcolor="#f5f5f5">
+    <td>Gesamtguthaben</td>
+    <td align="right"><?=@number_format($kontostats['kd_kontostand'],2,",",".");?>&nbsp;&nbsp;</td>
+</tr>
+<tr bgcolor="#f0f0f0">
+    <td width="55%">Guth. pro User</td>
+    <td align="right"><?=@number_format($kontostats['kd_kontostand'] / $kontostats['kd_uid'],2,",",".");?>&nbsp;&nbsp;</td>
+</tr>
+</table>
+<?foot();?>
+</td>
+</tr></table>
+
+
+<?head("VMS Links");?>
+&raquo;&nbsp;<a href="http://www.designerscripte.net/in.php?to=home" target="_blank">VMS Supportforum</a><br>
+&raquo;&nbsp;<a href="http://www.designerscripte.net/in.php?to=dl" target="_blank">VMS Downloads</a><br>
+<?foot();?>
+
+
diff --git a/adminforce/content/texte/agb.php b/adminforce/content/texte/agb.php
new file mode 100644
index 0000000..a9115b0
--- /dev/null
+++ b/adminforce/content/texte/agb.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/agb.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("AGB's bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/texte/aktivralley.php b/adminforce/content/texte/aktivralley.php
new file mode 100644
index 0000000..0734ccd
--- /dev/null
+++ b/adminforce/content/texte/aktivralley.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/aktivralley.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Aktivralleyeinleitung bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/texte/alternativwerbung.php b/adminforce/content/texte/alternativwerbung.php
new file mode 100644
index 0000000..700bd45
--- /dev/null
+++ b/adminforce/content/texte/alternativwerbung.php
@@ -0,0 +1,100 @@
+<?
+// Variabeln
+$alt_head	= '../lib/texte/alt_headerbanner.txt';
+$alt_pops	= '../lib/texte/alt_bettelseitenpopup.txt';
+$alt_start	= '../lib/texte/alt_startseitenpopup.txt';
+$alt_bettel	= '../lib/texte/bettelwerbung.txt';
+$alt_box1	= '../lib/texte/box1.txt';
+$alt_box2	= '../lib/texte/box2.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+
+if ($_POST['updaten'] == 'Updaten !') {
+// Alternativ Header schreiben
+$_POST['head'] = str_replace('\\', '', $_POST['head']);
+$fp = @fopen ($alt_head, "w");
+fwrite ($fp, $_POST['head']);
+fclose ($fp);
+// Alternativ Popups schreiben
+$_POST['pops'] = str_replace('\\', '', $_POST['pops']);
+$fp = @fopen ($alt_pops, "w");
+fwrite ($fp, $_POST['pops']);
+fclose ($fp);
+// Alternativ Start-Popups schreiben
+$_POST['start'] = str_replace('\\', '', $_POST['start']);
+$fp = @fopen ($alt_start, "w");
+fwrite ($fp, $_POST['start']);
+fclose ($fp);
+// Bettelseite Werbung schreiben
+$_POST['bettelwerbung'] = str_replace('\\', '', $_POST['bettelwerbung']);
+$fp = @fopen ($alt_bettel, "w");
+fwrite ($fp, $_POST['bettelwerbung']);
+fclose ($fp);
+// Box 1 schreiben
+$_POST['box1'] = str_replace('\\', '', $_POST['box1']);
+$fp = @fopen ($alt_box1, "w");
+fwrite ($fp, $_POST['box1']);
+fclose ($fp);
+// Box 2 schreiben
+$_POST['box2'] = str_replace('\\', '', $_POST['box2']);
+$fp = @fopen ($alt_box2, "w");
+fwrite ($fp, $_POST['box2']);
+fclose ($fp);
+}
+
+// Dateien auslesen
+$fp = fopen ($alt_head, "r");
+$head = @fread ($fp, filesize ($alt_head));
+fclose ($fp);
+$head = str_replace('\\', '', $head);
+//
+$fp = fopen ($alt_pops, "r");
+$pops = @fread ($fp, filesize ($alt_pops));
+fclose ($fp);
+$pops = str_replace('\\', '', $pops);
+//
+$fp = fopen ($alt_start, "r");
+$start = @fread ($fp, filesize ($alt_start));
+fclose ($fp);
+$start = str_replace('\\', '', $start);
+// Bettelwerbung Banner
+$fp = fopen ($alt_bettel, "r");
+$binhalt = @fread ($fp, filesize ($alt_bettel));
+fclose ($fp);
+$binhalt = str_replace('\\', '', $binhalt);
+// Box 1
+$fp = fopen ($alt_box1, "r");
+$box1 = @fread ($fp, filesize ($alt_box1));
+fclose ($fp);
+$box1 = str_replace('\\', '', $box1);
+// Box 2
+$fp = fopen ($alt_box2, "r");
+$box2 = @fread ($fp, filesize ($alt_box2));
+fclose ($fp);
+$box2 = str_replace('\\', '', $box2);
+?>
+
+<?head("Alternativwerbung bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<b>Headerwerbung (Banner)</b><br>
+<textarea name="head" style="width:500px; height:120px;"><?=$head;?></textarea><br>
+<br>
+<b>Startseitenpopup</b><br>
+<textarea name="start" style="width:500px; height:120px;"><?=$start;?></textarea><br>
+<br>
+<b>Bettelseitenpopup</b><br>
+<textarea name="pops" style="width:500px; height:120px;"><?=$pops;?></textarea><br>
+<br>
+<b>Bettelwerbung</b><br>
+<textarea name="bettelwerbung" style="width:500px; height:120px;"><?=$binhalt;?></textarea><br>
+<br>
+<b>Menübox I</b><br>
+<textarea name="box1" style="width:500px; height:120px;"><?=$box1;?></textarea><br>
+<br>
+<b>Menübox II</b><br>
+<textarea name="box2" style="width:500px; height:120px;"><?=$box2;?></textarea><br>
+<br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/texte/faq.php b/adminforce/content/texte/faq.php
new file mode 100644
index 0000000..807631f
--- /dev/null
+++ b/adminforce/content/texte/faq.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/faq.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("FAQ's bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
diff --git a/adminforce/content/texte/klickralley.php b/adminforce/content/texte/klickralley.php
new file mode 100644
index 0000000..7c96376
--- /dev/null
+++ b/adminforce/content/texte/klickralley.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/klickralley.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Klickralleyeinleitung bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/texte/refralley.php b/adminforce/content/texte/refralley.php
new file mode 100644
index 0000000..2aad6ca
--- /dev/null
+++ b/adminforce/content/texte/refralley.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/refralley.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Refralleyeinleitung bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/texte/wartung.php b/adminforce/content/texte/wartung.php
new file mode 100644
index 0000000..5d95e26
--- /dev/null
+++ b/adminforce/content/texte/wartung.php
@@ -0,0 +1,29 @@
+<?
+// Variabeln
+$filename = '../lib/texte/wartung.txt';
+if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
+if (!isset($_POST['text'])) $_POST['text'] = '';
+
+// Datei schreiben
+if ($_POST['updaten'] == 'Updaten !') {
+$_POST['text'] = str_replace('\\', '', $_POST['text']);
+$fp = fopen ($filename, "w");
+fwrite ($fp, $_POST['text']);
+fclose ($fp);
+}
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = @fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Wartungstext bearbeiten (html erlaubt!)");?>
+<div align="center">
+<form action="" method="post">
+<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
+<input type="Submit" name="updaten" value="Updaten !">
+</form>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/usersystem/buchungen.php b/adminforce/content/usersystem/buchungen.php
new file mode 100644
index 0000000..2b9d029
--- /dev/null
+++ b/adminforce/content/usersystem/buchungen.php
@@ -0,0 +1,27 @@
+<?head("Buchungsübersicht - Konto ".$_GET['uid']);?>
+<table border="0" width="100%" cellpadding="0" cellspacing="1" bgcolor="#303030">
+<tr bgcolor="#f2f2f2">
+<td align="center"><b>Buchungs Id</b></td>
+<td align="center"><b>Datum</b></td>
+<td align="center"><b>Zeit</b></td>
+<td align="center"><b>FuCos</b></td>
+<td align="center"><b>Verwendungszweck</b></td>
+</tr>
+<?
+$buchungen_lesen = db_query("SELECT * FROM ".$db_prefix."_buchungen WHERE uid=".$_GET['uid']." ORDER BY buchungszeit DESC LIMIT 250");
+while ($buchung_schreiben = mysql_fetch_array($buchungen_lesen)) {
+$buchcolor = '#000000';
+if ($buchung_schreiben['buchungsmenge'] < 0) $buchcolor='#cc0000';
+?>
+<tr bgcolor="#fafafa">
+<td align="left">&nbsp;<?=$buchung_schreiben['buchungs_id'];?></td>
+<td align="center">&nbsp;<?=date("d.m.Y",$buchung_schreiben['buchungszeit']);?>&nbsp;</td>
+<td align="center">&nbsp;<?=date("H:i",$buchung_schreiben['buchungszeit']);?>&nbsp;</td>
+<td align="right">&nbsp;<font color="<?=$buchcolor;?>"><?=number_format($buchung_schreiben['buchungsmenge'],2,",",".");?></font>&nbsp;</td>
+<td align="left">&nbsp;<?=$buchung_schreiben['verwendungszweck'];?></td>
+</tr>
+<?
+}
+?>
+</table>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/usersystem/doppelaccis.php b/adminforce/content/usersystem/doppelaccis.php
new file mode 100644
index 0000000..94331ff
--- /dev/null
+++ b/adminforce/content/usersystem/doppelaccis.php
@@ -0,0 +1,83 @@
+<?head("Doppelte IP Adressen");?>
+<table border="0" width="100%">
+<tr>
+    <td align="center"><b>Anzahl</b></td>
+    <td align="center"><b>IP-Adresse</b></td>
+</tr>
+<?
+$sql = db_query("SELECT `login_ip`, COUNT(*) AS `anzahl` FROM  `".$db_prefix."_kontodaten` GROUP BY `login_ip` HAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC") or die(mysql_error());
+if (!mysql_num_rows($sql)){
+ echo '
+ <tr>
+     <td colspan="2" align="center"><font color="green">Keine Doppelten IP-Adressen im System</font></td>
+ </tr>';
+}else{
+ while ($fake1 = mysql_fetch_assoc($sql)){
+ echo '
+   <tr>
+       <td>'.$fake1['anzahl'].'</td>
+       <td><a href="?content=/usersystem/doppelaccis&ip='.$fake1['login_ip'].'">'.$fake1['login_ip'].'</a></td>
+   </tr>
+ ';
+ }
+}
+?>
+</table>
+<?
+if($_GET['ip']){
+$ip = db_query("SELECT k.uid,u.nickname FROM
+                        ".$db_prefix."_kontodaten AS k
+                        LEFT JOIN ".$db_prefix."_userdaten AS u ON u.uid=k.uid
+WHERE k.login_ip='".addslashes($_GET['ip'])."'");
+
+     echo "<p>User mit der IP ".$_GET['ip'].":</p>";
+     while($doppelt = mysql_fetch_assoc($ip)){
+        echo "<a href='?content=/usersystem/userbearbeiten&uid=".$doppelt['uid']."'>".$doppelt['nickname']."</a><br>";
+     }
+}
+
+foot();?>
+
+
+
+<?head("Doppelte Passwörter");?>
+<table border="0" width="100%">
+<tr>
+    <td align="center"><b>Anzahl</b></td>
+    <td align="center"><b>md5Hash</b></td>
+</tr>
+<?
+$sql2 = db_query("SELECT `passwort`, COUNT(*) AS `anzahl` FROM  `".$db_prefix."_kontodaten` GROUP BY `passwort` HAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC") or die(mysql_error());
+if (!mysql_num_rows($sql)){
+ echo '
+ <tr>
+     <td colspan="2" align="center"><font color="green">Keine Doppelten Passwörter im System</font></td>
+ </tr>';
+}else{
+ while ($fake2= mysql_fetch_assoc($sql2)){
+ echo '
+   <tr>
+       <td>'.$fake2['anzahl'].'</td>
+       <td><a href="?content=/usersystem/doppelaccis&md5='.$fake2['passwort'].'">'.$fake2['passwort'].'</a></td>
+   </tr>
+ ';
+ }
+}
+
+?>
+</table>
+
+<?
+if($_GET['md5']){
+$md5 = db_query("SELECT k.uid,u.nickname FROM
+                        ".$db_prefix."_kontodaten AS k
+                        LEFT JOIN ".$db_prefix."_userdaten AS u ON u.uid=k.uid
+WHERE k.passwort='".addslashes($_GET['md5'])."'");
+
+     echo "<p>User mit dem Passworthash ".$_GET['md5'].":</p>";
+     while($doppelt = mysql_fetch_assoc($md5)){
+        echo "<a href='?content=/usersystem/userbearbeiten&uid=".$doppelt['uid']."'>".$doppelt['nickname']."</a><br>";
+     }
+}
+
+foot();?>
\ No newline at end of file
diff --git a/adminforce/content/usersystem/liste.php b/adminforce/content/usersystem/liste.php
new file mode 100644
index 0000000..03c0bf4
--- /dev/null
+++ b/adminforce/content/usersystem/liste.php
@@ -0,0 +1,42 @@
+<?
+$gfx_status[0] = '<img src="images/gelb.gif" width="15" height="15" border="0" alt="Nicht freigeschaltet">';
+$gfx_status[1] = '<img src="images/gruen.gif" width="15" height="15" border="0" alt="O.K.">';
+$gfx_status[2] = '<img src="images/rot.gif" width="15" height="15" border="0" alt="Gesperrt">';
+
+head("Userliste"); ?>
+<table border="0" cellpadding="3" cellspacing="0" width="100%">
+<tr class="tr_head">
+    <td align="center"></td>
+    <td align="center"><b>UID</b></td>
+    <td align="center"><b>Kontostand</b></td>
+    <td align="center"><b>Nickname</b></td>
+    <td align="center"><b>Name</b></td>
+    <td align="center"><b>Emailadresse</b></td>
+    <td align="center"><b>Angemeldet</b></td>
+</tr>
+<?
+$userliste = db_query("SELECT k.uid,k.status,k.kontostand,u.nickname,u.vorname,u.angemeldet_seit,e.emailadresse
+                             FROM ".$db_prefix."_kontodaten AS k
+                             LEFT JOIN ".$db_prefix."_userdaten AS u ON u.uid=k.uid
+                             LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=k.uid
+ORDER BY k.uid ASC");
+
+while ($ausgabe = mysql_fetch_array($userliste)) {
+$i++;
+$row = ($i % 2 == 0) ? 0 : 1;
+
+echo'
+<tr  class="tr_row'.$row.'">
+    <td align="center"><a href="?content=/usersystem/userbearbeiten&amp;uid='.$ausgabe['uid'].'" target="_self">'.$gfx_status[$ausgabe['status']].'</a></td>
+    <td align="center"><a href="../?content=/nickpage&amp;id='.$ausgabe['uid'].'" target="_blank">'.$ausgabe['uid'].'</a></td>
+    <td align="center">'.number_format($ausgabe['kontostand'],2,",",".").'</td>
+    <td align="center">'.$ausgabe['nickname'].'</td>
+    <td align="center">'.$ausgabe['vorname'].' '.$ausgabe['nachname'].'</td>
+    <td align="center"><a href="mailto:'.$ausgabe['emailadresse'].'">Mail</a></td>
+    <td align="center">'.date("d.m.y - H:i",$ausgabe['angemeldet_seit']).'</td>
+</tr>
+';
+}
+?>
+</table>
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/usersystem/userbearbeiten.php b/adminforce/content/usersystem/userbearbeiten.php
new file mode 100644
index 0000000..abe9f03
--- /dev/null
+++ b/adminforce/content/usersystem/userbearbeiten.php
@@ -0,0 +1,263 @@
+<?
+// Variable _GET['uid'] pruefen
+if (!empty ($_GET['uid'])) $_POST['uid'] = $_GET['uid'];
+$_POST['uid'] = (int)$_POST['uid'];
+if (empty ($_POST['uid'])) die ('Keine korrekte User-ID &uuml;bergeben!');
+
+// Allgemeine Daten speichern
+if (isset ($_POST['profile'])) {
+	db_query ('UPDATE '.$db_prefix.'_userdaten SET vorname = "'.$_POST['vorname'].'", nachname = "'.$_POST['nachname'].'" WHERE uid = '.$_POST['uid']);
+	db_query ('UPDATE '.$db_prefix.'_emaildaten SET emailadresse = "'.$_POST['emailadresse'].'", freigabe_fuer = "'.$_POST['freigabe_fuer'].'" WHERE uid = '.$_POST['uid']);
+	if ($_POST['werber'] != $_POST['alt_werber'] && $_POST['werber'] != $_POST['uid']) db_query ('UPDATE '.$db_prefix.'_werberdaten SET werber = "'.$_POST['werber'].'", umsatz = 0, zuordnungszeit = 0, reset = 0, resetzeit = 0, gesamt = 0, refback = 0, aktivzeit = 0 WHERE uid = '.$_POST['uid']);
+}
+
+// Betrag verbuchen
+if (isset ($_POST['finanze'])) {
+	if ($_POST['buchungssumme'] > 0 && $_POST['buchungssumme']) {
+		$buchungs_id = create_code (14);
+		buchungsliste ($buchungs_id, $_POST['buchungsart'].$_POST['buchungssumme'], $_POST['buchungstext'].' (Admin)', $_POST['uid']);
+		kontobuchung ($_POST['buchungsart'], $_POST['buchungssumme'], $_POST['uid']);
+
+if ($_POST['art'] == '+'){
+$ausgabe = $_POST['buchungsmenge'];
+}else{
+$einnahme = $_POST['buchungsmenge'];
+}
+
+   bilanz($einnahme,$ausgabe);		
+		$nachricht = 'Hallo,'."\n\n".'Es wurde soeben eine Buchung auf dein Userkonto ausgeführt:'."\n\n".$_POST['buchungsart'].' '.number_format($_POST['buchungssumme'], 2, ',', '.').' '.$waehrung.' '.$_POST['buchungstext']."\n\n\n".'Mit freundlichen Grüßen, dein '.$seitenname.'-Team';
+		if (isset ($_POST['send_mail']) && $_POST['send_mail'] == 'ja') usermail ($_POST['email'],$seitenname.' Kontobuchung', $nachricht, '"'.$seitenname.'" <'.$betreibermail.'>');
+	}
+}
+
+// Zugangsberechtigungen aendern
+if (isset ($_POST['access'])) {
+	if (isset ($_POST['send_mail']) && $_POST['send_mail'] == 'ja') {
+		if ($_POST['status'] == 0) $desc = 'Wartend';
+		elseif ($_POST['status'] == 1) $desc = 'Freigeschaltet';
+		elseif ($_POST['status'] == 2) $desc = 'Gesperrt';
+		elseif ($_POST['status'] == 'loeschen') $desc = 'Gelöscht';
+		$grund = (empty ($_POST['hinweis'])) ? 'Keine Angabe' : $_POST['hinweis'];
+		$nachricht = 'Hallo,'."\n\n".'Dein Userstatus auf '.$seitenname.' wurde so ebend geändert.'."\n\n".'Neuer Status: '.$desc.''."\n\n".'Grund:'."\n".$grund."\n\n\n".'Mit freundlichen Grüßen, dein '.$seitenname.'-Team';
+		usermail ($_POST['email'], 'Dein Account auf '.$seitenname, $nachricht, '"'.$seitenname.'" <'.$betreibermail.'>');
+	}
+
+	if ($_POST['status'] != 'loeschen') {
+		$_POST['status'] = (int)$_POST['status'];
+		db_query ('UPDATE '.$db_prefix.'_kontodaten SET status = '.$_POST['status'].', hinweis = "'.$_POST['hinweis'].'" WHERE uid = '.$_POST['uid']);
+	} else {
+		$sperrzeit = ( time() + ( 86400 * 365 ) );
+		db_query ('INSERT INTO '.$db_prefix.'_userblacklist (uid,zeit) VALUES ('.$_POST['uid'].','.$sperrzeit.')');
+		db_query ('DELETE FROM '.$db_prefix.'_kontodaten WHERE uid = '.$_POST['uid']);
+		db_query ('DELETE FROM '.$db_prefix.'_emaildaten WHERE uid = '.$_POST['uid']);
+		db_query ('DELETE FROM '.$db_prefix.'_userdaten WHERE uid = '.$_POST['uid']);
+		db_query ('DELETE FROM '.$db_prefix.'_werberdaten WHERE uid = '.$_POST['uid']);
+		db_query ('UPDATE '.$db_prefix.'_werberdaten SET werber = 0 WHERE werber = '.$_POST['uid']);
+		echo '<meta http-equiv="refresh" content="0; URL=index.php?content=/usersystem/liste">';
+	}
+}
+
+// Notizen speichern
+if (isset ($_POST['notice'])) {
+	db_query ('UPDATE '.$db_prefix.'_userdaten SET notizen = "'.$_POST['notizen'].'" WHERE uid = '.$_POST['uid']);
+}
+
+// Daten einlesen
+$sql = db_query ('SELECT * FROM '.$db_prefix.'_kontodaten t1, '.$db_prefix.'_userdaten t2, '.$db_prefix.'_emaildaten t3, '.$db_prefix.'_werberdaten t4 WHERE t1.uid = '.$_POST['uid'].' AND t2.uid = '.$_POST['uid'].' AND t3.uid = '.$_POST['uid'].' AND t4.uid = '.$_POST['uid'].' LIMIT 1');
+if (mysql_num_rows ($sql) == 0) die ('Die angegebene User-ID existiert nicht!');
+$alledaten = mysql_fetch_assoc ($sql);
+?>
+
+<? head ('Bearbeiten des Users <i>'.$alledaten['nickname'].'</i> ('.$alledaten['uid'].')'); ?>
+<div style="text-align: center;">
+<a href="javascript:ShowUserInfo(1);">Allgemeines</a> &middot; 
+<a href="javascript:ShowUserInfo(2);">Statistik</a> &middot; 
+<a href="javascript:ShowUserInfo(3);">Konto</a> &middot; 
+<a href="javascript:ShowUserInfo(4);">Zugang</a> &middot; 
+<a href="javascript:ShowUserInfo(5);">Buchungen</a> &middot; 
+<a href="javascript:ShowUserInfo(6);">Notizen</a>
+</div><hr size=1 style="color:#c0c0c0;">
+
+<div id="Userinfo1" style="display: block;">
+<form action="" method="POST">
+<input type="hidden" name="uid" value="<?=$alledaten['uid'];?>">
+<input type="hidden" name="alt_werber" value="<?=$alledaten['werber'];?>">
+<table width="350" border="0" cellpadding="1" cellspacing="1" align="center" bgcolor="#000000">
+	<tr bgcolor="#fafafa">
+		<td align="right"><b>User-ID</b>:&nbsp;</td>
+		<td align="left">&nbsp;<?=$alledaten['uid'];?></td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td align="right"><b>Nickname</b>:&nbsp;</td>
+		<td align="left">&nbsp;<?=$alledaten['nickname'];?></td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td align="right"><b>Werber-ID</b>:&nbsp;</td>
+		<td align="left">&nbsp;<input type="text" name="werber" value="<?=$alledaten['werber'];?>"></td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td align="right"><b>Vorname</b>:&nbsp;</td>
+		<td align="left">&nbsp;<input type="text" name="vorname" value="<?=$alledaten['vorname'];?>"></td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td align="right"><b>Nachname</b>:&nbsp;</td>
+		<td align="left">&nbsp;<input type="text" name="nachname" value="<?=$alledaten['nachname'];?>"></td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td align="right"><b>eMailadresse</b>:&nbsp;</td>
+		<td align="left">&nbsp;<input type="text" name="emailadresse" value="<?=$alledaten['emailadresse'];?>"></td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td align="right"><b>eMail-Empfang</b>:&nbsp;</td>
+		<td align="left">&nbsp;<select name="freigabe_fuer" size="1">
+		<option value="0" <?if ($alledaten['freigabe_fuer'] == 0) echo'SELECTED';?>>Kein Empfang</option>
+		<option value="1" <?if ($alledaten['freigabe_fuer'] == 1) echo'SELECTED';?>>Nur Newsletter</option>
+		<option value="2" <?if ($alledaten['freigabe_fuer'] == 2) echo'SELECTED';?>>Nur Paidmails</option>
+		<option value="3" <?if ($alledaten['freigabe_fuer'] == 3) echo'SELECTED';?>>Newsletter / Paidmails</option>
+		</select></td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td align="center" colspan="2"><br /><input type="submit" name="profile" value="&raquo; Updaten"><br />&nbsp;</td>
+	</tr>
+</table>
+</form>
+</div>
+
+<div id="Userinfo2" style="display: none;">
+<table width="350" border="0" cellpadding="1" cellspacing="1" align="center" bgcolor="#000000">
+	<tr bgcolor="#fafafa">
+		<td>&nbsp;<b>Refback</b>:</td>
+		<td colspan="2" align="right"><?=$alledaten['refback'];?> %&nbsp;</td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td>&nbsp;<b>Angemeldet</b>:</td>
+		<td colspan="2" align="right"><?=date('d.m.Y H:i', $alledaten['angemeldet_seit']);?>&nbsp;</td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td>&nbsp;<b>Letzter Login</b>:</td>
+		<td colspan="2" align="right"><?=date('d.m.Y H:i', $alledaten['loginzeit']);?>&nbsp;</td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td>&nbsp;<b>Letzte Aktivit&auml;t</b>:</td>
+		<td colspan="2" align="right"><?=date('d.m.Y H:i', $alledaten['last_active']);?>&nbsp;</td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td>&nbsp;<b>Letzte IP</b>:</td>
+		<td colspan="2" align="right"><?=$alledaten['login_ip'];?>&nbsp;</td>
+	</tr>
+	<tr bgcolor="#ededed">
+		<td>&nbsp;<b>ForcedKlicks</b>:</td>
+		<td width=50 align="right"><?=$alledaten['klicks'];?>&nbsp;</td>
+		<td align="right"><?=number_format ($alledaten['kv'], 2, ',', '.').' '.$waehrung;?>&nbsp;</td>
+	</tr>
+	<tr bgcolor="#fafafa">
+		<td>&nbsp;<b>Betteln</b>:</td>
+		<td align="right"><?=$alledaten['angebettelt'];?>&nbsp;</td>
+		<td align="right"><?=number_format ($alledaten['bv'], 2, ',', '.').' '.$waehrung;?>&nbsp;</td>
+	</tr>
+</table>
+</div>
+
+<div id="Userinfo3" style="display: none;">
+<form action="" method="POST">
+<input type="hidden" name="uid" value="<?=$alledaten['uid'];?>">
+<input type="hidden" name="email" value="<?=$alledaten['emailadresse'];?>">
+<table align="center" border="0" cellpadding="0" cellspacing="2">
+	<tr>
+		<td><b>Kontostand</b>:<br />
+		<?=number_format($alledaten['kontostand'],2,",",".").' '.$waehrung;?></td>
+	</tr>
+	<tr>
+		<td><br /><b>Summe</b>:<br />
+		<select style="width: 40px" name="buchungsart" size="1"><option value="+" SELECTED>+</option><option value="-">-</option></select><input style="width: 100px; height: 19px;" type="Text" name="buchungssumme" value=""></td>
+	</tr>
+	<tr>
+		<td><br /><b>Grund</b> (max. 30 Zeichen):<br />
+		<input style="width: 140px" type="text" name="buchungstext" value="" maxlength="30"></td>
+	</tr>
+	<tr>
+		<td><br /><b>Mail an User</b>:<br />
+		<input type="radio" name="send_mail" value="ja" /> Ja &nbsp; <input checked="checked" type="radio" name="send_mail" value="nein" /> Nein</td>
+	</tr>
+	<tr>
+		<td align="center"><br /><input type="submit" name="finanze" value="&raquo; Buchen" /></td>
+	</tr>
+</table>
+</form>
+</div>
+
+<div id="Userinfo4" style="display: none;">
+<form action="" method="POST">
+<input type="hidden" name="uid" value="<?=$alledaten['uid'];?>">
+<input type="hidden" name="email" value="<?=$alledaten['emailadresse'];?>">
+<table align="center" border="0" cellpadding="0" cellspacing="2">
+	<tr>
+		<td><b>Status</b>:<br />
+		<select name="status" size="1" style="width: 140px;">
+		<option value="0" <?if ($alledaten['status'] == 0) echo'SELECTED';?>>Wartend</option>
+		<option value="1" <?if ($alledaten['status'] == 1) echo'SELECTED';?>>Freigeschaltet</option>
+		<option value="2" <?if ($alledaten['status'] == 2) echo'SELECTED';?>>Gesperrt</option>
+		<option value="<?=$alledaten['status'];?>">--------------</option>
+		<option value="loeschen">User l&ouml;schen</option>
+</select></td>
+	</tr>
+	<tr>
+		<td><br /><b>Hinweistext</b>:<br />
+		<textarea name="hinweis" style="width: 140px; height: 100px;"><?=$alledaten['hinweis'];?></textarea></td>
+	</tr>
+	<tr>
+		<td><br /><b>Mail an User</b>:<br />
+		<input checked="checked" type="radio" name="send_mail" value="ja" /> Ja &nbsp; <input type="radio" name="send_mail" value="nein" /> Nein</td>
+	</tr>
+	<tr>
+		<td align="center"><br /><input type="submit" name="access" value="&raquo; &Auml;ndern" /></td>
+	</tr>
+</table>
+</form>
+</div>
+
+<div id="Userinfo5" style="display: none;">
+<table border="0" width="100%" cellpadding="0" cellspacing="1" bgcolor="#303030">
+<tr class="tr_head">
+<td align="center"><b>Buchungs Id</b></td>
+<td align="center"><b>Datum</b></td>
+<td align="center"><b>Zeit</b></td>
+<td align="center"><b><?=$waehrung;?></b></td>
+<td align="center"><b>Verwendungszweck</b></td>
+</tr>
+<?
+$buchungen_lesen = db_query('SELECT * FROM '.$db_prefix.'_buchungen WHERE uid = '.$alledaten['uid'].' ORDER BY buchungszeit DESC LIMIT 250');
+while ($buchung_schreiben = mysql_fetch_array($buchungen_lesen)) {
+$i++;
+	$buchcolor = ($buchung_schreiben['buchungsmenge'] > 0) ? '#000000' : '#cc0000';
+	$linecolor = ($i %2 == 0) ? 1 : 0; 
+?>
+<tr class="tr_row<?=$linecolor;?>">
+<td align="left">&nbsp;<?=$buchung_schreiben['buchungs_id'];?></td>
+<td align="center">&nbsp;<?=date("d.m.Y",$buchung_schreiben['buchungszeit']);?>&nbsp;</td>
+<td align="center">&nbsp;<?=date("H:i",$buchung_schreiben['buchungszeit']);?>&nbsp;</td>
+<td align="right">&nbsp;<font color="<?=$buchcolor;?>"><?=number_format($buchung_schreiben['buchungsmenge'],2,",",".");?></font>&nbsp;</td>
+<td align="left">&nbsp;<?=$buchung_schreiben['verwendungszweck'];?></td>
+</tr>
+<?
+}
+?>
+</table>
+</div>
+
+<div id="Userinfo6" style="display: none;">
+<form action="" method="POST">
+<input type="hidden" name="uid" value="<?=$alledaten['uid'];?>">
+<table align="center" border="0" cellpadding="0" cellspacing="2">
+       <tr>
+		<td><b>Notizen</b>:<br />
+		<textarea name="notizen" style="width: 340px; height: 150px;"><?=$alledaten['notizen'];?></textarea></td>
+	</tr>
+	<tr>
+		<td align="center"><br /><input type="submit" name="notice" value="&raquo; Speichern" /></td>
+	</tr>
+</table>
+</form>
+</div>
+
+<? foot(); ?>
\ No newline at end of file
diff --git a/adminforce/content/werbesystem/forcedbanner_468.php b/adminforce/content/werbesystem/forcedbanner_468.php
new file mode 100644
index 0000000..cb69296
--- /dev/null
+++ b/adminforce/content/werbesystem/forcedbanner_468.php
@@ -0,0 +1,82 @@
+<?
+// Variabeln definieren
+if (!isset($_POST['buchen']))		$_POST['buchen']			= "";
+if (!isset($_POST['verdienst']))	$_POST['verdienst']			= "";
+if (!isset($_POST['menge']))		$_POST['menge']				= "0";
+if (!isset($_POST['ziel']))			$_POST['ziel']				= "";
+if (!isset($_POST['banner_url']))	$_POST['banner_url']		= "";
+if (!isset($_POST['reload']))		$_POST['reload']			= "1";
+if (!isset($_POST['aufendhalt']))	$_POST['aufendhalt']		= "0";
+if (!isset($buchungsfehler))		$buchungsfehler				= "";
+if (!isset($buchung))				$buchung					= "";
+
+
+if ($_POST['buchen'] == 'Jetzt Buchen') {
+
+	// Fehlerprüfung
+	if (!$_POST['menge'] or ereg("[^0-9]", $_POST['menge'])) $buchungsfehler .= 'Bei Menge nur Zahlen!<br>';
+	if (!$_POST['banner_url'] or !$_POST['menge'] or !$_POST['ziel'] or !$_POST['reload']) $buchungsfehler .= 'Bitte alle Felder ausfüllen!<br>';
+	if ($_POST['reload'] < 1 or $_POST['reload'] > 24 or ereg("[^0-9]", $_POST['reload'])) $buchungsfehler .= 'Bei Reloadzeit nur Zahlen und zwischen 1 und 24 Stunden!<br>';
+	if ($_POST['aufendhalt'] < 0 or $_POST['aufendhalt'] > 30 or ereg("[^0-9]", $_POST['aufendhalt'])) $buchungsfehler .= 'Bei dem Aufendhalt nur Zahlen und zwischen 0 und 30 Sekunden!<br>';
+	if ($_POST['aufendhalt']>30 or $_POST['aufendhalt']<0 or ereg("[^0-9]",$_POST['aufendhalt'])) $buchungsfehler .= 'Aufendhalt nur Zahlen und zwischen 1 und 30 Sek.!<br>';
+	
+	// Buchung durchführen
+	if (!$buchungsfehler) {
+	$buchungs_id = create_code(32);
+	$reload = $_POST['reload']*60*60;
+	db_query("INSERT INTO ".$db_prefix."_gebuchte_werbung  (tan,ziel,banner,aufendhalt,menge,preis,verdienst,werbeart,status,reload,sponsor) VALUES ('".$buchungs_id."','".$_POST['ziel']."','".$_POST['banner_url']."','".$_POST['aufendhalt']."','".$_POST['menge']."','0','".$_POST['verdienst']."','forcedbanner','1','".$reload."','administrator')");
+	$buchung = 'true';
+	}
+}
+?>
+
+
+<?
+if ($buchungsfehler) {
+head("Eingabefehler");
+echo '<b><font color="#FF0000">'.$buchungsfehler.'</font></b>';
+foot();
+}
+?>
+
+<?
+if ($buchung == 'true'){
+head("Buchung erfolgreich...");
+echo '<font color="#000080">Deine Buchung war erfolgreich und wurde dem System hinzugefügt.</font>';
+foot();
+}
+?>
+
+<?head("Formular Forcedbanner 468*60");?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+    <td>Menge</td>
+    <td><input type="Text" name="menge" value="<?=$_POST['menge'];?>" style="width:60px" maxlength="6"></td>
+</tr>
+<tr>
+    <td>Userverdienst</td>
+    <td><input type="Text" name="verdienst" value="<?=$_POST['verdienst'];?>" style="width:60px" maxlength="6"></td>
+</tr>
+<tr>
+    <td>Ziel URL (mit http://)</td>
+    <td><input type="Text" name="ziel" value="<?=$_POST['ziel'];?>" style="width:330px"></td>
+</tr>
+<tr>
+     <td>Banner URL (mit http://)</td>
+     <td><input type="Text" name="banner_url" value="<?=$_POST['banner_url'];?>" style="width:330px"></td>
+</tr>
+<tr>
+    <td>Reloadzeit (Stunden)</td>
+    <td><input type="Text" name="reload" value="<?=$_POST['reload'];?>" style="width:40px" maxlength="2"> max. 24 Stunden</td>
+</tr>
+<tr>
+    <td>Aufendhalt (Sekunden)</td>
+    <td><input type="Text" name="aufendhalt" value="<?=$_POST['aufendhalt'];?>" style="width:40px" maxlength="2"> max. 30</td>
+</tr>
+<tr>
+    <td align="center" valign="middle" colspan="2"><input type="Submit" name="buchen" value="Jetzt Buchen"></td>
+</tr>
+</table>
+</form>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/werbesystem/paidmail.php b/adminforce/content/werbesystem/paidmail.php
new file mode 100644
index 0000000..cb81ee4
--- /dev/null
+++ b/adminforce/content/werbesystem/paidmail.php
@@ -0,0 +1,100 @@
+<?
+if (!isset($_POST['versenden']))	$_POST['versenden']			= "";
+if (!isset($_POST['verdienst']))	$_POST['verdienst']			= "";
+if (!isset($_POST['menge']))		$_POST['menge']				= "0";
+if (!isset($_POST['ziel']))			$_POST['ziel']				= "";
+if (!isset($_POST['mailtext']))		$_POST['mailtext']			= "";
+if (!isset($_POST['beschreibung']))	$_POST['beschreibung']		= "";
+if (!isset($_POST['aufendhalt']))	$_POST['aufendhalt']		= "0";
+if (!isset($_POST['gueltig']))		$_POST['gueltig']			= "1";
+if (!isset($tan))					$tan						= "";
+
+	$empfaenger =  db_query("SELECT e.uid,e.emailadresse FROM 
+                                   ".$db_prefix."_emaildaten e
+                                   LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=e.uid
+WHERE (e.freigabe_fuer = '3' or e.freigabe_fuer = '2') AND k.status=1");
+      	$maxempf = mysql_num_rows($empfaenger);
+      	
+if ($_POST['versenden'] == 'Paidmail versenden!') {
+
+	
+	if ($_POST['menge'] == 0) $_POST['menge'] = 5000;
+	if ( $_POST['menge'] >= $maxempf ) $_POST['menge'] = $maxempf;
+
+	$tan = create_code(14);
+	$bis = time() + (86400*$_POST['gueltig']);
+	db_query("INSERT INTO ".$db_prefix."_paidmails_versendet (tan,menge,verdienst,ziel,beschreibung,mailtext,aufendhalt,gesendet,gueltig) VALUES ('".$tan."','".$_POST['menge']."','".$_POST['verdienst']."','".$_POST['ziel']."','".$_POST['beschreibung']."','".$_POST['mailtext']."','".$_POST['aufendhalt']."','".time()."','".$bis."')");
+
+	$senden = db_query("SELECT e.uid,e.emailadresse FROM 
+                                   ".$db_prefix."_emaildaten e
+                                   LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=e.uid
+WHERE (e.freigabe_fuer = '3' or e.freigabe_fuer = '2') AND k.status=1 ORDER BY RAND() LIMIT ".$_POST['menge']."");
+
+		while ($versendet = mysql_fetch_array($senden)) {
+		db_query("INSERT INTO ".$db_prefix."_paidmails_empfaenger (uid,gueltig,tan,status,aufendhalt) VALUES ('".$versendet['uid']."','".$bis."','".$tan."','0','".$_POST['aufendhalt']."')");
+		$message='Hallo,
+		dieses ist eine neue '.$seitenname.' Paidmail, für dessen Bestätigung
+		Du '.$_POST['verdienst'].' '.$waehrung.' für '.$_POST['aufendhalt'].' Sek. aufenthalt erhälst!
+		Diese Paidmail ist gültig bis '.date("d.m.Y - H:i:s",$bis).'
+
+'.$_POST['beschreibung'].'
+
+'.$_POST['mailtext'].'
+--------------------------------------------------------------------
+
+Die Betreiber von '.$seitenname.' distanzieren sich vom Inhalt dieser Mail!
+
+Diese Mail ist kein Spam da der Empfänger als Mitglied von
+'.$seitenname.' dem Empfang zugestimmt hat.
+
+Bestätigungslink:
+'.$domain.'/pclick.php?tan='.$tan.'&uid='.$versendet["uid"].'
+
+Mit freundlichen Grüßen
+Das '.$seitenname.' Team';
+usermail($versendet['emailadresse'], 'Neue '.$seitenname.' Paidmail', $message, '"'.$seitenname.'" <'.$betreibermail.'>') or die('Versandfehler');
+		
+		}
+$msg_send = '<b><div align="center"><font color="#800000">Diese Paidmail wurd an '.$_POST['menge'].' User versendet</font></div></b>';
+}
+
+?>
+
+<? head("Paidmail einbuchen und versenden"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+    <td>Anzahl der Empfänger</td>
+    <td><input type="Text" name="menge" value="<?=$_POST['menge'];?>" style="width:60px" maxlength="6"> (0 = an alle, max: <?=$maxempf;?>)</td>
+</tr>
+<tr>
+    <td>Userverdienst</td>
+    <td><input type="Text" name="verdienst" value="<?=$_POST['verdienst'];?>" style="width:60px" maxlength="6"></td>
+</tr>
+<tr>
+    <td>Ziel URL (mit http://)</td>
+    <td><input type="Text" name="ziel" value="<?=$_POST['ziel'];?>" style="width:330px"></td>
+</tr>
+<tr>
+    <td>Beschreibung</td>
+    <td><input type="Text" name="beschreibung" value="<?=$_POST['beschreibung'];?>" style="width:215px" maxlength="30"> (max. 30 Zeichen)</td>
+</tr>
+<tr>
+    <td valign="top">Mailtext</td>
+    <td><textarea cols="50" rows="10" name="mailtext"><?=$_POST['mailtext'];?></textarea></td>
+</tr>
+<tr>
+    <td>Aufendhalt (Sekunden)</td>
+    <td><input type="Text" name="aufendhalt" value="<?=$_POST['aufendhalt'];?>" style="width:40px" maxlength="2"></td>
+</tr>
+<tr>
+    <td>Gültig (TAGE)</td>
+    <td><input type="Text" name="gueltig" value="<?=$_POST['gueltig'];?>" style="width:40px" maxlength="2"></td>
+</tr>
+<tr>
+    <td align="center" valign="middle" colspan="2"><input type="Submit" name="versenden" value="Paidmail versenden!"></td>
+</tr>
+</table>
+</form>
+<?=$msg_send;?>
+<?foot();?>
\ No newline at end of file
diff --git a/adminforce/content/werbesystem/paidmail_hist.php b/adminforce/content/werbesystem/paidmail_hist.php
new file mode 100644
index 0000000..97d3cb9
--- /dev/null
+++ b/adminforce/content/werbesystem/paidmail_hist.php
@@ -0,0 +1,43 @@
+<?
+if (!isset($_GET['tan']))		$_GET['tan']		= "";
+if (!isset($_GET['loeschen']))	$_GET['loeschen']	= "";
+
+if ($_GET['loeschen'] == 'true') {
+db_query("DELETE FROM ".$db_prefix."_paidmails_versendet WHERE tan='".$_GET['tan']."'");
+db_query("DELETE FROM ".$db_prefix."_paidmails_empfaenger WHERE tan='".$_GET['tan']."'");
+}
+?>
+
+
+<?
+$mails = db_query("SELECT * FROM ".$db_prefix."_paidmails_versendet ORDER BY gesendet DESC");
+
+
+while ($history = mysql_fetch_array($mails)) {
+      head('Paidmail: '.$history['beschreibung']);
+?>
+      <b>Tan:</b> <?=$history['tan'];?><br>
+      <b>Menge:</b> <?=$history['menge'];?><br>
+      <b>Bestätigt:</b> <?=$history['bestaedigt'];?> (<?=@round($history['bestaedigt']/$history['menge']*100,2);?> %)<br>
+      <b>Userverdienst:</b> <?=$history['verdienst'];?><br>
+      <b>Gültig bis:</b> <?=date("d.m.Y - H:i",$history['gueltig']);?><br>
+      <b>Gesendet am:</b> <?=date("d.m.Y - H:i",$history['gesendet']);?>  <br>
+      <b>Aufenthalt:</b> <?=$history['aufendhalt'];?> Sek.<br>
+      
+      <p align="center"><textarea style="width:100%"><?=$history['mailtext'];?></textarea></p>
+
+<?
+      if ($history['gueltig'] <= time() or $history['menge']==$history['bestaedigt']){ echo '
+      <br><br><a href="?content=/werbesystem/paidmail_hist&amp;tan='.$history['tan'].'&amp;loeschen=true"><b>Löschen!</b></a>
+      ';
+      }
+foot();
+}
+
+if (!mysql_num_rows($mails)){
+ head("Information");
+ echo 'Noch keine Paidmails vorhanden!';
+ foot();
+}
+?>
+
diff --git a/adminforce/css/main.css b/adminforce/css/main.css
new file mode 100644
index 0000000..8b82706
--- /dev/null
+++ b/adminforce/css/main.css
@@ -0,0 +1,78 @@
+BODY {
+	background-color: #665;
+	color: #000000;
+}
+
+td {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+}
+
+.titel {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #666666;
+	font-size: 11px;
+	font-weight: bold;
+}
+
+a {
+	color: #666655;
+	text-decoration: none;
+	font: 8pt Verdana;
+}
+
+a:hover {
+	text-decoration: underline;
+	color: red;
+}
+
+.tblbgcolor {
+	background-color: #336;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+input {
+        border-width: 1;
+        font-size: 11px;
+        font-family: verdana;
+        border-color: #505050;
+        border-style: solid;
+        background-color: #E6E6E6;
+        color: 333333;
+        font-weight: normal;
+}
+
+select {
+    border-width:1; font-size: 11px; font-family: verdana; border-color:#000080;
+    border-style:solid; background-color:#EEEEEE; color:333333;
+}
+
+textarea {
+        border-width: 1;
+        font-size: 11px;
+        font-family: verdana;
+        border-color: #505050;
+        border-style: solid;
+        background-color: #E6E6E6;
+        color: 333333;
+        font-weight: normal;
+}
+
+option {
+    border-width:1; font-size: 11px; font-family: verdana; border-color:#000080;
+    border-style:solid; background-color:#EEEEEE; color:333333;
+}
+
+.tr_row0 {
+ BACKGROUND-COLOR: #E2E2E2;
+}
+
+.tr_row1 {
+ BACKGROUND-COLOR: #CDCDCD;
+}
+
+.tr_head {
+ BACKGROUND-COLOR: #0099CC;
+ COLOR:#000000;
+ FONT-WEIGHT: bold;
+}
\ No newline at end of file
diff --git a/adminforce/images/gelb.gif b/adminforce/images/gelb.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2668ff9c4237f6759ff440a28101db094fa85149
GIT binary patch
literal 147
zcmZ?wbhEHb<Y(Y#*vtR||NsAg{Fvd^EryF18BUyF*twHs<w}+X3wTbP5Lma)9ViP{
z1tk=JvM@3*a5LzD_#iVFSR4vYdam9pp3y5Fz)>XQz}Dv$6*PZ_l<OX^hS@5t3(wD6
n%kLofV8SUzRwl)Z77l9K3=#`FpZGEy%Su1|vSR-f4hCxgLt-(t

literal 0
HcmV?d00001

diff --git a/adminforce/images/gruen.gif b/adminforce/images/gruen.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51da984c216bf3db6d3b0f83219eee99d48f9e9f
GIT binary patch
literal 149
zcmZ?wbhEHb<Y(Y#*vtR||NsAIc*MYPje+4L1H(=R#^sEhvpGc$h$uW$P`IF=a7aOM
zlcL574UjSh2F0H&j0_BX3_2j4ATt<PoGzU7T)kI3qgS?|J<(wPSJR|Gou?&c9bN)n
wuUkFr_?vl`a4_{hH$G9(w4^`qhAJ!P>~uvLmBo^*LftnDtR5JsGBH>K02=Er9smFU

literal 0
HcmV?d00001

diff --git a/adminforce/images/rot.gif b/adminforce/images/rot.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b98d7f896e98b3b690bba58dac718c54f58e57d6
GIT binary patch
literal 147
zcmZ?wbhEHb<Y(Y#*vtR||NsAg#K3Tkf#D<r!%hZ<<&2E8IXMrAh%A?qTIcQ#lm)AT
z5{f@r7#SG28FWB=kQodt4h1JYSML?i=oJrWS7e$wsl(MPD1MTHrs8@b0i_)_JX_k8
mTJEl6H#kz(q;heEx0ZH;Q^A8bz6_Vu(+<C^*gu7X!5RQ;$1J4)

literal 0
HcmV?d00001

diff --git a/adminforce/index.php b/adminforce/index.php
new file mode 100644
index 0000000..f552021
--- /dev/null
+++ b/adminforce/index.php
@@ -0,0 +1,52 @@
+<?
+session_start();
+$shows = 0;
+
+if($_POST['check'] == "Login") {
+  @require_once ('../lib/functions.lib.php');
+  db_connect();
+  $page = mysql_fetch_array(db_query("SELECT admin_name, admin_pass FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
+       if($_POST['loginname'] == $page['admin_name'] && $_POST['passwort'] == $page['admin_pass']) {
+        $_SESSION['admin'] = 1;
+        header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
+       } 
+}
+
+
+if($_SESSION['admin'] == 1) {
+
+@include_once('lib/header.php'); 
+@include_once('content'.$_GET['content'].'.php');
+@include_once('lib/footer.php');
+
+} else {
+?>
+<html>
+<head>
+<title>Adminforce</title>
+</head>
+<link rel="stylesheet" href="css/main.css" type="text/css">
+<body>
+<center>
+<b>Adminlogin</b>
+
+<form action="" method="POST">
+<table border="0">
+<tr>
+    <td><b>Loginname:</b></td>
+    <td><input name="loginname" type="text"></td>
+</tr>
+<tr>
+    <td><b>Passwort:</b></td>
+    <td><input name="passwort" type="password"></td>
+</tr>
+<tr>
+    <td colspan=2 align="center"><input name="check" value="Login" type="submit"></td>
+</tr>
+</table>
+</form>
+
+</center>
+</body>
+</html>
+<?}?>
diff --git a/adminforce/lib/footer.php b/adminforce/lib/footer.php
new file mode 100644
index 0000000..3bb6e57
--- /dev/null
+++ b/adminforce/lib/footer.php
@@ -0,0 +1,10 @@
+</td>
+<td width="5" valign="top" align="left"></td>
+<td width="130" valign="top" align="left"><? require ( 'lib/menue_rechts.php' ); ?></td>
+</tr>
+</table>
+
+</td></tr></table>
+</body>
+</html>
+<? db_close (); ?>
\ No newline at end of file
diff --git a/adminforce/lib/header.php b/adminforce/lib/header.php
new file mode 100644
index 0000000..f31ec2f
--- /dev/null
+++ b/adminforce/lib/header.php
@@ -0,0 +1,99 @@
+<?
+require ('../lib/functions.lib.php');
+db_connect ();
+require ('lib/layout.lib.php');
+
+// Extras-Erweiterung initalisieren und ausfuehren
+require ( '../lib/extras.lib.php' );
+
+if (!isset($_GET['content'])) $_GET['content'] = '/startseite';
+if (!file_exists('content'.$_GET['content'].'.php')) $_GET['content'] = '/error/keine_seite';
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>..:: Adminforce ::..</title>
+<meta name="Author" content="">
+<meta name="Publisher" content="">
+<meta name="Copyright" content="">
+<meta name="Keywords" content="">
+<meta name="Description" content="">
+<meta name="Page-topic" content="">
+<meta name="Audience" content="">
+<meta name="Content-language" content="DE">
+<meta name="Page-type" content="Nicht Gewinnorientiert">
+<meta name="Robots" content="INDEX,FOLLOW">
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> 
+<link rel="stylesheet" href="css/main.css" type="text/css">
+<script type="text/javascript">
+<!--
+function menuebox(id,art){
+
+if(art == 1){
+  document.getElementById(id).style.display = 'block';
+}else{
+  document.getElementById(id).style.display = 'none';
+ }
+
+}
+
+function ShowUserInfo (art) {
+	/* alle container ausblenden */
+	document.getElementById("Userinfo1").style.display = 'none';
+	document.getElementById("Userinfo2").style.display = 'none';
+	document.getElementById("Userinfo3").style.display = 'none';
+	document.getElementById("Userinfo4").style.display = 'none';
+	document.getElementById("Userinfo5").style.display = 'none';
+	document.getElementById("Userinfo6").style.display = 'none';
+
+	/* ausgewaehlten container einblenden */
+	document.getElementById("Userinfo" + art).style.display = 'block';
+}
+-->
+</script>
+<script language="javascript" type="text/javascript">
+<!--
+var win=null;
+
+onerror = stopError;
+function stopError(){
+	return true;
+}
+
+function ShowWindow (url) {
+	var myleft = (screen.availWidth - 640) / 2;
+	var mytop = (screen.availHeight - 480) / 2;
+	settings="width=640,height=480,top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=no,directories=no,status=yes,menubar=no,toolbar=no,resizable=yes,dependent=no";
+	win=window.open(url,"",settings);
+	win.focus();
+
+}
+// -->
+</script>
+</head>
+
+<body style="topmargin:5;leftmargin:0;">
+
+<noscript><div style="font: 10pt Arial; color: #ff0000; text-align: center;">Um <b>alle Funktionen des Adminforce</b> nutzen zu k&ouml;nnen, bitte <b>JavaScript aktivieren</b>!</div></noscript>
+
+<table width="800" cellpadding="0" cellspacing="0" border="0" align="center">
+<tr>
+<td valign="top" align="center">
+
+    <table style="width:800px; background-color:#888855; border-width:1px; cellpading:0; cellspacing:0; border-color:#000000; border-collapse: collapse;">
+    <tr>
+    <td class="titel" height="66" valign="middle" align="left">
+    &nbsp;<font face="Arial" size=6 color="#ffffff">VMS 1.2 Adminforce</font><br>
+    &nbsp;<font face="Arial" size=2 color="#ffffff"><?=$seitenname;?></font>
+    </td>
+    </tr>
+</table>
+
+<table width="800" border="0" cellpadding="0" cellspacing="0"><tr><td height="5">&nbsp;</td></tr></table>
+<!-- Inhalt -->
+
+<table width="800" cellpadding="0" cellspacing="0" border="0">
+<tr>
+<td width="130" valign="top" align="left"><? require ( 'lib/menue_links.php' ); ?></td>
+<td width="5" valign="top" align="left"></td>
+<td width="530" valign="top" align="left">
\ No newline at end of file
diff --git a/adminforce/lib/layout.lib.php b/adminforce/lib/layout.lib.php
new file mode 100644
index 0000000..5bf8f0a
--- /dev/null
+++ b/adminforce/lib/layout.lib.php
@@ -0,0 +1,36 @@
+<?
+function head($titel){
+echo '
+<table style="width:100%; border-collapse: collapse; border-color:#000000; background-color:#EEEECC; border-width:7px; cellpading:3; cellspacing:0;">
+<tr>
+    <td><font face="Arial" size=2><b>'.$titel.'</b></font></td>
+</tr>
+<tr>
+<td bgcolor="#ffffff">';
+}
+
+function foot(){
+echo '
+</td>
+</tr>
+</table>
+<br>';
+}
+
+function menuehead($titel){
+echo'
+<table style="width:100%; border-collapse: collapse; border-color:#000000; background-color:#BBBB88; border-width:1px; cellpading:3; cellspacing:0;">
+<tr>
+    <td><font face="Arial" size=2><b>'.$titel.'</b></font></td>
+</tr>
+<tr>
+<td bgcolor="#EEEECC">';
+}
+
+function menuefoot(){
+echo'</td>
+</tr>
+</table>
+<br>';
+}
+?>
\ No newline at end of file
diff --git a/adminforce/lib/menue_links.php b/adminforce/lib/menue_links.php
new file mode 100644
index 0000000..2cedd7f
--- /dev/null
+++ b/adminforce/lib/menue_links.php
@@ -0,0 +1,33 @@
+<?menuehead("Allgemeines")?>
+&raquo;&nbsp;<a href="?content=/startseite">Adminstart</a><br>
+&raquo;&nbsp;<a href="?content=/usersystem/liste">Userliste</a><br>
+&raquo;&nbsp;<a href="?content=/usersystem/doppelaccis">Doppalccounts</a><br>
+&raquo;&nbsp;<a href="?content=/module">Module</a><br>
+&raquo;&nbsp;<a href="?content=/bilanzsystem">Bilanz</a><br>
+<?menuefoot();?>
+
+<?menuehead("Newssystem")?>
+&raquo;&nbsp;<a href="?content=/newssystem/news">News schreiben</a><br>
+<?menuefoot();?>
+
+<?menuehead("Ralleysystem")?>
+&raquo;&nbsp;<a href="?content=/ralleysystem/aktiv">Aktivralley</a><br>
+&raquo;&nbsp;<a href="?content=/ralleysystem/klick">Klickralley</a><br>
+&raquo;&nbsp;<a href="?content=/ralleysystem/ref">Refralley</a><br>
+<?menuefoot();?>
+
+<?menuehead("Konfigurationen")?>
+&raquo;&nbsp;<a href="?content=/interfacedaten/pageconfig">Seiteneinstell.</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/crons">Crons</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/betreiber">Betreiberdaten</a><br>
+<?menuefoot();?>
+
+<?menuehead("Texte bearbeiten")?>
+&raquo;&nbsp;<a href="?content=/texte/alternativwerbung">Alternativwerbung</a><br>
+&raquo;&nbsp;<a href="?content=/texte/klickralley">Klickralley</a><br>
+&raquo;&nbsp;<a href="?content=/texte/aktivralley">Aktivralley</a><br>
+&raquo;&nbsp;<a href="?content=/texte/refralley">Refralley</a><br>
+&raquo;&nbsp;<a href="?content=/texte/agb">AGB</a><br>
+&raquo;&nbsp;<a href="?content=/texte/faq">FAQ</a><br>
+&raquo;&nbsp;<a href="?content=/texte/wartung">Wartungstext</a><br>
+<?menuefoot();?>
diff --git a/adminforce/lib/menue_rechts.php b/adminforce/lib/menue_rechts.php
new file mode 100644
index 0000000..6bfcc41
--- /dev/null
+++ b/adminforce/lib/menue_rechts.php
@@ -0,0 +1,26 @@
+<?menuehead("Werbung einb.")?>
+&raquo;&nbsp;<a href="?content=/werbesystem/forcedbanner_468">Forced 468</a><br>
+&raquo;&nbsp;<a href="?content=/werbesystem/paidmail"><font color="#FF0000">Paidmails vers.</font></a><br>
+&raquo;&nbsp;<a href="?content=/werbesystem/paidmail_hist"><font color="#FF0000">Paidmail Hist.</font></a><br>
+<?menuefoot();?>
+
+<?menuehead("Interfacedaten")?>
+&raquo;&nbsp;<a href="?content=/interfacedaten/fuco-ads">FuCo-Ads</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/webmasterlose">Webmasterlose</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/lose-ads">Lose-Ads</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/losebox">Losebox</a><br>
+&raquo;&nbsp;<a href="?content=/interfacedaten/hp-lose">HP-Lose</a><br>
+<?menuefoot();?>
+
+<?menuehead("Interfacebanner")?>
+&raquo;&nbsp;<a href="?content=/interfacebanner/fuco-ads">FuCo-Ads</a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/webmasterlose">Webmasterlose</a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/lose-ads">Lose-Ads</a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/losebox">Losebox</a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/hp-lose">HP-Lose</a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/admin"><b>Adminbanner</b></a><br>
+&raquo;&nbsp;<a href="?content=/interfacebanner/blacklist"><b>Blacklist</b></a><br>
+<?menuefoot();?>
+
+
+
diff --git a/adminforce/moduladmin.php b/adminforce/moduladmin.php
new file mode 100644
index 0000000..acf53dd
--- /dev/null
+++ b/adminforce/moduladmin.php
@@ -0,0 +1,35 @@
+<?
+require ('../lib/functions.lib.php');
+db_connect ();
+require ('lib/layout.lib.php');
+
+// Extras-Erweiterung initalisieren und ausfuehren
+require ( '../lib/extras.lib.php' );
+?>
+<html>
+<head>
+<link rel="stylesheet" href="css/main.css" type="text/css">
+</head>
+<body topmargin="5" leftmargin="5">
+<noscript><div style="font: 10pt Arial; color: #ff0000; text-align: center;">Um <b>alle Funktionen des Adminforce</b> nutzen zu k&ouml;nnen, bitte <b>JavaScript aktivieren</b>!</div><br /><br /></noscript>
+<?
+$dir = '../module/';
+
+if (isset ($_GET['mod'])) {
+	if (is_dir ($dir.$_GET['mod'])) {
+		require ( '../lib/module.lib.php' );
+		define ('MODULADMIN_LOADED', TRUE);
+		if (file_exists ($dir.$_GET['mod'].'/admin.php')) require ($dir.$_GET['mod'].'/admin.php');
+		else $err = 'Die Moduladministrationsdatei wurde nicht gefunden.';
+	} else $err = 'Das angegebene Modul wurde nicht gefunden.';
+} else $err = 'Es wurde kein Modulname &uuml;bergeben.';
+
+if (isset ($err)) {
+	head ('Fehler');
+	echo 'Es ist ein Fehler auf unserer Seite aufgetreten:<br /><br />' . $err;
+	foot ();
+}
+?>
+</body>
+</html>
+<? db_close (); ?>
\ No newline at end of file
diff --git a/content/betteln.php b/content/betteln.php
new file mode 100644
index 0000000..151a552
--- /dev/null
+++ b/content/betteln.php
@@ -0,0 +1,54 @@
+<?
+$_GET['ref'] = (int)$_GET['ref'];
+
+
+if ($pageconfig['reload_betteln'] == 0){
+$betteltext = '<b>Die Bettelfunktion ist auf dieser Seite deaktiviert';
+}else{
+   if ($_SESSION['uid'] == $_GET['ref'] || $_GET['ref'] == $_COOKIE['uid']){
+   $betteltext = '<b><font color="#FF0000">Du kannst dich nicht selbst anbetteln!</font></b>';
+   }else{
+      $reloadcheck = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= ".time()." LIMIT 1");
+
+      if (!mysql_num_rows($reloadcheck)) {
+         $minimum		= $pageconfig['min_betteln'];
+         $maximum		= $pageconfig['max_betteln'];
+         srand((double)microtime()*1000000);
+         $bettelsumme	= rand($minimum*100,$maximum*100)/100;
+         $new_reload = time()+$pageconfig['reload_betteln'];
+         db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES ('".$ip."','".$_GET['ref']."','bettelaufruf','".$new_reload."')");
+         db_query("UPDATE ".$db_prefix."_kontodaten  SET angebettelt =angebettelt + 1, bv = bv + ".$bettelsumme.", kontostand = kontostand + '".$bettelsumme."' WHERE uid = '".$_GET['ref']."'");
+
+         refumsatz ($bettelsumme,$_GET['ref']);
+         aktivralley ($bettelsumme,$_GET['ref']);
+         bilanz(0,$bettelsumme);   
+         $betteltext = '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' '.$waehrung.' erbettelt!</b>';
+     } else {
+     $reloadcheck = mysql_fetch_array($reloadcheck);
+     $betteltext = '<b><font color="#FF0000">Du bist noch für '. round((($reloadcheck['bis'] - time())/60),0) .' Minuten fürs Betteln gesperrt</font></b>';
+     }
+   }
+}
+?>
+
+<?head("Betteln auf ".$seitenname);?>
+Verdiene auch Du mit!<br>
+Melde Dich bei <?=$seitenname;?> an und bewirbe Deinen persönlichen Bettellink, so
+verdienst Du deine <?=$waehrung;?> fast wie im Schlaf!<br>
+<br>
+<div align="center"><?=$betteltext;?></div>
+<?foot();?>
+
+<?
+$filename = 'lib/texte/bettelwerbung.txt';
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+
+if ($inhalt != ''){
+head("Werbung dieser Seite");
+echo nl2br($inhalt);
+foot();
+}
+?>
\ No newline at end of file
diff --git a/content/error/kein_ref.php b/content/error/kein_ref.php
new file mode 100644
index 0000000..1407cd8
--- /dev/null
+++ b/content/error/kein_ref.php
@@ -0,0 +1,6 @@
+<?head("Refdetails - Fehlermeldung!");?>
+Du vesuchst gerade Detaildaten eines Refusers aufzurufen der Dir nicht zugeordnet ist.
+Du kannst nur die Daten aus Deiner ersten Ebene sehen, alle anderen Daten bleiben Dir
+verwehrt.
+</ul>
+<?foot();?>
\ No newline at end of file
diff --git a/content/error/kein_zutritt.php b/content/error/kein_zutritt.php
new file mode 100644
index 0000000..73f5b5f
--- /dev/null
+++ b/content/error/kein_zutritt.php
@@ -0,0 +1,12 @@
+<?head("Zutritt verweigert");?>
+Der Zutritt zu diesem Bereich wurde Dir verweigert!<br>
+Bevor Du dich an den Support wendest, prüfe bitte erst die unten aufgezählten Möglichkeiten
+um so unnötige Supportanfragen zu vermeiden!<br>
+<ul>
+<b>Mögliche Gründe</b><br>
+<li>Du bist nicht eingeloggt (bitte erst einloggen)</li>
+<li>Die Kontonummer/Passwortkombination stimmt nicht (Loginfehler)</li>
+<li>Du hast deinen Account noch nicht freigeschaltet (bitte Email prüfen)</li>
+<li>Die Session ist abgelaufen (verwende doch den Autologin)</li>
+</ul>
+<?foot();?>
diff --git a/content/error/keine_seite.php b/content/error/keine_seite.php
new file mode 100644
index 0000000..92822aa
--- /dev/null
+++ b/content/error/keine_seite.php
@@ -0,0 +1,12 @@
+<?head("Seite nicht gefunden");?>
+Die von Dir angeforderte Seite ist nicht erreichbar.<br>
+Bitte wähle aus dem Menü einen gültigen Link, sollte weiterhin das Problem bestehen informiere
+bitte den Webmaster darüber.<br>
+<ul>
+<b>Mögliche Gründe</b><br>
+<li>Die Seite wurde aus Wartungsgründen entfernt</li>
+<li>Ein Link im Menü wurde falsch gesetzt</li>
+<li>Du hast eine falsche oder ungültige URL erhalten (extern)</li>
+</ul>
+<?foot();?>
+
diff --git a/content/error/user_gesperrt.php b/content/error/user_gesperrt.php
new file mode 100644
index 0000000..de50a3f
--- /dev/null
+++ b/content/error/user_gesperrt.php
@@ -0,0 +1,7 @@
+<?head("Account gesperrt");?>
+Bitte wende Dich an den Webmaster!<br>
+<br>
+<b>Dein Account wurde mit folgender Begründung gesperrt!</b><br>
+<?=nl2br($login_check['hinweis']);?>
+
+<?foot();?>
\ No newline at end of file
diff --git a/content/intern/agbs.php b/content/intern/agbs.php
new file mode 100644
index 0000000..cdc2227
--- /dev/null
+++ b/content/intern/agbs.php
@@ -0,0 +1,14 @@
+<?
+// Variabeln
+$filename = 'lib/texte/agb.txt';
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Allgemeine Geschäftsbedingungen");?>
+<?=nl2br($inhalt);?>
+<?foot();?>
\ No newline at end of file
diff --git a/content/intern/aktivieren.php b/content/intern/aktivieren.php
new file mode 100644
index 0000000..370e35a
--- /dev/null
+++ b/content/intern/aktivieren.php
@@ -0,0 +1,43 @@
+<?
+if (!isset($_GET['ak']))		$_GET['ak']			= "";
+$_GET['ak'] = addslashes ($_GET['ak']);
+
+$aktivierung = db_query('SELECT * FROM '.$db_prefix.'_aktivierungen WHERE ak = "'.$_GET['ak'].'" LIMIT 1');
+
+if (mysql_num_rows($aktivierung)) {
+$aktivieren = mysql_fetch_array($aktivierung);
+db_query("UPDATE ".$db_prefix."_kontodaten SET status = '1' WHERE uid = '".$aktivieren['uid']."' AND status = '0' LIMIT 1");
+db_query("DELETE FROM ".$db_prefix."_aktivierungen WHERE ak = '".$_GET['ak']."' LIMIT 1");
+?>
+
+<?head("$seitenname - Accountaktivierung!");?>
+Die Aktivierung Deines Accounts bei <?=$seitenname;?> war erfolgreich,
+Du kannst Dich nun bei uns  einloggen und unser Angebot in vollem Umfang nutzen.<br>
+<br>
+Solltest Du Fehler auf unserer Webseite finden dann sende uns bitte eine Email
+an <a href="mailto:<?=$betreibermail;?>" target="_blank"><?=$betreibermail;?></a><br>
+<br>
+Wir wünschen Dir nun viel Spaß und viele viele Funcoins!<br>
+<br>
+Mit freundlichen Grüßen<br>
+Das <?=$seitenname;?> Team<br>
+<?foot();?>
+
+<?
+} else {
+?>
+
+<?head("$seitenname - Accountaktivierung [Code falsch]!");?>
+Die Aktivierung Deines Accounts bei <?=$seitenname;?> ist fehlgeschlagen,
+bitte prüfe nochmals den Aktivierungslink oder vordere den Link neu an.<br>
+<br>
+Solltest Du Fehler auf unserer Webseite finden dann sende uns bitte eine Email
+an <a href="mailto:<?=$betreibermail;?>" target="_blank"><?=$betreibermail;?></a><br>
+<br>
+Mit freundlichen Grüßen<br>
+Das <?=$seitenname;?> Team<br>
+<?foot();?>
+
+<?
+}
+?>
diff --git a/content/intern/anmelden.php b/content/intern/anmelden.php
new file mode 100644
index 0000000..61439c4
--- /dev/null
+++ b/content/intern/anmelden.php
@@ -0,0 +1,188 @@
+<?
+// Variabel vordefinieren!
+if (!isset($_POST['anmelden']))		$_POST['anmelden']			= "";
+if (!isset($_POST['nickname']))		$_POST['nickname']			= "";
+if (!isset($_POST['nachname']))		$_POST['nachname']			= "";
+if (!isset($_POST['vorname']))		$_POST['vorname']			= "";
+if (!isset($_POST['emailadresse']))	$_POST['emailadresse']		= "";
+if (!isset($_POST['passwort_1']))	$_POST['passwort_1']		= "";
+if (!isset($_POST['passwort_2']))	$_POST['passwort_2']		= "";
+if (!isset($_POST['uid_passwort']))	$_POST['uid_passwort']		= "";
+if (!isset($_POST['uid']))			$_POST['uid']				= "";
+if (!isset($_POST['agb']))			$_POST['agb']				= "";
+if (!isset($_POST['newsletter']))	$_POST['newsletter']		= "1";
+if (!isset($_POST['paidmails']))	$_POST['paidmails']			= "1";
+if (!isset($error))					$error						= "";
+if (!isset($anmeldeok))				$anmeldeok					= "";
+if (!isset($ak))					$ak							= "";
+
+if ($_POST['anmelden'] == "Jetzt anmelden!") {
+
+	$_POST['nachname'] = addslashes ($_POST['nachname']);
+	$_POST['vorname'] = addslashes ($_POST['vorname']);
+
+
+	$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
+	$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
+	$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE zeit='".$tag."' and uid='0'"));
+	// Auf Eingabefehler prüfen
+	if(!$_POST['nachname'] || !$_POST['vorname'] || !$_POST['emailadresse'] || !$_POST['passwort_1'] || !$_POST['passwort_2'] || !$_POST['uid'] || !$_POST['uid_passwort'] || !$_POST['nickname']) $error .= 'Bitte fülle alle benötigten Felder aus!<br>';
+
+	// Pruefen, ob man sich mit der eMail-Domain anmelden darf
+	$denied = explode(';', $pageconfig['denied_domains']);
+	foreach ($denied AS $nr => $domain) if (($nr < (count ($denied)-2) || strlen ($domain) >= 5) && strpos ($_POST['emailadresse'], $domain) !== FALSE) $error .= 'E-Mail-Adressen mit der Domain "<i>'.$domain.'</i>" sind bei uns nicht erlaubt!<br>';
+
+	if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse'])) $error .= 'Der Emailsyntax ist falsch!<br>';
+	if ($_POST['passwort_1'] != $_POST['passwort_2']) $error .= 'Passwörter stimmen nicht überein!<br>';
+	if (strlen($_POST['passwort_1']) < 8) $error .= 'Passwortlänge muss min. 8 Zeichen haben<br>';
+	if (ereg("[^0-9]", $_POST['uid'])) $error .= 'Bei der Klamm Id nur Zahlen!<br>';
+	if ($_POST['agb'] != "ja") $error .= 'Du musst die AGBs bestädigen!<br>';
+	if ($_POST['uid'] == $_SESSION['werber']) $error .= 'Du kannst Dich nicht selber werben<br>';
+	if ($schnittstelle['anfragen_tag'] != 0 and $schnittstelle['anfragen_tag'] <= $s_verbrauch) $error = 'Die Schnittstellenanfragen sind für heute verbraucht!!!<br>';
+
+	// User mit der Datenbank abgleichen
+	if (!$error) {
+	$_POST['nickname'] = mysql_real_escape_string(ucfirst($_POST['nickname']));
+	$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$_POST['nickname']."'");
+	$user_check = db_query ("SELECT `uid` FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['uid']."'");
+	$mail_check	= db_query ("SELECT `emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse='".$_POST['emailadresse']."'");
+	$black_check= db_query ("SELECT * FROM ".$db_prefix."_userblacklist WHERE uid='".$_POST['uid']."' and zeit >='".time()."'");
+	$sperre = mysql_fetch_array($black_check);
+	if ($sperre['zeit'] != 99999999999) {
+	$sperrtext = 'Du bist für eine Neuanmeldung noch bis <b>'.date("d.m.Y - H:i:s",$sperre['zeit']).'</b> gesperrt!<br>';
+	} else {
+	$sperrtext = '<b><i>Du bist für diese Webseite komplett gesperrt!</i></b>';
+	}
+	if (mysql_num_rows($user_check)) $error .= 'Du bist bereits bei uns angemeldet!<br>';
+	if (mysql_num_rows($mail_check)) $error .= 'Diese Emailadresse ist schon im System!<br>';
+	if (mysql_num_rows($black_check)) $error = $sperrtext;
+	if (mysql_num_rows($nickname_check)) $error .='Der Nickname ist schon vergeben!<br>';
+	}
+
+	// User beim Betreiber prüfen
+	if (!$error) {
+	if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','0')");
+	@require_once ("lib/schittstellen/".$schnittstelle['schnittstelle'].".php");
+	@uservalidate ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_POST['uid'],$_POST['uid_passwort']);
+	if ($error) $error = $trans_ausgabe.'<br>';
+	}
+
+
+	// User eintragen
+	if (!$error) {
+	if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
+	if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
+	if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
+	if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
+	db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$_POST['uid']."','".md5($_POST['passwort_1'])."','0','','0')");
+	db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer) VALUES ('".$_POST['uid']."','".$_POST['emailadresse']."','".$mailstatus."')");
+	db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit) VALUES ('".$_POST['uid']."','".$_POST['nickname']."','".$_POST['vorname']."','".$_POST['nachname']."','".time()."')");
+	$ws = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE uid='".$_POST['uid']."'");
+	db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit) VALUES ('".$_POST['uid']."','".$_SESSION['werber']."','0','".time()."')");
+	$ak = md5($_POST['uid'].''.time());
+	db_query("INSERT INTO ".$db_prefix."_aktivierungen (uid,ak) VALUES ('".$_POST['uid']."','".$ak."')");
+	$email_message = 'Hallo, '.$_POST['nickname'].'
+	Du hast Dich soeben erfolgreich bei '.$seitenname.' angemeldet.
+
+	Bitte aktiviere jetzt Deinen Account, klicke dazu bitte auf den
+	Aktivierungslink: '.$domain.'/?content=/intern/aktivieren&ak='.$ak.'
+
+	----------------------------------------------------------
+	Kontonummer: '.$_POST['uid'].'
+	Passwort: '.$_POST['passwort_1'].'
+	----------------------------------------------------------
+
+	Nach der Aktivierung kannst Du dich sofort einloggen und bei
+	uns teilnehmen.
+
+	Mit freundlichen Grüßen
+	Das '.$seitenname.' Team
+	';
+	usermail($_POST['emailadresse'], "$seitenname Accountaktivierung", $email_message, '"'.$seitenname.'" <'.$betreibermail.'>');
+	$anmeldeok = "true";
+	}
+
+}
+
+if ($error){
+head("Anmeldefehler");
+echo '<font color="#cc0000">'.$error.'</font>';
+foot();
+}
+?>
+
+<? if ($anmeldeok != "true") { ?>
+<?head("$seitenname - Neuanmeldung");?>
+<center><b>Neuanmeldung</b></center>
+  <table width="100%" cellpadding="3" cellspacing="0" border="0">
+  <form action="" method="post">
+   <tr>
+    <td class="main"><b>Nickname:</b></td>
+    <td class="main"><input type="text" name="nickname" value="<?=$_POST['nickname'];?>"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Nachname:</b></td>
+    <td class="main"><input type="text" name="nachname" value="<?=$_POST['nachname'];?>"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Vorname:</b></td>
+    <td class="main"><input type="text" name="vorname" value="<?=$_POST['vorname'];?>"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Emailadresse:</b></td>
+    <td class="main"><input type="text" name="emailadresse" value="<?=$_POST['emailadresse'];?>"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Klamm Id:</b></td>
+    <td class="main"><input type="text" name="uid" value="<?=$_POST['uid'];?>"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Lose-Passwort zur Identifizierung:</b></td>
+    <td class="main"><input type="password" name="uid_passwort"></td>
+   </tr>
+   <tr>
+    <td class="main">Werber:</td>
+    <td class="main"><? if($_SESSION['werber'] == 0) {echo '<b>keinen</b>';} else {echo $_SESSION['werber'];}?></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Passwort:</b></td>
+    <td class="main"><input type="password" name="passwort_1"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Passwortbestätigung:</b></td>
+    <td class="main"><input type="password" name="passwort_2"></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Paidmails empfangen:</b></td>
+    <td class="main"><select name="paidmails"><option value="1" <? if ($_POST['paidmails'] == 1) { echo 'selected';}?>>Ja</option><option value="0" <? if ($_POST['paidmails'] != 1) { echo 'selected';}?>>Nein</option></select></td>
+   </tr>
+   <tr>
+    <td class="main"><b>Newsletter:</b></td>
+    <td class="main"><select name="newsletter"><option value="1" <? if ($_POST['newsletter'] == "1") { echo 'selected';}?>>Ja</option><option value="0" <? if ($_POST['newsletter'] != "1") { echo 'selected';}?>>Nein</option></select></td>
+   </tr>
+   <tr>
+    <td class="main"><b>AGB`s gelesen und akzeptiert:</b></td>
+    <td class="main"><select name="agb"><option value="ja" <? if ($_POST['agb'] == "ja") { echo 'selected';}?>>Ja</option><option value="nein" <? if ($_POST['agb'] != "ja") { echo 'selected';}?>>Nein</option></select></td>
+   </tr>
+   <tr>
+   <td class="main" align="center" colspan="2">
+   Vor dem Anmelden lese bitte die AGB`s!<br><br>
+   <input type="submit" name="anmelden" value="Jetzt anmelden!">
+   </td>
+   </tr>
+   </form>
+  </table>
+<?foot();?>
+<?} else {?>
+<?head("$seitenname - Anmeldung erfolgreich!");?>
+Deine Anmeldung bei <?=$seitenname;?> war erfolgreich, Du bekommst jetzt eine Email mit Deinen Daten und einen Aktivierungslink.
+Sobald Du deinen Account aktiviert hast kannst Du dich bei uns einloggen und diese Seite im vollen Umfang nutzen.<br>
+<br>
+Bitte beachte dass es auch etwas dauern kann bis die Aktivierungsmail bei Dir ankommt, dieses ist anhängig von Deinem Emailanbieter.<br>
+<br>
+Mit freundlichen Grüßen<br>
+Das <?=$seitenname;?> Team<br>
+
+<?foot();?>
+<? } ?>
+
diff --git a/content/intern/daten.php b/content/intern/daten.php
new file mode 100644
index 0000000..4cac64b
--- /dev/null
+++ b/content/intern/daten.php
@@ -0,0 +1,42 @@
+<?
+if (isset($_POST['anf_daten']) && isset($_POST['anf_email'])) {
+        $_POST['anf_email'] = addslashes ($_POST['anf_email']);
+
+	$daten_anfordern = mysql_fetch_array(db_query("SELECT `uid`,`emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse = '".$_POST['anf_email']."' LIMIT 1"));
+	if ($daten_anfordern['emailadresse']) {
+	$neues_passwort = create_code(8);
+	db_query ("UPDATE ".$db_prefix."_kontodaten SET passwort='".md5($neues_passwort)."' WHERE uid=".$daten_anfordern['uid']."");
+	$email_message = 'Hallo,
+	Du hast soeben die Zugangsdaten für '.$seitenname.' angefordert.
+
+	----------------------------------------------------------
+	Kontonummer: '.$daten_anfordern['uid'].'
+	Passwort: '.$neues_passwort.'
+	----------------------------------------------------------
+
+	Jetzt kannst Du dich wieder auf '.$domain.'
+	einloggen und das Passwort wieder ändern!
+
+	Mit freundlichen Grüßen
+	Das '.$seitenname.' Team
+	';
+	usermail ($daten_anfordern['emailadresse'], "$seitenname Passwort", $email_message, '"'.$seitenname.'" <'.$betreibermail.'>');
+	$error_msg = '<b>Passwort wurde zugesandt!</b><br>';
+	} else {
+	$error_msg = '<b>Emailadresse nicht bekannt!</b><br>';
+	}
+}
+?>
+<?head("Zugangsdaten anfordern");?>
+<p align="center"><font color="red">&nbsp;<?=$error_msg;?></font></p>
+
+Wenn Du deine Zugangsdaten mal verloren haben solltest oder diese einfach nur mal verlegt hast,
+kannst Du hier diese Daten wieder in Erfahrung bringen. Wir senden an Deine bei uns gespeicherte
+Emailadresse sofort die Daten zu.<br>
+<form action="" method="post">
+<div align="center">
+<b>Angemeldetet Email-Adresse: </b><input type="Text" name="anf_email">&nbsp;&nbsp;<input type="Submit" name="anf_daten" value="Anfordern!" style="width:120px;">
+</div>
+</form>
+<?foot();?>
+
diff --git a/content/intern/faqs.php b/content/intern/faqs.php
new file mode 100644
index 0000000..7fcc287
--- /dev/null
+++ b/content/intern/faqs.php
@@ -0,0 +1,14 @@
+<?
+// Variabeln
+$filename = 'lib/texte/faq.txt';
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+
+<?head("Fragen und Antworten");?>
+<?=nl2br($inhalt);?>
+<?foot();?>
\ No newline at end of file
diff --git a/content/intern/impressum.php b/content/intern/impressum.php
new file mode 100644
index 0000000..ddfc23b
--- /dev/null
+++ b/content/intern/impressum.php
@@ -0,0 +1,20 @@
+<?head("Impressum von ".$seitenname."");?>
+Daniel Roß<BR>
+Mittelweg 6<BR>
+56479 Niederroßbach<BR>
+DEUTSCHLAND<BR>
+<BR>
+<b>Betreiber:</b> gremlincomputer [~at~] gmx.de
+<?foot();?>
+
+<?head("Rechtlicher Hinweis");?>
+Alle verwendeten Fotos, Grafiken, Texte und sonstigen Bestandteile dieser Website unterliegen dem Copyright von <a href="<?=$domain;?>" target="_blank"><?=$seitenname;?></a> und sind Eigentum von <a href="<?=$domain;?>" target="_blank"><?=$seitenname;?></a>.<br>
+<br>
+Die private oder gewerbliche Verwendung von Inhalten jeglicher Art bedarf der vorherigen Zustimmung von <a href="<?=$domain;?>" target="_blank"><?=$seitenname;?></a>.<br>
+<br>
+Die Inhalte unserer Internetseiten werden sorgfältig geprüft. Eine Garantie für die Vollständigkeit, Richtigkeit und letzte Aktualität kann jedoch nicht übernommen werden.<br>
+<br>
+<a href="<?=$domain;?>" target="_blank"><?=$seitenname;?></a> ist für den Inhalt von Websites, auf die von unseren Seiten verlinkt wird, nicht verantwortlich. Der Verweis mittels Hyperlink stellt auch keine Empfehlung dieser Websites oder der sie betreibenden Unternehmen oder ihrer Produkte durch uns dar.<br>
+<br>
+Haftungsansprüche, die durch die Nutzung unseres Internetangebotes verursacht werden, sind ausgeschlossen, sofern wir nicht vorsätzlich oder grob fahrlässig gehandelt haben. Des weiteren behält sich <a href="<?=$domain;?>" target="_blank"><?=$seitenname;?></a> das Recht vor, Änderungen oder Ergänzungen der bereitgestellten Informationen vorzunehmen.<br>
+<?foot();?>
\ No newline at end of file
diff --git a/content/intern/mediadaten.php b/content/intern/mediadaten.php
new file mode 100644
index 0000000..f90c44d
--- /dev/null
+++ b/content/intern/mediadaten.php
@@ -0,0 +1,102 @@
+<?
+if (!isset($fc_gebucht))	$fc_gebucht	= '';
+if (!isset($fc_menge))		$fc_menge	= '';
+if (!isset($fc_wert))		$fc_wert	= '';
+if (!isset($in_fc_gebucht))	$in_fc_gebucht	= '';
+if (!isset($in_fc_menge))	$in_fc_menge	= '';
+if (!isset($in_fc_wert))	$in_fc_wert	= '';
+
+$kontostats	= mysql_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid , SUM(kontostand) AS kd_kontostand , SUM(klicks) AS kd_klicks , SUM(angebettelt) AS kd_angebettelt , SUM(kv) AS kd_kv , SUM(bv) AS kd_bv FROM ".$db_prefix."_kontodaten"));
+$werberdaten	= mysql_fetch_array(db_query("SELECT SUM(gesamt) AS wd_gesamt FROM ".$db_prefix."_werberdaten"));
+
+$ex_fc = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE menge >= 1 and werbeart = 'forcedbanner' and status = '1'");
+while ($count = mysql_fetch_array($ex_fc)) {
+$fc_gebucht++;
+$fc_menge = $fc_menge + $count['menge'];
+$fc_wert = $fc_wert + ($count['verdienst']*$count['menge']);
+}
+
+$heute			= strtotime("".date("m")."/".date("d")."/".date("Y").""); // Format mm.tt.yyyy
+$seitenstart	        = strtotime("04/02/2005"); // Format mm.tt.yyyy
+$tage			= ($heute - $seitenstart) / 86400;
+if ($tage <= 1) $tage = 1;
+?>
+
+<?head("Mediadaten - $seitenname");?>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td width="50%">Start dieser Seite</td>
+<td width="50%"><?=date("d.m.Y",$seitenstart);?></td>
+</tr>
+<tr>
+<td width="50%">Guthaben aller User</td>
+<td width="50%"><?=@number_format($kontostats['kd_kontostand'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+<tr>
+<td width="50%">Guthaben Ø pro User</td>
+<td width="50%"><?=@number_format($kontostats['kd_kontostand'] / $kontostats['kd_uid'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+<tr>
+<td width="50%">Angemeldete User</td>
+<td width="50%"><?=@number_format($kontostats['kd_uid'],0,",",".");?></td>
+</tr>
+<tr>
+<td width="50%">Anmeldungen pro Tag</td>
+<td width="50%"><?=@number_format($kontostats['kd_uid'] / $tage,2,",",".");?></td>
+</tr>
+</table>
+<?foot();?>
+
+<?head("Mediadaten - Diverses");?>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td width="50%">Forcedklicks aller User</td>
+<td width="50%"><?=@number_format($kontostats['kd_klicks'],0,",",".");?> Klicks</td>
+</tr>
+<tr>
+<td width="50%">Verdienst bei allen Forcedklicks</td>
+<td width="50%"><?=@number_format($kontostats['kd_kv'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+<tr>
+<td width="50%">Ø Verdienst pro Klick</td>
+<td width="50%"><?=@number_format($kontostats['kd_kv']/$kontostats['kd_klicks'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+</table>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td width="50%">Bettelaufrufe alle User</td>
+<td width="50%"><?=@number_format($kontostats['kd_angebettelt'],0,",",".");?> Aufrufe</td>
+</tr>
+<tr>
+<td width="50%">Verdienst bei allen Bettelaufrufen</td>
+<td width="50%"><?=@number_format($kontostats['kd_bv'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+<tr>
+<td width="50%">Ø Verdienst pro Aufruf</td>
+<td width="50%"><?=@number_format($kontostats['kd_bv']/$kontostats['kd_angebettelt'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+</table>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td width="50%">Refverdienste für alle Werber</td>
+<td width="50%"><?=@number_format($werberdaten['wd_gesamt'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+</table>
+<?foot();?>
+
+<?head("Mediadaten - Werbung");?>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td width="50%">Forcedklick Kampagnen</td>
+<td width="50%"><?=@number_format($fc_gebucht,0,",",".");?> Kampagnen</td>
+</tr>
+<tr>
+<td width="50%">Forcedklick Restklicks</td>
+<td width="50%"><?=@number_format($fc_menge,0,",",".");?> Klicks</td>
+</tr>
+<tr>
+<td width="50%">Forcedklicks Gesamtwert</td>
+<td width="50%"><?=@number_format($fc_wert,2,",",".");?> <?=$waehrung;?></td>
+</tr>
+</table>
+<?foot();?>
\ No newline at end of file
diff --git a/content/intern/startseite.php b/content/intern/startseite.php
new file mode 100644
index 0000000..5141a51
--- /dev/null
+++ b/content/intern/startseite.php
@@ -0,0 +1,42 @@
+<?head("Willkommen auf ".$seitenname);?>
+Hier werden sie mit Klammlose für das Surfen mit einer Surfbar bezahlt.
+Die Surfbar ist so klein das sie nicht störend wirkt und doch funktionell ist.
+Man bekommt Banner angezeigt die alle 45 Sekunden wechseln. Ergänzt wird die
+Surfbar durch Clickbanner und Paidmails durch die sie ihren Verdienst noch
+massiv steigern können<br>
+<br>
+Viel Spaß beim verdienen wünscht Vorname Nachname<br>
+<?foot();?>
+
+<?
+if ($_SESSION['login'] == 'true'){
+   $news = db_query("SELECT * FROM ".$db_prefix."_news ORDER BY id DESC LIMIT 1");
+   while ($nz = mysql_fetch_array($news)) {
+         head($nz['titel'].' vom '.date("d.m.Y - H:i:s",$nz['zeit']));
+         echo nl2br($nz['news']);
+         foot();
+   }
+}   
+?>
+
+<?head("Verdienst auf ganzer Linie !");?>
+Bei <?=$seitenname;?> verdienen sie für fast alles Klammlose. Sie können durch das
+surfen mit der Surfbar, Clickbanner, Paidmails, Werben neuer Mitglieder, etc...
+viele Klammlose erwirtschaften.
+<ul>
+<li><b>3 Ref-Ebenen:</b>
+Über 3-Refebenen verdienen Sie an ihren geworbenen Mitgliedern. Somit lohnt sich
+das werben neue Mitglieder. Allein durch das Ref-System können Sie viele Klammlose
+verdienen selbst wenn Sie selbst nichts als werben neuer Mitglieder machen.
+Die Ref-Ebenen: 8% / 3% / 1%<br>
+</li>
+<li><b>Clickbanner &amp; Paidmails:</b>
+Durch das klicken auf Clickbanner oder das bestätigen von Paidmails können Sie
+ihrer Verdienst weiter steigern<br>
+</li>
+<li><b>Bettelsystem:</b>
+Bringen sie andere User dazu ihren Bettelink zu klicken und erhöhen Sie sich
+so ihren Verdienst<br>
+</li>
+</ul>
+<?foot();?>
diff --git a/content/intern/werbemittel.php b/content/intern/werbemittel.php
new file mode 100644
index 0000000..a939302
--- /dev/null
+++ b/content/intern/werbemittel.php
@@ -0,0 +1,39 @@
+<?
+/*
+Weitere Werbemittel einfach in den Ordner /images/banner/ laden!
+Diese werden automatisch erkannt und aufgelistet!
+*/
+
+if ($_SESSION['uid'] >= 0) {?>
+<? head("Dein Werbelinks"); ?>
+<table>
+<tr><td align="right"><b>Dein Reflink:</b></td><td align="left">&nbsp;<a href="<?=$domain;?>/?ref=<?=$_SESSION['uid'];?>" target="_blank"><?=$domain;?>/?ref=<?=$_SESSION['uid'];?></a></td></tr>
+<tr><td align="right"><b>Reflink und Bettellink:</b></td><td align="left">&nbsp;<a href="<?=$domain;?>/?content=/betteln&amp;ref=<?=$_SESSION['uid'];?>" target="_blank"><?=$domain;?>/?content=/betteln&amp;ref=<?=$_SESSION['uid'];?></a></td></tr>
+</table>
+<? foot(); 
+
+   $url = $domain.'/?content=/betteln&amp;ref='.$_SESSION['uid'].'';
+}else{
+   $url = $domain;
+}
+
+?>
+
+<?head("".$seitenname." - Werbemittel");?>
+<div align="center">
+<?
+$open = opendir('./images/banner/');
+while ($banner = readdir($open)){
+  if ($banner != '..' && $banner != '.' && $banner != 'Thumbs.db'){
+  $size = getimagesize('images/banner/'.$banner);
+  $groesse = filesize('images/banner/'.$banner.'')/1024;
+   echo '
+   <b>'.$size[0].'x'.$size[1].' (~ '.round($groesse).' KB)</b><br>
+   <img src="images/banner/'.$banner.'" alt="'.$seitenname.'"><br>
+   <textarea style="width:468px; height:50px;">&lt;a href="'.$url.'" target="_blank"&gt;&lt;img src="'.$domain.'/images/banner/'.$banner.'" alt="'.$seitenname.'" border="0"&gt;&lt;/a&gt;</textarea><br><br>';
+  }
+}
+closedir($open);
+?>
+</div>
+<?foot();?>
\ No newline at end of file
diff --git a/content/konto/auszahlen.php b/content/konto/auszahlen.php
new file mode 100644
index 0000000..4ed8529
--- /dev/null
+++ b/content/konto/auszahlen.php
@@ -0,0 +1,79 @@
+<? userstatus();
+
+// Variabeln definieren
+if (!isset($_POST['auszahlen']))	$_POST['auszahlen']			= "";
+if (!isset($_POST['uid_passwort']))	$_POST['uid_passwort']		= "";
+if (!isset($_POST['trans_menge']))	$_POST['trans_menge']		= "";
+if (!isset($auszahlmeldung))		$auszahlmeldung				= "";
+
+$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
+$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Keine Schnittstellendaten!");
+
+if ($schnittstelle['anfragen_user'] != 0){
+$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE uid='".$_SESSION['uid']."' and zeit='".$tag."'"));
+}
+
+$kontodaten	= mysql_fetch_array(db_query("SELECT `kontostand` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
+
+if ($_POST['auszahlen'] == 'Auszahlen' && $_POST['uid_passwort'] && $_POST['trans_menge']) {
+	if (!ereg("[^0-9]", $_POST['trans_menge']) and $_POST['trans_menge']  >= $schnittstelle['auszahlsumme']) {
+		if ($_POST['trans_menge'] <= $kontodaten['kontostand']) {
+			if ($schnittstelle['anfragen_user'] == 0 or $s_verbrauch < $schnittstelle['anfragen_user']) {
+				$buchungs_id = create_code(14);
+				@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
+				@auszahlen ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['uid_passwort'],$schnittstelle['betreiber_kennung'],$_POST['trans_menge'],$schnittstelle['auszahltext'],'');
+				if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','".$_SESSION['uid']."')");
+					if ($error) {
+					$auszahlmeldung = $trans_ausgabe;
+					} else {
+					kontobuchung ('-',$_POST['trans_menge'],$_SESSION['uid']);
+					buchungsliste ($buchungs_id,'-'.$_POST['trans_menge'],$schnittstelle['auszahltext'],$_SESSION['uid']);
+					$auszahlmeldung = 'Es wurden '.$_POST['trans_menge'].' '.$waehrung.' ausgezahlt';
+					}
+			} else {
+			$auszahlmeldung = 'Deine Schnittstellenanfragen sind verbraucht!!!';
+			}
+		} else {
+		$auszahlmeldung = 'Soviel Guthaben hast Du nicht!!!';
+		}
+	} else {
+	$auszahlmeldung = 'Bitte achte auch die Buchungsmenge!!!';
+	}
+} else {
+if ($_POST['auszahlen'] == 'Auszahlen') $auszahlmeldung = 'Eingabefehler, bitte wiederholen!!!';
+}
+
+?>
+<?head($waehrung." auszahlen");?>
+Hier kannst Du deine <?=$waehrung;?> wieder auszahlen, auch bei der Auszahlung wird das Lose-Passwort benötigt um
+festzustellen ob Du nicht gesperrt bist.<br>
+<br>
+Hinweis: Wenn Du mal nicht auszahlen kannst weil es heisst das der Betreiber nicht genug Klammlose hat, dann erschrecke
+bitte nicht gleich. Zur Sicherheit des Userguthabens haben wir nur ca. 20% des Userguthabens offen liegen und der Rest
+ist im Tresor. Schreibe einfache eine Email, wenn wir es mal vergessen haben sollten genug umzubuchen.<br>
+<br>
+<i><font color="#FF0000">* Das Lose-Passwort wird nicht gespeichert, es dient nur zur Indentifizierung!</font></i>
+<?foot();?>
+
+<?head("Auszahlen");?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Kontonummer</td><td align="left"><?=$_SESSION['uid'];?></td>
+</tr>
+<tr>
+<td align="left">Aktueller Kontostand</td><td align="left"><?=number_format($kontodaten['kontostand'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left"><?=$waehrung;?> (min. <?=$schnittstelle['auszahlsumme'];?> <?=$waehrung;?>)</td><td align="left"><input type="Text" name="trans_menge" value=""></td>
+</tr>
+<tr>
+<td align="left">Lose-Passwort *</td><td align="left"><input type="Password" name="uid_passwort" value=""></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="auszahlen" value="Auszahlen"></td>
+</tr>
+</table>
+</form>
+<?if ($auszahlmeldung) echo '<div align="center"><font color="#800000">'.$auszahlmeldung.'</font></div>';?>
+<?foot();?>
diff --git a/content/konto/buchungen.php b/content/konto/buchungen.php
new file mode 100644
index 0000000..464678a
--- /dev/null
+++ b/content/konto/buchungen.php
@@ -0,0 +1,34 @@
+<? userstatus();?>
+
+<?head('Buchungsübersicht (max. 50 Buchungen)');?>
+<table border="0" width="100%" cellpadding="1" cellspacing="1" bgcolor="#000000">
+<tr class="tr_head">
+<td align="center"><b>Zeit</b></td>
+<td align="center"><b>Buchung</b></td>
+<td align="center"><b><?=$waehrung;?></b></td>
+<td align="center"><b>Verwendungszweck</b></td>
+</tr>
+<?
+$buchungen_lesen = db_query("SELECT * FROM ".$db_prefix."_buchungen WHERE uid=".$_SESSION['uid']." ORDER BY buchungszeit DESC LIMIT 50");
+while ($buchung_schreiben = mysql_fetch_array($buchungen_lesen)) {
+$i++;
+$buchcolor = '#000000';
+if ($buchung_schreiben['buchungsmenge'] < 0) $buchcolor='#cc0000';
+
+if ($i % 2 == 0){
+   $row = 0;
+} else {
+   $row = 1;
+}   
+?>
+<tr class="tr_row<?=$row;?>">
+<td align="left">&nbsp;<?=date("d.m.Y - H:i",$buchung_schreiben['buchungszeit']);?>&nbsp;</td>
+<td align="center">&nbsp;<?=$buchung_schreiben['buchungs_id'];?></td>
+<td align="right">&nbsp;<font color="<?=$buchcolor;?>"><?=number_format($buchung_schreiben['buchungsmenge'],2,",",".");?></font>&nbsp;</td>
+<td align="left">&nbsp;<?=$buchung_schreiben['verwendungszweck'];?></td>
+</tr>
+<?
+}
+?>
+</table>
+<?foot();?>
\ No newline at end of file
diff --git a/content/konto/einzahlen.php b/content/konto/einzahlen.php
new file mode 100644
index 0000000..89f7ab4
--- /dev/null
+++ b/content/konto/einzahlen.php
@@ -0,0 +1,71 @@
+<? userstatus();
+
+// Variabeln definieren
+if (!isset($_POST['einzahlen']))	$_POST['einzahlen']			= "";
+if (!isset($_POST['uid_passwort']))	$_POST['uid_passwort']		= "";
+if (!isset($_POST['trans_menge']))	$_POST['trans_menge']		= "";
+if (!isset($einzahlmeldung))		$einzahlmeldung				= "";
+
+$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
+$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
+
+if ($schnittstelle['anfragen_user'] != 0){
+$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE uid='".$_SESSION['uid']."' and zeit='".$tag."'"));
+}
+
+$kontodaten	= mysql_fetch_array(db_query("SELECT `kontostand` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
+if ($_POST['einzahlen'] == 'Einzahlen' && $_POST['uid_passwort'] && $_POST['trans_menge']) {
+	$einzahlgrenze = mysql_fetch_array(db_query("SELECT `einzahlgrenze` FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
+	if (!ereg("[^0-9]", $_POST['trans_menge']) and $_POST['trans_menge'] >= $schnittstelle['einzahlsumme'] and ($kontodaten['kontostand']+$_POST['trans_menge']) <= $einzahlgrenze['einzahlgrenze']) {
+		if ($schnittstelle['anfragen_user'] == 0 or $s_verbrauch < $schnittstelle['anfragen_user']) {
+			$buchungs_id = create_code(14);
+			@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
+			@einzahlen ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['uid_passwort'],$schnittstelle['betreiber_kennung'],$_POST['trans_menge'],$schnittstelle['einzahltext'],'');
+			if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','".$_SESSION['uid']."')");
+				if ($error) {
+				$einzahlmeldung = $trans_ausgabe;
+				} else {
+				kontobuchung ('+',$_POST['trans_menge'],$_SESSION['uid']);
+				buchungsliste ($buchungs_id,$_POST['trans_menge'],$schnittstelle['einzahltext'],$_SESSION['uid']);
+				$einzahlmeldung = 'Es wurden '.$_POST['trans_menge'].' '.$waehrung.' eingezahlt';
+				}
+			} else {
+			$einzahlmeldung = 'Deine Schnittstellenanfragen sind verbraucht!!!';
+			}
+	} else {
+	$einzahlmeldung = 'Bitte achte auch die Buchungsmenge!!!';
+	}
+} else {
+if ($_POST['einzahlen'] == 'Einzahlen') $einzahlmeldung = 'Eingabefehler, bitte wiederholen!!!';
+}
+
+?>
+<?head($waehrung." einzahlen");?>
+Hier kannst Du Klammlose zu uns transferieren, die Lose werden Dir dann bei uns auf Dein Konto gutgeschrieben,
+nach der Einzahlung kannst Du Dein Guthaben nutzen.<br>
+<br>
+<i><font color="#FF0000">* Das Lose-Passwort wird nicht gespeichert, es dient nur zur Indentifizierung!</font></i>
+<?foot();?>
+
+<? head("Einazhlen"); ?>
+<form action="" method="post">
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+<tr>
+<td align="left" width="55%">Kontonummer</td><td align="left"><?=$_SESSION['uid'];?></td>
+</tr>
+<tr>
+<td align="left">Aktueller Kontostand</td><td align="left"><?=number_format($kontodaten['kontostand'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left"><?=$waehrung;?> (min. <?=$schnittstelle['einzahlsumme'];?> <?=$waehrung;?>)</td><td align="left"><input type="Text" name="trans_menge" value=""></td>
+</tr>
+<tr>
+<td align="left">Lose-Passwort *</td><td align="left"><input type="Password" name="uid_passwort" value=""></td>
+</tr>
+<tr>
+<td align="center" colspan="2"><input type="Submit" name="einzahlen" value="Einzahlen"></td>
+</tr>
+</table>
+</form>
+<?if ($einzahlmeldung) echo '<div align="center"><font color="#800000">'.$einzahlmeldung.'</font></div>';?>
+<?foot();?>
diff --git a/content/konto/refdetails.php b/content/konto/refdetails.php
new file mode 100644
index 0000000..fee7652
--- /dev/null
+++ b/content/konto/refdetails.php
@@ -0,0 +1,107 @@
+<?
+userstatus();
+// Variabeln definieren
+if (!isset($_POST['refback']))	        $_POST['refback']	= "";
+if (!isset($_POST['save']))		$_POST['save']	        = "";
+if (!isset($_GET['ruid']))		$_GET['ruid']	        = "";
+if (!isset($_GET['reset']))		$_GET['reset']	        = "";
+$ebene2 = 0;
+$ebene3 = 0;
+$_GET['ruid'] = (int)$_GET['ruid'];
+
+if ($_GET['reset'] == 'true') {
+db_query("UPDATE ".$db_prefix."_werberdaten SET 
+                 resetzeit = '".time()."', 
+                 reset = 0 
+WHERE uid='".$_GET['ruid']."' and werber='".$_SESSION['uid']."' LIMIT 1");
+}
+
+if ($_POST['save'] == 'Save' && $_POST['refback'] >= 0 && $_POST['refback'] <= 100 && !ereg("[^0-9]", $_POST['refback'])) {
+db_query("UPDATE ".$db_prefix."_werberdaten SET 
+                 refback = '".$_POST['refback']."' 
+WHERE uid='".$_GET['ruid']."' and werber='".$_SESSION['uid']."' LIMIT 1");
+}
+
+
+$ref_check = db_query("SELECT w.uid,w.umsatz,w.reset,w.resetzeit,w.gesamt,w.refback,w.aktivzeit,w.zuordnungszeit,k.loginzeit,u.nickname FROM 
+                              ".$db_prefix."_werberdaten w
+                              LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid = w.uid
+                              LEFT JOIN ".$db_prefix."_userdaten u ON u.uid = k.uid 
+WHERE w.uid=".$_GET['ruid']." and w.werber=".$_SESSION['uid']." LIMIT 1");
+
+if (!mysql_num_rows($ref_check)) {
+@include_once('content/error/kein_ref.php');
+@include_once('lib/footer.php');
+die();
+}
+
+$refuser = mysql_fetch_assoc($ref_check);
+
+if ($refuser['aktivzeit'] >= (time()-(86400*7))) $refstatus = '<img src="./images/gruen.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$refuser['aktivzeit']).'" align="absmiddle"> &raquo; User ist aktiv';
+if ($refuser['aktivzeit'] < (time()-(86400*7))) $refstatus = '<img src="./images/gelb.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$refuser['aktivzeit']).'" align="absmiddle"> &raquo; User seit 7 tagen inaktiv';
+if ($refuser['aktivzeit'] <= (time()-(86400*30))) $refstatus = '<img src="./images/rot.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$refuser['aktivzeit']).'" align="absmiddle"> &raquo; User seit 30 tagen inaktiv';
+
+
+$refebene_1 = db_query ("SELECT uid FROM ".$db_prefix."_werberdaten WHERE werber='".$_GET['ruid']."'");
+while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
+$ebene2++;
+}
+
+if ($ebene2 > 0){
+   $refebene_1 = db_query ("SELECT uid FROM ".$db_prefix."_werberdaten WHERE werber='".$_GET['ruid']."'");
+   while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
+   	$refebene_2 = db_query ("SELECT * FROM ".$db_prefix."_werberdaten WHERE werber='".$anzeigen_1['uid']."' ORDER BY uid ASC");
+	while ($anzeigen_2 = mysql_fetch_array($refebene_2)) {
+	$ebene3++;
+	}
+   }
+}
+?>
+
+<?head("Refdeteils von ".$refuser['nickname']);?>
+<table width="100%" cellpadding="2" cellspacing="2" border="0">
+<tr>
+<td width="50%"><b>User</b></td><td><?=$refuser['nickname'];?></td>
+</tr>
+<tr>
+<td><b>Aktueller Verdienst</b></td><td><?=number_format($refuser['umsatz']/$pageconfig['re1'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+
+<?if($refuser['resetzeit'] > 0){?>
+<tr>
+<td><b>Verdienst seit Reset</b></td><td><?=number_format($refuser['reset'],2,",",".");?> <?=$waehrung;?>&nbsp;&nbsp;&raquo;&nbsp;<a href="?content=/konto/refdetails&ruid=<?=$refuser['uid'];?>&reset=true" target="_self">Reset</a>&nbsp;&laquo;</td>
+</tr>
+<tr>
+<td><b>Letzer Reset</b></td><td><?=date("d.m.Y - H:i:s",$refuser['resetzeit']);?></td>
+</tr>
+<?}?>
+
+<tr>
+<td><b>Gesamtverdienst</b></td><td><?=number_format($refuser['gesamt'],2,",",".");?> <?=$waehrung;?></td>
+</tr>
+<tr>
+<td><b>Refback in Prozent</b></td><form action="?content=/konto/refdetails&ruid=<?=$refuser['uid'];?>" method="post"><td><input type="Text" name="refback" value="<?=$refuser['refback'];?>" maxlength="3" style="width:30px">&nbsp;<input type="Submit" name="save" value="Save" style="width:60px"></td></form>
+</tr>
+<tr>
+<td><b>Refs in Ebene 2</b></td><td><?=number_format($ebene2,0,",",".");?></td>
+</tr>
+<tr>
+<tr>
+<td><b>Refs in Ebene 3</b></td><td><?=number_format($ebene3,0,",",".");?></td>
+</tr>
+<tr>
+<td><b>Status</b></td><td><?=$refstatus;?></td>
+</tr>
+<tr>
+<td><b>Refzuordnung am</b></td><td><?if ($refuser['zuordnungszeit'] >= 1) {echo date("d.m.Y - H:i:s",$refuser['zuordnungszeit']);} else {echo'<i>Durch Admin zugewiesen!</i>';}?></td>
+</tr>
+
+<tr>
+<td><b>Letzter Login</b></td><td><?if ($refuser['loginzeit'] >= 1) {echo date("d.m.Y - H:i:s",$refuser['loginzeit']);} else {echo'<i>User war noch nie eingeloggt!</i>';}?></td>
+</tr>
+
+<tr>
+<td><b>Letzte Aktivität</b></td><td><?if ($refuser['aktivzeit'] >= 1) {echo date("d.m.Y - H:i:s",$refuser['aktivzeit']);} else {echo'<i><font color="#800000">User war noch nie aktiv!</font></i>';}?></td>
+</tr>
+</table>
+<?foot();?>
diff --git a/content/konto/refuebersicht.php b/content/konto/refuebersicht.php
new file mode 100644
index 0000000..4af43ca
--- /dev/null
+++ b/content/konto/refuebersicht.php
@@ -0,0 +1,136 @@
+<? userstatus(); 
+
+$ebene_1 = false;
+$ebene_2 = false;
+$ebene_3 = false;
+
+$ebene1 = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE werber=".$_SESSION['uid']." ORDER BY uid ASC");
+if (mysql_num_rows($ebene1)){
+   while ($user1 = mysql_fetch_assoc($ebene1)){
+   $ebene_1 = true;
+   $count++;
+   if ($count % 2 == 0){$row = 0;}else{$row = 1;}
+   
+    if ($user1['aktivzeit'] >= (time()-(86400*7))) $refstatus = '<img src="./images/gruen.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user1['aktivzeit']).'">';
+    if ($user1['aktivzeit'] < (time()-(86400*7))) $refstatus = '<img src="./images/gelb.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user1['aktivzeit']).'">';
+    if ($user1['aktivzeit'] <= (time()-(86400*30))) $refstatus = '<img src="./images/rot.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user1['aktivzeit']).'">';
+
+    $anz .= '
+    <tr class="tr_row'.$row.'">
+        <td align="center"><a href="?content=/nickpage&amp;uid='.$user1['uid'].'">'.$user1['uid'].'</a></td>
+        <td align="center">'.number_format($user1['umsatz']/100*$pageconfig['re1'],2,",",".").'</td>
+        <td align="center">'.number_format($user1['gesamt'],2,",",".").'</td>
+        <td align="center">'.$user1['refback'].'%</td>
+        <td align="center"><a href="?content=/konto/refdetails&amp;ruid='.$user1['uid'].'" target="_self">'.$refstatus.'</a></td>
+    </tr>    
+    ';
+      $ebene2 = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE werber=".$user1['uid']." ORDER BY uid ASC");
+      while ($user2 = mysql_fetch_assoc($ebene2)){
+      $ebene_2 = true;
+      $count++;
+      if ($count % 2 == 0){$row = 0;}else{$row = 1;}
+      
+      if ($user2['aktivzeit'] >= (time()-(86400*7))) $refstatus = '<img src="./images/gruen.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user2['aktivzeit']).'">';
+      if ($user2['aktivzeit'] < (time()-(86400*7))) $refstatus = '<img src="./images/gelb.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user2['aktivzeit']).'">';
+      if ($user2['aktivzeit'] <= (time()-(86400*30))) $refstatus = '<img src="./images/rot.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user2['aktivzeit']).'">';
+
+      $anz2 .= '
+      <tr class="tr_row'.$row.'">
+        <td align="center"><a href="?content=/nickpage&amp;uid='.$user2['uid'].'">'.$user2['uid'].'</a></td>
+        <td align="center">'.$user1['werber'].'</td>
+        <td align="center">'.number_format($user2['umsatz']/100*$pageconfig['re2'],2,",",".").'</td>
+        <td align="center">'.number_format($user2['gesamt'],2,",",".").'</td>
+        <td align="center">'.$refstatus.'</td>
+      </tr>    
+      ';
+      
+        $ebene3 = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE werber=".$user2['uid']." ORDER BY uid ASC");
+        while ($user3 = mysql_fetch_assoc($ebene3)){
+        $ebene_3 = true;
+        $count++;
+        if ($count % 2 == 0){$row = 0;}else{$row = 1;}
+        
+         if ($user3['aktivzeit'] >= (time()-(86400*7))) $refstatus = '<img src="./images/gruen.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user3['aktivzeit']).'">';
+         if ($user3['aktivzeit'] < (time()-(86400*7))) $refstatus = '<img src="./images/gelb.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user3['aktivzeit']).'">';
+         if ($user3['aktivzeit'] <= (time()-(86400*30))) $refstatus = '<img src="./images/rot.gif" width="15" height="15" border="0" alt="'.date("d.m.y - H:i",$user3['aktivzeit']).'">';
+
+         $anz3 .= '
+         <tr class="tr_row'.$row.'">
+            <td align="center"><a href="?content=/nickpage&amp;uid='.$user3['uid'].'">'.$user3['uid'].'</a></td>
+            <td align="center">'.$user1['werber'].'</td>
+            <td align="center">'.number_format($user3['umsatz']/100*$pageconfig['re3'],2,",",".").'</td>
+            <td align="center">'.number_format($user3['gesamt'],2,",",".").'</td>
+            <td align="center">'.$refstatus.'</td>
+         </tr>    
+               ';
+        
+        }    
+      }
+      
+   }
+
+}
+?>
+
+<?
+if($ebene_1 == true){
+head("Refübersicht (Ebene 1)");?>
+<table width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000">
+<tr class="tr_head">
+<td align="center" width="20%"><b>User</b></td>
+<td align="center" width="25%"><b>Aktuell</b></td>
+<td align="center" width="25%"><b>Gesamt</b></td>
+<td align="center" width="20%"><b>Refback</b></td>
+<td align="center" width="10%"><b>Status</b></td>
+</tr>
+<?=$anz;?>
+</table>
+<?foot();
+}else{
+head("Keine Refs");
+echo "Keine Refs in Ebene 1";
+foot();
+}
+?>
+
+<?
+if ($ebene_2 == true){
+head("Refübersicht (Ebene 2)");?>
+<table width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000">
+<tr class="tr_head">
+<td align="center" width="20%"><b>User</b></td>
+<td align="center" width="20%"><b>Werber</b></td>
+<td align="center" width="25%"><b>Aktuell</b></td>
+<td align="center" width="25%"><b>Gesamt</b></td>
+<td align="center" width="10%"><b>Status</b></td>
+</tr>
+<?=$anz2;?>
+</table>
+<?foot();
+}else{
+head("Keine Refs");
+echo "Keine Refs in Ebene 2";
+foot();
+}
+?>
+
+<?
+if ($ebene_3 == true){
+head("Refübersicht (Ebene 3)");?>
+<table width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000">
+<tr class="tr_head">
+<td align="center" width="20%"><b>User</b></td>
+<td align="center" width="20%"><b>Werber</b></td>
+<td align="center" width="25%"><b>Aktuell</b></td>
+<td align="center" width="25%"><b>Gesamt</b></td>
+<td align="center" width="10%"><b>Status</b></td>
+</tr>
+<?$anz3;?>
+</table>
+<?foot();
+}else{
+head("Keine Refs");
+echo "Keine Refs in Ebene 3";
+foot();
+}
+?>
\ No newline at end of file
diff --git a/content/konto/uebersicht.php b/content/konto/uebersicht.php
new file mode 100644
index 0000000..3799fed
--- /dev/null
+++ b/content/konto/uebersicht.php
@@ -0,0 +1,65 @@
+<? userstatus();
+$sql = db_query("SELECT u.nickname,u.vorname,u.nachname,u.angemeldet_seit,w.werber,w.umsatz,w.gesamt,w.refback,k.kontostand,k.klicks,k.kv,k.angebettelt,k.bv FROM
+                        ".$db_prefix."_kontodaten k
+                        LEFT JOIN ".$db_prefix."_userdaten u ON u.uid = k.uid
+                        LEFT JOIN ".$db_prefix."_werberdaten w ON w.uid = k.uid
+WHERE k.uid=".$_SESSION['uid']." LIMIT 1");
+
+$kontoinfo = mysql_fetch_array($sql);
+
+
+if ($kontoinfo['werber'] == 0) $kontoinfo['werber'] = '<i>Kein Werber</i>';
+?>
+<?head("Kontoübersicht von ".$kontoinfo['vorname']." ".$kontoinfo['nachname']);?>
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td align="left" width="55%">Nickname:</td><td align="left"><?=$kontoinfo['nickname'];?></td>
+</tr>
+<tr>
+<td align="left" width="55%">Kontonummer</td><td align="left"><?=$_SESSION['uid'];?></td>
+</tr>
+<tr>
+<td align="left">Konto eröffnet am</td><td align="left"><?=date("d.m.Y - H:i",$kontoinfo['angemeldet_seit']);?></td>
+</tr>
+<tr>
+<td align="left">Aktueller Kontostand</td><td align="left"><?=number_format($kontoinfo['kontostand'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left">Dein Werber (Refback %)</td><td align="left"><?=$kontoinfo['werber'];?> (<?=$kontoinfo['refback'];?> %)</td>
+</tr>
+<tr>
+<td align="left">Aktueller Verdienst</td><td align="left"><?=number_format($kontoinfo['umsatz'] / 100 * $pageconfig['re1'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left">Gesamt für den Werber</td><td align="left"><?=number_format($kontoinfo['gesamt'],2,",",".").' '.$waehrung;?></td>
+</tr>
+</table>
+<?foot();?>
+
+<?head("Diverse Einnahmen");?>
+<hr size="1" width="100%" color="#800000">
+<table width="100%" border="0" cellpadding="1" cellspacing="1">
+<tr>
+<td align="left" width="55%">Forcedklicks seit Anmeldung</td><td align="left"><?=number_format($kontoinfo['klicks'],0,",",".");?></td>
+</tr>
+<tr>
+<td align="left">Gesamtverdienst bei Forcedklicks</td><td align="left"><?=number_format($kontoinfo['kv'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left">Ø Verdienst pro Forcedklick</td><td align="left"><?=number_format((($kontoinfo['klicks'] > 0 && $kontoinfo['kv'] > 0) ? $kontoinfo['kv']/$kontoinfo['klicks'] : 0),2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td colspan="2" width="100%%"><hr size="1" width="100%" color="#800000"></td>
+</tr>
+<tr>
+<td align="left" width="55%">Bettelaufrufe seit Anmeldung</td><td align="left"><?=number_format($kontoinfo['angebettelt'],0,",",".");?></td>
+</tr>
+<tr>
+<td align="left">Gesamtverdienst bei Bettelaufrufe</td><td align="left"><?=number_format($kontoinfo['bv'],2,",",".").' '.$waehrung;?></td>
+</tr>
+<tr>
+<td align="left">Ø Verdienst pro Bettelaufruf</td><td align="left"><?=number_format((($kontoinfo['angebettelt'] > 0 && $kontoinfo['bv'] > 0) ? $kontoinfo['bv']/$kontoinfo['angebettelt'] : 0),2,",",".").' '.$waehrung;?></td>
+</tr>
+</table>
+<?foot();?>
+
diff --git a/content/konto/userprofil.php b/content/konto/userprofil.php
new file mode 100644
index 0000000..7b2b955
--- /dev/null
+++ b/content/konto/userprofil.php
@@ -0,0 +1,193 @@
+<?
+userstatus();
+// Variabeln definieren
+if (!isset($_POST['aendern']))		$_POST['aendern']			= "";
+if (!isset($_POST['acc_del']))		$_POST['acc_del']			= "";
+if (!isset($_POST['del_passwort']))	$_POST['del_passwort']		= "";
+if (!isset($_POST['pwd']))			$_POST['pwd']				= "";
+if (!isset($_POST['pwd2']))			$_POST['pwd2']				= "";
+if (!isset($_POST['nickname']))		$_POST['nickname']			= "";
+if (!isset($_POST['newsletter']))	$_POST['newsletter']		= "";
+if (!isset($_POST['paidmails']))	$_POST['paidmails']			= "";
+if (!isset($change))				$change						= "";
+if (!isset($mailstatus))			$mailstatus					= "";
+if (!isset($delchange))				$delchange					= "";
+
+if ($_POST['acc_del'] == 'Jetzt löschen!' && $_POST['del_passwort']) {
+	$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
+	@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
+	@uservalidate ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['del_passwort']);
+	if ($error) {
+	$delchange = $trans_ausgabe.'<br>';
+	} else {
+	$sperrzeit = time()+(86400*30);
+	db_query("INSERT INTO ".$db_prefix."_userblacklist (uid,zeit) VALUES ('".$_SESSION['uid']."','".$sperrzeit."')");
+	db_query("DELETE FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']."");
+	db_query("DELETE FROM ".$db_prefix."_emaildaten WHERE uid=".$_SESSION['uid']."");
+	db_query("DELETE FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']."");
+	db_query("DELETE FROM ".$db_prefix."_werberdaten WHERE uid=".$_SESSION['uid']."");
+	db_query("UPDATE ".$db_prefix."_werberdaten SET werber = 0 WHERE werber=".$_SESSION['uid']."");
+	echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
+	}
+
+}
+
+if ($_POST['aendern'] == 'Jetzt ändern!') {
+	// Passwort ändern beginn!
+	if ($_POST['pwd'] && $_POST['pwd2']) {
+		if ($_POST['pwd'] == $_POST['pwd2']) {
+			if (strlen($_POST['pwd']) >= 8) {
+			db_query("UPDATE ".$db_prefix."_kontodaten SET passwort = '".md5($_POST['pwd'])."' WHERE uid=".$_SESSION['uid']."");
+			echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
+			//$change .= 'Das Passwort wurde geändert!<br><b><font color="#FF0000">Bitte logge Dich jetzt aus und wieder neu ein!</font></b><br>';
+			} else {
+			$change = 'Passwörter müssen min. 8 Zeichen haben!';
+			}
+		} else {
+		$change = 'Die Passwörter stimmen nicht überein!';
+		}
+	}
+	// Passwort ändern ende!
+
+	//Nickname ändern beginn !
+if ($_POST['aendern'] == 'Jetzt ändern!') 
+	{
+	if (isset ($_POST['nickname'])) {
+	$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
+	$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
+	$nickname_check2 =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'AND uid=".$_SESSION['uid']."");
+		if (mysql_num_rows($nickname_check)) 
+			if (mysql_num_rows($nickname_check2)) {
+			    
+			}else{
+			$change = 'Dieser Nickname ist schon vergeben!<br>';
+			}
+		else
+			{
+		db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
+			}
+	    }
+	}
+	
+	if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse']))
+	{
+		$change .= 'Der Emailsyntax ist falsch!<br>';
+	}
+	else
+	{
+		if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
+		if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
+		if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
+		if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
+$_POST['max_forced'] = (int)$_POST['max_forced'];
+		db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."' WHERE uid=".$_SESSION['uid']."");
+		db_query("UPDATE ".$db_prefix."_userdaten SET max_forced = '".$_POST['max_forced']."' WHERE uid=".$_SESSION['uid']."");
+		$change .= 'Deine Daten wurden aktualisiert!<br>';
+	}
+
+}
+
+
+$info = mysql_fetch_array(db_query("SELECT u.*,e.emailadresse,e.freigabe_fuer FROM
+                                           ".$db_prefix."_userdaten AS u
+                                           LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid
+WHERE u.uid=".$_SESSION['uid']." LIMIT 1"));
+
+
+if ($info['freigabe_fuer'] == 0) {$newsletter = 0; $paidmails = 0;}
+if ($info['freigabe_fuer'] == 1) {$newsletter = 1; $paidmails = 0;}
+if ($info['freigabe_fuer'] == 2) {$newsletter = 0; $paidmails = 1;}
+if ($info['freigabe_fuer'] == 3) {$newsletter = 1; $paidmails = 1;}
+?>
+
+<?head("$seitenname - Userprofil");?>
+Hier findest Du deine Profildaten, bitte passe diese Daten immer an so das diese aktuell sind. Deaktiviere bitte
+die Paidmails wenn Du keine habe möchtest!<br>
+<?foot();?>
+
+<?head("$seitenname - Profildaten");?>
+  <form action="" method="post">
+  <table width="100%" border="0" cellpadding="1" cellspacing="1">
+   <tr>
+    <td>Nickname:</td>
+    <td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
+   </tr>
+   <tr>
+    <td>Name:</td>
+    <td><input type="text" value="<?=$info['nachname'];?>"></td>
+   </tr>
+   <tr>
+    <td>Vorname:</td>
+    <td><input type="text" value="<?=$info['vorname'];?>"></td>
+   </tr>
+   <tr>
+    <td>Emailadresse:</td>
+    <td><input type="text" name="emailadresse" value="<?=$info['emailadresse'];?>"></td>
+   </tr>
+   <tr>
+    <td>Klamm-Id:</td>
+    <td><?=$_SESSION['uid'];?></td>
+   </tr>
+   <tr>
+    <td>Neues Passwort:</td>
+    <td><input type="password" name="pwd"></td>
+   </tr>
+   <tr>
+    <td>Neues Passwortbestätigung:</td>
+    <td><input type="password" name="pwd2"></td>
+   </tr>
+   <tr>
+    <td>Newsletter:</td>
+    <td>
+	<select name="newsletter">
+	<option value="1" <? if ($newsletter == 1) echo 'selected';?>>Ja</option>
+	<option value="0" <? if ($newsletter == 0) echo 'selected';?>>Nein</option>
+	</select>
+	</td>
+   </tr>
+   <tr>
+    <td>Paidmails:</td>
+    <td>
+	<select name="paidmails">
+	<option value="1" <? if ($paidmails == 1) echo 'selected';?>>Ja</option>
+	<option value="0" <? if ($paidmails == 0) echo 'selected';?>>Nein</option>
+	</select>
+	</td>
+   </tr>
+   <tr>
+    <td>Max. anzeigbare Forcedbanner:</td>
+    <td>
+	<select name="max_forced">
+	<option value="3" <? if ($info['max_forced'] == 3) echo 'selected';?>>3</option>
+	<option value="5" <? if ($info['max_forced'] == 5) echo 'selected';?>>5</option>
+	<option value="10" <? if ($info['max_forced'] == 10) echo 'selected';?>>10</option>
+	<option value="20" <? if ($info['max_forced'] == 20) echo 'selected';?>>20</option>
+	<option value="30" <? if ($info['max_forced'] == 30) echo 'selected';?>>30</option>
+	<option value="40" <? if ($info['max_forced'] == 40) echo 'selected';?>>40</option>
+	<option value="50" <? if ($info['max_forced'] == 50) echo 'selected';?>>50</option>
+	</select>
+	</td>
+   </tr>
+   <tr>
+   <td align="center" colspan="2"><br>
+   <input type="submit" name="aendern" value="Jetzt ändern!"><br>
+   <br>
+   <?=$change;?>
+   </td>
+   </tr>
+  </table>
+     </form>
+<?foot();?>
+
+<?head("$seitenname - Account löschen");?>
+Hier an dieser Stelle kannst Du deinen Account sofort selber löschen wenn Du es wünscht.
+Bitte bedenke das alle Daten von Dir verloren gehen und bestehendes Guthaben dann auch
+verloren geht, eine spätere Forderung an <?=$waehrung;?> ist ausgeschlossen!
+<div align="center">
+<form action="" method="post"><br>
+<?=$delchange;?>
+Schnittstellen-Passwort:&nbsp;&nbsp;<input type="Password" name="del_passwort" value="">&nbsp;&nbsp;&nbsp;<input type="Submit" name="acc_del" value="Jetzt löschen!">
+</form>
+<div align="center"><font color="#cc0000">Bei Löschung des Accounts bist Du für 30 Tage für eine Neuanmeldung gesperrt!</font></div><br>
+</div>
+<?foot();?>
diff --git a/content/module.php b/content/module.php
new file mode 100644
index 0000000..27cbcee
--- /dev/null
+++ b/content/module.php
@@ -0,0 +1,38 @@
+<?
+// Aussehen des Copyrights einstellen
+$style = 2; // Design: Zahlen 1-4; Jeweils die gewuenschte Zahl eingeben und speichern.
+// Einstellungen Ende
+
+$dir = './module/';
+$linkstyle = 'index.php?content=/module&mod=';
+if (isset ($err)) unset ($err);
+
+function display ($msg) {
+global $style;
+	if ($style == 1) head ('<div style="text-align: center;">'.$msg.'</div>').foot();
+	elseif ($style == 2) {
+		head ('Hersteller');
+		echo '<div style="text-align: center;">'.$msg.'</div>';
+		foot();
+	} elseif ($style == 3) echo '<div style="text-align: right;">'.$msg.'</div>';
+	else echo '<div style="text-align: center;">'.$msg.'</div>';
+}
+
+if (isset ($_GET['mod'])) {
+	if (is_dir ($dir.$_GET['mod'])) {
+		require ( './lib/module.lib.php' );
+		define ('MODULSYSTEM_LOADED', TRUE); // "Modulsystem geladen" melden wegen Sicherheitspruefung
+		if (!isset ($_GET['open']) && file_exists ($dir.$_GET['mod'].'/module.php')) require ($dir.$_GET['mod'].'/module.php');
+		elseif (isset ($_GET['open']) && file_exists ($dir.$_GET['mod'].'/'.$_GET['open'].'.php')) require ($dir.$_GET['mod'].'/'.$_GET['open'].'.php');
+		else $err = 'Die Moduldatei wurde nicht gefunden.';
+	} else $err = 'Das angegebene Modul wurde nicht gefunden.';
+} else $err = 'Es wurde kein Modulname &uuml;bergeben.';
+
+if (isset ($err)) {
+	head ('Fehler');
+	echo 'Es ist ein Fehler auf unserer Seite aufgetreten:<br /><br />' . $err;
+	foot ();
+
+	display ('Modulsystem &copy; by <a href="http://www.totaltoll.de" target="_blank">TotalToll.de</a>');
+} else display ('<a href="javascript:;">Modulinformationen</a>');
+?>
diff --git a/content/nickpage.php b/content/nickpage.php
new file mode 100644
index 0000000..3f5d8e9
--- /dev/null
+++ b/content/nickpage.php
@@ -0,0 +1,15 @@
+<?
+$_GET['nick'] = addslashes($_GET['nick']);
+
+$sql = db_query("SELECT u.angemeldet_seit,k.klicks,k.kv,k.angebettelt,k.bv FROM
+                        ".$db_prefix."_kontodaten k
+                        LEFT JOIN ".$db_prefix."_userdaten u ON u.uid = k.uid
+WHERE u.nickname='".$_GET['nick']."' LIMIT 1");
+
+$np = mysql_fetch_assoc($sql);
+head("Nickpage von ".$_GET['nick']);?>
+
+<b>Angemeldet seit:</b> <?=date("d.m.Y - H:i",$np['angemeldet_seit']);?><br>
+<b>Paidbannerstatistik:</b> <?=$np['klicks'];?> Klicks | Verdienst: <?=$np['kv'];?><br>
+<b>Bettellinkstatistik:</b> <?=$np['angebettelt'];?> Aufrufe | Verdienst: <?=$np['bv'];?>
+<?foot();?>
\ No newline at end of file
diff --git a/content/ralleys/aktiv.php b/content/ralleys/aktiv.php
new file mode 100644
index 0000000..51425c3
--- /dev/null
+++ b/content/ralleys/aktiv.php
@@ -0,0 +1,63 @@
+<?
+// Variabeln
+$filename = 'lib/texte/aktivralley.txt';
+$rp = 1;
+
+// Ralleydaten auslesen
+$ralleydaten = mysql_fetch_array (db_query ('SELECT * FROM '.$db_prefix.'_ralleydaten WHERE ralley = "aktivralley" LIMIT 1'));
+
+// Datei auslesen
+if (is_readable ($filename)) $inhalt = implode ('', file ($filename));
+else echo 'Datei '.$filename.' kann nicht gelesen werden!';
+//$inhalt = str_replace('\\', '', $inhalt);
+
+if (!empty ($inhalt)){
+	head ('Unsere Aktivralley');
+	echo nl2br ($inhalt);
+	foot ();
+}
+
+head ('Platzierungen und Preise'); ?>
+Dieses Aktivralley läuft von <b><?=date("d.m.Y - H:i:s",$ralleydaten['start']);?></b> bis <b><?=date("d.m.Y - H:i:s",$ralleydaten['ende']);?></b>.<br>
+Für diese Ralley sind <b><?=number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung;?></b> ausgelobt die auf die Plätze <b>1</b> bis <b><?=$ralleydaten['plaetze'];?></b> verteilt werden.
+<? 
+if ($ralleydaten['pro'] > 0.00) echo 'Es müssen mindestens <b>'.number_format($ralleydaten['pro'], 0, ',', '.').' Punkte</b> erreicht werden um gewertet zu werden'; ?>
+<br />
+<br />
+
+<table width="100%" cellpadding="1" cellspacing="1" border="0">
+	<tr class="tr_head">
+		<td width="50"><b>Rang</b></td>
+		<td><b>User</b></td>
+		<td width="100"><b>Punkte</b></td>
+		<td width="150"><b>möglicher Gewinn</b></td>
+	</tr>
+
+<?
+$platz = db_query ('SELECT a.punkte, u.nickname FROM '.$db_prefix.'_aktivralley AS a LEFT JOIN '.$db_prefix.'_userdaten AS u ON u.uid = a.uid WHERE a.punkte > '.$ralleydaten['pro'].' AND a.uid != 0 ORDER BY a.punkte DESC LIMIT 10');
+while ($pa = mysql_fetch_array($platz)) {
+	$row = ($rp % 2 == 0) ? 0 : 1;
+	$mg = ($rp <= $ralleydaten['plaetze']) ? number_format($ralleydaten['p'.$rp],2, ',', '.').' '.$waehrung : '---'; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rp++;?>.&nbsp;</td>
+		<td>&nbsp;<?=$pa['nickname'];?></td>
+		<td align="right"><?=number_format($pa['punkte'],2,",",".");?>&nbsp;</td>
+		<td align="right"><?=$mg;?>&nbsp;</td>
+	</tr>
+<?
+}
+
+for($x=$rp;$x<11;$x++){
+	$row = ($rp % 2 == 0) ? 0 : 1;
+	$mg = ($rp <= $ralleydaten['plaetze']) ? number_format($ralleydaten['p'.$rp],2, ',', '.').' '.$waehrung : '---'; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rp++;?>.&nbsp;</td>
+		<td>&nbsp;n/a</td>
+		<td align="right">0&nbsp;</td>
+		<td align="right"><?=$mg;?>&nbsp;</td>
+	</tr>
+<?
+      } ?>
+</table>
+<?
+foot(); ?>
\ No newline at end of file
diff --git a/content/ralleys/klick.php b/content/ralleys/klick.php
new file mode 100644
index 0000000..504e5b5
--- /dev/null
+++ b/content/ralleys/klick.php
@@ -0,0 +1,71 @@
+<?
+// Variabeln
+$filename = 'lib/texte/klickralley.txt';
+$rp = 1;
+
+// Ralleydaten auslesen
+$ralleydaten = mysql_fetch_array (db_query ('SELECT * FROM '.$db_prefix.'_ralleydaten WHERE ralley = "klickralley" LIMIT 1'));
+
+// Datei auslesen
+if (is_readable ($filename)) $inhalt = implode ('', file ($filename));
+else echo 'Datei '.$filename.' kann nicht gelesen werden!';
+
+if ($inhalt != ''){
+	head ('Unsere Klickralley');
+	echo nl2br ($inhalt);
+	foot ();
+}
+
+
+head ('Platzierungen und Preise');
+
+if ($ralleydaten['art'] != 'statisch') { ?>
+<div>Diese Klickralley läuft vom <b><?=date('d.m.Y H:i', $ralleydaten['start']);?></b> bis zum <b><?=date('d.m.Y H:i', $ralleydaten['ende']);?></b>.<br />
+Dabei handelt es sich um eine dynamische Klickralley wo pro Klick <b><?=number_format($ralleydaten['pro'], 2, ',', '.').' '.$waehrung;?></b> in den Jackpot fliesen.<br />
+Im Jackpot befinden sicher gerade <b><?=number_format($ralleydaten['jackpot'], 2, ',', '.').' '.$waehrung;?></b> die wie unten aufgeführt auf die Plätze <b>1 bis <?=$ralleydaten['plaetze'];?></b> verteilt werden.</div>
+<br />
+<?
+} else { ?>
+<div>Diese Klickralley läuft vom <b><?=date('d.m.Y H:i', $ralleydaten['start']);?></b> bis zum <b><?=date('d.m.Y H:i', $ralleydaten['ende']);?></b>.<br />
+Für diese Klickralley sind <b><?=number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung;?></b> ausgelobt und werden wie unten angezeigt auf die Plätze <b>1</b> bis <b><?=$ralleydaten['plaetze'];?></b> verteilt.</div>
+<br />
+<?
+} ?>
+
+<table width="100%" cellpadding="1" cellspacing="1" border="0">
+	<tr class="tr_head">
+		<td width="50"><b>Rang</b></td>
+		<td><b>User</b></td>
+		<td width="100"><b>Klicks</b></td>
+		<td width="150"><b>möglicher Gewinn</b></td>
+	</tr>
+<?
+$platz = db_query ('SELECT k.klicks,u.nickname FROM '.$db_prefix.'_klickralley k LEFT JOIN '.$db_prefix.'_userdaten u ON u.uid = k.uid ORDER BY klicks DESC LIMIT 10');
+while ($pa = mysql_fetch_array($platz)) {
+		$row = ($rp % 2 == 0) ? 0 : 1;
+		$mg = ($ralleydaten['art'] == 'statisch') ? number_format($ralleydaten['p'.$rp], 2, ',', '.').' '.$waehrung : number_format(($ralleydaten['jackpot'] / 100 * $ralleydaten['p'.$rp]), 2, ',', '.').' '.$waehrung;
+		if ($rp > $ralleydaten['plaetze']) $mg = '---'; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rp++;?>.&nbsp;</td>
+		<td>&nbsp;<?=$pa['nickname'];?></td>
+		<td align="right"><?=number_format($pa['klicks'], 0);?>&nbsp;</td>
+		<td align="right"><?=$mg;?>&nbsp;</td>
+	</tr>
+<?
+}
+
+for($x=$rp;$x<11;$x++){
+	$mg = ($ralleydaten['art'] == 'statisch') ? number_format($ralleydaten['p'.$x], 2, ',', '.').' '.$waehrung : number_format(($ralleydaten['jackpot'] / 100 * $ralleydaten['p'.$x]), 2, ',', '.').' '.$waehrung;
+	$row = ($rp % 2 == 0) ? 0 : 1;
+	if ($x > $ralleydaten['plaetze']) $mg = '---'; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rp++;?>.&nbsp;</td>
+		<td>&nbsp;n/a</td>
+		<td align="right">0&nbsp;</td>
+		<td align="right"><?=$mg;?>&nbsp;</td>
+	</tr>
+<?
+} ?>
+</table>
+<?
+foot(); ?>
diff --git a/content/ralleys/ref.php b/content/ralleys/ref.php
new file mode 100644
index 0000000..536e16e
--- /dev/null
+++ b/content/ralleys/ref.php
@@ -0,0 +1,59 @@
+<?
+// Variabeln
+$filename = 'lib/texte/refralley.txt';
+$rp = 1;
+
+// Ralleydaten auslesen
+$ralleydaten = mysql_fetch_array (db_query ('SELECT * FROM '.$db_prefix.'_ralleydaten WHERE ralley = "refralley"'));
+
+// Datei auslesen
+if (is_readable ($filename)) $inhalt = implode ('', file ($filename));
+else echo 'Datei '.$filename.' kann nicht gelesen werden!';
+//$inhalt = str_replace('\\', '', $inhalt);
+
+if (!empty ($inhalt)){
+	head ('Unsere Refralley');
+	echo nl2br ($inhalt);
+	foot ();
+}
+
+$refs = db_query ('SELECT u.nickname, COUNT(w.werber) AS total FROM '.$db_prefix.'_werberdaten w LEFT JOIN '.$db_prefix.'_userdaten u ON u.uid=w.werber WHERE w.werber != 0 AND w.zuordnungszeit >= '.$ralleydaten['start'].' AND w.zuordnungszeit <= '.$ralleydaten['ende'].' AND w.gesamt >= '.$ralleydaten['pro'].' GROUP BY w.werber ORDER BY total DESC LIMIT 10');
+$count = 1;
+while ($row = mysql_fetch_assoc($refs)) {
+	$users[$count] = $row['nickname'];
+	$ref[$count] = $row['total'];
+	$count++;
+}
+
+head ('Platzierungen und Preise'); ?>
+<div>Dieses Refralley läuft vom <b><?=date('d.m.Y H:i', $ralleydaten['start']);?></b> bis zum <b><?=date('d.m.Y H:i', $ralleydaten['ende']);?></b>.<br />
+Für diese Refralley sind <b><?=number_format($ralleydaten['p1']+$ralleydaten['p2']+$ralleydaten['p3']+$ralleydaten['p4']+$ralleydaten['p5']+$ralleydaten['p6']+$ralleydaten['p7']+$ralleydaten['p8']+$ralleydaten['p9']+$ralleydaten['p10'],2,",",".").' '.$waehrung;?></b> ausgelobt und werden wie unten angezeigt auf die Plätze <b>1</b> bis <b><?=$ralleydaten['plaetze'];?></b> verteilt.</div>
+<br />
+<?
+if ($ralleydaten['pro'] == 0) echo '<div align="center"><b>Es werden alle Refs gezählt!</b></div>';
+else echo '<div align="center"><b>Es werden nur Refs gezählt ab '.number_format($ralleydaten['pro'],2,',','.').' '.$waehrung.' Refgewinn!</b></div><br />'; ?>
+<br />
+
+<table width="100%" cellpadding="1" cellspacing="1" border="0" align="center">
+	<tr class="tr_head">
+		<td width="50"><b>Rang</b></td>
+		<td><b>User</b></td>
+		<td width="100"><b>Refs</b></td>
+		<td width="150"><b>möglicher Gewinn</b></td>
+	</tr>
+<?
+for($x=1;$x<11;$x++){
+	if (!isset($users[$x])) $users[$x] = 'n/a';
+	if (!isset($ref[$x])) $ref[$x] = 0;
+	$row = ($rp % 2 == 0) ? 0 : 1; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rp++;?>.&nbsp;</td>
+		<td>&nbsp;<?=$users[$x];?></td>
+		<td align="right"><?=$ref[$x];?>&nbsp;</td>
+		<td align="right"><?=number_format($ralleydaten['p'.$x], 0).' '.$waehrung;?>&nbsp;</td>
+	</tr>
+<?
+} ?>
+</table>
+<?
+foot(); ?>
\ No newline at end of file
diff --git a/content/verdienen/betteln4.php b/content/verdienen/betteln4.php
new file mode 100644
index 0000000..0613b63
--- /dev/null
+++ b/content/verdienen/betteln4.php
@@ -0,0 +1,39 @@
+<?
+userstatus();
+head('Dein Bettellink'); ?>
+<table width="100%" cellpadding="1" cellspacing="1" border="0">
+	<tr>
+		<td align="right"><b>Dein Reflink:</b></td>
+		<td align="left">&nbsp;<a href="<?=$domain;?>/?ref=<?=$_SESSION['uid'];?>" target="_blank"><?=$domain;?>/?ref=<?=$_SESSION['uid'];?></a></td>
+	</tr>
+	<tr>
+		<td align="right"><b>Reflink und Bettellink:</b></td>
+		<td align="left">&nbsp;<a href="<?=$domain;?>/?content=/betteln&amp;ref=<?=$_SESSION['uid'];?>" target="_blank"><?=$domain;?>/?content=/betteln&amp;ref=<?=$_SESSION['uid'];?></a></td>
+	</tr>
+</table>
+<?
+foot();
+
+head('Die Top 25 Bettler'); ?>
+<table width="100%" cellpadding="1" cellspacing="1" border="0">
+	<tr class="tr_head">
+		<td width="50"><b>Rang</b></td>
+		<td><b>Mitglied</b></td>
+		<td width="100"><b>Aufrufe</b></td>
+		<td width="150"><b><?=$waehrung;?></b></td>
+	</tr>
+<?
+$rang = 1;
+$sql = db_query ('SELECT k.uid, k.angebettelt, k.bv, u.nickname FROM '.$db_prefix.'_kontodaten k LEFT JOIN '.$db_prefix.'_userdaten u ON u.uid = k.uid ORDER BY angebettelt DESC LIMIT 25');
+while ($user = mysql_fetch_array($sql)) {
+	$row = ($rang % 2 == 0) ? 0 : 1; ?>
+	<tr class="tr_row<?=$row;?>">
+		<td align="right"><?=$rang++;?>.&nbsp;</td>
+		<td>&nbsp;<?=$user['nickname'];?></td>
+		<td align="right"><?=number_format($user['angebettelt'], 0);?>&nbsp;</td>
+		<td align="right"><?=number_format($user['bv'], 2, ',', '.').' '.$waehrung;?>&nbsp;</td>
+	</tr>
+<?
+} ?>
+</table>
+<? foot(); ?>
\ No newline at end of file
diff --git a/content/verdienen/klick4.php b/content/verdienen/klick4.php
new file mode 100644
index 0000000..9d50b71
--- /dev/null
+++ b/content/verdienen/klick4.php
@@ -0,0 +1,22 @@
+<?
+userstatus (); 
+head ('Paidbanner');
+
+$usr = mysql_fetch_assoc (db_query ('SELECT max_forced FROM '.$db_prefix.'_userdaten WHERE uid = '.$_SESSION['uid'].' LIMIT 1'));
+
+$fbanner = db_query ('SELECT t1.* 
+          FROM '.$db_prefix.'_gebuchte_werbung t1 
+          LEFT JOIN '.$db_prefix.'_reloads t2 
+          ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = "'.$ip.'")) 
+          WHERE t2.tan IS NULL AND t1.werbeart = "forcedbanner" AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 AND t1.sponsor != '.$_SESSION['uid'].' ORDER BY t1.verdienst DESC LIMIT '.$usr['max_forced']);
+
+while ($f_banner = mysql_fetch_assoc ($fbanner)){
+	echo '<div align="center" id="banner_'.$f_banner['tan'].'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="0" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$f_banner['tan'].'\').style.display=\'none\';"></a>'
+	. '<br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufenthalt: '.$f_banner['aufendhalt'].' Sekunden<br><br></div>';    
+}  
+
+if (mysql_num_rows ($fbanner) > 0) echo '<div align="center"><input type="button" name="mehr_banner" value="Weitere Banner !" onclick="javascript:location.reload();" /></div>';  
+else echo '<div style="text-align: center; font-weight: bold; color: #ff0000;">Alle Banner im Reload !</div>';
+
+foot ();
+?>
\ No newline at end of file
diff --git a/content/verdienen/paidmails.php b/content/verdienen/paidmails.php
new file mode 100644
index 0000000..c92451e
--- /dev/null
+++ b/content/verdienen/paidmails.php
@@ -0,0 +1,34 @@
+<?
+userstatus();
+head("Paidmailhistory");
+
+$paidmails     = db_query("SELECT
+                e.gueltig, e.tan, v.verdienst, v.beschreibung, v.mailtext, v.aufendhalt
+                FROM ".$db_prefix."_paidmails_empfaenger e
+                LEFT JOIN ".$db_prefix."_paidmails_versendet v ON v.tan = e.tan
+                WHERE e.uid=".$_SESSION['uid']." && e.gueltig > ".time()." && e.status=0 
+                LIMIT 10");
+    while ($mail = mysql_fetch_array($paidmails)){    
+
+            echo '
+    <table border="1" id="mail_'.$mail['tan'].'" width="100%">
+    <tr>
+        <td colspan="2" align="center"><b>'.$mail['beschreibung'].'</b></td>
+    </tr>
+    <tr>
+        <td colspan="2" align="center"><textarea readonly rows="5" cols="60">'.$mail['mailtext'].'</textarea></td>
+    </tr>
+    <tr>
+        <td><font size="2"><b>Verdienst:</b> '.$mail['verdienst'].' '.$waehrung.' &nbsp;&nbsp;&nbsp; <b>Aufenthalt:</b> '.$mail['aufendhalt'].' Sek.</td>
+        <td align="center"><b><a href="pclick.php?tan='.$mail['tan'].'&uid='.$_SESSION['uid'].'" onClick=document.getElementById("mail_'.$mail['tan'].'").style.display="none" target="_Blank">Bestätigen</a></td>
+    </Tr>
+    </table>
+    ';
+    }
+    if (!mysql_num_rows($paidmails)){
+    echo '<center><b>Keine Paidmails vorhanden!</b></center>';
+    }
+
+echo '<p align="center"><input type="button" onClick="javascript:location.reload();" value="Weitere Paidmails"></p>';
+
+foot();?>
diff --git a/cron.php b/cron.php
new file mode 100644
index 0000000..b940aa3
--- /dev/null
+++ b/cron.php
@@ -0,0 +1,22 @@
+<?
+set_time_limit(0);
+ignore_user_abort(true);
+ 
+require ( 'lib/functions.lib.php' );
+
+if ($_GET['pw'] != $cron_pw) die('Zugriff verweigert!');
+
+$cron = (int)$_GET['id'];
+
+db_connect ();
+
+$sql = db_query ('SELECT datei FROM '.$db_prefix.'_crons WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
+$result = mysql_fetch_assoc ($sql);
+
+if ( include ($result['datei']) ){
+	db_query ('UPDATE '.$db_prefix.'_crons SET laufzeit = '.time().' WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
+	echo 'Cron gelaufen';
+} else echo 'Cron nicht gelaufen';
+
+db_close();
+?>
\ No newline at end of file
diff --git a/crons/fuco-ads.int.php b/crons/fuco-ads.int.php
new file mode 100644
index 0000000..c8a1adf
--- /dev/null
+++ b/crons/fuco-ads.int.php
@@ -0,0 +1,129 @@
+<?
+unset($file1);
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'fuco-ads'"));
+
+if ($interfacedaten['mindestverguetung'] > 0.00) {
+// fuco-ads Forcedbanner nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='fuco-ads' and werbeart='forcedbanner' and status='1'");
+// Forcedbanner einlesen
+$fb=@fopen("http://www.fuco-ads.de/interface/kampagne.php?id=".$interfacedaten['betreiber']."&pw=".$interfacedaten['pass']."&art=forcedclick&verguetung=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1","r");
+if($fb){
+	while($line=fgets($fb,1000)) {
+	$file1.=$line;
+	}
+fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/6)-1;
+$bid_lesen = 4;
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.fuco-ads.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.fuco-ads.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen-1]);
+$int_kid		= $code[$bid_lesen-4];
+$int_reload		= $code[$bid_lesen+1]*3600;
+$int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-2];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+6;
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','fuco-ads','forcedbanner')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+}
+}
+
+$file1 = "";
+if ($interfacedaten['surfklick'] > 0.00) {
+// fuco-ads Surfklick nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='fuco-ads' and werbeart='surfklick' and status='1'");
+// Forcedbanner einlesen
+$fb=@fopen("http://www.fuco-ads.de/interface/kampagne.php?id=".$interfacedaten['betreiber']."&pw=".$interfacedaten['pass']."&art=surfclick&verguetung=".$interfacedaten['surfklick']."&reload=24&uebrig=1","r");
+if($fb){
+	while($line=fgets($fb,1000)) {
+	$file1.=$line;
+	}
+fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/6)-1;
+$bid_lesen = 4;
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.fuco-ads.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.fuco-ads.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen-1]);
+$int_kid		= $code[$bid_lesen-4];
+$int_reload		= $code[$bid_lesen+1]*3600;
+$int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-2];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+6;
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['surfklick'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','fuco-ads','surfklick')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+}
+}
+
+$file1 = "";
+if ($interfacedaten['surfview'] > 0.00) {
+// fuco-ads Surfklick nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='fuco-ads' and werbeart='surfview' and status='1'");
+// Forcedbanner einlesen
+$fb=@fopen("http://www.fuco-ads.de/interface/kampagne.php?id=".$interfacedaten['betreiber']."&pw=".$interfacedaten['pass']."&art=surfview&verguetung=".$interfacedaten['surfview']."&reload=24&uebrig=1","r");
+if($fb){
+	while($line=fgets($fb,1000)) {
+	$file1.=$line;
+	}
+fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/6)-1;
+$bid_lesen = 4;
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.fuco-ads.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.fuco-ads.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen-1]);
+$int_kid		= $code[$bid_lesen-4];
+$int_reload		= $code[$bid_lesen+1]*3600;
+$int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-2];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+6;
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['surfview'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','fuco-ads','surfview')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'fuco-ads' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+}
+}
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fuco-ads' and status = '0'");
+?>
diff --git a/crons/fucoex.int.php b/crons/fucoex.int.php
new file mode 100644
index 0000000..5d3fff0
--- /dev/null
+++ b/crons/fucoex.int.php
@@ -0,0 +1,50 @@
+<?
+unset($file1);
+
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'fucoex'"));
+
+// Multi-Sponsor Forcedbanner nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='fucoex' and werbeart='forcedbanner' and status='1'");
+
+// Forcedbanner einlesen
+$fb=@fopen("http://www.FuCoEx.de/sponsornet/engine/output_kampagne.php?bid=".$interfacedaten['betreiber']."&pwd=".$interfacedaten['pass']."&art=forcedclick&verguetung=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1&size=468x60","r");
+if($fb){
+   while($line=fgets($fb,1000)){
+   $file1.=$line;
+   }
+   fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/6)-1;
+$bid_lesen = 4;
+
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.fucoex.de/sponsornet/engine/spwmklickn.php?linkid=".$code[$bid_lesen-4]."&bid=".$interfacedaten['betreiber'];
+$int_banner		= "http://www.fucoex.de/sponsornet/engine/spwmshowb.php?linkid=".$code[$bid_lesen-4]."&bid=".$interfacedaten['betreiber'];
+$int_menge		= round($code[$bid_lesen-1]);
+$int_kid		= $code[$bid_lesen-4];
+$int_reload		= $code[$bid_lesen+1]*3600;
+$int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-2];
+$int_tan		= create_code(32);
+$bid_lesen		= $bid_lesen+6;
+
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fucoex' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','fucoex','forcedbanner')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'fucoex' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+
+}
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'fucoex' and status = '0'");
+?>
diff --git a/crons/hp-lose.int.php b/crons/hp-lose.int.php
new file mode 100644
index 0000000..0cf40e8
--- /dev/null
+++ b/crons/hp-lose.int.php
@@ -0,0 +1,50 @@
+<?
+unset($file1);
+
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'hp-lose'"));
+
+// HPLose Forcedbanner nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='hp-lose' and werbeart='forcedbanner' and status='1'");
+
+// Forcedbanner einlesen
+$fb=@fopen("http://www.hplose.de/lose/interface/output_kampagne.php?id=".$interfacedaten['betreiber']."&art=forcedclick&verguetung=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1","r");
+if($fb){
+   while($line=fgets($fb,1000)){
+   $file1.=$line;
+   }
+   fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/6)-1;
+$bid_lesen = 4;
+
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.hplose.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.hplose.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen-1]);
+$int_kid		= $code[$bid_lesen-4];
+$int_reload		= $code[$bid_lesen+1]*3600;
+$int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-2];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+6;
+
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'hp-lose' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','hp-lose','forcedbanner')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'hp-lose' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+
+}
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'hp-lose' and status = '0'");
+?>
diff --git a/crons/lose-ads.int.php b/crons/lose-ads.int.php
new file mode 100644
index 0000000..ea1d9fd
--- /dev/null
+++ b/crons/lose-ads.int.php
@@ -0,0 +1,53 @@
+<?
+unset($file1);
+
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'lose-ads'"));
+
+// Lose-Ads Forcedbanner nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='lose-ads' and werbeart='forcedbanner' and status='1'");
+
+// Forcedbanner einlesen
+$fb=@fopen("http://www.lose-ads.de/antisinterface/abruf.php?uid=".$interfacedaten['betreiber']."&sid=".$interfacedaten['seite']."&size=468x60&art=forcedclick&ab=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1","r");
+if($fb){
+   while($line=fgets($fb,1000)){
+   $file1.=$line;
+   }
+   fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/7)-1;
+$bid_lesen = 0;
+
+//0bid|1name|2verguetung|3uebrig|4reload|5id|6sekunden|
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.lose-ads.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.lose-ads.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen+3]);
+$int_kid		= $code[$bid_lesen+5];
+$int_reload		= $code[$bid_lesen+4]*3600;
+$int_verdienst	= ($code[$bid_lesen+2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen+2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen+2]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen+2];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+7;
+
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'lose-ads' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','lose-ads','forcedbanner')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'lose-ads' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+
+}
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'lose-ads' and status = '0'");
+
+?>
+
diff --git a/crons/losebox.int.php b/crons/losebox.int.php
new file mode 100644
index 0000000..94fc53a
--- /dev/null
+++ b/crons/losebox.int.php
@@ -0,0 +1,53 @@
+<?
+unset($file1);
+
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'losebox'"));
+
+// Losebox Forcedbanner nullen
+db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='losebox' and werbeart='forcedbanner' and status='1'");
+
+// Forcedbanner einlesen
+$fb=@fopen("http://www.losebox.de/lose/interface/output_kampagne.php?art=forcedclick&verguetung=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1&user_id=".$interfacedaten['betreiber']."","r");
+if($fb){
+	while($line=fgets($fb,1000)) {
+	$file1.=$line;
+	}
+fclose($fb);
+}
+$code = explode("|", $file1);
+$tl_count = (count($code)/8)-1;
+$bid_lesen = 5;
+
+// Forcedbannercodes splitten
+for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+$int_tan		= '';
+$int_ziel		= "http://www.losebox.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_banner		= "http://www.losebox.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+$int_menge		= round($code[$bid_lesen-2]);
+$int_kid		= $code[$bid_lesen];
+$int_reload		= $code[$bid_lesen-1]*3600;
+$int_verdienst	= ($code[$bid_lesen-3]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-3]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+$int_preis		= $code[$bid_lesen-3]*$interfacedaten['umrechnung'];
+$ext_verguetung	= $code[$bid_lesen-3];
+$int_tan		= create_code(32);
+$bid_lesen=$bid_lesen+8;
+
+
+// Forcedbanner updaten oder eintragen
+$int_menge = round($int_menge/$interfacedaten['restklicks']);
+if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'losebox' and kid = '".$int_kid."'");
+	if (!mysql_num_rows($forcedbanner_check)) {
+	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','losebox','forcedbanner')");
+	} else {
+	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'losebox' and kid = '".$int_kid."' and status = '0'");
+	}
+}
+
+}
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'losebox' and status = '0'");
+
+?>
+
diff --git a/crons/refzahlungen.knt.php b/crons/refzahlungen.knt.php
new file mode 100644
index 0000000..c2b33c8
--- /dev/null
+++ b/crons/refzahlungen.knt.php
@@ -0,0 +1,58 @@
+<?
+
+// Prozente laden!
+$refdaten = mysql_fetch_array(db_query("SELECT `re1`,`re2`,`re3` FROM ".$db_prefix."_seitenkonfig"));
+
+// Userdurchlauf
+$refliste = db_query ("SELECT * FROM ".$db_prefix."_werberdaten");
+while ($refliste_1 = mysql_fetch_array($refliste)) {
+$verdienst = 0;
+
+	// Ebene 1
+	$refebene_1 = db_query ("SELECT `uid`,`umsatz`,`werber`,`refback`,`gesamt` FROM ".$db_prefix."_werberdaten WHERE werber='".$refliste_1['uid']."'");
+	while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
+	      $verdienst = $verdienst + ($anzeigen_1['umsatz']/100*$refdaten['re1']);
+              $pro_verdienst = $anzeigen_1['umsatz'] / 100 * $refdaten['re1'];
+	      db_query ("UPDATE ".$db_prefix."_werberdaten SET gesamt=gesamt+'".$pro_verdienst."' , reset=reset+'".$pro_verdienst."' WHERE uid='".$anzeigen_1['uid']."'");
+	               if ($anzeigen_1['refback'] >= 1 && ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'] >= 0.01) {
+	               $buchungs_id = create_code(14);
+	               $refback = ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'];
+	               kontobuchung ('+',$refback,$anzeigen_1['uid']);
+	               buchungsliste ($buchungs_id,'+'.$refback,'Refback '.$anzeigen_1['refback'].'% ('.$refliste_1['uid'].')',$anzeigen_1['uid']);
+	               buchungsliste ($buchungs_id,'-'.$refback,'Refback '.$anzeigen_1['refback'].'% gezahlt ('.$anzeigen_1['uid'].')',$refliste_1['uid']);
+	               $pro_verdienst = $pro_verdienst - $refback;
+	               $refback = 0;
+	               $buchungs_id = '';
+	               }
+	kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
+	$pro_verdienst = 0;
+
+		// Ebene 2
+		$refebene_2 = db_query ("SELECT `uid`,`umsatz`,`werber`,`refback`,`gesamt` FROM ".$db_prefix."_werberdaten WHERE werber='".$anzeigen_1['uid']."'");
+		while ($anzeigen_2 = mysql_fetch_array($refebene_2)) {
+		$verdienst = $verdienst + ($anzeigen_2['umsatz']/100*$refdaten['re2']);
+		$pro_verdienst = $anzeigen_2['umsatz']/100*$refdaten['re2'];
+		kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
+		$pro_verdienst = 0;
+
+			// Ebene 3
+			$refebene_3 = db_query ("SELECT `uid`,`umsatz`,`werber`,`refback`,`gesamt` FROM ".$db_prefix."_werberdaten WHERE werber='".$anzeigen_2['uid']."'");
+			while ($anzeigen_3 = mysql_fetch_array($refebene_3)) {
+			$verdienst = $verdienst + ($anzeigen_3['umsatz']/100*$refdaten['re3']);
+			$pro_verdienst = $anzeigen_3['umsatz']/100*$refdaten['re3'];
+			kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
+			$pro_verdienst = 0;
+
+			}
+		}
+	}
+
+	if ($verdienst >= 0.01) {
+	$buchungs_id = create_code(14);
+	buchungsliste ($buchungs_id,'+'.$verdienst,'Refverdienste',$refliste_1['uid']);
+        bilanz(0,$verdienst);	
+	}
+
+}
+db_query("UPDATE ".$db_prefix."_werberdaten SET umsatz=0");
+?>
\ No newline at end of file
diff --git a/crons/webmasterlose.int.php b/crons/webmasterlose.int.php
new file mode 100644
index 0000000..713c20d
--- /dev/null
+++ b/crons/webmasterlose.int.php
@@ -0,0 +1,53 @@
+<?
+// Forcedbanner
+$interfacedaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_interface WHERE interface = 'webmasterlose'"));
+
+if ($interfacedaten['mindestverguetung'] > 0.00) {
+unset($file1);
+
+   // Status 0 setzen
+   db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET status='0' WHERE sponsor='webmasterlose' and werbeart='forcedbanner' and status='1'");
+   
+   // Forcedbanner einlesen
+   $fb=@fopen("http://www.webmasterlose.de/lose/interface/output_kampagne.php?id=".$interfacedaten['betreiber']."&pw=".$interfacedaten['pass']."&art=forcedclick&verguetung=".$interfacedaten['mindestverguetung']."&reload=24&uebrig=1","r");
+   if($fb){
+	while($line=fgets($fb,1000)) {
+	$file1.=$line;
+	}
+   fclose($fb);
+   }
+   $code = explode("|", $file1);
+   $tl_count = (count($code)/6)-1;
+   $bid_lesen = 4;
+   // Forcedbannercodes splitten
+   for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
+    $int_tan		= '';
+    $int_ziel		= "http://www.webmasterlose.de/lose/clickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+    $int_banner		= "http://www.webmasterlose.de/lose/viewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
+    $int_menge		= round($code[$bid_lesen-1]);
+    $int_kid		= $code[$bid_lesen-4];
+    $int_reload		= $code[$bid_lesen+1]*3600;
+    $int_verdienst	= ($code[$bid_lesen-2]*$interfacedaten['umrechnung']) - (($code[$bid_lesen-2]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
+    $int_preis		= $code[$bid_lesen-2]*$interfacedaten['umrechnung'];
+    $ext_verguetung	= $code[$bid_lesen-2];
+    $int_tan		= create_code(32);
+    $bid_lesen=$bid_lesen+6;
+
+          if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1) {
+          	$forcedbanner_check = db_query ("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'webmasterlose' and kid = '".$int_kid."'");
+           	if (!mysql_num_rows($forcedbanner_check)) {
+            	db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,banner,preis,verdienst,aufendhalt,menge,reload,sponsor,werbeart) VALUES ('".$int_tan."','".$int_kid."','".$int_ziel."','".$int_banner."','".$int_preis."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','".$int_menge."','".$int_reload."','webmasterlose','forcedbanner')");
+             	} else {
+              	db_query ("UPDATE ".$db_prefix."_gebuchte_werbung SET status = '1',menge = '".$int_menge."',preis = '".$int_preis."',verdienst = '".$int_verdienst."', aufendhalt = '".$interfacedaten['aufendhalt']."' WHERE sponsor = 'webmasterlose' and kid = '".$int_kid."' and status = '0'");
+               	}
+          }
+    }
+}
+// Forcedbanner Ende
+
+
+
+// Abgelaufene Banner löschen
+db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'webmasterlose' and status = '0'");
+?>
+
diff --git a/css/bframe.css b/css/bframe.css
new file mode 100644
index 0000000..e817061
--- /dev/null
+++ b/css/bframe.css
@@ -0,0 +1,34 @@
+
+A:link,A:visited,A:active {
+color: #800000;
+text-decoration: none;
+}
+
+A:hover { 
+color: #000000;
+text-decoration: none;
+}
+
+.topic {
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size: 12px;
+}
+
+body {
+margin-top:0;
+margin-bottom:0;
+margin-left:0;
+margin-right:0;
+}
+
+body {
+background-image:url('img/bg.gif');
+background-color:#F2EEEA;
+}
+
+body, table, td, tr, div, p, pre, h1, h2, h3, h4, ul {
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size:12px;
+color:#41261B;
+line-height:10pt;
+}
diff --git a/css/main.css b/css/main.css
new file mode 100644
index 0000000..af92336
--- /dev/null
+++ b/css/main.css
@@ -0,0 +1,119 @@
+.rand {
+border: #000000;
+border-style: solid;
+border-top-width: 1px;
+border-right-width: 1px;
+border-bottom-width: 1px;
+border-left-width: 1px;
+}
+
+.titel-rand {
+border: #000000;
+border-style: solid;
+border-top-width: 0px;
+border-right-width: 0px;
+border-bottom-width: 1px;
+border-left-width: 0px;
+}
+
+.rand-menue {
+border: #000000;
+border-style: solid;
+background-color: #FEFBF5;
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size: 12px;
+font-weight: normal;
+color: #000000;
+border-width: 1px 1px 1px 0px;
+}
+
+A:link,A:visited,A:active {
+color: #1e364c;
+text-decoration: none;
+}
+
+A:hover { 
+color: #4B69FF;
+text-decoration: none;
+}
+
+.small {
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size: 12px;
+}
+
+.topic {
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size: 12px;
+}
+
+body {
+margin-top:5;
+margin-bottom:5;
+margin-left:5;
+margin-right:5;
+background-color:#F2EEEA;
+}
+
+body, table, td, tr, div, p, pre, h1, h2, h3, h4, ul {
+font-family: Geneva, Arial, Helvetica, san-serif;
+font-size:12px;
+color:#41261B;
+line-height:10pt;
+}
+
+input {
+border-width: 1;
+font-size: 12px;
+font-family: Geneva, Arial, Helvetica, san-serif;
+border-color: #000000;
+border-style: solid;
+background-color: #A2B5CD;
+color: #000000;
+font-weight: normal;
+}
+
+select {
+border-width:1;
+font-size: 12px;
+font-family: Geneva, Arial, Helvetica, san-serif;
+border-color: #000000;
+border-style: solid;
+background-color: #A2B5CD;
+color: #000000;
+}
+
+textarea {
+border-width: 1;
+font-size: 12px;
+font-family: Geneva, Arial, Helvetica, san-serif;
+border-color: #000000;
+border-style: solid;
+background-color: #A2B5CD;
+color: #000000;
+font-weight: normal;
+}
+
+option {
+border-width:1;
+font-size: 12px;
+font-family: Geneva, Arial, Helvetica, san-serif;
+border-color: #000000;
+border-style: solid;
+background-color: #A2B5CD;
+color: #000000;
+}
+
+.tr_row0 {
+ BACKGROUND-COLOR: #E2E2E2;
+}
+
+.tr_row1 {
+ BACKGROUND-COLOR: #CDCDCD;
+}
+
+.tr_head {
+ BACKGROUND-COLOR: #0099CC;
+ COLOR:#000000;
+ FONT-WEIGHT: bold;
+}
\ No newline at end of file
diff --git a/fc.php b/fc.php
new file mode 100644
index 0000000..4085083
--- /dev/null
+++ b/fc.php
@@ -0,0 +1,27 @@
+<?
+@require_once ('lib/functions.lib.php');
+@db_connect();
+@require_once ('lib/session.lib.php');
+if (!isset($_GET['art']))		$_GET['art']		= "";
+if (!isset($forced['tan']))		$forced['tan']		= "";
+if (!isset($forced['ziel']))	        $forced['ziel']		= "";
+
+$_GET['tan'] = addslashes ($_GET['tan']);
+
+$forced = mysql_fetch_array(db_query("SELECT ziel,tan FROM ".$db_prefix."_gebuchte_werbung WHERE tan='".$_GET['tan']."' LIMIT 1"));
+?>
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>Forcedklick by <?=$seitenname;?></title>
+</head>
+
+<frameset rows="15,*" border="0">
+<frame name="abuse" src="topframe_forced.php?tan=<?=$forced['tan'];?>" scrolling="no" frameborder="0">
+<frame name="werbung" src="<?=$forced['ziel'];?>" scrolling="auto" frameborder="0">
+</frameset>
+</body>
+</html>
+<?db_close();?>
diff --git a/images/Thumbs.db b/images/Thumbs.db
new file mode 100644
index 0000000000000000000000000000000000000000..7a2af3e18dd2e13c36e5ccd940350a625997c971
GIT binary patch
literal 9216
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

literal 0
HcmV?d00001

diff --git a/images/banner/2.gif b/images/banner/2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..058f14602aff2547a227e2e3725335a368fd982d
GIT binary patch
literal 36704
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
PO5olRya)ax0s#O!{GA+8

literal 0
HcmV?d00001

diff --git a/images/banner/3.gif b/images/banner/3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f98ec5c6ebc85a881cf9e99e8f4d172879df29a9
GIT binary patch
literal 33000
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

literal 0
HcmV?d00001

diff --git a/images/banner/Thumbs.db b/images/banner/Thumbs.db
new file mode 100644
index 0000000000000000000000000000000000000000..7d00e702de2c914d27182242c9ea96451dc56e87
GIT binary patch
literal 10240
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
Vr%}J04oUq}Dn8*a_y4N}{s%s62IT+%

literal 0
HcmV?d00001

diff --git a/images/gelb.gif b/images/gelb.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2668ff9c4237f6759ff440a28101db094fa85149
GIT binary patch
literal 147
zcmZ?wbhEHb<Y(Y#*vtR||NsAg{Fvd^EryF18BUyF*twHs<w}+X3wTbP5Lma)9ViP{
z1tk=JvM@3*a5LzD_#iVFSR4vYdam9pp3y5Fz)>XQz}Dv$6*PZ_l<OX^hS@5t3(wD6
n%kLofV8SUzRwl)Z77l9K3=#`FpZGEy%Su1|vSR-f4hCxgLt-(t

literal 0
HcmV?d00001

diff --git a/images/gruen.gif b/images/gruen.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51da984c216bf3db6d3b0f83219eee99d48f9e9f
GIT binary patch
literal 149
zcmZ?wbhEHb<Y(Y#*vtR||NsAIc*MYPje+4L1H(=R#^sEhvpGc$h$uW$P`IF=a7aOM
zlcL574UjSh2F0H&j0_BX3_2j4ATt<PoGzU7T)kI3qgS?|J<(wPSJR|Gou?&c9bN)n
wuUkFr_?vl`a4_{hH$G9(w4^`qhAJ!P>~uvLmBo^*LftnDtR5JsGBH>K02=Er9smFU

literal 0
HcmV?d00001

diff --git a/images/header.gif b/images/header.gif
new file mode 100644
index 0000000000000000000000000000000000000000..78ac9cdba07b8d96bd68d0ff037716c6f64c1fce
GIT binary patch
literal 29232
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
X;2`yxXmTtGuxYkOH7l`L0ATfhuF1Ft

literal 0
HcmV?d00001

diff --git a/images/pfeil.gif b/images/pfeil.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8013aa5e426c908d5f45d6aee5296859a52b3dcb
GIT binary patch
literal 254
zcmZ?wbhEHb<YVAxIKse?mX>zr%$cQ2mR43)K7RCg=FFM9cI>)#_1e34?|@Q0Jw02u
zZoPN+-uLg{4;?(z+S*!BP_SX$hUd?o@7=ri=#iuU|Nm#e3lx8{u!=B<GU$L*f$U^p
ztxizw@@VPNSj8YPahdP}hs)7|?aVISZ@L5<0xVW2aP4+;{kVWdO{8s;5`)N!WzCKY
z1g0=BJ1q{F!P7Q@Jw-9erlrf(VTauuKJJ5#P6{iS`GkYmt2u;t*cn^=^g3G@McCN<
es=e5!bg&5q28*_{sB=sR(wytYu}oBv!5RSXeOey?

literal 0
HcmV?d00001

diff --git a/images/rand.gif b/images/rand.gif
new file mode 100644
index 0000000000000000000000000000000000000000..072d9913014dbdd0613763d53d7803cbc6ca0707
GIT binary patch
literal 475
zcmV<10VMuMNk%w1VF>_u0K@<Q|NNu>_on{DSo6ec{KHc8!)ExyTlm9M{lHcCy;<+R
zV)wmL?!8|2y-f1GQ}wh^_Oea#wM+7|QtYx|?y_9<uTbi;Tj{c2^sh?ruTk)?NdN!<
z{s9620000000000A^8La6aX9mEC2ui00{ti000I5;3AIVMv~@Psw<nS?-`><ohXXq
zY{$p|x=mx0NVH%>WD><%%tp_ntU-0)j4=gpC(?Pju4dFJE{7N2AW0jfHmnM)875vX
z$N0LNInv7eabzxgC`){FXNV#=YCc;+B1J`l5tWuH5fGZ1kd+mm6_^nZn<<;6BBz`~
zni;MTDH#$M6cQ3CwiW>yup$q?ucoRg8pWs!7{el#nZ3vu(9pON5TKa0*q9j;6SmhB
z0p80I*tg>m)<YV@J-_Y`JPW_4#L5en*5l>h;pPh(+q(H9x6jwGBC4DvOaTp4C=tch
zaY{9e3c63?<Ymz1>Y4=$)P%X}C?Z<4Jc9;U8Ir<)!5<MnUdos=Gf_=NH*;PQv<QIA
zLox^m9V(PZjiUz;Y!HgH#s&dRoi-IfbpwK{2n=X7@RX{70Ryyd&`Q8S0RUpD3fO9Z
RKv%VD-@+9j7w(1-06VbI(!Kxy

literal 0
HcmV?d00001

diff --git a/images/rot.gif b/images/rot.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b98d7f896e98b3b690bba58dac718c54f58e57d6
GIT binary patch
literal 147
zcmZ?wbhEHb<Y(Y#*vtR||NsAg#K3Tkf#D<r!%hZ<<&2E8IXMrAh%A?qTIcQ#lm)AT
z5{f@r7#SG28FWB=kQodt4h1JYSML?i=oJrWS7e$wsl(MPD1MTHrs8@b0i_)_JX_k8
mTJEl6H#kz(q;heEx0ZH;Q^A8bz6_Vu(+<C^*gu7X!5RQ;$1J4)

literal 0
HcmV?d00001

diff --git a/index.php b/index.php
new file mode 100644
index 0000000..fcede58
--- /dev/null
+++ b/index.php
@@ -0,0 +1,11 @@
+<?
+if (isset ($_GET['content']) && !empty ($_GET['content'])) {
+	if (strpos ($_GET['content'], '../') !== FALSE) die ('Zugriffsverletzung !');
+	if ($_GET['content']{0} != '/') $_GET['content'] = '/'.$_GET['content'];
+}
+
+require ( './lib/header.php' );
+require ( './content'.$_GET['content'].'.php' );
+require ( './lib/footer.php' );
+?>
+
diff --git a/lib/extras.init.php b/lib/extras.init.php
new file mode 100644
index 0000000..74af861
--- /dev/null
+++ b/lib/extras.init.php
@@ -0,0 +1,11 @@
+<?
+// Datei: lib/extras.init.php
+// Datei um Funktionen aus der Extras-Erweiterung aufzurufen
+
+
+// Variablen absichern !
+array_walk($_GET, 'extra_securevars', 'GET');
+array_walk($_POST, 'extra_securevars', 'POST');
+array_walk($_SERVER, 'extra_securevars', 'SERVER');
+if (count ($_SESSION) > 0) array_walk($_SESSION, 'extra_securevars', 'SESSION');
+?>
\ No newline at end of file
diff --git a/lib/extras.lib.php b/lib/extras.lib.php
new file mode 100644
index 0000000..305ef01
--- /dev/null
+++ b/lib/extras.lib.php
@@ -0,0 +1,95 @@
+<?
+// E-Mail-Klasse einbinden
+require (dirname (__FILE__) . '/mail/klasse.php');
+
+// PHP-Version ausgeben. Beipspiel (PHP-Version 4.1.2-stable): 412
+function extra_phpversion () {
+	$ver = explode ('.', phpversion ());
+	return ($ver[0].$ver[1].$ver[2]);
+}
+
+
+// Löscht alle Datensätze aus Tabelle [table] wenn keine gueltige
+// UserID zu dem angegebenen Feld [row] existiert.
+function extra_cleantable ($table, $row) {
+  global $db_prefix;
+	return db_query ('DELETE x FROM '.$table.' AS x LEFT JOIN '.$db_prefix.'_kontodaten AS u ON (u.uid = x.'.$row.') WHERE u.uid IS NULL');
+}
+
+// Funktion zum Variablen absichern !
+function extra_securevars ($value, $name, $art) {
+global $GLOBALS;
+	// magic_quotes = on?
+	if (get_magic_quotes_gpc ()) $value = stripslashes ($value);
+	if ($art == 'GET') $_GET[$name] = $value;
+	elseif ($art == 'POST') $_POST[$name] = $value;
+	elseif ($art == 'COOKIE') $_COOKIE[$name] = $value;
+	elseif ($art == 'SERVER') $_SERVER[$name] = $value;
+	elseif ($art == 'SESSION') $_SESSION[$name] = $value;
+	else die ('Fehler in der Variablenabsicherungsfunktion!');
+}
+
+// Funktion um ein Array optisch darzustellen
+function print_a ( $TheArray )
+{ // Note: the function is recursive
+  echo '<table border=1 cellpadding=1 style="border-collapse: collapse; font: 8pt Arial;">'."\n";
+
+  $Keys = array_keys( $TheArray );
+  foreach( $Keys as $OneKey )
+  {
+    echo '<tr>'."\n";
+
+    echo '<td bgcolor="#727450" style="color: #ededed;">'."\n";
+    echo '<B>' . $OneKey . '</B>';
+    echo '</td>'."\n";
+
+    echo '<td bgcolor="#C4C2A6">'."\n";
+    if ( is_array($TheArray[$OneKey]) )
+      print_a($TheArray[$OneKey]);
+    else
+      echo $TheArray[$OneKey];
+    echo '</td>'."\n";
+
+    echo '</tr>'."\n";
+  }
+  echo '</table>'."\n";
+}
+
+// Erweiterte E-Mail-Funktion
+function usermail ($an, $betreff, $nachricht, $von) {
+     //    global $mail;
+	// Zeichenketten bei max 70 Zeichen trennen
+
+	// Nachricht mit HTML
+	$html_nachricht = '<HTML>
+<HEAD>
+	<STYLE TYPE="text/css">
+	<!--
+	H1 {font-family: Verdana; font-size: 18pt}
+	BODY {font-family: Verdana; font-size: 10pt; margin-left: 30px}
+	// --> 
+	</STYLE>
+</HEAD>
+<BODY BGCOLOR="beige" BACKGROUND="background.gif">
+
+<H1>'.$betreff.'</H1>
+
+'.nl2br($nachricht).'
+
+</BODY>
+</HTML>';
+
+	// HTML-Codes entfernen
+	$nachricht = strip_tags ($nachricht);
+
+ 	$mail = new htmlMimeMail();
+	$mail->setFrom($von);
+	$mail->setSubject($betreff);
+	$mail->setHTML($html_nachricht, $nachricht);
+	$mail->setHeader('X-Mailer', 'HTML Mime mail class (http://www.phpguru.org)');
+	return $mail->send(array($an));
+}
+
+
+require (dirname (__FILE__) . '/extras.init.php');
+?>
\ No newline at end of file
diff --git a/lib/footer.php b/lib/footer.php
new file mode 100644
index 0000000..fcc69d6
--- /dev/null
+++ b/lib/footer.php
@@ -0,0 +1,13 @@
+</td>
+<td width="5" valign="top" align="left"></td>
+<td width="150" valign="top" align="left"><?@include_once('lib/menue_rechts.php');?></td>
+</tr>
+</table>
+
+<?=$count_query;?> MySQL Abfragen
+<!-- Fussnote -->
+
+</td></tr></table>
+</body>
+</html>
+<?db_close();?>
\ No newline at end of file
diff --git a/lib/functions.lib.php b/lib/functions.lib.php
new file mode 100644
index 0000000..50da37a
--- /dev/null
+++ b/lib/functions.lib.php
@@ -0,0 +1,156 @@
+<?
+header("Cache-control: no-cache");
+$db_host		= "localhost";                              // Datenbankhost meistens localhost/127.0.0.1
+$db_user		= "web1";                                   // MySQL User
+$db_pass		= "QRWSshez";                                       // MySQL Passwort
+$db_base		= "usr_web1_7";                                    // Datenbankname
+$db_prefix		= "vms";                                    // Datenbankpräfix bei Verwendung mehrerer Script in einer DB
+$domain			= "http://vms.designerscripte.net";                   // Url zum Script Ohne Slash am Ende 
+$seitenname		= "VMS Demo";                               // Name der Seite
+$waehrung		= "Lose";                                   // Währungsname der Seite
+$admin_id		= 1;                                        // Userid des Admins
+$betreibermail		= "admin@vms1.de";                          // Email des Betreibers
+$cron_pw                = "geheimespasswort";                       // Passwort für Cronjobs
+$percode 		= 'AbCdEfGhIjKlMnOpQrStUvWxYz123456789';    // beliebiger Alphanumerischer String 
+
+
+/* Globale Variablen nichts ändern */
+$ip 			= $_SERVER['REMOTE_ADDR'];
+if (!isset($login_check['hinweis']))	$login_check['hinweis']		= "";
+
+
+/* Funktionen Start */
+
+// Datenbankverbindung
+function db_connect() {
+global $db_host,$db_user,$db_pass,$db_base,$sql_open;
+	$sql_open	= @mysql_connect($db_host,$db_user,$db_pass) or die('Verbindung zum Mysql Server fehlgeschlagen!');
+	$sql_base	= @mysql_select_db($db_base) or die("Keine oder falsche Datenbank gewählt!");
+}
+
+// Mysql Querys
+function db_query($sql_tag){
+global $count_query;
+    $count_query++;
+    $vargs = array();
+    $fargs = func_get_args();
+    foreach($fargs as $key => $arg){
+      $vargs[$key] = mysql_real_escape_string($arg);
+    }
+    array_shift($vargs);
+    $sql_tag = vsprintf($sql_tag,$vargs);
+    if($ret = mysql_query($sql_tag)){
+      return $ret;
+    }else{
+      return 0;
+    }
+  }
+
+// Datenbank schließen
+function db_close() {
+global $sql_open;
+	@mysql_close($sql_open) or die('Konnte die Verbindung mit Datenbank nicht schliessen!');
+}
+
+// Zufallscode
+function create_code($code_laenge) {
+srand((double)microtime()*1000000);
+$created_code = '';
+$zeichen="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
+for ($i=0;$i<$code_laenge;$i++) {
+$n=rand() % strlen($zeichen);
+$created_code .=substr($zeichen, $n, 1);
+}
+return $created_code;
+}
+
+
+// Einträge in Buchungsliste
+function buchungsliste ($buchungs_id,$trans_menge,$verwendung,$fuer) {
+global $db_prefix;
+	db_query("INSERT INTO ".$db_prefix."_buchungen (uid,buchungszeit,buchungs_id,buchungsmenge,verwendungszweck) VALUES (".$fuer.",".time().",'".$buchungs_id."','".$trans_menge."','".$verwendung."')");
+}
+
+// Kontotransaktionen
+function kontobuchung ($art,$trans_menge,$fuer) {
+global $db_prefix;
+	db_query("UPDATE ".$db_prefix."_kontodaten SET `kontostand` = `kontostand` ".$art." ".$trans_menge." WHERE uid=".$fuer."");
+}
+
+// Schutz von internen Seiten
+function userstatus () {
+global $_SESSION,$db_prefix;
+	if ($_SESSION['login'] == 'true') {
+	$us = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." and passwort='".$_SESSION['passwort']."' LIMIT 1");
+	$login_check = mysql_fetch_array($us);
+
+                // nicht aktiviert oder nicht angemeldet!
+		if (!mysql_num_rows($us) or $login_check['status'] == 0) {
+		setCookie('uid','',time()-86400*30);
+		setCookie('passwort','',time()-86400*30);
+		setCookie('autologin','',time()-86400*30);
+		$_SESSION['uid']		= "";
+		$_SESSION['passwort']	= "";
+		$_SESSION['login']		= "";
+		@include_once('content/error/kein_zutritt.php');
+		@include_once('lib/footer.php');
+		die();
+		}
+		
+                // gesperrt
+                if ($login_check['status'] == 2) {
+		setCookie('uid','',time()-86400*30);
+		setCookie('passwort','',time()-86400*30);
+		setCookie('autologin','',time()-86400*30);
+		$_SESSION['uid']		= "";
+		$_SESSION['passwort']	= "";
+		$_SESSION['login']		= "";
+		@include_once('content/error/user_gesperrt.php');
+		@include_once('lib/footer.php');
+		die();
+		}
+	} else {
+	@include_once('content/error/kein_zutritt.php');
+	@include_once('lib/footer.php');
+	die();
+	}
+}
+
+// Refumsatz gutschreiben
+function refumsatz ($buchungssumme,$fuer) {
+global $db_prefix;
+	db_query ('UPDATE '.$db_prefix.'_werberdaten SET umsatz = umsatz + '.$buchungssumme.' WHERE uid = '.$fuer.' and werber != 0');
+}
+
+// Aktivrally
+function aktivralley ($buchungssumme,$fuer) {
+global $db_prefix;
+	// Wenn Aktivralley läuft
+	$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
+	if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
+		db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + '.$buchungssumme.' WHERE uid = '.$fuer);
+		if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
+	}
+}
+
+// Klickrally
+function klickralley () {
+global $db_prefix,$_SESSION;
+	// wenn Klickralley läuft
+	$ralleydaten_klick = mysql_fetch_array(db_query("SELECT `start`,`ende`,`art`,`pro` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'klickralley' LIMIT 1"));
+	if ($ralleydaten_klick['start'] <= time() && $ralleydaten_klick['ende'] >= time()) {
+		db_query ('UPDATE '.$db_prefix.'_klickralley SET klicks = klicks + 1 WHERE uid = '.$_SESSION['uid']);
+		if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_klickralley (uid,klicks) VALUES ('.$_SESSION['uid'].', 1)');
+	}
+}
+
+// Bilanzen
+function bilanz ($ein,$aus) {
+global $db_prefix;
+     $ein = round($ein,2);
+     $aus = round($aus,2);
+     $date_stamp = mktime(0,0,0,date(m),date(d),date(Y));
+       mysql_query('UPDATE '.$db_prefix.'_bilanz SET ein=ein+"'.$ein.'", aus=aus+"'.$aus.'" WHERE date='.$date_stamp.' LIMIT 1');
+       if (mysql_affected_rows() == 0) db_query('INSERT INTO '.$db_prefix.'_bilanz (ein,aus,date) VALUES ("'.$ein.'","'.$aus.'",'.$date_stamp.')');
+}
+?>
\ No newline at end of file
diff --git a/lib/header.php b/lib/header.php
new file mode 100644
index 0000000..7e42320
--- /dev/null
+++ b/lib/header.php
@@ -0,0 +1,82 @@
+<?
+require ('lib/functions.lib.php');
+db_connect();
+require ('lib/session.lib.php');
+require ('lib/layout.lib.php');
+
+// Extras-Erweiterung initalisieren und ausfuehren
+require ( 'lib/extras.lib.php' );
+
+// SecVMS change begin
+if (!isset($_GET['content']) || empty ($_GET['content'])) $_GET['content'] = '/intern/startseite';
+// SecVMS change end
+
+if (!file_exists('content'.$_GET['content'].'.php')) $_GET['content'] = '/error/keine_seite';
+
+// Reloads noch in Cron auslagern -> zu performancelastig!
+// db_query ("DELETE FROM ".$db_prefix."_reloads WHERE bis <= '".time()."'");
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title><?=$seitenname;?></title>
+<link rel="stylesheet" href="css/main.css" type="text/css">
+<meta name="Author" content="Designerscripte.net">
+<meta name="Publisher" content="Designerscripte.net">
+<meta name="Copyright" content="Designerscripte.net">
+<meta name="Keywords" content="vms,paid4,loginscript">
+<meta name="Description" content="Verdien was Du willst">
+<meta name="Page-topic" content="Loseseite zu Klamm.de">
+<meta name="Audience" content="">
+<meta name="Content-language" content="DE">
+<meta name="Page-type" content="Nicht Gewinnorientiert">
+<meta name="Robots" content="INDEX,FOLLOW">
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> 
+<link rel="stylesheet" href="/css/main.css" type="text/css">
+
+<?
+if ($_GET['content'] == '/intern/startseite') @require_once ('lib/texte/alt_startseitenpopup.txt');
+if ($_GET['content'] == '/betteln') @require_once ('lib/texte/alt_bettelseitenpopup.txt');
+?>
+
+</head>
+<body style="topmargin:5; leftmargin:0;">
+<table width="800" cellpadding="0" cellspacing="0" border="0" align="center"><tr><td valign="top" align="center">
+<table style="border:solid 1px #4B69FF" width="800" border="0" cellpadding="0" cellspacing="0" bgcolor="#FEFBF5">
+<tr>
+<td height="120" width="100%" valign="top" style="background-image:url('./images/header.gif');">
+<div style="position:relative; top:20px; right:-321px;">
+<?@require_once ('lib/texte/alt_headerbanner.txt');?>
+</div>
+</td></tr>
+<tr>
+<td bgcolor="#FEFBF5" valign="top" align="center">
+<table width="100%">
+<tr>
+<td height="100%" width="100%" align="center">
+&nbsp;&nbsp;
+&nbsp;&nbsp;<a href="index.php">Home</a>&nbsp;&nbsp;
+&nbsp;<a href="?content=/intern/mediadaten">Mediadaten</a>&nbsp;&nbsp;
+&nbsp;<a href="?content=/intern/agbs">AGB</a>&nbsp;&nbsp;
+&nbsp;<a href="?content=/intern/faqs">FAQ</a>&nbsp;&nbsp;
+&nbsp;<a href="?content=/intern/werbemittel">Werbemittel</a>&nbsp;&nbsp;
+&nbsp;<a href="?content=/intern/impressum">Impressum</a>&nbsp;&nbsp;
+</td>
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+
+
+<table width="800" border="0" cellpadding="0" cellspacing="0">
+<tr><td height="5"></td></tr></table>
+
+<!-- Inhalt -->
+
+<table width="800" cellpadding="0" cellspacing="0" border="0">
+<tr>
+<td width="150" valign="top" align="left"><?@include_once('lib/menue_links.php');?></td>
+<td width="5" valign="top" align="left"></td>
+<td width="490" valign="top" align="left">
\ No newline at end of file
diff --git a/lib/layout.lib.php b/lib/layout.lib.php
new file mode 100644
index 0000000..115dc02
--- /dev/null
+++ b/lib/layout.lib.php
@@ -0,0 +1,53 @@
+<?
+function head($titel){
+echo '
+<table style="border:solid 0px black" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#4B69FF">
+<tr>
+<td valign="middle" align="center" height="18" bgcolor="#1e364c"><b><font color="#ffffff">'.$titel.'</font></b></td>
+</tr>
+<tr>
+<td bgcolor="#FEFBF5" valign="top" align="left">
+<table width="98%" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+';
+}
+
+function foot(){
+echo '
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0"><tr><td height="5"></td></tr></table>
+';
+}
+
+function menuehead($titel){
+echo'
+<table style="border:solid 0px black" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#4B69FF">
+<tr>
+<td valign="middle" align="center" height="18" bgcolor="#1e364c"><b><font color="#ffffff">'.$titel.'</font></b></td>
+</tr>
+<tr>
+<td bgcolor="#FEFBF5" valign="top" align="left">
+<table width="98%" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+';
+}
+
+function menuefoot(){
+echo'
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0"><tr><td height="5"></td></tr></table>
+';
+}
+?>
\ No newline at end of file
diff --git a/lib/mail/LICENSE b/lib/mail/LICENSE
new file mode 100644
index 0000000..207a79c
--- /dev/null
+++ b/lib/mail/LICENSE
@@ -0,0 +1,278 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
diff --git a/lib/mail/RFC822.php b/lib/mail/RFC822.php
new file mode 100644
index 0000000..e4220ee
--- /dev/null
+++ b/lib/mail/RFC822.php
@@ -0,0 +1,872 @@
+<?php
+/**
+* RFC 822 Email address list validation Utility
+*
+* What is it?
+*
+* This class will take an address string, and parse it into it's consituent
+* parts, be that either addresses, groups, or combinations. Nested groups
+* are not supported. The structure it returns is pretty straight forward,
+* and is similar to that provided by the imap_rfc822_parse_adrlist(). Use
+* print_r() to view the structure.
+*
+* How do I use it?
+*
+* $address_string = 'My Group: "Richard Heyes" <richard@localhost> (A comment), ted@example.com (Ted Bloggs), Barney;';
+* $structure = Mail_RFC822::parseAddressList($address_string, 'example.com', TRUE)
+* print_r($structure);
+*
+* @author  Richard Heyes <richard@phpguru.org>
+* @author  Chuck Hagenbuch <chuck@horde.org>
+* @version $Revision: 1.1 $
+* @package Mail
+*/
+
+class Mail_RFC822
+{
+    /**
+     * The address being parsed by the RFC822 object.
+     * @var string $address
+     */
+    var $address = '';
+
+    /**
+     * The default domain to use for unqualified addresses.
+     * @var string $default_domain
+     */
+    var $default_domain = 'localhost';
+
+    /**
+     * Should we return a nested array showing groups, or flatten everything?
+     * @var boolean $nestGroups
+     */
+    var $nestGroups = true;
+
+    /**
+     * Whether or not to validate atoms for non-ascii characters.
+     * @var boolean $validate
+     */
+    var $validate = true;
+
+    /**
+     * The array of raw addresses built up as we parse.
+     * @var array $addresses
+     */
+    var $addresses = array();
+
+    /**
+     * The final array of parsed address information that we build up.
+     * @var array $structure
+     */
+    var $structure = array();
+
+    /**
+     * The current error message, if any.
+     * @var string $error
+     */
+    var $error = null;
+
+    /**
+     * An internal counter/pointer.
+     * @var integer $index
+     */
+    var $index = null;
+
+    /**
+     * The number of groups that have been found in the address list.
+     * @var integer $num_groups
+     * @access public
+     */
+    var $num_groups = 0;
+
+    /**
+     * A variable so that we can tell whether or not we're inside a
+     * Mail_RFC822 object.
+     * @var boolean $mailRFC822
+     */
+    var $mailRFC822 = true;
+    
+    /**
+    * A limit after which processing stops
+    * @var int $limit
+    */
+    var $limit = null;
+
+
+    /**
+     * Sets up the object. The address must either be set here or when
+     * calling parseAddressList(). One or the other.
+     *
+     * @access public
+     * @param string  $address         The address(es) to validate.
+     * @param string  $default_domain  Default domain/host etc. If not supplied, will be set to localhost.
+     * @param boolean $nest_groups     Whether to return the structure with groups nested for easier viewing.
+     * @param boolean $validate        Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance.
+     * 
+     * @return object Mail_RFC822 A new Mail_RFC822 object.
+     */
+    function Mail_RFC822($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
+    {
+        if (isset($address))        $this->address        = $address;
+        if (isset($default_domain)) $this->default_domain = $default_domain;
+        if (isset($nest_groups))    $this->nestGroups     = $nest_groups;
+        if (isset($validate))       $this->validate       = $validate;
+        if (isset($limit))          $this->limit          = $limit;
+    }
+
+
+    /**
+     * Starts the whole process. The address must either be set here
+     * or when creating the object. One or the other.
+     *
+     * @access public
+     * @param string  $address         The address(es) to validate.
+     * @param string  $default_domain  Default domain/host etc.
+     * @param boolean $nest_groups     Whether to return the structure with groups nested for easier viewing.
+     * @param boolean $validate        Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance.
+     * 
+     * @return array A structured array of addresses.
+     */
+    function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
+    {
+
+        if (!isset($this->mailRFC822)) {
+            $obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit);
+            return $obj->parseAddressList();
+        }
+
+        if (isset($address))        $this->address        = $address;
+        if (isset($default_domain)) $this->default_domain = $default_domain;
+        if (isset($nest_groups))    $this->nestGroups     = $nest_groups;
+        if (isset($validate))       $this->validate       = $validate;
+        if (isset($limit))          $this->limit          = $limit;
+
+        $this->structure  = array();
+        $this->addresses  = array();
+        $this->error      = null;
+        $this->index      = null;
+
+        while ($this->address = $this->_splitAddresses($this->address)) {
+            continue;
+        }
+        
+        if ($this->address === false || isset($this->error)) {
+            return false;
+        }
+
+        // Reset timer since large amounts of addresses can take a long time to
+        // get here
+        set_time_limit(30);
+
+        // Loop through all the addresses
+        for ($i = 0; $i < count($this->addresses); $i++){
+
+            if (($return = $this->_validateAddress($this->addresses[$i])) === false
+                || isset($this->error)) {
+                return false;
+            }
+            
+            if (!$this->nestGroups) {
+                $this->structure = array_merge($this->structure, $return);
+            } else {
+                $this->structure[] = $return;
+            }
+        }
+
+        return $this->structure;
+    }
+
+    /**
+     * Splits an address into seperate addresses.
+     * 
+     * @access private
+     * @param string $address The addresses to split.
+     * @return boolean Success or failure.
+     */
+    function _splitAddresses($address)
+    {
+
+        if (!empty($this->limit) AND count($this->addresses) == $this->limit) {
+            return '';
+        }
+
+        if ($this->_isGroup($address) && !isset($this->error)) {
+            $split_char = ';';
+            $is_group   = true;
+        } elseif (!isset($this->error)) {
+            $split_char = ',';
+            $is_group   = false;
+        } elseif (isset($this->error)) {
+            return false;
+        }
+
+        // Split the string based on the above ten or so lines.
+        $parts  = explode($split_char, $address);
+        $string = $this->_splitCheck($parts, $split_char);
+
+        // If a group...
+        if ($is_group) {
+            // If $string does not contain a colon outside of
+            // brackets/quotes etc then something's fubar.
+
+            // First check there's a colon at all:
+            if (strpos($string, ':') === false) {
+                $this->error = 'Invalid address: ' . $string;
+                return false;
+            }
+
+            // Now check it's outside of brackets/quotes:
+            if (!$this->_splitCheck(explode(':', $string), ':'))
+                return false;
+
+            // We must have a group at this point, so increase the counter:
+            $this->num_groups++;
+        }
+
+        // $string now contains the first full address/group.
+        // Add to the addresses array.
+        $this->addresses[] = array(
+                                   'address' => trim($string),
+                                   'group'   => $is_group
+                                   );
+
+        // Remove the now stored address from the initial line, the +1
+        // is to account for the explode character.
+        $address = trim(substr($address, strlen($string) + 1));
+
+        // If the next char is a comma and this was a group, then
+        // there are more addresses, otherwise, if there are any more
+        // chars, then there is another address.
+        if ($is_group && substr($address, 0, 1) == ','){
+            $address = trim(substr($address, 1));
+            return $address;
+
+        } elseif (strlen($address) > 0) {
+            return $address;
+
+        } else {
+            return '';
+        }
+
+        // If you got here then something's off
+        return false;
+    }
+
+    /**
+     * Checks for a group at the start of the string.
+     * 
+     * @access private
+     * @param string $address The address to check.
+     * @return boolean Whether or not there is a group at the start of the string.
+     */
+    function _isGroup($address)
+    {
+        // First comma not in quotes, angles or escaped:
+        $parts  = explode(',', $address);
+        $string = $this->_splitCheck($parts, ',');
+
+        // Now we have the first address, we can reliably check for a
+        // group by searching for a colon that's not escaped or in
+        // quotes or angle brackets.
+        if (count($parts = explode(':', $string)) > 1) {
+            $string2 = $this->_splitCheck($parts, ':');
+            return ($string2 !== $string);
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * A common function that will check an exploded string.
+     * 
+     * @access private
+     * @param array $parts The exloded string.
+     * @param string $char  The char that was exploded on.
+     * @return mixed False if the string contains unclosed quotes/brackets, or the string on success.
+     */
+    function _splitCheck($parts, $char)
+    {
+        $string = $parts[0];
+
+        for ($i = 0; $i < count($parts); $i++) {
+            if ($this->_hasUnclosedQuotes($string)
+                || $this->_hasUnclosedBrackets($string, '<>')
+                || $this->_hasUnclosedBrackets($string, '[]')
+                || $this->_hasUnclosedBrackets($string, '()')
+                || substr($string, -1) == '\\') {
+                if (isset($parts[$i + 1])) {
+                    $string = $string . $char . $parts[$i + 1];
+                } else {
+                    $this->error = 'Invalid address spec. Unclosed bracket or quotes';
+                    return false;
+                }
+            } else {
+                $this->index = $i;
+                break;
+            }
+        }
+
+        return $string;
+    }
+
+    /**
+     * Checks if a string has an unclosed quotes or not.
+     * 
+     * @access private
+     * @param string $string The string to check.
+     * @return boolean True if there are unclosed quotes inside the string, false otherwise.
+     */
+    function _hasUnclosedQuotes($string)
+    {
+        $string     = explode('"', $string);
+        $string_cnt = count($string);
+
+        for ($i = 0; $i < (count($string) - 1); $i++)
+            if (substr($string[$i], -1) == '\\')
+                $string_cnt--;
+
+        return ($string_cnt % 2 === 0);
+    }
+
+    /**
+     * Checks if a string has an unclosed brackets or not. IMPORTANT:
+     * This function handles both angle brackets and square brackets;
+     * 
+     * @access private
+     * @param string $string The string to check.
+     * @param string $chars  The characters to check for.
+     * @return boolean True if there are unclosed brackets inside the string, false otherwise.
+     */
+    function _hasUnclosedBrackets($string, $chars)
+    {
+        $num_angle_start = substr_count($string, $chars[0]);
+        $num_angle_end   = substr_count($string, $chars[1]);
+
+        $this->_hasUnclosedBracketsSub($string, $num_angle_start, $chars[0]);
+        $this->_hasUnclosedBracketsSub($string, $num_angle_end, $chars[1]);
+
+        if ($num_angle_start < $num_angle_end) {
+            $this->error = 'Invalid address spec. Unmatched quote or bracket (' . $chars . ')';
+            return false;
+        } else {
+            return ($num_angle_start > $num_angle_end);
+        }
+    }
+
+    /**
+     * Sub function that is used only by hasUnclosedBrackets().
+     * 
+     * @access private
+     * @param string $string The string to check.
+     * @param integer &$num    The number of occurences.
+     * @param string $char   The character to count.
+     * @return integer The number of occurences of $char in $string, adjusted for backslashes.
+     */
+    function _hasUnclosedBracketsSub($string, &$num, $char)
+    {
+        $parts = explode($char, $string);
+        for ($i = 0; $i < count($parts); $i++){
+            if (substr($parts[$i], -1) == '\\' || $this->_hasUnclosedQuotes($parts[$i]))
+                $num--;
+            if (isset($parts[$i + 1]))
+                $parts[$i + 1] = $parts[$i] . $char . $parts[$i + 1];
+        }
+        
+        return $num;
+    }
+
+    /**
+     * Function to begin checking the address.
+     *
+     * @access private
+     * @param string $address The address to validate.
+     * @return mixed False on failure, or a structured array of address information on success.
+     */
+    function _validateAddress($address)
+    {
+        $is_group = false;
+
+        if ($address['group']) {
+            $is_group = true;
+
+            // Get the group part of the name
+            $parts     = explode(':', $address['address']);
+            $groupname = $this->_splitCheck($parts, ':');
+            $structure = array();
+
+            // And validate the group part of the name.
+            if (!$this->_validatePhrase($groupname)){
+                $this->error = 'Group name did not validate.';
+                return false;
+            } else {
+                // Don't include groups if we are not nesting
+                // them. This avoids returning invalid addresses.
+                if ($this->nestGroups) {
+                    $structure = new stdClass;
+                    $structure->groupname = $groupname;
+                }
+            }
+
+            $address['address'] = ltrim(substr($address['address'], strlen($groupname . ':')));
+        }
+
+        // If a group then split on comma and put into an array.
+        // Otherwise, Just put the whole address in an array.
+        if ($is_group) {
+            while (strlen($address['address']) > 0) {
+                $parts       = explode(',', $address['address']);
+                $addresses[] = $this->_splitCheck($parts, ',');
+                $address['address'] = trim(substr($address['address'], strlen(end($addresses) . ',')));
+            }
+        } else {
+            $addresses[] = $address['address'];
+        }
+
+        // Check that $addresses is set, if address like this:
+        // Groupname:;
+        // Then errors were appearing.
+        if (!isset($addresses)){
+            $this->error = 'Empty group.';
+            return false;
+        }
+
+        for ($i = 0; $i < count($addresses); $i++) {
+            $addresses[$i] = trim($addresses[$i]);
+        }
+
+        // Validate each mailbox.
+        // Format could be one of: name <geezer@domain.com>
+        //                         geezer@domain.com
+        //                         geezer
+        // ... or any other format valid by RFC 822.
+        array_walk($addresses, array($this, 'validateMailbox'));
+
+        // Nested format
+        if ($this->nestGroups) {
+            if ($is_group) {
+                $structure->addresses = $addresses;
+            } else {
+                $structure = $addresses[0];
+            }
+
+        // Flat format
+        } else {
+            if ($is_group) {
+                $structure = array_merge($structure, $addresses);
+            } else {
+                $structure = $addresses;
+            }
+        }
+
+        return $structure;
+    }
+
+    /**
+     * Function to validate a phrase.
+     *
+     * @access private
+     * @param string $phrase The phrase to check.
+     * @return boolean Success or failure.
+     */
+    function _validatePhrase($phrase)
+    {
+        // Splits on one or more Tab or space.
+        $parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY);
+
+        $phrase_parts = array();
+        while (count($parts) > 0){
+            $phrase_parts[] = $this->_splitCheck($parts, ' ');
+            for ($i = 0; $i < $this->index + 1; $i++)
+                array_shift($parts);
+        }
+
+        for ($i = 0; $i < count($phrase_parts); $i++) {
+            // If quoted string:
+            if (substr($phrase_parts[$i], 0, 1) == '"') {
+                if (!$this->_validateQuotedString($phrase_parts[$i]))
+                    return false;
+                continue;
+            }
+
+            // Otherwise it's an atom:
+            if (!$this->_validateAtom($phrase_parts[$i])) return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Function to validate an atom which from rfc822 is:
+     * atom = 1*<any CHAR except specials, SPACE and CTLs>
+     * 
+     * If validation ($this->validate) has been turned off, then
+     * validateAtom() doesn't actually check anything. This is so that you
+     * can split a list of addresses up before encoding personal names
+     * (umlauts, etc.), for example.
+     * 
+     * @access private
+     * @param string $atom The string to check.
+     * @return boolean Success or failure.
+     */
+    function _validateAtom($atom)
+    {
+        if (!$this->validate) {
+            // Validation has been turned off; assume the atom is okay.
+            return true;
+        }
+
+        // Check for any char from ASCII 0 - ASCII 127
+        if (!preg_match('/^[\\x00-\\x7E]+$/i', $atom, $matches)) {
+            return false;
+        }
+
+        // Check for specials:
+        if (preg_match('/[][()<>@,;\\:". ]/', $atom)) {
+            return false;
+        }
+
+        // Check for control characters (ASCII 0-31):
+        if (preg_match('/[\\x00-\\x1F]+/', $atom)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Function to validate quoted string, which is:
+     * quoted-string = <"> *(qtext/quoted-pair) <">
+     * 
+     * @access private
+     * @param string $qstring The string to check
+     * @return boolean Success or failure.
+     */
+    function _validateQuotedString($qstring)
+    {
+        // Leading and trailing "
+        $qstring = substr($qstring, 1, -1);
+
+        // Perform check.
+        return !(preg_match('/(.)[\x0D\\\\"]/', $qstring, $matches) && $matches[1] != '\\');
+    }
+
+    /**
+     * Function to validate a mailbox, which is:
+     * mailbox =   addr-spec         ; simple address
+     *           / phrase route-addr ; name and route-addr
+     * 
+     * @access public
+     * @param string &$mailbox The string to check.
+     * @return boolean Success or failure.
+     */
+    function validateMailbox(&$mailbox)
+    {
+        // A couple of defaults.
+        $phrase  = '';
+        $comment = '';
+
+        // Catch any RFC822 comments and store them separately
+        $_mailbox = $mailbox;
+        while (strlen(trim($_mailbox)) > 0) {
+            $parts = explode('(', $_mailbox);
+            $before_comment = $this->_splitCheck($parts, '(');
+            if ($before_comment != $_mailbox) {
+                // First char should be a (
+                $comment    = substr(str_replace($before_comment, '', $_mailbox), 1);
+                $parts      = explode(')', $comment);
+                $comment    = $this->_splitCheck($parts, ')');
+                $comments[] = $comment;
+
+                // +1 is for the trailing )
+                $_mailbox   = substr($_mailbox, strpos($_mailbox, $comment)+strlen($comment)+1);
+            } else {
+                break;
+            }
+        }
+
+        for($i=0; $i<count(@$comments); $i++){
+            $mailbox = str_replace('('.$comments[$i].')', '', $mailbox);
+        }
+        $mailbox = trim($mailbox);
+
+        // Check for name + route-addr
+        if (substr($mailbox, -1) == '>' && substr($mailbox, 0, 1) != '<') {
+            $parts  = explode('<', $mailbox);
+            $name   = $this->_splitCheck($parts, '<');
+
+            $phrase     = trim($name);
+            $route_addr = trim(substr($mailbox, strlen($name.'<'), -1));
+
+            if ($this->_validatePhrase($phrase) === false || ($route_addr = $this->_validateRouteAddr($route_addr)) === false)
+                return false;
+
+        // Only got addr-spec
+        } else {
+            // First snip angle brackets if present.
+            if (substr($mailbox,0,1) == '<' && substr($mailbox,-1) == '>')
+                $addr_spec = substr($mailbox,1,-1);
+            else
+                $addr_spec = $mailbox;
+
+            if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false)
+                return false;
+        }
+
+        // Construct the object that will be returned.
+        $mbox = new stdClass();
+
+        // Add the phrase (even if empty) and comments
+        $mbox->personal = $phrase;
+        $mbox->comment  = isset($comments) ? $comments : array();
+
+        if (isset($route_addr)) {
+            $mbox->mailbox = $route_addr['local_part'];
+            $mbox->host    = $route_addr['domain'];
+            $route_addr['adl'] !== '' ? $mbox->adl = $route_addr['adl'] : '';
+        } else {
+            $mbox->mailbox = $addr_spec['local_part'];
+            $mbox->host    = $addr_spec['domain'];
+        }
+
+        $mailbox = $mbox;
+        return true;
+    }
+
+    /**
+     * This function validates a route-addr which is:
+     * route-addr = "<" [route] addr-spec ">"
+     *
+     * Angle brackets have already been removed at the point of
+     * getting to this function.
+     * 
+     * @access private
+     * @param string $route_addr The string to check.
+     * @return mixed False on failure, or an array containing validated address/route information on success.
+     */
+    function _validateRouteAddr($route_addr)
+    {
+        // Check for colon.
+        if (strpos($route_addr, ':') !== false) {
+            $parts = explode(':', $route_addr);
+            $route = $this->_splitCheck($parts, ':');
+        } else {
+            $route = $route_addr;
+        }
+
+        // If $route is same as $route_addr then the colon was in
+        // quotes or brackets or, of course, non existent.
+        if ($route === $route_addr){
+            unset($route);
+            $addr_spec = $route_addr;
+            if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) {
+                return false;
+            }
+        } else {
+            // Validate route part.
+            if (($route = $this->_validateRoute($route)) === false) {
+                return false;
+            }
+
+            $addr_spec = substr($route_addr, strlen($route . ':'));
+
+            // Validate addr-spec part.
+            if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) {
+                return false;
+            }
+        }
+
+        if (isset($route)) {
+            $return['adl'] = $route;
+        } else {
+            $return['adl'] = '';
+        }
+
+        $return = array_merge($return, $addr_spec);
+        return $return;
+    }
+
+    /**
+     * Function to validate a route, which is:
+     * route = 1#("@" domain) ":"
+     * 
+     * @access private
+     * @param string $route The string to check.
+     * @return mixed False on failure, or the validated $route on success.
+     */
+    function _validateRoute($route)
+    {
+        // Split on comma.
+        $domains = explode(',', trim($route));
+
+        for ($i = 0; $i < count($domains); $i++) {
+            $domains[$i] = str_replace('@', '', trim($domains[$i]));
+            if (!$this->_validateDomain($domains[$i])) return false;
+        }
+
+        return $route;
+    }
+
+    /**
+     * Function to validate a domain, though this is not quite what
+     * you expect of a strict internet domain.
+     *
+     * domain = sub-domain *("." sub-domain)
+     * 
+     * @access private
+     * @param string $domain The string to check.
+     * @return mixed False on failure, or the validated domain on success.
+     */
+    function _validateDomain($domain)
+    {
+        // Note the different use of $subdomains and $sub_domains                        
+        $subdomains = explode('.', $domain);
+
+        while (count($subdomains) > 0) {
+            $sub_domains[] = $this->_splitCheck($subdomains, '.');
+            for ($i = 0; $i < $this->index + 1; $i++)
+                array_shift($subdomains);
+        }
+
+        for ($i = 0; $i < count($sub_domains); $i++) {
+            if (!$this->_validateSubdomain(trim($sub_domains[$i])))
+                return false;
+        }
+
+        // Managed to get here, so return input.
+        return $domain;
+    }
+
+    /**
+     * Function to validate a subdomain:
+     *   subdomain = domain-ref / domain-literal
+     * 
+     * @access private
+     * @param string $subdomain The string to check.
+     * @return boolean Success or failure.
+     */
+    function _validateSubdomain($subdomain)
+    {
+        if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){
+            if (!$this->_validateDliteral($arr[1])) return false;
+        } else {
+            if (!$this->_validateAtom($subdomain)) return false;
+        }
+
+        // Got here, so return successful.
+        return true;
+    }
+
+    /**
+     * Function to validate a domain literal:
+     *   domain-literal =  "[" *(dtext / quoted-pair) "]"
+     * 
+     * @access private
+     * @param string $dliteral The string to check.
+     * @return boolean Success or failure.
+     */
+    function _validateDliteral($dliteral)
+    {
+        return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\';
+    }
+
+    /**
+     * Function to validate an addr-spec.
+     *
+     * addr-spec = local-part "@" domain
+     * 
+     * @access private
+     * @param string $addr_spec The string to check.
+     * @return mixed False on failure, or the validated addr-spec on success.
+     */
+    function _validateAddrSpec($addr_spec)
+    {
+        $addr_spec = trim($addr_spec);
+
+        // Split on @ sign if there is one.
+        if (strpos($addr_spec, '@') !== false) {
+            $parts      = explode('@', $addr_spec);
+            $local_part = $this->_splitCheck($parts, '@');
+            $domain     = substr($addr_spec, strlen($local_part . '@'));
+
+        // No @ sign so assume the default domain.
+        } else {
+            $local_part = $addr_spec;
+            $domain     = $this->default_domain;
+        }
+
+        if (($local_part = $this->_validateLocalPart($local_part)) === false) return false;
+        if (($domain     = $this->_validateDomain($domain)) === false) return false;
+        
+        // Got here so return successful.
+        return array('local_part' => $local_part, 'domain' => $domain);
+    }
+
+    /**
+     * Function to validate the local part of an address:
+     *   local-part = word *("." word)
+     * 
+     * @access private
+     * @param string $local_part
+     * @return mixed False on failure, or the validated local part on success.
+     */
+    function _validateLocalPart($local_part)
+    {
+        $parts = explode('.', $local_part);
+
+        // Split the local_part into words.
+        while (count($parts) > 0){
+            $words[] = $this->_splitCheck($parts, '.');
+            for ($i = 0; $i < $this->index + 1; $i++) {
+                array_shift($parts);
+            }
+        }
+
+        // Validate each word.
+        for ($i = 0; $i < count($words); $i++) {
+            if ($this->_validatePhrase(trim($words[$i])) === false) return false;
+        }
+
+        // Managed to get here, so return the input.
+        return $local_part;
+    }
+
+    /**
+    * Returns an approximate count of how many addresses are
+    * in the given string. This is APPROXIMATE as it only splits
+    * based on a comma which has no preceding backslash. Could be
+    * useful as large amounts of addresses will end up producing
+    * *large* structures when used with parseAddressList().
+    *
+    * @param  string $data Addresses to count
+    * @return int          Approximate count
+    */
+    function approximateCount($data)
+    {
+        return count(preg_split('/(?<!\\\\),/', $data));
+    }
+    
+    /**
+    * This is a email validating function seperate to the rest
+    * of the class. It simply validates whether an email is of
+    * the common internet form: <user>@<domain>. This can be
+    * sufficient for most people. Optional stricter mode can
+    * be utilised which restricts mailbox characters allowed
+    * to alphanumeric, full stop, hyphen and underscore.
+    *
+    * @param  string  $data   Address to check
+    * @param  boolean $strict Optional stricter mode
+    * @return mixed           False if it fails, an indexed array
+    *                         username/domain if it matches
+    */
+    function isValidInetAddress($data, $strict = false)
+    {
+        $regex = $strict ? '/^([.0-9a-z_-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i';
+        if (preg_match($regex, trim($data), $matches)) {
+            return array($matches[1], $matches[2]);
+        } else {
+            return false;
+        }
+    }
+}
+
+?>
diff --git a/lib/mail/background.gif b/lib/mail/background.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3dbe69a09a5c5bff487bc45b73db0a929b115c09
GIT binary patch
literal 1321
zcmZ?wbhEHbWME-q_|Cwf*mF;_=bqt|dzMq~IRVj}dtP(y1p(30d&x`hRquV?viJFv
zW6$Rtd%pDC^R?%m@4fc^*uD4Hp1*(o{5=r-9|fZ!FqA_;hXDkDd4YlB9|JQBgG0dr
zM+Qa~9)*Ah4o$2)QZ@|?j)z(}MGUgeoG4s;yidWti^sEQ$;n9?{;PaW7A-wJ%^?0%
zk7x0+v$HJnU!6Hwy!`w;hk7nvuaXrP7kTt+`JO6Sd3jmDe6L=wuZw{uZshVgabaOo
z2fv)l1cimGZm!HYzsmP?+1lIN3htlk^)6p`cUQ&xS7%R`uaBS1yqQaE#f66O4FbpF
zo^WjX=ytqE-n-97QaR=HWW(@f1v87&&d;{){%2!l^78Vs;OscwS*4lRS0t{^^Zi}=
z_Qv+~+xL2BZ-001Kt1<#Uz_s6`^THr<@5Gf7Ck?;(74{uw(9H4Ynzkr@7uGx<o)%7
z|FZW;Sri;>;pX=ikxu;h{QLdK?bFxC+LZtL{`~d&{`>p>|6_PJUA~^_UwA?Ti<-rQ
zCN`}b3e6l&6%ShY+<rW06}zT(AdI8*Mj`_<PeKG!yyuh|t~)le-S;rr`eRbJ!NDDq
zdUP&UOzPEmc;ZpF&9NJgd+e`CJn40Q7V)IdPK|TPBqt-!C6nEpI-g7mF^haUIoxgL
z(<xzPolB=jHJyAqJ*6%3*^IPhozL8vb9P*v-J)xv<np>V^qTwJl_z2fHQ(KgnSbx2
zWpqiCnAH4*mA__cEUMM}wS1Aboz#jYQ*Ir5k=7C>wQ}jKB(9aqr*pk}v7$FG>(zp}
iuPilJE|8n0l`AlF)2dagHy!%*a?MsXu1E(425SHd2KTQ3

literal 0
HcmV?d00001

diff --git a/lib/mail/klasse.php b/lib/mail/klasse.php
new file mode 100644
index 0000000..d75b270
--- /dev/null
+++ b/lib/mail/klasse.php
@@ -0,0 +1,795 @@
+<?php
+/**
+* This file is part of the htmlMimeMail package (http://www.phpguru.org/)
+*
+* htmlMimeMail is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* htmlMimeMail is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with htmlMimeMail; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+* 
+* © Copyright 2004 Richard Heyes
+*/
+
+require_once(dirname(__FILE__) . '/mimePart.php');
+
+class htmlMimeMail
+{
+    /**
+    * The html part of the message
+    * @var string
+    */
+    var $html;
+
+    /**
+    * The text part of the message(only used in TEXT only messages)
+    * @var string
+    */
+    var $text;
+
+    /**
+    * The main body of the message after building
+    * @var string
+    */
+    var $output;
+
+    /**
+    * The alternative text to the HTML part (only used in HTML messages)
+    * @var string
+    */
+    var $html_text;
+
+    /**
+    * An array of embedded images/objects
+    * @var array
+    */
+    var $html_images;
+
+    /**
+    * An array of recognised image types for the findHtmlImages() method
+    * @var array
+    */
+    var $image_types;
+
+    /**
+    * Parameters that affect the build process
+    * @var array
+    */
+    var $build_params;
+
+    /**
+    * Array of attachments
+    * @var array
+    */
+    var $attachments;
+
+    /**
+    * The main message headers
+    * @var array
+    */
+    var $headers;
+
+    /**
+    * Whether the message has been built or not
+    * @var boolean
+    */
+    var $is_built;
+    
+    /**
+    * The return path address. If not set the From:
+    * address is used instead
+    * @var string
+    */
+    var $return_path;
+    
+    /**
+    * Array of information needed for smtp sending
+    * @var array
+    */
+    var $smtp_params;
+
+    /**
+    * Constructor function. Sets the headers
+    * if supplied.
+    */
+    function htmlMimeMail()
+    {
+        /**
+        * Initialise some variables.
+        */
+        $this->html_images = array();
+        $this->headers     = array();
+        $this->is_built    = false;
+
+        /**
+        * If you want the auto load functionality
+        * to find other image/file types, add the
+        * extension and content type here.
+        */
+        $this->image_types = array(
+                                    'gif'	=> 'image/gif',
+                                    'jpg'	=> 'image/jpeg',
+                                    'jpeg'	=> 'image/jpeg',
+                                    'jpe'	=> 'image/jpeg',
+                                    'bmp'	=> 'image/bmp',
+                                    'png'	=> 'image/png',
+                                    'tif'	=> 'image/tiff',
+                                    'tiff'	=> 'image/tiff',
+                                    'swf'	=> 'application/x-shockwave-flash'
+                                  );
+
+        /**
+        * Set these up
+        */
+        $this->build_params['html_encoding'] = 'quoted-printable';
+        $this->build_params['text_encoding'] = '7bit';
+        $this->build_params['html_charset']  = 'ISO-8859-1';
+        $this->build_params['text_charset']  = 'ISO-8859-1';
+        $this->build_params['head_charset']  = 'ISO-8859-1';
+        $this->build_params['text_wrap']     = 998;
+
+        /**
+        * Defaults for smtp sending
+        */
+        if (!empty($GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST'])) {
+            $helo = $GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST'];
+        } elseif (!empty($GLOBALS['HTTP_SERVER_VARS']['SERVER_NAME'])) {
+            $helo = $GLOBALS['HTTP_SERVER_VARS']['SERVER_NAME'];
+        } else {
+            $helo = 'localhost';
+        }
+
+        $this->smtp_params['host'] = 'localhost';
+        $this->smtp_params['port'] = 25;
+        $this->smtp_params['helo'] = $helo;
+        $this->smtp_params['auth'] = false;
+        $this->smtp_params['user'] = '';
+        $this->smtp_params['pass'] = '';
+
+        /**
+        * Make sure the MIME version header is first.
+        */
+        $this->headers['MIME-Version'] = '1.0';
+    }
+
+    /**
+    * This function will read a file in
+    * from a supplied filename and return
+    * it. This can then be given as the first
+    * argument of the the functions
+    * add_html_image() or add_attachment().
+    */
+    function getFile($filename)
+    {
+        $return = '';
+        if ($fp = fopen($filename, 'rb')) {
+            while (!feof($fp)) {
+                $return .= fread($fp, 1024);
+            }
+            fclose($fp);
+            return $return;
+
+        } else {
+            return false;
+        }
+    }
+
+    /**
+    * Accessor to set the CRLF style
+    */
+    function setCrlf($crlf = "\n")
+    {
+        if (!defined('CRLF')) {
+            define('CRLF', $crlf, true);
+        }
+
+        if (!defined('MAIL_MIMEPART_CRLF')) {
+            define('MAIL_MIMEPART_CRLF', $crlf, true);
+        }
+    }
+
+    /**
+    * Accessor to set the SMTP parameters
+    */
+    function setSMTPParams($host = null, $port = null, $helo = null, $auth = null, $user = null, $pass = null)
+    {
+        if (!is_null($host)) $this->smtp_params['host'] = $host;
+        if (!is_null($port)) $this->smtp_params['port'] = $port;
+        if (!is_null($helo)) $this->smtp_params['helo'] = $helo;
+        if (!is_null($auth)) $this->smtp_params['auth'] = $auth;
+        if (!is_null($user)) $this->smtp_params['user'] = $user;
+        if (!is_null($pass)) $this->smtp_params['pass'] = $pass;
+    }
+
+    /**
+    * Accessor function to set the text encoding
+    */
+    function setTextEncoding($encoding = '7bit')
+    {
+        $this->build_params['text_encoding'] = $encoding;
+    }
+
+    /**
+    * Accessor function to set the HTML encoding
+    */
+    function setHtmlEncoding($encoding = 'quoted-printable')
+    {
+        $this->build_params['html_encoding'] = $encoding;
+    }
+
+    /**
+    * Accessor function to set the text charset
+    */
+    function setTextCharset($charset = 'ISO-8859-1')
+    {
+        $this->build_params['text_charset'] = $charset;
+    }
+
+    /**
+    * Accessor function to set the HTML charset
+    */
+    function setHtmlCharset($charset = 'ISO-8859-1')
+    {
+        $this->build_params['html_charset'] = $charset;
+    }
+
+    /**
+    * Accessor function to set the header encoding charset
+    */
+    function setHeadCharset($charset = 'ISO-8859-1')
+    {
+        $this->build_params['head_charset'] = $charset;
+    }
+
+    /**
+    * Accessor function to set the text wrap count
+    */
+    function setTextWrap($count = 998)
+    {
+        $this->build_params['text_wrap'] = $count;
+    }
+
+    /**
+    * Accessor to set a header
+    */
+    function setHeader($name, $value)
+    {
+        $this->headers[$name] = $value;
+    }
+
+    /**
+    * Accessor to add a Subject: header
+    */
+    function setSubject($subject)
+    {
+        $this->headers['Subject'] = $subject;
+    }
+
+    /**
+    * Accessor to add a From: header
+    */
+    function setFrom($from)
+    {
+        $this->headers['From'] = $from;
+    }
+
+    /**
+    * Accessor to set the return path
+    */
+    function setReturnPath($return_path)
+    {
+        $this->return_path = $return_path;
+    }
+
+    /**
+    * Accessor to add a Cc: header
+    */
+    function setCc($cc)
+    {
+        $this->headers['Cc'] = $cc;
+    }
+
+    /**
+    * Accessor to add a Bcc: header
+    */
+    function setBcc($bcc)
+    {
+        $this->headers['Bcc'] = $bcc;
+    }
+
+    /**
+    * Adds plain text. Use this function
+    * when NOT sending html email
+    */
+    function setText($text = '')
+    {
+        $this->text = $text;
+    }
+
+    /**
+    * Adds a html part to the mail.
+    * Also replaces image names with
+    * content-id's.
+    */
+    function setHtml($html, $text = null, $images_dir = null)
+    {
+        $this->html      = $html;
+        $this->html_text = $text;
+
+        if (isset($images_dir)) {
+            $this->_findHtmlImages($images_dir);
+        }
+    }
+
+    /**
+    * Function for extracting images from
+    * html source. This function will look
+    * through the html code supplied by add_html()
+    * and find any file that ends in one of the
+    * extensions defined in $obj->image_types.
+    * If the file exists it will read it in and
+    * embed it, (not an attachment).
+    *
+    * @author Dan Allen
+    */
+    function _findHtmlImages($images_dir)
+    {
+        // Build the list of image extensions
+        while (list($key,) = each($this->image_types)) {
+            $extensions[] = $key;
+        }
+
+        preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $images);
+
+        for ($i=0; $i<count($images[1]); $i++) {
+            if (file_exists($images_dir . $images[1][$i])) {
+                $html_images[] = $images[1][$i];
+                $this->html = str_replace($images[1][$i], basename($images[1][$i]), $this->html);
+            }
+        }
+
+        if (!empty($html_images)) {
+
+            // If duplicate images are embedded, they may show up as attachments, so remove them.
+            $html_images = array_unique($html_images);
+            sort($html_images);
+    
+            for ($i=0; $i<count($html_images); $i++) {
+                if ($image = $this->getFile($images_dir.$html_images[$i])) {
+                    $ext = substr($html_images[$i], strrpos($html_images[$i], '.') + 1);
+                    $content_type = $this->image_types[strtolower($ext)];
+                    $this->addHtmlImage($image, basename($html_images[$i]), $content_type);
+                }
+            }
+        }
+    }
+
+    /**
+    * Adds an image to the list of embedded
+    * images.
+    */
+    function addHtmlImage($file, $name = '', $c_type='application/octet-stream')
+    {
+        $this->html_images[] = array(
+                                        'body'   => $file,
+                                        'name'   => $name,
+                                        'c_type' => $c_type,
+                                        'cid'    => md5(uniqid(time()))
+                                    );
+    }
+
+
+    /**
+    * Adds a file to the list of attachments.
+    */
+    function addAttachment($file, $name = '', $c_type='application/octet-stream', $encoding = 'base64')
+    {
+        $this->attachments[] = array(
+                                    'body'		=> $file,
+                                    'name'		=> $name,
+                                    'c_type'	=> $c_type,
+                                    'encoding'	=> $encoding
+                                  );
+    }
+
+    /**
+    * Adds a text subpart to a mime_part object
+    */
+    function &_addTextPart(&$obj, $text)
+    {
+        $params['content_type'] = 'text/plain';
+        $params['encoding']     = $this->build_params['text_encoding'];
+        $params['charset']      = $this->build_params['text_charset'];
+        if (is_object($obj)) {
+            $return = $obj->addSubpart($text, $params);
+        } else {
+            $return = new Mail_mimePart($text, $params);
+        }
+        
+        return $return;
+    }
+
+    /**
+    * Adds a html subpart to a mime_part object
+    */
+    function &_addHtmlPart(&$obj)
+    {
+        $params['content_type'] = 'text/html';
+        $params['encoding']     = $this->build_params['html_encoding'];
+        $params['charset']      = $this->build_params['html_charset'];
+        if (is_object($obj)) {
+            $return = $obj->addSubpart($this->html, $params);
+        } else {
+            $return = new Mail_mimePart($this->html, $params);
+        }
+        
+        return $return;
+    }
+
+    /**
+    * Starts a message with a mixed part
+    */
+    function &_addMixedPart()
+    {
+        $params['content_type'] = 'multipart/mixed';
+        $return = new Mail_mimePart('', $params);
+        
+        return $return;
+    }
+
+    /**
+    * Adds an alternative part to a mime_part object
+    */
+    function &_addAlternativePart(&$obj)
+    {
+        $params['content_type'] = 'multipart/alternative';
+        if (is_object($obj)) {
+            $return = $obj->addSubpart('', $params);
+        } else {
+            $return = new Mail_mimePart('', $params);
+        }
+        
+        return $return;
+    }
+
+    /**
+    * Adds a html subpart to a mime_part object
+    */
+    function &_addRelatedPart(&$obj)
+    {
+        $params['content_type'] = 'multipart/related';
+        if (is_object($obj)) {
+            $return = $obj->addSubpart('', $params);
+        } else {
+            $return = new Mail_mimePart('', $params);
+        }
+        
+        return $return;
+    }
+
+    /**
+    * Adds an html image subpart to a mime_part object
+    */
+    function _addHtmlImagePart(&$obj, $value)
+    {
+        $params['content_type'] = $value['c_type'];
+        $params['encoding']     = 'base64';
+        $params['disposition']  = 'inline';
+        $params['dfilename']    = $value['name'];
+        $params['cid']          = $value['cid'];
+        $obj->addSubpart($value['body'], $params);
+    }
+
+    /**
+    * Adds an attachment subpart to a mime_part object
+    */
+    function _addAttachmentPart(&$obj, $value)
+    {
+        $params['content_type'] = $value['c_type'];
+        $params['encoding']     = $value['encoding'];
+        $params['disposition']  = 'attachment';
+        $params['dfilename']    = $value['name'];
+        $obj->addSubpart($value['body'], $params);
+    }
+
+    /**
+    * Builds the multipart message from the
+    * list ($this->_parts). $params is an
+    * array of parameters that shape the building
+    * of the message. Currently supported are:
+    *
+    * $params['html_encoding'] - The type of encoding to use on html. Valid options are
+    *                            "7bit", "quoted-printable" or "base64" (all without quotes).
+    *                            7bit is EXPRESSLY NOT RECOMMENDED. Default is quoted-printable
+    * $params['text_encoding'] - The type of encoding to use on plain text Valid options are
+    *                            "7bit", "quoted-printable" or "base64" (all without quotes).
+    *                            Default is 7bit
+    * $params['text_wrap']     - The character count at which to wrap 7bit encoded data.
+    *                            Default this is 998.
+    * $params['html_charset']  - The character set to use for a html section.
+    *                            Default is ISO-8859-1
+    * $params['text_charset']  - The character set to use for a text section.
+    *                          - Default is ISO-8859-1
+    * $params['head_charset']  - The character set to use for header encoding should it be needed.
+    *                          - Default is ISO-8859-1
+    */
+    function buildMessage($params = array())
+    {
+        if (!empty($params)) {
+            while (list($key, $value) = each($params)) {
+                $this->build_params[$key] = $value;
+            }
+        }
+
+        if (!empty($this->html_images)) {
+            foreach ($this->html_images as $value) {
+                $this->html = str_replace($value['name'], 'cid:'.$value['cid'], $this->html);
+            }
+        }
+
+        $null        = null;
+        $attachments = !empty($this->attachments) ? true : false;
+        $html_images = !empty($this->html_images) ? true : false;
+        $html        = !empty($this->html)        ? true : false;
+        $text        = isset($this->text)         ? true : false;
+
+        switch (true) {
+            case $text AND !$attachments:
+                $message = &$this->_addTextPart($null, $this->text);
+                break;
+
+            case !$text AND $attachments AND !$html:
+                $message = &$this->_addMixedPart();
+
+                for ($i=0; $i<count($this->attachments); $i++) {
+                    $this->_addAttachmentPart($message, $this->attachments[$i]);
+                }
+                break;
+
+            case $text AND $attachments:
+                $message = &$this->_addMixedPart();
+                $this->_addTextPart($message, $this->text);
+
+                for ($i=0; $i<count($this->attachments); $i++) {
+                    $this->_addAttachmentPart($message, $this->attachments[$i]);
+                }
+                break;
+
+            case $html AND !$attachments AND !$html_images:
+                if (!is_null($this->html_text)) {
+                    $message = &$this->_addAlternativePart($null);
+                    $this->_addTextPart($message, $this->html_text);
+                    $this->_addHtmlPart($message);
+                } else {
+                    $message = &$this->_addHtmlPart($null);
+                }
+                break;
+
+            case $html AND !$attachments AND $html_images:
+                if (!is_null($this->html_text)) {
+                    $message = &$this->_addAlternativePart($null);
+                    $this->_addTextPart($message, $this->html_text);
+                    $related = &$this->_addRelatedPart($message);
+                } else {
+                    $message = &$this->_addRelatedPart($null);
+                    $related = &$message;
+                }
+                $this->_addHtmlPart($related);
+                for ($i=0; $i<count($this->html_images); $i++) {
+                    $this->_addHtmlImagePart($related, $this->html_images[$i]);
+                }
+                break;
+
+            case $html AND $attachments AND !$html_images:
+                $message = &$this->_addMixedPart();
+                if (!is_null($this->html_text)) {
+                    $alt = &$this->_addAlternativePart($message);
+                    $this->_addTextPart($alt, $this->html_text);
+                    $this->_addHtmlPart($alt);
+                } else {
+                    $this->_addHtmlPart($message);
+                }
+                for ($i=0; $i<count($this->attachments); $i++) {
+                    $this->_addAttachmentPart($message, $this->attachments[$i]);
+                }
+                break;
+
+            case $html AND $attachments AND $html_images:
+                $message = &$this->_addMixedPart();
+                if (!is_null($this->html_text)) {
+                    $alt = &$this->_addAlternativePart($message);
+                    $this->_addTextPart($alt, $this->html_text);
+                    $rel = &$this->_addRelatedPart($alt);
+                } else {
+                    $rel = &$this->_addRelatedPart($message);
+                }
+                $this->_addHtmlPart($rel);
+                for ($i=0; $i<count($this->html_images); $i++) {
+                    $this->_addHtmlImagePart($rel, $this->html_images[$i]);
+                }
+                for ($i=0; $i<count($this->attachments); $i++) {
+                    $this->_addAttachmentPart($message, $this->attachments[$i]);
+                }
+                break;
+
+        }
+
+        if (isset($message)) {
+            $output = $message->encode();
+            $this->output   = $output['body'];
+            $this->headers  = array_merge($this->headers, $output['headers']);
+
+            // Add message ID header
+            srand((double)microtime()*10000000);
+            $message_id = sprintf('<%s.%s@%s>', base_convert(time(), 10, 36), base_convert(rand(), 10, 36), !empty($GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST']) ? $GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST'] : $GLOBALS['HTTP_SERVER_VARS']['SERVER_NAME']);
+            $this->headers['Message-ID'] = $message_id;
+
+            $this->is_built = true;
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+    * Function to encode a header if necessary
+    * according to RFC2047
+    */
+    function _encodeHeader($input, $charset = 'ISO-8859-1')
+    {
+        preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/', $input, $matches);
+        foreach ($matches[1] as $value) {
+            $replacement = preg_replace('/([\x20\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value);
+            $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input);
+        }
+        
+        return $input;
+    }
+
+    /**
+    * Sends the mail.
+    *
+    * @param  array  $recipients
+    * @param  string $type OPTIONAL
+    * @return mixed
+    */
+    function send($recipients, $type = 'mail')
+    {
+        if (!defined('CRLF')) {
+            $this->setCrlf($type == 'mail' ? "\n" : "\r\n");
+        }
+
+        if (!$this->is_built) {
+            $this->buildMessage();
+        }
+
+        switch ($type) {
+            case 'mail':
+                $subject = '';
+                if (!empty($this->headers['Subject'])) {
+                    $subject = $this->_encodeHeader($this->headers['Subject'], $this->build_params['head_charset']);
+                    unset($this->headers['Subject']);
+                }
+
+                // Get flat representation of headers
+                foreach ($this->headers as $name => $value) {
+                    $headers[] = $name . ': ' . $this->_encodeHeader($value, $this->build_params['head_charset']);
+                }
+
+                $to = $this->_encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']);
+
+                if (!empty($this->return_path)) {
+                    $result = mail($to, $subject, $this->output, implode(CRLF, $headers), '-f' . $this->return_path);
+                } else {
+                    $result = mail($to, $subject, $this->output, implode(CRLF, $headers));
+                }
+                
+                // Reset the subject in case mail is resent
+                if ($subject !== '') {
+                    $this->headers['Subject'] = $subject;
+                }
+                
+                // Return
+                return $result;
+                break;
+
+            case 'smtp':
+                require_once(dirname(__FILE__) . '/smtp.php');
+                require_once(dirname(__FILE__) . '/RFC822.php');
+                $smtp = &smtp::connect($this->smtp_params);
+                
+                // Parse recipients argument for internet addresses
+                foreach ($recipients as $recipient) {
+                    $addresses = Mail_RFC822::parseAddressList($recipient, $this->smtp_params['helo'], null, false);
+                    foreach ($addresses as $address) {
+                        $smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host);
+                    }
+                }
+                unset($addresses); // These are reused
+                unset($address);   // These are reused
+
+                // Get flat representation of headers, parsing
+                // Cc and Bcc as we go
+                foreach ($this->headers as $name => $value) {
+                    if ($name == 'Cc' OR $name == 'Bcc') {
+                        $addresses = Mail_RFC822::parseAddressList($value, $this->smtp_params['helo'], null, false);
+                        foreach ($addresses as $address) {
+                            $smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host);
+                        }
+                    }
+                    if ($name == 'Bcc') {
+                        continue;
+                    }
+                    $headers[] = $name . ': ' . $this->_encodeHeader($value, $this->build_params['head_charset']);
+                }
+                // Add To header based on $recipients argument
+                $headers[] = 'To: ' . $this->_encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']);
+                
+                // Add headers to send_params
+                $send_params['headers']    = $headers;
+                $send_params['recipients'] = array_values(array_unique($smtp_recipients));
+                $send_params['body']       = $this->output;
+
+                // Setup return path
+                if (isset($this->return_path)) {
+                    $send_params['from'] = $this->return_path;
+                } elseif (!empty($this->headers['From'])) {
+                    $from = Mail_RFC822::parseAddressList($this->headers['From']);
+                    $send_params['from'] = sprintf('%s@%s', $from[0]->mailbox, $from[0]->host);
+                } else {
+                    $send_params['from'] = 'postmaster@' . $this->smtp_params['helo'];
+                }
+
+                // Send it
+                if (!$smtp->send($send_params)) {
+                    $this->errors = $smtp->errors;
+                    return false;
+                }
+                return true;
+                break;
+        }
+    }
+
+    /**
+    * Use this method to return the email
+    * in message/rfc822 format. Useful for
+    * adding an email to another email as
+    * an attachment. there's a commented
+    * out example in example.php.
+    */
+    function getRFC822($recipients)
+    {
+        // Make up the date header as according to RFC822
+        $this->setHeader('Date', date('D, d M y H:i:s O'));
+
+        if (!defined('CRLF')) {
+            $this->setCrlf($type == 'mail' ? "\n" : "\r\n");
+        }
+
+        if (!$this->is_built) {
+            $this->buildMessage();
+        }
+
+        // Return path ?
+        if (isset($this->return_path)) {
+            $headers[] = 'Return-Path: ' . $this->return_path;
+        }
+
+        // Get flat representation of headers
+        foreach ($this->headers as $name => $value) {
+            $headers[] = $name . ': ' . $value;
+        }
+        $headers[] = 'To: ' . implode(', ', $recipients);
+
+        return implode(CRLF, $headers) . CRLF . CRLF . $this->output;
+    }
+} // End of class.
+?>
diff --git a/lib/mail/mimePart.php b/lib/mail/mimePart.php
new file mode 100644
index 0000000..f726bf4
--- /dev/null
+++ b/lib/mail/mimePart.php
@@ -0,0 +1,333 @@
+<?php
+//
+// +----------------------------------------------------------------------+
+// | PHP Version 4                                                        |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2002 The PHP Group                                |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.02 of the PHP license,      |
+// | that is bundled with this package in the file LICENSE, and is        |
+// | available at through the world-wide-web at                           |
+// | http://www.php.net/license/2_02.txt.                                 |
+// | If you did not receive a copy of the PHP license and are unable to   |
+// | obtain it through the world-wide-web, please send a note to          |
+// | license@php.net so we can mail you a copy immediately.               |
+// +----------------------------------------------------------------------+
+// | Authors: Richard Heyes <richard@phpguru.org>                         |
+// +----------------------------------------------------------------------+
+
+/**
+*
+*  Raw mime encoding class
+*
+* What is it?
+*   This class enables you to manipulate and build
+*   a mime email from the ground up.
+*
+* Why use this instead of mime.php?
+*   mime.php is a userfriendly api to this class for
+*   people who aren't interested in the internals of
+*   mime mail. This class however allows full control
+*   over the email.
+*
+* Eg.
+*
+* // Since multipart/mixed has no real body, (the body is
+* // the subpart), we set the body argument to blank.
+*
+* $params['content_type'] = 'multipart/mixed';
+* $email = new Mail_mimePart('', $params);
+*
+* // Here we add a text part to the multipart we have
+* // already. Assume $body contains plain text.
+*
+* $params['content_type'] = 'text/plain';
+* $params['encoding']     = '7bit';
+* $text = $email->addSubPart($body, $params);
+*
+* // Now add an attachment. Assume $attach is
+* the contents of the attachment
+*
+* $params['content_type'] = 'application/zip';
+* $params['encoding']     = 'base64';
+* $params['disposition']  = 'attachment';
+* $params['dfilename']    = 'example.zip';
+* $attach =& $email->addSubPart($body, $params);
+*
+* // Now build the email. Note that the encode
+* // function returns an associative array containing two
+* // elements, body and headers. You will need to add extra
+* // headers, (eg. Mime-Version) before sending.
+*
+* $email = $message->encode();
+* $email['headers'][] = 'Mime-Version: 1.0';
+*
+*
+* Further examples are available at http://www.phpguru.org
+*
+* TODO:
+*  - Set encode() to return the $obj->encoded if encode()
+*    has already been run. Unless a flag is passed to specifically
+*    re-build the message.
+*
+* @author  Richard Heyes <richard@phpguru.org>
+* @version $Revision: 1.3 $
+* @package Mail
+*/
+
+class Mail_mimePart {
+
+   /**
+    * The encoding type of this part
+    * @var string
+    */
+    var $_encoding;
+
+   /**
+    * An array of subparts
+    * @var array
+    */
+    var $_subparts;
+
+   /**
+    * The output of this part after being built
+    * @var string
+    */
+    var $_encoded;
+
+   /**
+    * Headers for this part
+    * @var array
+    */
+    var $_headers;
+
+   /**
+    * The body of this part (not encoded)
+    * @var string
+    */
+    var $_body;
+
+    /**
+     * Constructor.
+     *
+     * Sets up the object.
+     *
+     * @param $body   - The body of the mime part if any.
+     * @param $params - An associative array of parameters:
+     *                  content_type - The content type for this part eg multipart/mixed
+     *                  encoding     - The encoding to use, 7bit, 8bit, base64, or quoted-printable
+     *                  cid          - Content ID to apply
+     *                  disposition  - Content disposition, inline or attachment
+     *                  dfilename    - Optional filename parameter for content disposition
+     *                  description  - Content description
+     *                  charset      - Character set to use
+     * @access public
+     */
+    function Mail_mimePart($body = '', $params = array())
+    {
+        if (!defined('MAIL_MIMEPART_CRLF')) {
+            define('MAIL_MIMEPART_CRLF', defined('MAIL_MIME_CRLF') ? MAIL_MIME_CRLF : "\r\n", TRUE);
+        }
+
+        foreach ($params as $key => $value) {
+            switch ($key) {
+                case 'content_type':
+                    $headers['Content-Type'] = $value . (isset($charset) ? '; charset="' . $charset . '"' : '');
+                    break;
+
+                case 'encoding':
+                    $this->_encoding = $value;
+                    $headers['Content-Transfer-Encoding'] = $value;
+                    break;
+
+                case 'cid':
+                    $headers['Content-ID'] = '<' . $value . '>';
+                    break;
+
+                case 'disposition':
+                    $headers['Content-Disposition'] = $value . (isset($dfilename) ? '; filename="' . $dfilename . '"' : '');
+                    break;
+
+                case 'dfilename':
+                    if (isset($headers['Content-Disposition'])) {
+                        $headers['Content-Disposition'] .= '; filename="' . $value . '"';
+                    } else {
+                        $dfilename = $value;
+                    }
+                    break;
+
+                case 'description':
+                    $headers['Content-Description'] = $value;
+                    break;
+
+                case 'charset':
+                    if (isset($headers['Content-Type'])) {
+                        $headers['Content-Type'] .= '; charset="' . $value . '"';
+                    } else {
+                        $charset = $value;
+                    }
+                    break;
+            }
+        }
+
+        // Default content-type
+        if (!isset($headers['Content-Type'])) {
+            $headers['Content-Type'] = 'text/plain';
+        }
+
+        //Default encoding
+        if (!isset($this->_encoding)) {
+            $this->_encoding = '7bit';
+        }
+
+        // Assign stuff to member variables
+        $this->_encoded  = array();
+        $this->_headers  = $headers;
+        $this->_body     = $body;
+    }
+
+    /**
+     * encode()
+     *
+     * Encodes and returns the email. Also stores
+     * it in the encoded member variable
+     *
+     * @return An associative array containing two elements,
+     *         body and headers. The headers element is itself
+     *         an indexed array.
+     * @access public
+     */
+    function encode()
+    {
+        $encoded =& $this->_encoded;
+
+        if (!empty($this->_subparts)) {
+            srand((double)microtime()*1000000);
+            $boundary = '=_' . md5(uniqid(rand()) . microtime());
+            $this->_headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF . "\t" . 'boundary="' . $boundary . '"';
+
+            // Add body parts to $subparts
+            for ($i = 0; $i < count($this->_subparts); $i++) {
+                $headers = array();
+                $tmp = $this->_subparts[$i]->encode();
+                foreach ($tmp['headers'] as $key => $value) {
+                    $headers[] = $key . ': ' . $value;
+                }
+                $subparts[] = implode(MAIL_MIMEPART_CRLF, $headers) . MAIL_MIMEPART_CRLF . MAIL_MIMEPART_CRLF . $tmp['body'];
+            }
+
+            $encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
+                               implode('--' . $boundary . MAIL_MIMEPART_CRLF, $subparts) .
+                               '--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
+
+        } else {
+            $encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding) . MAIL_MIMEPART_CRLF;
+        }
+
+        // Add headers to $encoded
+        $encoded['headers'] =& $this->_headers;
+
+        return $encoded;
+    }
+
+    /**
+     * &addSubPart()
+     *
+     * Adds a subpart to current mime part and returns
+     * a reference to it
+     *
+     * @param $body   The body of the subpart, if any.
+     * @param $params The parameters for the subpart, same
+     *                as the $params argument for constructor.
+     * @return A reference to the part you just added. It is
+     *         crucial if using multipart/* in your subparts that
+     *         you use =& in your script when calling this function,
+     *         otherwise you will not be able to add further subparts.
+     * @access public
+     */
+    function &addSubPart($body, $params)
+    {
+        $this->_subparts[] = new Mail_mimePart($body, $params);
+        return $this->_subparts[count($this->_subparts) - 1];
+    }
+
+    /**
+     * _getEncodedData()
+     *
+     * Returns encoded data based upon encoding passed to it
+     *
+     * @param $data     The data to encode.
+     * @param $encoding The encoding type to use, 7bit, base64,
+     *                  or quoted-printable.
+     * @access private
+     */
+    function _getEncodedData($data, $encoding)
+    {
+        switch ($encoding) {
+            case '8bit':
+            case '7bit':
+                return $data;
+                break;
+
+            case 'quoted-printable':
+                return $this->_quotedPrintableEncode($data);
+                break;
+
+            case 'base64':
+                return rtrim(chunk_split(base64_encode($data), 76, MAIL_MIMEPART_CRLF));
+                break;
+
+            default:
+                return $data;
+        }
+    }
+
+    /**
+     * quoteadPrintableEncode()
+     *
+     * Encodes data to quoted-printable standard.
+     *
+     * @param $input    The data to encode
+     * @param $line_max Optional max line length. Should
+     *                  not be more than 76 chars
+     *
+     * @access private
+     */
+    function _quotedPrintableEncode($input , $line_max = 76)
+    {
+        $lines  = preg_split("/\r?\n/", $input);
+        $eol    = MAIL_MIMEPART_CRLF;
+        $escape = '=';
+        $output = '';
+
+        while(list(, $line) = each($lines)){
+
+            $linlen     = strlen($line);
+            $newline = '';
+
+            for ($i = 0; $i < $linlen; $i++) {
+                $char = substr($line, $i, 1);
+                $dec  = ord($char);
+
+                if (($dec == 32) AND ($i == ($linlen - 1))){    // convert space at eol only
+                    $char = '=20';
+
+                } elseif($dec == 9) {
+                    ; // Do nothing if a tab.
+                } elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) {
+                    $char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
+                }
+
+                if ((strlen($newline) + strlen($char)) >= $line_max) {        // MAIL_MIMEPART_CRLF is not counted
+                    $output  .= $newline . $escape . $eol;                    // soft line break; " =\r\n" is okay
+                    $newline  = '';
+                }
+                $newline .= $char;
+            } // end of for
+            $output .= $newline . $eol;
+        }
+        $output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf
+        return $output;
+    }
+} // End of class
+?>
diff --git a/lib/mail/smtp.php b/lib/mail/smtp.php
new file mode 100644
index 0000000..903ec75
--- /dev/null
+++ b/lib/mail/smtp.php
@@ -0,0 +1,359 @@
+<?php
+/**
+* Filename.......: class.smtp.inc
+* Project........: SMTP Class
+* Version........: 1.0.5
+* Last Modified..: 21 December 2001
+*/
+
+	define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE);
+	define('SMTP_STATUS_CONNECTED', 2, TRUE);
+
+	class smtp{
+
+		var $authenticated;
+		var $connection;
+		var $recipients;
+		var $headers;
+		var $timeout;
+		var $errors;
+		var $status;
+		var $body;
+		var $from;
+		var $host;
+		var $port;
+		var $helo;
+		var $auth;
+		var $user;
+		var $pass;
+
+		/**
+        * Constructor function. Arguments:
+		* $params - An assoc array of parameters:
+		*
+		*   host    - The hostname of the smtp server		Default: localhost
+		*   port    - The port the smtp server runs on		Default: 25
+		*   helo    - What to send as the HELO command		Default: localhost
+		*             (typically the hostname of the
+		*             machine this script runs on)
+		*   auth    - Whether to use basic authentication	Default: FALSE
+		*   user    - Username for authentication			Default: <blank>
+		*   pass    - Password for authentication			Default: <blank>
+		*   timeout - The timeout in seconds for the call	Default: 5
+		*             to fsockopen()
+        */
+
+		function smtp($params = array()){
+
+			if(!defined('CRLF'))
+				define('CRLF', "\r\n", TRUE);
+
+			$this->authenticated	= FALSE;			
+			$this->timeout			= 5;
+			$this->status			= SMTP_STATUS_NOT_CONNECTED;
+			$this->host				= 'localhost';
+			$this->port				= 25;
+			$this->helo				= 'localhost';
+			$this->auth				= FALSE;
+			$this->user				= '';
+			$this->pass				= '';
+			$this->errors   		= array();
+
+			foreach($params as $key => $value){
+				$this->$key = $value;
+			}
+		}
+
+		/**
+        * Connect function. This will, when called
+		* statically, create a new smtp object, 
+		* call the connect function (ie this function)
+		* and return it. When not called statically,
+		* it will connect to the server and send
+		* the HELO command.
+        */
+
+		function &connect($params = array()){
+
+			if(!isset($this->status)){
+				$obj = new smtp($params);
+				if($obj->connect()){
+					$obj->status = SMTP_STATUS_CONNECTED;
+				}
+
+				return $obj;
+
+			}else{
+				$this->connection = fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout);
+				if(function_exists('socket_set_timeout')){
+					@socket_set_timeout($this->connection, 5, 0);
+				}
+
+				$greeting = $this->get_data();
+				if(is_resource($this->connection)){
+					return $this->auth ? $this->ehlo() : $this->helo();
+				}else{
+					$this->errors[] = 'Failed to connect to server: '.$errstr;
+					return FALSE;
+				}
+			}
+		}
+
+		/**
+        * Function which handles sending the mail.
+		* Arguments:
+		* $params	- Optional assoc array of parameters.
+		*            Can contain:
+		*              recipients - Indexed array of recipients
+		*              from       - The from address. (used in MAIL FROM:),
+		*                           this will be the return path
+		*              headers    - Indexed array of headers, one header per array entry
+		*              body       - The body of the email
+		*            It can also contain any of the parameters from the connect()
+		*            function
+        */
+
+		function send($params = array()){
+
+			foreach($params as $key => $value){
+				$this->set($key, $value);
+			}
+
+			if($this->is_connected()){
+
+				// Do we auth or not? Note the distinction between the auth variable and auth() function
+				if($this->auth AND !$this->authenticated){
+					if(!$this->auth())
+						return FALSE;
+				}
+
+				$this->mail($this->from);
+				if(is_array($this->recipients))
+					foreach($this->recipients as $value)
+						$this->rcpt($value);
+				else
+					$this->rcpt($this->recipients);
+
+				if(!$this->data())
+					return FALSE;
+
+				// Transparency
+				$headers = str_replace(CRLF.'.', CRLF.'..', trim(implode(CRLF, $this->headers)));
+				$body    = str_replace(CRLF.'.', CRLF.'..', $this->body);
+				$body    = $body[0] == '.' ? '.'.$body : $body;
+
+				$this->send_data($headers);
+				$this->send_data('');
+				$this->send_data($body);
+				$this->send_data('.');
+
+				$result = (substr(trim($this->get_data()), 0, 3) === '250');
+				//$this->rset();
+				return $result;
+			}else{
+				$this->errors[] = 'Not connected!';
+				return FALSE;
+			}
+		}
+		
+		/**
+        * Function to implement HELO cmd
+        */
+
+		function helo(){
+			if(is_resource($this->connection)
+					AND $this->send_data('HELO '.$this->helo)
+					AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
+
+				return TRUE;
+
+			}else{
+				$this->errors[] = 'HELO command failed, output: ' . trim(substr(trim($error),3));
+				return FALSE;
+			}
+		}
+		
+		/**
+        * Function to implement EHLO cmd
+        */
+
+		function ehlo(){
+			if(is_resource($this->connection)
+					AND $this->send_data('EHLO '.$this->helo)
+					AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
+
+				return TRUE;
+
+			}else{
+				$this->errors[] = 'EHLO command failed, output: ' . trim(substr(trim($error),3));
+				return FALSE;
+			}
+		}
+		
+		/**
+        * Function to implement RSET cmd
+        */
+
+		function rset(){
+			if(is_resource($this->connection)
+					AND $this->send_data('RSET')
+					AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){
+
+				return TRUE;
+
+			}else{
+				$this->errors[] = 'RSET command failed, output: ' . trim(substr(trim($error),3));
+				return FALSE;
+			}
+		}
+		
+		/**
+        * Function to implement QUIT cmd
+        */
+
+		function quit(){
+			if(is_resource($this->connection)
+					AND $this->send_data('QUIT')
+					AND substr(trim($error = $this->get_data()), 0, 3) === '221' ){
+
+				fclose($this->connection);
+				$this->status = SMTP_STATUS_NOT_CONNECTED;
+				return TRUE;
+
+			}else{
+				$this->errors[] = 'QUIT command failed, output: ' . trim(substr(trim($error),3));
+				return FALSE;
+			}
+		}
+		
+		/**
+        * Function to implement AUTH cmd
+        */
+
+		function auth(){
+			if(is_resource($this->connection)
+					AND $this->send_data('AUTH LOGIN')
+					AND substr(trim($error = $this->get_data()), 0, 3) === '334'
+					AND $this->send_data(base64_encode($this->user))			// Send username
+					AND substr(trim($error = $this->get_data()),0,3) === '334'
+					AND $this->send_data(base64_encode($this->pass))			// Send password
+					AND substr(trim($error = $this->get_data()),0,3) === '235' ){
+
+				$this->authenticated = TRUE;
+				return TRUE;
+
+			}else{
+				$this->errors[] = 'AUTH command failed: ' . trim(substr(trim($error),3));
+				return FALSE;
+			}
+		}
+
+		/**
+        * Function that handles the MAIL FROM: cmd
+        */
+		
+		function mail($from){
+
+			if($this->is_connected()
+				AND $this->send_data('MAIL FROM:<'.$from.'>')
+				AND substr(trim($this->get_data()), 0, 2) === '250' ){
+
+				return TRUE;
+
+			}else
+				return FALSE;
+		}
+
+		/**
+        * Function that handles the RCPT TO: cmd
+        */
+		
+		function rcpt($to){
+
+			if($this->is_connected()
+				AND $this->send_data('RCPT TO:<'.$to.'>')
+				AND substr(trim($error = $this->get_data()), 0, 2) === '25' ){
+
+				return TRUE;
+
+			}else{
+				$this->errors[] = trim(substr(trim($error), 3));
+				return FALSE;
+			}
+		}
+
+		/**
+        * Function that sends the DATA cmd
+        */
+
+		function data(){
+
+			if($this->is_connected()
+				AND $this->send_data('DATA')
+				AND substr(trim($error = $this->get_data()), 0, 3) === '354' ){
+ 
+				return TRUE;
+
+			}else{
+				$this->errors[] = trim(substr(trim($error), 3));
+				return FALSE;
+			}
+		}
+
+		/**
+        * Function to determine if this object
+		* is connected to the server or not.
+        */
+
+		function is_connected(){
+
+			return (is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED));
+		}
+
+		/**
+        * Function to send a bit of data
+        */
+
+		function send_data($data){
+
+			if(is_resource($this->connection)){
+				return fwrite($this->connection, $data.CRLF, strlen($data)+2);
+				
+			}else
+				return FALSE;
+		}
+
+		/**
+        * Function to get data.
+        */
+
+		function &get_data(){
+
+			$return = '';
+			$line   = '';
+			$loops  = 0;
+
+			if(is_resource($this->connection)){
+				while((strpos($return, CRLF) === FALSE OR substr($line,3,1) !== ' ') AND $loops < 100){
+					$line    = fgets($this->connection, 512);
+					$return .= $line;
+					$loops++;
+				}
+				return $return;
+
+			}else
+				return FALSE;
+		}
+
+		/**
+        * Sets a variable
+        */
+		
+		function set($var, $value){
+
+			$this->$var = $value;
+			return TRUE;
+		}
+
+	} // End of class
+?>
\ No newline at end of file
diff --git a/lib/menue_links.php b/lib/menue_links.php
new file mode 100644
index 0000000..1fefe1a
--- /dev/null
+++ b/lib/menue_links.php
@@ -0,0 +1,73 @@
+<?menuehead("Navigation");
+if ($_SESSION['login'] == 'true') {?>
+
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/uebersicht">Kontoübersicht</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/einzahlen">Einzahlen</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/auszahlen">Auszahlen</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/buchungen">Buchungen</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/refuebersicht">Refübersicht</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/konto/userprofil">Userprofil</a><br />
+     <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/startseite&amp;logout=true"><i>Logout</i></a>
+<?} else {?>
+<form action="" method="post">
+<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
+<tr>
+    <td align="center">
+    <b>Nickname:</b><br>
+    <input type="Text" name="nickname" value="<?=$_POST['nickname'];?>" style="width=110px;"><br>
+    <b>Passwort:</b><br>
+    <input type="Password" name="passwort" value="" style="width=110px;"><br>
+    <select name="autologin" size="1" style="width=110px;">
+        <option value="true" SELECTED>Mit Autologin&nbsp;</option>
+        <option value="false">Ohne Autologin&nbsp;</option>
+    </select><br>
+    <br>
+    <input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
+</td>
+</tr>
+<tr>
+    <td height="15" align="left">
+    <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/daten">Daten vergessen?</a>
+    </td>
+</tr>
+<tr>
+    <td height="15" align="left">
+    <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/anmelden">Registrieren</a>
+    </td>
+</tr>
+</table>
+</form>
+<?}?>
+<?menuefoot();?>
+
+<? if ($_SESSION['login'] == 'true') {?>
+
+
+
+<?menuehead("Verdienen");?>
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/verdienen/klick4">Klick4Lose</a><br />
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/verdienen/betteln4">Betteln4Lose</a><br />
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/verdienen/paidmails">Paidmails</a>
+<?menuefoot();?>
+
+<?menuehead("Unsere Rallys");?>
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/ralleys/aktiv">Aktivrally</a><br />
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/ralleys/klick">Klickrally</a><br />
+<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/ralleys/ref">Refrally</a>
+<?menuefoot();?>
+
+
+<?
+$filename = 'lib/texte/box2.txt';
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+if ($inhalt != ''){
+menuehead("Unsere Sponsoren");
+echo nl2br($inhalt);
+menuefoot();
+}
+?>
+
+<? } ?>
diff --git a/lib/menue_rechts.php b/lib/menue_rechts.php
new file mode 100644
index 0000000..223e8fe
--- /dev/null
+++ b/lib/menue_rechts.php
@@ -0,0 +1,31 @@
+<? if ($_SESSION['login'] == 'true') {?>
+
+<?menuehead("Games");?>
+Link<br>
+Link<br>
+<?menuefoot();
+
+menuehead("Wer ist online");
+include ("lib/weristonline.php");
+menuefoot(); 
+}
+
+$filename = 'lib/texte/box1.txt';
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+
+if ($inhalt != ''){
+menuehead("Unsere Sponsoren");
+echo nl2br($inhalt);
+menuefoot();
+}
+?>
+<!-- Diese Seite basiert auf dem VMS1.2 von Designerscripte.net das entfernen dieses Copyrighthinweises ohne Erlaubnis zieht
+rechtliche Schritte mit sich
+-->
+<div align="center"><font size="1">&copy; by <a href="http://www.designerscripte.net">Designerscripte.net</a></font></div>
+<!-- Diese Seite basiert auf dem VMS1.2 von Designerscripte.net das entfernen dieses Copyrighthinweises ohne Erlaubnis zieht
+rechtliche Schritte mit sich
+-->
\ No newline at end of file
diff --git a/lib/module.lib.php b/lib/module.lib.php
new file mode 100644
index 0000000..2da0302
--- /dev/null
+++ b/lib/module.lib.php
@@ -0,0 +1,54 @@
+<?
+// Gibt den aktuellen Modulnamen aus
+function modul_name () {
+global $_GET;
+	return $_GET['mod'];
+}
+
+// Gibt das aktuelle Modulverzeichnis aus
+function modul_dir () {
+global $dir, $_GET;
+	return ($dir.$_GET['mod'].'/');
+}
+
+// Erzeugt modulinterne Links
+function modul_link ($vars='') {
+global $_GET, $linkstyle;
+	$link = $linkstyle.$_GET['mod'];	
+	if (!empty ($vars)) $link .= $vars;
+	return $link;
+}
+
+// Sicherheitsfunktion um unerlaubte Ausrufe zu verhindern
+function modul_access () {
+	if (!defined ('MODULSYSTEM_LOADED')) die ('Unberechtigter Zugriff!');
+}
+
+// Sicherheitsfunktion fuer Administration um unerlaubte Ausrufe zu verhindern
+function moduladmin_access () {
+	if (!defined ('MODULADMIN_LOADED')) die ('Unberechtigter Zugriff!');
+}
+
+// MySQL-Query-Funktion
+function modul_query ($query) {
+	return db_query ($query);
+}
+
+function modul_easytime ($time, $trenner=FALSE) {
+	$diff = ( time () - $time );
+
+	$days = floor ( $diff / 86400 );
+	if ($days > 0) $diff = ( $diff % 86400 );
+
+	$hours = floor ( $diff / 3600 );
+	if ($hours > 0) $diff = ( $diff % 3600 );
+
+	$mins = floor ( $diff / 60 );
+
+	$trenner = ($trenner == FALSE) ? ', ' : '<br />';
+	$dayend = ($days > 1) ? 'Tage' : 'Tag';
+
+	if ($days > 0) return ($days.' '.$dayend.$trenner.$hours.' Std.');
+	else return ($hours.' Std.'.$trenner.$mins.' Min.');
+}
+?>
\ No newline at end of file
diff --git a/lib/schnittstellen/ebesucher.php b/lib/schnittstellen/ebesucher.php
new file mode 100644
index 0000000..729bbce
--- /dev/null
+++ b/lib/schnittstellen/ebesucher.php
@@ -0,0 +1,125 @@
+<?
+// eBesucher ST Fehlercodes
+$trans_error[1001]        = "Alles OK";
+$trans_error[1011]        = "Falsche Punkteart";
+$trans_error[1012]        = "Falsche Punkteanzahl (z.B. keine ganze Zahl oder negativ)";
+$trans_error[1013]        = "Betreff zu lang oder nicht angegeben";
+$trans_error[1021]        = "Falsche Schnittstellen-ID";
+$trans_error[1022]        = "Falsches Schnittstellen-Passwort";
+$trans_error[1023]        = "Zu wenig Punkte auf diesem Schnittstellenaccount";
+$trans_error[1024]      = "Falsche KennungsID";
+$trans_error[1025]      = "Keine Abfragen mehr auf dem Schnittstellenaccount";
+$trans_error[1031]      = "Keine oder falsche UserID bzw. Usernamen angegeben";
+$trans_error[1032]      = "UserID UND Username angegeben, benötigt wird nur eins!";
+$trans_error[1033]      = "Kein oder falsches User-Passwort angegeben";
+$trans_error[1034]      = "Dieser User ist gesperrt";
+$trans_error[1035]      = "Das Guthaben des Users reicht nicht aus";
+$trans_error[1036]      = "Neuer User (aus Sicherheitsgründen dürfen neue User in den ersten 7 Tagen ihrer Mitgliedschaft die Schnittstelle nicht benutzen)";
+$trans_error[1098]      = "Schnittstelle z.Z. nicht verfügbar (DB-Arbeiten o.ä.)";
+$trans_error[1099]      = "Unbekannter Fehler";
+$trans_error[9998]      = "Fehlerhafter Aufruf (falsche Reihenfolge o.ä.)";
+$trans_error[9999]      = "Timeout (Schnittstelle nicht erreichbar)";
+
+// ST->User
+function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code) {
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://st.ebesucher.de/send.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."&k=".$betreiber_kennung."&a=1&p=".$trans_menge."&b=".$trans_betreff."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,6);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// User->ST
+function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://st.ebesucher.de/get.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."&k=".$betreiber_kennung."&a=1&p=".$trans_menge."&b=".$trans_betreff."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,6);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// ebesucher-Kontostand
+function usercheck ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error,$user_saldo;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://st.ebesucher.de/info.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+if ($error != "true") $user_saldo = $trans_check[1];
+return $error;
+return $trans_ausgabe;
+return $user_saldo;
+}
+
+// Usercheck
+function uservalidate ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://st.ebesucher.de/info.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+
+return $error;
+return $trans_ausgabe;
+}
+?>
\ No newline at end of file
diff --git a/lib/schnittstellen/funcoins.php b/lib/schnittstellen/funcoins.php
new file mode 100644
index 0000000..93fc2d3
--- /dev/null
+++ b/lib/schnittstellen/funcoins.php
@@ -0,0 +1,114 @@
+<?
+/*
+Transaktionsschnittstelle für Projekt Seth
+Betreibersystem Funcoins FuCoEx²
+Copyright bei Detlef Tiegel
+http://www.projekt-seth.de
+*/
+
+// Funcoins FuCoEx² Fehlercodes
+
+// FuCoEx² -> Funcoins
+function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code) {
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://www.funcoinbank.de/engine/fucoex.php?typ=send&k1_nr=".$betreiber_id."&k1_pw=".$betreiber_pw."&k2_nr=".$kunden_id."&k2_pw=".$kunden_pw."&n=".$trans_menge."&s=".$trans_betreff."&transid=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_check[0];
+if ($trans_ausgabe == "") $trans_ausgabe = 'FuCoEx²-Server nicht erreichbar!';
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// Funcoins -> FuCoEx²
+function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://www.funcoinbank.de/engine/fucoex.php?typ=get&k1_nr=".$betreiber_id."&k1_pw=".$betreiber_pw."&k2_nr=".$kunden_id."&k2_pw=".$kunden_pw."&n=".$trans_menge."&s=".$trans_betreff."&transid=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_check[0];
+if ($trans_ausgabe == "") $trans_ausgabe = 'FuCoEx²-Server nicht erreichbar!';
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// Funcoins-Kontostand
+function usercheck ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error,$user_saldo;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://www.funcoinbank.de/engine/fucoex.php?typ=saldo&k1_nr=".$betreiber_id."&k1_pw=".$betreiber_pw."&k2_nr=".$kunden_id."&k2_pw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_check[0];
+if ($trans_ausgabe == "") $trans_ausgabe = 'FuCoEx²-Server nicht erreichbar!';
+$error = "true";
+}
+if ($error != "true") $user_saldo = $trans_check[1];
+return $error;
+return $trans_ausgabe;
+return $user_saldo;
+}
+
+// Usercheck
+function uservalidate ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://www.funcoinbank.de/engine/fucoex.php?typ=validate&k1_nr=".$betreiber_id."&k1_pw=".$betreiber_pw."&k2_nr=".$kunden_id."&k2_pw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_check[0];
+if ($trans_ausgabe == "") $trans_ausgabe = 'FuCoEx²-Server nicht erreichbar!';
+$error = "true";
+}
+if ($trans_check[2] == 1) {$trans_ausgabe = 'Du stehst auf der FuCo-Blacklist!'; $error = "true";}
+if ($trans_check[5] == 'ja') {$trans_ausgabe = 'Betreiberkonten dürfen sich nicht anmelden!'; $error = "true";}
+return $error;
+return $trans_ausgabe;
+}
+?>
\ No newline at end of file
diff --git a/lib/schnittstellen/klamm.php b/lib/schnittstellen/klamm.php
new file mode 100644
index 0000000..667845f
--- /dev/null
+++ b/lib/schnittstellen/klamm.php
@@ -0,0 +1,138 @@
+<?
+/*
+Transaktionsschnittstelle für Projekt Seth
+Betreibersystem Klamm ExportForce²
+Copyright bei Detlef Tiegel
+http://www.projekt-seth.de
+*/
+
+// Klamm ExportForce² Fehlercodes
+$trans_error[1001]		= "Alles OK";
+$trans_error[1002]		= "EF Account existiert nicht";
+$trans_error[1003]		= "EF Passwort falsch";
+$trans_error[1004]		= "Nicht genug freie EF Anfragen";
+$trans_error[1005]		= "EF Kennung existiert nicht";
+$trans_error[1006]		= "klammUser existiert nicht";
+$trans_error[1007]		= "klammUser ist gesperrt";
+$trans_error[1008]		= "klammUser hat zu wenig Lose";
+$trans_error[1009]		= "Lose Passwort falsch";
+$trans_error[1010]		= "Zu wenig Lose auf EF Account";
+$trans_error[1011]		= "Anzahl nicht zulässig";
+$trans_error[1012]		= "Betreff nicht zulässig";
+$trans_error[1013]		= "Inout Parameter nicht zulässig";
+$trans_error[1014]		= "Limit Parameter nicht zulässig";
+$trans_error[1015]		= "ab_tid Parameter nicht zulässig";
+$trans_error[1016]		= "ab_time Parameter nicht zulässig";
+$trans_error[1017]		= "type Parameter nicht zulässig";
+$trans_error[1018]		= "Statistik Passwort falsch";
+$trans_error[1019]		= "Tresor Parameter nicht zulässig";
+$trans_error[1020]		= "Empfänger EF existiert nicht";
+$trans_error[1021]		= "Empfänger EF noch nicht akiviert";
+$trans_error[1022]		= "Überweisung an eigenen EF nicht möglich";
+$trans_error[1023]		= "target Parameter nicht zulässig";
+$trans_error[1098]		= "EF Account ist gesperrt";
+$trans_error[1099]		= "Unbekannter Fehler";
+
+// ExportForce² -> Klamm.de
+function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code) {
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=@file("http://www.klamm.de/engine/lose/send.php?ef_id=".$betreiber_id."&ef_pw=".$betreiber_pw."&k_id=".$kunden_id."&s=".$trans_betreff."&n=".$trans_menge."&k=".$betreiber_kennung."&l_pw=".$kunden_pw."&code=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// Klamm.de -> ExportForce²
+function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$trans_betreff = urlencode($trans_betreff);
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+$trans_menge = urlencode($trans_menge);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://www.klamm.de/engine/lose/get.php?ef_id=".$betreiber_id."&ef_pw=".$betreiber_pw."&k_id=".$kunden_id."&s=".$trans_betreff."&n=".$trans_menge."&k=".$betreiber_kennung."&l_pw=".$kunden_pw."&code=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+// Klammlose-Kontostand
+function usercheck ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error,$user_saldo;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://www.klamm.de/engine/lose/saldo.php?ef_id=".$betreiber_id."&ef_pw=".$betreiber_pw."&k_id=".$kunden_id."&l_pw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+if ($error != "true") $user_saldo = $trans_check[1];
+return $error;
+return $trans_ausgabe;
+return $user_saldo;
+}
+
+// Usercheck
+function uservalidate ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error;
+
+// SecVMS change begin
+$kunden_id = urlencode($kunden_id);
+$kunden_pw = urlencode($kunden_pw);
+// SecVMS change end
+
+$returned='';
+$ret=file("http://www.klamm.de/engine/lose/validate.php?ef_id=".$betreiber_id."&ef_pw=".$betreiber_pw."&k_id=".$kunden_id."&l_pw=".$kunden_pw."","r");
+for($i=0;$i<count($ret);$i++){
+  $returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1001") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+
+return $error;
+return $trans_ausgabe;
+}
+?>
\ No newline at end of file
diff --git a/lib/schnittstellen/nickey.php b/lib/schnittstellen/nickey.php
new file mode 100644
index 0000000..d833fa1
--- /dev/null
+++ b/lib/schnittstellen/nickey.php
@@ -0,0 +1,95 @@
+<?
+/*
+Transaktionsschnittstelle für Projekt Seth / VMS
+Betreibersystem Nickeyforce
+Copyright 2005 Michael Rosenberger
+http://www.nickeyforce.de info@nickeyforce.de
+*/
+// Nickeyforce Kennung
+// Bitte beim Validate die Kennung eintragen !!!!
+
+// Nickeyforce Fehlercodes
+$trans_error[1000] = "Alles OK";
+$trans_error[1001] = "ForceID / Passwortkombination stimmen nicht";
+$trans_error[1002] = "Kennung existiert nicht";
+$trans_error[1003] = "User existiert nicht";
+$trans_error[1004] = "nickeyPasswort falsch";
+$trans_error[1005] = "User gesperrt";
+$trans_error[1006] = "Forcekonto gesperrt";
+$trans_error[1007] = "nicht genügend nickeys auf dem Userkonto";
+$trans_error[1008] = "nicht genügend nickeys auf dem Forcekonto";
+$trans_error[1020] = "Parameter fehlt";
+$trans_error[1021] = "Falsche Anzahl (mindestens 10 nickeys je Transaktion)";
+$trans_error[1022] = "Forcekonto noch nicht aktiviert";
+$trans_error[1030] = "Keine freien Zugriffe (500/Tag) bzw. gekaufte Zugriffe uebrig";
+$trans_error[1031] = "Es sind nur 100000 Zugriffe/Tag erlaubt";
+$trans_error[1040] = "Keine gesperrten User im System";
+$trans_error[1051] = "SMS System nicht aktiviert für den Betreiber";
+$trans_error[1052] = "SMS Guthaben leer/aufgebraucht. Bitte aufladen";
+$trans_error[1053] = "Empfängernummer falsches Format";
+$trans_error[1054] = "SMS konnte nicht gesendet werden";
+$trans_error[1055] = "SMS Text länger als 160 Zeichen, bitte begrenzen";
+$trans_error[1080] = "Keine SMS im Ticker vorhanden";
+
+
+
+//Buchung nickeyFORCE -> nickeyBANK
+function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code) {
+global $error,$trans_ausgabe,$trans_error;
+$trans_betreff = ereg_replace(" ", "%20", $trans_betreff);
+$returned='';
+$ret=@file("http://www.nickeyforce.de/api/send2.php?api_id=".$betreiber_id."&api_passwort=".$betreiber_pw."&user=".$kunden_id."&betreff=".$trans_betreff."&anzahl=".$trans_menge."&api_kennung=".$betreiber_kennung."&code=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+$returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1000") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+//Buchung nickeyBANK -> nickeyFORCE
+function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code){
+global $error,$trans_ausgabe,$trans_error;
+$trans_betreff = ereg_replace(" ", "%20", $trans_betreff);
+$returned='';
+$ret=file("http://www.nickeyforce.de/api/get2.php?api_id=".$betreiber_id."&api_passwort=".$betreiber_pw."&betreff=".$trans_betreff."&api_kennung=".$betreiber_kennung."&user=".$kunden_id."&user_passwort=".$kunden_pw."&anzahl=".$trans_menge."&code=".$trans_code."","r");
+for($i=0;$i<count($ret);$i++) {
+$returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1000") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+return $error;
+return $trans_ausgabe;
+}
+
+
+
+// Usercheck nickeyFORCE -> nickeyBANK
+// Bitte hier Kennung eintragen !!!!
+function uservalidate ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
+global $error,$trans_ausgabe,$trans_error;
+$returned='';
+$ret=file("http://www.nickeyforce.de/api/validate.php?api_id=".$betreiber_id."&api_passwort=".$betreiber_pw."&user=".$kunden_id."&user_passwort=".$kunden_pw."&api_kennung=XXXXX","r");
+for($i=0;$i<count($ret);$i++){
+$returned.=$ret[$i];
+}
+$trans_check = split("[|]",$returned,7);
+if ($trans_check[0] != "1000") {
+$trans_ausgabe = $trans_error[$trans_check[0]];
+if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
+$error = "true";
+}
+
+return $error;
+return $trans_ausgabe;
+}
+?>
\ No newline at end of file
diff --git a/lib/session.lib.php b/lib/session.lib.php
new file mode 100644
index 0000000..00f6028
--- /dev/null
+++ b/lib/session.lib.php
@@ -0,0 +1,121 @@
+<?
+/*
+Datei : session.lib.php
+Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
+*/
+@session_start();
+
+// Variabeln definieren
+if (!isset($_SESSION['login']))		$_SESSION['login']		= "";
+if (!isset($_SESSION['werber']))	$_SESSION['werber']		= "0";
+if (!isset($_SESSION['uid']))		$_SESSION['uid']		= "0";
+if (!isset($_POST['nickname']))		$_POST['nickname']		= "";
+if (!isset($_POST['passwort']))		$_POST['passwort']		= "";
+if (!isset($_POST['checkid']))		$_POST['checkid']		= "";
+if (!isset($_POST['autologin']))	$_POST['autologin']		= "";
+if (!isset($_GET['logout']))		$_GET['logout']			= "";
+if (!isset($_GET['ref']))			$_GET['ref']			= "0";
+
+if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];
+
+// Seiteneinstellungen laden...
+$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
+
+if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
+	setCookie('uid','',time()-86400*30);
+	setCookie('passwort','',time()-86400*30);
+	setCookie('autologin','',time()-86400*30);
+	$_SESSION['uid']		= "";
+	$_SESSION['passwort']	= "";
+	$_SESSION['login']		= "";
+	header ("location: ".$domain."/wartung.php");
+	die();
+}
+
+
+// Login
+if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {
+
+	$_POST['nickname'] = addslashes($_POST['nickname']);
+
+	$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM 
+                                        ".$db_prefix."_userdaten u
+                                        LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
+WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");
+
+	if (mysql_num_rows($login_check)) {
+	$login_check = mysql_fetch_array($login_check);
+		
+                // Wenn User noch nicht freigeschaltet!
+		if ($login_check['status'] == 0) {
+		$_SESSION['uid']		= "";
+		$_SESSION['passwort']	        = "";
+		$_SESSION['login']		= "";
+		$_GET['content'] = '/error/kein_zutritt';
+		}
+		
+		// Wenn beim User alles O.K. ist!
+		if ($login_check['status'] == 1) {
+			db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$login_check['uid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");
+			if ($_POST['autologin'] == 'true') {
+			setCookie('uid',$login_check['uid'],time()+86400*30);
+			setCookie('passwort',$login_check['passwort'],time()+86400*30);
+			setCookie('autologin','true',time()+86400*30);
+			}
+			$_SESSION['uid']		= $login_check['uid'];
+			$_SESSION['passwort']	        = $login_check['passwort'];
+			$_SESSION['login']		= "true";
+			header ("location: ".$domain);
+			die();
+		}
+		
+                // Wenn User gesperrt wurde!
+		if ($login_check['status'] == 2) {
+		   $_SESSION['uid']		= "";
+		   $_SESSION['passwort']	= "";
+		   $_SESSION['login']		= "";
+		   $_GET['content'] = '/error/user_gesperrt';
+		}
+
+	// Wenn es den User garnicht giebt	
+	} else {
+	$_GET['content'] = '/error/kein_zutritt';
+	}
+
+} else {
+if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
+}
+
+// Autologin
+if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {
+
+	$_COOKIE['uid'] = (int)$_COOKIE['uid'];
+	$_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
+
+	$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
+	if (mysql_num_rows($login_check)) {
+	$login_check = mysql_fetch_array($login_check);
+		if ($login_check['status'] == 1) {
+		db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
+		$_SESSION['uid']		= $login_check['uid'];
+		$_SESSION['passwort']	= $login_check['passwort'];
+		$_SESSION['login']		= "true";
+		}
+	}
+}
+
+// Logout
+if ($_GET['logout'] == 'true') {
+	setCookie('uid','',time()-86400*30);
+	setCookie('passwort','',time()-86400*30);
+	setCookie('autologin','',time()-86400*30);
+	$_SESSION['uid']		= "";
+	$_SESSION['passwort']	        = "";
+	$_SESSION['login']		= "";
+	header ("location: ".$domain);
+	die();
+}
+if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort'])){
+db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." WHERE uid = ".$_SESSION['uid']." AND passwort = '".$_SESSION['passwort']."' LIMIT 1");
+}
+?>
\ No newline at end of file
diff --git a/lib/texte/agb.txt b/lib/texte/agb.txt
new file mode 100644
index 0000000..b19bd32
--- /dev/null
+++ b/lib/texte/agb.txt
@@ -0,0 +1 @@
+agb
\ No newline at end of file
diff --git a/lib/texte/aktivralley.txt b/lib/texte/aktivralley.txt
new file mode 100644
index 0000000..b91361a
--- /dev/null
+++ b/lib/texte/aktivralley.txt
@@ -0,0 +1,7 @@
+Aktivralley
+
+Pro Funcoin 1 Aktivpunkt bei Klick4Funcoins
+
+Jokerslot pro Spiel 100AP
+Atomic2 pro Spiel 100 AP
+Atomic1 pro Spiel 10 AP
\ No newline at end of file
diff --git a/lib/texte/alt_bettelseitenpopup.txt b/lib/texte/alt_bettelseitenpopup.txt
new file mode 100644
index 0000000..e440e5c
--- /dev/null
+++ b/lib/texte/alt_bettelseitenpopup.txt
@@ -0,0 +1 @@
+3
\ No newline at end of file
diff --git a/lib/texte/alt_headerbanner.txt b/lib/texte/alt_headerbanner.txt
new file mode 100644
index 0000000..56a6051
--- /dev/null
+++ b/lib/texte/alt_headerbanner.txt
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/lib/texte/alt_startseitenpopup.txt b/lib/texte/alt_startseitenpopup.txt
new file mode 100644
index 0000000..ab9d6fa
--- /dev/null
+++ b/lib/texte/alt_startseitenpopup.txt
@@ -0,0 +1 @@
+<!-- Nothing -->
\ No newline at end of file
diff --git a/lib/texte/bettelwerbung.txt b/lib/texte/bettelwerbung.txt
new file mode 100644
index 0000000..e440e5c
--- /dev/null
+++ b/lib/texte/bettelwerbung.txt
@@ -0,0 +1 @@
+3
\ No newline at end of file
diff --git a/lib/texte/box1.txt b/lib/texte/box1.txt
new file mode 100644
index 0000000..8853508
--- /dev/null
+++ b/lib/texte/box1.txt
@@ -0,0 +1 @@
+555
\ No newline at end of file
diff --git a/lib/texte/box2.txt b/lib/texte/box2.txt
new file mode 100644
index 0000000..bf0d87a
--- /dev/null
+++ b/lib/texte/box2.txt
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/lib/texte/faq.txt b/lib/texte/faq.txt
new file mode 100644
index 0000000..32914fe
--- /dev/null
+++ b/lib/texte/faq.txt
@@ -0,0 +1 @@
+FAQ
\ No newline at end of file
diff --git a/lib/texte/klickralley.txt b/lib/texte/klickralley.txt
new file mode 100644
index 0000000..e69de29
diff --git a/lib/texte/refralley.txt b/lib/texte/refralley.txt
new file mode 100644
index 0000000..3c1e1bc
--- /dev/null
+++ b/lib/texte/refralley.txt
@@ -0,0 +1 @@
+Refralley
\ No newline at end of file
diff --git a/lib/texte/startwerbung.txt b/lib/texte/startwerbung.txt
new file mode 100644
index 0000000..a579d79
--- /dev/null
+++ b/lib/texte/startwerbung.txt
@@ -0,0 +1,4 @@
+<script src="http://www.fuco-ads.de/lose/zbanner.php?id=54&aid=89&size=468x60&only="></script>
+
+<IFRAME SRC="http://www.promotion4banner.de/cgi/p4b.cgi?dimplex" MARGINWIDTH="0" MARGINHEIGHT="0" HSPACE="0" SCROLLING="no" VSPACE="0" FRAMEBORDER="0" WIDTH="468" HEIGHT="60"></IFRAME>
+<!-- ENDE - (c) Promotion4Banner.de - HTML-Code -->
\ No newline at end of file
diff --git a/lib/texte/wartung.txt b/lib/texte/wartung.txt
new file mode 100644
index 0000000..dae4f3a
--- /dev/null
+++ b/lib/texte/wartung.txt
@@ -0,0 +1 @@
+MFG
\ No newline at end of file
diff --git a/lib/weristonline.php b/lib/weristonline.php
new file mode 100644
index 0000000..04cefc3
--- /dev/null
+++ b/lib/weristonline.php
@@ -0,0 +1,21 @@
+<?
+$zeit = (5 * 60);                                   // Sekunden seit der letzten Aktivität
+$np   = $domain.'/?content=/nickpage&amp;nick=';         // Nickpagelink
+
+// verhindern, dass die Datei direkt aufgerufen wird
+if (!function_exists ("db_query")) die ("Kein Direktaufruf");
+
+$sql = db_query ('SELECT k.uid, u.nickname FROM '.$db_prefix.'_kontodaten k LEFT JOIN '.$db_prefix.'_userdaten u ON u.uid = k.uid WHERE k.last_active >= '.(time()-$zeit));
+                            
+if (mysql_num_rows ($sql) == 0) echo '<span style="font-style: italic;">keiner</span>';
+else {
+	$nr = 1;
+	while ($user = mysql_fetch_assoc ($sql)){
+		if ($user['uid'] == $admin_id) echo '<a style="font-weight: bold;" href="'.$np.$user['nickname'].'">'.$user['nickname'].'</a>';
+		else echo '<a href="'.$np.$user['nickname'].'">'.$user['nickname'].'</a>';
+            
+		if ($nr < mysql_num_rows ($sql)) echo ', ';
+            $nr++;
+	}
+}
+?>
\ No newline at end of file
diff --git a/module/testmodul/admin.php b/module/testmodul/admin.php
new file mode 100644
index 0000000..d4b7ee7
--- /dev/null
+++ b/module/testmodul/admin.php
@@ -0,0 +1,16 @@
+<? // Sicherheits-Check
+moduladmin_access (); ?>
+
+<? head ('Administration Testmodul'); ?>
+Dies hier ist eine Testseite vom 1. Modul des Modulsystems.<br />
+<br />
+Alle Autoreninformationen stehen in einer .inf-Datei (<i>pref.inf</i>) und werden auf einer speziellen Seite angezeigt.<br />
+Auf die Seite kommt man durch einen Klick auf den im Footer stehenden Link <i>"Addoninformationen"</i>.<br />
+<br />
+Der Aufruf vom Modul erfolgt wie folgt:<br />
+<?=$domain;?>/index.php?content=/module&mod=<?=$_GET['mod'];?><br />
+<br />
+<br />
+<br />
+MfG, SebbyPHM
+<? foot (); ?>
\ No newline at end of file
diff --git a/module/testmodul/files/mysql.sql b/module/testmodul/files/mysql.sql
new file mode 100644
index 0000000..2070b65
--- /dev/null
+++ b/module/testmodul/files/mysql.sql
@@ -0,0 +1 @@
+// Test
\ No newline at end of file
diff --git a/module/testmodul/icon.png b/module/testmodul/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb9be2ef4d2fe5b661a459089da1f1e6c0a0a535
GIT binary patch
literal 2162
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

literal 0
HcmV?d00001

diff --git a/module/testmodul/module.php b/module/testmodul/module.php
new file mode 100644
index 0000000..c5803d3
--- /dev/null
+++ b/module/testmodul/module.php
@@ -0,0 +1,19 @@
+<? // Sicherheits-Check
+modul_access (); ?>
+
+<? head ('Testseite'); ?>
+Dies hier ist eine Testseite vom 1. Modul des Modulsystems.<br />
+<br />
+Alle Autoreninformationen stehen in einer .inf-Datei (<i>pref.inf</i>) und werden auf einer speziellen Seite angezeigt.<br />
+Auf die Seite kommt man durch einen Klick auf den im Footer stehenden Link <i>"Addoninformationen"</i>.<br />
+<br />
+Der Aufruf vom Modul erfolgt wie folgt:<br />
+http://www.DeineSeite.de/index.php?content=/module&mod=[Modulname]<br />
+<br />
+<b>Optionale Parameter:</b><br />
+open: Greift auf eine andere Datei als auf die module.php zu (./module/[Modulname]/[open].php);<i></i><br />
+<br />
+<br />
+<br />
+MfG, SebbyPHM
+<? foot (); ?>
\ No newline at end of file
diff --git a/module/testmodul/pref.ini b/module/testmodul/pref.ini
new file mode 100644
index 0000000..8427357
--- /dev/null
+++ b/module/testmodul/pref.ini
@@ -0,0 +1,20 @@
+[modul]
+name = Testmodul
+version = 1.0
+datum = 05.08.2007
+update =
+verkauft =
+
+[autor]
+name = Sebastian Hoinkes
+strasse = Am Thie 1
+ort = Hessisch Oldendorf
+plz = 31840
+
+[kontakt]
+webseite = http://www.totaltoll.de
+email = web@totaltoll.de
+icq = 270528839
+msn =
+telefon =
+telefax =
\ No newline at end of file
diff --git a/pcheck.php b/pcheck.php
new file mode 100644
index 0000000..472916c
--- /dev/null
+++ b/pcheck.php
@@ -0,0 +1,71 @@
+<?
+@require_once ('lib/functions.lib.php');
+@db_connect();
+if (!isset($headmsg))		       $headmsg			= "";
+if (!isset($wait))		       $wait			= "";
+if (!isset($_GET['auszahlen']))	       $_GET['auszahlen']	= "false";
+
+$_GET['uid'] = (int)$_GET['uid'];
+$_GET['tan'] = addslashes ($_GET['tan']);
+
+$user_mail = db_query("SELECT e.start,e.aufendhalt,e.status,e.uid,v.verdienst FROM
+                          ".$db_prefix."_paidmails_empfaenger e
+                          LEFT JOIN ".$db_prefix."_paidmails_versendet v ON v.tan = e.tan
+                          WHERE e.tan='".$_GET['tan']."' AND e.uid=".$_GET['uid']." LIMIT 1");
+                          
+$mail = mysql_fetch_assoc($user_mail);  
+
+if ($_GET['auszahlen']!='true') {
+	if (mysql_num_rows($user_mail)) {
+		if ($mail['status'] != 0) {
+		if ($mail['status'] == 1) $headmsg = 'Mail schon bestädigt!';
+		if ($mail['status'] == 2) $headmsg = 'Fakeversuch!';
+		} else {
+		$headmsg = 'Bitte warte '.$mail['aufendhalt'].' Sek.!';
+		$wait = '<meta http-equiv="refresh" content="'.$mail['aufendhalt'].';url=pcheck.php?tan='.$_GET['tan'].'&auszahlen=true&uid='.$_GET['uid'].'">';
+		db_query("UPDATE ".$db_prefix."_paidmails_empfaenger SET start=".time()." WHERE tan='".$_GET['tan']."' and uid=".$_GET['uid']."");
+		}
+	} else {
+	$headmsg = 'Diese Mail ist nicht für Dich!';
+	}
+}else{
+     
+
+
+
+	if (($mail['start']+$mail['aufendhalt']-1) <= time() AND $mail['status'] == 0) {
+
+	kontobuchung ('+',$mail['verdienst'],$mail['uid']);
+	buchungsliste (create_code(14),$mail['verdienst'],'Paidmailverdienst',$mail['uid']);
+	refumsatz ($mail['verdienst'],$mail['uid']);
+	aktivralley ($mail['verdienst'],$mail['uid']);
+        bilanz(0,$forced['verdienst']);
+	
+	db_query("UPDATE ".$db_prefix."_paidmails_empfaenger SET status=1 WHERE tan='".$_GET['tan']."' and uid=".$_GET['uid']." LIMIT 1");
+	db_query("UPDATE ".$db_prefix."_paidmails_versendet SET bestaedigt=bestaedigt+1 WHERE tan='".$_GET['tan']."'  LIMIT 1");
+	$headmsg = $mail['verdienst'].' '.$waehrung.' gutgeschrieben!';
+	} else {
+	  $headmsg = 'Wartezeit umgangen! Paidmail ungültig!';
+	  db_query("UPDATE ".$db_prefix."_paidmails_empfaenger SET status=2 WHERE tan='".$_GET['tan']."' and uid=".$_GET['uid']." LIMIT 1");
+	}
+
+}
+
+
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<?if ($wait) echo $wait;?>
+<link rel="stylesheet" href="/css/bframe.css" type="text/css">
+</head>
+<body bgcolor="#c0c0c0" topmargin="0" leftmargin="0">
+<table width="100%" cellpadding="0" cellspacing="0" border="0" align="left">
+<tr>
+<td align="left" width="50%"><b><?=$seitenname;?> ist für den Inhalt nicht verantwortlich.</b></td>
+<td align="right" width="50%"><b><?=$headmsg;?></b>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+</tr>
+</table>
+</body>
+</html>
+<?db_close();?>
\ No newline at end of file
diff --git a/pclick.php b/pclick.php
new file mode 100644
index 0000000..e888cae
--- /dev/null
+++ b/pclick.php
@@ -0,0 +1,24 @@
+<?
+@require_once ('lib/functions.lib.php');
+@db_connect();
+
+$_GET['uid'] = (int)$_GET['uid'];
+$_GET['tan'] = addslashes ($_GET['tan']);
+
+$mail = mysql_fetch_array(db_query("SELECT `ziel` FROM ".$db_prefix."_paidmails_versendet WHERE tan='".$_GET['tan']."' LIMIT 1"));
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>Forcedklick by <?=$seitenname;?></title>
+</head>
+
+<frameset rows="15,*" border="0">
+<frame name="abuse" src="pcheck.php?tan=<?=$_GET['tan'];?>&uid=<?=$_GET['uid'];?>" scrolling="no" frameborder="0">
+<frame name="werbung" src="<?=$mail['ziel'];?>" scrolling="auto" frameborder="0">
+</frameset>
+<body>
+</body>
+</html>
+<?db_close();?>
+
diff --git a/topframe_forced.php b/topframe_forced.php
new file mode 100644
index 0000000..da080cf
--- /dev/null
+++ b/topframe_forced.php
@@ -0,0 +1,87 @@
+<?
+@require_once ('lib/functions.lib.php');
+@require_once ('lib/session.lib.php');
+
+// Variabeln definieren
+if (!isset($headmsg))			$headmsg			= "";
+if (!isset($puk))			$puk				= "";
+if (!isset($force_error))		$force_error			= "";
+if (!isset($wartezeit))			$wartezeit			= "";
+if (!isset($_GET['art']))		$_GET['art']			= "";
+if (!isset($_GET['puk']))		$_GET['puk']			= "";
+if (!isset($_GET['auszahlen']))		$_GET['auszahlen']		= "false";
+if (!isset($_SESSION['uid']))		$_SESSION['uid']		= "";
+if (!isset($forced['ziel']))		$forced['ziel']			= "";
+if (!isset($forced['aufendhalt']))	$forced['aufendhalt']	        = "";
+if (!isset($forced['tan']))		$forced['tan']			= "";
+$_GET['tan'] = addslashes ($_GET['tan']);
+
+// Nur weiter wenn eingeloggt
+if ($_SESSION['login'] != 'true' || $_SESSION['uid'] <= 0){
+die('Bitte einloggen!');
+}
+@db_connect();
+
+// Werbedaten auslesen!
+$kamp = db_query ("SELECT t1.* 
+          FROM ".$db_prefix."_gebuchte_werbung t1 
+          LEFT JOIN ".$db_prefix."_reloads t2 
+          ON (t1.tan=t2.tan AND (t2.uid=".$_SESSION['uid']." or t2.ip='".$ip."')) 
+          WHERE t1.tan = '".$_GET['tan']."' AND t2.tan IS NULL AND t1.werbeart = 'forcedbanner' AND t1.menge >=1 AND t1.status = 1 AND t1.sponsor != ".$_SESSION['uid']." LIMIT 1");
+                           
+
+// Reloadprüfen
+if (mysql_num_rows($kamp)) {
+        $forced = mysql_fetch_assoc($kamp);
+	$wartezeit = $forced['aufendhalt'];
+	$headmsg = 'Vergütung in '.$forced['aufendhalt'].' Sek.!';
+	$puk = md5($_SESSION['uid'].$forced['aufendhalt'].date("d.m.Y",time()).$percode);
+} else {
+	$headmsg = 'Banner noch im Reload!';
+	$force_error = 'true';
+}
+
+
+// User bezahlen und Reload schreiben
+if ($_GET['auszahlen'] == 'true' && $force_error != 'true' && $_GET['puk'] == md5($_SESSION['uid'].$forced['aufendhalt'].date("d.m.Y",time()).$percode)){
+
+   // Um einen mysql_query zu sparen wurde hier auf kontobuchung() verzichtet...  
+   db_query("UPDATE ".$db_prefix."_kontodaten  SET klicks = klicks + 1, kv = kv + ".$forced['verdienst'].", kontostand = kontostand + ".$forced['verdienst']." WHERE uid = ".$_SESSION['uid']."");
+
+   refumsatz ($forced['verdienst'],$_SESSION['uid']);
+   aktivralley ($forced['verdienst'],$_SESSION['uid']);
+   klickralley ();
+   bilanz($forced['preis'],$forced['verdienst']);
+
+   $new_reload = time()+$forced['reload'];
+   db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES ('".$ip."',".$_SESSION['uid'].",'".$forced['tan']."',".$new_reload.")");
+   db_query("UPDATE ".$db_prefix."_gebuchte_werbung SET menge = menge - 1 WHERE tan='".$_GET['tan']."'");
+   $headmsg = $forced['verdienst'].' '.$waehrung.' erhalten!';
+
+} else {
+  if ($_GET['auszahlen'] == 'true' && $force_error != 'true') $headmsg = 'Pin abgelaufen!';
+}
+@db_close();
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="stylesheet" href="/css/bframe.css" type="text/css">
+<?
+if ($wartezeit>=0 && $_GET['auszahlen'] != 'true') {
+echo '
+<meta http-equiv="refresh" content="'.$wartezeit.';url=topframe_forced.php?art='.$_GET['art'].'&auszahlen=true&tan='.$forced['tan'].'&puk='.$puk.'">
+';
+}
+?>
+</head>
+<body bgcolor="#c0c0c0" topmargin="0" leftmargin="0">
+<table width="100%" cellpadding="0" cellspacing="0" border="0" align="left">
+<tr>
+<td align="left" width="50%"><b><?=$seitenname;?> ist für den Inhalt nicht verantwortlich.</b></td>
+<td align="right" width="50%"><b><?=$headmsg;?></b>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/vms.sql b/vms.sql
new file mode 100644
index 0000000..8d28691
--- /dev/null
+++ b/vms.sql
@@ -0,0 +1,271 @@
+SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
+
+
+CREATE TABLE IF NOT EXISTS `vms_aktivierungen` (
+  `uid` int(7) NOT NULL default '0',
+  `ak` varchar(32) NOT NULL default '',
+  KEY `aktivierungs_code` (`ak`)
+) ENGINE=MyISAM;
+
+
+
+CREATE TABLE IF NOT EXISTS `vms_aktivralley` (
+  `uid` int(7) NOT NULL default '0',
+  `punkte` double(100,2) NOT NULL default '0.00',
+  `ausgezahlt` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_bilanz` (
+  `date` int(10) NOT NULL,
+  `ein` double(15,2) NOT NULL,
+  `aus` double(15,2) NOT NULL,
+  PRIMARY KEY  (`date`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_buchungen` (
+  `uid` int(7) NOT NULL default '0',
+  `buchungszeit` int(10) NOT NULL default '0',
+  `buchungs_id` varchar(14) NOT NULL default '',
+  `buchungsmenge` double(10,2) NOT NULL default '0.00',
+  `verwendungszweck` varchar(40) NOT NULL default '',
+  KEY `user` (`uid`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_crons` (
+  `id` int(11) NOT NULL,
+  `cron` varchar(50) NOT NULL default '',
+  `laufzeit` int(11) NOT NULL default '0',
+  `datei` varchar(250) NOT NULL default '',
+  `bezeichnung` varchar(250) NOT NULL default '',
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM;
+
+
+INSERT INTO `vms_crons` (`id`, `cron`, `laufzeit`, `datei`, `bezeichnung`) VALUES 
+(1, 'int_forcedbanner', 1184066684, 'crons/fuco-ads.int.php', 'Forcedbanner FuCo-Ads'),
+(2, 'int_forcedbanner', 1187204732, 'crons/webmasterlose.int.php', 'Forcedbanner Webmasterlose'),
+(3, 'int_forcedbanner', 1183938260, 'crons/hp-lose.int.php', 'Forcedbanner HP-Lose'),
+(4, 'int_forcedbanner', 1106400662, 'crons/lose-ads.int.php', 'Forcedbanner Lose-Ads'),
+(5, 'int_forcedbanner', 1106400676, 'crons/losebox.int.php', 'Forcedbanner Losebox'),
+(6, 'ext_cron', 1105221240, 'crons/refzahlungen.knt.php', 'Ext. Refzahlungen');
+
+
+CREATE TABLE IF NOT EXISTS `vms_emaildaten` (
+  `uid` int(7) NOT NULL default '0',
+  `emailadresse` varchar(100) NOT NULL default '',
+  `freigabe_fuer` tinyint(1) NOT NULL default '0',
+  PRIMARY KEY  (`uid`),
+  KEY `freigabe_fuer` (`freigabe_fuer`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_gebuchte_werbung` (
+  `uid` int(7) NOT NULL default '0',
+  `tan` varchar(32) NOT NULL default '',
+  `kid` int(11) NOT NULL default '0',
+  `ziel` varchar(250) NOT NULL default '',
+  `banner` varchar(250) NOT NULL default '',
+  `verdienst` double(10,2) NOT NULL default '0.00',
+  `preis` double(10,2) NOT NULL default '0.00',
+  `aufendhalt` int(11) NOT NULL default '0',
+  `menge` int(11) NOT NULL default '0',
+  `reload` int(11) NOT NULL default '0',
+  `sponsor` varchar(25) NOT NULL default '',
+  `werbeart` varchar(50) NOT NULL default '',
+  `status` tinyint(1) NOT NULL default '1',
+  KEY `klick4` (`werbeart`,`menge`,`status`,`verdienst`,`sponsor`),
+  KEY `crons` (`sponsor`,`werbeart`,`status`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_interface` (
+  `interface` varchar(50) NOT NULL default '',
+  `betreiber` int(7) NOT NULL default '0',
+  `seite` int(7) NOT NULL default '0',
+  `pass` varchar(50) NOT NULL default '',
+  `eigenverdienst` int(2) NOT NULL default '0',
+  `mindestverguetung` double(8,6) NOT NULL default '0.000000',
+  `restklicks` int(4) NOT NULL default '0',
+  `umrechnung` double(10,4) NOT NULL default '0.0000',
+  `aufendhalt` int(3) NOT NULL default '0',
+  `surfview` double(10,2) NOT NULL default '0.00',
+  `surfklick` double(10,2) NOT NULL default '0.00',
+  KEY `interface` (`interface`)
+) ENGINE=MyISAM;
+
+INSERT INTO `vms_interface` (`interface`, `betreiber`, `seite`, `pass`, `eigenverdienst`, `mindestverguetung`, `restklicks`, `umrechnung`, `aufendhalt`, `surfview`, `surfklick`) VALUES 
+('fuco-ads', 0, 0, '0', 0, 0.000000, 0, 0.0000, 0, 0.00, 0.00),
+('webmasterlose', 0, 0, '0', 0, 0.000000, 50, 0.0000, 0, 0.00, 0.00),
+('lose-ads', 0, 0, '0', 0, 0.000000, 0, 0.0000, 0, 0.00, 0.00),
+('losebox', 0, 0, '0', 0, 0.000000, 0, 0.0000, 0, 0.00, 0.00),
+('hp-lose', 0, 0, '0', 0, 0.000000, 0, 0.0000, 0, 0.00, 0.00);
+
+
+CREATE TABLE IF NOT EXISTS `vms_klickralley` (
+  `uid` int(7) NOT NULL default '0',
+  `klicks` int(11) NOT NULL default '0',
+  `ausgezahlt` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_kontodaten` (
+  `uid` int(7) NOT NULL default '0',
+  `passwort` varchar(32) NOT NULL default '',
+  `status` tinyint(1) NOT NULL default '0',
+  `hinweis` longtext NOT NULL,
+  `kontostand` double(100,2) NOT NULL default '0.00',
+  `login_ip` varchar(15) NOT NULL default '',
+  `loginzeit` int(11) NOT NULL default '0',
+  `last_active` int(11) NOT NULL default '0',
+  `klicks` bigint(20) NOT NULL default '0',
+  `kv` double(100,2) NOT NULL default '0.00',
+  `angebettelt` bigint(20) NOT NULL default '0',
+  `bv` double(100,2) NOT NULL default '0.00',
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `vms_news` (
+  `id` int(11) NOT NULL,
+  `zeit` int(11) NOT NULL default '0',
+  `titel` varchar(60) NOT NULL default '',
+  `news` longtext NOT NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `vms_paidmails_empfaenger` (
+  `uid` int(7) NOT NULL default '0',
+  `gueltig` int(11) NOT NULL default '0',
+  `tan` varchar(14) NOT NULL default '',
+  `status` int(11) NOT NULL default '0',
+  `aufendhalt` int(11) NOT NULL default '0',
+  `start` int(11) NOT NULL default '0',
+  UNIQUE KEY `primary_ersatz` (`uid`,`tan`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `vms_paidmails_versendet` (
+  `tan` varchar(14) NOT NULL default '',
+  `menge` int(11) NOT NULL default '0',
+  `bestaedigt` int(11) NOT NULL default '0',
+  `verdienst` double(10,2) NOT NULL default '0.00',
+  `ziel` varchar(250) NOT NULL default '',
+  `beschreibung` varchar(50) NOT NULL default '',
+  `mailtext` longtext NOT NULL,
+  `aufendhalt` int(11) NOT NULL default '0',
+  `gesendet` int(11) NOT NULL default '0',
+  `gueltig` int(11) NOT NULL default '0',
+  UNIQUE KEY `primary_ersatz` (`tan`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `vms_ralleydaten` (
+  `ralley` varchar(50) NOT NULL default '',
+  `start` int(11) NOT NULL default '0',
+  `ende` int(11) NOT NULL default '0',
+  `art` varchar(50) NOT NULL default '',
+  `pro` double(10,2) NOT NULL default '0.00',
+  `jackpot` double(10,2) NOT NULL default '0.00',
+  `plaetze` int(2) NOT NULL default '0',
+  `p1` double(10,2) NOT NULL default '0.00',
+  `p2` double(10,2) NOT NULL default '0.00',
+  `p3` double(10,2) NOT NULL default '0.00',
+  `p4` double(10,2) NOT NULL default '0.00',
+  `p5` double(10,2) NOT NULL default '0.00',
+  `p6` double(10,2) NOT NULL default '0.00',
+  `p7` double(10,2) NOT NULL default '0.00',
+  `p8` double(10,2) NOT NULL default '0.00',
+  `p9` double(10,2) NOT NULL default '0.00',
+  `p10` double(10,2) NOT NULL default '0.00',
+  PRIMARY KEY  (`ralley`)
+) ENGINE=MyISAM;
+
+INSERT INTO `vms_ralleydaten` (`ralley`, `start`, `ende`, `art`, `pro`, `jackpot`, `plaetze`, `p1`, `p2`, `p3`, `p4`, `p5`, `p6`, `p7`, `p8`, `p9`, `p10`) VALUES 
+('refralley', 1135689000, 1293455400, 'statisch', 0.00, 0.00, 3, 150.00, 500.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00),
+('aktivralley', 1112047200, 1112292000, 'statisch', 6.00, 0.00, 5, 1000.00, 750.00, 500.00, 250.00, 100.00, 0.00, 0.00, 0.00, 0.00, 0.00),
+('klickralley', 1104534000, 1230764400, 'dynamisch', 3.00, 0.00, 2, 1000000.00, 500.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00);
+
+
+CREATE TABLE IF NOT EXISTS `vms_reloads` (
+  `ip` varchar(15) NOT NULL default '',
+  `uid` int(7) NOT NULL default '0',
+  `tan` varchar(32) NOT NULL default '',
+  `bis` int(10) NOT NULL default '0',
+  KEY `klick4` (`tan`,`uid`,`ip`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_schnittstelle` (
+  `betreiber_id` int(8) NOT NULL default '0',
+  `betreiber_passwort` varchar(50) NOT NULL default '',
+  `betreiber_kennung` int(8) NOT NULL default '0',
+  `schnittstelle` varchar(20) NOT NULL default '',
+  `einzahltext` varchar(40) NOT NULL default '',
+  `auszahltext` varchar(40) NOT NULL default '',
+  `einzahlsumme` int(11) NOT NULL default '0',
+  `auszahlsumme` int(11) NOT NULL default '0',
+  `anfragen_tag` int(11) NOT NULL default '0',
+  `anfragen_user` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`schnittstelle`)
+) ENGINE=MyISAM;
+
+INSERT INTO `vms_schnittstelle` (`betreiber_id`, `betreiber_passwort`, `betreiber_kennung`, `schnittstelle`, `einzahltext`, `auszahltext`, `einzahlsumme`, `auszahlsumme`, `anfragen_tag`, `anfragen_user`) VALUES 
+(0, '0', 0, 'klamm', 'Einzahlung', 'Auszahlung', 0, 0, 0, 0);
+
+CREATE TABLE IF NOT EXISTS `vms_schnittstelle_anfragen` (
+  `zeit` int(11) NOT NULL default '0',
+  `uid` int(7) NOT NULL default '0',
+  KEY `uid` (`uid`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_seitenkonfig` (
+  `wartung` int(1) NOT NULL default '0',
+  `einzahlgrenze` int(11) NOT NULL default '0',
+  `re1` double(10,2) NOT NULL default '0.00',
+  `re2` double(10,2) NOT NULL default '0.00',
+  `re3` double(10,2) NOT NULL default '0.00',
+  `min_betteln` double(10,2) NOT NULL default '0.00',
+  `max_betteln` double(10,2) NOT NULL default '0.00',
+  `reload_betteln` int(11) NOT NULL default '0',
+  `denied_domains` text NOT NULL,
+  `admin_name` VARCHAR( 255 ) NOT NULL,
+  `admin_pass` VARCHAR( 255 ) NOT NULL
+) ENGINE=MyISAM;
+
+INSERT INTO `vms_seitenkonfig` (`wartung`, `einzahlgrenze`, `re1`, `re2`, `re3`, `min_betteln`, `max_betteln`, `reload_betteln`, `denied_domains`) VALUES 
+(0, 100000, 8.00, 3.00, 1.00, 50.00, 250.00, 0, '@sofort-mail.de;@trash-mail.de;@mailinator.com;@spamgourmet.com;@spammotel.com;@centermail.com;@discardmail.com;@sneakemail.com;@netzidiot.de;@myTrashMail.com;@wegwerfadresse.de;@nervmich.net;@nervtmich.net;@mailinator.net;@klassmaster.com;@mailin8r.com;@sogetthis.com;@mailinator2.com');
+
+CREATE TABLE IF NOT EXISTS `vms_userblacklist` (
+  `uid` int(7) NOT NULL default '0',
+  `zeit` bigint(11) NOT NULL default '0',
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `vms_userdaten` (
+  `uid` int(7) NOT NULL default '0',
+  `nickname` varchar(255) NOT NULL default '',
+  `vorname` varchar(50) NOT NULL default '',
+  `nachname` varchar(50) NOT NULL default '',
+  `angemeldet_seit` int(10) NOT NULL default '0',
+  `max_forced` int(11) NOT NULL default '5',
+  `notizen` text NOT NULL,
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS `vms_werberdaten` (
+  `uid` int(7) NOT NULL default '0',
+  `werber` int(7) NOT NULL default '0',
+  `umsatz` double(10,2) NOT NULL default '0.00',
+  `zuordnungszeit` int(10) NOT NULL default '0',
+  `reset` double(10,2) NOT NULL default '0.00',
+  `resetzeit` int(11) NOT NULL default '0',
+  `gesamt` double(10,2) NOT NULL default '0.00',
+  `refback` int(3) NOT NULL default '0',
+  `aktivzeit` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`uid`)
+) ENGINE=MyISAM;
+
diff --git a/wartung.php b/wartung.php
new file mode 100644
index 0000000..17f1184
--- /dev/null
+++ b/wartung.php
@@ -0,0 +1,42 @@
+<?
+@require_once ('lib/layout.lib.php');
+?>
+<html>
+<head>
+<title>..:: Wartungsmodus::..</title>
+<meta name="Author" content="">
+<meta name="Publisher" content="">
+<meta name="Copyright" content="">
+<meta name="Keywords" content="">
+<meta name="Description" content="">
+<meta name="Page-topic" content="">
+<meta name="Audience" content="">
+<meta name="Content-language" content="DE">
+<meta name="Page-type" content="Nicht Gewinnorientiert">
+<meta name="Robots" content="INDEX,FOLLOW">
+<link rel="stylesheet" href="/css/main.css" type="text/css">
+</head>
+<body topmargin="0" leftmargin="0">
+
+
+<?
+// Variabeln
+$filename = 'lib/texte/wartung.txt';
+
+// Datei auslesen
+$fp = fopen ($filename, "r");
+$inhalt = fread ($fp, filesize ($filename));
+fclose ($fp);
+$inhalt = str_replace('\\', '', $inhalt);
+?>
+<table width="500" align="center" height="100%">
+<tr>
+<td height="100%" align="center" valign="middle">
+<?
+head("Diese Seite ist im Wartungsmodus");
+echo nl2br($inhalt);
+foot();
+?>
+</td>
+</tr>
+</table>
\ No newline at end of file
-- 
GitLab