		
	/* Generic component to initilise Ajax for requests */
	
	function createAjaxObj()
	{
		var httprequest = false;
		try 
		{
		  httprequest = new XMLHttpRequest();
		} catch (trymicrosoft) {
		  try 
		  {
		    httprequest = new ActiveXObject("Msxml2.XMLHTTP");
		  } catch (othermicrosoft) {
		    try 
		    {
		      httprequest = new ActiveXObject("Microsoft.XMLHTTP");
		    } catch (failed) {
		      httprequest = false;
		    }
		  }
		}
		return httprequest;
	}
	
	var ajaxpack=new Object();
	
	ajaxpack.basedomain="http://"+window.location.hostname;
	ajaxpack.ajaxobj=createAjaxObj();
	ajaxpack.filetype="txt";
	
	ajaxpack.getAjaxRequest=function(url, parameters, callbackfunc, filetype)
	{
		ajaxpack.ajaxobj=createAjaxObj(); //recreate ajax object to defeat cache problem in IE
		var parameters=parameters+"&ajaxcachebust="+new Date().getTime();

		if (this.ajaxobj)
		{
			this.filetype=filetype;
			this.ajaxobj.onreadystatechange=callbackfunc;
			this.ajaxobj.open('GET', url+"?"+parameters, true);
			this.ajaxobj.send(null);
		}
	}
	
	ajaxpack.postAjaxRequest=function(url, parameters, callbackfunc, filetype)
	{
		ajaxpack.ajaxobj=createAjaxObj(); //recreate ajax object to defeat cache problem in IE
		if (this.ajaxobj)
		{
			this.filetype=filetype;
			this.ajaxobj.onreadystatechange = callbackfunc;
			this.ajaxobj.open('POST', url, true);
			this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			this.ajaxobj.setRequestHeader("Content-length", parameters.length);
			this.ajaxobj.setRequestHeader("Connection", "close");
			this.ajaxobj.send(parameters);
		}
	}