var bookListLeftPos = false;
var bookListWidth = false;
var bookListObj = false;
var maxGalleryXPos = false;
var slideSpeed = 0;
	
function startSlide(e) {
  if (document.all) e = event;
	var id = this.id;
	if (this.id == 'bookRight') {
	  slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
		slideSpeed = -1*slideSpeedMultiply;
		slideSpeed = Math.max(-10,slideSpeed);
	}
	else {			
	  slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
		slideSpeed = 1*slideSpeedMultiply;
		slideSpeed = Math.min(10,slideSpeed);
		if(slideSpeed<0) slideSpeed=10;
	}
}
	
function stopSlide() {
  var id = this.id;
	slideSpeed = 0;
}
		
function gallerySlide()	{
  if (slideSpeed != 0) {
	  var leftPos = bookListObj.offsetLeft;
		leftPos = leftPos/1 + slideSpeed;
		if(leftPos > maxGalleryXPos) {
		  leftPos = maxGalleryXPos;
			slideSpeed = 0;
		}
		if (leftPos < minGalleryXPos) {
		  leftPos = minGalleryXPos;
			slideSpeed = 0;
		}
		bookListObj.style.left = leftPos + 'px';
  }
	setTimeout('gallerySlide()',20);
}
	
function initBookGallery() {
  document.getElementById('bookLeft').onmousemove = startSlide;
  document.getElementById('bookLeft').onmouseout = stopSlide;
  document.getElementById('bookRight').onmousemove = startSlide;
	document.getElementById('bookRight').onmouseout = stopSlide;
		
	bookListObj = document.getElementById('theBooks');
	bookListLeftPos = bookListObj.offsetLeft;
	bookListWidth = document.getElementById('bookList').offsetWidth - 96; /* 96 = arrows width */
	maxGalleryXPos = bookListObj.offsetLeft; 
	minGalleryXPos = bookListWidth - document.getElementById('bookEnd').offsetLeft;
	gallerySlide();
	showBook('intro.html');
}

function showBook(bookPage) {
  var timeStamp =  new Date().getTime();
  var url = 'books/' + bookPage + '?time=' + timeStamp;
  document.getElementById('bookWindow').innerHTML = ' Fetching data...';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } 
	else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {loadBook(url);};
    req.open("GET", url, true);
    req.send("");
  }
}

function loadBook(url) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
      document.getElementById('bookWindow').innerHTML = req.responseText;
    } 
		else {
      document.getElementById('bookWindow').innerHTML=" Error:\n"+ req.status + "\n" +req.statusText;
    }
  }
}

	
	function showPreview(imagePath,imageIndex){
		var subImages = document.getElementById('previewPane').getElementsByTagName('IMG');
		if (subImages.length==0) {
			var img = document.createElement('IMG');
			document.getElementById('previewPane').appendChild(img);
		}else img = subImages[0];
		
		if(displayWaitMessage){
			document.getElementById('waitMessage').style.display='inline';
		}
		document.getElementById('largeImageCaption').style.display='none';
		img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };
		img.src = imagePath;
		
	}
	function hideWaitMessageAndShowCaption(imageIndex)
	{
		document.getElementById('waitMessage').style.display='none';	
		document.getElementById('largeImageCaption').innerHTML = bookListCaptions[imageIndex];
		document.getElementById('largeImageCaption').style.display='block';
		
	}

window.onload = initBookGallery;