<!-- Brian Suda			-->
<!-- http://suda.co.uk	-->
<!-- brian@suda.co.uk	-->

<!-- stdfunctions.js	-->
<!-- version 2.1		-->
<!-- 2006/09/05			-->

function addLoadEvent(func){
  var oldonload=window.onload;
  if(typeof window.onload != 'function'){ window.onload = func; }
  else { window.onload = function(){ oldonload(); func(); }; }
}

function addRibbon(){
	var Ribbon = document.createElement("img");
	Ribbon.setAttribute("src","/images/ribbon.gif");
	Ribbon.setAttribute("alt","i wrote a book");
	Ribbon.setAttribute("style","border: 0px; position: absolute; top: 0px; left: 0px");

	var RibbonLink = document.createElement("a");
	RibbonLink.setAttribute("href","/publications/0596528213/");
	RibbonLink.setAttribute("title","i wrote a book");
	RibbonLink.appendChild(Ribbon);

	var Body = document.getElementById("suda-co-uk");		
	Body.appendChild(RibbonLink);
}

function getAttribute(elem,attr){
  if(elem.getAttribute){
    a = elem.getAttribute(attr);
    if(a != null){ return a; }
  }
  if(elem.attributes && elem.attributes[attr]){ return elem.attributes[attr].value; }
  for(var i=0;i<elem.attributes.length;i++){
    if(elem.attributes[i].specified){
      if(elem.attributes[i].name == attr){ return elem.attributes[i].value; }
    }
    else { return elem.attributes[i]; }
  }
  return null;
}


function expandAbbr(){
    var abbr     = document.getElementsByTagName('abbr');
    var acronym  = document.getElementsByTagName('acronym');
    var dfn      = document.getElementsByTagName('dfn');
    var titles = "";
    var arraySize = (abbr.length + acronym.length + dfn.length);
    var abbrArray= new Array(arraySize);

        for(var i=0; i<abbr.length;i++){
          var abbrTitle = getAttribute(abbr[i],'title');
          var inArray = 0;
          var prevEntry;
          
          if (abbr.item(i).childNodes.length == 0){
            var abbrValue = '';
          } else {
            var abbrValue = abbr[i].childNodes[0].nodeValue;
          }

          prevEntry = abbrArray[0];
          for (var j=0;j<i;j++){
            if (abbrArray[j][0] == abbrValue){
              inArray = 1;
            }
          }
          if ((inArray == 0) && (abbrTitle)){
            abbrArray[i] = new Array(2)
            abbrArray[i][0] = abbrValue;
            abbrArray[i][1] = abbrTitle;
          } else {
            abbrArray[i] = new Array(2)
            abbrArray[i][0] = '';
            abbrArray[i][1] = '';
          }
        }

        for(var i=0; i<acronym.length;i++){
          var acronymTitle = getAttribute(acronym[i],'title');
          var inArray = 0;
          var prevEntry;
          
          if (acronym.item(i).childNodes.length == 0){
            var acronymValue = '';
          } else {
            var acronymValue = acronym[i].childNodes[0].nodeValue;
          }

          prevEntry = abbrArray[0];
          for (var j=0;j<i;j++){
            if (abbrArray[j][0] == acronymValue){
              inArray = 1;
            }
          }
          if ((inArray == 0) && (acronymTitle)){
            abbrArray[i+abbr.length] = new Array(2)
            abbrArray[i+abbr.length][0] = acronymValue;
            abbrArray[i+abbr.length][1] = acronymTitle;
          } else {
            abbrArray[i+abbr.length] = new Array(2)
            abbrArray[i+abbr.length][0] = '';
            abbrArray[i+abbr.length][1] = '';
          }
		}
		
		for(var i=0; i<dfn.length;i++){
          var dfnTitle = getAttribute(dfn[i],'title');
          var inArray = 0;
          var prevEntry;
          
          if (dfn.item(i).childNodes.length == 0){
            var dfnValue = '';
          } else {
            var dfnValue = dfn[i].childNodes[0].nodeValue;
          }

          prevEntry = abbrArray[0];
          for (var j=0;j<i;j++){
            if (abbrArray[j][0] == dfnValue){
              inArray = 1;
            }
          }
          if ((inArray == 0) && (dfnTitle)){
            abbrArray[i+abbr.length+acronym.length] = new Array(2)
            abbrArray[i+abbr.length+acronym.length][0] = dfnValue;
            abbrArray[i+abbr.length+acronym.length][1] = dfnTitle;
          } else {
            abbrArray[i+abbr.length+acronym.length] = new Array(2)
            abbrArray[i+abbr.length+acronym.length][0] = '';
            abbrArray[i+abbr.length+acronym.length][1] = '';
          }
		}


        abbrArray = abbrArray.sort(sortByAbbr);
        var bodyRef = document.getElementsByTagName("body").item(0);
        var divPrint = document.createElement("div");
        divPrint.setAttribute("id","printonly");
        var AbbrDL = document.createElement("dl");
        for(var k=0;k<abbrArray.length;k++){
          if (abbrArray[k][1] != ''){
          
            var AbbrDT = document.createElement("dt");
            var AbbrDD = document.createElement("dd");

            var TextAbbrDT = document.createTextNode(abbrArray[k][0]);
            var TextAbbrDD = document.createTextNode(abbrArray[k][1]);
            
            AbbrDT.appendChild(TextAbbrDT);
            AbbrDD.appendChild(TextAbbrDD);
            AbbrDT.setAttribute("id","index-"+abbrArray[k][0]);

            AbbrDL.appendChild(AbbrDT);
            AbbrDL.appendChild(AbbrDD);
          }
        }
        divPrint.appendChild(AbbrDL);        
        bodyRef.appendChild(divPrint);
                
        return true;
}

function sortByAbbr (a, b) {
//        a = a.toLowerCase();
//        b = b.toLowerCase();
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}
  addLoadEvent(function(){
    if(document.getElementById){expandAbbr();}
  });
// addLoadEvent(addRibbon);

