var gAjax = new Object();
gAjax = function()
{
	var self = this;
	this.init = function(setMethod,setUrl,setParams,setAsync,setCallBack,setType,setFlag)
	{
		try
		{
			this.handler = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(othermicrosoft)
		{
			try
			{
				this.handler = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(mozilla)
			{
				try
				{
					this.handler = new XMLHttpRequest();
				}
				catch(failed)
				{
					this.handler = false;
				}
			}
		}

		this.method = setMethod?setMethod:"GET";
		this.url = setUrl?setUrl:"";
		this.params = setParams?setParams:"";
		this.asy = (setAsync == true || setAsync == false)?setAsync:false;
		this.call = setCallBack?setCallBack:"";
		this.type = setType?setType:"text";
		this.flag = setFlag?setFlag:0;
	}
	this.send = function()
	{
		if(!self.handler)
		{
			self.error = 'gE00032';
			return false;
		}
		if(self.url == '')
		{
			self.error = 'gE00031';
			return false;
		}
		if(self.handler)
		{
			self.handler.open(self.method , self.url , self.asy);
			if(self.method.toLowerCase() == "post")
			{
				self.handler.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				self.handler.send(self.params);
			}
			else if(self.method.toLowerCase() == "get")
			{
				self.handler.send(null);
			}
			if(self.asy)
			{
				self.handler.onreadystatechange = function()
				{
					if(self.type.toLowerCase()== 'text' && self.flag == 1)
					{					
						if(self.handler.readyState == 4 && self.handler.status == 200)
						{
							self.response=self.handler.responseText;
							self.call(self.handler.responseText);
						}
					}
					if(self.type.toLowerCase()== 'text' && self.flag == 0)
					{
						if(self.handler.readyState == 4)
						{
							self.response=self.handler.responseText;
							self.status=self.handler.status;
							self.call(self.handler.responseText, self.handler.status);
						}
					}
					if(self.type.toLowerCase()== 'xml' && self.flag == 1)
					{
						if(self.handler.readyState == 4 && self.handler.status == 200)
						{
							self.response=self.handler.responseXML;
							self.call(self.handler.responseXML);
						}
					}
					if(self.type.toLowerCase()== 'xml' && self.flag == 0)
					{
						if(self.handler.readyState == 4)
						{
							self.response=self.handler.responseXML;
							self.status=self.handler.status;
							self.call(self.handler.responseXML, self.handler.status);
						}
					}
				}
			}
			else
			{
				if(self.type.toLowerCase()== 'text')
				{
					self.response=self.handler.responseText;
					self.status = self.handler.status;
					if(self.call != "")
					{
						//self.call(self.handler.responseText);
					}
				}
				else
				{
					self.response=self.handler.responseXML;
					self.status = self.handler.status;
					if(self.call != "")
					{
						//self.call(self.handler.responseXML);
					}
				}
			}
		}
	}
	this.setMethod = function(method)
	{
		this.method = method?method:'get';
	}
	this.setUrl = function(url)
	{
		this.url = url?url:'';
	}
	this.setParams = function(params)
	{
		this.params = params?params:'';
	}
	this.setAsync = function(asy)
	{
		this.asy = (asy == true || asy == false)?asy:false;
	}
	this.setCallBack = function(call)
	{
		this.call = call?call:'';
	}
	this.setType = function(type)
	{
		this.type = type?type:'text';
	}
	this.setFlag = function(flag)
	{
		this.flag = flag?flag:1;
	}
}
