(function() { var init, isMobile, setupBrowserDemo, setupHero, _Drop; _Drop = Drop.createContext({ classPrefix: 'tether' }); isMobile = $(window).width() < 567; init = function() { setupHero(); return setupBrowserDemo(); }; setupHero = function() { var $target, finalDropState, frameLengthMS, frames, openAllDrops, openIndex, openNextDrop, position, positions, _i, _len; $target = $('.tether-target-demo'); positions = ['top left', 'left top', 'left middle', 'left bottom', 'bottom left', 'bottom center', 'bottom right', 'right bottom', 'right middle', 'right top', 'top right', 'top center']; if (isMobile) { positions = ['top left', 'bottom left', 'bottom right', 'top right']; } window.drops = {}; for (_i = 0, _len = positions.length; _i < _len; _i++) { position = positions[_i]; drops[position] = new _Drop({ target: $target[0], classes: 'tether-theme-arrows-dark', position: position, constrainToWindow: false, openOn: '', content: '
' }); } openIndex = 0; frames = 0; frameLengthMS = 10; openAllDrops = function() { var drop, _results; _results = []; for (position in drops) { drop = drops[position]; _results.push(drop.open()); } return _results; }; openNextDrop = function() { var drop; for (position in drops) { drop = drops[position]; drop.close(); } drops[positions[openIndex]].open(); drops[positions[(openIndex + 6) % positions.length]].open(); openIndex = (openIndex + 1) % positions.length; if (frames > 5) { finalDropState(); return; } frames += 1; return setTimeout(openNextDrop, frameLengthMS * frames); }; finalDropState = function() { $(drops['top left'].dropContent).html('Marrying DOM elements for life.'); $(drops['bottom right'].dropContent).html('★ On Github'); drops['top left'].open(); return drops['bottom right'].open(); }; if (true || isMobile) { drops['top left'].open(); drops['top left'].tether.position(); drops['bottom right'].open(); drops['bottom right'].tether.position(); return finalDropState(); } else { return openNextDrop(); } }; setupBrowserDemo = function() { var $browserContents, $browserDemo, $iframe, $sections, $startPoint, $stopPoint, scrollInterval, scrollTop, scrollTopDirection, setSection; $browserDemo = $('.browser-demo.showcase'); $startPoint = $('.browser-demo-start-point'); $stopPoint = $('.browser-demo-stop-point'); $iframe = $('.browser-window iframe'); $browserContents = $('.browser-content .browser-demo-inner'); $sections = $('.browser-demo-section'); $('body').append(""); $(window).scroll(function() { var scrollTop; scrollTop = $(window).scrollTop(); if ($startPoint.position().top < scrollTop && scrollTop + window.innerHeight < $stopPoint.position().top) { $browserDemo.removeClass('fixed-bottom'); $browserDemo.addClass('fixed'); return $sections.each(function() { var $section; $section = $(this); if (($section.position().top < scrollTop && scrollTop < $section.position().top + $section.outerHeight())) { setSection($section.data('section')); } return true; }); } else { $browserDemo.removeAttr('data-section'); $browserDemo.removeClass('fixed'); if (scrollTop + window.innerHeight > $stopPoint.position().top) { return $browserDemo.addClass('fixed-bottom'); } else { return $browserDemo.removeClass('fixed-bottom'); } } }); $iframe.load(function() { var $items, iframeWindow; iframeWindow = $iframe[0].contentWindow; $items = $iframe.contents().find('.item'); return $items.each(function(i) { var $item, drop, _iframeWindowDrop; $item = $(this); _iframeWindowDrop = iframeWindow.Drop.createContext({ classPrefix: 'tether' }); drop = new _iframeWindowDrop({ target: $item[0], classes: 'tether-theme-arrows-dark', position: 'right top', constrainToWindow: true, openOn: 'click', content: '