diff --git a/content/rallysystem.php b/content/rallysystem.php
new file mode 100644
index 0000000000000000000000000000000000000000..40419fca0e7707fb6f9bccdc6f05336e43e9cd34
--- /dev/null
+++ b/content/rallysystem.php
@@ -0,0 +1,184 @@
+<?php
+// Variabeln
+$rallyname = mysql_real_escape_string($_GET['rally']);
+$time = time();
+// Ralleydaten auslesen
+$rally = mysql_fetch_array (db_query ('SELECT * FROM vms_rallydaten WHERE name = "' . $rallyname . '" LIMIT 1'));
+
+function sectodays($secs) {
+    $days = intval($secs / (60 * 60 * 24));
+    $secs = $secs % (60 * 60 * 24);
+    $hours = intval($secs / (60 * 60));
+    $secs = $secs % (60 * 60);
+    $mins = intval($secs / 60);
+    $secs = $secs % 60;
+    return 'noch ' . $days . ' Tage, ' . $hours . ' Std. und ' . $mins . ' Min.';
+}
+
+if ($rally['status'] != 'aktive') {
+    $swf_prozent = 0;
+    $swf_status = "Rally aktuell Inaktive.";
+} else if (time() < $rally['start']) {
+    $swf_prozent = 0;
+    $swf_status = "Noch nicht gestartet.";
+} elseif (($rally['ende_art'] == 'zeit' && $rally['ende_zeit'] <= $time) OR ($rally['ende_art'] == 'punkt' && $rally['ende_punkte'] <= $rally['ende_punkte_aktuell'])) {
+    $swf_prozent = 10000;
+    $swf_status = "Erfolgreich Beendet.";
+} else {
+    if ($rally['ende_art'] == 'zeit') {
+        if ($rally['ende_vortschritt'] == 'datum') {
+            $swf_prozent = number_format(($time - $rally['start']) / ($rally['ende_zeit'] - $rally['start']) * 100, 2, ',', '\'');
+            $swf_status = sectodays($rally['ende_zeit'] - $time);
+        } elseif ($rally['ende_vortschritt'] == 'Jeden Tag') {
+            $tag = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
+            $ende = $tag + (24 * 60 * 60);
+            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
+            $swf_status = sectodays($ende - time());
+        } elseif ($rally['ende_vortschritt'] == 'Jede Woche') {
+            if (date('w') == 0) $wochentag = 7;
+            if (date('w') != 0) $wochentag = date('w');
+            $tag = mktime(0, 0, 0, date('m'), (date('d') - $wochentag + 1), date('Y'));
+            $ende = $tag + (7 * 24 * 60 * 60);
+            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
+            $swf_status = sectodays($ende - time());
+        } elseif ($rally['ende_vortschritt'] == 'Jeden Monat') {
+            $tag = mktime(0, 0, 0, date('m'), 1, date('Y'));
+            $ende = mktime(23, 59, 59, (date('m') + 1), 0, date('Y'));
+            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
+            $swf_status = sectodays($ende - time());
+        } elseif ($rally['ende_vortschritt'] == 'Jedes Jahr') {
+            $wochentag = 365 - date('z');
+            $tag = mktime(0, 0, 0, 1, 1, date('Y'));
+            $ende = $tag + (365 * 24 * 60 * 60);
+            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
+            $swf_status = sectodays($ende - time());
+        }
+    } else {
+        $swf_prozent = number_format(100 / $rally['ende_punkte'] * $rally['ende_punkte_aktuell'], 2, ',', '\'');
+        $swf_status = 'Es sind noch ' . ($rally['ende_punkte'] - $rally['ende_punkte_aktuell']) . ' ' . $rally['einheit'] . ' bis zum Ende';
+    }
+}
+// Flash Ralley Anzeige
+echo '<br><br>' . $rally['beschrieb'] . '<br><br>
+
+<style type="text/css">
+<!--
+    #rot {
+        background-color: #253c4e;
+        border: 1px;
+        width: 430px;
+        height: 20px;
+        text-align: left;
+        -moz-border-radius: 6px;-webkit-border-radius: 6px;border-radius: 6px;
+    }
+    #vortschritt {
+        background-color: #00FF00;
+        border: 0px;
+        width: ' . number_format($swf_prozent, 0, ',', '\'') . '%;
+        height: 100%;
+        -moz-border-radius: 6px;-webkit-border-radius: 6px;border-radius: 6px;
+    }
+-->
+</style>
+<div style="font-size:17px; line-hight:21px; font-weight:bold;">
+<b><font size="+2">Fortschritt<br></font></b><br>
+<div id="rot">
+  <div id="vortschritt"></div>
+</div>
+<br>
+Der Rallyfortschrit beträgt ' . ($swf_prozent) . ' Prozent. <br>
+' . $swf_status . '
+</div><br><br>
+
+';
+
+$gesperrt = explode(',', $rally['sperruser']);
+if (in_array($_SESSION['uid'], $gesperrt)) {
+    echo'<br><b><font size="+1" color="#9F0101">!!Gesperrt!!<br>Sie wurden vom Admin von dieser Rally ausgeschlossen.</font></b><br><br>';
+}
+
+if ($_SESSION['login'] == 'true') {
+    $rallystand = mysql_fetch_array(db_query("SELECT punkte FROM vms_rallyuser WHERE uid=" . $_SESSION['uid'] . " and  rally = '" . $rallyname . "' LIMIT 1"));
+    echo'<h2><font color="#010101">Du hast in der ' . $rallyname . '-Rally bereits ' . number_format($rallystand['punkte'], 0, ",", ".") . ' ' . $rally['ende_formulierung'] . '. (Danke)</font></h2><br>';
+}
+
+if ($rally['ende_art'] == 'punkt') {
+    echo'Diese ' . $rallyname . '-Rally endet soball alle gemeinsam ' . $rally['ende_punkte'] . ' ' . $rally['ende_formulierung'] . ' haben.<br> ';
+} elseif ($rally['ende_vortschritt'] == 'datum') {
+    echo'Diese ' . $rallyname . '-Rally endet am ' . date('j F Y  G:i', $rally['ende_zeit']) . '<br>';
+} else {
+    echo 'Diese Rally hat kein Ende. Sie wird immer wieder in bestimmten Abständen (' . $rally['ende_vortschritt'] . ') neu gestartet.<br>';
+}
+
+if ($rally['gewinn_art'] == 'dynamisch') {
+    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine Dynamische Rally. <br>
+    Dies bedeutet der Gewinn pro Rang steigt mit der Aktivit&auml;t der User in der Rally. <br>
+    Der Gewinn-Topf ist nach oben nicht begrenzt und beträgt aktuell  ' . $rally['gewinn_topf'] . ' ' . $waehrung . '. <br> ';
+} else {
+    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine Statische Rally. <br>
+    Die gesammte Gewinnsumme bel&auml;uft sich auf ' . $rally['gewinn_topf'] . ' ' . $waehrung . '. <br>';
+}
+
+if ($rally['mindestpunktzhl'] > '0') {
+    echo'<br>Sie müssen mindestens ' . $rally['mindestpunktzhl'] . ' ' . $rally['ende_formulierung'] . ' haben um in der Rally gewertet zu werden<br><br>';
+}
+
+echo '
+
+
+<br>
+<table width="100%" cellpadding="1" cellspacing="1" border="0" class="tablesorter">
+<thead>
+	<tr >
+		<th width="30"><b>Rang</b></th>
+		<th><b>User</b></th>
+		<th width="100"><b>' . $rally['einheit'] . '</b></th>
+		<th width="180"><b>möglicher Gewinn</b></th>
+		<th width="110"><b>Mindestpunktzahl</b></th>
+	</tr>
+</thead>
+<tbody>';
+
+$platz = db_query ('SELECT k.punkte,u.nickname,u.uid FROM vms_rallyuser k LEFT JOIN vms_userdaten u ON u.uid = k.uid WHERE k.rally = "' . $rallyname . '" AND k.ausgezahlt = "0" ORDER BY k.punkte DESC');
+$rp = 1;
+$gesperrt = explode(',', $rally['sperruser']);
+while ($pa = mysql_fetch_array($platz)) {
+    if (!in_array($pa['uid'], $gesperrt)) {
+        if ($rally['gewinner_anzahl'] >= $rp) {
+            $mg = number_format(($rally['gewinn_topf'] / 100 * $rally['p' . $rp]), 2, ',', '.') . ' ' . $waehrung;
+        } else $mg = '---';
+        if ($pa['punkte'] < $rally['mindestpunktzhl']) $mindestpunkt = '<span style="color:#FF6600;">Nicht erreicht.</span>';
+        if ($pa['punkte'] >= $rally['mindestpunktzhl']) $mindestpunkt = '<span style="color:#339966;">Erreicht.</span>';
+        echo '<tr>
+    		<td align="right">' . $rp++ . '.&nbsp;</td>
+    		<td>&nbsp;' . $pa['nickname'] . '</td>
+    		<td align="right">' . number_format($pa['punkte'], 0) . '&nbsp;</td>
+    		<td align="right">' . $mg . '&nbsp;</td>
+            <td align="right"><strong>' . $mindestpunkt . '</strong></td>
+    	</tr>';
+    }
+}
+
+for($x = $rp;$x < $rally['gewinner_anzahl'] + 1;$x++) {
+    $mg = number_format(($rally['gewinn_topf'] / 100 * $rally['p' . $rp]), 2, ',', '.') . ' ' . $waehrung;
+    $row = ($rp % 2 == 0) ? 0 : 1;
+    $mindestpunkt = '<span style="color:#808080;">Wartend.</span>';
+    if ($x > $rally['gewinner_anzahl']) $mg = '---';
+    ?>
+	<tr>
+		<td align="right"><?php echo $rp++;?>.&nbsp;</td>
+		<td>&nbsp;n/a</td>
+		<td align="right">0&nbsp;</td>
+		<td align="right"><?php echo $mg;?>&nbsp;</td>
+        <td align="right"><strong><?php echo $mindestpunkt;?></strong></td>
+	</tr>
+<?php
+}
+?>
+</tbody>
+</table>
+<?php
+foot();
+?>
+
+