function ajax_dataGetter()
{
	this.isIframe = false
	
	var objRef
	try{
		objRef = new XMLHttpRequest()
	}
	catch(e){
		try{
			objRef = new ActiveXObject("Msxml2.XMLHTTP.4.0")
		}
		catch(e){
			try{
				objRef = new ActiveXObject("Msxml2.XMLHTTP")
			}
			catch(e){
				try{
					objRef = new ActiveXObject("microsoft.XMLHTTP")
				}
				catch(e){
					try{
						obj 				= document.body.appendChild(document.createElement("IFRAME"))
						obj.width 			= 0
						obj.height 			= 0
						obj.style.width 	= 0
						obj.style.height 	= 0
						obj.style.display 	= "none"
						
						this.isIframe		= true
					}
					catch(e){
						objRef = null
					}
				}
			}
		}
	}
	if(!objRef)
		alert("Get Data error: Object was NOT created")
	
	this.getData = function(hrf,callback,transferData)
	{	
		if(hrf.indexOf("?") == -1)
			hrf += "?"
		else
			hrf += "&"
			
		hrf += "r=" + Math.random()
			
		if(this.isIframe)
		{
			objRef.src = hrf + "&callback=" + callback
		}
		else
		{
			objRef.open( "GET", hrf, true)
			objRef.onreadystatechange = function() 
			{
				if(objRef.readyState == 4)
				{			
					if(objRef.status == 200)
					{	
						window[callback](decodeURI(objRef.responseText),transferData)
					}
					else
					{
						alert("Get Data error: " + objRef.statusText + "\nStatus: " + objRef.status + "\nError:\n" + objRef.responseText)
					}
				}
			}
			objRef.send(null)
		}
	}
}
//var dataGetter = new ajax_dataGetter()