(function($){
  $.extend({
    tab: function(options) {
      options.init();
      var
        $elm = $(options.targetExpr),
        $menu = $(options.menuExpr).find("a"),
        $selected = $(options.selectedExpr),
        _hasHash = location.hash;
      ;
      $elm.hide();
      var tabSelect = function(e){
        var
          _hash = $(this).attr("href").split("#")[1],
          $obj = $("#"+_hash)
        ;
        if((e.handleObj.type == "click")) {
          var _st = $(window).scrollTop();
          if(typeof $obj.attr("default_id") == "undefined") $obj.attr("default_id", $obj.attr("id"));
          $obj.attr("id", "");
          location.hash = _hash;
          $(window).scrollTop(_st);
          $obj.attr("id", $obj.attr("default_id"))
        }
        $elm.hide();
        $menu.removeClass("on tab-on");
        $(this).addClass("on tab-on");
        $obj.show();
        
        return false;
      }
      $menu.each(function(index){
        $(this)
          .data("tab_index_num", index)
          .bind("tabSelect", tabSelect)
          .bind("click", tabSelect)
        ;
      });
      if(location.hash ){
        var $_sel = $("a[href="+location.hash+"]");
        $_sel.trigger("tabSelect");
        $_sel.find("img").trigger("mouseon");
        $(window).load(function(){ $(window).scrollTop(0) });
      }else{
        var $_sel = $selected;
        $_sel.trigger("tabSelect");
        $_sel.find("img").trigger("mouseon");
      }
      $menu.find("img").bind("click", function(){
          $(this).trigger("mouseon");
      })
    }
  });
})(jQuery);

