var req = body = isIE = listen = false;

function loadXMLDoc(url, data) {
	req = false;
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	}else if(window.ActiveXObject) {
		isIE = true;
		try {
			req = new ActiveXObject('Msxml2.XMLHTTP');
		} catch(e) {
			try {
				req = new ActiveXObject('Microsoft.XMLHTTP');
			} catch(e) {
				req = false;
			}
		}
	}
	if(req) {
		req.open('POST', url, true);
		req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		req.onreadystatechange = processReqChange;
		req.send(data);
	}
}

function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			var xml = getElementTextNS('', 'pre', req.responseXML, 0)
			listen = false;
			alert(xml);
		} else {
			alert("There was a problem retrieving the XML data:\n" + req.statusText);
		}
	}
}

function getElementTextNS(prefix, local, parentElem, index) {
	var result = '';
	if(prefix && isIE) result = parentElem.getElementsByTagName(prefix + ':' + local)[index];
	else result = parentElem.getElementsByTagName(local)[index];
	if(result) {
		if(result.childNodes.length > 1) return result.childNodes[1].nodeValue;
		else return result.firstChild.nodeValue;
	}else return 'n/a';
}

function handleClick(e) {
	var elm = e.target;
	switch(elm.tagName) {
		case 'INPUT': {
			if(elm.type == 'submit') {
				var uname = document.getElementById('uname');
				var upass = document.getElementById('upass');
				loadXMLDoc('/api/ldap.api.php', 'username=' + escape(uname.value) + '&password=' + escape(upass.value));
			}
			break;
		}
	}
}

function setUp() {
	body.onclick = function(e) {
		handleClick(e);
	}
	var fset = document.createElement('fieldset');
	fset.id = 'login';
	var unlb = document.createElement('label');
	var unstr = document.createTextNode('Benutzername');
	var unin = document.createElement('input');
	unin.type = 'text';
	unin.id = 'uname';
	var uplb = document.createElement('label');
	var upstr = document.createTextNode('Passwort');
	var upin = document.createElement('input');
	upin.type = 'password';
	upin.id = 'upass';
	var upsb = document.createElement('input');
	upsb.type = 'submit';
	upsb.id = 'dologin';
	upsb.value = 'anmelden';
	unlb.appendChild(unstr);
	unlb.appendChild(unin);
	fset.appendChild(unlb);
	uplb.appendChild(upstr);
	uplb.appendChild(upin);
	fset.appendChild(uplb);
	fset.appendChild(upsb);
	body.appendChild(fset);
	unin.onfocus = function() {
		this.className = 'a';
		listen = true;
	}
	unin.onblur = function() {
		listen = false;
		if(this.value == '') this.className = '';
	}
	upin.onfocus = function() {
		this.className = 'a';
		listen = true;
	}
	upin.onblur = function() {
		listen = false;
		if(this.value == '') this.className = '';
	}
	unin.focus();
	document.onkeyup = function(e) {
		if(e.keyCode == 13) {
			if(listen) document.getElementById('dologin').click();
		}
	}
}

window.onload = function() {
	body = document.getElementsByTagName('body')[0];
	setUp();
}
