(function($){$.fn.linkify=function(options){var defaults=$.fn.linkify.defaults;var o=$.extend({},defaults,options);if(typeof options=="number"){o.link_index=options}if(o.add_focus_class&&o.focus_class==""){o.focus_class=defaults.focus_class}if(o.add_sub_focus_class&&o.sub_focus_class==""){o.sub_focus_class=defaults.sub_focus_class}o.store_name="state.linkify";return this.each(function(){var uri="",title="";$(this).find("a").eq(o.link_index).each(function(){title=$.trim($(this).attr("title"));uri=$(this).attr("href");if(o.replace_nth_link){$(this).wrapInner('<span class="'+o.old_link_class+'"></span>').after($(this).contents()).remove()}});$(this).wrapInner('<a class="'+o.linkify_class+'" href="'+uri+'" title="'+title+'"></a>');var linkify=$(this).find("a:first").bind("mousedown.linkify",function(e){if((window.event&&e.button&&e.button==1)||e.button==0){$(this).removeAttr("href")}else{$(this).attr("href",uri)}}).bind("mouseenter.linkify mouseleave.linkify",function(){$(this).attr("href",uri)}).bind("mouseup.linkify click.linkify",function(e){var follow=true;if(window.getSelection){if(window.getSelection()!=""){follow=false}}else{if(document.selection.createRange().text!=""){follow=false}}if(follow&&e.type=="click"&&$(e.target).attr("href")&&e.target!=uri){follow=false}if(follow&&!$(e.target).hasClass(o.sub_class)){$(this).attr("href",uri)}else{$(this).removeAttr("href")}});if(o.add_focus_class){function mouseenterFocus(e){$(linkify).data(o.store_name,$(linkify).data(o.store_name)+1);$(linkify).addClass(o.focus_class);if($(linkify).hasClass(o.sub_focus_class)==false){o.focus.call(linkify,e)}}function mouseleaveBlur(e){$(linkify).data(o.store_name,$(linkify).data(o.store_name)-1);if($(linkify).data(o.store_name)<1&&$(e.target).attr("href")&&e.target==uri){$(linkify).data(o.store_name,0);$(linkify).removeClass(o.focus_class);if($(linkify).hasClass(o.sub_focus_class)==false){o.blur.call(linkify,e)}}}$(linkify).data(o.store_name,0).find("a").andSelf().filter(function(){return $(this).attr("href")==uri}).bind("mouseenter.linkify focus.linkify",mouseenterFocus).bind("mouseleave.linkify blur.linkify",mouseleaveBlur)}if(o.add_sub_focus_class){function subMouseenterFocus(e){$(this).data(o.store_name,$(this).data(o.store_name)+1);$(linkify).addClass(o.sub_focus_class);o.sub_focus.call(linkify,e);if(title){$(linkify).attr("title","")}}function subMouseleaveBlur(e){$(this).data(o.store_name,$(this).data(o.store_name)-1);if($(this).data(o.store_name)<1){$(this).data(o.store_name,0);$(linkify).removeClass(o.sub_focus_class);o.sub_blur.call(linkify,e);if(title){$(linkify).attr("title",title)}}}$(linkify).parent().find("a").filter(function(){return $(this).attr("href")!=uri}).addClass(o.sub_class).data(o.store_name,0).bind("mouseenter.linkify focus.linkify",subMouseenterFocus).bind("mouseleave.linkify blur.linkify",subMouseleaveBlur)}}).find("a:first")};$.fn.linkify_focus=function(func){return this.each(function(){func.call(this)})};$.fn.linkify.defaults=o={};o.linkify_class="linkify";o.add_focus_class=true;o.focus_class=o.linkify_class+"-focused";o.sub_class=o.linkify_class+"-sub";o.add_sub_focus_class=true;o.sub_focus_class=o.linkify_class+"-sub-focused";o.link_index=0;o.replace_nth_link=true;o.old_link_class=o.linkify_class+"-was-nth";o.focus=function(){};o.blur=function(){};o.sub_focus=function(){};o.sub_blur=function(){}})(jQuery);
