function min_url_encode(url)
{
	/*
	 url = url.replace(/&/g,'$26');
	 */
	 url = url.replace(/&/g,'@amp;');
	 url = url.replace(/\//g,'@slash;');
	 url = url.replace(/#/g,'@hash;');
	 url = url.replace(/%/g,'@perc;');
	 return url;
}

function filter_urlencode(str) {
str = encodeURIComponent(str);
str = str.replace('+', '%2B');
str = str.replace('%20', '+');
str = str.replace('*', '%2A');
str = str.replace('/', '%2F');
str = str.replace('@', '%40');
str = str.replace(' ', '+');
return str;
}


function hr_filesize(sz)
{
	if (sz < 1024) { return sz+" bytes"; };
	sz = Math.round(sz/1024,1);
	if (sz < 1024) { return sz+" Kb"; };
	sz = Math.round(sz/1024,1);
	return sz+" Mb";
}


function get_errors(data)
{
	var mess = '';
	if (data.errors && data.errors.length)
	{
		for (var i=0; i<data.errors.length; i++)
		{
			mess += data.errors[i]+'\n';
		}
	}
	return mess ;
}

function get_warnings(data)
{
	var mess = '';
	if (data.warnings && data.warnings.length)
	{
		for (var i=0; i<data.warnings.length; i++)
		{
			mess += data.warnings[i]+'\n';
		}
	}
	return mess ;
}


function print_errors(data)
{
	var mess = '';
	if (typeof(data)=='object')
	{
		mess = get_errors(data);
	}
	else if (typeof(data)=='string')
	{
		mess = data
	};
	if (mess != '')
	{
		alert(mess);
	}
}



function do_server_command(url,oncomplete)
{
	dd = $('<div></div>');
	dd.load(url,function(){
		answer = dd.html();
		try{
			eval ("data = "+answer);
			if (data)
			{
				if (data.status && data.status=='ok')
				{
					mess = get_warnings(data);
					if (mess != '') { alert(mess); };
					if (typeof(oncomplete)=="function")
					{
						oncomplete(data);
					}
				}
				else
				{
					print_errors(data);
				}
			}
			else
			{
				
			}
		} catch(e){
			alert(answer);
		}
	})
}

