function ajax_remote_function(url,keys,checkbox,update,trigger,loader)
{
	var data = new Array();

	for (var i in keys)
	{
		if(i == 0) { field = keys[i]; }  // if update div is an error than first element equals field to update
		if(checkbox) { data[i] = keys[i]+"="+($('#'+keys[i]).attr("checked")?1:''); }
		else 
		{ 
			if(keys[i].match(/\[\]/))
			{
				var j = 0;
				var string = new Array();
				$("input[name='"+keys[i]+"']").each( 
				    function() 
				    { 
				        if (this.value) 
				        { 
				            string[j++] = keys[i] + "=" + escape_plus(this.value); 
				        }
				    }); 
				data[i] = string.join("&");
			}
			else
			{
				data[i] = keys[i]+"="+escape_plus($('#'+keys[i]).val()); 
			}
		}
	}
	
	$.ajax({ type: "POST",
			url: url,
			data: data.join("&"),
			beforeSend: function() { if(trigger) { $('#'+trigger).hide(); $('#'+loader).show(); } },
			complete: function() { if(trigger) { $('#'+loader).hide(); $('#'+trigger).show(); } },
			success: 
				function(html){
					if(update == 'error') { field_id = '#'+update+'_'+field; }
					else { field_id = '#'+update; }

					if(!html)
					{
						$(field_id).hide();
						$(field_id).text('');
					}
					else
					{
						$(field_id).show();
						$(field_id).text(html);
					}	
				} 
	});
}

function escape_plus(string)
{
	return string.replace("+", "%2B");
}

