function registerInitFunction(fn) {
	if (!document.initFunctions) document.initFunctions=[];
	document.initFunctions.push(fn);
}

window.onload=function() {
	if (!document.initFunctions) return;
	for (var i=0; i<document.initFunctions.length; i++) {
		var initFunction=document.initFunctions[i];
		initFunction();
	}
};

function getElementsByClassName(className,tagName,containerElement){
	var classNameRegExp=new RegExp("(^|\\s)"+className+"(\\s|$)");
	var tagName=tagName || "*";
	var containerElement=containerElement || document;
	var elements=containerElement.getElementsByTagName(tagName);
	var returnElements=[];
	var element;
	var elementCount=elements.length;
	for(var i=0; i<elementCount; i++){
		element=elements[i];
		if(classNameRegExp.test(element.className)){
			returnElements.push(element);
		}
	}
	return returnElements;
}

function OpenWindow(name,height,width,left) {
	var attributes="scrollbars,resizable,alwaysRaised,dependent";
	if (height!=null) attributes=attributes+",height="+height;
	if (width!=null) attributes=attributes+",width="+width;
	if (left!=null) attributes=attributes+",left="+left;
	open("about:blank",name,attributes).focus();
}

function getAbsoluteURL(relativePath) {
	if (relativePath==null) return null;
	if (relativePath.length==0) return location.href;
	if (relativePath.charAt(0)=='/') return getRootURL()+relativePath;
	var url=location.href;
	while (true) {
		var lastSlashPos=url.lastIndexOf("/");
		url=url.substring(0,lastSlashPos);
		if (relativePath.substring(0,3)!="../") break;
		relativePath=relativePath.substring(3);
	}
	return url+'/'+relativePath;
}

function getRootURL() {
	return location.href.substring(0,location.href.length-location.pathname.length);
}

function getQueryStringValue(parameter) {
	if (!location.search) return null;
	var parameterStart=location.search.indexOf(parameter+"=");
	if (parameterStart==-1) return null;
	var value=location.search.substring(parameterStart+parameter.length+1);
	var valueEnd=value.indexOf("&");
	if (valueEnd!=-1) value=value.substring(0,valueEnd);
	return value;
}

function OpenSmallWindow() {
	OpenWindow("popup",200);
}
