<DOCTYPE html>
<html>
	<head>
		<title>demo2.5</title>
		<meta charset="utf-8"/>
	</head>
	<body οnlοad="process()">
		<div id="myDivElement"/>
	</body>
	<script>
		var xmlHttp=createXmlHttpRequestObject();
		function createXmlHttpRequestObject(){
			var xmlHttp;
			try{
				xmlHttp=new XMLHttpRequest();
			}catch(e){
				var xmlHttpVersions=new Array(
				"MSXML2.XMLHTTP.6.0",
				"MSXML2.XMLHTTP.5.0",
				"MSXML2.XMLHTTP.4.0",
				"MSXML2.XMLHTTP.3.0",
				"MSXML2.XMLHTTP",
				"Microsoft.XMLHTTP");
				
				for(var i=0;i<xmlHttpVersions.length;i++){
					try{
						xmlHttp=new ActiveXObject(xmlHttpVersions[i]);
					}catch(e){
						
						}
					
					}
				}
				
				if(xmlHttp){
					return xmlHttp;
					}else{
						alert('Error create the xmlHttpRequest object!');
						}
			}
			
		function process(){
			if(xmlHttp){
				try{
					xmlHttp.open("GET","hello.txt",true);
					xmlHttp.onreadystatechange=handleRequestStateChange;
					xmlHttp.send(null);
				}catch(e){
					alert("Can't connect to server:\n"+e.toString());
					}
				}
			}
			
		function handleRequestStateChange(){
			myDiv=document.getElementById("myDivElement");
			if(xmlHttp.readyState==1){
				myDiv.innerHTML+="Request status:1(loading)<br/>";
				}else if(xmlHttp.readyState==2){
					myDiv.innerHTML+="Request status:2(loaded)<br/>";
					}else if(xmlHttp.readyState==3){
						myDiv.innerHTML+="Request status:3(interractive)<br/>";
						}else if(xmlHttp.readyState==4){
							if(xmlHttp.status==200){
								try{
									response=xmlHttp.responseText;
									myDiv.innerHTML+="Request status:4(complete).Server said:<br/>";
									myDiv.innerHTML+=response;
								}catch(e){
									alert("Error reading the response:"+e.toString());
									
								}
							}else{
								alert("There was a problem retrieving the data:\n"+xmlHttp.statusText);
								}
					}
			}
	</script>
</html>