var djs_swgAJAX_needActiveX = 0;

if (typeof (self.XMLHttpRequest) == 'function') { djs_swgAJAX = 1; }
else if (typeof (self.ActiveXObject) == 'function')
{
	djs_swgAJAX = 1;
	djs_swgAJAX_needActiveX = 1;
}

function djs_swgAJAX_init ()
{
	var f_return;

	if (djs_swgAJAX)
	{
		if (djs_swgAJAX_needActiveX)
		{
			try
			{
				f_return = new self.ActiveXObject ("MSXML2.XMLHTTP.6.0");
			} catch (e) {}

			// Now let's try older versions ... msxml5.dll
			if (typeof (f_return) == 'undefined')
			{
				try
				{
					f_return = new self.ActiveXObject ("MSXML2.XMLHTTP.5.0");
				} catch (e) {}
			}

			// Now let's try older versions ... msxml4.dll
			if (typeof (f_return) == 'undefined')
			{
				try
				{
					f_return = new self.ActiveXObject ("MSXML2.XMLHTTP.4.0");
				} catch (e) {}
			}

			// Now let's try older versions ... msxml3.dll
			if (typeof (f_return) == 'undefined')
			{
				try
				{
					f_return = new self.ActiveXObject ("MSXML2.XMLHTTP.3.0");
				} catch (e) {}
			}

			// Our last chance is the depreciated one ...
			if (typeof (f_return) == 'undefined')
			{
				try
				{
					f_return = new self.ActiveXObject ("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		else { f_return = new self.XMLHttpRequest (); }
	}

	return f_return;
}

djs_var['core_swgAJAX_loading_counter'] = 0;
djs_var['core_swgAJAX_loading_counter_processes'] = new Array ();

function djs_swgAJAX_loading_event (f_object,f_event,f_timeout)
{
	if ((djs_swgAJAX)&&(djs_swgDOM))
	{
	// Only continue if the basic test had been completed successfully
	if ((djs_var['core_swgAJAX_loading_position'] != '')&&(djs_swgDOM_elements_editable))
	{
		if (typeof (djs_var['core_swgAJAX_loading_counter_processes'][f_object]) == 'undefined') { djs_var['core_swgAJAX_loading_counter_processes'][f_object] = 0; }

		if (f_event == 'view')
		{
			djs_var['core_swgAJAX_loading_counter_processes'][f_object]++;
			djs_var['core_swgAJAX_loading_counter']++;
			if (f_timeout > 0) { self.setTimeout ('djs_swgAJAX_loading_event (\'' + f_object + '\',\'timeout\',0)',f_timeout); }
		}
		else
		{
			if (djs_var['core_swgAJAX_loading_counter_processes'][f_object] > 0) { djs_var['core_swgAJAX_loading_counter_processes'][f_object]--; }
			if (djs_var['core_swgAJAX_loading_counter'] > 0) { djs_var['core_swgAJAX_loading_counter']--; }
		}

		if (djs_var['core_swgAJAX_loading_counter'] == 1) { djs_swgAJAX_loading_view (); }
		else if (f_event == 'hide') { self.setTimeout ('djs_swgAJAX_loading_hide ()',2000); }
		else { djs_swgAJAX_loading_hide (); }
	}
	}
}

function djs_swgAJAX_loading_hide ()
{
	if ((djs_swgAJAX)&&(djs_swgDOM))
	{
	// Only continue if the basic test had been completed successfully
	if ((djs_var['core_swgAJAX_loading_position'] != '')&&(djs_swgDOM_elements_editable)) { self.document.getElementById('swgAJAXloading').style.display = 'none'; }
	}
}

function djs_swgAJAX_loading_view ()
{
	if ((djs_swgAJAX)&&(djs_swgDOM))
	{
	// Only continue if the basic test had been completed successfully
	if ((djs_var['core_swgAJAX_loading_position'] != '')&&(djs_swgDOM_elements_editable))
	{
		// Let us find out the window width. First we try the JavaScript standard element.
		if (typeof (self.innerWidth) == 'number') { var f_left = self.innerWidth; }
		// Great ... looks like we have some non standard conform browser :(
		else if (typeof (self.document.documentElement.clientWidth) == 'number') { var f_left = self.document.documentElement.clientWidth; }
		// Still nothing? Ok, we will select the screen size
		else { var f_left = screen.availWidth; }

		// Well ... there are two elements containing the window width - maybe it is the other one?
		if ((!f_left)&&(typeof (self.document.body.clientWidth) == 'number'))
		{
			if (self.document.body.clientWidth) { f_left = self.document.body.clientWidth; }
		}

		if (djs_var['core_swgAJAX_loading_position'] == 'center') { f_left = Math.ceil ((f_left - 250) / 2); }
		else if ((f_left > 250)&&(djs_var['core_swgAJAX_loading_position'] == 'left'))
		{
			if (Math.ceil (f_left * 0.05) < f_left) { f_left = Math.ceil (f_left * 0.05); }
			else { f_left -= 250; }
		}
		else if ((f_left > 250)&&(djs_var['core_swgAJAX_loading_position'] == 'right'))
		{
			if (Math.ceil (f_left - (f_left * 0.05) - 250) > 0) { f_left = Math.ceil (f_left - (f_left * 0.05) - 250); }
			else { f_left -= 250; }
		}
		else { f_left = 0; }

		self.document.getElementById('swgAJAXloading').style.left = f_left + 'px';
		self.document.getElementById('swgAJAXloading').style.display = 'inline';
	}
	}
}