function SendRequest (reqUrl, sendData)
{
	/*
	data = data?data:false;
	x = JSON.stringify(data);
	x = x.replace(/&quot;/g, '\\&quot;');
	x = x.replace(/&/g, '%26');
		//data: "jquery="+x,
	*/
	$.ajax({
		type: "POST",
		url: reqUrl,
		data: sendData,
		dataType: "json",
				
		success: function(data){
			if (!data)
				return;
			switch (data['status'])
			{
				case 'error':
					alert (data['error']);
					break;
				case 'ok':
					if (data['data']['messages'])
					{
						Messager.addMessages(data['data']['messages']['data']);
						delete (data['data']['messages']);
					}

					for (i in data['data'])
					{
						switch (data['data'][i]['action'])
						{
							case 'newData':
								$('#'+data['data'][i]['target']).html(data['data'][i]['data']);
								break;
								
							case 'js':
								eval(data['data'][i]['data']);
								break;
								
							case 'formError':
								PutErrors(data['data'][i]['target'], data['data'][i]['data'] );
								break;
							
							case 'formSubmit':
								document.forms[ data['data'][i]['target'] ].submit();
								break;
						}
					}
			}
		}
	});
}


function SendForm (reqUrl, formObj)
{
//	formObj = $(form);
	RemoveErrors (formObj);
	res_ar = {};
	
	tmp = $(formObj).serialize();
	send_data = new Object();
	send_data['jqueryForm'] = tmp;
	SendRequest (reqUrl, send_data);
	/*
	for (i=0; i<formObj.length; i++)
	{
		el = formObj[i];
		if (el.disabled)
			continue;
		if (el.name == '')
			continue;
		if (el.name == 'undefined')
			continue;
		if (typeof(el.name) == 'undefined')
			continue;

		if (el.type == 'file')
		{
			//res_ar[el.name] = el;
		}
		else if (el.type == 'textarea')
		{
			nn = el.name;
			if (typeof(CKEDITOR.instances[nn]) != 'undefined')
			{
				res_ar[el.name] = CKEDITOR.instances[nn].getData();
			}
			else
				res_ar[el.name] = el.value;
		}
		else if (el.type == 'checkbox')
		{
			if (el.checked == true)
			{
				if (el.name.indexOf("[]")!=-1)
				{
					new_name = el.name.replace ('[]', '');
					if (!res_ar[new_name])
						res_ar[new_name] = new Array ();
					res_ar[new_name][res_ar[new_name].length] = el.value;
				}
				else
					res_ar[el.name] = el.value;
			}
		}
		else if (el.type == 'radio')
		{
			if (el.checked == true)
			{
				res_ar[el.name] = el.value;
			}
		}
		else if (el.name.indexOf("[]")!=-1)
		{
			new_name = el.name.replace ('[]', '');
			if (el.type == 'select-multiple')
			{
				mn = el.options.length;
				mi = 0;
				for (mi; mi<mn; mi++)
				{
					if (el.options[mi].selected)
					{
						if (!res_ar[new_name])
							res_ar[new_name] = new Array ();
						res_ar[new_name][res_ar[new_name].length] = el.options[mi].value;
					}
				}
			}
			else
			{
				if (!res_ar[new_name])
					res_ar[new_name] = new Array ();
				res_ar[new_name][res_ar[new_name].length] = el.value;
			}
		}
		else
			res_ar[el.name] = el.value;
	}
	
	SendRequest (reqUrl, res_ar);
	return (false);
	*/
}

function PutErrors (formId, errors)
{
	errors_text = '';
	for (i in errors)
	{
		$("#"+formId+" #"+i+"Row").removeClass("undetermined").removeClass("correct").addClass("errors");
		//$("#"+formId+" ."+i+"Error").html(errors[i]);
		errors_text = errors_text+'<div>'+errors[i]+'</div>';
	}
	$("#"+formId+" .errorDiv").html(errors_text).show();
	$("#"+formId+" .undetermined").removeClass("undetermined").addClass("correct");
}

function RemoveErrors (formObj)
{
	formId = $(formObj).attr("id");
	$("#"+formId+" .errorDiv").html('').hide();
	$("#"+formId+" .error").html('');
	$("#"+formId+" .formRow").removeClass("correct").removeClass("errors").addClass("undetermined");
}
