// returns elements for the argument list
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 $text(value)
{
	return document.createTextNode(value);
}

function $element(value)
{
	return document.createElement(value);
}

function log(str)
{
	if(window.debug){
		if(window.console)
			window.console.log(str);
	}
}

function logError(e)
{
	if(!log.errors)
		log.errors = new Array();
	log.errors.push(e);
	
	if(e.sourceURL){
		log(e + ' source: ' + e.sourceURL + ' line: ' + e.line);
		alert(e + '\nsource: ' + e.sourceURL + '\nline: ' + e.line);
	}else if(e.fileName){
		log(e + ' file: ' + e.fileName + ' line: ' + e.lineNumber);
		alert(e + '\nfile: ' + e.fileName + '\nline: ' + e.lineNumber);
	}else{
		var str = "Error\n";
		if(e.name)
			str += e.name + "\n";
		if(e.message)
			str += e.message + "\n";
		if(e.number)
			str += "(" + (e.number & 0xffff) + ")\n";
		log(e);
		alert(str + e);
	}
}

function not_implemented(msg)
{
	alert(msg + "\nNOT IMPLEMENTED");
}

