
/*
 * MyFocusfix v1.0 - jQuery Fokusfix widget
 * Copyright (c) 2010 Andreas Englert
 *
 */

;(function($){
    $.fn.myfocusfix = function(optionen) {

        var mm = this;

        var defaults = {
            targetClass: 'skiptarget' // Classname to apply to the element the anchor points to
        };

        var config = $.extend(defaults, optionen);

        // --- Mit $(this) können wir auf den Container zugreifen.
        // --- über config.<Value> die gewünschte Einstellung.

        //console.log(config.hintergrund);
        //console.log($(this).attr("id"));

        /*
        if(!this.targetOverlay){
            this.targetOverlay = document.createElement('div');
            this.targetOverlay.className = options.targetClass;
            $('body').append(this.targetOverlay);
            this.targetOverlay = $(this.targetOverlay).hide();
            this.targetOverlay.mousedown(function(){
                o.targetOverlay.hide();
            });
        }*/
        
        if(!this.container){
          //this.container =  $("<div>", { class: config.targetClass});
          this.container = $(document.createElement('div'));
          //this.container.attr("class",config.targetClass);
          this.container.addClass(config.targetClass);
          this.container.appendTo('body');
          this.container.hide();
        }

        return this.each(function()
        {
            var obj = $(this);
            var capText = obj.attr('id');
            //alert(capText);

            var $skiplinksli = obj.children("li");
            //alert($skiplinksli.length);

            if ($skiplinksli.length != 0) 
            {
              $skiplinksli.each(function(i) 
              {
                  //alert('index: ' + i);
                  var $skiplink = $(this).find('a:first');
                  //alert($skiplink.attr('href'));
                  //$skiplink.css("color", "blue");

                  // var anchortarget = $skiplink.attr('href').split('#')[1];
                  // or sepperately:
                  var skipurl = $skiplink.attr('href');
                  var anchortarget = skipurl.substr(skipurl.indexOf('#')+1);
                  //alert(anchortarget);

                  $targetbox = $('#'+anchortarget);

                  if ($targetbox.length != 0)
                  {
                    //alert('Found an anchor in url');
                    $targetbox.attr('tabindex', '-1');
                    var pos = $targetbox.offset();
                    var tw = $targetbox.width();
                    var th = $targetbox.height();
                    //alert("w is " + tw + "px. h is " + th + "px.");

                    $skiplink.hover(
                      function() {
                        mm.container.css({top:pos.top,left:pos.left,width:tw,height:th});
                        mm.container.show();
                      },
                      function() {
                        mm.container.hide();
                      }
                    );

                    $skiplink.focus(function () {
                        mm.container.css({top:pos.top,left:pos.left,width:tw,height:th});
                        mm.container.show();
                    });
                    $skiplink.blur(function () {
                        mm.container.hide();
                    });                

                    //$skiplink.attr('onclick', "document.getElementById('"+anchortarget+"').focus();");
                    $skiplink.click(function(){
                      $targetbox.focus();
                    });

                  }
              });
            }

        });
    };
    return this;
})(jQuery);


