// JavaScript Document

function createAjaxObject() {
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (error) {
		try {
			// Internet Explorer 6.0+
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (error) {
			try {
				// Internet Explorer 5.5+
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (error) {
				xmlHttp = false;
			}
		}
	}
	
	return xmlHttp;
}

var resize_arr = new Array();
var resize_interval;
var resize_interval_speed = 20;
var resize_amount = 2;
var resizing = false;

function expandItem(element_id, pause) {
	var add_element = true;
	for (i = 0; i < resize_arr.length; i++) {
		if (resize_arr[i].element_id == element_id) {
			add_element = false;
		}
	}
	
	if (add_element) {
		var element = document.getElementById(element_id);
		if (element != null) {
			element.style.display = "block";
			var resize_commands = new Object();
			resize_commands.element_id = element_id;
			resize_commands.direction = "expand";
			resize_commands.original_height = 0;
			resize_commands.desired_height = element.offsetHeight;
			resize_commands.pause = pause;
			resize_arr[resize_arr.length] = resize_commands;
			element.style.overflow = "hidden";
			element.style.height = "0px";
			
			if (!resizing) {
				resize_interval = window.setInterval(resizeElements, resize_interval_speed);
				resizing = true;
			}
		}
	}
}

function collapseItem(element_id, pause) {
	var add_element = true;
	for (i = 0; i < resize_arr.length; i++) {
		if (resize_arr[i].element_id == element_id) {
			add_element = false;
		}
	}
	
	if (add_element) {
		var element = document.getElementById(element_id);
		if (element != null) {
			var resize_commands = new Object();
			resize_commands.element_id = element_id;
			resize_commands.direction = "collapse";
			resize_commands.original_height = element.offsetHeight;
			resize_commands.desired_height = 0;
			resize_commands.pause = pause;
			resize_arr[resize_arr.length] = resize_commands;
			element.style.width = "100%"; // I.E. Hack
			element.style.overflow = "hidden";
			
			if (!resizing) {
				resize_interval = window.setInterval(resizeElements, resize_interval_speed);
				resizing = true;
			}
		}
	}
}

function resizeElements() {
	var intervalNeeded = false;
	
	var i, element;
	
	for (i = 0; i < resize_arr.length; i++) {
		element = document.getElementById(resize_arr[i].element_id);
		if (resize_arr[i].direction == "expand") {
			if (element.offsetHeight < resize_arr[i].desired_height) {
				intervalNeeded = true;
				element.style.height = (element.offsetHeight + resize_amount) + "px";
			} else {
				element.style.height = resize_arr[i].desired_height + "px";
				resize_arr.splice(i, 1);
				i--;
			}
		} else if (resize_arr[i].direction == "collapse") {
			if (element.offsetHeight > resize_arr[i].desired_height && element.offsetHeight > resize_amount + 1) {
				intervalNeeded = true;
				element.style.height = (element.offsetHeight - resize_amount) + "px";
			} else {
				element.style.height = resize_arr[i].original_height + "px";
				element.style.display = "none";
				resize_arr.splice(i, 1);
				i--;
			}
		}
		if (i >= 0) {
			if (resize_arr[i].pause) {
				i = resize_arr.length;
			}
		}
	}
	
	if (!intervalNeeded) {
		window.clearInterval(resize_interval);
		resizing = false;
	}
}
