// Link Building Pro ver 1.0
// Copyright Latent Motion, at seox.org

function init(){

// Options:
var useMetaKeyword = true; // Otherwise, page title
var minLength = 40; // Min selection chars
var useMetaAuthor = true; // Otherwise use domain
var addLinks = true; // Otherwise, just cite at end
var skip = new Array("home","link","click here"); // Don't link these (lowercase!)
	
function D(b,a,c){
 if(b.addEventListener)b.addEventListener(a,c,false);
 else b.attachEvent&&b.attachEvent("on"+a,c)}

function o(b,a){
 if(typeof b=="undefined"||b==null||!RegExp)return false;
   a=new RegExp("(^|\\s)"+a+"(\\s|$)");
 if(typeof b=="string")return a.test(b);
  else if(typeof b=="object"&&b.className)return a.test(b.className);return false}

function E(b,a){
 var c=false,j;
 for(j=b.parentNode;j!=undefined;){
  if(b.parentNode==e.body)break;
	else if(b.parentNode==a){c=true;break}j=j.parentNode}return c}

function F(b){
  return b.replace(/^\s*/,"")
	}

function G(b){
  return b.replace(/\s*$/,"")
	}

function H(b){
  return G(F(b))
	}

var I=new Array("home","link","click here"),
e=document,
x=window,
t=e.getElementsByTagName("body")[0],
p=e.getElementsByName("author"),
i=e.getElementsByName("keywords"),
q=x.location.toString(),
u=e.title.toString(),
d;if(!Array.indexOf)Array.prototype.indexOf=function(b,a){
  var c=-1;
	for(a=a|0;a<this.length||a==-1;a++)
	if(this[a]==b)c=a;return c};
	if(i.length>0&&useMetaKeyword){
	  i=e.getElementsByName("keywords")[0].getAttribute("content").split(",");
    u=Math.floor(Math.random()*i.length);
		i=i[u].replace(/^\s*|\s*$/,"")}
	else 
	  i=u;
		p=(p.length>0&&useMetaAuthor)?p[0].getAttribute("content"):e.domain;

var y="<p id='credit'><br/>Read more about <a href='"+q+"'>"+i+"</a> by <a href='http://"+e.domain+"' />"+p+"</a></p>";

if(/MSIE/g.test(navigator.userAgent))var v="msie";
else if(/Safari/g.test(navigator.userAgent))v="safChrome";
q=e.createElement("span");q.setAttribute("id","sasText");
t.appendChild(q);
d=e.getElementById("sasText");

posType=document.all&&!window.opera&&!window.XMLHttpRequest?"absolute":"fixed";
d.style.position=posType;
d.style.top="0px";
d.style.left="-9999px";
D(t,"copy",function(){d.innerHTML=y;
if(v=="msie"){
  for(var b=e.selection.createRange(),
   a=b.parentElement();
	 a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode;
	 if(o(a,"lbExclude"))return true;
	 a=e.body.createTextRange();
	 a.moveToElementText(d);
	 var c=b.duplicate();
	 c=c.htmlText;

if(c.length>minLength){
  d.id="tempSasText";
	d.innerHTML=c+y;
	(c=e.getElementById("sasText"))&&c.parentNode.removeChild(c);
	d.id="sasText";a.select()}}

else{b=x.getSelection();
  for(a=b.anchorNode;a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode;
	 if(o(a,"lbExclude"))return false;
	 if(b==""&&v=="safChrome"){
	   d.innerHTML=t.innerHTML;
		 a=document.createRange();
		 b.removeAllRanges();
		 a.selectNodeContents(d);b.addRange(a)}

else if(b.toString().length>minLength){
 var j=e.getElementById("credit");
 a=b.getRangeAt(0);
 c=a.cloneContents();
 d.id="tempSasText";
 d.insertBefore(c,j);
 (c=e.getElementById("sasText"))&&c.parentNode.removeChild(c);
 d.id="sasText";
 b.removeAllRanges();
 a.selectNode(d);
 b.addRange(a)}}
 
 var w=[];a=d.getElementsByTagName("a");for(b=0;b<a.length;b++)w.push(a[b].href);

if(addLinks){a=e.getElementsByTagName("a");
for(b=0;b<a.length;b++){var r=a[b].href;

if(w.indexOf(r)==-1)if(E(a[b],d)==false){
var f=H(a[b].innerHTML).toLowerCase();

if(skip.indexOf(f)==-1)
if((new RegExp(e.domain,"g")).test(r)){
var z=[];

function n(g,k,l){
 for(var A=g.childNodes.length;A-- >0;){
 var h=g.childNodes[A];
 if(h.nodeType===1)h.tagName.toLowerCase()!=="a"&&n(h,k,l);

else if(h.nodeType===3)
 for(var m=h.data.length;1;){
 m=h.data.lastIndexOf(k,m);
 if(m===-1||z.indexOf(k.toLowerCase())!==-1)break;
 var B=/\w/;
 if(h.nodeValue.charAt(m-1).match(B)||h.nodeValue.charAt(m+f.length).match(B))break;
 l.call(window,h,m)}}}

function s(g,k){g.splitText(k+f.length);
 var l=e.createElement("a");
 l.href=r;l.appendChild(g.splitText(k));
 g.parentNode.insertBefore(l,g.nextSibling);
 z.push(f.toLowerCase());
 w.push(r)}n(d,f,s);f=f.charAt(0).toUpperCase()+f.slice(1);n(d,f,s);
 f=f.toUpperCase();
 n(d,f,s);f=f.replace(/\w\S*/g,function(g){
 return g.charAt(0).toUpperCase()+g.substr(1).toLowerCase()});n(d,f,s)}}}}})}
 window.onload=init;
