
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 insertAfter(node, referenceNode) {
        node.parentNode.insertBefore(referenceNode, node.nextSibling);
}

function GetXmlHttpObject(){ 
	var objXMLHttp = null;
	if (window.XMLHttpRequest) objXMLHttp = new XMLHttpRequest();
	else if (window.ActiveXObject) objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	return objXMLHttp;
} 

function AjaxRequest(url, method, param, onSuccess, onFailure){
        var xmlHttpRequest = GetXmlHttpObject();
        xmlHttpRequest.onreadystatechange = function() {
                if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) onSuccess(xmlHttpRequest);
                else onFailure(xmlHttpRequest);
        };
        xmlHttpRequest.open(method, url, true);
        if (method == 'POST') xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttpRequest.send(param);
}

function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true;
	}else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r;
	}else{ elm['on' + evType] = fn;	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') { window.onload = func;
	}else{ window.onload = function() { oldonload(); func(); } }
}


