
window.onload = function() {
	document.getElementById('regForm').onsubmit = checkForm;
	document.getElementById('check').onclick = checkUsername;
}

function checkForm() {
	if (!this.username.value) {
		alert('Vyber si, prosím, nějaké jméno');
		this.username.focus();
		return false;
	}
	if (!this.email.value) {
		alert('Zadejte, prosím, svůj e-mail.');
		this.email.focus();
		return false;
	}
	if (!/^\S+@\S+\.\S+$/.test(this.email.value)) {
		alert('Zadejte, prosím, svůj e-mail ve správném formátu.');
		this.email.focus();
		return false;
	}
	if (!this.passwd.value) {
		alert('Vyber si, prosím, nějaké heslo');
		this.passwd.focus();
		return false;
	}
	if (!this.passwd2.value) {
		alert('Zopakuj, prosím, zvolené heslo');
		this.passwd2.focus();
		return false;
	}
	if (this.passwd.value != this.passwd2.value) {
		alert('Hesla se neshodují');
		return false;
	}
}

function checkUsername(e) {
		var NAME_USED = 0, NAME_FREE = 1;
		var button, checkname, username = document.getElementById('username');
		if (!username.value) {
			alert('Zvolte si, prosím, uživatelské jméno');
			username.focus();
			return;
		}
		checkname = username.value;
		button = this;
		button.disabled = true;
		button._value = button.value;
		button.value = 'Kontroluji stav...';
		request('/ajax.php?action=existsUsername&username=' + checkname, function(status) {
			switch (parseInt(status)) {
				case NAME_FREE:
					alert('Jméno "' + checkname + '" je volné.');
					break;
				case NAME_USED:
					alert('Jméno "' + checkname + '" už je obsazené, nelze jej použít - zvolte si, prosím, nějaké jiné.');
					break;
				default:
					alert('CHYBA: nepodarilo se zjistit stav');
			}
			button.disabled = false;
			button.value = button._value;
			username.focus();
		});
}


function request(url, onDataLoad, callOnThis) {
	var req;
	try {
		req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		alert('Vas prohlížeč tuto funkci nepodporuje');
		return;
	}
	req.open('GET', url, true);
	req.send(null);
	req.onreadystatechange = function() {
		var xml;
		if (req.readyState == 4) {
			if (req.status == 200 || req.status == 304) {
				xml = req.responseText;
				if (callOnThis) {
					onDataLoad.call(callOnThis, xml);
				} else {
					onDataLoad(xml);
				}
			} else {
				//onDataLoad(-1);
			}
		}
	}
}
