function Ajax(address,method,parameters,process,type) {
	this.url = address;
	this.method = (method) ? method : 'GET';
	this.parameters  = (method='GET') ? null : parameters;
	this.processResult = process;
	this.header = new Array();
	this.type = (type) ? type : 'T';
	if(this.type!='T'&&this.type!='X') {
		this.type = 'T';
	}
	this.send();
}
Ajax.prototype = {
	addHeader:	function(h,v) {
					this.header[h] = v;
				},
	delHeader:	function(h) {
					delete(this.header[h]);
				},
	setHeader:	function() {
					if(this.httprequest==null) { return;} 
					for(h in this.header) {
						this.httprequest.setRequestHeader(h,this.header[h]);
					}
				},
	send:			function() {
							if(this.url==undefined||this.url=='') {
								return; 
							}
							this.httprequest = null;
						   	if (window.XMLHttpRequest) { // Mozilla, Safari,...
					         	this.httprequest = new XMLHttpRequest();
				        	} else if (window.ActiveXObject) { // IE
					         	try {
							     	 this.httprequest = new ActiveXObject("Msxml2.XMLHTTP");
				    	     	} catch (e) {
				               		try {
		        		           	 this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
									} catch (e) {}
								}
							}
							if(this.httprequest!=null&&this.httprequest!=undefined) {
								var obj = this;
								this.httprequest.onreadystatechange = 	function() {
																			obj.processReturn.call(obj);
																		}
								if(this.method==undefined||this.method=='') { this.method = 'GET';}
					        	this.httprequest.open(this.method,this.url, true);
								this.setHeader();
						        this.httprequest.send(this.parameters);
							}
						},
	processReturn:	function() {
							if(this.httprequest.readyState==4) {
								if(this.httprequest.status==200) {
									var resp = (this.type=='T') ? this.httprequest.responseText : this.httprequest.responseXML;
									if(this.processResult!=null) {
										this.processResult(resp);
									} else {
										document.write(resp);
									}
								} else { 
									this.processError();
								}
							}
						},
	processError:		function() {
							//alert(this.httprequest.status + '-' + this.httprequest.statusText + ' :-> ' + this.url);
						}
}


