// --------------------------------------------------------------------------------------------------------------------------------------------
// Javascript for animated book info panel
// --------------------------------------------------------------------------------------------------------------------------------------------

// Ensure we have background caching turned on to stop IE6 background flickering
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
// -----------------------------------------------------------------------------

var myPanel;
var myPanelButton;
var myPanelButtonLink;
var myPanelHeight;
var myPanelY;
var myPanelYStopDown;
var myPanelYStopUp;
var myPanelShadow = 4; // Height of panel shadow (bottom)
var myPanelSpeed = 15; // Panel moving speed
var myPanelDecel = 15; // Deaccleration Speed
var myPanelStartSpeed;
var myPanelMoving = false;
var myPanelDown = false;
var myPanelHTML = "";
var defaultMessage = "About this book";
var defaultCloseMessage = "Close";

function panelSetup(hidePanel,newMessage) {
	myPanel = document.getElementById("infoPanel");
	myPanelButton = document.getElementById("infoPanelButton");
	myPanelButtonLink = document.getElementById("infoPanelButtonLink");
	myPanelHeight = myPanel.offsetHeight;
	myPanelYStopDown = myPanel.offsetTop;
	myPanelYStopUp = (myPanelYStopDown - myPanelHeight) + myPanelShadow;
	myPanelStartSpeed = myPanelSpeed;
	if (newMessage) defaultMessage = newMessage;
	
	// Do we hide the panel?
	if (hidePanel) {
		myPanelY = myPanelYStopUp;
		movePanel();
		setPanelButtonText(defaultMessage);
	} else {
		myPanelY = myPanelYStopDown;
		movePanel();
		setPanelButtonText(defaultCloseMessage);
		myPanelDown = true;
	}
	myPanel.style.visibility = "visible";
	
	// Store panel HTML in a variable
	myPanelHTML = document.getElementById("infoPanelContent").innerHTML;
}

function movePanel() {
	myPanel.style.top = myPanelY + "px";
}

function setPanelButtonText(myText) {
	myPanelButtonLink.innerHTML = myText;
	myPanelButtonLink.title = myText;
}

function openClosePanel() {
	if (!myPanelMoving) {
		myPanelMoving = true;
		myPanelSpeed = myPanelStartSpeed;
		setTimeout("animatePanel()", 10);
	}
}

function animatePanel() {
	if (myPanelMoving && !myPanelDown) {
		myPanelY += myPanelSpeed;
		if (myPanelY >= myPanelYStopDown) {
			myPanelY = myPanelYStopDown;
			myPanelMoving = false;
			myPanelDown = true;
			movePanel();
			setPanelButtonText(defaultCloseMessage);
		} else {
			movePanel();
			setTimeout("animatePanel()", 10);
		}
	} else if (myPanelMoving && myPanelDown) {
		myPanelY -= myPanelSpeed;
		if (myPanelY <= myPanelYStopUp) {
			myPanelY = myPanelYStopUp;
			myPanelMoving = false;
			myPanelDown = false;
			movePanel();
			document.getElementById("infoPanelContent").innerHTML = myPanelHTML;
			setPanelButtonText(defaultMessage);
		} else {
			movePanel();
			setTimeout("animatePanel()", 10);
		}
	}
	myPanelSpeed = myPanelSpeed - (myPanelSpeed / myPanelDecel);
	if (myPanelSpeed < 1) myPanelSpeed = 1;
}
