function getXMLHttpRequest() {
	var req;
	try {
		req = new XMLHttpRequest(); /* e.g. Firefox */
	} catch(e) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
			} catch (e) {
				req = false;
			}
		}
	}
	return req;
}

function parseXML(text) {
	try {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(text);
	} catch(e) {
		try { //Firefox, Mozilla, Opera, etc. 
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(text,"text/xml");
		}
		catch(e) {alert(e.message)}
	}
	return xmlDoc;
}

function pl(t) {
	var r = t.offsetLeft;
	while (t && t.offsetParent.tagName!='BODY') {
		//alert(t.offsetParent.tagName);
		//alert(t.parentNode);
		t = t.offsetParent;
		r+= t.offsetLeft;
	}
	return r;
}

function pt(t) {
	var r = t.offsetTop;
	while (t.offsetParent.tagName!='BODY') {
		t = t.offsetParent;
		r+= t.offsetTop;
	}
	return r;
}

function dropdown(name) {
	var list = document.getElementById('lt_'+name);

	if (list.style.display != 'block') {
		list.style.display = 'block';
		var t = document.getElementById('t_'+name);
		list.style.width = t.offsetWidth;
		list.style.left = pl(t);
		list.style.top = pt(t) + t.offsetHeight;
	} else {
		list.style.display = 'none';
	}
}

function rollup(name) {
	var list = document.getElementById('lt_'+name);	
	list.style.display = 'none';
}

function change(name) {
	var list = document.getElementById('lt_'+name);	
	var v = document.getElementById('cv_'+name);
	v.value = list.options[list.selectedIndex].value;
	var t = document.getElementById('ct_'+name);
	if (t) { t.innerHTML = list.options[list.selectedIndex].innerHTML; }
	updatelists(name, v.value);
	rollup(name);
}

function updatelists(valname, val) {
	if (!(req = getXMLHttpRequest())) {
		alert('error1');
		return;
	}	
	req.onreadystatechange = function() {updateresponse();};
	req.open("GET", '/getlists.php?name='+valname+'&value='+val, true);
	req.send(null);	
}

function updateresponse() {
	if(req.readyState == 4 && req.status == 200) {
		var xmlDoc = parseXML(req.responseText)
		var lists = xmlDoc.getElementsByTagName("list");
		for(i=0; i<lists.length; ++i) {
			
			var listoptions = lists[i].getElementsByTagName('option');
			var name= lists[i].getAttribute('name');
			
			var ls = document.getElementById('lt_'+name);
			var ls_text = '';
			var val_text = '';
			var v = document.getElementById('cv_'+name);
			ls.innerHTML = '';
			for(o=0;o<listoptions.length;++o) {
//				ls_text = ls_text + '<option value="'+listoptions[o].getAttribute('value')+'">'+listoptions[o].firstChild.nodeValue+'</option>';
				if (listoptions[o].getAttribute('value') == v.value) { val_text = 1; }
				var el = document.createElement('option');
				el.setAttribute('value', listoptions[o].getAttribute('value'))
				el.appendChild(document.createTextNode(listoptions[o].firstChild.nodeValue));
				ls.appendChild(el);
			}
//			ls.innerHTML = ls_text;
//			ls.outerHTML = '<select onchange="change(\''+name+'\')" onblur="rollup(\''+name+'\')" id="lt_'+name+'" class="combotext" size="8">'+ls_text+'</select>';
			//alert(ls.innerHTML);
			var listvalue = lists[i].getElementsByTagName('value');
			if (!val_text) {
				document.getElementById('cv_'+name).value = 0;
				document.getElementById('ct_'+name).innerHTML = 'βρε';
			} else {
				ls.value = v.value;
			}
		}

	}
}
