function getxmlhttp() {
	var http_request;
	try {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new XMLHttpRequest();
				http_request.overrideMimeType('text/xml');
			} catch (e) {}
		}
	}
	return http_request;
}

function ajaxsubmit(p,t,cid) {
	var http_request = getxmlhttp();
	if (!http_request) return true;
	
	disableformbuttons(p);
	
	http_request.onreadystatechange = function() { hndsubmit(http_request,cid); };
	
	var qry = generateformquery(p);
	
	var lmethod = 'GET';
	
	http_request.open(lmethod, '/ajaxpoll.php?type=' + t + '&' + (lmethod == 'GET' ? qry : ''), true);
	if (lmethod == 'POST') http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(lmethod == 'GET' ? null : qry);
	
	return false;
}

var lastsubmitbut = '';
var lastsubmitval = '';

function clicksubmit(b) {
	lastsubmitbut = b.name;
	lastsubmitval = b.value;
	return true;
}

function generateformquery(f) {
	var retstr = "";
	for (var i = 0; i < f.elements.length; i++) {
		if (f.elements[i].type.toLowerCase() == 'text' || f.elements[i].type.toLowerCase() == 'textarea' 
			|| f.elements[i].type.toLowerCase() == 'hidden') {
			retstr += f.elements[i].name + "=" + escape(f.elements[i].value) + "&";
		} else if (f.elements[i].type.toLowerCase() == 'submit') {
			if (f.elements[i].name == lastsubmitbut && f.elements[i].value == lastsubmitval) retstr += f.elements[i].name + "=" + escape(f.elements[i].value) + "&";
		} else if (f.elements[i].type.toLowerCase() == 'select') {
			retstr += f.elements[i].name + "=" + escape(f.elements[i].options[f.elements[i].selectedIndex]) + "&";
		} else if (f.elements[i].type.toLowerCase() == 'radio' || f.elements[i].type.toLowerCase() == 'checkbox') {
			if (f.elements[i].checked) retstr += f.elements[i].name + "=" + escape(f.elements[i].value) + "&";
		}
	}
	return retstr;
}

function clearchilds(p) {
	for(var i = p.childNodes.length - 1; i >= 0; i--) {
		p.removeChild(p.childNodes[i]);
	}
}

function hndsubmit(p,cid) {
	if (p.readyState == 4 && p.status == 200) {
		//~ var rxml = http_request.responseXML;
		//~ var ans = rxml.getElementsByTagName('ans');
		
		var canketa = document.getElementById(cid);
		canketa.innerHTML = p.responseText;
		return ;
		
		/*
		clearchilds(canketa);
		for(var i = 0; i < ans.length; i++) {
			var lid = ans.item(i).getAttribute('id');
			var s = document.getElementById("ans" + lid);
			
			if (!s) {
				var s = document.createElement("DIV");
				s.className = "ansstulb";
				s.id = "ans" + lid;
				canketa.appendChild(s);
				canketa.appendChild(document.createTextNode(ans.item(i).firstChild.nodeValue));
			}
			s.style.width = parseInt(ans.item(i).getAttribute('votes')) * 10;
		}
		*/
	}
}

function disableformbuttons(p) {
	for(i=0; i < p.elements.length; i++) {
		if (p.elements[i].type.toLowerCase() == 'submit') {
			p.elements[i].disabled = true;
		}
	}
}
