String.prototype.trim = function () {
  return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};

function removeEmptyLists() {
 	var uls = document.getElementsByTagName("ul");
	for (i=0; i < uls.length; i++) {
		var children = uls[i].childNodes;
		var save = false;
		for (j = 0; j < children.length; j++) {
			if (children[j].nodeName == "li") {
				save=true;
				break;
			}
		}
		if (!save || uls[i].innerHTML && !uls[i].innerHTML.trim()) {
			parent = uls[i].parentNode;
			parent.removeChild(uls[i]);
			removed = true;
		}
	}
	if (removed) alert("removed empty ULs");

}




// For IE6 ensure that the flyout menu works
startList = function() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("nav");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
   				}
   			}
		}
	}
}

// Use ajax to load ads after page load
    function getHttpRequest() {
        var http = false;
        if(navigator.appName == "Microsoft Internet Explorer") {
          http = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
           http = new XMLHttpRequest();
        }
        return http;
    }

    function replace(query, idToReplace) {
      var http = getHttpRequest();
      http.open("GET", "http://www.woodcentral.com/cgi-bin/ads.pl?"+query, true);
      http.onreadystatechange=function() {
        if(http.readyState == 4) {
          document.getElementById(idToReplace).innerHTML = http.responseText;
        }
      }
      http.send(null);
    }



// convert large images to lightbox thumbnails
function fixImages() {
    var contentbox = document.getElementById("bbcontent-message");
    if (!contentbox) {
	return;
    }
    if (!contentbox.getElementsByTagName) {
	alert("no getElements");
	return;
    }
    var images = contentbox.getElementsByTagName("img");

    var count = 0;
    for (i=0; i<images.length; i++){
        var currentImage = images[i];
	if (!shouldConvert(currentImage)) {
	    continue;
	}

	//set width to 200px if not already done
	var width = currentImage.getAttribute('width');
	if (typeof(width) == "number") {
	    currentImage.setAttribute('width', 200);
	} else {
	    currentImage.setAttribute('width', '200px');
	}
	var parent = currentImage.parentNode;
	var link;
	if (parent.tagName.toLowerCase() != "a") { // encase in link tag

	    link = document.createElement("a");
	    var targetloc = currentImage.getAttribute("src");
	    link.setAttribute("href", targetloc);
	    parent.replaceChild(link, currentImage);
	    link.appendChild(currentImage);
	    link.setAttribute("rel", "lightbox");

	} else {
	    link = parent;
            link.setAttribute("rel", "lightbox");
	    //link.removeAttribute("target");
	}

	// encase link href in center tags
	parent = link.parentNode;
        var para;
	if (parent.tagName && parent.tagName.toLowerCase() != "p") {
	    para = document.createElement("p");
	    para.setAttribute("align", "center");
	    var em = document.createElement("em");
	    em.innerHTML = "Click on the image to see it full-size";
	    para.appendChild(em);
            var br = document.createElement("br");
	    para.appendChild(br);
	    parent.replaceChild(para, link);
            para.appendChild(link);
	} else {
            para = parent;
	    para.setAttribute("align", "center");
	}
	count++;
    }

}

function shouldConvert(image) {
    var src = image.getAttribute("src");
    if (src) {
    	if (src.indexOf("ads.pl") >= 0 ||
	src.indexOf("www.woodcentral.com/ads/") >= 0 ||
	src.indexOf("newstar2.gif") >= 0) return false;
    }
    var width = image.getAttribute("width");
    if (!width) return true;
    if (typeof(width) == "string") {
	width = parseInt(width);
    }
    return (width > 300);
}



// load ad after page load
function amazon() {
   var amz = "http://rcm.amazon.com/e/cm?t=woodcentral-20&o=1&p=40&l=ur1&category=books&banner=1QX5S3SEEFM6BE9P4VG2&f=ifr";
   var iframeobject = document.getElementById("amziframe");
   iframeobject.src = amz;
}


//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEventLocal(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		
		    if (oldonload) {
			oldonload();
		    }
		    func();
		}
	}

}

function replaceRandomNumber() {
  var srcS = "";
  var rand = "" + Math.floor(Math.random()*1001);
  var arr = document.images;
  for (i = 0; i < arr.length; i++) {
    srcS = arr[i].getAttribute("src");
    if (srcS.indexOf("INSERT_RANDOM_NUMBER_HERE") >= 0) {
      var newsrc = srcS.replace("INSERT_RANDOM_NUMBER_HERE", rand);
      arr[i].setAttribute("src", newsrc);
    }
  }  

  var hrefS = "";
  var arr = document.links;
  for (i = 0; i < arr.length; i++) {
    hrefS = arr[i].getAttribute("href");
    if (hrefS.indexOf("INSERT_RANDOM_NUMBER_HERE") >= 0) {
      var newhref = hrefS.replace("INSERT_RANDOM_NUMBER_HERE", rand);
      arr[i].setAttribute("href", newhref);
    }
  }  


}
