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


document.getElementsByClassName = function($name) {
	var $results = new Array();
	var $elements = document.getElementsByTagName("*");
	for (var $i=0; $i<$elements.length; $i++) {
		var $classes = $elements[$i].className.split(" ");
		for (var $j=0; $j<$classes.length; $j++) {
			if ($classes[$j] == $name) {
				$results[$results.length] = $elements[$i];
			}
		}
	}
	return $results;
};


var $xmlHttp;
function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		$xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		$xmlHttp = new XMLHttpRequest();
	}
}


function insertAfter($new_element, $target_element) {
	var $parent = $target_element.parentNode;
	
	if ($parent.lastChild == $target_element) {
		$parent.appendChild($new_element);
	}
	else {
		$parent.insertBefore($new_element,$target_element.nextSibling);
	}
}


function removeNode($node) {
	var $parent_node = $node.parentNode;
	var $handle = $parent_node.removeChild($node);
	return $handle;
}


function getCookie($name) {
	var $start = document.cookie.indexOf($name + "=" );
	var $length = $start + $name.length + 1;
	if (!$start && $name != document.cookie.substring(0, $name.length)) {
		return false;
	}
	if ($start == -1) {
		return false;
	}
	var $end = document.cookie.indexOf(";", $length);
	if ($end == -1) {
		$end = document.cookie.length;
	}
	return unescape(document.cookie.substring($length,$end));
}


function activateTCA() {
	/* Please note I do not recommend the use of innerHTML. However in
	this circumstance it provides far faster, more efficient results.
	This function should be executed on document load. */
	var $body = document.getElementsByTagName('body')[0];
	var $html = $body.innerHTML.replace(/><!--TCA/g,'');
	$html = $html.replace(/TCA-->/g,'>');
	$body.innerHTML = $html
}
addLoadEvent(activateTCA);


document.getElementsByAttribute = function($attribute,$value) {
	var $results = new Array();
	var $elements = document.getElementsByTagName("*");
	for (var $i=0; $i<$elements.length; $i++) {
		if (!$elements[$i].getAttribute($attribute)) continue;
		var $attributes = $elements[$i].getAttribute($attribute).split(" ");
		for (var $j=0; $j<$attributes.length; $j++) {
			if ($attributes[$j] == $value) {
				$results[$results.length] = $elements[$i];
			}
		}
	}
	return $results;
}
