server/php/basic/public_html/static/lib/foundation/js/foundation/foundation.magellan.js
author ymh <ymh.work@gmail.com>
Fri, 22 May 2015 17:48:14 +0200
changeset 442 adb907bba956
permissions -rw-r--r--
add server php example
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
;(function ($, window, document, undefined) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
  'use strict';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
  Foundation.libs['magellan-expedition'] = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    name : 'magellan-expedition',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
    version : '5.5.2',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    settings : {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
      active_class : 'active',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
      threshold : 0, // pixels from the top of the expedition for it to become fixes
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
      destination_threshold : 20, // pixels from the top of destination for it to be considered active
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
      throttle_delay : 30, // calculation throttling to increase framerate
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
      fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
      offset_by_height : true,  // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
      duration : 700, // animation duration time
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
      easing : 'swing' // animation easing
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    init : function (scope, method, options) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
      Foundation.inherit(this, 'throttle');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
      this.bindings(method, options);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    events : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
      var self = this,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
          S = self.S,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
          settings = self.settings;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
      // initialize expedition offset
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
      self.set_expedition_position();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
      S(self.scope)
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        .off('.magellan')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
          var sameHost = ((this.hostname === location.hostname) || !this.hostname),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
              samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
              testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
              anchor = this;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
          if (sameHost && samePath && testHash) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            e.preventDefault();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            var expedition = $(this).closest('[' + self.attr_name() + ']'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
                settings = expedition.data('magellan-expedition-init'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
                hash = this.hash.split('#').join(''),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
                target = $('a[name="' + hash + '"]');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
            if (target.length === 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
              target = $('#' + hash);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            // Account for expedition height if fixed position
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            var scroll_top = target.offset().top - settings.destination_threshold + 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
            if (settings.offset_by_height) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
              scroll_top = scroll_top - expedition.outerHeight();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            $('html, body').stop().animate({
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
              'scrollTop' : scroll_top
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            }, settings.duration, settings.easing, function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
              if (history.pushState) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
                        history.pushState(null, null, anchor.pathname + '#' + hash);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
              }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
                    else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
                        location.hash = anchor.pathname + '#' + hash;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
                    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
          }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
        })
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    check_for_arrivals : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
      var self = this;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
      self.update_arrivals();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
      self.update_expedition_positions();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    set_expedition_position : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
      var self = this;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
      $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
        var expedition = $(this),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
            settings = expedition.data('magellan-expedition-init'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
            styles = expedition.attr('styles'), // save styles
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
            top_offset, fixed_top;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        expedition.attr('style', '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
        top_offset = expedition.offset().top + settings.threshold;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        //set fixed-top by attribute
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
        fixed_top = parseInt(expedition.data('magellan-fixed-top'));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        if (!isNaN(fixed_top)) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
          self.settings.fixed_top = fixed_top;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
        expedition.data(self.data_attr('magellan-top-offset'), top_offset);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
        expedition.attr('style', styles);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
      });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
    update_expedition_positions : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
      var self = this,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
          window_top_offset = $(window).scrollTop();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
      $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
        var expedition = $(this),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
            settings = expedition.data('magellan-expedition-init'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
            styles = expedition.attr('style'), // save styles
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
            top_offset = expedition.data('magellan-top-offset');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
        //scroll to the top distance
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        if (window_top_offset + self.settings.fixed_top >= top_offset) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
          // Placeholder allows height calculations to be consistent even when
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
          // appearing to switch between fixed/non-fixed placement
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
          var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
          if (placeholder.length === 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
            placeholder = expedition.clone();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            placeholder.removeAttr(self.attr_name());
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
            placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            expedition.before(placeholder);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
          }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
          expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
        } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
          expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
          expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
      });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
    update_arrivals : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
      var self = this,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
          window_top_offset = $(window).scrollTop();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
      $('[' + this.attr_name() + ']', self.scope).each(function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        var expedition = $(this),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
            settings = expedition.data(self.attr_name(true) + '-init'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            offsets = self.offsets(expedition, window_top_offset),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            active_item = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        offsets.each(function (idx, item) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
          if (item.viewport_offset >= item.top_offset) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
            var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
            arrivals.not(item.arrival).removeClass(settings.active_class);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
            item.arrival.addClass(settings.active_class);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
            active_item = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            return true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
          }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        if (!active_item) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
          arrivals.removeClass(settings.active_class);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
      });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
    offsets : function (expedition, window_offset) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
      var self = this,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
          settings = expedition.data(self.attr_name(true) + '-init'),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
          viewport_offset = window_offset;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
      return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
        var name = $(this).data(self.data_attr('magellan-arrival')),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
            dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
        if (dest.length > 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
          var top_offset = dest.offset().top - settings.destination_threshold;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
          if (settings.offset_by_height) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
            top_offset = top_offset - expedition.outerHeight();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
          }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
          top_offset = Math.floor(top_offset);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
          return {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
            destination : dest,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
            arrival : $(this),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
            top_offset : top_offset,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
            viewport_offset : viewport_offset
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
          }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
      }).sort(function (a, b) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
        if (a.top_offset < b.top_offset) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
          return -1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
        if (a.top_offset > b.top_offset) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
          return 1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        return 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
      });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
    data_attr : function (str) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
      if (this.namespace.length > 0) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        return this.namespace + '-' + str;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
      }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
      return str;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
    off : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
      this.S(this.scope).off('.magellan');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
      this.S(window).off('.magellan');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
    filterPathname : function (pathname) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
      pathname = pathname || '';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
      return pathname
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
          .replace(/^\//,'')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
          .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
          .replace(/\/$/,'');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
    },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
    reflow : function () {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
      var self = this;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
      // remove placeholder expeditions used for height calculation purposes
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
      $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
  };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
}(jQuery, window, window.document));