/*
	TODO
	diese in den Quelltexten ersetzen durch bindOn (s.u.)
*/

Function.prototype.bindAsEventListener = function(object) {
  var __method = this;
  return function(event) {
    __method.call(object, event);
  }
}

Function.prototype.bindOnParameter = function(object) {
  var __method = this;
  var __args = arguments;
  return function(event) {
    __method.call(object, event, __args);
  }
}

Array.prototype.contains = function (element) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == element) {
      return true;
    }
  }
  return false;
};

function $(id) {
  return document.getElementById(id);
}


/*
neuer Kram
*/

Function.prototype.bindOn = function(object) {
  var __method = this;
  return function(event) {
    __method.call(object, event);
  }
}

function log(msg) {
  if ((typeof opera) != 'undefined') {
    opera.postError(msg);
  } else if ((typeof console) != 'undefined') {
  	if (console.log) {
    	console.log(msg);
    }
  }
}

Date.prototype.isBefore = function(otherDate) {
  var myMillis = this.getTime();
  var otherMilis = otherDate.getTime();
  return myMillis < otherMilis;
}


function addEvent(obj, eventName, handler) {
  if (obj.addEventListener) {
    obj.addEventListener(eventName, handler, false);
    return true;
  }
  if (obj.attachEvent) {
    return obj.attachEvent('on' + eventName, handler);
  }
  return false;
}