var xmlHttpAnmeldung = createXmlHttpRequestObject();

function createXmlHttpRequestObject() {
	var xmlHttp;
	try {
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
				"MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
				"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
		for ( var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++) {
			try {
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			} catch (e) {
			}
		}
	}
	if (!xmlHttp)
		displayError("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}
var mouseX, mouseY;
var tempvisible = 0.1;
function CreateToolTip() {
	var root = document.getElementsByTagName('body')[0];
	var tooltip = document.createElement('div');
	tooltip.id = 'tooltip';
	root.appendChild(tooltip);
}
function UnToolTip() {
	var tooltip = document.getElementById('tooltip');
	tooltip.style.display = 'none';
	tempvisible = 0.1;
}
function Erscheinenlassen() {
	if (tempvisible < 1.1) {
		document.getElementById('tooltip').style.MozOpacity = tempvisible;
		document.getElementById('tooltip').style.opacity = tempvisible;
		tempvisible = tempvisible + 0.1;
		setTimeout("Erscheinenlassen()", 30);
	}
}
function ToolTip(e, s) {
	var tooltip = document.getElementById('tooltip');
	getMouseXY(e);
	switch (s.id) {

	case "anmeldung_bild1":
		if(tooltip.innerHTML=='1' || tooltip.innerHTML=='Bitte verwenden Sie nur Buchstaben und Zahlen (Keine Umlaute)')
			tooltip.innerHTML = 'Bitte verwenden Sie nur Buchstaben und Zahlen (Keine Umlaute)';
		else
			tooltip.innerHTML = 'Wählen Sie einen passenden Benutzernamen z.B. Sarte';
		break;
	case "anmeldung_bild2":
		if(tooltip.innerHTML=='2' || tooltip.innerHTML=='Ihr Passwort ist zu kurz. Mindestlänge von 3 Zeichen')
			tooltip.innerHTML = 'Ihr Passwort ist zu kurz. Mindestlänge von 3 Zeichen';
		else
			tooltip.innerHTML = 'Wählen Sie bitte ein gutes und sicheres Passwort. "abc" wäre natürlich nicht sicher.';
		break;
	case "anmeldung_bild3":
		if(tooltip.innerHTML=='3' || tooltip.innerHTML=='Die beiden Passwörter stimmen nicht überein')
			tooltip.innerHTML = 'Die beiden Passwörter stimmen nicht überein';
		else
			tooltip.innerHTML = 'Wiederhole Sie Ihren Passwort, um Tippfehler zu vermeiden';
		break;
	case "anmeldung_bild4":
		if(tooltip.innerHTML=='4' || tooltip.innerHTML=='Bitte verwenden Sie eine valide Email-Adresse')
			tooltip.innerHTML = 'Bitte verwenden Sie eine valide Email-Adresse';
		else
			tooltip.innerHTML = 'Deine Email wird für "Passwort vergessen" verwendet';
		break;
	case "anmeldung_bild5":
		if(tooltip.innerHTML=='5' || tooltip.innerHTML=='Ihre Handynummer ist nicht valide')
			tooltip.innerHTML = 'Ihre Handynummer ist nicht valide';
		else
			tooltip.innerHTML = 'Auch deine Handynummer wird für "Passwort vergessen" verwendet';
		break;
	
	case "anmeldung_bild1_error":

			tooltip.innerHTML = 'Bitte verwenden Sie nur Buchstaben und Zahlen (Keine Umlaute)';
		break;
	case "anmeldung_bild2_error":

			tooltip.innerHTML = 'Ihr Passwort ist zu kurz. Mindestlänge von 3 Zeichen';
		break;
	case "anmeldung_bild3_error":
			tooltip.innerHTML = 'Die beiden Passwörter stimmen nicht überein';
		break;
	case "anmeldung_bild4_error":
			tooltip.innerHTML = 'Bitte verwenden Sie eine valide Email-Adresse';
		break;
	case "anmeldung_bild5_error":
			tooltip.innerHTML = 'Ihre Handynummer ist nicht valide';
		break;
	}
	tooltip.style.top = (mouseY - 80) + 'px';
	tooltip.style.left = (mouseX - 70) + 'px';
	tooltip.style.opacity = tempvisible;
	tooltip.style.MozOpacity = tempvisible;
	tooltip.style.display = 'block';
	Erscheinenlassen();
}
function getMouseXY(e) {
	if (window.ActiveXObject) {
		mouseX = window.event.x + document.body.scrollLeft;
		mouseY = window.event.y + document.body.scrollTop;
	} else {
		mouseX = e.pageX;
		mouseY = e.pageY;
	}
}


function anmeldungrequest(){
	var AnmeldungFehler = '';
	var username        = document.getElementById('username');
	var userpasswort    = document.getElementById('userpasswort');
	var userpasswort2   = document.getElementById('userpasswort2');
	var usermail        = document.getElementById('usermail');
	var usernummer      = document.getElementById('usernummer');
	
	   
	if(usernummer.value.length < 10 ) AnmeldungFehler             = '5';
	if(usernummer.value.length > 14 ) AnmeldungFehler             = '5';
    if(!usermail.value.match(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/)) AnmeldungFehler = '4';
    if(userpasswort.value != userpasswort2.value) AnmeldungFehler = '3';
    if(userpasswort.value.length > 25) AnmeldungFehler            = '2';
    if(userpasswort.value.length < 3) AnmeldungFehler             = '2';
	if(!username.value.match(/^[a-zA-Z0-9_]+$/)) AnmeldungFehler  = '1';
	
	for(var i= 1;i<6;i++){
		var FehlerBild    = document.getElementById('anmeldung_bild'+i);
		FehlerBild.src    = "/images/quest.png";
		var tooltip       = document.getElementById('tooltip');
		tooltip.innerHTML = '';
	}
	if(AnmeldungFehler !=''){
		var FehlerBild    = document.getElementById('anmeldung_bild'+AnmeldungFehler);
		FehlerBild.src    = "/images/error.png";
		var tooltip       = document.getElementById('tooltip');
		tooltip.innerHTML = AnmeldungFehler;
		AnmeldungFehler   = '';
	} else {
		var Tempcache     = '';
		if(xmlHttpAnmeldung){
			Tempcache     = "username="+encode(username.value)
						   +"&userpasswort="+encode(userpasswort.value)
						   +"&userpasswort2="+encode(userpasswort2.value)
						   +"&usermail="+encode(userpasswort2.value)
						   +"&usernummer="+encode(usernummer.value);
				
			try {
				if ((xmlHttpAnmeldung.readyState == 4 || xmlHttpAnmeldung.readyState == 0)) {
					xmlHttpAnmeldung.open("POST", "/anmeldung/anmelden.php", true);
					xmlHttpAnmeldung.setRequestHeader("Content-Type",
							"application/x-www-form-urlencoded");
					xmlHttpAnmeldung.onreadystatechange = handleRequestofAnmeldung;
					xmlHttpAnmeldung.send(Tempcache);
				}
			} catch (e) {
				displayError(e.toString());
			}
		}
	}
}
function handleRequestofAnmeldung() {
	if (xmlHttpAnmeldung.readyState == 4) {
		if (xmlHttpAnmeldung.status == 200) {
			try {
				readRequestofAnmeldung();
			} catch (e) {
				displayError(e.toString());
			}
		} else {
			displayError(xmlHttpAnmeldung.statusText);
		}
	}
}

function readRequestofAnmeldung() {
	var response = xmlHttpAnmeldung.responseText;
	document.getElementById('anmeldung_form').innerHTML = response;
}

function encode(uri) {
	if (encodeURIComponent) {
		return encodeURIComponent(uri);
	}
	if (escape) {
		return escape(uri);
	}
}
