var plus_box = new Image();
plus_box.src = '/assets/images/plus_box.gif';
var minus_box = new Image();
minus_box.src = '/assets/images/minus_box.gif';

function toggleParentMenuItem(obj, plus_img_src, minus_img_src) {
	var plus_img;
	if(cache_img[plus_img_src]) {
		plus_img = cache_img[plus_img_src];
	} else {
		plus_img = new Image();
		plus_img.src = plus_img_src;
	}
	var minus_img;
	if(cache_img[minus_img_src]) {
		minus_img = cache_img[minus_img_src];
	} else {
		minus_img = new Image();
		minus_img.src = minus_img_src;
	}
	if(obj) {
		var img = getFirstChildByTagName(obj, 'img');
		var child_tr = getNextSiblingByTagName(obj, 'tr');
		if(img.src == plus_img.src) {
			// Currently Closed - Open
			img.src = minus_img.src;
			if(child_tr) {
				child_tr.style.display = '';
			}
		} else {
			// Currently Open - Close
			img.src = plus_img.src;
			if(child_tr) {
				child_tr.style.display = 'none';
			}
		}
	}
}

function toggleMenuItem(obj) {
	if(obj) {
		var img = getFirstChildByTagName(obj, 'img');
		var child_tr = getNextSiblingByTagName(obj, 'tr');
		if(img.src == plus_box.src) {
			// Currently Closed - Open
			img.src = minus_box.src;
			if(child_tr) {
				child_tr.style.display = '';
			}
		} else {
			// Currently Open - Close
			img.src = plus_box.src;
			if(child_tr) {
				child_tr.style.display = 'none';
			}
		}
	}
}

function getFirstChildByTagName(obj, tag_name) {
	var elmnts = obj.getElementsByTagName(tag_name);
	if(elmnts.length > 0) {
		return elmnts[0];
	} else {
		return null;
	}
}
function getParentByTagName(obj, tag_name) {
	if(obj.parentNode) {
		if(obj.parentNode.tagName && obj.parentNode.tagName.toLowerCase() == tag_name.toLowerCase()) {
			return obj.parentNode;
		} else {
			return getParentByTagName(obj.parentNode, tag_name);
		}
	} else {
		return false;
	}
}
function getNextSiblingByTagName(obj, tag_name) {
	if(obj.nextSibling) {
		if(obj.nextSibling.tagName && obj.nextSibling.tagName.toLowerCase() == tag_name.toLowerCase()) {
			return obj.nextSibling;
		} else {
			return getNextSiblingByTagName(obj.nextSibling, tag_name);
		}
	} else {
		return false;
	}
}