function initButtons() {
	enableButtonsForScaleFactor(6.0);
}


function enableButtonsAccordingToZoomState() {
	
	var viewerStateText = s7zoom.getViewerState();
	var scaleFactor = getIntFromXML(viewerStateText, "//scale");
	enableButtonsForScaleFactor(scaleFactor);
	
}


function enableButtonsForScaleFactor(scaleFactor) {
	var anchorTags = document.getElementsByTagName("a");
	var zoomInButton = null;
	var zoomOutButton = null;
	var resetButton = null;
	for (var tag = 0; tag < anchorTags.length; tag++) {
		var parent = anchorTags[tag].parentNode;
		if (parent != null) {
			if (parent.className.match("^zoomIn")) {
				zoomInButton = parent;
			} else if (parent.className.match("^zoomOut")) {
				zoomOutButton = parent;
			} else if (parent.className.match("^zoomReset")) {
				resetButton = parent;
			}
		}
	}
	
	var isFullyZoomedIn = scaleFactor < 1.1;
	var isFullyZoomedOut = scaleFactor >= 6;
	
	if (isFullyZoomedIn) {
		updateClass(zoomInButton, "zoomInDisabled");
	} else {
		updateClass(zoomInButton, "zoomIn");
	}
	
	if (isFullyZoomedOut) {
		updateClass(zoomOutButton, "zoomOutDisabled");
		updateClass(resetButton, "zoomResetDisabled");
	} else {
		updateClass(zoomOutButton, "zoomOut");
		updateClass(resetButton, "zoomReset");
	}
	
	if (isIE6()) {
		setIE6Highlight(zoomInButton, !isFullyZoomedIn);
		setIE6Highlight(zoomOutButton, !isFullyZoomedOut);
		setIE6Highlight(resetButton, !isFullyZoomedOut);
	}

}


function updateClass(element, className) {
	if (element.className != className) {
		element.className = className;
	}
}

function getIntFromXML(txt, xpath) {
	if (window.ActiveXObject) {//Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(txt);
		return xmlDoc.selectNodes(xpath)[0].childNodes[0].nodeValue;
	} else if (typeof XPathResult != "undefined") {
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(txt,"text/xml");
		return xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.NUMBER_TYPE, null).numberValue;
	} else if (xpath.substring(0,2) == '//'){
		var tagName = xpath.substring(2);
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(txt,"text/xml");
		var matchingElements = xmlDoc.getElementsByTagName(tagName);
		if (matchingElements.length > 0) {
			return parseFloat(matchingElements[0].childNodes[0].nodeValue);
		} else {
			return 2;
		}
	}
}

//IE6 special handling because it doesn't support li:hover style

function isIE6() {
	 var userAgent = navigator.userAgent.toLowerCase();
	 if (/msie[\/\s](\d+\.\d+)/.test(userAgent)) {
	    var ieversion = new Number(RegExp.$1);
	    if (ieversion < 7) {
	      return true;
	    }
	  }
	 return false;
}


function setIE6Highlight(el, enable) {
	if (enable) {
		el.onmouseover = ie6MouseoverHighlight;
		el.onmouseout = ie6MouseoverUnhighlight;
	} else {
		el.onmouseover = null;
		el.onmouseout = null;
		ie6MouseoverUnhighlight(el);
	}
}

function ie6MouseoverHighlight() {
	this.style.backgroundImage = "url('/support_files/style_images/products/backgrounds/bg-product-tools-yellow.gif')";
	this.style.backgroundPosition = "left bottom";
	this.style.backgroundRepeat = "repeat-x";
}

function ie6MouseoverUnhighlight(el) {
	if (el == null) {
		el = this;
	}
	el.style.backgroundImage = "none";
	el.style.backgroundPosition = "left bottom";
	el.style.backgroundRepeat = "repeat-x";
}
