	/* namespacing object used for all network functions and properties */
	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;


	/*--- content loader object for cross-browser requests ---*/
	net.ContentLoader=function(url,onload,onerror,method,params,contentType) {
	  this.req=null;
	  this.onload=onload;
	  this.onerror=(onerror) ? onerror : this.defaultError;
	  this.loadDoc(url,method,params,contentType);
	}

	net.ContentLoader.prototype.loadDoc = function(url,method,params,contentType) {
		if (!method){
	    	method="GET";
	 	}
		
		if (!contentType && method=="POST") {
		  contentType='application/x-www-form-urlencoded';
		}
	  	
	  	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(method,url,true);
      			
      			if (contentType){
        			this.req.setRequestHeader('Content-Type', contentType);
      			}
      			
      			this.req.send(params);
    		} catch (err){
     	 		this.onerror.call(this);
    		}
  		}
	}

	net.ContentLoader.prototype.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);
			}
		}
	}

	net.ContentLoader.prototype.defaultError = function() {
	 }
	 
	function trimString(inString) {
		inString = inString.replace( /^\s+/g, "" );// strip leading
		return inString.replace( /\s+$/g, "" );// strip trailing
	}
