	var _XML_result = '';

	function getXMLHTTP() {
		var xmlhttp=false;
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
		@end @*/
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}

	function form2POST(form) {
		str = '';
		for(i=0;i<form.elements.length;i++)
		if(form.elements[i].name != '' && form.elements[i].name != 'undefined') {
			if(form.elements[i].tagName == 'SELECT') {
				for(j=0;j<form.elements[i].options.length;j++)
				if(form.elements[i].options[j].selected == true) {
					str += (str == '' ? "" : "&") + form.elements[i].name + '=' + encodeURIComponent(strASCIIencode(form.elements[i].options[j].value));
				}
				continue;
			}
			if(form.elements[i].tagName == 'INPUT' && form.elements[i].type.toUpperCase() == 'RADIO') {
				if(form.elements[i].checked == true)
				str += (str == '' ? "" : "&") + form.elements[i].name + '=' + encodeURIComponent(strASCIIencode(form.elements[i].value));
				continue;
			}
			if(form.elements[i].tagName == 'INPUT' && form.elements[i].type.toUpperCase() == 'CHECKBOX') {
				str += (str == '' ? "" : "&") + form.elements[i].name + '=' + encodeURIComponent(form.elements[i].checked == true ? 1 : 0);
				continue;
			}
			if (form.elements[i].tagName == 'TEXTAREA') {str += (str == '' ? "" : "&") + form.elements[i].name + '=' + encodeURIComponent(strASCIIencode(form.elements[i].value));
				continue;
			}

			if (form.elements[i].tagName == 'INPUT') str += (str == '' ? "" : "&") + form.elements[i].name + '=' + encodeURIComponent(strASCIIencode(form.elements[i].value));
			}
		return str;
	}
	
	function sendXML(form, sync) {
		if(sync == undefined) sync = true;
		var xml = getXMLHTTP();
		if (xml) {
			xml.open(form.method, form.action, sync);
			xml.onReadyStateChange = function() {
				if(xml.readyState == 4) {
					eval(unescape(xml.responseText));
				}
			}
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xml.send(form2POST(form));
			return false;
		}
		else return false;
	}
	function sendXMLEx(form, sync) {
		if(sync == undefined) sync = true;
		var xml = getXMLHTTP();
		if (xml) {
			xml.open(form.method, form.action, sync);
			xml.setRequestHeader("Content-Type", "multipart/form-data");
			xml.send(form2POST(form));
			return xml.responseText;
		}
		else return false;
	}

	function sendXMLalert(form, sync) {
		if(sync == undefined) sync = true;
		var xml = getXMLHTTP();
		if (xml) {
			xml.open(form.method, form.action, sync);
			xml.onReadyStateChange = function() {
				if(xml.readyState == 4) {
					alert(unescape(xml.responseText));
				}
			}
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xml.send(form2POST(form));
			return false;
		}
		else return false;
	}
	
	function getXMLData(url) {
		var xml = getXMLHTTP();
		_XML_result = false;
		
		if(xml) {
			xml.open("GET", url, false);
			
			xml.onReadyStateChange = function() {
				if(xml.readyState == 4) {
					_XML_result = unescape(xml.responseText);
				}
			}
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			
			xml.send(null);
			_XML_result = xml.responseText;
			return _XML_result;
		}
		else return false;
	}

	function postXMLData(url, data) {
		var xml = getXMLHTTP();
		_XML_result = false;
		if(xml) {
			xml.open("POST", url, false);
			
			xml.onReadyStateChange = function() {
				if(xml.readyState == 4) {
					_XML_result = unescape(xml.responseText);
				}
			}
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xml.send(data);
			_XML_result = xml.responseText;
			return _XML_result;
		}
		else return false;
	}
	function postXMLDataEx(url, data) {
		var xml = getXMLHTTP();
		_XML_result = false;
		
		if(xml) {
			xml.open("POST", url, false);
			xml.onReadyStateChange = function() {
				if(xml.readyState == 4) {
					_XML_result = unescape(xml.responseText);
				}
			}
			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xml.send(data);
			_XML_result = unescape(xml.responseText);
			return _XML_result;
		}
		else return false;
	}


	
	function capitalize(str) {
		if (str.length == 0) return str;
		var do_digitz = false;
		if (arguments.length > 1) do_digitz = arguments[1];
		var words = str.split(/\s+/), spaces = str.split(/\S+/);
		var res = '', wi, si = 0;
		if (str.match(/^\s/)) {
			res += spaces[0];
			si++;
		}
		var hasdigits = /\d/;
		for (wi = 0; wi < words.length; wi++) {
			if (!do_digitz && words[wi].match(hasdigits))
				res += words[wi];
			else
				res += words[wi].charAt(0).toUpperCase() + words[wi].substr(1);
			if (si < spaces.length) {
				res += spaces[si];
				si++;
			}
		}
		return res;
	}

	function truncate(str, len) {
		var dots = '...', atchar = false;
		if (arguments.length > 2) {
			dots = arguments[2];
			if (arguments.length > 3) atchar = arguments[3];
		}
		if (str.length <= len) return str;
		var res = str.substr(0, len - dots.length), ws = /\s/;
		if (atchar || str.charAt(len - dots.length).match(ws)) res += dots;
		else {
			var re = /\s+\S+$/;
			res = res.replace(re, '') + dots;
		}
		return res;
	}