Function.prototype.bind||(Function.prototype.bind=function(oThis){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function fBound(){return fToBind.apply(this instanceof fNOP?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)))}var aArgs=Array.prototype.slice.call(arguments,1),fToBind=this,fNOP=function(){};return this.prototype&&(fNOP.prototype=this.prototype),fBound.prototype=new fNOP,fBound});