﻿<!--
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;

defaultError = function(){
	alert("error fetching data!"
	+"\n\nreadyState:"+this.httpRequest.readyState
	+"\nstatus: "+this.httpRequest.status
	+"\nheaders: "+this.httpRequest.getAllResponseHeaders());
}

ContentLoader=function(url,method,onload,onerror){
	this.url=url;
	this.method=method;
	this.httpRequest=null;
	this.defaultError=defaultError;
	this.onload=onload;
	this.onerror=(onerror) ? onerror : this.defaultError;
	this.result=null;
	
}
ContentLoader.prototype.getResult=function(){
	if(this.result != null) return this.result;
}
ContentLoader.prototype.loadXMLDoc= function(){
	if (window.XMLHttpRequest) {   //для Mozila, Opera
		this.httpRequest = new XMLHttpRequest();
	}
	else if  (window.ActiveXObject) {//IE
		this.httpRequest = new ActiveXObject("Msxml2.XMLHTTP.4.0");
		if (!this.httpRequest){
			this.httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else alert("Ну незнаю, чего ты хочешь?");
	if (this.httpRequest) {
	try{
		var loader=this;
		this.httpRequest.onreadystatechange=function(){loader.onReadyState.call(loader);}
		this.httpRequest.open(this.method, this.url, true);
		//this.httpRequest.overrideMimeType('text/xml');
		this.httpRequest.send(null);
	}catch (err){
		this.onerror.call(this) ;
	}
	}
}
ContentLoader.prototype.onReadyState = function(){
	
	var httpRequest=this.httpRequest;
	var ready=httpRequest.readyState;
	if (ready==READY_STATE_COMPLETE){
		var httpStatus=httpRequest.status;
		if (httpStatus==200 || httpStatus==0){
			this.result = this.onload.call(this);
		}
		else{
			this.onerror.call(this);
		}
	}
}
//-->

