//usefull functions from http://www.dustindiaz.com/top-ten-javascript
if(!this.addEvent){
	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;
		}
	}
}
if(!this.$){
	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.prototype.bind = function (obj) {
	var fn = this;
	return function () {
	var args = [this];
	for (var i = 0, ix = arguments.length; i < ix; i++) {
		args.push(arguments[i]);
	}
	return fn.apply(obj, args);
	};
};