function oc(a)
// by Jonathan Snook.
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

function externalLinks(autoExternal,fileexts) {
	// checks standard 'external' classes and wrapped anchors.
	var anchors = $$('a[rel~=external]','.external a');
	for (var i in anchors) {
		var anchor = anchors[i];
		anchor.target = "_blank";
	}
	// checks file extensions in submitted array.
	// checks for offsite links if auto is TRUE. 
	if (fileexts || autoExternal) {
		var sitelinks = $$('a');
		for (var j in sitelinks) {
			var sitelink = sitelinks[j];
			var url = String(sitelink.href);
			if (fileexts) {
				var start = url.lastIndexOf(".");             				  		
				if (start != -1){                                				 
				   start++;                                       				  	
				   extension = url.substring(start, url.length).toLowerCase();
				   if (extension in oc(fileexts)){   		 						
		               sitelink.target = "_blank";
				   }
				}
			}
			if (autoExternal) {
				var hn = String(window.location.hostname);
				var linkArray = url.split('/');
				var linkHN = String(linkArray[2]); // assuming http://
				var linkProtocol = linkArray[0];
				var linkHNStart = linkHN.lastIndexOf(":"); // find port info.
				if (linkHNStart!=-1) var linkHN = linkHN.substr(0,linkHNStart);
				if (hn!=linkHN && linkProtocol=="http:" && url!="#") {
					sitelink.target = "_blank";
				}
			}
		}
	}
	// checks 'internal' classes and wrapped anchors.
	var anchors = $$('a[rel~=internal]','.internal a');
	for (var k in anchors) {
		var anchor = anchors[k];
		anchor.target = "";
	}
}  
