/* Javascript Utilities Copyright (c) 2011-2012 Fabrice Bellard Redistribution or commercial use is prohibited without the author's permission. */ "use strict"; /* add the bind function if not present */ if (!Function.prototype.bind) { Function.prototype.bind = function(obj) { var slice1 = [].slice, args = slice1.call(arguments, 1), self = this, nop = function () {}, bound = function () { return self.apply( this instanceof nop ? this : ( obj || {} ), args.concat( slice1.call(arguments) ) ); }; nop.prototype = self.prototype; bound.prototype = new nop(); return bound; }; } /* include script 'filename' */ function include(filename) { document.write('