--- a/js/flotr2/examples/js/Profile.js
+++ b/js/flotr2/examples/js/Profile.js
@@ -1,1 +1,73 @@
+(function () {
+var
+ D = Flotr.DOM,
+ E = Flotr.EventAdapter,
+ _ = Flotr._,
+ CLICK = 'click',
+
+ ID_EXAMPLE_PROFILE = 'example-profile',
+ ID_EXAMPLES = 'examples',
+
+Profile = function (o) {
+
+ if (_.isUndefined(Flotr.ExampleList)) throw "Flotr.ExampleList not defined.";
+
+ this.editMode = 'off';
+ this.list = Flotr.ExampleList;
+ this.current = null;
+ this.single = false;
+
+ this.init();
+};
+
+Profile.prototype = _.extend({}, Flotr.Examples.prototype, {
+
+ examples : function () {
+ var
+ examplesNode = document.getElementById(ID_EXAMPLES),
+ listNode = D.node('
'),
+ profileNode;
+
+ _.each(this.list.getType('profile'), function (example) {
+ profileNode = D.node('' + example.name + '');
+ D.insert(listNode, profileNode);
+ E.observe(profileNode, CLICK, _.bind(function () {
+ this.example(example);
+ }, this));
+ }, this);
+
+ D.insert(examplesNode, listNode);
+ },
+
+ example : function (example) {
+ this._renderSource(example);
+ this.profileStart(example);
+ setTimeout(_.bind(function () {
+ this._renderGraph(example);
+ this.profileEnd();
+ }, this), 50);
+ },
+
+ profileStart : function (example) {
+ var profileNode = document.getElementById(ID_EXAMPLE_PROFILE);
+ this._startTime = new Date();
+ profileNode.innerHTML = 'Profile started for "'+example.name+'"...
';
+ },
+
+ profileEnd : function (example) {
+ var
+ profileNode = document.getElementById(ID_EXAMPLE_PROFILE);
+ profileTime = (new Date()) - this._startTime;
+
+ this._startTime = null;
+
+ profileNode.innerHTML += 'Profile complete: '+profileTime+'ms
';
+ }
+
+});
+
+Flotr.Profile = Profile;
+
+})();
+