if (document.all)
  document.onselectstart =
    function () { return false; };

// Netscape 4:
if (document.layers) {
  document.captureEvents(Event.MOUSEDOWN);
  document.onmousedown =
    function (evt) { return false; };
}

// Netscape 6:
document.onmousedown = function () { return false; };

//	var numberOfPages = 39;
//	var largeimage = {"x": 800, "y":1132, "prefix": "big/bsb-08-", "suffix": ".jpg"};
//	var smallimage = {"x": 348, "y":492, "prefix": "bsb-08-small-", "suffix": ".jpg"};
// 	var previewpane = false;//"smallzoom"; // false if preview pane not required
//var previewpane = "smallzoom"; 
// 	var previewareabox = true;

var currentPage = 1;
var pageWidth = smallimage.x;
var currentWidth = smallimage.x;
var reachedEnd = false;
var dataDragBig = {"dragging":false, "timetaken":0, "screenx":0, "screeny":0, "mousex":0, "mousey":0};


function setupmag() {
// 	createPage(1, true);
	// preload first page
	var imagesarr = new Array();

	// Right hand pages stack newer ones lower
 	for(count=numberOfPages; count>=0; count--) {
		if (count % 2) {
			createPage(count, false);
		}
	}
// 	Left hand pages stack newer ones higher
 	for(count=0; count<=numberOfPages; count++) {
		if (!(count % 2)) {
			createPage(count, false);
		}
	}

	pic1= new Image(smallimage.x,smallimage.y); 
	pic1.src="images/"+smallimage.prefix+"0"+smallimage.suffix;
	pic1.onload = function() { doneloading(); };
	setTimeout("doneloading()", 5000); // IE6 doesn't always kick off the onload

	if (previewpane) {
		if (previewareabox) {
			prevbx = document.createElement("div");
			prevbx.setAttribute("id", "previewareabox-l");
			prevbx.setAttribute("class", "previewareabox-left");
			document.getElementById("magframe").appendChild(prevbx);
			document.getElementById("previewareabox-l").style.width = "0px";
			document.getElementById("previewareabox-l").style.height = ((smallimage.y/largeimage.y) * parseInt(document.getElementById(previewpane).style.height))+"px";

			prevbx = document.createElement("div");
			prevbx.setAttribute("id", "previewareabox-r");
			prevbx.setAttribute("class", "previewareabox-right");
			document.getElementById("magframe").appendChild(prevbx);
			document.getElementById("previewareabox-r").style.width = "0px";
			document.getElementById("previewareabox-r").style.height = ((smallimage.y/largeimage.y) * parseInt(document.getElementById(previewpane).style.height))+"px";

			prevbx = document.createElement("div");
			prevbx.setAttribute("id", "previewareabox-t");
			prevbx.setAttribute("class", "previewareabox-top");
			document.getElementById("magframe").appendChild(prevbx);
			document.getElementById("previewareabox-t").style.width = ((smallimage.x/largeimage.x) * parseInt(document.getElementById(previewpane).style.width))+"px";
			document.getElementById("previewareabox-t").style.height = "0px";

			prevbx = document.createElement("div");
			prevbx.setAttribute("id", "previewareabox-b");
			prevbx.setAttribute("class", "previewareabox-bottom");
			document.getElementById("magframe").appendChild(prevbx);
			document.getElementById("previewareabox-b").style.width = ((smallimage.x/largeimage.x) * parseInt(document.getElementById(previewpane).style.width))+"px";
			document.getElementById("previewareabox-b").style.height = "0px";
		}
	}

/*	pic1= new Image(smallimage.x,smallimage.y); 
	pic1.src="images/"+smallimage.prefix+"0"+smallimage.suffix;
	pic1.onload = function() { doneloading(); };
	setTimeout("doneloading()", 5000); // IE6 doesn't always kick off the onload*/
}

function showloading() {
	document.getElementById("loadingframe").style.display = "block";
}

function doneloading() {
	document.getElementById("loadingframe").style.display = "none";
//	document.getElementById("debug").innerHTML = "Done";
}


function createPage(count, background) {
	newpage = document.createElement("div");
	if (background) {
		newpage.setAttribute("id", "background_"+count);
	} else {
		newpage.setAttribute("id", "page_"+count);
	}
//	imagefile = "page"+zeroPad(count,7)+"_1.jpg";
	imagefile = smallimage.prefix+(count-1)+smallimage.suffix;
	if (count % 2) {
		newclass="right";
		width=smallimage.x;
		style="";
	} else {
		newclass="left";
		width="0";
		style="display: none";
	}
	newpage.setAttribute("class", newclass);
	newpage.setAttribute("className", newclass); // IE is rubbish!
	newpage.innerHTML="<img src=\"images/"+imagefile+"\" style=\""+style+"\" height=\""+smallimage.y+"\" width=\""+width+"\" usemap=\"#map_"+count+"\" onclick=\"makeBig("+count+")\" />";
	document.getElementById("magframe").appendChild(newpage);

	if (previewpane) {
		document.getElementById("page_"+count).onmouseover = new Function("thumbhover(this)");
		document.getElementById("page_"+count).onmousemove = new Function("thumbscroll(this)");
	}
}

function thumbscroll(e) {
// 	document.getElementById("debug").innerHTML = ":"+ mousex +" "+findX(e) +":";
	newx = ((findX(e)-mousex)*(largeimage.x/smallimage.x))+(parseInt(document.getElementById(previewpane).style.width)/2);
	newy = ((findY(e)-mousey)*(largeimage.y/smallimage.y))+(parseInt(document.getElementById(previewpane).style.height)/2);
 	document.getElementById(previewpane).style.backgroundPosition = newx+"px "+newy+"px";
	if (previewareabox) {
 		document.getElementById("previewareabox-t").style.left = (mousex-findX(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-t").style.width)/2))+"px";
 		document.getElementById("previewareabox-t").style.top = (mousey-findY(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-l").style.height)/2))+"px";

 		document.getElementById("previewareabox-b").style.left = (mousex-findX(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-b").style.width)/2))+"px";
 		document.getElementById("previewareabox-b").style.top = (mousey-findY(document.getElementById("magframe"))+(parseInt(document.getElementById("previewareabox-r").style.height)/2))+"px";

 		document.getElementById("previewareabox-l").style.left = (mousex-findX(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-t").style.width)/2))+"px";
 		document.getElementById("previewareabox-l").style.top = (mousey-findY(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-l").style.height)/2))+"px";

 		document.getElementById("previewareabox-r").style.left = (mousex-findX(document.getElementById("magframe"))+(parseInt(document.getElementById("previewareabox-b").style.width)/2))+"px";
 		document.getElementById("previewareabox-r").style.top = (mousey-findY(document.getElementById("magframe"))-(parseInt(document.getElementById("previewareabox-r").style.height)/2))+"px";
// document.getElementById("debug").innerHTML = document.getElementById("previewareabox").style.top+":"+mousey;
	}
}

function thumbhover(e) {
	var string = e.id.replace("page_", "");
// 	document.getElementById("debug").innerHTML = ":"+ parseInt(string) +":";
	document.getElementById(previewpane).style.background = "url(images/"+largeimage.prefix+(parseInt(e.id.replace("page_", "")) - 1)+largeimage.suffix+") no-repeat";
}

function findX(obj) {
	var x = 0;
	while (obj) {
		x += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return x;
}

function findY(obj) {
	var y = 0;
	while (obj) {
		y += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return y;
}

function makeBig(id) {
//	var areapos = findPos(document.getElementById("pageturnarea"));
//alert("here");
	var scrollxy = getScrollXY();
	var clickedx = (mousex-findX(document.getElementById("pageturnarea")));
	var clickedy = (mousey-findY(document.getElementById("pageturnarea")));

	if (id % 2) {
		rightimage = id-1;
		leftimage = id-2;
	} else {
		rightimage = id;
		leftimage = id-1;
	}
	leftimagetags = "";
	rightimagetags = "";
	if (rightimage <= numberOfPages) {
		jpgimagefile = largeimage.prefix+rightimage+largeimage.suffix;
		jpgimagefilesm = smallimage.prefix+rightimage+smallimage.suffix;
		rightimagetags = "<img src=\"images/"+jpgimagefilesm+"\" onclick=\"hideBig()\" style=\"position: absolute; top:0px; left:"+largeimage.x+"px; height: "+largeimage.y+"px;\" /><img src=\"images/"+jpgimagefile+"\" style=\"position: absolute; top:0px; left:"+largeimage.x+"px;\" />";
	}
	if (leftimage > 0) {
		jpgimagefile = largeimage.prefix+leftimage+largeimage.suffix;
		jpgimagefilesm = smallimage.prefix+leftimage+smallimage.suffix;
		leftimagetags = "<img src=\"images/"+jpgimagefilesm+"\" onclick=\"hideBig()\" style=\"position: absolute; top:0px; left:0px; height: "+largeimage.y+"px;\" /><img src=\"images/"+jpgimagefile+"\" style=\"position: absolute; top:0px; left:0px;\" />";
	}
	document.getElementById("BigView").innerHTML = leftimagetags+rightimagetags;
	document.getElementById("BigView").style.height = largeimage.y+"px";
	document.getElementById("BigView").style.display = "block";
	var scaledupx = (clickedx*((largeimage.x*2)/(smallimage.x*2)))-(parseInt(document.documentElement.clientWidth)/2);
	var scaledupy = (clickedy*(largeimage.y/smallimage.y))-(parseInt(document.documentElement.clientHeight)/2);
	window.scrollTo(scaledupx,scaledupy);
}

function hideBig() {
	document.getElementById("BigView").style.display = "none";
}

function turnback() {
	if (reachedEnd) {
		currentPage = numberOfPages+1;
		reachedEnd = false;
	}
	if (currentPage > 1) {
		animateTurnBack(currentPage-1, false);
		currentPage -= 2;
	}
}

function animateTurnBack(page, show) {
	// show -> false = close, true = open
	pageid = "page_"+page;
	if (show) {
		currentWidth = 0;
		doOpenBack(pageid);
	} else {
		currentWidth = pageWidth;
		doCloseBack(pageid);
	}
}

function doCloseBack(pageid) {
	currentWidth -= 20;
	imgs = document.getElementById(pageid).getElementsByTagName('*');
	imgs[0].width = currentWidth;
	if (currentWidth>0) {
		document.getElementById(pageid).style.width = currentWidth+"px";
	}
	if (currentWidth > 0) {
		setTimeout("doCloseBack(\""+pageid+"\")", 10);
	} else {
		imgs[0].width = 0;
		currentWidth = 0;
		document.getElementById(pageid).style.width = "0px";
		if (currentPage > 0) {
			animateTurnBack(currentPage, true);
		}
	}
}

function doOpenBack(pageid) {
	currentWidth += 20;
	imgs = document.getElementById(pageid).getElementsByTagName('*');
	imgs[0].width = currentWidth;
	if (currentWidth>0) {
		document.getElementById(pageid).style.width = currentWidth+"px";
	}
	if (currentWidth < (pageWidth-20)) {
		setTimeout("doOpenBack(\""+pageid+"\")", 10);
	} else {
		imgs[0].width = pageWidth;
		document.getElementById(pageid).style.width = pageWidth+"px";
	}
}

function turnforward() {
	if (!reachedEnd) {
		if (currentPage < (numberOfPages+1)) {
			if (!(numberOfPages % 4)) {
				animateTurnForward(currentPage, false);
				currentPage += 2;
			} else if (currentPage < (numberOfPages)){
				animateTurnForward(currentPage, false);
				currentPage += 2;
			}
		}
	}
}

function animateTurnForward(page, show) {
	// show -> false = close, true = open
	pageid = "page_"+page;
	if (show) {
		currentWidth = 0;
		doOpenForward(pageid);
	} else {
		currentWidth = pageWidth;
		doCloseForward(pageid);
	}
}

function doCloseForward(pageid) {
	// Close RHS page
	currentWidth -= 20;
	imgs = document.getElementById(pageid).getElementsByTagName('*');
	imgs[0].width = currentWidth;
	if (currentWidth>0) {
		document.getElementById(pageid).style.width = currentWidth+"px";
	}
	if (currentWidth > 0) {
		setTimeout("doCloseForward(\""+pageid+"\")", 10);
	} else {
		imgs[0].width = 0;
		currentWidth = 0;
		document.getElementById(pageid).style.width = "0px";
		if (currentPage > numberOfPages+1) {
// 			document.getElementById("magframe").innerHTML = "";
// 			setupmag();
// 			currentPage=1;
		} else {
			animateTurnForward(currentPage-1, true);
		}
	}
}

function doOpenForward(pageid) {
	// Open LHS page
	currentWidth += 20;
	imgs = document.getElementById(pageid).getElementsByTagName('*');
	imgs[0].width = currentWidth;
	imgs[0].style.display = "block";
	
	document.getElementById(pageid).style.width = currentWidth+"px";
	if (currentWidth < (pageWidth-20)) {
		setTimeout("doOpenForward(\""+pageid+"\")", 10);
	} else {
		imgs[0].width = pageWidth;
		document.getElementById(pageid).style.width = pageWidth+"px";
	}
}

function zeroPad(num,count) {
	var numZeropad = num + '';
	while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad;
	}
	return numZeropad;
}

  var IE = (navigator.appName == "Microsoft Internet Explorer")?true:false
  
  if (!IE) document.captureEvents(Event.MOUSEMOVE)
  document.onmousemove = getMouseXY;

// window.onscroll = scroll;

  var mousex, mousey;   

// function scroll(e) {
// document.getElementById("debug").innerHTML = "scroll2";
// }

function getMouseXY(e) {
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		mousex = e.pageX;
		mousey = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		mousex = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		mousey = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
}


function getScrollXY() {
  var coords = {"x":0, "y":0};
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  coords.x = scrOfX;
  coords.y = scrOfY;
//   return [ scrOfX, scrOfY ];
  return coords;
}

function startDragBig() {
	currentdat = getScrollXY();
	dataDragBig.screenx = parseInt(currentdat.x);
	dataDragBig.screeny = parseInt(currentdat.y);
	dataDragBig.mousex = parseInt(mousex);
	dataDragBig.mousey = parseInt(mousey);
	dataDragBig.dragging = true;
	now = new Date();
	dataDragBig.timetaken = now.getTime();
}

function doDragBig() {
//  document.getElementById("debug").innerHTML = window.event;
//  document.getElementById("debug").innerHTML = event.clientX;
// getMouseXY(Event.MOUSEMOVE);

	if (dataDragBig.dragging) {
		newx = ((dataDragBig.mousex-mousex)+dataDragBig.screenx);
 		newy = ((dataDragBig.mousey-mousey)+dataDragBig.screeny);
//document.getElementById("debug").innerHTML = dataDragBig.mousex+":"+mousex+":"+newx;
		window.scrollTo(newx,newy);
		currentdat = getScrollXY();
		dataDragBig.screenx = parseInt(currentdat.x);
		dataDragBig.screeny = parseInt(currentdat.y);
	}
}

function stopDragBig() {
	dataDragBig.dragging = false;
	now = new Date();
	if (dataDragBig.timetaken >= (now.getTime()-200)) {
		hideBig();
	}
// document.getElementById("debug").innerHTML = dataDragBig.timetaken+":"+now.getTime();

// time=new Date(); document.getElementById("debug").innerHTML = time.getSeconds();
}

// function findPos(obj) {
// 	var curleft = curtop = 0;
// 	if (obj.offsetParent) {
// 		do {
// 			curleft += obj.offsetLeft;
// 			curtop += obj.offsetTop;
// 		} while (obj = obj.offsetParent);
// 	}
// 	return [curleft,curtop];
// }



