function getElementsByClass(node,searchClass,tag) {
	var classElements = new Array();
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function correctPng() { // correctly handle PNG transparency in Win IE 5.5 or higher.
	var pngImages = getElementsByClass(document,"pngImage","*");
	var numberOfPngImages = pngImages.length;
	for(var x=0; x<numberOfPngImages; x++) {
		if (is_ie) {
		 	var img = pngImages[x];
		 	img.style.cssText = 'display:block;';
			var imgID = (img.id) ? "id='" + img.id + "' " : "";
			var imgClass = (img.className) ? "class='" + img.className + "' " : "";
			var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
			var imgStyle = "display:inline-block;";// + img.style.cssText;
			var imgAttribs = img.attributes;
			for (var j=0; j<imgAttribs.length; j++) {
				var imgAttrib = imgAttribs[j];
				if (imgAttrib.nodeName == "align") {
					if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle;
					if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle;
					break;
				}
			}
			var strNewHTML = "<span " + imgID + imgClass + imgTitle;
			strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";";
			strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";
			strNewHTML += "(src=\'" + img.src + "\', sizingMethod='scale');\""+">"+"<"+"/span"+">";
			img.outerHTML = strNewHTML;
		 } else {
		 	var img = pngImages[x];
		 	img.style.cssText = 'display:block;';
		 }

	}
 }

 function showFaqItem(faqItem) {
	// let's hide them all!!
	var faqAnswers = document.getElementsByTagName('div');
	for (var i=0;i<faqAnswers.length;i++) {
		if (faqAnswers[i].className=='faqAnswer') {
			faqAnswers[i].style.display = 'none';
		}
	}

	var itemAnswers = faqItem.getElementsByTagName('div');
	for (var i=0;i<itemAnswers.length;i++) {
		if (itemAnswers[i].className=='faqAnswer') {
			itemAnswers[i].style.display = '';
		}
	}

}

function initFaqs() {
	var faqItems = document.getElementsByTagName('div');
	for (var i=0;i<faqItems.length;i++) {
		if (faqItems[i].className=='faqItem') {
			faqItems[i].onclick = function() {
				showFaqItem(this);
			}
		}
		if (faqItems[i].className=='faqAnswer') {
			faqItems[i].style.display = 'none';
		}
	}
}

function initPage() {
	var contentDiv;
	fixContainer();
	correctPng();
	initFaqs();
	contentDiv = document.getElementById('contentDiv');
	contentDiv.style.display = 'block';
}

function fixContainer() {
	var browserHeight, browserWidth, containerDiv, containerTop, containerLeft;

	browserHeight = getBrowserHeight();
	browserWidth = getBrowserWidth();
	containerDiv = document.getElementById('containerDiv');

	containerTop = ((browserHeight/2)-(xHeight(containerDiv)/2));
	containerLeft = ((browserWidth/2)-(xWidth(containerDiv)/2));

	containerDiv.style.marginLeft = '0px';
	containerDiv.style.marginTop = '0px';
	if (containerTop>=0) containerDiv.style.top = containerTop+'px';
	else containerDiv.style.top = '0px';
	if (containerLeft>=0) containerDiv.style.left = containerLeft+'px';
	else containerDiv.style.left = '0px';
	return true;
}

function getPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getBrowserHeight() {
	var browserHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
    	//Non-IE
    	browserHeight = window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
    	//IE 6+ in 'standards compliant mode'
    	browserHeight = document.documentElement.clientHeight;
	} else if (document.body && document.body.clientHeight) {
    	//IE 4 compatible
    	browserHeight = document.body.clientHeight;
	}
	return browserHeight;
}

function getBrowserWidth() {
	var browserWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
    	//Non-IE
    	browserWidth = window.innerWidth;
	} else if (document.documentElement && document.documentElement.clientWidth) {
    	//IE 6+ in 'standards compliant mode'
    	browserWidth = document.documentElement.clientWidth;
	} else if (document.body && document.body.clientWidth) {
    	//IE 4 compatible
    	browserWidth = document.body.clientWidth;
	}
	return browserWidth;
}

xAddEventListener(window, 'resize', fixContainer);
xAddEventListener(window, 'scroll', fixContainer);
xAddEventListener(window, 'load', initPage);