/**
 * (en) Workaround for IE8 und Webkit browsers to fix focus problems when using
 skiplinks
 * (de) Workaround für IE8 und Webkit browser, um den Focus zu korrigieren, bei
 Verwendung von Skiplinks
 *
 * @note inspired by Paul Ratcliffe's article
 * http://www.communis.co.uk/blog/
 *                   2009-06-02-skip-links-chrome-safari-and-added-wai-aria
 * Many thanks to Mathias Schäfer (http://molily.de/) for his code improvements
 *
 * @copyright       Copyright 2005-2010, Dirk Jesse
 * @license         CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/),
 *                  YAML-C
 * (http://www.yaml.de/en/license/license-conditions.html)
 * @link            http://www.yaml.de
 * @package         yaml
 * @version         3.3
 * @revision        $Revision: 466 $
 * @lastmodified    $Date: 2010-09-14 21:19:30 +0200 (Di, 14 Sep 2010) $
 */

(function ()
{
  var YAML_focusFix =
  {
    skipClass : 'skip',
                init : function ()
                {
		  var userAgent = navigator.userAgent.toLowerCase();
		  var	is_webkit = userAgent.indexOf('webkit') > -1;
		  var	is_ie = userAgent.indexOf('msie') > -1;

		  if (is_webkit || is_ie)
		  {
		    var body = document.body, handler = YAML_focusFix.click;
		    if (body.addEventListener)
		    {
			body.addEventListener('click', handler, false);
		    }
		    else if (body.attachEvent)
		    {
		      body.attachEvent('onclick', handler);
		    }
		  }
		},

		click : function (e)
		{
		  e = e || window.event;
		  var target = e.target || e.srcElement;
		  if (target.className.indexOf(YAML_focusFix.skipClass) > -1)
		  {
		    YAML_focusFix.focus(target);
		  }
		},

		focus : function (link)
		{
		  var href = link.href,
		  id = href.substr(href.indexOf('#') + 1),
		  target = document.getElementById(id);
		  if (target)
		  {
		    target.setAttribute("tabindex", "-1");
		    target.focus();
		  }
		}
  };
  YAML_focusFix.init();
})();

