function eli() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("A");
 for (var i=0; i<anchors.length; i++) {
  var anchor = anchors[i];
  if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
   anchor.target = "_blank";
  }
 }
}


/*
 email writer to protect emails
*/
function emailwriter(contact, email, host, subject) {
 document.write('<a href="' + 'mail' + 'to:' + email + '@' + host + '?subject=' + subject + '">' + contact + ' &#64; ' + host + '</a>');
}


function PU (url,x,y,name,sb,rs,st,lt,tb) {
 var win = null;
 var scrollbarstext = 'scrollbars = no,'; if (sb){scrollbarstext = 'scrollbars = yes,'}
 var resizabletext = 'resizable = no,'; if (rs){resizabletext = 'resizable = yes,'}
 var statustext = 'status = no,';   if (st){statustext = 'status = yes,'}
 var locationtext = 'location = no,';   if (lt){locationtext = 'location = yes,'}
 var toolbartext = 'toolbar = no,';     if (tb){toolbartext = 'toolbar = yes,'}
 var features = '';
 features = scrollbarstext+resizabletext+statustext;
 features = features + locationtext+toolbartext;
 features = features + 'width = '+x+',height = '+y;
 win = window.open(url, name, features);
 //win.document.onload = resizer;
 return true;
}



//see http://www.quirksmode.org/dom/toc.html#link6

var elementsToBeTOCed = 'h2';
var IdNameOfTocHolder = "toc";

function startTOC() {
 var el = createTOC();
 if(el) {
  document.getElementById(IdNameOfTocHolder).appendChild(el); 
 }
}

function createTOC() {
 var y = document.createElement('div');
 y.id = 'innertoc';
// var a = y.appendChild(document.createElement('span'));  <<= toc open/close tab
// a.onclick = showhideTOC;
 //a.id = 'contentheader';
// a.innerHTML = 'table of contents';
 var z = y.appendChild(document.createElement('div'));
 z.id ="innerSanctum";
 z.onclick = showhideTOC;
 var toBeTOCced = getElementsByTagNames(elementsToBeTOCed);
 if (toBeTOCced.length < 1) return false;
 //var tmp = document.createElement('a');  <<=heading reads table of contents
 //tmp.innerHTML = "top";
 //tmp.className = 'page top';
 //tmp.href = getCurrentUrl() + "#top";
 //z.appendChild(tmp);
 for (var i=0;i<toBeTOCced.length;i++) {
  var tmp = document.createElement('a');
  tmp.innerHTML = toBeTOCced[i].innerHTML;
  tmp.className = 'page';
  z.appendChild(tmp);
  if (toBeTOCced[i].nodeName == 'H3')
   tmp.className += ' indent';
  if (toBeTOCced[i].nodeName == 'H4')
   tmp.className += ' extraIndent';
  if (toBeTOCced[i].nodeName == 'H4')
   tmp.className += ' extraExtraIndent';   
  var headerId = toBeTOCced[i].id || 'link' + i;
  var headerName = "link" + i;
  tmp.href = getCurrentUrl() + '#toc_' + headerName;
  toBeTOCced[i].id = 'toc_' + headerName;
 }
 return y;
}

var TOCstate = 'none';
function showhideTOC() {
 TOCstate = (TOCstate == 'none') ? 'block' : 'none';
 var newText = (TOCstate == 'none') ? 'toc' : 'hide /';
 document.getElementById('contentheader').innerHTML = newText;
 document.getElementById('innertoc').lastChild.style.display = TOCstate;
 var contentElement = document.getElementById("content");
 var contentState = (TOCstate == 'none') ? 'notFaded' : 'faded';
 contentElement.className = contentState; 
}

function getElementsByTagNames(list,obj) {
 if (!obj) var obj = document;
 var tagNames = list.split(',');
 var resultArray = new Array();
 for (var i=0;i<tagNames.length;i++) {
  var tags = obj.getElementsByTagName(tagNames[i]);
  for (var j=0;j<tags.length;j++) {
   resultArray.push(tags[j]);
  }
 }
 var testNode = resultArray[0];
 if (!testNode) return [];
 if (testNode.sourceIndex) {
  resultArray.sort(function (a,b) {
    return a.sourceIndex - b.sourceIndex;
  });
 }
 else if (testNode.compareDocumentPosition) {
  resultArray.sort(function (a,b) {
    return 3 - (a.compareDocumentPosition(b) & 6);
  });
 }
 return resultArray;
}


function urlEncode(string) {
 var t = "";
 string = '' + string;
 splitstring = string.split(" ");
 for(i = 0; i < splitstring.length; i++) {
  if(i > 0) {
   t += '-';
  }
  t += splitstring[i];
 }
 return escape(t);
}

var fileName = "";

function getCurrentUrl(URL) {
 if(!fileName) {
  if(!URL) {
   URL = unescape(location.href)	// get current URL in plain ASCII
  }
  var xstart = URL.lastIndexOf("/") + 1
  var xend = URL.length
  if(xend == xstart) {
   return getCurrentUrl(URL.substring(0,(xend-1)));
  }
  fileName = URL.substring(xstart,xend)
  return fileName;
 }
 else  {
  return fileName;
 }
}

