window.onload = function() {
	var faq = document.getElementById("faqContainer");
	for(var i=0; i<faq.childNodes.length; i++) {
		var node = faq.childNodes[i];
		if(!node) break;
		switch(node.nodeName.toLowerCase()) {
			case "p":
				node.style.display = "none";
				node.style.margin = "0";
				node.style.padding = "0";
				node.innerHTML+= "<br />&nbsp;";
				break;
			case "h2":
				node.onmousedown = function(e) {
					if(rollElementActive) return false;
					if(!e) var e = event ? event : window.event;
					var target = e.target;
					target.className = "opened";
					var par = target.nextSibling;
					while(par.nodeName.toLowerCase()!="p" && par.nextSibling) {
						var par = par.nextSibling;
					}
					switch(par.style.display) {
						case "block":
							target.className = "closed";
							rollElement(par,false);
							break;
						default:
							target.className = "opened";
							rollElement(par,true);
					}
					if(e.preventDefault) e.preventDefault();
					return false;
				};
				break;
		}
	}
};
var rollElementActive = false;
var rollElement = function(element,show,height,percent) {
	if((typeof element).toLowerCase()=="string") {
		var id = element;
		var element = document.getElementById(element);
	}else{
		if(element.id) {
			var id = element.id;
		}else{
			var id = "faq"+(new Date().getTime());
			element.id = id;
		}
	}
	var run = false;
	if(show) {
		if(height) {
			// recursive runs
			percent+= 25;
			if(percent>=100) percent = 100;
			element.style.height = Math.ceil(height/100*percent)+"px";
		}else{
			// first run
			if(rollElementActive) return false;
			element.style.overflow = "hidden";
			element.style.display = "block";
			var height = element.offsetHeight;
			element.style.height = "0px";
			var percent = 0;
		}
		if(percent<100) {
			var run = true;
		}else{
			element.style.overflow = "visible";
			element.style.height = "";
		}
	}else{
		if(height) {
			// recursive runs
			percent-= 25;
			if(percent<0) percent = 0;
			element.style.height = Math.ceil(height/100*percent)+"px";
		}else{
			// first run
			if(rollElementActive) return false;
			element.style.overflow = "hidden";
			element.style.display = "block";
			var height = element.offsetHeight;
			var percent = 100;
		}
		if(percent>0) {
			var run = true;
		}else{
			element.style.height = "";
			element.style.display = "none";
		}
	}
	if(run) {
		rollElementActive = true;
		window.setTimeout("rollElement('"+id+"',"+(show?"true":"false")+","+height+","+percent+")",20);
	}else{
		rollElementActive = false;
	}
};

var faqAll = function(display) {
	var faq = document.getElementById("faqContainer");
	for(var i=0; i<faq.childNodes.length; i++) {
		var node = faq.childNodes[i];
		if(!node) break;
		switch(node.nodeName.toLowerCase()) {
			case "p":
				node.style.display = display ? "block" : "none";
				break;
			case "h2":
				node.className = display ? "opened" : "closed";
				break;
		}
	}
};
