app/soc/content/js/melange-091015.js
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 3039 14194c0b3cd1
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3039
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     1
/* Copyright 2009 the Melange authors.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     2
 *
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     3
 * Licensed under the Apache License, Version 2.0 (the "License");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     4
 * you may not use this file except in compliance with the License.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     5
 * You may obtain a copy of the License at
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     6
 *
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     7
 *   http://www.apache.org/licenses/LICENSE-2.0
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     8
 *
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     9
 * Unless required by applicable law or agreed to in writing, software
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    10
 * distributed under the License is distributed on an "AS IS" BASIS,
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    12
 * See the License for the specific language governing permissions and
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    13
 * limitations under the License.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    14
 */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    15
/**
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    16
 * @author <a href="mailto:fadinlight@gmail.com">Mario Ferraro</a>
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    17
 */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    18
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    19
(function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    20
  /** @lends melange */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    21
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    22
  /** General melange package.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    23
    * @name melange
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    24
    * @namespace melange
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    25
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    26
  var melange = window.melange = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    27
    return new melange();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    28
  };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    29
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    30
  if (window.jQuery === undefined) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    31
    throw new Error("jQuery package must be loaded exposing jQuery namespace");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    32
  }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    33
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    34
  if (window.JSON === undefined) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    35
    throw new Error("json2 package must be loaded exposing JSON namespace");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    36
  }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    37
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    38
  /** Shortcut to current package.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    39
    * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    40
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    41
  var $m = melange;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    42
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    43
  /** Contains general configuration for melange package.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    44
    * @variable
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    45
    * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    46
    * @name melange.config
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    47
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    48
  $m.config = {};
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    49
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    50
  (function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    51
    var configuration =
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    52
      jQuery("script[melangeConfig][src$='melange.js']").attr("melangeConfig");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    53
    if (configuration) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    54
      var configuration_object = JSON.parse("{ " + configuration + " }");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    55
      jQuery.extend($m.config, configuration_object);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    56
    }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    57
  }());
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    58
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    59
  /** Shortcut to clone objects using jQuery.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    60
    * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    61
    * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    62
    * @name melange.clone
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    63
    * @param {Object} object the object to clone
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    64
    * @returns {Object} a new, cloned object
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    65
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    66
  $m.clone = function (object) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    67
    // clone object, see
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    68
    // http://stackoverflow.com/questions/122102/
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    69
    // what-is-the-most-efficent-way-to-clone-a-javascript-object
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    70
    return jQuery.extend(true, {}, object);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    71
  };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    72
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    73
  /** Set melange general options.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    74
    * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    75
    * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    76
    * @name melange.setOptions
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    77
    * @param {Object} options Options to set/unset
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    78
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    79
  $m.setOptions = function (options) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    80
    switch (options.debug) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    81
    case true:
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    82
      $m.logging.setDebug();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    83
      break;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    84
    case false:
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    85
      $m.logging.unsetDebug();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    86
      break;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    87
    default:
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    88
      $m.logging.setDebug();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    89
    }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    90
    if (options.debugLevel) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    91
      $m.logging.setDebugLevel(options.debugLevel);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    92
    }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    93
  };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    94
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    95
  /** Facility to load google API.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    96
    * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    97
    * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    98
    * @name melange.loadGoogleApi
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    99
    * @param {String} modulename Google Ajax module to load
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   100
    * @param {String|Number} moduleversion Google Ajax module version to load
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   101
    * @param {Object} settings Google Ajax settings for the module
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   102
    * @param {Function} callback to be called as soon as module is loaded
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   103
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   104
  $m.loadGoogleApi = function (modulename, moduleversion, settings, callback) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   105
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   106
    if (!modulename || !moduleversion) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   107
      throw new TypeError("modulename must be defined");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   108
    }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   109
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   110
    /** Options to be sent to google.load constructor
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   111
      * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   112
      * @name melange.loadGoogleApi.options
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   113
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   114
    var options = {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   115
      name : modulename,
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   116
      version : moduleversion,
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   117
      settings : settings
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   118
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   119
    jQuery.extend(options.settings, {callback: callback});
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   120
    google.load(options.name, options.version, options.settings);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   121
  };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   122
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   123
  (function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   124
    /** @lends melange.error */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   125
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   126
    /** Package that handles melange errors
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   127
      * @namespace melange.error
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   128
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   129
    melange.error = window.melange.error = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   130
      return new melange.error();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   131
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   132
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   133
    /** Shortcut to current package.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   134
      * @property
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   135
      * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   136
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   137
    var $m = melange.error;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   138
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   139
    /** List of default custom error types to be created.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   140
      * @property
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   141
      * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   142
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   143
    var error_types = [
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   144
      "DependencyNotSatisfied",
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   145
      "notImplementedByChildClass"
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   146
    ];
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   147
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   148
    /** Create errors
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   149
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   150
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   151
      * @name melange.error.createErrors
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   152
      * @param {String[]} error_types Array of strings with errors names
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   153
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   154
    $m.createErrors = function (error_types) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   155
      jQuery.each(error_types, function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   156
        melange.error[this] = Error;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   157
      });
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   158
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   159
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   160
    $m.createErrors(error_types);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   161
  }());
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   162
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   163
  (function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   164
    /** @lends melange.logging */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   165
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   166
    /** Package that contains all log related functions.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   167
      * @name melange.logging
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   168
      * @namespace melange.logging
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   169
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   170
    melange.logging = window.melange.logging = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   171
      return new melange.logging();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   172
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   173
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   174
    /** Shortcut to current package.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   175
      * @property
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   176
      * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   177
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   178
    var $m = melange.logging;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   179
    /** @private */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   180
    var debug = false;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   181
    /** @private */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   182
    var current_debug_level = 5;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   183
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   184
    /** Set debug logging on.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   185
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   186
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   187
      * @name melange.logging.setDebug
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   188
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   189
    $m.setDebug = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   190
      debug = true;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   191
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   192
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   193
    /** Set debug logging off.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   194
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   195
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   196
      * @name melange.logging.unsetDebug
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   197
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   198
    $m.unsetDebug = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   199
      debug = false;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   200
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   201
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   202
    /** Check if debug is active.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   203
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   204
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   205
      * @name melange.logging.isDebug
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   206
      * @returns {boolean} true if debug is on, false otherwise
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   207
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   208
    $m.isDebug = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   209
      return debug ? true : false;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   210
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   211
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   212
    /** Set the current debug level.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   213
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   214
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   215
      * @name melange.logging.setDebugLevel
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   216
      * @param level The log level to set
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   217
      * @throws {TypeError} if the parameter given is not a number
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   218
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   219
    $m.setDebugLevel = function (level) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   220
      if (isNaN(level)) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   221
        throw new melange.error.TypeError(
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   222
          "melange.logging.setDebugLevel: parameter must be a number"
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   223
        );
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   224
      }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   225
      if (level <= 0) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   226
        level = 1;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   227
      }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   228
      if (level >= 6) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   229
        level = 5;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   230
      }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   231
      current_debug_level = level;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   232
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   233
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   234
    /** Get the current debug level.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   235
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   236
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   237
      * @name melange.logging.getDebugLevel
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   238
      * @returns {Number} The current debug level
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   239
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   240
    $m.getDebugLevel = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   241
      return current_debug_level;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   242
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   243
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   244
    /** A decorator for logging.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   245
      * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   246
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   247
      * @name melange.logging.debugDecorator
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   248
      * @param {Object} object_to_decorate The Function/Object to decorate
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   249
      * @returns {Object} Same object,decorated with log(level,message) func
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   250
    */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   251
    $m.debugDecorator = function (object_to_decorate) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   252
      /** Function to handle output of logs.
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   253
        * @function
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   254
        * @name melange.logging.debugDecorator.log
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   255
        * @param level The log level
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   256
        * @param message The string
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   257
        */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   258
      object_to_decorate.log = function (level, message) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   259
          if (melange.logging.isDebug() && current_debug_level >= level) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   260
            console.debug(message);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   261
          }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   262
        };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   263
      return object_to_decorate;
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   264
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   265
  }());
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   266
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   267
  (function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   268
    /** @lends melange.templates */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   269
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   270
    /** Package that provides basic templates functions
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   271
      * @name melange.templates
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   272
      * @namespace melange.templates
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   273
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   274
    melange.templates = window.melange.templates = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   275
      return new melange.templates();
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   276
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   277
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   278
    /** Shortcut to current package
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   279
      * @private
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   280
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   281
    var $m = melange.logging.debugDecorator(melange.templates);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   282
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   283
    melange.error.createErrors([
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   284
    ]);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   285
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   286
    /** Parent prototype for all templates
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   287
      * @class
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   288
      * @constructor
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   289
      * @name melange.templates._baseTemplate
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   290
      * @public
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   291
      */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   292
    $m._baseTemplate = function () {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   293
      this.context = {};
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   294
      var configuration = jQuery("script[melangeContext]")[0];
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   295
      if (configuration !== undefined) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   296
        configuration = jQuery(configuration).attr("melangeContext");
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   297
        if (configuration) {
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   298
          /* FIXME: json2 doesn't parse the object if they have k:"v" instead
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   299
             of "k":"v", but this is not what gviz outputs, we need to change
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   300
             gviz source or hack json2 source or use another method. eval()
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   301
             must be not used anyway
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   302
          */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   303
          /*jslint evil: true,undef: false */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   304
          eval("var configuration_object = " + configuration);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   305
          jQuery.extend(this.context, configuration_object);
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   306
          /*jslint evil: false,undef: true */
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   307
        }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   308
      }
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   309
    };
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   310
  }());
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   311
}());
14194c0b3cd1 General JavaScript utilities for melange.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   312
window.melange = window.melange.logging.debugDecorator(window.melange);