﻿function AjaxRequest()
{
	
	var xml = false;
	var self = this;
	
	try
	{
		xml = new XMLHttpRequest;

	}
	catch(e1)
	{
		try
		{
			xml = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(e2)
		{
			try
			{
				xml = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e3)
			{
				xml = false;
			}
		}
	}
	
	if (!xml)
	{
		return false;
	}
	
	this.method = "POST";
	this.url;
	this.async = true;
	this.content = "";
	this.onComplete = function(obj)
	{
		return;
	}
	this.onError = function(obj)
	{
		return;
	}
	this.open = function()
	{
		
		if(!this.url)
		{
			return false;
		}
		
		xml.onreadystatechange = function()
		{
			if(xml.readyState == 4)
			{
				if(xml.status == 200 || xml.status == 0)
				{
					var obj = new Object();
					obj.text = xml.responseText;
					obj.xml = parseXML(xml.responseText);
					
					self.onComplete(obj);
				}
				else
				{
					self.onError(xml.status);
				}
			}
		}
		
		xml.open(this.method, this.url, this.async);
		
		if(this.method == "POST")
		{
			xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			xml.send(this.content);
		}
		else
		{
			xml.send(null);
		};
		
	}
	
	this.abort = function()
	{
		xml.abort();
	}
	
}

function AjaxSubmit()
{
	var self = this;
	var ajax;
	this.submit = function(form)
	{
		var method = form.method.toUpperCase();
		var url = form.action;
		var urlInfo = "";
		for(var i = 0; i < form.elements.length; i++)
		{
			var element = form.elements[i];
			if(element.name != "")
			{
				urlInfo = urlInfo.length == 0 ? urlInfo : urlInfo + "&";
				if(element.type == "checkbox")
				{
					if(element.checked)
					{
						urlInfo += element.name + "=" + escape(element.value);
					}
				}
				else
				{
					urlInfo += element.name + "=" + escape(element.value);
				}
			}
		}
		if(ajax)
		{
			self.abort();
		}
		ajax = new AjaxRequest();
		ajax.method = method;
		ajax.url = url;
		ajax.content = urlInfo;
		ajax.onComplete = function(obj)
		{
			if(obj.text == "Please login!")
			{
				alert("not login");
				top.location.href = "login.aspx";
			}
			else
			{
				self.onComplete(obj);
			}
		}
		ajax.onError = function(status)
		{
			self.onError(status);
		}
		ajax.open();
	}
	this.abort = function()
	{
		ajax.abort();
	}
	this.onComplete = function(obj)
	{
		return;
	}
	this.onError = function(obj)
	{
		alert("System Error!");
		return;
	}
}
