var http_request = false;

function ml_send(id, form, url) {
	if (!document.getElementById || !(http_request == false)) return false;
	var test = 0;
	try {
		test = document.getElementById("form-" + id).getElementsByTagName('fieldset')[0].firstChild.innerHTML.length;
		var button = document.getElementById("submit-" + id);
	} catch (e) {
		return false;
	}
	if (!(test>0)) return false;
	http_request = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
@end @*/

	if (!http_request && typeof XMLHttpRequest != 'undefined') {
  		http_request = new XMLHttpRequest();
	}
	if (!http_request) return false;
	
	http_request.onreadystatechange = ml_update;
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	var data = values(form);
	http_request.send("ajax[" + id + "]=1&" + data);
	button.className = "sendsubmit";
	button.value = "čekejte prosím...";
	button.disabled = true;
	return true;
}

function ml_update() {

	if (http_request.readyState == 4 && http_request.status == 200) {
		var response = http_request.responseXML
		if (!response) {
			alert("Obnovte prosím tuto stránku.");
		} else {
			var co = response.getElementsByTagName('co')[0];
		
			var id = co.getAttribute('id');
			var zobraz = co.getElementsByTagName('zobraz'); 
			var js = co.getElementsByTagName('eval'); 
		
			if (js[0]) {		
				eval(js[0].firstChild.nodeValue);		
			}
			if (!zobraz[0]) {
				sh('form-' + id);
			} else {
				var znovu = co.getAttribute('znovu');
				var messages = co.getElementsByTagName('messages');
				
				var polozky = zobraz[0].getElementsByTagName('polozka');
				var input;
				var messages;
				var hodnota;
				for (i = 0; i < polozky.length; i++) {
					polozka = polozky[i];
					radek = document.getElementById(polozka.getAttribute('id'));
					messages = polozka.getElementsByTagName('messages');
					if (messages[0]) {
						radek.getElementsByTagName('div')[1].innerHTML = zpet(messages[0].firstChild);
					} else {
						radek.getElementsByTagName('div')[1].innerHTML = "";
					}
					radek.className = polozka.getAttribute('class');
					var menise = polozka.getAttribute('label');
					if (menise) {
						radek.getElementsByTagName('label')[0].innerHTML = menise;
					}
					if (znovu>0) {
						switch (polozka.getAttribute('type')) {
							case 'select':
							break;
							case 'textarea':
							hodnota = polozka.getElementsByTagName('hodnota')[0].firstChild;
							radek.getElementsByTagName('textarea')[0].value = hodnota ? hodnota.nodeValue : "";			
							break;	
							default:
							hodnota = polozka.getElementsByTagName('hodnota')[0].firstChild;
							radek.getElementsByTagName('input')[0].value = hodnota ? hodnota.nodeValue : "";
						}
					}
				}
			}
			document.getElementById("info-" + id).innerHTML = zpet(co.getElementsByTagName('info')[0].firstChild);
			document.getElementById("info-" + id).className = co.getElementsByTagName('info')[0].getAttribute('class');
			var button = document.getElementById("submit-" + id);
			button.className = "submit";
			button.value = co.getElementsByTagName('tlacitko')[0].firstChild.nodeValue;
			button.disabled = false;
			http_request = false;
		}
	} else {		
	}

}

function zpet(tn) {
	if (tn) {
		var html = tn.nodeValue.replace(/LLL/g, "<");
		html = html.replace(/PPP/g, ">");
		return html;
	} else return "";
}

function values(form) {

	var send = '';
	var input;
	var prevInputName = '';

	for (i = 1; i < form.elements.length; i++) {
		input = form.elements[i];
		switch (input.type) {
			case 'text':
			case 'textarea':
			case 'password':
			case 'hidden':
			send += input.name + '=' + encodeURIComponent(input.value) + '&'
			break;
			case 'select-one':
			send += input.name + '=' + encodeURIComponent(input.options[input.selectedIndex].value) + '&'
			case 'radio':
			if (input.checked) {
				send += input.name + '=' + encodeURIComponent(input.value) + '&'
			}
			break;
			case 'checkbox':
			if (input.checked) {
				if (input.name == prevInputName) {
					if (send.lastIndexOf('&') == send.length-1) {
						send = send.substr(0, send.length -1);
					}
					send += ',' + encodeURIComponent(input.value);
				}
				else {
					send += input.name + '=' + encodeURIComponent(input.value);
				}
				send += '&';
				prevInputName = input.name;
			}
			break;

		}
	}
	send = send.substr(0, send.length -1);
	return send;
}

function sh(what)
{
	if (document.layers)
	{
		current = (document.layers[what].display == 'none') ? 'block' : 'none';
		document.layers[what].display = current;
	}
	else if (document.all)
	{
		current = (document.all[what].style.display == 'none') ? 'block' : 'none';
		document.all[what].style.display = current;
	}
	else if (document.getElementById)
	{
		current = (document.getElementById(what).style.display == 'none') ? 'block' : 'none';
		document.getElementById(what).style.display = current;
	}
	return false;
}