<!-- // Hide script from old browsers

var activeLine = '';
var activeId = '';
var activeName = '';

function init() {
	updateRowColor();
}

function getHref() {
	href = location.href;
	array = href.split('?');
	return array[0];
}
    
function updateRowColor() {
	var counter =1;
	var line;
	for(var i=1;i<=Maxnum;i++){
		line = document.getElementById('line'+i);
		if (!(i == activeLine)) {
			if ((counter % 2)==0) {
				line.style.backgroundColor = "#EAF2FF";	
			}
			else {
				line.style.backgroundColor = "#d1d9f3";
			}
		}
		if (line.parentNode.style.display == "block") {
			if (getLevel(line)) {
				counter++;
			}
		}
	}
}

function getLevel(line) {
	var obj = line.parentNode.id;
	if (obj.substr(0,6) == "folder") {
		// get upper level
		value = getLevel(line.parentNode);
		if (value == false || line.parentNode.style.display == "none") {
			return false;
		}
		else {
			return true;
		}
	}
	return true;
}

function expandAll(startDiv) {
	var divObj = document.getElementById(startDiv);
	if (divObj == "object") {
		for (var i=0;i<divObj.childNodes.length;i++) {
			if (divObj.childNodes[i].nodeName == "DIV" && divObj.childNodes[i].id.substr(0,6) == "folder") {
				toggleFolder(divObj.childNodes[i].id, document.getElementById("image" + divObj.childNodes[i].id.substr(6)));
				expandAll(divObj.childNodes[i].id);
			}
		}
	}
}

function closeAll(startDiv) {
	expandAll(startDiv);
	var divObj = document.getElementById(startDiv);
	for (var i=0;i<divObj.childNodes.length;i++) {
		if (divObj.childNodes[i].nodeName == "DIV" && divObj.childNodes[i].id.substr(0,6) == "folder") {
			toggleFolder(divObj.childNodes[i].id, document.getElementById("image" + divObj.childNodes[i].id.substr(6)));
			expandAll(divObj.childNodes[i].id);
		}
	}
}

function expandItem(theID, startDiv) {
	var divObj = document.getElementById(startDiv);
	var found = false;
	for (var i=0;i<divObj.childNodes.length;i++) {
		if (divObj.childNodes[i].nodeName == "DIV" && divObj.childNodes[i].id.substr(0,6) == "folder") {
			found = expandItem(theID, divObj.childNodes[i].id);
			if (divObj.childNodes[i].id == "folder" + theID) {
				// current element found
				toggleFolder(divObj.childNodes[i].id, document.getElementById("image" + divObj.childNodes[i].id.substr(6)));
				return true;
			}
			if (found) {
				toggleFolder(divObj.childNodes[i].id, document.getElementById("image" + divObj.childNodes[i].id.substr(6)));
				return true;
			}
		}
	}
	return found;
}

function toggleFolder(id, imageNode) {
	var folder = document.getElementById(id);
	var l = imageNode.src.length;
	if (imageNode.src.substring(l-21,l)=="tree_folderclosed.png" || imageNode.src.substring(l-19,l)=="tree_folderopen.png") {
		imageNode = imageNode.previousSibling;
		l = imageNode.src.length;
	}
	if (folder == null) {
	} 
	else if (folder.style.display == "block")  {
		if (imageNode != null) {
			imageNode.nextSibling.src = "../images/sitemap/tree_folderclosed.png";
			if (imageNode.src.substring(l-14,l) == "tree_mnode.png") {
				imageNode.src = "../images/sitemap/tree_pnode.png";
			}
			else if (imageNode.src.substring(l-18,l) == "tree_mlastnode.png") {
				imageNode.src = "../images/sitemap/tree_plastnode.png";
			}
		}
		folder.style.display = "none";
	} 
	else {
		if (imageNode != null) {
			imageNode.nextSibling.src = "../images/sitemap/tree_folderopen.png";
			if (imageNode.src.substring(l-14,l) == "tree_pnode.png") {
				imageNode.src = "../images/sitemap/tree_mnode.png";
			}
			else if (imageNode.src.substring(l-18,l) == "tree_plastnode.png") {
				imageNode.src = "../images/sitemap/tree_mlastnode.png";
			}
		}
		folder.style.display = "block";
	}
	//updateRowColor();
}

// DOM Navigation functions
// James Gregory 2006 (j.gregory@metalmadness.co.uk)
	
function getNextElement(start, identity, children)
{
	var next, first = arguments[3];
	
	next = (typeof start == 'string') ? document.getElementById(start) : start;
	if (!first) first = next;
	if (!children) children = true;

	do {
		if (!next) {
			return null;
		} else if (next != first && (!identity || isType(next, identity))) {
			return next;
		} else {
			if (children && next.hasChildNodes()) {
				var inner = getFirstChild(next, identity);
				
				if (inner) return inner;
			}
			
			if (next.nextSibling) {
				next = next.nextSibling;
			} else {
				next = getNextElement(getNextParent(next), identity, children, start);
			}
		}
	} while (next)
}

function getPreviousElement(start, identity, children)
{
	var next, first = arguments[3];
	
	next = (typeof start == 'string') ? next = document.getElementById(start) : start;
	if (!first) first = next;
	if (!children) children = true;
	
	do {
		if (!next) {
			return null;
		} else if (next != first && (!identity || isType(next, identity))) {
			return next;
		} else {
			var inner;
			
			if (children && next.hasChildNodes()) {
				inner = getLastChild(next, identity);
				
				if (inner) return inner;
			}

			if (next != first && children && next.hasChildNodes() && inner) {
				return inner;
			} else if (next.previousSibling) {
				next = next.previousSibling;
			} else if (next.parentNode != first && (!identity || isType(next.parentNode, identity))) {
				return next.parentNode;
			} else {
				var parent = next.parentNode;
				
				do {
					if (parent != first && (!identity || isType(parent, identity))) {
						return parent;
					}
					
					parent = parent.parentNode;
				} while (parent)
				next = getPreviousParent(next);
			}
		}
	} while (next)
}

function getFirstChild(el, identity) { return getChild(el, identity, 'forward'); }
function getLastChild(el, identity) { return getChild(el, identity, 'backward'); }

function getChild(el, identity, direction)
{
	if (typeof el == 'string') el = document.getElementById(el);
	
	if (!direction || direction == 'forward') {
		for (var i = 0; i < el.childNodes.length; i++) {
			if (!identity || isType(el.childNodes[i], identity)) {
				return el.childNodes[i];
			} else if (el.childNodes[i].hasChildNodes()) {
				return getChild(el.childNodes[i], identity, direction);
			}
		}
	} else if (direction == 'backward') {
		for (var i = (el.childNodes.length - 1); i > 0; i--) {
			if (!identity || isType(el.childNodes[i], identity)) {
				return el.childNodes[i];
			} else if (el.childNodes[i].hasChildNodes()) {
				return getChild(el.childNodes[i], identity, direction);
			}
		}
	}
	
	return null;
}

function isType(el, identity)
{
	if (typeof el == 'string') el = document.getElementById(el);

	if (!isNaN(identity)) {
		return (el.nodeType == identity);
	} else {
		return (el.tagName == identity.toUpperCase());
	}
}

function getNextParent(el) { return getParentAdjacent(el, 'forward'); }
function getPreviousParent(el) { return getParentAdjacent(el, 'backward'); }

function getParentAdjacent(el, direction)
{
	var next;
	
	if (!direction) direction = 'forward';
	next = (typeof el == 'string') ? document.getElementById(el).parentNode : el.parentNode;
	
	do {
		if (!next) {
			return null;
		} else if (direction == 'forward' && next.nextSibling) {
			return next.nextSibling;
		} else if (direction == 'backward' && next.previousSibling) {
			return next.previousSibling;
		} else {
			return getParentAdjacent(next, direction); 
		}
	}
	while (next)
}