
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");
//		alert(xmlHttpVersions);
		for (var i=0; i<xmlHttpVersions.length && !xmlHttp; i++) {
			
			try {
				
				xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
				
			} catch(e) {
				
			}
		}
	}
	
	if (!xmlHttp) {
		alert("Chyba pri vytvareni XMLHttpRequest objectu.");
	} else {
		return xmlHttp;
	}
}

var Registrace = {
	xmlHttp : createXmlHttpRequestObject(),
	pokus : 0,
	spravne : true,
	
	check : function(login) {
		if (this.xmlHttp) {
			try {
				this.xmlHttp.open('POST','?modul=Registrace&action=XMLLoginCheck',true);
				this.xmlHttp.onreadystatechange = this.handleRequestStateChange;
				this.xmlHttp.send(''+login);
				this.pokus = 0;
			} catch (e) {
				if (this.pokus > 5) {
					alert("Nelze se pripojit k serveru."/* + e.toString()*/);
				} else {
					this.pokus++;
					window.setTimeout("Fotogalerie.loadFoto()",1000);
				}
				
			}
		}
	},
	
	handleRequestStateChange : function () {
		if (Registrace.xmlHttp.readyState == 4) {
			if (Registrace.xmlHttp.status == 200) {
				try {
					Registrace.zpracujOdpoved();
				} catch(e) {
					alert("Chyba pri cteni odpovedi: " + e.toString());
				}
			} else {	
				alert("Nastal problem pri prijmani dat:\n" + Registrace.xmlHttp.statusText);
			}
		}
	},
	

	
	zpracujOdpoved : function () {
		try {
			var xmlResponse = this.xmlHttp.responseXML;
			if (!xmlResponse || !xmlResponse.documentElement) {
				throw("Invalid XML structure:\n" + this.xmlHttp.responseText);
			}
			var rootNodeName = xmlResponse.documentElement.nodeName;
			if (rootNodeName == "parserror") {
				throw("Invalid XML structure");
			}
			try {
				var xmlRoot = xmlResponse.documentElement;
				var status = xmlRoot.getElementsByTagName('status').item(0).firstChild.data;
				if (status!='ok') {
					var msg;
					try {
						msg = xmlRoot.getElementsByTagName('msg').item(0).firstChild.data
					} catch(e) {
						msg = '';
					}
					this.badLogin(msg);
				} else {
					this.goodLogin();
				}
			} catch (e) {
				if (status!='ok') {
					this.badLogin('Nemohu zjistit dostupnost přihlašovacího jména.')
				} else {
					this.goodLogin();
				}
	
			}
		} catch(e) {
			this.badLogin('Nemohu zjistit dostupnost přihlašovacího jména.')
		}
	},
	
	badLogin : function(zprava) {
		var src = '/template/classic/images/badLogin.png';
		if (!document.getElementById('login_sign_img')) {
			var imgNode = document.createElement('img');
			imgNode.src = src;
			imgNode.id = 'login_sign_img';
			document.getElementById('login').parentNode.appendChild(imgNode);
		} else {
			document.getElementById('login_sign_img').src = src;
		}
		document.getElementById('login_sign_img').title = document.getElementById('login_sign_img').alt = zprava;
		this.spravne = false;
	},
	
	goodLogin : function() {
		var src = '/template/classic/images/goodLogin.png';
		if (!document.getElementById('login_sign_img')) {
			var imgNode = document.createElement('img');
			imgNode.src = src;
			imgNode.id = 'login_sign_img';
			document.getElementById('login').parentNode.appendChild(imgNode);
		} else {
			document.getElementById('login_sign_img').src = src;
		}
		this.spravne = true;
	},
	
	checkForm : function(form) {
		if (document.getElementById('login').value == '' || !this.spravne) {
			alert('Musíte správně vyplnit přihlašovací jméno.');
			document.getElementById('login').focus();
			return false;
		}
		if (document.getElementById('email').value == '') {
			alert('Musíte správně vyplnit email.');
			document.getElementById('email').focus();
			return false;
		}
		if (document.getElementById('heslo').value == '') {
			alert('Musíte správně vyplnit heslo.');
			document.getElementById('heslo').focus();
			return false;
		}
		if (document.getElementById('heslocheck').value != document.getElementById('heslo').value) {
			alert('Potvrzovací heslo není stejné.');
			document.getElementById('heslocheck').focus();
			return false;
		}
		
		var rok = /^[12][90][0-9][0-9]$/;
		
		if (!rok.test(document.getElementById('narozen').value)) {
			alert('Chybně zadaný rok narození');
			document.getElementById('narozen').focus();
			return false;
		}
		
		if (!document.getElementById('check').checked) {
			alert('Musíte souhlasit s registračními podminkami.');
			document.getElementById('check').focus();
			return false;
		}
		return true;
	}
}
