first commit
[ratchet] / lib / js / segmented-controllers.js
1 /* ----------------------------------
2  * TABS v1.0.0
3  * Licensed under The MIT License
4  * http://opensource.org/licenses/MIT
5  * ---------------------------------- */
6
7 !function () {
8   var getTarget = function (target) {
9     var i, popovers = document.querySelectorAll('.segmented-controller li a');
10     for (; target && target !== document; target = target.parentNode) {
11       for (i = popovers.length; i--;) { if (popovers[i] === target) return target; }
12     }
13   };
14
15   window.addEventListener("touchend", function (e) {
16     var activeTab;
17     var activeBody;
18     var targetBody;
19     var targetTab;
20     var className     = 'active';
21     var classSelector = '.' + className;
22     var targetAnchor  = getTarget(e.target);
23
24     if (!targetAnchor) return;
25
26     targetTab = targetAnchor.parentNode;
27     activeTab = targetTab.parentNode.querySelector(classSelector);
28
29     if (activeTab) activeTab.classList.remove(className);
30
31     targetTab.classList.add(className);
32
33     if (!targetAnchor.hash) return;
34
35     targetBody = document.querySelector(targetAnchor.hash);
36
37     if (!targetBody) return;
38
39     activeBody = targetBody.parentNode.querySelector(classSelector);
40
41     if (activeBody) activeBody.classList.remove(className);
42
43     targetBody.classList.add(className)
44   });
45
46   window.addEventListener('click', function (e) { if (getTarget(e.target)) e.preventDefault(); });
47 }();