﻿var SMAjax = function(){};
SMAjax.Get = function(url, returnFormat, callback)
{
	this.Request(url, null, returnFormat, callback, false);
}
SMAjax.Post = function(url, parameter, returnFormat, callback)
{
	this.Request(url, parameter, returnFormat, callback, true);
}
SMAjax.Request = function(url, parameter, returnFormat, callback, ispost)
{
	if(url == "" || url == null) {
		alert("url is empty");
	} else {
		var SMXMLHTTP = this.CreateXMLHTTP();
		if(ispost) {
			SMXMLHTTP.open("POST", url, true);
			SMXMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		} else {
			SMXMLHTTP.open("GET", url, true);
		}
		//
		SMXMLHTTP.onreadystatechange = function() {
			if (SMXMLHTTP.readyState == 4) {
				if (SMXMLHTTP.status == 200) {
					if(callback != null) {
						switch(returnFormat)
						{
							case "text":
								callback(SMXMLHTTP.responseText);
								break;
							case "xml":
								callback(SMXMLHTTP.responseXML);
								break;
							case "json":
								callback(eval(SMXMLHTTP.responseText));
								break;
							default:
								alert("return format error");
								break;
						}
					}
				} else {
					alert("error! " + SMXMLHTTP.status);
				}
			}
		}
		//
		if(ispost) {
			SMXMLHTTP.send(parameter);
		} else {
			SMXMLHTTP.send(null);
		}
	}
}
SMAjax.CreateXMLHTTP = function()
{
	if (window.ActiveXObject) {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else {
		alert("XMLHttp object could not be created.");
		throw new Error("XMLHttp object could not be created.");
	}
}
