// www.corporateedge.co.uk - common javascript functions

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}

function areaMouseClick(href) {
	var divId
	var objMap = document.getElementsByTagName("map")[0];
	var arrAreas = objMap.getElementsByTagName("area");
	for (var i = 0; i < arrAreas.length; i++) {
		divId = arrAreas[i].getAttribute("href").split("#")[1];
		document.getElementById(divId).className = "hidden";
	}
	divId = href.split("#")[1]
	var objDiv = document.getElementById(divId)
	objDiv.className = "mouseover";
}

function addCloseLink(div) {
	var newPara = document.createElement("p");
	var newLink = document.createElement("a");
	newLink.setAttribute("href","#");
	newLink.onclick = function() {
		this.parentNode.parentNode.className = "hidden";
		return false;
	}
	var newLinkText = document.createTextNode("Close");
	newLink.appendChild(newLinkText);
	newPara.appendChild(newLink);
	newPara.className = "close";
	div.insertBefore(newPara,div.firstChild);
}

function setupImageMap() {
	if (!document.getElementById) return false;
	if (!document.getElementsByTagName) return false;
	if (!document.getElementsByTagName("map")[0]) return false;
	var objMap = document.getElementsByTagName("map")[0];
	var arrAreas = objMap.getElementsByTagName("area");
	var divId
	var objDiv
	for (var i = 0; i < arrAreas.length; i++) {
		arrAreas[i].onclick = function() {
			areaMouseClick(this.href);
			return false;
		}
		divId = arrAreas[i].getAttribute("href").split("#")[1];
		objDiv = document.getElementById(divId);
		objDiv.className = "hidden";
		addCloseLink(objDiv);
	}
	var newPara = document.createElement("p");
	var newBreak = document.createElement("br");
	var newParaText = document.createTextNode("Click headings to view more information");
	newPara.appendChild(newBreak);
	newPara.appendChild(newParaText)
	var divPrimary = document.getElementById("primary");
	var objImage = divPrimary.getElementsByTagName("img")[0];
	insertAfter(newPara,objImage);
}
addLoadEvent(setupImageMap);

function setupSections() {
	var arrSections = Array();
	if (!document.getElementById) return false;
	if (!document.getElementsByTagName) return false;
	if (!document.getElementsByTagName("div")[0]) return false;
	var arrDivs = document.getElementsByTagName("div");
	// hide sections and create navigation
	var j = 0
	var divObject
	var newPara
	var newLinkNext
	var newLinkPrevious
	var newNext
	var newPrevious
	for (var i = 0; i < arrDivs.length; i++) {
		if (arrDivs[i].getAttribute("id").indexOf("section") == -1) continue;
		if (arrDivs[i].getAttribute("id").split("-")[1] != "1") arrDivs[i].style.display = "none";
		j++;
	}
	if (j == 0 ) return false;
	for (i = 1; i <= j; i++) {
		divObject = document.getElementById("section-"+i);
		newPara = document.createElement("p")
		newPara.className = "section-nav";
		if (i > 1) {
			newLinkPrevious = document.createElement("a");
			newPrevious = document.createTextNode("Previous");
			newLinkPrevious.appendChild(newPrevious);
			newLinkPrevious.setAttribute("href","#section-"+(i-1));
			newLinkPrevious.onclick = function() {
				document.getElementById(this.href.split("#")[1]).style.display = "block";
				this.parentNode.parentNode.style.display = "none";
			}
			newLinkPrevious.className = "previous";
			newPara.appendChild(newLinkPrevious);
		}
		if (i < j) {
			newLinkNext = document.createElement("a");
			newNext = document.createTextNode("Next");
			newLinkNext.appendChild(newNext);
			newLinkNext.setAttribute("href","#section-"+(i+1));
			newLinkNext.onclick = function() {
				document.getElementById(this.href.split("#")[1]).style.display = "block";
				this.parentNode.parentNode.style.display = "none";
				return false;
			}
			newLinkNext.className = "next";
			newPara.appendChild(newLinkNext);
		}
		insertAfter(newPara, divObject.lastChild);
	}
}
addLoadEvent(setupSections);