var formGlob;
var formSubmit = false;
var formAjaxSubmit = false;
var fckGlob;

function escapeAjax(value)
{
	temp = new String(value);

	temp = temp.replace(/\?/g, "%3F");
	temp = temp.replace(/&/g, "%26");
	temp = temp.replace(/=/g, "%3D");
	temp = temp.replace(/#/g, "%23");
	temp = temp.replace(/%/g, "%25");

	return temp;
}

function GetFromFck(name) {
	return FCKeditorAPI.GetInstance(name).GetXHTML()
}

function checkForm(form,act,formSub,fck)
{
	if(formSub == true)
	{
		formSubmit = formSub;
	}

	formGlob=form;

	var pars = "";
	var url = 'walidacja,formularza,' + act + ".html";

	for(i=0; i<form.elements.length; i++)
	{
		 if(form.elements[i].name!="")
		 {
			if(form.elements[i].type == "checkbox")
			{
				if(form.elements[i].checked == true)
					value = "on";
				else
					value = "off";
			}
			else
				value = form.elements[i].value;

			if(form.elements[i].type == "radio")
			{
				if(form.elements[i].checked == true)
					value = form.elements[i].value;
				else
					value = "";
			}
			if(form.elements[i].type == "reset" || form.elements[i].type == "submit")
				value = "";

			if(value != "")
			{
				pars += form.elements[i].name + "=" + escapeAjax(value) + "&";
			}
		 }
	}

	if (fck) {
		var fck_val;

		fck_val = GetFromFck(fck);

		if (fck_val != "") {
			pars += fck + '=' + escapeAjax(fck_val) + '&';
		}

		fckGlob = fck;
	}

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: showResponse
		});
}

function showResponse(originalRequest)
{
	//put returned XML in the textarea
	
	var data = originalRequest.responseText.evalJSON();
	var errors =0;

	for(i=0; i<formGlob.elements.length; i++)
	{
		if(data[formGlob.elements[i].name] && MF(formGlob.elements[i].name + 'error'))
		{
			MF(formGlob.elements[i].name + 'error').innerHTML = data[formGlob.elements[i].name];
			errors++;
		}
		else if(MF(formGlob.elements[i].name + 'error'))
			MF(formGlob.elements[i].name + 'error').innerHTML = "";
	}

	if (fckGlob) {
		if(data[fckGlob] && MF(fckGlob + 'error'))
		{
			MF(fckGlob + 'error').innerHTML = data[fckGlob];
			errors++;
		}
		else if(MF(fckGlob + 'error'))
			MF(fckGlob + 'error').innerHTML = "";
	}

	if(errors == 0 && formSubmit == true)
	{
		var div, img, h2;

		div = new Element('div', {'class' : 'framePleaseWait'});
		img = new Element('img', {'src' : urlStatic + '/image/loader.gif', 'alt' : 'Trwa wysyłanie...', 'title' : 'Trwa wysyłanie...'});
		div.appendChild(img);
		h2 = new Element('h2', {});
		h2.innerHTML = 'Trwa wysyłanie...';
		div.appendChild(h2);
		document.body.appendChild(div);

		formGlob.submit();

		for(i=0; i<formGlob.elements.length; i++)
		{
			if (formGlob.elements[i].name != 'submit') {
				formGlob.elements[i].value = ''
			}
		}

	}
	else {
		formSubmit = false;
		formAjaxSubmit = false;
		alert('Wypełnij wszystkie wymagane pola w formularzu.')
	}
}