// Replace getElementById and getElementByTagName functions
function id(elem) { return document.getElementById(elem); };
function tag(tag, elem) { return (elem || document).getElementsByTagName(tag); };

// Replace 'new window' links
function linkReplace() {
	var As = tag("a");
	for(var i = 0; i < As.length; i++) if(As[i].className.indexOf("_blank") > -1) As[i].onclick = function() { window.open(this.getAttribute("href")); return false; };
};

// Extend Search functionality
function setSearch() {
	var  INPUT = id("ftSearch");
	if(INPUT) {
		if(INPUT.value == "" || INPUT.value == "Search...") {
			INPUT.className += " default";
			INPUT.value = "Search...";
		};
		INPUT.onfocus = function() { 
			if(this.value == "Search...") this.value = "";
			this.className = this.className.replace(/\s?default/, "");
		};
		INPUT.onblur = function() { 
			if(this.value == "") this.value = "Search...";
			this.className += " default";
		};
		id("search").onsubmit = function() { 
			var INPUT = id("ftSearch");
			INPUT.focus();
			return !(INPUT.value == "" || INPUT.value == "Search...");
		};
	};
};
		
// Remove whitespace nodes in DOM tree
function removeWhitespace(elem, includeChildNodes) {
	if(typeof(elem) == "string") elem = id(elem);
	var n = elem.firstChild;
	while(n) {
		var nn = n.nextSibling;
		if(n.nodeType == 3 && !/\S/.test(n.nodeValue)) {
			elem.removeChild(n);
		} else if(n.nodeType == 1 && includeChildNodes) {
			removeWhitespace(n, true);
		};
		n = nn;
	};	
};

// Add new function to run when DOM loaded
function addDOMLoadEvent(func) {
	var oldOnDOMLoadEvents = window.onDOMLoadEvents;
	if(typeof(window.onDOMLoad) == "function") {
		window.onDOMLoadEvents = function() {
			if(oldOnDOMLoadEvents) oldOnDOMLoadEvents();
			func();
		};
	} else {
		window.onDOMLoadEvents = func;
	};
};

// DOM loaded function
function onDOMLoad() {
	if(arguments.callee.done) return;
	arguments.callee.done = true;
	if(typeof(window.onDOMLoad) == "function") onDOMLoadEvents();
};

// Setup call to onDOMLoad() after DOM is loaded
if(document.addEventListener) document.addEventListener("DOMContentLoaded", onDOMLoad, false);
/*@cc_on @*/ /*@if (@_win32) document.write("<script id=\"IE_onDOMLoad\" defer=\"defer\" src=\"javascript:void(0)\;\"><\/script>"); document.getElementById("IE_onDOMLoad").onreadystatechange = function() { if (this.readyState == "complete") onDOMLoad(); }; /*@end @*/
if (/KHTML|WebKit/i.test(navigator.userAgent)) { var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) onDOMLoad(); }, 1); };
window.onload = onDOMLoad;

// Add DOMLoaded functions
addDOMLoadEvent(linkReplace);
addDOMLoadEvent(setSearch);
