	var http_request = false;
	
	function init_request(){
		http_request = false;
		if(window.XMLHttpRequest) { //Mozilla 
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {//MiME
				http_request.overrideMimeType("text/xml");
			}
		}
		else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		if (!http_request) { // 
			window.alert("XMLHttpRequest.");
			return false;
		}	
	}
	function get_request( url ){
		init_request();
		http_request.onreadystatechange = newprocessRequest;
		http_request.open("GET", url, true);
		http_request.send(null);
	}
	
	function get_request1( url, type ){
		init_request();
		if( type == "text" )
				http_request.onreadystatechange = processRequest;
		else if( type == "xml" )
			http_request.onreadystatechange = processXmlRequest;
		http_request.open("GET", url, true);
	//	http_request.overrideMimeType('text/xml');
		http_request.send(null);
	}
	
	//the user can custom the function
	function get_request2( url, myProcess ){
		init_request();		
		http_request.onreadystatechange = myProcess;
		http_request.open("GET", url, true);
		http_request.send(null);
	}

	
	function post_request3( url, sinfo ) {
		
		init_request();
		http_request.onreadystatechange = processRequest;

		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Length",sinfo.length);	
		http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http_request.send(sinfo);
	}
	
	function get_request4( url ){
		init_request();
		if (http_request.readyState == 4) {
            if (http_request.status == 200) { 
           		http_request.open("GET", url, true);
				http_request.send(null);
			} else { 
                alert("connect the server wrong!");
            }
        }
	}
	
	
	
	
	function post_request( url, sinfo, type ) {
		
		init_request();
		if( type == "text" )
				http_request.onreadystatechange = processRequest;
		else if( type == "xml" )
				http_request.onreadystatechange = processXmlRequest;
		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Length",sinfo.length);	
		http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http_request.send(sinfo);
	}
	
	//this function gave the user too much free to write his method
	function post_request2( url, sinfo, myProcess ) {
		
		init_request();
		http_request.onreadystatechange = myProcess;

		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Length",sinfo.length);	
		http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http_request.send(sinfo);
	}
	
	// text
    function processRequest() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) { 
           	   pageChange( http_request.responseText );
			} else { 
                alert("connect the server wrong!");
            }
        }
    }
    
    
    
    //xml
    function processXmlRequest() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
               pageChange( http_request.responseXml );
			} else {
                alert("connect the server wrong!");
            }
        }
    }
    
    // 
    function newprocessRequest() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) { 
           	  
			} else { 
                alert("connect the server wrong!");
            }
        }
    }