var timerID = null;

function ShowProcess(points) {
	if (typeof(points) == 'undefined' || !points) points = 'points';
	var s = $(points).innerHTML;
	if (s.length >= 10) $(points).innerHTML = '...';
	else $(points).innerHTML += '.';
}

function GetSubscription(url, element, loading, points) {
	if (typeof element == 'undefined') element = 'subscription';
	if (typeof loading == 'undefined') loading = 'loading';	
	if (typeof points == 'undefined') points = 'points';

	url += '&element='+element+'&loading='+loading+'&points='+points;

	new Ajax.Request(url,
	{
		method:'get',
		onCreate: new Function("",""+
			"$('"+element+"').style.display = 'none';"+
			"$('"+loading+"').style.display = '';"+
			"timerID = setInterval(\"ShowProcess('"+points+"')\", 500);"
		),
		onSuccess: new Function("transport",""+
			"$('"+loading+"').style.display = 'none';"+
	  		"$('"+element+"').innerHTML = transport.responseText;"+
	  		"$('"+element+"').style.display = '';"
		),
		onComplete: new Function("transport",""+
			"if (timerID != null) clearInterval(timerID);"+
			"timerID = null;"+
			"$('"+loading+"').style.display = 'none';"
		),
		onException: new Function("request, ex",""+
			"alert('"+loading+"'+request+ex);"+
			"if (timerID != null) clearInterval(timerID);"+
			"timerID = null;"+
			"$('"+loading+"').style.display = 'none';"
		)
	});
}
