// SITEMAP
// +------------------------------------------------------------------------------------------------------------------------------+
// | 
// +------------------------------------------------------------------------------------------------------------------------------+
// | COPYRIGHT: (c) 2004 Cambridge New Media Ltd. (www.CambridgeNewMedia.co.uk)
// +------------------------------------------------------------------------------------------------------------------------------+
// | AUTHORS: 
// | Sean (sean@frontierit.com) - Original Code
// | Neil Champion (neil@cambridgenewmedia.co.uk)
// +------------------------------------------------------------------------------------------------------------------------------+
// | INSTRUCTIONS:
// +------------------------------------------------------------------------------------------------------------------------------+
// | COMMENTS:
// +------------------------------------------------------------------------------------------------------------------------------+
// | FILES REQUIRED FOR PROCESSING
// | Please read the instructions and comments for all included files
// | common.js (included automatically)
// +------------------------------------------------------------------------------------------------------------------------------+
// | VERSION HISTORY:
// | v 1.0     |     03.01.2004     |     Original version
// +------------------------------------------------------------------------------------------------------------------------------+

//window.onload=initTree;


window.onload=function() {
	doPreload();
	initTree();
}


function doPreload() {
	var the_images = new Array(image_folder + "sitemap_current.gif", image_folder + "sitemap_plus.gif", image_folder + "sitemap_minus.gif");
	for (var loop = 0; loop < the_images.length; loop++) {
		var an_image = new Image();
		an_image.src = the_images[loop];
	}
}


function initTree() {
	if (!document.getElementById) return;
	var aTrees = document.getElementsByTagName('UL');
	if (aTrees.length > 0) {
		for (var i = 0; i < aTrees.length; i++) {
			if (aTrees[i].className == "sitemap") {
				sitemap(aTrees[i]);
			}
		}
	}
}


function sitemap(menu) {
	var docs = menu.getElementsByTagName('LI');
	for (var i = 0; i < docs.length; i++) {
		var oHref = document.createElement("IMG");
		oHref.src = image_folder + "sitemap_current.gif";
		oHref.style.display = 'inline';
		if (docs[i].getElementsByTagName('UL').length > 0) {
			oHref.src = image_folder + "sitemap_plus.gif";
			oHref.style.cursor = 'hand';
			oHref.onmousedown = function() {
				if (this.parentNode.childNodes[2].style.display == '' || this.parentNode.childNodes[2].style.display == 'none') {
					this.parentNode.childNodes[2].style.display = 'block';
					this.src = image_folder + "sitemap_minus.gif";
					setCookie('sitemap-' + location, this.parentNode.childNodes[1].href);
				}
				else {
					this.parentNode.childNodes[2].style.display = 'none';
					this.src = image_folder + "sitemap_plus.gif";
					setCookie('sitemap-' + location, this.parentNode.parentNode.parentNode.childNodes[1].href);
				}
			}
		}
		docs[i].insertBefore(oHref,docs[i].firstChild);
	}
	/* Expand Folding Tree Menu to last setting if cookie exists */
	//var prev_setting = getCookie('sitemap-' + location);
	//if (prev_setting != 0) {
		for (var i = 0; i < docs.length; i++) {
			//if (docs[i].childNodes[1].nodeName == 'A' && docs[i].childNodes[1].href == prev_setting) {
			if (docs[i].childNodes[2].nodeName == 'UL') {
				docs[i].childNodes[2].style.display = 'block';
				docs[i].firstChild.src = image_folder + "sitemap_minus.gif";
				var q = docs[i].parentNode;
				while (q.className != 'sitemap') {
					q.firstChild.src = image_folder + "sitemap_minus.gif";
					q.style.display = 'block';
					q = q.parentNode;
				}
			}
		}
	//}
}


function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	document.cookie = curCookie;
}


function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
		begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
		end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}
