var Register = {

	AjaxPath:'include/Ajax/',
	errorBorder:'#FF0000',
	successBorder:'#006633',
	activeStep:0,
	fieldArr:[
				   { Name:'Benutzername', Required:true, Type:'text' },
				   { Name:'Passwort', Required:true, Type:'pw' },
				   { Name:'Passwort_Retry', Required:true, Type:'pw' },
				   { Name:'Email', Required:true, Type:'email' },
				   { Name:'Vorname', Required:true, Type:'text' },
				   { Name:'Nachname', Required:true, Type:'text' },
				   { Name:'Geschlecht', Required:true, Type:'geschlecht' },
				   { Name:'GebTag', Required:true, Type:'text' },
				   { Name:'GebMonat', Required:true, Type:'text' },
				   { Name:'GebJahr', Required:true, Type:'text' },
				   { Name:'Wohnen', Required:true, Type:'text' },
				   { Name:'Nationalitaet', Required:true, Type:'text' },
				   { Name:'Verhaltenskodex', Required:true, Type:'checkbox' },
				   { Name:'AGB', Required:true, Type:'checkbox' },
				   { Name:'RegisterSave', Required:false, Type:'button' }
				],
	params:'',
	err:0,
	errUsername:0,
	errEmail:0,
	
	changeMonth: function() {
		
	},
	
	checkIfExistsUsername: function() {
		Register.errUsername=0;
		new Ajax.Request(Register.AjaxPath+'Register.php',
						 	{
								method:'post',
								parameters:'Check=Username&Benutzername='+$('Form_Benutzername').value,
								onSuccess:function(tr) {
									if(tr.responseText=='true') {
										Register.errUsername++;
										$('Form_Benutzername').style.borderColor=Register.errorBorder;
										$('Form_CheckUsermame').innerHTML = "Der Benutzername existiert bereits.";
									} else {
										$('Form_Benutzername').style.borderColor=Register.successBorder;
										$('Form_CheckUsermame').innerHTML = "";
									}
								}
							}
						);
	},
	
	checkIfExistsEmail: function() {
		Register.errEmail=0;
		new Ajax.Request(Register.AjaxPath+'Register.php',
						 	{
								method:'post',
								parameters:'Check=Email&Email='+$('Form_Email').value,
								onSuccess:function(tr) {
									if(tr.responseText=='false') {
										Register.errEmail++;
										$('Form_Email').style.borderColor=Register.errorBorder;	
										$('Form_CheckEmail').innerHTML = "Die E-Mail-Adresse existiert bereits.";
									} else {
										if(Register.checkMail('Form_Email')) {
											$('Form_Email').style.borderColor=Register.successBorder;
											$('Form_CheckEmail').innerHTML = "";
										} else {
											Register.errEmail++;
											$('Form_Email').style.borderColor=Register.errorBorder;	
											$('Form_CheckEmail').innerHTML = "Die E-Mail-Adresse hat ein falsches Format.";
										}
									}
								}
							}
						);
	},
	
	checkMail: function(field) {
		var str=$(field).value;
		var filter=/^.+@.+\..{2,4}$/;
		if (filter.test(str)) {
			return true;
		} else {
			return false;
		}
	},
	
	changeBundesland:function(value) {
		if(value!='') {
			new Ajax.Request(Register.AjaxPath+'Register.php',
							 	{
									method:'post',
									parameters:'Load=Stadt&bundesland='+encodeURIComponent(value),
									onSuccess:function(tr) {
										$('Stadt').innerHTML = tr.responseText;
									}
								}
							);	
		} else {
			$('Form_Wohnen').disabled = true;
		}
	},
	
	setWohnort: function(value) {
		if(value!='') {
			$('Form_Wohnen').value=value;	
		}
	},
	
	Save: function() {
		
		$('Form_RegisterSave').style.display = 'none';
		this.err=0;
		this.params='';
		
		for(i=0;i<Register.fieldArr.length;i++) {
			if(Register.fieldArr[i].Required==true) {
				
				if(Register.fieldArr[i].Type=='text') {
					if($('Form_'+Register.fieldArr[i].Name).value=='') {
						this.err++;
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.errorBorder;
					} else {
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.successBorder;
					}
				} else if(Register.fieldArr[i].Type=='pw') {
					if(Register.fieldArr[i].Name=='Passwort') {
						if($('Form_'+Register.fieldArr[i].Name).value.length<6 || $('Form_'+Register.fieldArr[i].Name).value == '') {
							this.err++;
							$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.errorBorder;
							$('Form_CheckPW').innerHTML = "Das Passwort muss mindestens 6 Zeichen lang sein.";
						} else {
							$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.successBorder;
							$('Form_CheckPW').innerHTML = "";
						}
					}
					
					if(Register.fieldArr[i].Name=='Passwort_Retry') {
						if ($('Form_Passwort').value != $('Form_'+Register.fieldArr[i].Name).value || $('Form_'+Register.fieldArr[i].Name).value == '') {
							this.err++;
							$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.errorBorder;
							$('Form_CheckPWretry').innerHTML = "Die Passwörter stimmen nicht überein.";
						} else {
							$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.successBorder;
							$('Form_CheckPWretry').innerHTML = "";
						}
					}
				} else if(Register.fieldArr[i].Type=='geschlecht') {
					if($('Form_Geschlecht1').checked==false && $('Form_Geschlecht2').checked==false) {
						this.err++;
						$('Form_Check'+Register.fieldArr[i].Name).innerHTML="Bitte ein Geschlecht auswählen.";
					} else {
						$('Form_Check'+Register.fieldArr[i].Name).innerHTML="";
					}
				} else if(Register.fieldArr[i].Type=='int') {
					if($('Form_'+Register.fieldArr[i].Name).value=='' || isNaN($('Form_'+Register.fieldArr[i].Name).value)) {
						this.err++;
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.errorBorder;
					} else {
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=RegistersuccessBorder;
					}
				} else if(Register.fieldArr[i].Type=='email') {
					if(!Register.checkMail('Form_'+Register.fieldArr[i].Name)) {
						this.err++;
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.errorBorder;
					} else {
						$('Form_'+Register.fieldArr[i].Name).style.borderColor=Register.successBorder;
					}
				} else if(Register.fieldArr[i].Type=='checkbox') {
					if($('Form_'+Register.fieldArr[i].Name).checked==false) {
						this.err++;
						$('Form_Check'+Register.fieldArr[i].Name).innerHTML="Bedingung muss akzeptiert werden.";
					} else {
						$('Form_Check'+Register.fieldArr[i].Name).innerHTML="";
					}
				}
			}
			if (i != 0) this.params+='&';
			if(Register.fieldArr[i].Name!='Passwort_Retry') {
				if(Register.fieldArr[i].Name=='Geschlecht') {
					if ($('Form_Geschlecht1').checked) {
						this.params+=Register.fieldArr[i].Name+'=male';
					} else if ($('Form_Geschlecht2').checked) {
						this.params+=Register.fieldArr[i].Name+'=female';
					}
				} else {
					this.params+=Register.fieldArr[i].Name+'='+$('Form_'+Register.fieldArr[i].Name).value;
				}
			}
		}
		
		if(this.err<=0 && Register.errUsername<=0 && Register.errEmail<=0) {
			new Ajax.Request(Register.AjaxPath+'Register.php',
								{
									method:'post',
									parameters:'Step=Save&'+Register.params,
									onSuccess:function(tr) {
										
										$('RegisterContent').innerHTML=tr.responseText;
									}
								}
							);
		} else {
			$('Form_RegisterSave').style.display = 'block';	
		}
		
	},
	
	Load: function() {
		new Ajax.Request(Register.AjaxPath+'Register.php',
							{
								method:'post',
								parameters:'Step=1',
								onSuccess:function(tr) {
									$('RegisterContent').innerHTML=tr.responseText;
									$('RegisterNext').onClick='Register.Save()';
								}
							}
						);
	},
	
	Close: function() {
		Effect.Fade('box_login_register', { duration: 0.5, from:1.0, to:0 });
	},
	
	init: function() {
		Register.Load();	
	},
	
	Toggle: function(id) {
		if($(id).style.display=='block') {
			$(id).style.display='none';	
		} else {
			$(id).style.display='block';
		}
	},
	
	Delete:function(uid) {
		if (confirm("Willst du wirklich deinen Account löschen? Alle von dir erstellten Interaktionen (Kommentare etc.) werden dabei gelöscht.")) {
			new Ajax.Request(Register.AjaxPath+'Register.php',
								{
									method:'post',
									parameters:'Step=Delete&uid='+uid,
									onSuccess:function(tr) {
										window.location.href='index.php';	
									}
								}
							);
		}
	},
	
	DeleteAccept:function(uid,ReactivationCode,DeactivationCode) {
		var setReact='';
		var setDeact='';
		
		if(ReactivationCode!='') {
			setReact='ReactivationCode='+ReactivationCode;
		}
		
		if(DeactivationCode!='') {
			setDeact='DeactivationCode='+DeactivationCode;	
		}
		new Ajax.Request(Register.AjaxPath+'Register.php',
						 	{
								method:'post',
								parameters:'Step=Delete&uid='+uid+'&'+setReact+setDeact,
								onSuccess:function(tr) {
									if(tr.responseText=='DeactivationCode') {
										$('Register_Deactivation').style.display='block';
									} else {
										$('Register_Reactivation').style.display='block';
									}
								}
							}
						);
	}

}

var ForgotPW = {

	Send: function(value) {
		if(value!='') {
			new Ajax.Request(Register.AjaxPath+'Register.php',
							 	{
									method:'post',
									parameters:'Check=ForgotPW&email='+value,
									onSuccess:function(tr) {
										$('PWMessage').innerHTML = tr.responseText;
									}
								}
							);
		}
	}

}
