text: if (typeof toolkit==='undefined') toolkit={};
  toolkit.focus = (function () {
      "use strict";
  
      var tabKey = false;
      var focusClass = 'has-focus';
  
      function bindEvents(){
          $(document)
              .on('click keyup',keyUp)
              .on('keydown', keyDown)
              .on('focus', "a, input, button, select, *[tabindex]", addClass)
              .on('blur', "a, input, button, select, *[tabindex]", removeClass);
      }
  
      function addClass(e) {
          if (tabKey) {
              $(e.currentTarget).addClass(focusClass);
          }
      }
  
      function removeClass(e) {
          $(e.currentTarget).removeClass(focusClass);
      }
  
      function keyDown(e){
          var KeyID = (window.event) ? event.keyCode : e.keyCode;
          if (KeyID == 9) {tabKey = true;}
      }
  
      function keyUp(e){
          var KeyID = (window.event) ? event.keyCode : e.keyCode;
          if (KeyID == 9) {tabKey = false;}
      }
  
      function apply(el){
          $(el).addClass(focusClass);
          el.focus();
      }
  
      bindEvents();
  
      return {
          apply: apply,
          className: focusClass
      };
  
  });
  
  if (typeof window.define === "function" && window.define.amd) {
      define('utils/focus', [], function() {
          'use strict';
          toolkit.focus = toolkit.focus();
          return toolkit.focus;
      });
  } else {
      toolkit.focus = toolkit.focus();
  }