I was just wondering if this is necessary :
;(function ( $, window, document, undefined ) {
Cluster.prototype.initiate_test_touch_event_support = function(callback) {
return (Modernizr.touch) ? callback.call(this) : true;
};
})( jQuery, window, document );
or I could just work with prototypes without wrapping everything on DOM load ?
So long as you are not trying to manipulate the DOM(access elements, add events to elements, etc) then you do not need to wait for the document to load.
Prime examples of this are jQuery and prototype.js. Both allow for a script to use the library’s own document onready/load events. This wouldn’t be possible if those libraries waited for the document to finish loading before initializing themselves.