// 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; };
		if(As[i].className.indexOf("_popup") > -1) As[i].onclick = function() { window.open(this.getAttribute("href"), "", "resizable=yes,scrollbars=yes,status=no,width=700,height=650"); 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);
