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 addEvent(element, event, handler) {
        if (element.addEventListener) {
            element.addEventListener(event, handler, false);
        } else if (elm.attachEvent) {
            element.attachEvent('on' + event, handler);
        } else {
            element['on' + event] = handler;
        }
}

function hasClass(element, value){
    if (element && element.className) {
		return ( element.className.length && element.className.match( new RegExp('(^|\\s+)(' + value + ')($|\\s+)') ) );
	}
}

function addClass(element, value){
    if (!hasClass(element, value)) {
        element.className += ' ' + value;
    }
}

function removeClass(element, value){
    var class_re = new RegExp('(^|\\s)' + value + '($|\\s)','g');
    element.className = element.className.replace(class_re, '$2');
}
