var net = new Object();
net.READY_STATE_UNINIT=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;
net.HTTP_STATUS_SUCCESS=200;
net.ServerReq=function(url,parameters,callback,onerror)
{    
    this.url=url;
    this.req=null;
    this.callback=callback;
    this.onerror=(onerror) ? onerror : this.defaultError;
    this.SendRequest(url,parameters);
}
net.ServerReq.prototype=
{
    getAjax:function()
    {
        var ajax;
	    if (window.ActiveXObject)
	    {
		    ajax = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    else if (window.XMLHttpRequest)
	    {
		    ajax = new XMLHttpRequest();
	    }
	    return ajax;
    },
    SendRequest:function(url,parameters)
    {
        this.req = this.getAjax();
        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("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;
        if( req.readyState == net.READY_STATE_COMPLETE)
	    {	    
		    if(req.status == net.HTTP_STATUS_SUCCESS)
		    {
		        if ( this.callback != null )
		            this.callback.call(this);
		        else		    		    
		            this.processResponse.call(this);						    		
		    }
	    }
    },
    processResponse:function()
    {
        var req=this.req;
        var response = req.responseText;
        var divname = req.getResponseHeader( 'divHeader' );
        var div = document.getElementById( divname );
        if ( div )
        {
            div.innerHTML = response;
        }
    },
    defaultError:function()
    {
        
    }
}


function sendRequest ( url, parameters, callback )
{    
    var request = new net.ServerReq( url, parameters, callback );    
}
