Index: /trunk/de.inside.wcf.Gewinnspiel/en.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/en.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/en.xml (revision 516)
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "DTD/language.dtd">
+<!--
+	/*
+	* $LastChangedDate: 2007-09-21 21:08:45 +0200 (Fr, 21 Sept 2007) $
+	* $LastChangedBy: Tatzelwurm $
+	* $HeadURL: file:///home/tatzel/wbb3/gewinnspiel/en.xml $
+	* $Id: en.xml 9 2007-09-21 21:08:45 Tatzelwurm $
+	*/
+-->
+<language languagecode="en">
+	<category name="wcf.acp.package">
+		<item name="wcf.acp.package.step.install.GewinnspielPackageInstallationPlugin"><![CDATA[Installing INSIDE competition]]></item>
+		<item name="wcf.acp.package.step.uninstall.GewinnspielPackageInstallationPlugin"><![CDATA[Deleteing INSIDE competition]]></item>
+		<item name="wcf.acp.package.step.update.GewinnspielPackageInstallationPlugin"><![CDATA[Updateing INSIDE competition]]></item>
+	</category>
+	<category name="wcf.usersOnline">
+		<item name="wcf.usersOnline.location.gewinnspiel"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">competition</a>]]></item>
+		<item name="wcf.usersOnline.location.gewinnspiel.form"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">competition</a>]]></item>
+	</category>
+	<category name="wcf.acp.menu">
+		<item name="wcf.acp.menu.link.games.gewinnspiel"><![CDATA[Competition]]></item>
+	</category>
+	<category name="wcf.acp.option">
+		<item name="wcf.acp.option.category.gewinnspiel"><![CDATA[Competitions]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general"><![CDATA[Competition online/offline settings]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline"><![CDATA[Deactivate Competition?]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message"><![CDATA[Deactivation notice]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message.description"><![CDATA[]]></item>
+	</category>
+	<category name="wcf.acp.group">
+		<item name="wcf.acp.group.option.category.user.games"><![CDATA[Games]]></item>
+		<item name="wcf.acp.group.option.category.user.games.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options"><![CDATA[Competition settings]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel"><![CDATA[Can enter competition]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel.description"><![CDATA[Members of this group can enter competition]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel"><![CDATA[Gameoptions]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions"><![CDATA[Can edit competition options]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions.description"><![CDATA[Members of this group can add, edit and delete competitions]]></item>
+	</category>
+	<category name="wcf.gewinnspiel">
+		<item name="wcf.gewinnspiel.copynotice"><![CDATA[Competition wBB3 Â© 2007 by <a href="http://www.inside-das-hoerspiel.de">INSIDE das H&ouml;rspiel</a>]]></item>
+		<item name="wcf.gewinnspiel.title"><![CDATA[Competition]]></item>
+		<item name="wcf.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.gewinnspiel.money"><![CDATA[required money: {$gewinnspiel.money} {lang}wcf.user.guthaben.currency{/lang}]]></item>
+		<item name="wcf.gewinnspiel.errormoney"><![CDATA[You do not have sufficient assets, so you can not play.]]></item>
+		<item name="wcf.gewinnspiel.statusmain"><![CDATA[Status]]></item>
+		<item name="wcf.gewinnspiel.statusspielen"><![CDATA[play]]></item>
+		<item name="wcf.gewinnspiel.statusgespielt"><![CDATA[already played]]></item>
+		<item name="wcf.gewinnspiel.statusnotok"><![CDATA[attendance not possible]]></item>
+		<item name="wcf.gewinnspiel.statustocome"><![CDATA[competition has not started yet, try again later]]></item>
+		<item name="wcf.gewinnspiel.statusended"><![CDATA[ended]]></item>
+		<item name="wcf.gewinnspiel.titelname"><![CDATA[Title]]></item>
+		<item name="wcf.gewinnspiel.datalabel"><![CDATA[Your personal data]]></item>
+		<item name="wcf.gewinnspiel.frage"><![CDATA[Question]]></item>
+		<item name="wcf.gewinnspiel.antwort"><![CDATA[Answer]]></item>
+		<item name="wcf.gewinnspiel.start"><![CDATA[start time]]></item>
+		<item name="wcf.gewinnspiel.timeout"><![CDATA[timeout]]></item>
+		<item name="wcf.gewinnspiel.beschreibung"><![CDATA[description]]></item>
+		<item name="wcf.gewinnspiel.datenschutz"><![CDATA[privacy statement and disclaimer]]></item>
+		<item name="wcf.gewinnspiel.regeln"><![CDATA[For this competition the following rules apply]]></item>
+		<item name="wcf.gewinnspiel.userreal"><![CDATA[Your name]]></item>
+		<item name="wcf.gewinnspiel.userreal.description"><![CDATA[Please enter your full name here.]]></item>
+		<item name="wcf.gewinnspiel.useraddr"><![CDATA[Your address]]></item>
+		<item name="wcf.gewinnspiel.useraddr.description"><![CDATA[Street Number, Postal Code City, Country]]></item>
+		<item name="wcf.gewinnspiel.username"><![CDATA[Your username]]></item>
+		<item name="wcf.gewinnspiel.username.gast"><![CDATA[Guest]]></item>
+		<item name="wcf.gewinnspiel.usercount"><![CDATA[{@$usercount} User did already enter this competition]]></item>
+		<item name="wcf.gewinnspiel.hinweis1"><![CDATA[Here we go! Good luck!.]]></item>
+		<item name="wcf.gewinnspiel.kosten"><![CDATA[for playing a competition]]></item>
+		<item name="wcf.gewinnspiel.hinweis2"><![CDATA[(Please enter AKZEPTIERT into this field.]]></item>
+		<item name="wcf.gewinnspiel.akzept"><![CDATA[I have read the rules and agree with them.]]></item>
+		<item name="wcf.gewinnspiel.wrongid"><![CDATA[This is not a competition ID]]></item>
+		<item name="wcf.gewinnspiel.noright"><![CDATA[You're unfortunately not allowed to enter this competition]]></item>
+		<item name="wcf.gewinnspiel.alreadyplayed"><![CDATA[You can't enter the competition twice]]></item>
+		<item name="wcf.gewinnspiel.ok_redirect"><![CDATA[Your competition-E-mail has been sent successfully.]]></item>
+		<item name="wcf.gewinnspiel.nogroupe"><![CDATA[Your Usergroup is not allowed to enter the competition.]]></item>
+		<item name="wcf.gewinnspiel.mail.subject"><![CDATA[Confirmation {PAGE_TITLE} competition]]></item>
+		<item name="wcf.gewinnspiel.mail.subject.recipient"><![CDATA[Notification {PAGE_TITLE} competition]]></item>
+		<item name="wcf.gewinnspiel.mail.message"><![CDATA[Thank you {$userreal} for joining our competition, 
+this E-Mail confirms the data, questions and answers you entered.
+
+Date and time: {$datetime}
+Your username: {$username}
+Your e-mail Adresse: {$useremail}
+Your name: {$userreal}
+Your address: {$useraddr}
+
+{$FrageAntwort}By entering AKZEPTIERT you have accepted the rules of the competition.
+Entering more than once is not allowed.
+
+For questions on the competition please feel free to send an email to {$recipient}.
+
+Good Luck 
+
+{PAGE_TITLE}-Team]]></item>
+		<item name="wcf.gewinnspiel.mail.message.recipient"><![CDATA[{$userreal} has entered your competition,
+this E-Mail confirms the data, questions and answers {$userreal} entered.
+
+Date and Time: {$datetime}
+Board-username: {$username}
+E-Mail adress: {$useremail}
+Name: {$userreal}
+Adress: {$useraddr}
+
+{$FrageAntwort}Have fun.
+
+{PAGE_TITLE}-Team]]></item>
+	</category>
+	<category name="wcf.acp.gewinnspiel">
+		<item name="wcf.acp.gewinnspiel.view"><![CDATA[back to list]]></item>
+		<item name="wcf.acp.gewinnspiel.list"><![CDATA[competition list]]></item>
+		<item name="wcf.acp.gewinnspiel.games.count"><![CDATA[{@$gamescount} Games available]]></item>
+		<item name="wcf.acp.gewinnspiel.gwsID"><![CDATA[ID]]></item>
+		<item name="wcf.acp.gewinnspiel.titelname"><![CDATA[competition title]]></item>
+		<item name="wcf.acp.gewinnspiel.beschreibung"><![CDATA[competition description]]></item>
+		<item name="wcf.acp.gewinnspiel.add"><![CDATA[add competition]]></item>
+		<item name="wcf.acp.gewinnspiel.add.success"><![CDATA[new competition added]]></item>
+		<item name="wcf.acp.gewinnspiel.edit"><![CDATA[edit competition]]></item>
+		<item name="wcf.acp.gewinnspiel.edit.success"><![CDATA[Changes successfully]]></item>
+		<item name="wcf.acp.gewinnspiel.data"><![CDATA[competition data]]></item>
+		<item name="wcf.acp.gewinnspiel.dauer"><![CDATA[duration]]></item>
+		<item name="wcf.acp.gewinnspiel.delete"><![CDATA[delete competition]]></item>
+		<item name="wcf.acp.gewinnspiel.delete.sure"><![CDATA[Do you really want to delete this competition?]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen"><![CDATA[Questions:]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen.description"><![CDATA[Only one question per line, no empty lines! (BBcode, smilies and HTML allowed.)]]></item>
+		<item name="wcf.acp.gewinnspiel.empf"><![CDATA[Recipient for answers:]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln"><![CDATA[competition rules]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln.description"><![CDATA[The rules are shown beneath the questions. (BBcode, Smilies allowed, HTML not.)]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz"><![CDATA[privacy]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz.description"><![CDATA[Shown above "AKZEPT". (BBcode, Smilies allowed, HTML not.)]]></item>
+		<item name="wcf.acp.gewinnspiel.beschreibung"><![CDATA[Description]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln.description"><![CDATA[The rules are shown beneath the questions. (BBcode, Smilies allowed, HTML not.)]]></item>
+		<item name="wcf.acp.gewinnspiel.groups"><![CDATA[Groups]]></item>
+		<item name="wcf.acp.gewinnspiel.money"><![CDATA[required assets]]></item>
+		<item name="wcf.acp.gewinnspiel.money2"><![CDATA[Assets required]]></item>
+		<item name="wcf.acp.gewinnspiel.start.error"><![CDATA[Invalid time of start!]]></item>
+		<item name="wcf.acp.gewinnspiel.timeout.error"><![CDATA[Invalid endtime!]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer"><![CDATA[List of participants]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.id"><![CDATA[User ID]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.ip"><![CDATA[IP Address]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.email"><![CDATA[E-Mail]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.realname"><![CDATA[Name]]></item>
+	</category>
+</language>
Index: /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielUser.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielUser.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielUser.tpl (revision 516)
@@ -0,0 +1,55 @@
+{include file='header'}
+<script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/MultiPagesLinks.class.js"></script>
+
+<div class="mainHeadline">
+	<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielL.png" alt="" />
+	<div class="headlineContainer">
+		<h2>{lang}wcf.acp.gewinnspiel.teilnehmer{/lang}</h2>
+		{if $gwsID|isset}<p>{@$gwsTitel}</p>{/if}
+	</div>
+</div>
+<div class="contentHeader">
+	<div class="largeButtons">
+		<ul><li><a href="index.php?page=GewinnspielList&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielM.png" alt="" title="{lang}wcf.acp.gewinnspiel.view{/lang}" /> <span>{lang}wcf.acp.gewinnspiel.view{/lang}</span></a></li></ul>
+	</div>
+</div>
+
+{if $spieler|count}
+	<div class="contentHeader">
+		{pages print=true assign=pagesLinks link="index.php?page=GewinnspielUser&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&gwsID=$gwsID&packageID="|concat:PACKAGE_ID:SID_ARG_2ND_NOT_ENCODED}
+	</div>
+
+	<div class="border">
+		<div class="containerHead"><h3>{@$gwsTitel}</h3></div>
+
+		<table class="tableList">
+			<thead>
+				<tr class="tableHead">
+					<th class="columnBoxname{if $sortField == 'userID'} active{/if}">
+						<div><a href="index.php?page=GewinnspielUser&amp;gwsID={@$gwsID}&amp;pageNo={@$pageNo}&amp;sortField=userID&amp;sortOrder={if $sortField == 'userID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.teilnehmer.id{/lang}{if $sortField == 'userID'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'ipaddress'} active{/if}">
+						<div><a href="index.php?page=GewinnspielUser&amp;gwsID={@$gwsID}&amp;pageNo={@$pageNo}&amp;sortField=ipaddress&amp;sortOrder={if $sortField == 'ipaddress' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.teilnehmer.ip{/lang}{if $sortField == 'ipaddress'}<img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'email'} active{/if}">
+						<div><a href="index.php?page=GewinnspielUser&amp;gwsID={@$gwsID}&amp;pageNo={@$pageNo}&amp;sortField=email&amp;sortOrder={if $sortField == 'email' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.teilnehmer.email{/lang}{if $sortField == 'email'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'realName'} active{/if}">
+						<div><a href="index.php?page=GewinnspielUser&amp;gwsID={@$gwsID}&amp;pageNo={@$pageNo}&amp;sortField=realName&amp;sortOrder={if $sortField == 'realName' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.teilnehmer.realname{/lang}{if $sortField == 'realName'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+				</tr>
+			</thead>
+			<tbody>
+			{foreach from=$spieler item=user}
+				<tr class="{cycle values="container-1,container-2" advance=false}" id="userRow{@$user.userID}">
+					<td class="columnIcon">{@$user.userID}</td>
+					<td class="columnname columnText">{@$user.ipaddress}</td>
+					<td class="columnname columnText">{@$user.email}</td>
+					<td class="columnname columnText">{@$user.realName}</td>
+				</tr>
+			{/foreach}
+			</tbody>
+		</table>
+	</div>
+	<div class="contentFooter">
+		{@$pagesLinks}
+	</div>
+{/if}
+
+{include file='footer'}
Index: /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielAdd.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielAdd.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielAdd.tpl (revision 516)
@@ -0,0 +1,286 @@
+{include file='header'}
+<script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/TabbedPane.class.js"></script>
+<script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/TabMenu.class.js"></script>
+<script type="text/javascript">
+	//<![CDATA[
+	var tabMenu = new TabMenu();
+	{if $menOptions|count}onloadEvents.push(function() { tabMenu.showSubTabMenu('{@$menOptions.0.menname}') });{/if}
+	//]]>
+</script>
+
+<div class="mainHeadline">
+	<img src="{@RELATIVE_WCF_DIR}icon/gewinnspiel{@$action|ucfirst}L.png" alt="" />
+	<div class="headlineContainer">
+		<h2>{lang}wcf.acp.gewinnspiel.{@$action}{/lang}</h2>
+		{if $gwsID|isset}<p>{lang}{$gwsTitel}{/lang}</p>{/if}
+	</div>
+</div>
+
+{if $errorField}
+	<p class="error">{lang}wcf.global.form.error{/lang}</p>
+{/if}
+
+{if $success|isset}
+	<p class="success">{lang}wcf.acp.gewinnspiel.{@$action}.success{/lang}</p>	
+{/if}
+
+<div class="contentHeader">
+	<div class="largeButtons">
+		<ul><li><a href="index.php?page=GewinnspielList&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielM.png" alt="" title="{lang}wcf.acp.gewinnspiel.view{/lang}" /> <span>{lang}wcf.acp.gewinnspiel.view{/lang}</span></a></li></ul>
+	</div>
+</div>
+
+<form method="post" action="index.php?form=Gewinnspiel{@$action|ucfirst}">
+	<div class="border content">
+		<div class="containerHead">
+			<div class="formElement{if $errorField == 'gwsTitel'} formError{/if}">
+				<div class="formFieldLabel">
+					<label for="gwsTitel">{lang}wcf.acp.gewinnspiel.titelname{/lang}</label>
+				</div>
+				<div class="formField">
+					<input type="text" class="inputText" id="gwsTitel" name="gwsTitel" value="{$gwsTitel}" />
+						{if $errorField == 'gwsTitel'}
+						<p class="innerError">
+						{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+						</p>
+					{/if}
+				</div>
+			</div>
+		</div>
+		<div id="gwsEdit">
+			<fieldset class="noJavaScript">
+			<script src="{@RELATIVE_WCF_DIR}js/Calendar.class.js" type="text/javascript"></script>
+			<script type="text/javascript">
+				//<![CDATA[
+				var calendar = new Calendar('{$monthList}', '{$weekdayList}', {@$startOfWeek});
+				//]]>
+			</script>
+			<legend class="noJavaScript">{lang}wcf.acp.gewinnspiel.data{/lang}</legend>
+				<div class="formElement{if $errorField == 'gwsOptions'} formError{/if}">
+					<div class="formFieldLabel">
+						<label for="gwsOptions">{lang}wcf.acp.gewinnspiel.fragen{/lang}</label>
+					</div>
+					<div class="formField">
+						<textarea name="gwsOptions" id="gwsOptions" rows="5" cols="20">{$gwsOptions}</textarea>
+						{if $errorField == 'gwsOptions'}
+							<p class="innerError">
+								{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+							</p>
+						{/if}
+					</div>
+					<div class="formFieldDesc">
+						<p>{lang}wcf.acp.gewinnspiel.fragen.description{/lang}</p>
+					</div>
+				</div>
+			</fieldset>
+			<fieldset class="noJavaScript">
+			<legend class="noJavaScript">{lang}wcf.acp.gewinnspiel.dauer{/lang}</legend>
+				<div class="formGroup{if $errorField == 'start'} formError{/if}">
+					<div class="formGroupLabel">
+						<label>{lang}wcf.gewinnspiel.start{/lang}</label>
+					</div>
+					<div class="formGroupField">
+						<fieldset>
+						<legend><label>{lang}wcf.gewinnspiel.start{/lang}</label></legend>
+							<div class="formField">
+							{if $action == 'add' || $starttime >= TIME_NOW}
+								<div class="floatedElement">
+									<label for="startDay">{lang}wcf.global.date.day{/lang}</label>
+									{htmlOptions options=$dayOptions selected=$startDay id=startDay name=startDay}
+								</div>
+								<div class="floatedElement">
+									<label for="startMonth">{lang}wcf.global.date.month{/lang}</label>
+									{htmlOptions options=$monthOptions selected=$startMonth id=startMonth name=startMonth}
+								</div>
+								<div class="floatedElement">
+									<label for="startYear">{lang}wcf.global.date.year{/lang}</label>
+									<input id="startYear" class="inputText fourDigitInput" type="text" name="startYear" value="{@$startYear}" maxlength="4" />
+								</div>
+								<div class="floatedElement">
+									<label for="startHour">{lang}wcf.global.date.hour{/lang}</label>
+									<input id="startHour" class="inputText fourDigitInput" type="text" name="startHour" value="{@$startHour}" maxlength="2" />
+								</div>
+								<div class="floatedElement">
+									<label for="startMinutes">{lang}wcf.global.date.minutes{/lang}</label>
+									<input id="startMinutes" class="inputText fourDigitInput" type="text" name="startMinutes" value="{@$startMinutes}" maxlength="2" />
+								</div>
+								<div class="floatedElement">
+									<a id="startButton"><img src="{@RELATIVE_WCF_DIR}icon/calendarOptionsM.png" alt="" /></a>
+									<div id="startCalendar" class="inlineCalendar">
+									</div>
+									<script type="text/javascript">
+										//<![CDATA[
+										calendar.init('start');
+										//]]>
+									</script>
+								</div>
+								{if $errorField == 'start'}
+								<p class="innerError">
+									{if $errorType == 'invalid'}{lang}wcf.acp.gewinnspiel.start.error{/lang}{/if}
+								</p>
+								{/if}
+							{else}
+								<div class="floatedElement">
+									<input id="starttime" class="text" type="hidden" name="starttime" value="{@$starttime}" readonly="readonly" />{$starttime|shorttime}
+								</div>
+							{/if}
+							</div>
+						</fieldset>
+					</div>
+				</div>
+				<div class="formGroup{if $errorField == 'timeout'} formError{/if}">
+					<div class="formGroupLabel">
+						<label>{lang}wcf.gewinnspiel.timeout{/lang}</label>
+					</div>
+					<div class="formGroupField">
+						<fieldset>
+						<legend><label>{lang}wcf.gewinnspiel.timeout{/lang}</label></legend>
+							<div class="formField">
+								<div class="floatedElement">
+									<label for="timeoutDay">{lang}wcf.global.date.day{/lang}</label>
+									{htmlOptions options=$dayOptions selected=$timeoutDay id=timeoutDay name=timeoutDay}
+								</div>
+								<div class="floatedElement">
+									<label for="timeoutMonth">{lang}wcf.global.date.month{/lang}</label>
+									{htmlOptions options=$monthOptions selected=$timeoutMonth id=timeoutMonth name=timeoutMonth}
+								</div>
+								<div class="floatedElement">
+									<label for="timeoutYear">{lang}wcf.global.date.year{/lang}</label>
+									<input id="timeoutYear" class="inputText fourDigitInput" type="text" name="timeoutYear" value="{@$timeoutYear}" maxlength="4" />
+								</div>
+								<div class="floatedElement">
+									<label for="timeoutHour">{lang}wcf.global.date.hour{/lang}</label>
+									<input id="timeoutHour" class="inputText fourDigitInput" type="text" name="timeoutHour" value="{@$timeoutHour}" maxlength="2" />
+								</div>
+								<div class="floatedElement">
+									<label for="timeoutMinutes">{lang}wcf.global.date.minutes{/lang}</label>
+									<input id="timeoutMinutes" class="inputText fourDigitInput" type="text" name="timeoutMinutes" value="{@$timeoutMinutes}" maxlength="2" />
+								</div>
+								<div class="floatedElement">
+									<a id="timeoutButton"><img src="{@RELATIVE_WCF_DIR}icon/calendarOptionsM.png" alt="" /></a>
+									<div id="timeoutCalendar" class="inlineCalendar"></div>
+									<script type="text/javascript">
+										//<![CDATA[
+										calendar.init('timeout');
+										//]]>
+									</script>
+								</div>
+								{if $errorField == 'timeout'}
+									<p class="innerError">
+										{if $errorType == 'invalid'}{lang}wcf.acp.gewinnspiel.timeout.error{/lang}{/if}
+									</p>
+								{/if}
+							</div>
+						</fieldset>
+					</div>
+				</div>
+			</fieldset>
+			<fieldset>
+				<legend>{lang}wcf.acp.gewinnspiel.empf{/lang}</legend>
+				<div class="formElement{if $errorField == 'email'} formError{/if}">
+					<div class="formFieldLabel">
+						<label for="email">{lang}wcf.user.email{/lang}</label>
+					</div>
+					<div class="formField">	
+						<input type="text" class="inputText" id="email" name="email" value="{$email}" />
+ 						{if $errorField == 'email'}
+							<p class="innerError">
+								{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+								{if $errorType == 'notValid'}{lang}wcf.user.error.email.notValid{/lang}{/if}
+								{if $errorType == 'notUnique'}{lang}wcf.user.error.email.notUnique{/lang}{/if}
+							</p>
+						{/if}
+					</div>
+				</div>
+				<div class="formElement{if $errorField == 'confirmEmail'} formError{/if}">
+					<div class="formFieldLabel">
+						<label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label>
+					</div>
+					<div class="formField">
+						<input type="text" class="inputText" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" />
+ 						{if $errorField == 'confirmEmail'}
+							<p class="innerError">
+								{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+								{if $errorType == 'notEqual'}{lang}wcf.user.error.confirmEmail.notEqual{/lang}{/if}
+								{if $errorType == 'notUnique'}{lang}wcf.user.error.email.notUnique{/lang}{/if}
+							</p>
+						{/if}
+					</div>
+				</div>
+			</fieldset>
+			<div class="tabMenu">
+				<ul>
+					{foreach from=$menOptions item=menname}
+						<li id="{@$menname}"><a onclick="tabMenu.showSubTabMenu('{@$menname}');"><span>{lang}wcf.acp.gewinnspiel.{@$menname}{/lang}</span></a></li>
+					{/foreach}
+				</ul>
+			</div>
+			<div class="subTabMenu">
+				<div class="containerHead"><div> </div></div>
+			</div>
+			{foreach from=$menOptions item=menname}
+				<div class="border tabMenuContent hidden" id="{@$menname}-content">
+					<div class="container-1">
+						<h3 class="subHeadline">{lang}wcf.acp.gewinnspiel.{@$menname}{/lang}</h3>
+						{if $menname == 'regeln'}
+							<div class="formElement">
+								<div class="formField">
+									<textarea name="regeln" id="text" rows="8" cols="80">{$regeln}</textarea>
+								</div>
+							</div>
+						{/if}
+						{if $menname == 'datenschutz'}
+							<div class="formElement">
+								<div class="formField">
+									<textarea name="datenschutz" id="text" rows="8" cols="40">{$datenschutz}</textarea>
+								</div>
+							</div>
+						{/if}
+						{if $menname == 'beschreibung'}
+							<div class="formElement">
+								<div class="formField">
+									<textarea name="beschreibung" id="text" rows="8" cols="40">{$beschreibung}</textarea>
+								</div>
+							</div>
+						{/if}
+					<div class="formFieldDesc">
+						<p>{lang}wcf.acp.gewinnspiel.{@$menname}.description{/lang}</p>
+					</div>
+					</div>
+				</div>
+			{/foreach}
+						
+			<fieldset>
+				<legend>{lang}wcf.acp.gewinnspiel.guthaben{/lang}</legend>
+				<div class="formElement" id="money">
+					<div class="formField">
+						<label id="money"><input type="text" size="5" name="money" value="{$money}" /> {lang}wcf.acp.gewinnspiel.money2{/lang}</label>
+					</div>
+				</div>
+			</fieldset>
+
+			<fieldset>
+				<legend>{lang}wcf.acp.gewinnspiel.groups{/lang}</legend>
+				<div class="formGroup">
+					<div class="formGroupField">
+						<fieldset>
+							<legend>{lang}wcf.acp.user.groups{/lang}</legend>
+							
+							<div class="formField">
+								{htmlCheckboxes options=$availableGroups name=groupIDs selected=$groupIDs}
+							</div>
+						</fieldset>
+					</div>
+				</div>
+			</fieldset>
+	<div class="formSubmit">
+		<input type="submit" accesskey="s" value="{lang}wcf.global.button.submit{/lang}" />
+		<input type="reset" accesskey="r" value="{lang}wcf.global.button.reset{/lang}" />
+		<input type="hidden" name="packageID" value="{@PACKAGE_ID}" />
+ 		{@SID_INPUT_TAG}
+ 		<input type="hidden" name="action" value="{@$action}" />
+ 		{if $gwsID|isset}<input type="hidden" name="gwsID" value="{@$gwsID}" />{/if}
+ 	</div>
+</form>
+
+{include file='footer'}
Index: /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielList.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielList.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/acptemplates/gewinnspielList.tpl (revision 516)
@@ -0,0 +1,67 @@
+{include file='header'}
+<script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/MultiPagesLinks.class.js"></script>
+
+<div class="mainHeadline">
+	<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielL.png" alt="" />
+	<div class="headlineContainer">
+		<h2>{lang}wcf.acp.gewinnspiel.list{/lang}</h2>
+	</div>
+</div>
+<div class="contentHeader">
+	<div class="largeButtons">
+		<ul><li><a href="index.php?form=GewinnspielAdd&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielAddM.png" alt="" title="{lang}wcf.acp.gewinnspiel.add{/lang}" /> <span>{lang}wcf.acp.gewinnspiel.add{/lang}</span></a></li></ul>
+	</div>
+</div>
+
+{if $gewinnspiele|count}
+	<div class="contentHeader">
+		{pages print=true assign=pagesLinks link="index.php?page=GewinnspielList&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:PACKAGE_ID:SID_ARG_2ND_NOT_ENCODED}
+	</div>
+
+	<div class="border">
+		<div class="containerHead"><h3>{lang}wcf.acp.gewinnspiel.games.count{/lang}</h3></div>
+
+		<table class="tableList">
+			<thead>
+				<tr class="tableHead">
+					<th class="columnBoxname{if $sortField == 'gwsID'} active{/if}">
+						<div><a href="index.php?page=GewinnspielList&amp;pageNo={@$pageNo}&amp;sortField=gwsID&amp;sortOrder={if $sortField == 'gwsID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.gwsID{/lang}{if $sortField == 'gwsID'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'gwsTitel'} active{/if}">
+						<div><a href="index.php?page=GewinnspielList&amp;pageNo={@$pageNo}&amp;sortField=gwsTitel&amp;sortOrder={if $sortField == 'gwsTitel' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.acp.gewinnspiel.titelname{/lang}{if $sortField == 'gwsTitel'} <img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'starttime'} active{/if}">
+						<div><a href="index.php?page=GewinnspielList&amp;pageNo={@$pageNo}&amp;sortField=starttime&amp;sortOrder={if $sortField == 'starttime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.gewinnspiel.start{/lang}{if $sortField == 'starttime'}<img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+					<th class="columnBoxname{if $sortField == 'timeout'} active{/if}">
+						<div><a href="index.php?page=GewinnspielList&amp;pageNo={@$pageNo}&amp;sortField=timeout&amp;sortOrder={if $sortField == 'timeout' && $sortOrder == 'ASC'}DESC{else}ASC{/if}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}wcf.gewinnspiel.timeout{/lang}{if $sortField == 'timeout'}<img src="{@RELATIVE_WCF_DIR}icon/sort{@$sortOrder}S.png" alt="" />{/if}</a></div></th>
+				</tr>
+			</thead>
+			<tbody>
+			{foreach from=$gewinnspiele item=gewinnspiel}
+				<tr class="{cycle values="container-1,container-2" advance=false}" id="gamesRow{@$gewinnspiel.gwsID}">
+					<td class="columnIcon">{@$gewinnspiel.gwsID}</td>
+					<td class="columnname columnText">
+						<a href="index.php?form=GewinnspielEdit&amp;gwsID={@$gewinnspiel.gwsID}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/editS.png" alt="" title="{lang}wcf.acp.gewinnspiel.edit{/lang}" /></a>
+						<a onclick="return confirm('{lang}wcf.acp.gewinnspiel.delete.sure{/lang}')" href="index.php?action=GewinnspielDelete&amp;gwsID={@$gewinnspiel.gwsID}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/deleteS.png" alt="" title="{lang}wcf.acp.gewinnspiel.delete{/lang}" /></a>
+						{if $gewinnspiel.usercount}
+							<a href="index.php?page=GewinnspielUser&amp;gwsID={@$gewinnspiel.gwsID}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielTocomeS.png" alt="" title="{lang}wcf.acp.gewinnspiel.teilnehmer{/lang}" /></a>
+						{else}
+							<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielTocomeS.png" alt="" title="{lang}wcf.acp.gewinnspiel.teilnehmer{/lang}" />
+						{/if}
+						<a href="index.php?form=GewinnspielEdit&amp;gwsID={@$gewinnspiel.gwsID}&amp;packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}{$gewinnspiel.gwsTitel}{/lang}</a> <b>({@$gewinnspiel.usercount})</b>
+					</td>
+					<td class="columnIcon">
+						{@$gewinnspiel.starttime|shorttime}
+					</td>
+					<td class="columnIcon">
+						{@$gewinnspiel.timeout|shorttime}
+					</td>
+				</tr>
+			{/foreach}
+			</tbody>
+		</table>
+	</div>
+	<div class="contentFooter">
+		{@$pagesLinks}
+	</div>
+{/if}
+
+{include file='footer'}
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielEditForm.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielEditForm.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielEditForm.class.php (revision 516)
@@ -0,0 +1,176 @@
+<?php
+// wcf imports
+require_once(WCF_DIR.'lib/acp/form/GewinnspielAddForm.class.php');
+
+/**
+ * Gewinnspiel Admin Control Panel.
+ * Bearbeiten eines Gewinnspiels.
+ * 
+ * @author		Robert "Tatzelwurm" Hempel
+ * @copyright	2007/2008 INSIDE das Hrspiel
+ * @license 	GNU LGPL http://www.gnu.org/licenses/lgpl.txt
+ * @package		de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielEditForm extends GewinnspielAddForm {
+	public $activeMenuItem = 'wcf.acp.menu.link.content.gewinnspiel.edit';
+
+	public $gwsID = 0;
+	public $start;
+	public $timeout;
+	public $gwsOption;
+	public $games;
+	public $gwsOldOptionsArray = array();
+	
+	/**
+	 * @see Page::readParameters()
+	 */
+	public function readParameters() {
+		parent::readParameters();
+		// get game id
+		if(isset($_REQUEST['gwsID']))		$this->gwsID 			= intval($_REQUEST['gwsID']);
+		if(isset($_POST['gwsOptions'])) 	$this->gwsOptionsText 	= StringUtil::unifyNewlines(StringUtil::trim($_POST['gwsOptions']));
+	}
+
+	/**
+	 * @see Page::readData()
+	 */
+	public function readData() {
+		parent::readData();
+		if (!count($_POST)) {
+		// get game
+			$sql = "SELECT	*
+					FROM		wcf".WCF_N."_gws_game
+					WHERE		gwsID = '".$this->gwsID."'";
+			$result = WCF::getDB()->sendQuery($sql);
+			while ($row = WCF::getDB()->fetchArray($result)) {
+				$games =array('gwsID'		=> $row['gwsID'],
+							  'gwsTitel'	=> $row['gwsTitel'],
+							  'start'		=> $row['starttime'],
+							  'timeout'		=> $row['timeout'] ,
+							  'email'		=> $row['recipient'],
+						  	  'regeln'		=> $row['regeln'],
+						  	  'datenschutz'	=> $row['discl'],
+						  	  'beschreibung' => $row['beschreib'],
+						  	  'groupIDs'	=> $row['groupIDs'],
+						  	  'money'		=> $row['money']);
+				$this->games[] = $games;
+			}
+			$this->groupIDs = explode(",",$games['groupIDs']);
+
+			// get game options
+			$sql = "SELECT		*
+					FROM 		wcf".WCF_N."_gws_options
+					WHERE 		gwsID = ".$this->gwsID."
+					ORDER BY 	showOrder";
+			$result = WCF::getDB()->sendQuery($sql);
+			while ($row = WCF::getDB()->fetchArray($result)) {
+				$this->gwsOptionsArray[] .= "$row[gwsOption]";
+			}
+
+			$this->gwsOldOptionsArray = $this->gwsOptionsArray;
+			$this->gwsTitel		= $games['gwsTitel'];
+			$this->start		= $games['start'];
+			$this->timeout		= $games['timeout'];
+			$this->email = $this->confirmEmail = $games['email'];
+			$this->regeln		= $games['regeln'];
+			$this->discl		= $games['datenschutz'];
+			$this->beschreibung	= $games['beschreibung'];
+			$this->money		= $games['money'];
+			
+			// Zeit in einzele Werte zerlegen
+			if (!count($_POST) && $this->start) {
+				$this->startDay = intval(DateUtil::formatDate('%e', $this->start, false, true));
+				$this->startMonth = intval(DateUtil::formatDate('%m', $this->start, false, true));
+				$this->startYear = DateUtil::formatDate('%Y', $this->start, false, true);
+				$this->startHour = DateUtil::formatDate('%H', $this->start, false, true);
+				$this->startMinutes = DateUtil::formatDate('%M', $this->start, false, true);
+			}
+			if (!count($_POST) && $this->timeout) {
+				$this->timeoutDay = intval(DateUtil::formatDate('%e', $this->timeout, false, true));
+				$this->timeoutMonth = intval(DateUtil::formatDate('%m', $this->timeout, false, true));
+				$this->timeoutYear = DateUtil::formatDate('%Y', $this->timeout, false, true);
+				$this->timeoutHour = DateUtil::formatDate('%H', $this->timeout, false, true);
+				$this->timeoutMinutes = DateUtil::formatDate('%M', $this->timeout, false, true);
+			}
+		}
+	}
+
+	/**
+	 * @see Page::assignVariables()
+	 */
+	public function assignVariables() {
+		parent::assignVariables();
+
+		WCF::getTPL()->assign(array(
+			'gwsID' => $this->gwsID,
+			'action' => 'edit',
+			'starttime' => $this->start,
+		));
+	}
+
+	/**
+	 * @see Form::validate()
+	 */
+	public function validate() {
+		parent::validate();
+		$this->valid = true;
+	}
+		
+	/**
+	 * Updates the data of an existing game.
+	 */
+	public function save() {
+		$this->gwsOptionsArray = array_unique(ArrayUtil::trim(explode("\n", $this->gwsOptionsText)));
+		// get game options
+		$sql = "SELECT		*
+				FROM 		wcf".WCF_N."_gws_options
+				WHERE 		gwsID = ".$this->gwsID."
+				ORDER BY 	showOrder";
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$this->gwsOldOptionsArray[] .= "$row[gwsOption]";
+		}
+		// search for renamed, deleted or added options
+		for($showOrder=0;!empty($this->gwsOptionsArray[$showOrder]) || !empty($this->gwsOldOptionsArray[$showOrder]);++$showOrder) {
+			// wenn keine alten Optionen mehr vorhanden, die neuen INSERTen
+			if(empty($this->gwsOldOptionsArray[$showOrder]) && $this->gwsOptionsArray[$showOrder]) {
+				$sql = "INSERT INTO	wcf".WCF_N."_gws_options
+						(gwsID, gwsOption, showOrder)
+						VALUES	(".$this->gwsID.",
+								'".escapeString($this->gwsOptionsArray[$showOrder])."',
+								".$showOrder.")";
+				WCF::getDB()->registerShutdownUpdate($sql);
+			// wenn noch alt Optionen vorhanden sind dann lschen
+			} elseif(empty($this->gwsOptionsArray[$showOrder]) && $this->gwsOldOptionsArray[$showOrder]) {
+				$sql = "DELETE FROM	wcf".WCF_N."_gws_options
+						WHERE 	gwsID = ".$this->gwsID." AND showOrder = ".$showOrder;
+				WCF::getDB()->registerShutdownUpdate($sql);
+			// wenn alte Optione nicht gleich der neuen dann UPDATE
+			} elseif ($this->gwsOptionsArray[$showOrder] != $this->gwsOldOptionsArray[$showOrder]){
+				$sql = "UPDATE	wcf".WCF_N."_gws_options
+						SET 	gwsOption = '".escapeString($this->gwsOptionsArray[$showOrder])."'
+						WHERE 	gwsID = ".$this->gwsID." AND showOrder = ".$showOrder;
+				WCF::getDB()->registerShutdownUpdate($sql);
+			}
+		}
+		if ($this->valid && $this->gwsID) {
+			$sql = "UPDATE 	wcf".WCF_N."_gws_game
+				SET	gwsTitel = '".escapeString($this->gwsTitel)."',
+				starttime 	= ".$this->start.",
+				timeout 	= ".$this->timeout.",
+				recipient 	= '".escapeString($this->email)."',
+				regeln 		= '".$this->regeln."',
+				discl 		= '".$this->discl."',
+				beschreib 	= '".$this->beschreibung."',
+				groupIDs 	= '".implode(",",$this->groupIDs)."',
+				money	 	= '".intval($this->money)."'
+				WHERE 	gwsID 	= " .$this->gwsID;
+			WCF::getDB()->registerShutdownUpdate($sql);
+			// forward to list page
+			header('Location: index.php?page=GewinnspielList&packageID='.PACKAGE_ID.SID_ARG_2ND_NOT_ENCODED);
+			exit;
+		}
+	}
+}
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielAddForm.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielAddForm.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/form/GewinnspielAddForm.class.php (revision 516)
@@ -0,0 +1,305 @@
+<?php
+// wcf imports
+require_once(WCF_DIR.'lib/acp/form/ACPForm.class.php');
+require_once(WCF_DIR.'lib/acp/form/UserOptionListForm.class.php');
+
+/**
+ * Gewinnspiel Admin Control Panel.
+ * Hinzufgen eines Gewinnspiels.
+ * 
+ * @author		Robert "Tatzelwurm" Hempel
+ * @copyright	2007/2008 INSIDE das Hrspiel
+ * @license 	GNU LGPL http://www.gnu.org/licenses/lgpl.txt
+ * @package		de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielAddForm extends UserOptionListForm {
+	public $templateName = 'gewinnspielAdd';
+
+	public $GUTHABEN_ENABLE_GLOBAL = false;
+	
+	// Gewinnspiel Variablen
+	public $gwsID;
+	public $gwsTitel = '';
+	public $gwsOption;
+	public $gwsOptions = array ();
+	public $gwsOptionsText;
+	public $gwsOptionsArray = array ();
+	// Kalendereintrge
+	public $startDay;
+	public $startMonth;
+	public $startYear;
+	public $startHour;
+	public $startMinutes;
+	public $timeoutDay;
+	public $timeoutMonth;
+	public $timeoutYear;
+	public $timeoutHour;
+	public $timeoutMinutes;
+	public $menOptions = array('regeln','datenschutz','beschreibung');
+	
+	public $email = '';
+	public $confirmEmail = '';
+	public $regeln = '';
+	public $discl = '';
+	public $beschreibung = '';
+	public $money = 0;
+	public $groupIDs = array(1);
+	public $action;
+	private $valid = false;
+	
+	/**
+	 * @see Page::show()
+	 */
+	public function show() {
+		// enable menu item
+		WCFACP::getMenu()->setActiveMenuItem('wcf.acp.menu.link.content.games');
+
+		// check permission
+		WCF::getUser()->checkPermission(array('admin.gewinnspiel.canChangeOptions'));
+		parent::show();
+	}
+	
+	/**
+	 * @see Page::readParameters()
+	 */
+	public function readParameters() {
+		parent::readParameters();
+	}
+
+	/**
+	 * @see Form::readFormParameters()
+	 */
+	public function readFormParameters() {
+		parent::readFormParameters();
+				
+		if (isset($_POST['gwsTitel']))		$this->gwsTitel			= escapeString($_REQUEST['gwsTitel']);
+		if (isset($_POST['gwsOptions'])) 	$this->gwsOptionsText	= StringUtil::unifyNewlines(StringUtil::trim($_POST['gwsOptions']));
+		if (isset($_POST['starttime']))		$this->start			= intval($_POST['starttime']);
+		if (isset($_POST['startDay']))		$this->startDay			= intval($_POST['startDay']);
+		if (isset($_POST['startMonth']))	$this->startMonth		= intval($_POST['startMonth']);
+		if (isset($_POST['startYear']))		$this->startYear		= intval($_POST['startYear']);
+		if (isset($_POST['startHour']))		$this->startHour		= intval($_POST['startHour']);
+		if (isset($_POST['startMinutes']))	$this->startMinutes		= intval($_POST['startMinutes']);
+		if (isset($_POST['timeoutDay']))	$this->timeoutDay		= intval($_POST['timeoutDay']);
+		if (isset($_POST['timeoutMonth']))	$this->timeoutMonth		= intval($_POST['timeoutMonth']);
+		if (isset($_POST['timeoutYear']))	$this->timeoutYear		= intval($_POST['timeoutYear']);
+		if (isset($_POST['timeoutHour']))	$this->timeoutHour		= intval($_POST['timeoutHour']);
+		if (isset($_POST['timeoutMinutes']))$this->timeoutMinutes	= intval($_POST['timeoutMinutes']);
+		if (isset($_POST['email']))			$this->email			= StringUtil::trim($_POST['email']);
+		if (isset($_POST['confirmEmail']))	$this->confirmEmail		= StringUtil::trim($_POST['confirmEmail']);
+		if (isset($_POST['regeln'])) 		$this->regeln			= escapeString(StringUtil::trim($_POST['regeln']));
+		if (isset($_POST['datenschutz']))	$this->discl			= escapeString(StringUtil::trim($_POST['datenschutz']));
+		if (isset($_POST['beschreibung']))	$this->beschreibung		= escapeString(StringUtil::trim($_POST['beschreibung']));
+		if (isset($_POST['money']))			$this->money			= intval($_POST['money']);
+		if (isset($_POST['groupIDs']))		$this->groupIDs			= ArrayUtil::toIntegerArray($_POST['groupIDs']);
+		if (isset($_POST['action']))		$this->action			= escapeString($_POST['action']);
+		
+		$this->gwsOptionsArray = array_unique(ArrayUtil::trim(explode("\n", $this->gwsOptionsText)));
+	}
+	
+	/**
+	 * @see Form::validate()
+	 */
+	public function validate() {
+		// Startdatum/zeit prfen und wandeln
+		if ($this->action != 'edit') {
+			$this->start =  $this->convertDateTime($this->startDay, $this->startMonth, $this->startYear, $this->startHour, $this->startMinutes, $this->action, 'start');
+		}
+		$this->timeout = $this->convertDateTime($this->timeoutDay, $this->timeoutMonth, $this->timeoutYear, $this->timeoutHour, $this->timeoutMinutes, $this->action, 'timeout');
+		// start VOR ende ?
+		if ($this->timeout <= $this->start) {	
+			throw new UserInputException('timeout', 'invalid');
+		}
+		
+		// Fragen angegeben ?
+		if (empty($this->gwsOptionsArray)) {	
+			throw new UserInputException('gwsOptions', 'empty');
+		}
+		// E-Mail prfen
+		// email angegeben ?
+		if (empty($this->email)) {	
+			throw new UserInputException('email', 'empty');
+		}
+		// validateEmail angegeben ?
+		if (empty($this->confirmEmail)) {	
+			throw new UserInputException('confirmEmail', 'empty');
+		}
+		// check for valid email (one @ etc.)
+		if (!UserUtil::isValidEmail($this->email)) {
+			throw new UserInputException('email', 'notValid');
+		}
+		// prfen ob ein Titel eingegeben wurde
+		if (empty($this->gwsTitel)) {
+			throw new UserInputException('gwsTitel', 'empty');
+		}
+		// check confirm input
+		if (StringUtil::toLowerCase($this->email) != StringUtil::toLowerCase($this->confirmEmail)) {
+			throw new UserInputException('confirmEmail', 'notEqual');
+		}
+		// user gruppen prfen und array anpassen
+		if (count($this->groupIDs) > 0) {
+			require_once(WCF_DIR.'lib/data/user/group/Group.class.php');
+			$sql = "SELECT	groupID
+				FROM	wcf".WCF_N."_group
+				WHERE	groupID IN (".implode(',', $this->groupIDs).")";
+			$result = WCF::getDB()->sendQuery($sql);
+			$this->groupIDs = array();
+			while ($row = WCF::getDB()->fetchArray($result)) {
+				if (Group::isAccessibleGroup($row['groupID'])) {
+					$this->groupIDs[] = $row['groupID'];
+				}
+			}
+		}
+		$this->valid = true;
+		
+	}
+
+	/**
+	 * Create the data of an new game.
+	 */
+	public function save() {
+		//Create new Game
+		if ($this->valid && !$this->gwsID && $this->action == 'add'){
+			// Gewinnspiel speichern			
+			$sql = "INSERT INTO 	wcf".WCF_N."_gws_game
+					(gwsTitel, starttime, timeout, recipient, regeln, discl, beschreib, groupIDs, money)
+					VALUES		('".$this->gwsTitel."',
+								".intval($this->start).",
+								".intval($this->timeout).",
+								'".escapeString($this->email)."',
+								'".$this->regeln."',
+								'".$this->discl."',
+								'".$this->beschreibung."',
+								'".implode(",",$this->groupIDs)."',
+								".intval($this->money).")";
+			WCF::getDB()->sendQuery($sql);
+
+			// Gewinnspiel ID holen
+			$this->gwsID = WCF::getDB()->getInsertID();
+
+			// Fragen speichern
+			$showOrder = 0;
+			$inserts = '';
+			foreach ($this->gwsOptionsArray as $option) {
+				if (!empty($inserts)) $inserts .= ',';
+				$inserts .= "(".$this->gwsID.", '".escapeString($option)."', ".$showOrder.")";
+				$showOrder++;
+			}
+			if (!empty($inserts)) {
+				$sql = "INSERT INTO	wcf".WCF_N."_gws_options
+						(gwsID, gwsOption, showOrder)
+						VALUES		".$inserts;
+				WCF::getDB()->registerShutdownUpdate($sql);
+			}
+		}
+		// forward to list page
+		header('Location: index.php?page=GewinnspielList&packageID='.PACKAGE_ID.SID_ARG_2ND_NOT_ENCODED);
+		exit;
+		
+	}
+	
+	/**
+	 * @see Page::readData()
+	 */
+	public function readData() {
+		parent::readData();
+	}
+
+	/**
+	 * @see Page::assignVariables()
+	 */
+	public function assignVariables() {
+		// create calendar data
+		$dayOptions = array(0 => '');
+		$monthList = $weekdayList = '';
+		$weekdays = $monthOptions = array();
+		
+		// days
+		for ($i = 1; $i <= 31; $i++) $dayOptions[$i] = $i;
+		// months
+		$monthFormat = (Language::$dateFormatLocalized ? '%B' : '%m');
+		for ($i = 1; $i <= 12; $i++) $monthOptions[$i] = DateUtil::formatDate($monthFormat, gmmktime(0, 0, 0, $i, 15, 2000), false, true);
+		$monthList = implode(',', $monthOptions);
+		$monthOptions[0] = '';
+		ksort($monthOptions);
+		
+		// weekdays
+		for ($i = 1; $i <= 7; $i++) {
+			$weekdayNumber = intval(DateUtil::formatDate('%w', gmmktime(0, 0, 0, 1, $i, 2000), false, true));
+			$weekdays[$weekdayNumber] = DateUtil::formatDate('%a', gmmktime(0, 0, 0, 1, $i, 2000), false, true);
+		}
+		ksort($weekdays);
+		$weekdayList = implode(',', $weekdays);
+		
+		parent::assignVariables();
+
+		if (!defined ('GUTHABEN_ENABLE_GLOBAL')){
+			$this->GUTHABEN_ENABLE_GLOBAL = false;
+		}else{
+			$this->GUTHABEN_ENABLE_GLOBAL = GUTHABEN_ENABLE_GLOBAL;
+		}
+		
+		WCF::getTPL()->assign(array(
+			'gwsID'			=> $this->gwsID,
+			'gwsTitel'  	=> $this->gwsTitel,
+			'gwsOptions' 	=> implode("\n", $this->gwsOptionsArray),
+			'startDay'		=> $this->startDay,
+			'startMonth'	=> $this->startMonth,
+			'startYear'		=> $this->startYear,
+			'startHour'		=> $this->startHour,
+			'startMinutes'	=> $this->startMinutes,
+			'timeoutDay'	=> $this->timeoutDay,
+			'timeoutMonth'	=> $this->timeoutMonth,
+			'timeoutYear'	=> $this->timeoutYear,
+			'timeoutHour'	=> $this->timeoutHour,
+			'timeoutMinutes'=> $this->timeoutMinutes,
+			'email'    		=> $this->email,
+			'confirmEmail'	=> $this->confirmEmail,
+			'regeln'  		=> $this->regeln,
+			'datenschutz'	=> $this->discl,
+			'beschreibung' 	=> $this->beschreibung,
+			'money' 		=> $this->money,
+			'groupIDs'		=> $this->groupIDs,
+			'availableGroups'	=> $this->getGroups(),
+			'monthOptions'	=> $monthOptions,
+			'monthList'		=> $monthList,
+			'dayOptions'	=> $dayOptions,
+			'weekdayList'	=> $weekdayList,
+			'startOfWeek'	=> 0,
+			'menOptions'	=> $this->menOptions,
+			'GUTHABEN_ENABLE_GLOBAL' => $this->GUTHABEN_ENABLE_GLOBAL,
+			'action' 		=> 'add'
+		));
+	}
+
+	/**
+	 * Returns a list of all available user groups.
+	 * 
+	 * @return	array
+	 */
+	private function getGroups() {
+		require_once(WCF_DIR.'lib/data/user/group/Group.class.php');
+		return Group::getAccessibleGroups(array(), array());
+	}
+
+	private function convertDateTime($day, $month, $year, $hour, $minutes, $action, $startend) {
+		// Datum/zeit prfen und wandeln
+		if ($day || $month || $year || $hour || $minutes) {
+			$time = @gmmktime($hour, $minutes, 0, $month, $day, $year);
+			// since php5.1.0 mktime returns false on failure
+			if ($action == 'add' || ($action == 'edit' && $startend == 'start')){
+				if ($time === false || $time === -1 || $time <= TIME_NOW) {
+					throw new UserInputException($startend, 'invalid');
+				}
+			}
+			if ($action == 'edit' && $startend == 'timeout'){
+				if ($time === false || $time === -1 || $time <= TIME_NOW) {
+					throw new UserInputException($startend, 'invalid');
+				}
+			}
+			return DateUtil::getUTC($time);
+		}
+	}
+}
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielListPage.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielListPage.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielListPage.class.php (revision 516)
@@ -0,0 +1,102 @@
+<?php
+require_once(WCF_DIR.'lib/page/SortablePage.class.php');
+require_once(WCF_DIR.'lib/system/event/EventHandler.class.php');
+
+/**
+ * Gewinnspiel Admin Control Panel.
+ * Listet alle Gewinnspiele auf.
+ * Gewinnspiele knnen hinzugefgt, bearbeitet und gelscht werden.
+ * Liste der User die Teilgenommen haben kann aufgerufen werden
+ * 
+ * @author		Robert "Tatzelwurm" Hempel
+ * @copyright	2007/2008 INSIDE das Hrspiel
+ * @license 	GNU LGPL http://www.gnu.org/licenses/lgpl.txt
+ * @package		de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielListPage extends SortablePage {
+
+	public $templateName = 'gewinnspielList';
+	public $itemsPerPage = 10;
+	public $defaultSortField = 'gwsID';
+	public $gwsID;
+	public $list = array();
+	public $gewinnspiele = array();
+	public $gwsIDs;
+	
+	public function readParameters() {
+		parent::readParameters();
+		if (isset($_REQUEST['gwsID'])) $this->gwsID = intval($_REQUEST['gwsID']);
+		if (isset($_REQUEST['action'])) $this->action = $_REQUEST['action'];
+	}
+	
+	public function validateSortField() {
+		parent::validateSortField();
+
+		switch ($this->sortField) {
+			case 'gwsID':
+			case 'gwsTitel':
+			case 'starttime':
+			case 'timeout': break;
+			default: $this->sortField = $this->defaultSortField;
+		}
+	}
+	
+	public function readData() {
+		parent::readData();
+		$this->readGewinnspiele();
+	}
+	
+	public function assignVariables() {
+		parent::assignVariables();
+
+		WCF::getTPL()->assign(array(
+			'gewinnspiele' => $this->gewinnspiele,
+			'gamescount' => $this->countItems()
+		));
+	}
+	
+	public function show() {
+		// enable menu item
+		WCFACP::getMenu()->setActiveMenuItem('wcf.acp.menu.link.content.games');
+
+		// check permission
+		WCF::getUser()->checkPermission(array('admin.gewinnspiel.canChangeOptions'));
+		
+		parent::show();
+	}
+	
+	public function countItems() {
+		$sql = "SELECT	COUNT(gwsID) AS gwsIDs
+				FROM	wcf".WCF_N."_gws_game";
+		$row = WCF::getDB()->getFirstRow($sql);
+
+		return $row['gwsIDs'];
+	}
+	
+	public function countUsers($ID) {
+		$sql = "SELECT	COUNT(userID) AS userIDs
+				FROM	wcf".WCF_N."_gws_spiel
+				WHERE	gwsID = $ID";
+		$row = WCF::getDB()->getFirstRow($sql);
+		if (empty($row['userIDs'])) $row['userIDs'] = '';
+		return $row['userIDs'];
+	}
+	
+	protected function readGewinnspiele() {
+		$sql = "SELECT	`gwsID`, `gwsTitel`, `starttime`, `timeout`
+			FROM		wcf".WCF_N."_gws_game gewinnspiele
+			ORDER BY	gewinnspiele.".$this->sortField." ".$this->sortOrder."
+			LIMIT		".$this->itemsPerPage."
+			OFFSET		".(($this->pageNo - 1) * $this->itemsPerPage);
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$gewinnspiele =array(
+							'usercount'		=> '',
+							);
+			$row['usercount']	= $this->countUsers($row['gwsID']);
+			$this->gewinnspiele[] = $row;
+		}
+	}
+}
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielUserPage.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielUserPage.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/page/GewinnspielUserPage.class.php (revision 516)
@@ -0,0 +1,91 @@
+<?php
+require_once(WCF_DIR.'lib/page/AbstractPage.class.php');
+require_once(WCF_DIR.'lib/page/SortablePage.class.php');
+
+/**
+ * Gewinnspiel Admin Control Panel.
+ * Liste der User die Teilgenommen haben
+ * ToDo: Automatische Gewinnvergabe
+ * 
+ * @author		Robert "Tatzelwurm" Hempel
+ * @copyright	2007/2008 INSIDE das Hrspiel
+ * @license 	GNU LGPL http://www.gnu.org/licenses/lgpl.txt
+ * @package		de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielUserPage extends SortablePage {
+
+	public $templateName = 'gewinnspielUser';
+	public $itemsPerPage = 10;
+	public $defaultSortField = 'realName';
+	public $gwsID;
+	public $gwsTitel;
+	
+	public function readParameters() {
+		parent::readParameters();
+		if (isset($_REQUEST['gwsID'])) $this->gwsID = intval($_REQUEST['gwsID']);
+	}
+	
+	public function validateSortField() {
+		parent::validateSortField();
+
+		switch ($this->sortField) {
+			case 'userID':
+			case 'ipaddress':
+			case 'email':
+			case 'realName':break;
+			default: $this->sortField = $this->defaultSortField;
+		}
+	}
+	
+	public function readData() {
+		parent::readData();
+		//Liste der User
+		$sql = "SELECT		`userID`, `ipaddress`, `email`, `realName`
+				FROM		wcf".WCF_N."_gws_spiel spieler
+				WHERE		gwsID = ".$this->gwsID."
+				ORDER BY	spieler.".$this->sortField." ".$this->sortOrder."
+				LIMIT		".$this->itemsPerPage."
+				OFFSET		".(($this->pageNo - 1) * $this->itemsPerPage);
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$this->spieler[] = $row;
+		}
+				//Gewinnspiel Name holen
+		$sql = "SELECT		`gwsTitel`
+				FROM		wcf".WCF_N."_gws_game
+				WHERE		gwsID = ".$this->gwsID;
+		$result = WCF::getDB()->sendQuery($sql);
+		$row = WCF::getDB()->getFirstRow($sql);
+		$this->gwsTitel = $row['gwsTitel'];
+	}
+	
+	public function countItems() {
+		$sql = "SELECT	COUNT(gwsID) AS gwsIDs
+				FROM	wcf".WCF_N."_gws_spiel";
+		$row = WCF::getDB()->getFirstRow($sql);
+
+		return $row['gwsIDs'];
+	}
+	
+	public function assignVariables() {
+		parent::assignVariables();
+
+		WCF::getTPL()->assign(array(
+			'spieler'	=> $this->spieler,
+			'gwsID'		=> $this->gwsID,
+			'gwsTitel'	=> $this->gwsTitel,
+		));
+	}
+	
+	public function show() {
+		// enable menu item
+		WCFACP::getMenu()->setActiveMenuItem('wcf.acp.menu.link.content.games');
+
+		// check permission
+		WCF::getUser()->checkPermission(array('admin.gewinnspiel.canChangeOptions'));
+		
+		parent::show();
+	}
+}
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/action/GewinnspielDeleteAction.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/action/GewinnspielDeleteAction.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/acp/action/GewinnspielDeleteAction.class.php (revision 516)
@@ -0,0 +1,46 @@
+<?php
+require_once(WCF_DIR.'lib/action/AbstractAction.class.php');
+
+/**
+ * Gewinnspiel Admin Control Panel.
+ * Lschen eines Gewinnspiels.
+ * 
+ * @author	Robert "Tatzelwurm" Hempel
+ * @copyright	2007 INSIDE das Hrspiel
+ * @package	de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielDeleteAction extends AbstractAction {
+	public $gwsID = 0;
+	
+	/**
+	 * @see Action::readParameters()
+	 */
+	public function readParameters() {
+		parent::readParameters();
+		
+		if (isset($_REQUEST['gwsID'])) $this->gwsID = intval($_REQUEST['gwsID']);
+	}
+	
+	/**
+	 * @see Action::execute()
+	 */
+	public function execute() {
+		parent::execute();
+		
+		// delete game
+		$sql = "DELETE FROM	wcf".WCF_N."_gws_game
+			WHERE		gwsID = ".$this->gwsID;
+		WCF::getDB()->sendQuery($sql);
+		$sql = "DELETE FROM	wcf".WCF_N."_gws_options
+			WHERE		gwsID = ".$this->gwsID;
+		WCF::getDB()->sendQuery($sql);
+		$sql = "DELETE FROM	wcf".WCF_N."_gws_spiel
+			WHERE		gwsID = ".$this->gwsID;
+		WCF::getDB()->sendQuery($sql);
+		// forward to list page
+		header('Location: index.php?page=GewinnspielList&deletedgwsID='.$this->gwsID.'&packageID='.PACKAGE_ID.SID_ARG_2ND_NOT_ENCODED);
+		exit;
+	}
+}
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/form/GewinnspielForm.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/form/GewinnspielForm.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/form/GewinnspielForm.class.php (revision 516)
@@ -0,0 +1,409 @@
+<?php
+// wcf imports
+require_once(WCF_DIR.'lib/acp/form/UserAddForm.class.php');
+require_once(WCF_DIR.'lib/data/user/UserEditor.class.php');
+require_once(WCF_DIR.'lib/page/AbstractPage.class.php');
+require_once(WCF_DIR.'lib/acp/form/UserOptionListForm.class.php');
+require_once(WCF_DIR.'lib/form/AbstractForm.class.php');
+require_once(WCF_DIR.'lib/form/MessageForm.class.php');
+
+/*
+ * Erstellt das Formular zum Gewinnspiel.
+ * Geprft wird Berechtigung (Gruppe), ob schon mal mitgespielt wurde
+ * und gltige gwsID.
+ * Nur wenn alle Felder ausgefllt wurden kann das Formular abgeschickt werden.
+ * Die Daten werden per E-Mail an den Teilnehmer und den Ersteller geschickt.
+ * $LastChangedDate: 2007-10-10 20:22:19 +0200 (Mi, 10 Okt 2007) $
+ * @author	Robert "Tatzelwurm" Hempel
+ * @copyright	2007 INSIDE das Hrspiel
+ * @package	de.inside.wcf.gewinnspiel
+ */
+
+class GewinnspielForm extends AbstractForm {
+
+	public $templateName = 'gewinnspiel';
+	// Gewinnspiel und Teilnehmer Daten
+	public $gwsID;						// Game ID
+	public $gwsTitel;					// Titel
+	public $gwsStart;					// Startzeit
+	public $gwsEnde;					// Endzeit
+	public $gwsOptionsArray = array ();	// Die Fragen
+	public $regeln;						// Gewinnspiel Regeln
+	public $datenschutz;				// Datenschutzerklrung
+	public $beschreibung;				// Beschreibung des Gewinnspiels
+	public $gwsGroupIDs = array();		// Berechtigte Gruppen
+	public $money;						// Kosten fr die Teilnahme
+	public $userreal;					// aktueller Teilnehmer Name
+	public $username;					// aktueller Teilnehmer Nick
+	public $useremail;					// E-Mail des Teilnehmers
+	public $useremailconfirm;			// E-Mail Kontrolle
+	public $useraddr;					// Anschrift des Teilnehmers
+	public $ipAddress = 0;					// IP des Teilnehmers
+	public $usercount = 5;				// Anzahl der User die bereits mitgemacht haben
+	public $answer = array();			// Die Antworten
+	// Voreinstellungen fr die Textausgabe
+	private $enableSmilies = true;
+	private $enableBBCodes = true;
+	protected $akzept;					// auf "AKZEPTIERT" testen
+	protected $valid = false;			// Variable zu Gltikeitsberprfung
+	protected $empfnger;				// Empfnger zur Auswertung
+	protected $frageantwort = '';		// Die Fragen und Antworten fr die Mail
+	
+	/**
+	 * @see Page::readParameters()
+	 */
+	public function readParameters() {
+		parent::readParameters();
+
+		// get game id
+		if (isset($_REQUEST['gwsID'])) $this->gwsID = intval($_REQUEST['gwsID']);
+		// Sicherheitsabfrage ob ID bergeben wurde
+		if (!$this->gwsID){
+			require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+			throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.wrongid'));
+			exit;
+		}
+		// Teilnahmeberechtigung prfen
+		$this->checkPermissions();
+
+	}
+
+	/**
+	 * @see Form::readFormParameters()
+	 */
+	public function readFormParameters() {
+		parent::readFormParameters();
+
+		if (isset($_POST['gwsID']))				$this->gwsID			= intval($_REQUEST['gwsID']);
+		if (isset($_POST['gwsTitel']))			$this->gwsTitel			= escapeString($_REQUEST['gwsTitel']);
+		if (isset($_POST['useremail']))			$this->useremail		= StringUtil::trim($_POST['useremail']);
+		if (isset($_POST['useremailconfirm']))	$this->useremailconfirm	= StringUtil::trim($_POST['useremailconfirm']);
+		if (isset($_POST['username'])) 			$this->username			= escapeString($_POST['username']);
+		if (isset($_POST['userreal'])) 			$this->userreal			= escapeString($_POST['userreal']);
+		if (isset($_POST['useraddr'])) 			$this->useraddr			= escapeString($_POST['useraddr']);
+		if (isset($_POST['akzept']))			$this->akzept			= escapeString($_POST['akzept']);
+		if (isset($_POST['answer']))			$this->answer			= ArrayUtil::trim($_POST['answer'], $removeEmptyElements = false);
+		// Gast oder User ? Bei Usern entfllt die E-Mail berprfung
+		if ($this->username) $this->useremailconfirm = $this->useremail;
+	}
+	
+	/**
+	 * @see Form::validate()
+	 */
+	public function validate() {
+
+		// E-Mail prfen
+		// email angegeben ?
+		if (empty($this->useremail)) {	
+			throw new UserInputException('useremail', 'empty');
+		}
+		// validateEmail angegeben ?
+		if (empty($this->useremailconfirm)) {	
+			throw new UserInputException('useremailconfirm', 'empty');
+		}
+		// check for valid email (one @ etc.)
+		if (!UserRegistrationUtil::isValidEmail($this->useremail)) {
+			throw new UserInputException('useremail', 'notValid');
+		}
+		// check confirm input
+		if (StringUtil::toLowerCase($this->useremail) != StringUtil::toLowerCase($this->useremailconfirm)) {
+			throw new UserInputException('useremailconfirm', 'notEqual');
+		}
+		// Realname angegeben ?
+		if (empty($this->userreal)) {	
+			throw new UserInputException('userreal', 'empty');
+		}
+		// Adresse angegeben ?
+		if (empty($this->useraddr)) {	
+			throw new UserInputException('useraddr', 'empty');
+		}
+		// Sind alle Fragen beantwortet worden?
+		foreach ($this->answer as $key => $nummer){
+			if (empty($nummer)){
+				$fehler = "answer[".$key."]";
+				throw new UserInputException($fehler, 'empty');
+			}
+		}
+		// Regeln Akzeptiert ?
+		if (empty($this->akzept) || $this->akzept != 'AKZEPTIERT') {	
+			throw new UserInputException('akzept', 'empty');
+		}
+		//		parent::validate();
+		// Kontrolle ob Gast schon teilgenommen hat
+		$id = WCF::getUser()->userID;
+		if (!$id){
+			$sql = "SELECT	`ipaddress`, `email`, `realName`
+					FROM	wcf".WCF_N."_gws_spiel
+					WHERE	`gwsID` = $this->gwsID AND `userID` = 0";
+			$result = WCF::getDB()->sendQuery($sql);
+			while ($row = WCF::getDB()->fetchArray($result)) {
+				$ipArray[] .= "$row[ipaddress]";
+				$mailArray[] .= "$row[email]";
+				$rnArray[] .= "$row[realName]";
+			}
+			if (!empty($ipArray)){
+				foreach ($ipArray as $key =>$option){
+					if (StringUtil::toLowerCase($mailArray[$key]) == StringUtil::toLowerCase($this->useremail) || StringUtil::toLowerCase($rnArray[$key]) == StringUtil::toLowerCase($this->userreal)){
+						require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+						throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.alreadyplayed'));
+						exit;
+					}
+				}
+			}
+		}
+		$this->valid = true;
+	}
+	
+	/**
+	 * @see Form::save()
+	 */
+	public function save() {
+		parent::save();
+		// Teilnahme Erfolgreich dann Gewinnspiel speichern
+		if ($this->valid){
+			// Userdaten speichern
+			$sql = "INSERT INTO	wcf".WCF_N."_gws_spiel
+					(gwsID, userID, ipaddress, email, realName)
+					VALUES	(".intval($this->gwsID).",
+							".intval(WCF::getUser()->userID).",
+							'".escapeString(WCF::getSession()->ipAddress)."',
+							'".$this->useremail."',
+							'".$this->userreal."')";
+			WCF::getDB()->sendQuery($sql);
+
+			// E-Mail des Empfngers holen.
+			$sql = "SELECT	`recipient`
+					FROM	wcf".WCF_N."_gws_game
+					WHERE	gwsID = $this->gwsID";
+			$result = WCF::getDB()->getFirstRow($sql);
+			$this->empfnger = $result['recipient'];
+			// E-Mail vorbeiten und senden
+			if (!$this->username) $this->username = 'Gast';
+			// Frage/Antwort Variable vorbereiten
+			$sql = "SELECT		*
+					FROM 		wcf".WCF_N."_gws_options
+					WHERE 		gwsID = ".$this->gwsID."
+					ORDER BY 	showOrder";
+			$result = WCF::getDB()->sendQuery($sql);
+			while ($row = WCF::getDB()->fetchArray($result)) {
+				$this->gwsOptionsArray[] .= "$row[gwsOption]";
+			}
+			$frage = WCF::getLanguage()->get('wcf.gewinnspiel.frage');
+			$antwort = WCF::getLanguage()->get('wcf.gewinnspiel.antwort');
+			foreach ($this->gwsOptionsArray as $key =>$option){
+				$this->frageantwort .= $frage.": "."$option"."\n".$antwort.": ".$this->answer[$key]."\n"."\n";
+			}
+			$languages = array(0 => WCF::getLanguage(), WCF::getLanguage()->getLanguageID() => WCF::getLanguage());
+			require_once(WCF_DIR.'lib/data/mail/Mail.class.php');
+			require_once(WCF_DIR.'lib/data/user/User.class.php');
+			// get language
+			// enable language
+			$languages[WCF::getLanguage()->getLanguageID()]->setLocale();
+			
+			$subjectData = array('PAGE_TITLE' => PAGE_TITLE);
+			$messageData = array(
+					'PAGE_TITLE' => PAGE_TITLE,
+					'$username' => $this->username,
+					'$userreal' => $this->userreal,
+					'$useremail' => $this->useremail,
+					'$useraddr' => $this->useraddr,
+					'$recipient' => $this->empfnger,
+					'$FrageAntwort' => $this->frageantwort,
+					'$datetime' => $this->getTimeDate()
+			);
+			// Mail an den User
+			$mail = new Mail(	array($this->userreal => $this->useremail),
+								$languages[WCF::getLanguage()->getLanguageID()]->get('wcf.gewinnspiel.mail.subject', $subjectData),
+								$languages[WCF::getLanguage()->getLanguageID()]->get('wcf.gewinnspiel.mail.message', $messageData));
+			$mail->send();
+			// Mail an den Veranstalter
+			$mail = new Mail(	$this->empfnger,
+								$languages[WCF::getLanguage()->getLanguageID()]->get('wcf.gewinnspiel.mail.subject.recipient', $subjectData),
+								$languages[WCF::getLanguage()->getLanguageID()]->get('wcf.gewinnspiel.mail.message.recipient', $messageData));
+			$mail->send();
+			
+			// enable user language
+			WCF::getLanguage()->setLocale();
+			
+			// forward to index page
+			WCF::getTPL()->assign(array(
+				'url' => 'index.php?page=Gewinnspiel'.SID_ARG_1ST,
+				'message' => WCF::getLanguage()->get(WCF::getLanguage()->get('wcf.gewinnspiel.ok_redirect'), array('$userreal' => $this->username, '$uemail' => $this->useremail))
+			));
+			WCF::getTPL()->display('redirect');
+			exit;
+		}
+	}
+	
+	/**
+	 * @see Page::readData()
+	 */
+	public function readData() {
+		parent::readData();
+		if ((WCF::getUser()->userID) > 0){
+			$this->username		= WCF::getUser()->username;
+			$this->useremail = $this->useremailconfirm	= WCF::getUser()->email;
+		}else{
+			if (!count($_POST)) {
+				$this->username	= WCF::getLanguage()->get('wcf.gewinnspiel.username.gast');
+				$this->useremail = $this->useremailconfirm = '';
+			}
+		}
+		// Gewinnspiel Daten auslesen
+		$this->readGewinnspiel();
+	}
+	
+	/**
+	 * @see Page::assignVariables();
+	 */
+	public function assignVariables() {
+		parent::assignVariables();
+
+		WBBCore::getTPL()->assign(array(
+				'gwsID'		=> $this->gwsID,
+				'gwsTitel'	=> $this->gwsTitel,
+				'regeln'	=> $this->regeln,
+				'beschreibung' => $this->beschreibung,
+				'datenschutz' => $this->datenschutz,
+				'username'	=> $this->username,
+				'useremail'	=> $this->useremail,
+				'useremailconfirm' => $this->useremailconfirm,
+				'userreal'	=> $this->userreal,
+				'useraddr'	=> $this->useraddr,
+				'usercount'	=> $this->usercount,
+				'gwsOptionsArray' => $this->gwsOptionsArray,
+				'answer' 	=> $this->answer,
+				'akzept'	=> $this->akzept,
+		));
+	}
+
+	/**
+	 * @see Page::show()
+	 */
+	public function show() {
+		// get the default langauge id
+		$this->languageID = WCF::getLanguage()->getLanguageID();
+		// show form
+		parent::show();
+	}
+	
+	protected function checkPermissions() {
+		// Kontrolle ob User schon teilgenommen hat (nicht bei Gsten)
+		$id = WCF::getUser()->userID;
+		if ($id){
+			$sql = "SELECT	COUNT(`userID`) AS users
+					FROM	wcf".WCF_N."_gws_spiel
+					WHERE	`gwsID` = $this->gwsID AND `userID`=$id";
+			$row = WCF::getDB()->getFirstRow($sql);
+			if ($row['users'])	{		
+				require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+				throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.alreadyplayed'));
+				exit;
+			}
+		}
+		// Kontrolle ob Teilnehmer in einer berechtigten Gruppe ist
+		$sql = "SELECT	`groupIDs`
+				FROM	wcf".WCF_N."_gws_game
+				WHERE	gwsID = $this->gwsID";
+		$result = WCF::getDB()->sendQuery($sql);
+		$row = WCF::getDB()->fetchArray($result);
+		// Keine gltige GameID angegeben ?
+		if(empty($row)){
+			require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+			throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.wrongid'));
+			exit;
+		}
+		$this->gwsGroupIDs = explode(',',$row['groupIDs']);
+		require_once(WCF_DIR.'lib/data/user/group/Group.class.php');
+		$canplay = false;
+		foreach ($this->gwsGroupIDs as $groupID){
+			if (Group::isMember($groupID)) $canplay = true;
+		}
+		// Fehlermeldung wenn Teilnemer keiner Berechtigten Gruppe angehrt
+		if (!$canplay) {
+			require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+			throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.nogroupe'));
+		}
+	}
+	
+	protected function readGewinnspiel() {
+		// get game
+		$sql = "SELECT		*
+				FROM		wcf".WCF_N."_gws_game gewinnspiel
+				WHERE		gwsID = ".$this->gwsID;
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$this->gwsID		= $row['gwsID'];
+			$this->gwsTitel		= $row['gwsTitel'];
+			$this->gwsStart		= $row['starttime'];
+			$this->gwsEnde		= $row['timeout'];
+			$this->recipient	= $row['recipient'];
+			$this->regeln		= $this->getFormattedMessage($row['regeln'], false);
+			$this->datenschutz	= $this->getFormattedMessage($row['discl'], false);
+			$this->beschreibung	= $this->getFormattedMessage($row['beschreib'], false);
+			$this->groupIDs		= $row['groupIDs'];
+			$this->money		= $row['money'];
+		}
+		if (defined('GUTHABEN_ENABLE_GLOBAL')){
+			if(WCF::getUser()->userID && $this->money >= 1) {
+				require_once(WCF_DIR.'lib/data/user/UserGuthaben.class.php');
+				$um = new UserGuthaben(WCF::getUser()->userID);
+				if (!$um->subGuthaben($this->money,'wcf.gewinnspiel.kosten')) {
+					require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+					throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.errormoney'));
+				}
+			}
+		}
+		// Kontrolle ob das Gewinnspiel schon gestartet ist
+		if ($this->gwsStart > TIME_NOW) {
+			require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+			throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.statustocome'));
+			exit;
+		}
+		// Kontrolle ob das Gewinnspiel schon beendet ist
+		if ($this->gwsEnde < TIME_NOW) {
+			require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+			throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.statusended'));
+			exit;
+		}
+		// get game options
+		$sql = "SELECT		*
+				FROM 		wcf".WCF_N."_gws_options
+				WHERE 		gwsID = ".$this->gwsID."
+				ORDER BY 	showOrder";
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$titel = $this->getFormattedMessage($row['gwsOption'], $enableHtml = true);
+			$this->gwsOptionsArray[] .= "$titel";
+		}
+		if (empty($this->answer)){
+			foreach ($this->gwsOptionsArray as $key => $nummer){
+				$this->answer[$key] = '';
+			}
+		}
+		// Anzahl der User die schon Teilgenommen haben
+		$sql = "SELECT 		COUNT(userID) AS userID
+				FROM 		wcf".WCF_N."_gws_spiel
+				WHERE		gwsID = ".$this->gwsID;
+		$row = WCF::getDB()->getFirstRow($sql);
+		$this->usercount = $row['userID'];
+	}
+	
+	/**
+	 * @see ViewablePost::getFormattedMessage()
+	 */
+	protected function getFormattedMessage($text, $enableHtml) {
+		// parse message
+		require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
+		$parser = MessageParser::getInstance();
+		$parser->setOutputType('text/html');
+		return $parser->parse($text, $this->enableSmilies, $enableHtml, $this->enableBBCodes, false);
+	}
+
+	protected function getTimeDate() {
+		$datumzeit = DateUtil::formatTime(null,null,null,true);
+		return $datumzeit;
+	}
+}
+
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/files/lib/page/GewinnspielPage.class.php
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/files/lib/page/GewinnspielPage.class.php (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/files/lib/page/GewinnspielPage.class.php (revision 516)
@@ -0,0 +1,161 @@
+<?
+// wcf imports
+require_once(WCF_DIR.'lib/page/AbstractPage.class.php');
+require_once(WCF_DIR.'lib/page/MultipleLinkPage.class.php');
+//require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
+
+/**
+ * Gewinnspiel Liste fÃŒr das WCF, liest die Gewinnspiele aus der DB,
+ * kontrolliert die Berechtigungen, ob bereits mitgespielt wurde und das
+ * Gewinnspiel (noch) aktuell ist. Abgelaufene Spiele und Gewinnspiele zu
+ * denen man keine Berechtigung hat werden entsprechend gekennzeichnet.
+ * @author		Robert "Tatzelwurm" Hempel
+ * @copyright	2007/2008 INSIDE das Hrspiel
+ * @license 	GNU LGPL http://www.gnu.org/licenses/lgpl.txt
+ * @package		de.inside.wcf.Gewinnspiel
+ */
+
+class GewinnspielPage extends MultipleLinkPage {
+
+	public $templateName = 'gewinnspielList';
+	public $itemsPerPage = 10;
+	public $gwsID;
+	public $gwsGroupIDs = array();
+	public $money;
+	public $gewinnspiele = array();
+	public $userID;
+	public $username;
+	public $email;
+	public $highlight = '';
+
+	private $enableSmilies = true;
+	private $enableBBCodes = true;
+	
+	/**
+	 * @see Page::readParameters()
+	 */
+	public function readParameters() {
+		parent::readParameters();
+		// get UserID + Name + E-Mail
+		$this->userID 	= WCF::getUser()->userID;
+		$this->username	= WCF::getUser()->username;
+		$this->email	= WCF::getUser()->email;
+		// get game id and action
+		if (isset($_REQUEST['gwsID'])) $this->gwsID = intval($_REQUEST['gwsID']);
+		if (isset($_REQUEST['action'])) $this->action = $_REQUEST['action'];
+
+		// Hier Code fr Action !!!!
+		if ($this->action == 'go' && $this->gwsID) {
+			$sql = "SELECT	`groupIDs`
+					FROM	wcf".WCF_N."_gws_game
+					WHERE	gwsID = $this->gwsID";
+			$result = WCF::getDB()->sendQuery($sql);
+			$row = WCF::getDB()->fetchArray($result);
+			$this->gwsGroupIDs = explode(',',$row['groupIDs']);
+			require_once(WCF_DIR.'lib/data/user/group/Group.class.php');
+			$canplay = false;
+			foreach ($this->gwsGroupIDs as $groupID){
+				if (Group::isMember($groupID)) $canplay = true;
+			}
+			if (!$canplay) {
+				require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php');
+				throw new NamedUserException(WCF::getLanguage()->get('wcf.gewinnspiel.nogroupe'));
+			}
+			
+		}
+	}
+
+	public function readData() {
+		parent::readData();
+		$this->readGewinnspiele();
+	}
+	
+	/**
+	 * @see Page::assignVariables();
+	 */
+	public function assignVariables() {
+		parent::assignVariables();
+		$this->userID = WCF::getUser()->userID;
+		if (GEWINNSPIEL_OFFLINE) {
+			$this->templateName = 'gewinnspiel_offline';
+			WCF::getTPL()->assign('offlinemessage', GEWINNSPIEL_OFFLINE_MESSAGE);
+		} else {
+			WCF::getTPL()->assign('selfLink', 'GewinnspielPage.php?'.SID_ARG_2ND);
+			WCF::getTPL()->assign(array(
+				'gewinnspiele' => $this->gewinnspiele,
+				'gamescount' => $this->countItems(),
+				));
+		}
+	}
+
+	/**
+	 * @see Page::show()
+	 */
+	public function show() {
+		require_once(WCF_DIR.'lib/page/util/menu/HeaderMenu.class.php');
+		HeaderMenu::setActiveMenuItem('wcf.header.menu.gamemenue');
+		
+		// check permission
+		WCF::getUser()->checkPermission('user.gewinnspiel.canViewGewinnspiel');
+
+		parent::show();
+	}
+
+	public function countItems() {
+		parent::countItems();
+
+		$sql = "SELECT	COUNT(gwsID) 
+				AS gwsID 
+				FROM wcf".WCF_N."_gws_game";
+		$row = WCF::getDB()->getFirstRow($sql);
+
+		return $row['gwsID'];
+	}
+	
+	protected function readGewinnspiele() {
+		$sql = "SELECT		`gwsID`, `gwsTitel`, `starttime`, `timeout`, `groupIDs`, `money`
+				FROM		wcf".WCF_N."_gws_game gewinnspiele
+				ORDER BY	timeout ASC
+				LIMIT		".$this->itemsPerPage."
+				OFFSET		".(($this->pageNo - 1) * $this->itemsPerPage);
+		$result = WCF::getDB()->sendQuery($sql);
+		while ($row = WCF::getDB()->fetchArray($result)) {
+			$gewinnspiele =array(
+							'gwsID'		=> $row['gwsID'],
+							'groupIDs'	=> $row['groupIDs'],
+							'permission' => '',
+							'done' 		=> '',
+							);
+			if (!defined('GUTHABEN_ENABLE_GLOBAL')){
+				$row['money'] = 0;
+			}
+			// Kontrolle ob Gruppe berechtigt ist
+			$row['permission'] = 'nein';
+			$IDs = explode(',',$row['groupIDs']);
+			require_once(WCF_DIR.'lib/data/user/group/Group.class.php');
+			foreach ($IDs as $gruppe) {
+				if (Group::isMember($gruppe)) $row['permission'] = 'ok';
+			}
+			// Kontrolle ob User schon teilgenommen hat (nicht bei Gsten)
+			$id = WCF::getUser()->userID;
+			$row['done'] = 'notdone';
+			if ($id){
+				$sql1 = "SELECT	COUNT(`userID`) AS users
+						FROM	wcf".WCF_N."_gws_spiel
+						WHERE	`gwsID` = $row[gwsID] AND `userID`=$id";
+				$row1 = WCF::getDB()->getFirstRow($sql1);
+				if ($row1['users'])	{		
+					$row['done'] = 'done';
+				}
+			}
+			$this->gewinnspiele[] = $row;
+		}
+	}
+
+	protected function getTimeDate() {
+		$datumzeit = DateUtil::formatDate(null,null,true,true);
+		return $datumzeit;
+	}
+}
+
+?>
Index: /trunk/de.inside.wcf.Gewinnspiel/install.sql
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/install.sql (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/install.sql (revision 516)
@@ -0,0 +1,40 @@
+DROP TABLE IF EXISTS wcf1_gws_game;
+CREATE TABLE `wcf1_gws_game` (
+  `gwsID` int(11) unsigned NOT NULL auto_increment,
+  `gwsTitel` varchar(255) NOT NULL,
+  `starttime` int(11) unsigned NOT NULL default '0',
+  `timeout` int(11) unsigned NOT NULL default '0',
+  `recipient` varchar(150) NOT NULL default '',
+  `regeln` mediumtext,
+  `discl` mediumtext,
+  `beschreib` mediumtext,
+  `groupIDs` varchar(255) NOT NULL default '0',
+  `money` int(11) unsigned NOT NULL default '0',
+  PRIMARY KEY  (`gwsID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS wcf1_gws_options;
+CREATE TABLE `wcf1_gws_options` (
+  `gwsOptionID` int(15) unsigned NOT NULL auto_increment,
+  `gwsID` int(11) unsigned NOT NULL default '0',
+  `gwsOption` mediumtext,
+  `showOrder` tinyint(3) unsigned NOT NULL default '0',
+  PRIMARY KEY  (`gwsOptionID`,`gwsID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `wcf1_gws_spiel`;
+CREATE TABLE `wcf1_gws_spiel` (
+  `gwsID` int(11) NOT NULL default '0',
+  `userID` int(11) NOT NULL default '0',
+  `ipaddress` varchar(16) NOT NULL default '0',
+  `email` varchar(255) NOT NULL default '0',
+  `realName` varchar(255) NOT NULL default '',
+  KEY `gwsID` (`gwsID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+INSERT INTO `wcf1_gamemenue` ( `position` , `name` , `text` , `link` , `bild` , `active` , `post` , `showhit` , `hit` , `target` , `extend` , `height` , `width` , `enableSmilies` , `enableHtml` , `enableBBCodes` , `permission` )
+VALUES (
+'0', 'Gewinnspiel(e)', '[align=center]Hier kann man nur Gewinnen!
+Und tolle Preise gibt es auÃerdem ;) 
+[/align]', 'index.php?page=Gewinnspiel', '0', '1', '0', '1', '0', '0', '0', '600', '800', '1', '0', '1', '0'
+);
Index: /trunk/de.inside.wcf.Gewinnspiel/pagelocation.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/pagelocation.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/pagelocation.xml (revision 516)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE import SYSTEM "DTD/import.dtd">
+<data>
+	<import>
+		<pagelocation name="wcf.usersOnline.location.gewinnspiel">
+			<pattern><![CDATA[(?:index\.php\?page=Gewinnspiel.*)$]]></pattern>
+		</pagelocation>
+		<pagelocation name="wcf.usersOnline.location.gewinnspiel.form">
+			<pattern><![CDATA[(?:index\.php\?form=Gewinnspiel.*)$]]></pattern>
+		</pagelocation>
+	</import>
+</data>
Index: /trunk/de.inside.wcf.Gewinnspiel/acpmenu.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/acpmenu.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/acpmenu.xml (revision 516)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE import SYSTEM "DTD/import.dtd">
+
+<data>
+	<import>
+		<acpmenuitem name="wcf.acp.menu.link.content.games">
+			<parent>wcf.acp.menu.link.content</parent>
+			<showorder>8</showorder>
+		</acpmenuitem>
+		<acpmenuitem name="wcf.acp.menu.link.content.games.gewinnspiel">
+			<parent>wcf.acp.menu.link.content.games</parent>
+			<showorder>2</showorder>
+			<permissions>admin.gewinnspiel.canChangeOptions</permissions>
+			<link>index.php?page=GewinnspielList</link>
+			<icon>icon/gewinnspielM.png</icon>
+		</acpmenuitem>
+	</import>
+</data>
Index: /trunk/de.inside.wcf.Gewinnspiel/de.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/de.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/de.xml (revision 516)
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "DTD/language.dtd">
+<!--
+	/*
+	* $LastChangedDate: 2007-08-14 22:25:15 +0200 (Do, 14 Aug 2007) $
+	* $LastChangedBy: Tatzelwurm $
+	* $HeadURL: file:///home/tatzel/wbb3/gewinnspiel/de.xml $
+	* $Id: de.xml 9 2007-08-14 22:25:15 Tatzelwurm $
+	*/
+-->
+<language languagecode="de">
+	<category name="wcf.acp.package">
+		<item name="wcf.acp.package.step.install.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird installiert]]></item>
+		<item name="wcf.acp.package.step.uninstall.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird gelÃ¶scht]]></item>
+		<item name="wcf.acp.package.step.update.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird aktualisiert]]></item>
+	</category>
+	<category name="wcf.usersOnline">
+		<item name="wcf.usersOnline.location.gewinnspiel"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">Sieht sich deieGewinnspiele an</a>]]></item>
+		<item name="wcf.usersOnline.location.gewinnspiel.form"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">Nimmt an einem Gewinnspiel teil</a>]]></item>
+	</category>
+	<category name="wcf.acp.menu">
+		<item name="wcf.acp.menu.link.content.games.gewinnspiel"><![CDATA[Gewinnspiel]]></item>
+	</category>
+	<category name="wcf.acp.option">
+		<item name="wcf.acp.option.category.gewinnspiel"><![CDATA[Gewinnspiel]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general"><![CDATA[Gewinnspiel Online/Offline Einstellungen]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline"><![CDATA[Gewinnspiel deaktivieren?]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message"><![CDATA[Deaktivierungshinweis]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message.description"><![CDATA[]]></item>
+	</category>
+	<category name="wcf.acp.group">
+		<item name="wcf.acp.group.option.category.user.games"><![CDATA[Spiele]]></item>
+		<item name="wcf.acp.group.option.category.user.games.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options"><![CDATA[Gewinnspiel Einstellungen]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel"><![CDATA[Kann am Gewinnspiel teilnehmen]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel.description"><![CDATA[User dieser Gruppe kÃ¶nnen an Gewinnspielen teilnehemen]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel"><![CDATA[Spieleoptionen]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions"><![CDATA[Kann Gewinnspiele bearbeiten]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions.description"><![CDATA[User dieser Gruppe kÃ¶nnen Gewinnspielen erstellen, bearbeiten, lÃ¶schen]]></item>
+	</category>
+	<category name="wcf.gewinnspiel">
+		<item name="wcf.gewinnspiel.copynotice"><![CDATA[Gewinnspiel wBB3 Â© 2007 by <a href="http://www.inside-das-hoerspiel.de">INSIDE das H&ouml;rspiel</a>]]></item>
+		<item name="wcf.gewinnspiel.title"><![CDATA[Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.gewinnspiel.money"><![CDATA[benÃ¶tigtes Guthaben: {$gewinnspiel.money} {lang}wcf.user.guthaben.currency{/lang}]]></item>
+		<item name="wcf.gewinnspiel.errormoney"><![CDATA[Sie haben nicht genÃŒgend Guthaben um spielen zu dÃŒrfen.]]></item>
+		<item name="wcf.gewinnspiel.statusmain"><![CDATA[Status]]></item>
+		<item name="wcf.gewinnspiel.statusspielen"><![CDATA[Mitspielen]]></item>
+		<item name="wcf.gewinnspiel.statusgespielt"><![CDATA[Sie haben bereits teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.statusnotok"><![CDATA[Teilnahme nicht mÃ¶glich]]></item>
+		<item name="wcf.gewinnspiel.statustocome"><![CDATA[Das Gewinnspiel ist noch nicht aktiv]]></item>
+		<item name="wcf.gewinnspiel.statusended"><![CDATA[Das Gewinnspiel ist beendet]]></item>
+		<item name="wcf.gewinnspiel.titelname"><![CDATA[Titel]]></item>
+		<item name="wcf.gewinnspiel.datalabel"><![CDATA[Ihre persÃ¶nlichen Daten]]></item>
+		<item name="wcf.gewinnspiel.frage"><![CDATA[Frage]]></item>
+		<item name="wcf.gewinnspiel.antwort"><![CDATA[Antwort]]></item>
+		<item name="wcf.gewinnspiel.start"><![CDATA[Start]]></item>
+		<item name="wcf.gewinnspiel.timeout"><![CDATA[Ende]]></item>
+		<item name="wcf.gewinnspiel.beschreibung"><![CDATA[Beschreibung]]></item>
+		<item name="wcf.gewinnspiel.datenschutz"><![CDATA[Datenschutz und Haftung]]></item>
+		<item name="wcf.gewinnspiel.regeln"><![CDATA[FÃŒr das Gewinnspiel gelten folgende Regeln]]></item>
+		<item name="wcf.gewinnspiel.userreal"><![CDATA[Ihr vollstÃ€ndiger Name]]></item>
+		<item name="wcf.gewinnspiel.userreal.description"><![CDATA[Geben sie hier ihren vollstÃ€ndigen Namen an.]]></item>
+		<item name="wcf.gewinnspiel.useraddr"><![CDATA[Ihre Postanschrift]]></item>
+		<item name="wcf.gewinnspiel.useraddr.description"><![CDATA[Im Format: StraÃe Hausnummer, PLZ Ort, Land]]></item>
+		<item name="wcf.gewinnspiel.username"><![CDATA[Ihr Username]]></item>
+		<item name="wcf.gewinnspiel.username.gast"><![CDATA[Gast]]></item>
+		<item name="wcf.gewinnspiel.usercount"><![CDATA[{@$usercount} User haben bisher an diesem Gewinnspiel teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.hinweis1"><![CDATA[Und los geht's! Viel GlÃŒck.]]></item>
+		<item name="wcf.gewinnspiel.kosten"><![CDATA[an Gewinnspiel teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.hinweis2"><![CDATA[(Tippen sie daf&uuml;r AKZEPTIERT in das Eingabefeld)]]></item>
+		<item name="wcf.gewinnspiel.akzept"><![CDATA[Ich habe die Regeln gelesen und bin damit einverstanden.]]></item>
+		<item name="wcf.gewinnspiel.wrongid"><![CDATA[Dies ist keine gÃŒltige Gewinnspiel ID]]></item>
+		<item name="wcf.gewinnspiel.alreadyplayed"><![CDATA[Sie kÃ¶nnen nicht zweimal am Gewinnspiel teilnehmen]]></item>
+		<item name="wcf.gewinnspiel.ok_redirect"><![CDATA[Ihre Gewinnspiel-E-Mail wurde erfolgreich versendet.]]></item>
+		<item name="wcf.gewinnspiel.nogroupe"><![CDATA[Ihre Usergruppe darf an diesem Gewinnspiel nicht teilnehmen.]]></item>
+		<item name="wcf.gewinnspiel.mail.subject"><![CDATA[TeilnamebestÃ€tigung {PAGE_TITLE} Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.mail.subject.recipient"><![CDATA[Teilnahmebenachrichtigung {PAGE_TITLE} Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.mail.message"><![CDATA[Vielen Dank {$userreal} fÃŒr die Teilnahme an unserem Gewinnspiel,
+In dieser E-Mail sind nochmal alle Daten, Fragen und ihre Antworten zusammengefasst.
+
+Datum und Uhrzeit: {$datetime}
+Ihr Username: {$username}
+Ihre E-Mail Adresse: {$useremail}
+Ihr Name: {$userreal}
+Ihre Adresse: {$useraddr}
+
+{$FrageAntwort}Durch die Eingabe von AKZEPTIERT haben sie die Gewinnspielregeln akzeptiert.
+Eine Mehrfachteilnahme ist nicht erlaubt.
+
+Bei Fragen zum Gewinnspiel wenden sie sich bitte 
+per E-Mail an {$recipient}.
+
+Viel Gl&uuml;ck w&uuml;nscht ihnen ihr
+
+{PAGE_TITLE}-Team]]></item>
+		<item name="wcf.gewinnspiel.mail.message.recipient"><![CDATA[{$userreal} hat an ihrem Gewinnspiel teilgenommen,
+in dieser E-Mail sind alle Daten, Fragen und Antworten zusammengefasst.
+
+Datum und Uhrzeit: {$datetime}
+Board-Username: {$username}
+E-Mail Adresse: {$useremail}
+Name: {$userreal}
+Postanschrift: {$useraddr}
+
+{$FrageAntwort}Viel Spass bei der Auswertung
+
+{PAGE_TITLE}-Team]]></item>
+	</category>
+	<category name="wcf.acp.gewinnspiel">
+		<item name="wcf.acp.gewinnspiel.view"><![CDATA[zur Liste]]></item>
+		<item name="wcf.acp.gewinnspiel.list"><![CDATA[Liste der Gewinnspiele]]></item>
+		<item name="wcf.acp.gewinnspiel.games.count"><![CDATA[{@$gamescount} Spiele vorhanden]]></item>
+		<item name="wcf.acp.gewinnspiel.gwsID"><![CDATA[ID]]></item>
+		<item name="wcf.acp.gewinnspiel.titelname"><![CDATA[Name des Gewinnspiels]]></item>
+		<item name="wcf.acp.gewinnspiel.add"><![CDATA[Gewinnspiel starten]]></item>
+		<item name="wcf.acp.gewinnspiel.add.success"><![CDATA[Das Gewinnspiel wurde erfolgreich gespeichert]]></item>
+		<item name="wcf.acp.gewinnspiel.edit"><![CDATA[Gewinnspiel bearbeiten]]></item>
+		<item name="wcf.acp.gewinnspiel.edit.success"><![CDATA[Die Ãnderungen wurden erfolgreich gespeichert]]></item>
+		<item name="wcf.acp.gewinnspiel.data"><![CDATA[Gewinnspieldaten]]></item>
+		<item name="wcf.acp.gewinnspiel.dauer"><![CDATA[Laufzeit]]></item>
+		<item name="wcf.acp.gewinnspiel.delete"><![CDATA[Gewinnspiel l&ouml;schen]]></item>
+		<item name="wcf.acp.gewinnspiel.delete.sure"><![CDATA[Soll der Eintrag wirklich gel&ouml;scht werden?]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen"><![CDATA[Fragen]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen.description"><![CDATA[Eine Frage pro Zeile, keine leeren Zeilen!! (BBcode, Smilies und HTML erlaubt.)]]></item>
+		<item name="wcf.acp.gewinnspiel.empf"><![CDATA[Empf&auml;nger der Antworten]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln"><![CDATA[Gewinnspiel Regeln]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln.description"><![CDATA[Die Regeln erscheinen direkt unter den Fragen. (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz"><![CDATA[Datenschutz]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz.description"><![CDATA[Erscheinen direkt ÃŒber "AKZEPT" (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.beschreibung"><![CDATA[Beschreibung]]></item>
+		<item name="wcf.acp.gewinnspiel.beschreibung.description"><![CDATA[Die Beschreibung erscheint als erstes und stellt den Kopf der Seite dar. (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.groups"><![CDATA[Gruppe(n) die Teilnehmen d&uuml;rfen]]></item>
+		<item name="wcf.acp.gewinnspiel.start.error"><![CDATA[Ung&uuml;ltige Startzeit!]]></item>
+		<item name="wcf.acp.gewinnspiel.timeout.error"><![CDATA[Ung&uuml;ltige Endzeit!]]></item>
+		<item name="wcf.acp.gewinnspiel.guthaben"><![CDATA[Guthaben]]></item>
+		<item name="wcf.acp.gewinnspiel.money"><![CDATA[nÃ¶tiges Guthaben]]></item>
+		<item name="wcf.acp.gewinnspiel.money2"><![CDATA[an Guthaben wird zur Teilnahme benÃ¶tigt]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer"><![CDATA[Liste der bisherigen Teilnehmer]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.id"><![CDATA[User ID]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.ip"><![CDATA[IP Addresse]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.email"><![CDATA[E-Mail]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.realname"><![CDATA[Name]]></item>
+	</category>
+</language>
Index: /trunk/de.inside.wcf.Gewinnspiel/groupoptions.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/groupoptions.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/groupoptions.xml (revision 516)
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE data SYSTEM "http://www.woltlab.com/DTDs/options.dtd">
+<data>	
+	<import>
+		<categories>
+<!-- User Kategorien -->
+			<category name="user.games">
+				<parent>user</parent>
+			</category>
+			<category name="user.gewinnspiel.options">
+				<parent>user.games</parent>
+			</category>
+			<category name="user.gewinnspiel">
+				<parent>user.gewinnspiel.options</parent>
+			</category>
+<!-- Admin Kategorien -->
+ 			<category name="admin.content.gewinnspiel">
+				<parent>admin.content</parent>
+			</category> 
+			<category name="admin.gewinnspiel">
+				<parent>admin.content.gewinnspiel</parent>
+			</category>
+		</categories>
+
+		<options>
+			<!-- Adminoptionen -->
+			<option name="admin.gewinnspiel.canChangeOptions">
+				<categoryname>admin.gewinnspiel</categoryname>
+				<optiontype>boolean</optiontype>
+				<defaultvalue>0</defaultvalue>
+			</option>
+			<!-- /Adminoptionen -->
+
+			<!-- user.gewinnspiel -->
+			<option name="user.gewinnspiel.canViewGewinnspiel">
+				<categoryname>user.gewinnspiel</categoryname>
+				<optiontype>boolean</optiontype>
+				<defaultvalue>1</defaultvalue>
+			</option>
+			<!-- /user.gewinnspiel -->
+		</options>
+	</import>
+</data>
Index: /trunk/de.inside.wcf.Gewinnspiel/options.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/options.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/options.xml (revision 516)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE data SYSTEM "http://www.woltlab.com/DTD/options.dtd">
+
+<data>
+	<import>
+		<categories>
+			<category name="gewinnspiel"></category>
+			<category name="gewinnspiel.general">
+				<parent>gewinnspiel</parent>
+			</category>
+		</categories>
+		<options>
+			<option name="gewinnspiel_offline">
+				<categoryname>gewinnspiel.general</categoryname>
+				<optiontype>boolean</optiontype>
+				<enableoptions><![CDATA[gewinnspiel_offline_message]]></enableoptions>
+			</option>
+			<option name="gewinnspiel_offline_message">
+				<categoryname>gewinnspiel.general</categoryname>
+				<optiontype>textarea</optiontype>
+			</option>
+		</options>
+	</import>
+</data>
Index: /trunk/de.inside.wcf.Gewinnspiel/package.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/package.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/package.xml (revision 516)
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE package SYSTEM "DTD/package.dtd">
+
+<package name="de.inside.wcf.gewinnspiel">
+	<packageinformation>
+		<packagename lang="de">Gewinnspiel WCF</packagename>
+		<packagename lang="en">Competition WCF</packagename>
+		<packagename lang="de-informal">Gewinnspiel WCF</packagename>
+		<packageDescription>Liste und Verwaltung fÃŒr Gewinnspiele im Frage/Antwort Format.</packageDescription>
+		<packageurl><![CDATA[http://community.woltlab.de/forum/index.php?page=index.php]]></packageurl>
+		<isUnique>1</isUnique>
+		<standalone>0</standalone>
+		<version>1.0.0</version>
+		<date>DATE</date>
+		<plugin>com.woltlab.wcf</plugin>
+	</packageinformation>
+
+	<authorInformation>
+		<author>Robert "Tatelwurm" Hempel</author>
+		<authorURL>http://www.inside-das-hoerspiel.de</authorURL>
+	</authorInformation>
+
+	<requiredpackages>
+		<requiredpackage minversion="1.5.0">de.inside.wcf.gamemenue</requiredpackage>
+	</requiredpackages>
+
+	<instructions type="install">
+		<files>files.tar</files>
+		<languages languagecode="de">de.xml</languages>
+		<languages languagecode="de-informal">de-informal.xml</languages>
+		<languages languagecode="en">en.xml</languages>
+		<templates>templates.tar</templates>
+		<acptemplates>acptemplates.tar</acptemplates>
+		<sql>install.sql</sql>
+		<acpmenu>acpmenu.xml</acpmenu>
+		<options>options.xml</options>
+		<groupoptions>groupoptions.xml</groupoptions>
+		<pagelocation>pagelocation.xml</pagelocation>
+	</instructions>
+</package>
Index: /trunk/de.inside.wcf.Gewinnspiel/de-informal.xml
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/de-informal.xml (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/de-informal.xml (revision 516)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "DTD/language.dtd">
+<!--
+	/*
+	* $LastChangedDate: 2007-09-21 21:00:17 +0200 (Fr, 21 Sept 2007) $
+	* $LastChangedBy: Tatzelwurm $
+	* $HeadURL: file:///home/tatzel/wbb3/gewinnspiel/de-informal.xml $
+	* $Id: de-informal.xml 9 2007-09-21 21:00:17 Tatzelwurm $
+	*/
+-->
+<language languagecode="de-informal">
+	<category name="wcf.acp.package">
+		<item name="wcf.acp.package.step.install.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird installiert]]></item>
+		<item name="wcf.acp.package.step.uninstall.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird gelÃ¶scht]]></item>
+		<item name="wcf.acp.package.step.update.GewinnspielPackageInstallationPlugin"><![CDATA[INSIDE Gewinnspiel wird aktualisiert]]></item>
+	</category>
+	<category name="wcf.usersOnline">
+		<item name="wcf.usersOnline.location.gewinnspiel"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">Sieht sich deieGewinnspiele an</a>]]></item>
+		<item name="wcf.usersOnline.location.gewinnspiel.form"><![CDATA[<a href="index.php?page=Gewinnspiel{SID_ARG_2ND}">Nimmt an einem Gewinnspiel teil</a>]]></item>
+	</category>
+	<category name="wcf.acp.menu">
+		<item name="wcf.acp.menu.link.content.games.gewinnspiel"><![CDATA[Gewinnspiel]]></item>
+	</category>
+	<category name="wcf.acp.option">
+		<item name="wcf.acp.option.category.gewinnspiel"><![CDATA[Gewinnspiel]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.category.gewinnspiel.general"><![CDATA[Gewinnspiel Online/Offline Einstellungen]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline"><![CDATA[Gewinnspiel deaktivieren?]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline.description"><![CDATA[]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message"><![CDATA[Deaktivierungshinweis]]></item>
+		<item name="wcf.acp.option.gewinnspiel_offline_message.description"><![CDATA[]]></item>
+	</category>
+	<category name="wcf.acp.group">
+		<item name="wcf.acp.group.option.category.user.games"><![CDATA[Spiele]]></item>
+		<item name="wcf.acp.group.option.category.user.games.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options"><![CDATA[Gewinnspiel Einstellungen]]></item>
+		<item name="wcf.acp.group.option.category.user.gewinnspiel.options.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel"><![CDATA[Kann am Gewinnspiel teilnehmen]]></item>
+		<item name="wcf.acp.group.option.user.gewinnspiel.canViewGewinnspiel.description"><![CDATA[User dieser Gruppe kÃ¶nnen an Gewinnspielen teilnehemen]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel"><![CDATA[Spieleoptionen]]></item>
+		<item name="wcf.acp.group.option.category.admin.content.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions"><![CDATA[Kann Gewinnspiele bearbeiten]]></item>
+		<item name="wcf.acp.group.option.admin.gewinnspiel.canChangeOptions.description"><![CDATA[User dieser Gruppe kÃ¶nnen Gewinnspielen erstellen, bearbeiten, lÃ¶schen]]></item>
+	</category>
+	<category name="wcf.gewinnspiel">
+		<item name="wcf.gewinnspiel.copynotice"><![CDATA[Gewinnspiel wBB3 Â© 2007 by <a href="http://www.inside-das-hoerspiel.de">INSIDE das H&ouml;rspiel</a>]]></item>
+		<item name="wcf.gewinnspiel.title"><![CDATA[Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.description"><![CDATA[]]></item>
+		<item name="wcf.gewinnspiel.money"><![CDATA[benÃ¶tigtes Guthaben: {$gewinnspiel.money} {lang}wcf.user.guthaben.currency{/lang}]]></item>
+		<item name="wcf.gewinnspiel.statusmain"><![CDATA[Status]]></item>
+		<item name="wcf.gewinnspiel.statusspielen"><![CDATA[Mitspielen]]></item>
+		<item name="wcf.gewinnspiel.statusgespielt"><![CDATA[Du hast bereits teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.statusnotok"><![CDATA[Teilnahme nicht mÃ¶glich]]></item>
+		<item name="wcf.gewinnspiel.statustocome"><![CDATA[Das Gewinnspiel ist noch nicht aktiv]]></item>
+		<item name="wcf.gewinnspiel.statusended"><![CDATA[Das Gewinnspiel ist beendet]]></item>
+		<item name="wcf.gewinnspiel.titelname"><![CDATA[Titel]]></item>
+		<item name="wcf.gewinnspiel.datalabel"><![CDATA[Deine persÃ¶nlichen Daten]]></item>
+		<item name="wcf.gewinnspiel.frage"><![CDATA[Frage]]></item>
+		<item name="wcf.gewinnspiel.antwort"><![CDATA[Antwort]]></item>
+		<item name="wcf.gewinnspiel.start"><![CDATA[Start]]></item>
+		<item name="wcf.gewinnspiel.timeout"><![CDATA[Ende]]></item>
+		<item name="wcf.gewinnspiel.beschreibung"><![CDATA[Beschreibung]]></item>
+		<item name="wcf.gewinnspiel.datenschutz"><![CDATA[Datenschutz und Haftung]]></item>
+		<item name="wcf.gewinnspiel.regeln"><![CDATA[FÃŒr das Gewinnspiel gelten folgende Regeln]]></item>
+		<item name="wcf.gewinnspiel.userreal"><![CDATA[Dein vollstÃ€ndiger Name]]></item>
+		<item name="wcf.gewinnspiel.userreal.description"><![CDATA[Gebe hier deinen vollstÃ€ndigen Namen an.]]></item>
+		<item name="wcf.gewinnspiel.useraddr"><![CDATA[Deine Postanschrift]]></item>
+		<item name="wcf.gewinnspiel.useraddr.description"><![CDATA[Im Format: StraÃe Hausnummer, PLZ Ort, Land]]></item>
+		<item name="wcf.gewinnspiel.username"><![CDATA[Dein Username]]></item>
+		<item name="wcf.gewinnspiel.username.gast"><![CDATA[Gast]]></item>
+		<item name="wcf.gewinnspiel.usercount"><![CDATA[{@$usercount} User haben bisher an diesem Gewinnspiel teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.hinweis1"><![CDATA[Und los geht's! Viel GlÃŒck.]]></item>
+		<item name="wcf.gewinnspiel.kosten"><![CDATA[an Gewinnspiel teilgenommen]]></item>
+		<item name="wcf.gewinnspiel.hinweis2"><![CDATA[(Tippe dafÃŒr AKZEPTIERT in das Eingabefeld)]]></item>
+		<item name="wcf.gewinnspiel.akzept"><![CDATA[Ich habe die Regeln gelesen und bin damit einverstanden.]]></item>
+		<item name="wcf.gewinnspiel.wrongid"><![CDATA[Dies ist keine gÃŒltige Gewinnspiel ID]]></item>
+		<item name="wcf.gewinnspiel.alreadyplayed"><![CDATA[Du kannst nicht zweimal am Gewinnspiel teilnehmen.]]></item>
+		<item name="wcf.gewinnspiel.ok_redirect"><![CDATA[Deine Gewinnspiel-E-Mail wurde erfolgreich versendet.]]></item>
+		<item name="wcf.gewinnspiel.nogroupe"><![CDATA[Deine Usergruppe darf an diesem Gewinnspiel nicht teilnehmen.]]></item>
+		<item name="wcf.gewinnspiel.mail.subject"><![CDATA[Teilnahmebest&auml;tigung {PAGE_TITLE} Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.mail.subject.recipient"><![CDATA[Teilnahmebenachrichtigung {PAGE_TITLE} Gewinnspiel]]></item>
+		<item name="wcf.gewinnspiel.mail.message"><![CDATA[Vielen Dank {$userreal} fÃŒr deine Teilnahme an unserem Gewinnspiel.
+In dieser E-Mail sind nochmal alle Daten, Fragen und deine Antworten zusammengefasst.
+
+Datum und Uhrzeit: {$datetime}
+Dein Username: {$username}
+Deine E-Mail Adresse: {$useremail}
+Dein Name: {$userreal}
+Deine Adresse: {$useraddr}
+
+{$FrageAntwort}Durch die Eingabe von AKZEPTIERT hast du die Gewinnspielregeln akzeptiert.
+Eine Mehrfachteilnahme ist nicht erlaubt.
+Bei Fragen zum Gewinnspiel wende dich bitte per E-Mail an {$recipient}.
+
+Viel Gl&uuml;ck w&uuml;nscht dir dein
+
+{PAGE_TITLE}-Team]]></item>
+		<item name="wcf.gewinnspiel.mail.message.recipient"><![CDATA[{$userreal} hat an deinem Gewinnspiel teilgenommen,
+in dieser E-Mail sind alle Daten, Fragen und Antworten zusammengefasst.
+
+Datum und Uhrzeit: {$datetime}
+Board-Username: {$username}
+E-Mail Adresse: {$useremail}
+Name: {$userreal}
+Postanschrift: {$useraddr}
+
+{$FrageAntwort}Viel Spass bei der Auswertung
+
+{PAGE_TITLE}-Team]]></item>
+	</category>
+	<category name="wcf.acp.gewinnspiel">
+		<item name="wcf.acp.gewinnspiel.view"><![CDATA[zur Liste]]></item>
+		<item name="wcf.acp.gewinnspiel.list"><![CDATA[Liste der Gewinnspiele]]></item>
+		<item name="wcf.acp.gewinnspiel.games.count"><![CDATA[{@$gamescount} Spiele vorhanden]]></item>
+		<item name="wcf.acp.gewinnspiel.gwsID"><![CDATA[ID]]></item>
+		<item name="wcf.acp.gewinnspiel.titelname"><![CDATA[Name des Gewinnspiels]]></item>
+		<item name="wcf.acp.gewinnspiel.add"><![CDATA[Gewinnspiel starten]]></item>
+		<item name="wcf.acp.gewinnspiel.add.success"><![CDATA[Das Gewinnspiel wurde erfolgreich gespeichert]]></item>
+		<item name="wcf.acp.gewinnspiel.edit"><![CDATA[Gewinnspiel bearbeiten]]></item>
+		<item name="wcf.acp.gewinnspiel.edit.success"><![CDATA[Die Ãnderungen wurden erfolgreich gespeichert]]></item>
+		<item name="wcf.acp.gewinnspiel.data"><![CDATA[Gewinnspieldaten]]></item>
+		<item name="wcf.acp.gewinnspiel.dauer"><![CDATA[Laufzeit]]></item>
+		<item name="wcf.acp.gewinnspiel.delete"><![CDATA[Gewinnspiel l&ouml;schen]]></item>
+		<item name="wcf.acp.gewinnspiel.delete.sure"><![CDATA[Soll der Eintrag wirklich gel&ouml;scht werden?]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen"><![CDATA[Fragen]]></item>
+		<item name="wcf.acp.gewinnspiel.fragen.description"><![CDATA[Eine Frage pro Zeile, keine leeren Zeilen! (BBcode, Smilies und HTML erlaubt.)]]></item>
+		<item name="wcf.acp.gewinnspiel.empf"><![CDATA[Empf&auml;nger der Antworten]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln"><![CDATA[Gewinnspiel Regeln]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln.description"><![CDATA[Die Regeln erscheinen direkt unter den Fragen. (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz"><![CDATA[Datenschutz]]></item>
+		<item name="wcf.acp.gewinnspiel.datenschutz.description"><![CDATA[Erscheinen direkt ÃŒber "AKZEPT". (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.beschreibung"><![CDATA[Beschreibung]]></item>
+		<item name="wcf.acp.gewinnspiel.regeln.description"><![CDATA[Die Regeln erscheinen direkt unter den Fragen. (BBcode, Smilies erlaubt, HTML nicht.)]]></item>
+		<item name="wcf.acp.gewinnspiel.groups"><![CDATA[Gruppe(n) die Teilnehmen d&uuml;rfen]]></item>
+		<item name="wcf.acp.gewinnspiel.money"><![CDATA[nÃ¶tiges Guthaben]]></item>
+		<item name="wcf.acp.gewinnspiel.start.error"><![CDATA[Ung&uuml;ltige Startzeit!]]></item>
+		<item name="wcf.acp.gewinnspiel.timeout.error"><![CDATA[Ung&uuml;ltige Endzeit!]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer"><![CDATA[Liste der bisherigen Teilnehmer]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.id"><![CDATA[User ID]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.ip"><![CDATA[IP Addresse]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.email"><![CDATA[E-Mail]]></item>
+		<item name="wcf.acp.gewinnspiel.teilnehmer.realname"><![CDATA[Name]]></item>
+	</category>
+</language>
Index: /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel.tpl (revision 516)
@@ -0,0 +1,191 @@
+{include file="documentHeader"}
+<head>
+	<title>{@$gwsTitel} - {lang}wcf.gewinnspiel.title{/lang} - {PAGE_TITLE}</title>
+	{include file='headInclude' sandbox=false}
+	<meta name="generator" content="{lang}wcf.gewinnspiel.title{/lang}" />
+</head>
+<body>
+{include file='header' sandbox=false}
+<div id="main">
+	<ul class="breadCrumbs">
+		<li><a href="index.php?page=Gewinnspiel{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielS.png" alt="" /> <span>{lang}wcf.gewinnspiel.title{/lang}</span></a> &raquo;</li>
+		<li><a href="index.php?form=Gewinnspiel&gwsID={$gwsID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielS.png" alt="" /> <span>{@$gwsTitel}</span></a> &raquo;</li>
+	</ul>
+	
+	<div class="mainHeadline">
+		<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielL.png" alt="" />
+		<div class="headlineContainer">
+			<h2>{PAGE_TITLE} {lang}wcf.gewinnspiel.title{/lang}</h2>
+   			<p>{lang}wcf.gewinnspiel.usercount{/lang}</p>
+		</div>
+	</div>
+	{if $errorField}
+		<p class="error">{lang}wcf.global.form.error{/lang}</p>
+	{/if}
+
+	<form method="post" action="index.php?form=Gewinnspiel">
+		<div class="border content">
+			<div class="containerHead" align="center"><b>{@$gwsTitel}</b></div>
+			{if $beschreibung}
+				<div class="container-1">
+					<div class="messageContainer">{@$beschreibung}</div>
+				</div>
+			{/if}
+		</div>
+	
+		<div class="border content">
+			<div class="containerHead" align="center"><b>{lang}wcf.gewinnspiel.hinweis1{/lang}</b></div>
+				<div class="container-1">
+					<fieldset>
+					<legend><label for="email">{lang}wcf.gewinnspiel.datalabel{/lang}</label></legend>
+						<div class="formElement">
+							<div class="formFieldLabel">
+								<label for="useremailconfirm">{lang}wcf.gewinnspiel.username{/lang}: </label>
+							</div>
+							<div class="formField">
+   								<input type="hidden" class="inputText" id="username" NAME="username" value="{$username}" readonly />{@$username}
+							</div>
+						</div>
+						<div class="formElement{if $errorField == 'useremail'} formError{/if}">
+							<div class="formFieldLabel">
+								<label for="useremail">{lang}wcf.user.email{/lang}: </label>
+							</div>
+							<div class="formField">
+								{if $username != '{lang}wcf.gewinnspiel.username.gast{/lang}'}
+								   	<input type="hidden" class="inputText" name="useremail" value="{$useremail}" id="useremail" readonly />{@$useremail}
+								{else}
+									<input type="text" class="inputText" name="useremail" value="{$useremail}" id="useremail" />
+									{if $errorField == 'useremail'}
+										<p class="innerError">
+											{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+											{if $errorType == 'notValid'}{lang}wcf.user.error.email.notValid{/lang}{/if}
+											{if $errorType == 'notUnique'}{lang}wcf.user.error.email.notUnique{/lang}{/if}
+										</p>
+									{/if}
+								{/if}
+							</div>
+							{if $username == '{lang}wcf.gewinnspiel.username.gast{/lang}'}
+								<div class="formFieldDesc">
+									<p>{lang}wcf.user.register.email.description{/lang}</p>
+								</div>
+							{/if}
+						</div>
+				 		{if $username == '{lang}wcf.gewinnspiel.username.gast{/lang}'}
+							<div class="formElement{if $errorField == 'useremailconfirm'} formError{/if}">
+								<div class="formFieldLabel">
+									<label for="useremailconfirm">{lang}wcf.user.confirmEmail{/lang}</label>
+								</div>
+								<div class="formField">
+									<input type="text" class="inputText" name="useremailconfirm" value="{$useremailconfirm}" id="useremailconfirm" />
+									{if $errorField == 'useremailconfirm'}
+										<p class="innerError">
+											{if $errorType == 'notEqual'}{lang}wcf.user.error.confirmEmail.notEqual{/lang}{/if}
+										</p>
+									{/if}
+								</div>
+								<div class="formFieldDesc">
+									<p>{lang}wcf.user.register.confirmEmail.description{/lang}</p>
+								</div>
+							</div>
+						{/if}
+						<div class="formElement{if $errorField == 'userreal'} formError{/if}">
+							<div class="formFieldLabel">
+								<label for="userreal">{lang}wcf.gewinnspiel.userreal{/lang}: </label>
+							</div>
+							<div class="formField">
+   								<input type="text" class="inputText" id="userreal" NAME="userreal" value="{$userreal}" />
+								{if $errorField == 'userreal'}
+									<p class="innerError">
+										{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+									</p>
+								{/if}
+							</div>
+							<div class="formFieldDesc">
+								<p>{lang}wcf.gewinnspiel.userreal.description{/lang}</p>
+							</div>
+						</div>
+						<div class="formElement{if $errorField == 'useraddr'} formError{/if}">
+							<div class="formFieldLabel">
+								<label for="useraddr">{lang}wcf.gewinnspiel.useraddr{/lang}:</label>
+							</div>
+							<div class="formField">
+   								<input type="text" class="inputText" id="useraddr" NAME="useraddr" value="{$useraddr}" />
+								{if $errorField == 'useraddr'}
+									<p class="innerError">
+										{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+									</p>
+								{/if}
+			   				</div>
+							<div class="formFieldDesc">
+								<p>{lang}wcf.gewinnspiel.useraddr.description{/lang}</p>
+							</div>
+ 	  					</div>
+					</fieldset>
+		 	  	</div>
+			</div>		
+		</div>
+		
+		{foreach from=$gwsOptionsArray item=option key=order}
+		<div class="border content">
+			<div class="containerHead" align="left">
+				<img src="{@RELATIVE_WCF_DIR}/icon/helpM.png" alt="" /> <b>{@$order+1}. {lang}wcf.gewinnspiel.frage{/lang}</b>: {@$option}
+			</div>
+			<div class="container-1">
+				<div class="containerIcon">
+					<img src="icon/postNewM.png" alt="" />
+				</div>
+				<div class="formElement{if $errorField == "answer[$order]"} formError{/if}">
+					<div class="containerContent">
+						<textarea name="answer[{$order}]" id="answer[{$order}]" rows="3" cols="50" tabindex="5">{@$answer[$order]}</textarea>
+						{if $errorField == "answer[$order]"}
+							<p class="innerError">
+								{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+							</p>
+						{/if}
+					</div>
+				</div>
+			</div>
+		</div>
+		{/foreach}
+	
+		{if $regeln}
+			<div class="border content">
+				<div class="containerHead" align="center"><b>{lang}wcf.gewinnspiel.regeln{/lang}</b></div>
+				<div class="container-1">
+					<div class="messageContainer">{@$regeln}</div>
+				</div>
+			</div>
+		{/if}
+		{if $datenschutz}
+			<div class="border content">
+				<div class="containerHead" align="center"><b>{lang}wcf.gewinnspiel.datenschutz{/lang}</b></div>
+				<div class="container-1">
+					<div class="messageContainer">{@$datenschutz}</div>
+				</div>
+			</div>
+		{/if}
+		<div class="formElement">
+			<div class="formFieldLabel{if $errorField == 'akzept'} formError{/if}">
+				<label for="akzept">{lang}wcf.gewinnspiel.akzept{/lang}:</label>
+			</div>
+			<div class="formField">
+				<input type="text" class="inputText" id="akzept" NAME="akzept" value="{$akzept}">
+				<p>{lang}wcf.gewinnspiel.hinweis2{/lang}</p>
+				{if $errorField == 'akzept'}
+					<p class="innerError">
+						{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
+					</p>
+				{/if}
+			</div>
+		</div>
+		<div class="formSubmit">
+			<input type="submit" name="send" accesskey="s" value="{lang}wcf.global.button.submit{/lang}" />
+			<input type="reset" name="reset" accesskey="r" value="{lang}wcf.global.button.reset{/lang}" />
+			<input type="hidden" name="gwsID" value="{@$gwsID}" />
+		</div>
+			{@SID_INPUT_TAG}
+ 			<input type="hidden" name="action" value="{@$action}" />
+ 	</form>
+{include file='footer' sandbox=false}
+</body>
+</html>
Index: /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel_offline.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel_offline.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspiel_offline.tpl (revision 516)
@@ -0,0 +1,36 @@
+<html>
+{include file="documentHeader"}
+<head>
+	<title>{lang}wcf.gewinnspiel.title{/lang} - {PAGE_TITLE}</title>
+	{capture assign=specialStyles}
+		<link rel="stylesheet" type="text/css" media="screen" href="{@RELATIVE_WCF_DIR}style/gewinnspiel.css" />
+	{/capture}
+
+	{include file='headInclude' sandbox=false}
+	<meta name="generator" content="INSIDE Gewinnspiel">
+</head>
+
+<body>
+{include file='header' sandbox=false}
+<div id="main">
+    <ul class="breadCrumbs">
+		<li><a href="index.php?page=Gewinnspiel{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielS.png" alt="" /> <span>{lang}wcf.gewinnspiel.title{/lang}</span></a> &raquo;</li>
+    </ul>
+    <div class="mainHeadline">
+        <img src="{@RELATIVE_WCF_DIR}icon/gewinnspielL.png" alt="" />
+        <div class="headlineContainer">
+            <h2>{lang}wcf.gewinnspiel.title{/lang}</h2>
+            <p>{lang}wcf.gewinnspiel.description{/lang}</p>
+        </div>
+    </div>
+    
+    {if $userMessages|isset}{@$userMessages}{/if}
+    
+    <div class="warning">
+        {lang}wcf.gewinnspiel.offline{/lang}
+        <p>{$offlinemessage}</p>
+    </div>
+</div>
+{include file="footer"}
+</body>
+</html>
Index: /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspielList.tpl
===================================================================
--- /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspielList.tpl (revision 516)
+++ /trunk/de.inside.wcf.Gewinnspiel/templates/gewinnspielList.tpl (revision 516)
@@ -0,0 +1,95 @@
+{include file="documentHeader"}
+
+<head>
+	<title>{lang}wcf.gewinnspiel.title{/lang} - {PAGE_TITLE}</title>
+	{include file='headInclude'}
+	<meta name="generator" content="INSIDE Gewinnspiel (WCF)" />
+</head>
+<body>
+{include file='header' sandbox=false}
+
+<div id="main">
+	
+	<ul class="breadCrumbs">
+		<li><a href="index.php?page=Gewinnspiel{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielS.png" alt="" /> <span>{lang}wcf.gewinnspiel.title{/lang}</span></a> &raquo;</li>
+	</ul>
+	
+	<div class="mainHeadline">
+		<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielL.png" alt="" />
+		<div class="headlineContainer">
+			<h2>{lang}wcf.gewinnspiel.title{/lang}</h2>
+		</div>
+	</div>
+	<div class="border content">
+		<div class="container-1">
+				<div class="contentHeader">
+					{assign var=multiplePagesLink value="index.php?page=Gewinnspiel&pageNo=%d"}
+					{pages print=true assign=pagesOutput link=$multiplePagesLink|concat:SID_ARG_2ND_NOT_ENCODED}
+				</div>
+			<fieldset>
+				<legend>{lang}wcf.acp.gewinnspiel.games.count{/lang}</legend>
+				<table class="tableList">
+					<thead>
+						<tr class="tableHead">
+							<th class="columnIcon"><div>{lang}wcf.acp.gewinnspiel.gwsID{/lang}</div></th>
+							<th class="columnBoxname"><div>{lang}wcf.acp.gewinnspiel.titelname{/lang}</div></th>
+							<th class="columnBoxname"><div>{lang}wcf.gewinnspiel.start{/lang}</div></th>
+							<th class="columnBoxname"><div>{lang}wcf.gewinnspiel.timeout{/lang}</div></th>
+							<th class="columnIcon"><div>{lang}wcf.gewinnspiel.statusmain{/lang}</div></th>
+						</tr>
+					</thead>
+					<tbody>
+						{foreach from=$gewinnspiele item=gewinnspiel}
+							<tr class="{cycle values="container-1,container-2" advance=false} id="{@$gewinnspiel.gwsID}"">
+								<td class="columnIcon">
+									<b>{@$gewinnspiel.gwsID}</b>
+								</td>
+								<td class="columnname columnText">
+									<b>{@$gewinnspiel.gwsTitel}</b>
+									{if $gewinnspiel.money}
+										<br />
+										{lang}wcf.gewinnspiel.money{/lang}
+									{/if}
+								</td>
+								<td class="columnMarkUsers" align="center">
+									{@$gewinnspiel.starttime|shorttime}
+								</td>
+								<td class="columnMarkUsers" align="center">
+									{@$gewinnspiel.timeout|shorttime}
+								</td>
+								<td class="columnIcon">
+									{if $gewinnspiel.timeout < TIME_NOW}
+										<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielEndeS.png" alt="{lang}wcf.gewinnspiel.statusended{/lang}" title="{lang}wcf.gewinnspiel.statusended{/lang}" />
+									{/if}
+									{if $gewinnspiel.starttime > TIME_NOW}
+										<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielTocomeS.png" alt="{lang}wcf.gewinnspiel.statustocome{/lang}" title="{lang}wcf.gewinnspiel.statustocome{/lang}" />
+									{/if}
+									{if $gewinnspiel.starttime < TIME_NOW && $gewinnspiel.timeout > TIME_NOW}
+										{if $gewinnspiel.permission == "ok" && $gewinnspiel.done == "notdone"}
+										<a href="index.php?form=Gewinnspiel&amp;gwsID={@$gewinnspiel.gwsID}{@SID_ARG_2ND}" alt='{lang}wcf.gewinnspiel.statusspielen{/lang}'><img src="{@RELATIVE_WCF_DIR}icon/gewinnspielGoS.png" alt="{lang}wcf.gewinnspiel.statusspielen{/lang}" title="{lang}wcf.gewinnspiel.statusspielen{/lang}" /></a>
+										{/if}
+										{if $gewinnspiel.permission == "ok" && $gewinnspiel.done == "done"}
+										<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielNotokS.png" alt="{lang}wcf.gewinnspiel.statusgespielt{/lang}" title="{lang}wcf.gewinnspiel.statusgespielt{/lang}" />
+										{/if}
+										{if $gewinnspiel.permission == "nein" && $gewinnspiel.done == "notdone"}
+										<img src="{@RELATIVE_WCF_DIR}icon/gewinnspielNotokS.png" alt="{lang}wcf.gewinnspiel.statusnotok{/lang}" title="{lang}wcf.gewinnspiel.statusnotok{/lang}" />
+										{/if}
+									{/if}
+								</td>
+							</tr>
+						{/foreach}
+					</tbody>
+				</table>
+			</fieldset>
+			<div class="contentHeader">
+				{assign var=multiplePagesLink value="index.php?page=Gewinnspiel&pageNo=%d"}
+				{pages print=true assign=pagesOutput link=$multiplePagesLink|concat:SID_ARG_2ND_NOT_ENCODED}
+			</div>
+		</div>
+	</div>
+	<p class="copyright">{lang}wcf.gewinnspiel.copynotice{/lang}</p>
+</div>
+{include file='footer' sandbox=false}
+
+</body>
+</html>
