function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

function getXMLObj(URL, endFunc, methd, async, obj, params) { 
	var req = null;
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		if(req.overrideMimeType) req.overrideMimeType('text/xml');
	} 
	else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	req.onreadystatechange = function() {
		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
				if(obj){
					endFunc(req.responseXML.documentElement);
				} else {
					endFunc(req.responseText);
				}
			}	
			else	
			{
				alert("XMLHTTP Error: returned status code " + req.status + " for URL " + URL + ". Info: " + req.statusText);
			}	
		} 
	};
	
	if(methd!="POST") params = null;
	req.open(methd, URL, async);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset:UTF-8");
	if(params) req.setRequestHeader("Content-length", params.length);
	req.setRequestHeader("Connection", "close");
	req.send(params);
}