text: /**
   * Transposes a given array.
   * @id Array.prototype.transpose
   * @author Shamasis Bhattacharya
   *
   * @type Array
   * @return The Transposed Array
   * @compat=ALL
   */
  Array.prototype.transpose = function () {
  
      // Calculate the width and height of the Array
      var a = this,
          w = a.length ? a.length : 0,
          h = a[0] instanceof Array ? a[0].length : 0;
  
      // In case it is a zero matrix, no transpose routine needed.
      if (h === 0 || w === 0) {
          return [];
      }
  
      /**
       * @var {Number} i Counter
       * @var {Number} j Counter
       * @var {Array} t Transposed data is stored in this array.
       */
      var i, j, t = [];
  
      // Loop through every item in the outer array (height)
      for (i = 0; i < h; i++) {
  
          // Insert a new row (array)
          t[i] = [];
  
          // Loop through every item per item in outer array (width)
          for (j = 0; j < w; j++) {
  
              // Save transposed data.
              t[i][j] = a[j][i];
          }
      }
  
      return t;
  };
  