function checkDate(datum)
{
	if (!datum)
		return false;
	datum=datum.toString();
 
	datum=datum.split(".");
	if (datum.length!=3)
		return false;
 
	datum[0]=parseInt(datum[0],10);
	datum[1]=parseInt(datum[1],10)-1;

	if (datum[2].length==2)
		datum[2]="20"+datum[2];

	var kontrolldatum=new Date(datum[2],datum[1],datum[0]);

	if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
		return true;
	else return false;
}

function checkRatingFormular() {
	if(document.rating.fun.value == "0") {
		alert("Bitte eine Bewertung für den Spielspaß angeben!");
		document.rating.fun.focus();
		return false;
	}
	if(document.rating.support_ingame.value == "0") {
		alert("Bitte eine Bewertung für den Support (Ingame) angeben!");
		document.rating.support_ingame.focus();
		return false;
	}
	if(document.rating.support_outgame.value == "0") {
		alert("Bitte eine Bewertung für den Support (Outgame) angeben!");
		document.rating.support_outgame.focus();
		return false;
	}
	if(document.rating.hp.value == "0") {
		alert("Bitte eine Bewertung für die Homepage angeben!");
		document.rating.hp.focus();
		return false;
	}
	if(document.rating.com.value == "0") {
		alert("Bitte eine Bewertung für die Community angeben!");
		document.rating.com.focus();
		return false;
	}
	if(document.rating.security.value == "") {
		alert("Bitte zuerst die Sicherheitsfrage beantworten!");
		document.rating.security.focus();
		return false;
	}
}

function checkRegisterFormular() {
	if(document.register.username.value.length < 5) {
		alert("Der gewählte Benutzername ist zu kurz! Mindestens 5 Zeichen!");
		document.register.username.focus();
		return false;
	}
	if(document.register.username.value.length > 30) {
		alert("Der gewählte Benutzername ist zu lang! Maximal 30 Zeichen!");
		document.register.username.focus();
		return false;
	}
	if(document.register.pass1.value.length < 5) {
		alert("Das gewählte Passwort ist zu kurz! Mindestens 5 Zeichen!");
		document.register.pass1.focus();
		return false;
	}
	if(document.register.pass1.value.length > 255) {
		alert("Das gewählte Passwort ist zu lang! Maximal 255 Zeichen!");
		document.register.pass1.focus();
		return false;
	}
	if(document.register.pass1.value != document.register.pass2.value) {
		alert("Die beiden angegebenen Passwörter stimmen nicht überein!");
		document.register.pass1.focus();
		return false;
	}
	if(document.register.email.value.length < 7) {
		alert("Die angegebene E-Mail-Adresse ist ungültig!");
		document.register.email.focus();
		return false;
	}
	if(document.register.servername.value.length < 3) {
		alert("Der angegebene Servername ist zu kurz! Mindestens 3 Zeichen!");
		document.register.servername.focus();
		return false;
	}
	if(document.register.servername.value.length > 50) {
		alert("Der angegebene Servername ist zu lang! Maximal 50 Zeichen!");
		document.register.servername.focus();
		return false;
	}
	if(document.register.description.value.length == 0) {
		alert("Bitte geben Sie zuerst eine Beschreibung ein!");
		document.register.description.focus();
		return false;
	}
	if(document.register.description.value.length > 300) {
		alert("Die angegebene Server-Beschreibung ist zu lang! Maximal 300 Zeichen!");
		document.register.description.focus();
		return false;
	}
	if(document.register.link.value.length < 12) {
		alert("Der angegebene Link zur Homepage ist ungültig!");
		document.register.link.focus();
		return false;
	}
	if(document.register.link.value.length > 255) {
		alert("Der angegebene Link zur Homepage ist zu lang! Maximal 255 Zeichen!");
		document.register.link.focus();
		return false;
	}
	if(document.register.link.value.length < 12) {
		alert("Der angegebene Link zum Banner ist ungültig!");
		document.register.link.focus();
		return false;
	}
	if(document.register.link.value.length > 255) {
		alert("Der angegebene Link zum Banner ist zu lang! Maximal 255 Zeichen!");
		document.register.link.focus();
		return false;
	}
	
	var Banner = document.register.banner.value.split(".");
	Banner = Banner[Banner.length - 1].toUpperCase();
	if(Banner != "JPEG" && Banner != "JPG" && Banner != "PNG" && Banner != "GIF" && Banner != "BMP") {
		alert("Das Format des angegebenen Banners ist ungültig! Erlaubt sind JPEG, PNG, GIF oder BMP!");
		document.register.banner.focus();
		return false;
	}
	
	if(isNaN(document.register.banner_width.value)) {
		alert("Die angegebene Banner-Breite ist ungültig!");
		document.register.banner_width.focus();
		return false;
	}
	if(document.register.banner_width.value > 468) {
		alert("Die angegebene Banner-Breite ist zu groß! Maximal 468 Pixel!");
		document.register.banner_width.focus();
		return false;
	}
	if(isNaN(document.register.banner_height.value)) {
		alert("Die angegebene Banner-Höhe ist ungültig!");
		document.register.banner_height.focus();
		return false;
	}
	if(document.register.banner_height.value > 60) {
		alert("Die angegebene Banner-Höhe ist zu groß! Maximal 60 Pixel!");
		document.register.banner_height.focus();
		return false;
	}
	if(document.register.captcha.value.length == 0) {
		alert("Bitte beantworten Sie zuerst die Sicherheitsfrage!");
		document.register.captcha.focus();
		return false;
	}
	if(document.register.accepted.checked != true) {
		alert("Sie müssen erst bestätigen, dass Sie der Server-Betreiber sind und die AGB gelesen und akzeptiert haben!");
		document.register.accepted.focus();
		return false;
	}
}

function checkCommentFormular() {
	if(document.commentform.user.value.length > 20) {
		alert("Der angegebene Benutzername ist zu lang! Maximal 20 Zeichen!");
		document.commentform.user.focus();
		return false;
	}
	if(document.commentform.user.value.length < 3) {
		alert("Bitte geben Sie einen Benutzernamen mit mindestens 3 Zeichen ein!");
		document.commentform.user.focus();
		return false;
	}
	if(document.commentform.email.value.length > 50) {
		alert("Die angegebene E-Mail Adresse ist zu lang! Maximal 50 Zeichen!");
		document.commentform.email.focus();
		return false;
	}
	if(document.commentform.email.value.length < 7) {
		alert("Bitte geben Sie zuerst eine gültige E-Mail Adresse ein!");
		document.commentform.email.focus();
		return false;
	}
	if(document.commentform.hp.value.length < 11 && document.commentform.hp.value.length > 0) {
		alert("Bitte geben Sie eine gültige Homepage ein!");
		document.commentform.hp.focus();
		return false;
	}
	if(document.commentform.message.value.length > 300) {
		alert("Ihr Kommentar ist zu lang! Maximal 300 Zeichen sind erlaubt!");
		document.commentform.message.focus();
		return false;
	}
	if(document.commentform.message.value.length < 5) {
		alert("Ihr Kommentar ist zu kurz! Schreiben Sie mindestens 5 Zeichen!");
		document.commentform.message.focus();
		return false;
	}
}

function checkNormalFormular() {
	if(isNaN(document.norminfo.patch.value)) {
		alert("Ungültiger Patch ausgewählt!");
		document.norminfo.patch.focus();
		return false;
	}
	if(isNaN(document.norminfo.average_players.value)) {
		alert("Ungültige durchschnittliche Spielerzahl! Nur Zahlen sind erlaubt!");
		document.norminfo.average_players.focus();
		return false;
	}
	if(document.norminfo.average_players.value < 0) {
		alert("Ungültige durchschnittliche Spielerzahl!");
		document.norminfo.average_players.focus();
		return false;
	}
	if(isNaN(document.norminfo.realms.value)) {
		alert("Ungültige Realm-Anzahl!");
		document.norminfo.realms.focus();
		return false;
	}
	if(isNaN(document.norminfo.ratetype.value)) {
		alert("Ungültiger Raten-Typ!");
		document.norminfo.ratetype.focus();
		return false;
	}
	if(isNaN(document.norminfo.gamemasters.value)) {
		alert("Ungültige Gamemaster-Anzahl! Nur Zahlen sind erlaubt!");
		document.norminfo.gamemasters.focus();
		return false;
	}
	if(checkDate(document.norminfo.onlinesince.value) == false) {
		alert("Ungültiges Datum angegeben! Überprüfen Sie Ihre Eingaben!");
		document.norminfo.onlinesince.focus();
		return false;
	}
	if(isNaN(document.norminfo.server_connection.value)) {
		alert("Ungültige Server-Anbindung angegeben! Nur Zahlen sind erlaubt!");
		document.norminfo.server_connection.focus();
		return false;
	}
	if(document.norminfo.server_connection.value < 1) {
		alert("Ungültige Server-Anbindung angegeben! Die Anbindung darf nicht unter 1 MB/s liegen!");
		document.norminfo.server_connection.focus();
		return false;
	}
	if(isNaN(document.norminfo.server_uprate.value)) {
		alert("Ungültige Server-Uprate!");
		document.norminfo.server_uprate.focus();
		return false;
	}
	if(document.norminfo.server_uprate.value > 100 || document.norminfo.server_uprate.value < 1) {
		alert("Ungültige Server-Uprate!");
		document.norminfo.server_uprate.focus();
		return false;
	}
}

function checkExtendedFormular() {
	if(isNaN(document.extinfo.gametype.value)) {
		alert("Ungültiger Spieltyp ausgewählt!");
		document.extinfo.gametype.focus();
		return false;
	}
	if(isNaN(document.extinfo.custom_raids.value)) {
		alert("Ungültige Angabe: Custom Raids!");
		document.extinfo.custom_raids.focus();
		return false;
	}
	if(isNaN(document.extinfo.custom_items.value)) {
		alert("Ungültige Angabe: Custom Items!");
		document.extinfo.custom_items.focus();
		return false;
	}
	if(isNaN(document.extinfo.level_arena.value)) {
		alert("Ungültige Angabe: Level-Arena!");
		document.extinfo.level_arena.focus();
		return false;
	}
	if(isNaN(document.extinfo.playertreff.value)) {
		alert("Ungültige Angabe: Playertreff!");
		document.extinfo.playertreff.focus();
		return false;
	}
	if(isNaN(document.extinfo.average_ping.value)) {
		alert("Ungültiger Durchschnitts-Ping angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.average_ping.focus();
		return false;
	}
	if(isNaN(document.extinfo.start_level.value)) {
		alert("Ungültiges Start-Level angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.start_level.focus();
		return false;
	}
	if(isNaN(document.extinfo.max_level.value)) {
		alert("Ungültiges Level-Peak angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.max_level.focus();
		return false;
	}
	if(document.extinfo.start_level.value > document.extinfo.max_level.value) {
		alert("Das Start-Level ist größer als das Level-Peak! Das ist nicht möglich!");
		document.extinfo.start_level.focus();
		return false;
	}
	if(isNaN(document.extinfo.vmaps.value)) {
		alert("Ungültige Angabe: VMaps");
		document.extinfo.vmaps.focus();
		return false;
	}
	if(isNaN(document.extinfo.player_peak.value)) {
		alert("Ungültiges Player-Peak! Nur Zahlen sind erlaubt!");
		document.extinfo.player_peak.focus();
		return false;
	}
	if(isNaN(document.extinfo.emulator.value)) {
		alert("Ungültiges Angabe: Emulator!");
		document.extinfo.emulator.focus();
		return false;
	}
	if(isNaN(document.extinfo.playerbot.value)) {
		alert("Ungültige Angabe: Player-Bot");
		document.extinfo.playerbot.focus();
		return false;
	}
	if(isNaN(document.extinfo.auctionhousebot.value)) {
		alert("Ungültige Angabe: Auktionshaus-Bot");
		document.extinfo.auctionhousebot.focus();
		return false;
	}
	if(isNaN(document.extinfo.xp_rate.value)) {
		alert("Ungültige EP-Rate angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.xp_rate.focus();
		return false;
	}
	if(isNaN(document.extinfo.honor_rate.value)) {
		alert("Ungültige Ehren-Rate angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.honor_rate.focus();
		return false;
	}
	if(isNaN(document.extinfo.money_rate.value)) {
		alert("Ungültige Geld-Rate angegeben! Nur Zahlen sind erlaubt!");
		document.extinfo.money_rate.focus();
		return false;
	}
	if(isNaN(document.extinfo.hp_live_support.value)) {
		alert("Ungültige Angabe: HP-Live-Support!");
		document.extinfo.hp_live_support.focus();
		return false;
	}
	if(isNaN(document.extinfo.vote_reward.value)) {
		alert("Ungültige Angabe: Vote-Reward-System!");
		document.extinfo.vote_reward.focus();
		return false;
	}
	if(isNaN(document.extinfo.bugtracker.value)) {
		alert("Ungültige Angabe: Bugtracker!");
		document.extinfo.bugtracker.focus();
		return false;
	}
}

function checkDescFormular() {
	if(document.desc.description.value.length > 300) {
		alert("Die eingegebene Beschreibung ist länger als 300 Zeichen!");
		document.desc.description.focus();
		return false;
	}
	else {
		if(document.desc.description.value.length == 0) {
			return confirm("Sie haben keine Beschreibung eingegeben, für Ihren Server wird also keine Beschreibung angezeigt. Möchten Sie wirklich fortfahren?");
		}
	}
}

function checkRealmlistFormular() {
	if(document.realmlistform.realmlist.value.length < 4 && document.realmlistform.realmlist.value.length > 0) {
		alert("Der eingegebene Host ist ungültig!");
		document.realmlistform.realmlist.focus();
		return false;
	}
	if(document.realmlistform.realmlist.value.length > 50) {
		alert("Der eingegebene Host ist zu lang! Maximal 50 Zeichen!");
		document.realmlistform.realmlist.focus();
		return false;
	}
}
