document.getElementsByClassName = function(className, parentElement) {
	if (typeof parentElement == 'string'){
		parentElement = document.getElementById(parentElement);
	}
	else if (typeof parentElement != 'object' || typeof parentElement.tagName != 'string') {
    	parentElement = document.body;
	}
	var children = parentElement.getElementsByTagName('*');
	var re = new RegExp('\\b' + className + '\\b');
	var el, elements = [];
	var i = 0;
	while ( (el = children[i++]) ){
	if ( el.className && re.test(el.className)){
		elements.push(el);
	}
  }
  return elements;
}

document.loadJavascript = function(filename) {
	var jsObj = document.createElement('script');
	jsObj.setAttribute('type', 'text/javascript');
	jsObj.setAttribute('src', filename);
	document.getElementsByTagName('head')[0].appendChild(jsObj);
}

document.loadCSS = function(filename) {
	var cssObj = document.createElement('link');
	cssObj.setAttribute('rel', 'stylesheet');
	cssObj.setAttribute('type', 'text/css');
	cssObj.setAttribute('href', filename);
	document.getElementsByTagName('head')[0].appendChild(cssObj);
}

function newWin (element) {
	if ((element.href) && (element.href.indexOf("#") != (element.href.length - 1))) {
		window.open(element.href);
		return false;
	}
	return true;
}
