function submit_form(idname, formobj, forfields)
{
	document.getElementById(idname).style.display = 'none';
	var objs;
	
	if(forfields)
	{
		objs = formobj.getElementsByTagName('b');
		for(var i = 0; i < objs.length; i++)
		{
			if(objs[i].className == 'errorfield')
			{
				objs[i].style.display = 'none';
			}
		}
		objs = formobj.getElementsByTagName('input');
		for(i = 0; i < objs.length; i++)
		{
			objs[i].style.borderColor = '';
		}
		objs = formobj.getElementsByTagName('select');
		for(i = 0; i < objs.length; i++)
		{
			objs[i].style.borderColor = '';
		}
		objs = formobj.getElementsByTagName('textarea');
		for(i = 0; i < objs.length; i++)
		{
			objs[i].style.borderColor = '';
		}
	}
	else
	{
		document.getElementById(idname).innerHTML = '';
	}
	
	http_request = false;
	
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/html');
		}
	}
	else if (window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	
	if (!http_request)
	{
		alert('Nie mogę stworzyć instancji obiektu XMLHTTP');
		return false;
	}
	
	http_request.onreadystatechange = function()
	{
		if (http_request.readyState == 4)
		{
			if (http_request.status == 200)
			{
				if(http_request.getResponseHeader("X-Withouterror") != 'Yes')
				{
					document.getElementById(idname).style.display = 'block';
					document.getElementById(idname).innerHTML = http_request.responseText;
				}
				if(http_request.getResponseHeader("X-Form-Success") == 'Yes')
				{
					formobj.reset();
				}
				else if(http_request.getResponseHeader("X-Form-Success") == 'Noforfields')
				{
					document.getElementById(idname).style.display = 'block';
					var expl = http_request.responseText.split('@@@');
					var expl2, expl3, k;
					for(var j = 0; j < expl.length; j++)
					{
						expl2 = expl[j].split('|||');
						document.getElementById('errorfield_'+expl2[1]).innerHTML = expl2[0];
						document.getElementById('errorfield_'+expl2[1]).style.display = 'block';
						expl3 = expl2[2].split('|');
						for(k = 0; k < expl3.length; k++)
						{
							if(expl3[k] != ' ' && expl3[k] != '') eval('formobj.'+expl3[k]+'.style.borderColor = "#cc3333";');
						}
					}
				}
				else if(http_request.getResponseHeader("X-Form-Success") == 'Yesforpm')
				{
					objs = formobj.getElementsByTagName('table')[0].getElementsByTagName('tr');
					var max = objs.length;
					var i = 0;
					for(var o = 0; o < max; o++)
					{
						if(objs[i].getElementsByTagName('th')[0] && objs[i].getElementsByTagName('th')[0].getElementsByTagName('input')[0] && objs[i].getElementsByTagName('th')[0].getElementsByTagName('input')[0].checked)
						{
							if(document.getElementById('message_view').getElementsByTagName('div')[0].innerHTML == objs[i].getElementsByTagName('th')[0].getElementsByTagName('input')[0].value)
							{
								document.getElementById('message_view').style.display = 'none';
							}
							objs[i].parentNode.removeChild(objs[i]);
						}
						else
						{
							i++;
						}
					}
					objs = formobj.getElementsByTagName('table')[0].getElementsByTagName('tr');
					var j = 0;
					for(i = 0; i < objs.length; i++)
					{
						if(objs[i].getElementsByTagName('th')[0] && objs[i].getElementsByTagName('th')[0].getElementsByTagName('input')[0])
						{
							j++;
						}
					}
					if(j == 0)
					{
						formobj.parentNode.removeChild(formobj);
						document.getElementById('nomessagesbox').style.display = 'block';
					}
				}
				else if(http_request.getResponseHeader("X-Form-Success") == 'Yesforfields')
				{
					window.location = http_request.getResponseHeader("X-Redirect");
				}
				
				if(http_request.getResponseHeader("X-Redirection"))
				{
					window.location = http_request.getResponseHeader("X-Redirection");
				}
				
				if(http_request.getResponseHeader("X-Refresh-Credits") == 'Yes')
				{
					refresh_creditcounter();
				}
			}
			else
			{
				alert('Error occured. Please try again.');
			}
		}
	};
	
	var str = '';
	var objs = formobj.getElementsByTagName('input');
	var max = objs.length;
	
	for(var i = 0; i < max; i++)
	{
		if(((objs[i].type == 'radio' || objs[i].type == 'checkbox') && objs[i].checked) || objs[i].type == 'text' || objs[i].type == 'password' || objs[i].type == 'hidden')
		{
			if(i > 0) str += '&';
			str += objs[i].name + '=' + encodeURIComponent(objs[i].value);
		}
	}
	
	
	objs = formobj.getElementsByTagName('textarea');
	max = objs.length;
	
	for(var j = 0; j < max; j++)
	{
		if(i > 0) str += '&';
		str += objs[j].name + '=' + encodeURIComponent(objs[j].value);
	}
	
	
	objs = formobj.getElementsByTagName('select');
	max = objs.length;
	var objs2, max2, k;
	
	for(j = 0; j < max; j++)
	{
		objs2 = objs[j].options;
		max2 = objs2.length;
		
		for(k = 0; k < max2; k++)
		{
			if(objs2[k].selected)
			{
				if(i > 0) str += '&';
				str += objs[j].name + '=' + encodeURIComponent(objs2[k].value);
				break;
			}
		}
	}
	
	http_request.open('POST', http_path+'sendform.html', true);
	http_request.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');
	http_request.setRequestHeader("Content-Length", str.length);
	http_request.send(str);
	return true;
}








function do_ajax(url, asxml, funct)
{
	http_request = false;
	
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/html');
		}
	}
	else if (window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	
	if (!http_request)
	{
		alert('Nie mogę stworzyć instancji obiektu XMLHTTP');
		return false;
	}
	
	http_request.onreadystatechange = function()
	{
		if (http_request.readyState == 4)
		{
			if (http_request.status == 200)
			{
				if(funct != null)
				{
					funct();
				}
			}
		}
	}
	
	if(asxml) http_request.overrideMimeType('text/xml');
	
	http_request.open('GET', url, true);
	http_request.send(null);
	
	return true;
}