/** 
* "Yet Another Multicolumn Layout" - (X)<acronym title="HyperText Markup Language">HTML</acronym>/CSS Framework 
* 
* (en) Workaround for Webkit browsers to fix focus problems when using skiplinks 
* (de) Workaround für Webkit browsers, um den Focus zu korrigieren, bei Verwendung von Skiplinks 
* 
* @copyright       Copyright 2005-2010, Dirk Jesse 
* @package         yaml 
*/  
  
var YAML_focusFix = {  
  init: function() {  
    var skipClass = 'skip';  
   
    var userAgent = navigator.userAgent.toLowerCase();  
    var is_webkit = userAgent.indexOf('webkit') > -1;  
    var is_ie = userAgent.indexOf('msie') > -1;  
    var i = 0;  
    var links, skiplinks = [];  
     
    if (is_webkit || is_ie) {  
      // find skiplinks in modern browsers ...  
      if ( document.getElementsByClassName !== undefined) {  
        skiplinks = document.getElementsByClassName(skipClass);  
     
        for (i=0; i<skiplinks.length; i++) {  
          this.setTabIndex(skiplinks[ i ]);  
        }  
      } else {  
        // find skiplinks in older browsers ...  
        links = document.getElementsByTagName('a');  
        for (i=0; i<links.length; i++) {  
          var s = links[ i ].getAttribute('href');  
          var c = links[ i ].getAttribute('class');  
          if (s.length > 1 && c.indexOf(skipClass) != -1 && s.substr(0, 1) == '#' ) {  
            this.setTabIndex(links[ i ]);   
          }  
        }  
      }   
    }  
  },  
  
  setTabIndex: function( skiplink ){  
    var target = skiplink.href.substr(skiplink.href.indexOf('#')+1);  
    var targetElement = document.getElementById(target);  
     
    if (targetElement !== null) {  
      // make element accessible for .focus() method   
      targetElement.setAttribute("tabindex", "-1");  
      skiplink.setAttribute("onclick", "document.getElementById('"+target+"').focus();");   
    }  
  }  
};  
  
YAML_focusFix.init();  
