var registrierung = {};
var nickname = null;

registrierung.toggleWindow = function() {
	$("#reg_window").toggle();
	$("#reg_bg").toggle();

	if(!$.browser.msie) {
		var nickname = $('#nickname').get(0);
		nickname.focus();
	}
}

registrierung.checkForm = function() {
	var input = $('#reg_window input[@type=submit]').get(0);
	var errorMessage = new Array();
	var nickname = $('#nickname');
	var vname = $('#vname');
	var nname = $('#nname');
	var email = $('#email');
	var pass = $('#pass');
	var geschlecht = $('#geschlecht');
	var day = $('#day');
	var month = $('#month');
	var year = $('#year');

	//disable submit button
	input.disabled = true;
	input.value = 'Deine Daten werden überprüft...';

	//user eingaben pruefen
	if(nickname.val() == "") errorMessage.push("Bitte gib deinen gewünschten <strong>Nicknamen</strong> an.");
	if(vname.val() == "") errorMessage.push("Bitte gib deinen <strong>Vornamen</strong> an.");
	if(nname.val() == "") errorMessage.push("Bitte gib deinen <strong>Nachnamen</strong> an.");
	if(email.val() == "") {
		errorMessage.push("Bitte <strong>E-Mail Adresse</strong> eingeben.");
	}
	else {
		if(isEmail(email.val()) == false) errorMessage.push("Bitte gib eine <strong>gültige E-Mail-Adresse</strong> ein.");
	}
	if(pass.val() == "") errorMessage.push("Bitte <strong>Passwort</strong> zur EPOS4 benutzung erstellen.");
	if(geschlecht.val() == "") errorMessage.push("Bitte wähle entweder <strong>männlich oder weiblich</strong> aus.");
	if(day.val() == "" || month.val() == "" || year.val() == "") errorMessage.push("Bitte gib dein volles <strong>Geburtsdatum</strong> ein.");


	if(errorMessage.length <= 0) {
		//check email and nickname
		registrierung.checkUserDataByRequest(nickname.val(), email.val());
	}


	//fehler vorhanden
	if(errorMessage.length > 0) {
		registrierung.displayError(errorMessage.join('<br/>'));
	}

	input.value = 'Registrieren';
	input.disabled = false;
	return false;
}

registrierung.displayError = function(text) {
	$('#reg_errorMessage').html(text);
	$('#reg_errorMessage').show();
	$('#reg_errorMessage').fadeOut('slow').fadeIn('fast').fadeOut('slow').fadeIn('fast');
}

registrierung.hideError = function() {
	$('#reg_errorMessage').hide();
	$('#reg_errorMessage').html('');
}


registrierung.checkUserDataByRequest = function(nickname, email) {
	$.ajax({
		cache : false,
		async : false,
		dataType : 'json',
		url : "/register/ajax_do.php?register_key=" + register_key + "&" + $('#reg_form').serialize(),
		error : function() {
			registrierung.displayError('Es ist ein unbekannter Fehler aufgetreten! (#376)');
		},
		success : function(json) {
			if(typeof(json) == "object" && json.success == false) {
				registrierung.displayError(json.message.join('<br/>'));
			}
			else if(typeof(json) == "object" && json.success == true) {
				//registrierung erfolgreich abgeschlossen!
				$("#reg_form").remove();
				$(".reg_box-main").remove();

				//erfolgemeldung einblenden
				$('#reg_errorMessage').show();
				$('#reg_errorMessage').fadeOut('slow').fadeIn('fast');
				$('#reg_errorMessage').css('background-color','#67A54B');
				$('#reg_errorMessage').css('border-color','#477234');
				$('#reg_errorMessage').css('color','#24355B');
				$('#reg_errorMessage').html('<h3>Bestätige deine E-Mail-Adresse</h3><br/><p>Danke für die Registrierung bei EPOS4! Wir haben dir soeben eine Bestätigungs-E-Mail an <strong>' + email + '</strong> gesendet.<br/><br/>Klicke auf den Bestätigungslink in der E-Mail, um deine Registrierung abzuschließen.</p><br/><div align="right" style="cursor:pointer;" onclick="registrierung.toggleWindow();">Fenster schließen</div>');
			}
			else {
				registrierung.displayError('Es ist ein unbekannter Fehler aufgetreten! (#376)');
			}
		}
	})

	return false;
}


function isEmail(indirizzo) {
  if (window.RegExp) {
    var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var regnv = new RegExp(nonvalido);
    var regv = new RegExp(valido);
    if (!regnv.test(indirizzo) && regv.test(indirizzo))
      return true;
    return false;
    }
  else {
    if(indirizzo.indexOf("@") >= 0)
      return true;
    return false;
     }
}


$(document).ready(function() {
	var nickname = $('#nickname').get(0);
	var nickname_login = $('#nickname_login').get(0);
	nickname_login.focus();

	$('#reg_button').click(function() {
		registrierung.toggleWindow();
	});

	$('#reg_button-top').click(function() {
		registrierung.toggleWindow();
	});

	$('#reg_bg').click(function() {
		registrierung.toggleWindow();
	});
})