﻿var SEAjax = {
	create : function() {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else {
			return new ActiveXObject("MSXML2.XMLHTTP");
		}
	},
	exec : function(method, args) {
		var XMLHTTP = this.create();
		XMLHTTP.open(method, args.url);
		XMLHTTP.onreadystatechange = function()
		{
			if (XMLHTTP.readyState == 4)
			{
				if (XMLHTTP.status == 200)
				{
					if(args.success)
					{
						var value;
						switch(args.type)
						{
							case "json":
								if(window.JSON) {
									value = JSON.parse(XMLHTTP.responseText);
								} else {
									value = new Function('return ' + XMLHTTP.responseText)();
								}
								break;
							case "xml":
								value = XMLHTTP.responseXml;
								break;
							default:
								value = XMLHTTP.responseText;
								break;
						}
						args.success(value);
					}
				}
			}
		}
		if(method == "POST") {
			XMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		}
		if(args.cashe == false) {
			XMLHTTP.setRequestHeader("If-Modified-Since", "0");
		}
		XMLHTTP.send(args.data);
	},
	GET : function(args) {
		this.exec("GET", args);
	},
	POST : function(args) {
		this.exec("POST", args);
	}
};
