function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function GenerateXmlDocument(xmlString)
{
	var document = null;
	if(window.ActiveXObject)
	{
		document = new ActiveXObject("Microsoft.XMLDOM");
		document.async = "false";
		document.loadXML(xmlString);
	}
	else if(window.XMLHttpRequest)
	{
		var parser = new DOMParser();
		document = parser.parseFromString(xmlString, "text/xml"); 
	}
	return document;
}

function ShowModalDialog(url, width, height)
{
	url = url + "&dummy=" + Math.random();
	if(window.showModalDialog)
		window.showModalDialog(url, window.self, "dialogWidth:" + width + "px;dialogHeight:" + height + "px;status:no;help:no;center:yes;resizable:no;scroll:no;");
	else
	{
		var dialog = window.open(url, "_blank", "width=" + width + ",height=" + height + ",left=" + ((screen.availWidth - width)/2) + ",top=100,toolbar=no,status=no,scrollbars=yes,resizable=no,modal=yes");
		dialog.dialogArguments = window.self;
	}
}
