var Ajax = {xmlhttp:function () {
	try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			return new XMLHttpRequest();
		}
	}
}};
Ajax.Request = function () {
	if (arguments.length < 2) {
		return;
	}
	var _p = {asynchronous:true, method:"GET", parameters:""}; //default option
	for (var key in arguments[1]) { // custom option overwrite default option
		_p[key] = arguments[1][key];
	}
	var _x = Ajax.xmlhttp(); //xml obj
	var _url = arguments[0]; //str
	if (_p["parameters"].length > 0) {
		_p["parameters"] += "&_=";
	}
	if (_p["method"].toUpperCase() == "GET") {
		_url += (_url.match(/\?/) ? "&" : "?") + _p["parameters"];
	}
	_x.open(_p["method"], _url, _p["asynchronous"]);
	_x.onreadystatechange = function () {
		if (_x.readyState == 4) {
			if (_x.status == 200) {
				_p["onComplete"] ? _p["onComplete"](_x) : "";
			} else {
				_p["onError"] ? _p["onError"](_x) : "";
			}
		}
	};
	if (_p["method"].toUpperCase() == "POST") {
		_x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
	_x.send(_p["method"].toUpperCase() == "POST" ? _p["parameters"] : null);
};

var Form = { 
	
	serialize:function (form) {
	var form = document.getElementById(form);
	var elements = form.elements;		
	var element;
	var i;
	var postContent = "";

	for (i = 0; i < elements.length; ++i) {
		var element = elements[i];
		if (element.type == "text" || element.type == "textarea" || element.type == "hidden") {
			postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
		} else {
			if (element.type == "select-one" || element.type == "select-multiple") {
				var options = element.options, j, item;
				for (j = 0; j < options.length; ++j) {
					item = options[j];
					if (item.selected) {
						postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(item.value) + "&";
					}
				}
			} else {
				if (element.type == "checkbox" || element.type == "radio") {
					if (element.checked) {
						postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
					}
				} else {
					if (element.type == "file") {
						if (element.value != "") {
							postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
						}
					} else {
						postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
					}
				}
			}
		}
	}
return postContent;
}};

