
function get(url, callback){
	
	// Gecko
	if (window.XMLHttpRequest){
	  var xmlhttp=new XMLHttpRequest();
	  xmlhttp.onreadystatechange=function(){stateChange(xmlhttp, callback)};
	  xmlhttp.open("GET",url,true);
	  xmlhttp.send(null);
	}
	// IE
	else if (window.ActiveXObject){
	  var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  if (xmlhttp)
	  {
	    xmlhttp.onreadystatechange=function(){stateChange(xmlhttp, callback)};
	    xmlhttp.open("GET",url,true);
	    xmlhttp.send();
	  }
	}

}

function stateChange(xmlhttp, callback){
	// requestin alussa tyrkätään kursoriksi tiimalasi
	if (xmlhttp.readyState==1){
		document.body.style.cursor='wait';
	}
	// Jos tavaraa ei enää tule
	if (xmlhttp.readyState==4){
		document.body.style.cursor='default';
		// Jos vastaus OK... request suoritetaan asynkroonisesti, eli vastausta saa käsitellä vain täältä
		if (xmlhttp.status==200){
			callback(xmlhttp.responseText);
		}
		else{
			window.status = "Virhe tiedonsiirrossa. " + xmlhttp.status;
		}
	}
}

