function replaceAll(str, from, to) {
	var strReplaceAll = str;
	var intIndexOfMatch = strReplaceAll.indexOf(from); 

	while (intIndexOfMatch != -1) {
		strReplaceAll = strReplaceAll.replace(from, to)  
		intIndexOfMatch = strReplaceAll.indexOf(from);
	}
	return strReplaceAll;
}

// if epp = true => without point to point
function selectAll(epp) {
	var elements = document.getElementsByTagName('input');
	for (i=0; i<elements.length; i++) {
		if (elements[i].attributes.getNamedItem('type').value == 'checkbox') {
			if (elements[i].id != '') {
				if (epp && replaceAll(elements[i].id, '_', '').substring(0, 19) == 'PointtoPointTickets') elements[i].checked = false;
				else elements[i].checked = true;
			}
		}
	}
}

// if epp = true => without point to point
function deselectAll(epp) {
	var elements = document.getElementsByTagName('input');
	for (i=0; i<elements.length; i++) {
		if (elements[i].attributes.getNamedItem('type').value == 'checkbox') {
			if (elements[i].id != '') {
				if (epp) {
					if (elements[i].id.substring(0, 22) == 'Point_to_Point_Tickets') elements[i].checked = false;	
				}
				else elements[i].checked = false;
			}
		}
	}
}

function setSelection(id) {
	var elements = document.getElementById(id).parentNode.childNodes[4].childNodes;
	var value = document.getElementById(id).checked;
	
	
	for (var i in elements) {
		if(elements[i].tagName == 'LI') {
			elements[i].childNodes[1].checked = value;
			var newid = elements[i].childNodes[1].id;
			
			if (document.getElementById(newid).parentNode.childNodes.length > 4) {
				var sub_elements = document.getElementById(newid).parentNode.childNodes[4].childNodes;
				for (var n in sub_elements) {
					if(sub_elements[n].tagName == 'LI') {
						sub_elements[n].childNodes[1].checked = value;
					}
				}
			}
		}
	}		
}

function toggle(id) {
	var ul = document.getElementById(id).nextSibling.nextSibling.nextSibling;
	var img = document.getElementById(id).previousSibling;
	
	if (ul.style.display == 'none') {
		img.src = 'images/mnode.gif';
		ul.style.display = 'block';
	} else {
		img.src = 'images/pnode.gif';
		ul.style.display = 'none';
	}
}

function expandAll() {
	var elements = document.getElementsByTagName('ul');
	for (var i in elements) {
		if (elements[i].className == 'display') {
			elements[i].style.display = 'block';
			elements[i].previousSibling.previousSibling.previousSibling.previousSibling.src = 'images/mnode.gif';
		}
	}
}

function collapseAll() {
	var elements = document.getElementsByTagName('ul');
	for (var i in elements) {
		if (elements[i].className == 'display') {
			elements[i].style.display = 'none';
			elements[i].previousSibling.previousSibling.previousSibling.previousSibling.src = 'images/pnode.gif';
		}
	}
}