// JavaScript Document
var net=new Object();

net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;

net.ContentLoader=function(url,parameters, onload,onerror){
	this.url=url;
	this.parameters=parameters;
	this.req=null;
	this.onload=onload;
	this.onerror=(onerror) ? onerror : this.defaultError;
	this.loadXMLDoc(url, parameters);
}

net.ContentLoader.prototype={
		loadXMLDoc:function(url, parameters){
			if (window.XMLHttpRequest){
				this.req=new XMLHttpRequest();
			}
			else if (window.ActiveXObject){
				this.req=new ActiveXObject("Microsoft.XMLHTTP");
			}
			if (this.req){
				try{
					var loader=this;
					this.req.onreadystatechange=function(){loader.onReadyState.call(loader);}
					this.req.open('POST',url,true);
					this.req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					this.req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
					this.req.setRequestHeader("Accept-Charset", "utf-8"); 
					this.req.setRequestHeader("Content-length", parameters.length);
					this.req.setRequestHeader("Connection", "close");
					this.req.send(parameters);
				}
				catch (err){
					this.onerror.call(this);
				}
			}
	},
	
	onReadyState:function(){
		var req=this.req;
		var ready=req.readyState;
		if (ready==net.READY_STATE_COMPLETE){
			var httpStatus=req.status;
			if (httpStatus==200 || httpStatus==0){
				this.onload.call(this);
			}
			else{
				this.onerror.call(this);
			}
		}
	},
	
	defaultError:function(){
		alert("error fetching data!"
		+"\n\nreadyState:"+this.req.readyState
		+"\nstatus: "+this.req.status
		+"\nheaders: "+this.req.getAllResponseHeaders());
	}
}

