﻿// theDRMcentre client help script file
// Copyright 2006-2007 Twofour Digital Ltd - http://www.twofourdigital.com/
// This script should only be used in conjunction with, and by customers of, Twofour's theDRMcentre service

var firstStageElement = null;
var currentStageElement = null;
var startStage = null;
window.onload = function() {
	window.onresize();
	firstStageElement = firstChildElement(document.getElementById("mainList"));
	var hash = window.location.hash;
	if (startStage == null) {
	    if (hash.length > 1) {
		    startStage = hash.substring(1);
	        if (!isNaN(startStage)) {
   	            startStage = Number(startStage);
            }
	    }
    }
    if (startStage == null) {
        startStage = 1;
	}
	setStage(startStage);
};
window.onresize = function() {
	var height;
	if (window.innerHeight)
	{
		height = window.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		height = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		height = document.body.clientHeight;
	}
	height -= document.getElementById("header").offsetHeight + document.getElementById("footer").offsetHeight + 80;
	document.getElementById("main").style.height = (height < 0 ? 0 : height);
}
function firstChildElement(element) {
	element = element.firstChild;
	if (element && (element.nodeType != 1)) {
		element = nextElement(element);
	}
	return element;
}
function nextElement(element) {
	while (element) {
		element = element.nextSibling;
		if (element && (element.nodeType == 1)) {
			return element;
		}
	}
}
function previousElement(element) {
	while (element) {
		element = element.previousSibling;
		if (element && (element.nodeType == 1)) {
			return element;
		}
	}
}
function showHideElement(element, show) {
	if (element == null) {
		return;
	}
	var style = element.style;
	if (style == null) {
		return;
	}
	if (typeof(show) == "undefined") {
		show = (style.display == "none");
	}
	style.display = (show ? "block" : "none");
}
function setStage(a) {
	var oldStageElement = currentStageElement;
	var newStageElement;
    switch (typeof(a)) {
	    case "boolean": //assume true = go to next stage, false go to previous
		    newStageElement = (a ? nextElement(currentStageElement) : previousElement(currentStageElement));
		    break;
	    case "object": //assume it's an event object from a click on an anchor
		    var eventTarget = (a.target ? a.target : a.srcElement);
		    var i;
		    if (eventTarget == null) {
			    return;
		    }
		    var href = eventTarget.getAttribute("href");
		    if (typeof(href) != "string") {
			    return;
		    }
		    var hashPosition = href.lastIndexOf("#");
		    if (hashPosition == -1) {
			    return;
		    }
		    a = href.substring(hashPosition + 1);
	    case "string"://assume it's the name of the stage we need to go to
            for (var stageElement = firstStageElement; stageElement != null; stageElement = nextElement(stageElement)) {
			    var anchorElement = firstChildElement(stageElement);
			    var anchorElementName = anchorElement.getAttribute("name");
			    if (anchorElementName == a) {
				    newStageElement = stageElement;
				    break;
			    }
		    }
		    break;
	    case "number":
	        for (var stageElement = firstStageElement, i = 1; stageElement != null; stageElement = nextElement(stageElement), i++) {
		        if (i == a) {
			        newStageElement = stageElement;
			        break;
		        }
	        }
	        break;
    }
	if ((typeof(newStageElement) == "undefined") || (newStageElement == oldStageElement)) {
		return;
	}
	showHideElement(oldStageElement, false);
	currentStageElement = newStageElement;
	showHideElement(currentStageElement, true);
	var firstChild = currentStageElement.firstChild;
	if (firstChild != null) {
		firstChild.scrollIntoView(true);
	}
	document.getElementById("previousStageButton").disabled = (previousElement(currentStageElement) == null);
	document.getElementById("nextStageButton").disabled = (nextElement(currentStageElement) == null);
}
function previousStage() {
	setStage(false);
}
function nextStage() {
	setStage(true);
}