//globale Variablen
var s = 1;
var v1 = false;
var v2 = false;
var v3 = false;
var falseimg = '<img src="./img/form_false.jpg" width="20px" height="20px" align="absmiddle">';
var trueimg = '<img src="./img/form_true.jpg" width="20px" height="20px" align="absmiddle">';

//Meldungen ausgeben
function printError(str){
	document.getElementById('buttonCreator').innerHTML='&nbsp;';
	document.getElementById('infoArea').innerHTML=str;
	document.getElementById('infoArea').style.color='#a00';
}
function printOk(){
	document.getElementById('buttonCreator').innerHTML='<input type="button" value="ABSCHICKEN" class="submit" style="font-size:90%;" onClick="Register();">';
	document.getElementById('infoArea').innerHTML= 'Eingaben OK!';
	document.getElementById('infoArea').style.color='#0a0';
}
//Prüfung Nutzername
function checkUsername(){
var un = document.getElementById('registerUN').value;
// Benutzername überprüfen
	if (un != ''){
		//Request erzeugen
		var req = CreateRequest();
		//öffnen
		req.open("GET",'./forms/checkData.php?a=user&v='+un,true);
		//Beim abschliessen des request wird diese Funktion ausgeführt
		req.onreadystatechange = function(){
			if (req.readyState == 4) {
					if(req.status!=200) { 
						printError('Scriptfehler! Bitte informieren Sie den Webmaster (Code:'+req.status+')');
					}else{
						//verarbeite Daten	
						//alert(req.responseText);
							var xml = req.responseXML;
							if (xml.getElementsByTagName("Status")[0].firstChild.nodeValue != 'True'){
							//neuer Nutzer
								document.getElementById('control1').innerHTML = trueimg;
								s = 2;
							}
							else {
							//Wenn Nutzerdaten vorhanden
								printError('Name bereits vorhanden');
								document.getElementById('control1').innerHTML = falseimg;
								s = 3;
							}
					}   
			}
			
			//Status ausgeben
			if (s == 2){
				v1 = true;
			}
			else if (s == 3) {
				v1 = false;
			}
		};
		req.setRequestHeader("Content-Type",
							  "text/xml");
		req.send(null)
	
	}
	else {
		printError('nicht alle notwendigen Angaben vorhanden!');
		document.getElementById('control1').innerHTML = '&nbsp;';
		v1 = false;
	};
}

//Passwörter vergleichen
function checkPassword(){
	var pw1 = document.getElementById('registerPW1').value;
	var pw2 = document.getElementById('registerPW2').value;
	if (pw1 != ''){
		if (pw1 == pw2){
			document.getElementById('control2').innerHTML = trueimg;
			document.getElementById('control3').innerHTML = trueimg;
			return true;
		}
		else {
			printError('Kennw&ouml;rter stimmen nicht &uuml;berein!');
			document.getElementById('control2').innerHTML = falseimg;
			document.getElementById('control3').innerHTML = falseimg;
			return false;
		}
	}
	else {
		printError('nicht alle notwendigen Angaben vorhanden!');
		document.getElementById('control2').innerHTML = '&nbsp;';
		document.getElementById('control3').innerHTML = '&nbsp;';
		return false;
	}
}
//E-Mailadresse überprüfen
function checkMail(){
var um = document.getElementById('registerMail1').value;
// Mail prüfen
	if (um != ''){
		var strReg = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";
		var regex = new RegExp(strReg);
		if (regex.test(um)){
			//Request erzeugen
			var req = CreateRequest();
			//öffnen
			req.open("GET",'./forms/checkData.php?a=mail&v='+um,true);
			//Beim abschliessen des request wird diese Funktion ausgeführt
			req.onreadystatechange = function(){
				if (req.readyState == 4) {
						if(req.status!=200) { 
							printError('Scriptfehler! Bitte informieren Sie den Webmaster (Code:'+req.status+')');
						}else{
							//verarbeite Daten	
								var xml = req.responseXML;
								if (xml.getElementsByTagName("Status")[0].firstChild.nodeValue != 'True'){
								//neuer Nutzer
									document.getElementById('control4').innerHTML = trueimg;
									s = 2;
								}
								else {
								//Wenn Nutzerdaten vorhanden
									printError('Die E-Mailadresse ist bereits auf <b>'+xml.getElementsByTagName("Uname")[0].firstChild.nodeValue+'</b> registriert!');
									document.getElementById('control4').innerHTML = falseimg;
									s = 3;
								}
						}   
				}
				
				//Status ausgeben
				if (s == 2){
					v3 = true;
				}
				else if (s == 3) {
					v3 = false;
				}
			};
			req.setRequestHeader("Content-Type",
								  "text/xml");
			req.send(null)
		}
		else {
			v3 = false;
			printError('Die E-Mail Adresse ist falsch!');
			document.getElementById('control4').innerHTML = falseimg;
		}
	}
	else {
		printError('nicht alle notwendigen Angaben vorhanden!');
		document.getElementById('control4').innerHTML = '&nbsp;';
		v3 = false;
	};
}

//Gültigkeitsprüfung Registrierungsdaten
function checkValidates(){
	getActive(true);
	v1=false;
	v2=false;
	v3=false;
	checkUsername()
	if (v1){
		if (checkPassword()){
			v2 = true;
			checkMail();
		}
	}
	if (v1 && v2 && v3) printOk('Eingaben OK!');
	getActive(false);
};

//Registrierung abschließen
function Register(){
	getActive(true);
	printError('&nbsp;');
	checkValidates();
	if (v1 &&  v2 && v3){

		/*********/
		var un = document.getElementById('registerUN').value;
		var pw = document.getElementById('registerPW1').value;
		var um = document.getElementById('registerMail1').value;
	printError('Daten werden vorbereitet...');	
		var req = CreateRequest();
			//öffnen
			req.open("GET",'./forms/registerUser.php?un='+un+'&pw='+pw+'&um='+um,true);
			//Beim abschliessen des request wird diese Funktion ausgeführt
			req.onreadystatechange = function(){
				if (req.readyState == 4) {
						if(req.status!=200) { 
							printError('Scriptfehler! Bitte informieren Sie den Webmaster (Code:'+req.status+')');
						}else{
							//verarbeite Daten	
								var xml = req.responseXML;
								if (xml.getElementsByTagName("Status")[0].firstChild.nodeValue != 'True'){
								//Wenn nicht registriert
									document.getElementById('buttonCreator').innerHTML='Registrierung konnte nicht abgeschlossen werden!';
								}
								else {
								//Wenn registriert
									LoadPage('register/success');
								}
						} 
					getActive(false);
				}
			};
			req.setRequestHeader("Content-Type",
								  "text/xml");
			req.send(null);
		/*********/
	}
	else {
		document.getElementById('buttonCreator').innerHTML='Daten fehlerhaft! Registrierung konnte nicht abgeschlossen werden!';
	}
}
